From d30edeb61669ef8ee954a0906a0f8dffe0c07861 Mon Sep 17 00:00:00 2001 From: Adrian Costina Date: Wed, 18 Mar 2015 13:04:52 +0200 Subject: [PATCH] fmcomms7: Updated project with interrupts in IPI to work correctly in Linux --- projects/fmcomms7/common/fmcomms7_bd.tcl | 42 +++++++++++++++++------- projects/fmcomms7/zc706/system_top.v | 10 ------ 2 files changed, 31 insertions(+), 21 deletions(-) diff --git a/projects/fmcomms7/common/fmcomms7_bd.tcl b/projects/fmcomms7/common/fmcomms7_bd.tcl index fde2b5d42..799041945 100644 --- a/projects/fmcomms7/common/fmcomms7_bd.tcl +++ b/projects/fmcomms7/common/fmcomms7_bd.tcl @@ -77,12 +77,6 @@ if {$sys_zynq == 0} { set adc_dsync [create_bd_port -dir I adc_dsync] set adc_ddata [create_bd_port -dir I -from 127 -to 0 adc_ddata] - set axi_ad9144_dma_intr [create_bd_port -dir O axi_ad9144_dma_intr] - set axi_ad9680_dma_intr [create_bd_port -dir O axi_ad9680_dma_intr] - set axi_fmcomms7_spi_intr [create_bd_port -dir O axi_fmcomms7_spi_intr ] - set axi_fmcomms7_spi2_intr [create_bd_port -dir O axi_fmcomms7_spi2_intr ] - set axi_fmcomms7_gpio_intr [create_bd_port -dir O axi_fmcomms7_gpio_intr ] - # dac peripherals set axi_ad9144_core [create_bd_cell -type ip -vlnv analog.com:user:axi_ad9144:1.0 axi_ad9144_core] @@ -301,7 +295,6 @@ if {$sys_zynq == 0} { connect_bd_net -net axi_ad9144_dac_drd [get_bd_ports dac_drd] [get_bd_pins axi_ad9144_dma/fifo_rd_en] connect_bd_net -net axi_ad9144_dac_ddata [get_bd_ports dac_ddata] [get_bd_pins axi_ad9144_dma/fifo_rd_dout] connect_bd_net -net axi_ad9144_dac_dunf [get_bd_pins axi_ad9144_core/dac_dunf] [get_bd_pins axi_ad9144_dma/fifo_rd_underflow] - connect_bd_net -net axi_ad9144_dma_intr [get_bd_pins axi_ad9144_dma/irq] [get_bd_ports axi_ad9144_dma_intr] # connections (adc) @@ -339,7 +332,7 @@ if {$sys_zynq == 0} { connect_bd_net -net axi_ad9680_dma_dready [get_bd_pins axi_ad9680_fifo/dma_wready] [get_bd_pins axi_ad9680_dma/s_axis_ready] connect_bd_net -net axi_ad9680_dma_ddata [get_bd_pins axi_ad9680_fifo/dma_wdata] [get_bd_pins axi_ad9680_dma/s_axis_data] connect_bd_net -net axi_ad9680_dma_xfer_req [get_bd_pins axi_ad9680_fifo/axi_xfer_req] [get_bd_pins axi_ad9680_dma/s_axis_xfer_req] - connect_bd_net -net axi_ad9680_dma_intr [get_bd_pins axi_ad9680_dma/irq] [get_bd_ports axi_ad9680_dma_intr] + # dac/adc clocks @@ -391,7 +384,6 @@ if {$sys_zynq == 0} { connect_bd_net -net sys_100m_resetn [get_bd_pins axi_cpu_interconnect/M14_ARESETN] $sys_100m_resetn_source connect_bd_net -net sys_100m_resetn [get_bd_pins axi_fmcomms7_spi2/s_axi_aresetn] - connect_bd_net -net axi_fmcomms7_spi_intr [get_bd_pins axi_fmcomms7_spi2/ip2intc_irpt] [get_bd_ports axi_fmcomms7_spi2_intr] if {$sys_zynq == 0} { @@ -408,8 +400,36 @@ if {$sys_zynq == 0} { connect_bd_net -net sys_100m_resetn [get_bd_pins axi_fmcomms7_spi/s_axi_aresetn] connect_bd_net -net sys_100m_resetn [get_bd_pins axi_fmcomms7_gpio/s_axi_aresetn] - connect_bd_net -net axi_fmcomms7_spi_intr [get_bd_pins axi_fmcomms7_spi/ip2intc_irpt] [get_bd_ports axi_fmcomms7_spi_intr] - connect_bd_net -net axi_fmcomms7_gpio_intr [get_bd_pins axi_fmcomms7_gpio/ip2intc_irpt] [get_bd_ports axi_fmcomms7_gpio_intr] +} + + # interrupts + +if {$sys_zynq == 0} { + + delete_bd_objs [get_bd_nets mb_intr_9_s] [get_bd_ports mb_intr_9] + delete_bd_objs [get_bd_nets mb_intr_10_s] [get_bd_ports mb_intr_10] + delete_bd_objs [get_bd_nets mb_intr_11_s] [get_bd_ports mb_intr_11] + delete_bd_objs [get_bd_nets mb_intr_12_s] [get_bd_ports mb_intr_12] + delete_bd_objs [get_bd_nets mb_intr_13_s] [get_bd_ports mb_intr_13] + connect_bd_net -net axi_ad9144_dma_intr [get_bd_pins axi_ad9144_dma/irq] [get_bd_pins sys_concat_intc/In9] + connect_bd_net -net axi_ad9680_dma_intr [get_bd_pins axi_ad9680_dma/irq] [get_bd_pins sys_concat_intc/In10] + connect_bd_net -net axi_fmcomms7_gpio_intr [get_bd_pins axi_fmcomms7_gpio/ip2intc_irpt] [get_bd_pins sys_concat_intc/In11] + connect_bd_net -net axi_fmcomms7_spi2_intr [get_bd_pins axi_fmcomms7_spi2/ip2intc_irpt] [get_bd_pins sys_concat_intc/In12] + connect_bd_net -net axi_fmcomms7_spi_intr [get_bd_pins axi_fmcomms7_spi/ip2intc_irpt] [get_bd_pins sys_concat_intc/In13] + +} else { + + delete_bd_objs [get_bd_nets ps_intr_9_s] [get_bd_ports ps_intr_9] + delete_bd_objs [get_bd_nets ps_intr_10_s] [get_bd_ports ps_intr_10] + delete_bd_objs [get_bd_nets ps_intr_11_s] [get_bd_ports ps_intr_11] + delete_bd_objs [get_bd_nets ps_intr_12_s] [get_bd_ports ps_intr_12] + delete_bd_objs [get_bd_nets ps_intr_13_s] [get_bd_ports ps_intr_13] + connect_bd_net -net axi_ad9144_dma_intr [get_bd_pins axi_ad9144_dma/irq] [get_bd_pins sys_concat_intc/In9] + connect_bd_net -net axi_ad9680_dma_intr [get_bd_pins axi_ad9680_dma/irq] [get_bd_pins sys_concat_intc/In10] + connect_bd_net -net axi_fmcomms7_gpio_intr [get_bd_pins axi_fmcomms7_gpio/ip2intc_irpt] [get_bd_pins sys_concat_intc/In11] + connect_bd_net -net axi_fmcomms7_spi2_intr [get_bd_pins axi_fmcomms7_spi2/ip2intc_irpt] [get_bd_pins sys_concat_intc/In12] + connect_bd_net -net axi_fmcomms7_spi_intr [get_bd_pins axi_fmcomms7_spi/ip2intc_irpt] [get_bd_pins sys_concat_intc/In13] + } # gt uses hp3, and 100MHz clock for both DRP and AXI4 diff --git a/projects/fmcomms7/zc706/system_top.v b/projects/fmcomms7/zc706/system_top.v index 881b28c1b..e2cd5d5f3 100644 --- a/projects/fmcomms7/zc706/system_top.v +++ b/projects/fmcomms7/zc706/system_top.v @@ -604,11 +604,6 @@ module system_top ( .adc_enable_1 (adc_enable_1), .adc_valid_0 (adc_valid_0), .adc_valid_1 (adc_valid_1), - .axi_ad9144_dma_intr (ps_intrs[9]), - .axi_ad9680_dma_intr (ps_intrs[10]), - .axi_fmcomms7_gpio_intr (ps_intrs[11]), - .axi_fmcomms7_spi2_intr (ps_intrs[12]), - .axi_fmcomms7_spi_intr (ps_intrs[13]), .dac_clk (dac_clk), .dac_ddata (dac_ddata), .dac_ddata_0 (dac_ddata_0), @@ -633,10 +628,6 @@ module system_top ( .iic_main_sda_io (iic_sda), .ps_intr_0 (ps_intrs[0]), .ps_intr_1 (ps_intrs[1]), - .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]), @@ -644,7 +635,6 @@ module system_top ( .ps_intr_6 (ps_intrs[6]), .ps_intr_7 (ps_intrs[7]), .ps_intr_8 (ps_intrs[8]), - .ps_intr_9 (ps_intrs[9]), .rx_data_n (rx_data_n), .rx_data_p (rx_data_p), .rx_ref_clk (rx_ref_clk),