From f7c2c3818fa79c1c69ccaf09b56f57d7f31d69c1 Mon Sep 17 00:00:00 2001 From: Adrian Costina Date: Tue, 17 Mar 2015 17:37:17 +0200 Subject: [PATCH] ad9265_fmc: Updated project with interrupts in IPI to work correctly in Linux --- projects/ad9265_fmc/common/ad9265_bd.tcl | 18 +++++++++++------- projects/ad9265_fmc/zc706/system_top.v | 5 +---- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/projects/ad9265_fmc/common/ad9265_bd.tcl b/projects/ad9265_fmc/common/ad9265_bd.tcl index 777bd7a1a..ad14b6da3 100644 --- a/projects/ad9265_fmc/common/ad9265_bd.tcl +++ b/projects/ad9265_fmc/common/ad9265_bd.tcl @@ -19,11 +19,6 @@ set spi_sdo_o [create_bd_port -dir O spi_sdo_o] set spi_sdo_i [create_bd_port -dir I spi_sdo_i] set spi_sdi_i [create_bd_port -dir I spi_sdi_i] -# interrupts - -set ad9265_spi [create_bd_port -dir O ad9265_spi] -set ad9265_dma_irq [create_bd_port -dir O ad9265_dma_irq] - # adc peripheral set axi_ad9265 [create_bd_cell -type ip -vlnv analog.com:user:axi_ad9265:1.0 axi_ad9265] @@ -139,7 +134,6 @@ connect_bd_net -net axi_ad9265_dma_valid [get_bd_pins axi_ad9265/adc_valid connect_bd_net -net axi_ad9265_dma_data [get_bd_pins axi_ad9265/adc_data] [get_bd_pins axi_ad9265_dma/fifo_wr_din] connect_bd_net -net axi_ad9265_dma_dovf [get_bd_pins axi_ad9265/adc_dovf] [get_bd_pins axi_ad9265_dma/fifo_wr_overflow] -connect_bd_net -net axi_ad9265_dma_irq [get_bd_pins axi_ad9265_dma/irq] [get_bd_ports ad9265_dma_irq] # interconnect (cpu) @@ -164,8 +158,18 @@ if {$sys_zynq == 0} { connect_bd_net -net sys_100m_clk [get_bd_pins axi_ad9265_spi/ext_spi_clk] connect_bd_net -net sys_100m_resetn [get_bd_pins axi_cpu_interconnect/M09_ARESETN] $sys_100m_resetn_source connect_bd_net -net sys_100m_resetn [get_bd_pins axi_ad9265_spi/s_axi_aresetn] +} - connect_bd_net -net axi_ad9265_spi_irq [get_bd_pins axi_ad9265_spi/ip2intc_irpt] [get_bd_ports ad9265_spi] +# interrupts + +if {$sys_zynq == 0} { + delete_bd_objs [get_bd_nets mb_intr_10_s] [get_bd_ports mb_intr_10] + delete_bd_objs [get_bd_nets mb_intr_12_s] [get_bd_ports mb_intr_12] + connect_bd_net -net axi_ad9265_spi_irq [get_bd_pins axi_ad9265_spi/ip2intc_irpt] [get_bd_ports sys_concat_intc/In10] + connect_bd_net -net axi_ad9265_dma_irq [get_bd_pins axi_ad9265_dma/irq] [get_bd_ports sys_concat_intc/In12] +} else { + delete_bd_objs [get_bd_nets ps_intr_12_s] [get_bd_ports ps_intr_12] + connect_bd_net -net axi_ad9265_dma_irq [get_bd_pins axi_ad9265_dma/irq] [get_bd_ports sys_concat_intc/In12] } # interconnect (mem/adc) diff --git a/projects/ad9265_fmc/zc706/system_top.v b/projects/ad9265_fmc/zc706/system_top.v index 4b01ddea5..aa06ad7d4 100644 --- a/projects/ad9265_fmc/zc706/system_top.v +++ b/projects/ad9265_fmc/zc706/system_top.v @@ -198,11 +198,10 @@ system_wrapper i_system_wrapper ( .iic_main_sda_io (iic_sda), .ps_intr_0 (ps_intrs[0]), .ps_intr_1 (ps_intrs[1]), + .ps_intr_2 (ps_intrs[2]), .ps_intr_10 (ps_intrs[10]), .ps_intr_11 (ps_intrs[11]), - .ps_intr_12 (ps_intrs[12]), .ps_intr_13 (ps_intrs[13]), - .ps_intr_2 (ps_intrs[2]), .ps_intr_3 (ps_intrs[3]), .ps_intr_4 (ps_intrs[4]), .ps_intr_5 (ps_intrs[5]), @@ -210,8 +209,6 @@ system_wrapper i_system_wrapper ( .ps_intr_7 (ps_intrs[7]), .ps_intr_8 (ps_intrs[8]), .ps_intr_9 (ps_intrs[9]), - .ad9265_spi (ps_intrs[2]), - .ad9265_dma_irq (ps_intrs[12]), .spdif (spdif), .adc_clk_in_n(adc_clk_in_n), .adc_clk_in_p(adc_clk_in_p),