From ff00dfdd03b3dbe192805975a30ef36ee887e41c Mon Sep 17 00:00:00 2001 From: Naga Sureshkumar Relli Date: Wed, 2 Sep 2015 17:21:05 +0530 Subject: [PATCH] iomodule: Updated iomodule if external interrupts are not enabled This patch updates the iomodule to handle, if external interrupts are not enabled. Signed-off-by: Naga Sureshkumar Relli Reviewed-by: Kedareswara rao Appana --- .../drivers/iomodule/data/iomodule.tcl | 14 ++++++++++---- .../drivers/iomodule/src/xiomodule.h | 2 ++ 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/XilinxProcessorIPLib/drivers/iomodule/data/iomodule.tcl b/XilinxProcessorIPLib/drivers/iomodule/data/iomodule.tcl index 0321f398..84d25cf3 100755 --- a/XilinxProcessorIPLib/drivers/iomodule/data/iomodule.tcl +++ b/XilinxProcessorIPLib/drivers/iomodule/data/iomodule.tcl @@ -44,6 +44,8 @@ # 2.2 nsk 19/08/15 Modified iomodule_defince_vector_table # to handle, if iomodule doesn't have interrupts # enabled CR#876507. +# 2.2 nsk 02/09/15 Modified iomodule_define_vector_table +# when no external interrupts are used.CR#878782. # ############################################################################## @@ -314,13 +316,17 @@ proc iomodule_define_vector_table {periph config_inc config_file} { set interrupt_pin [hsi::get_pins -of_objects [get_cells -hier $periph] -filter {TYPE==INTERRUPT&&DIRECTION==I}] # Get pins/ports that are driving the interrupt - lappend source_pins - set source_pins [::hsi::utils::get_source_pins $interrupt_pin] - set num_intr_inputs [common::get_property CONFIG.C_INTC_INTR_SIZE $periph] + set c_intc_use_ext_intr [common::get_property CONFIG.C_INTC_USE_EXT_INTR $periph] + if {$c_intc_use_ext_intr == 0} { + set num_intr_inputs 0 + } else { + set num_intr_inputs [common::get_property CONFIG.C_INTC_INTR_SIZE $periph] + } #calculate the total interrupt sources set total_intr_ports [get_num_intr_internal $periph] if {$num_intr_inputs != $total_intr_ports} { + set source_pins [::hsi::utils::get_interrupt_sources $periph] puts "WARNING: Num intr inputs $num_intr_inputs not the \ same as length of ::hsi::utils::get_interrupt_sources [llength \ $source_pins] hsi_warning" @@ -500,7 +506,7 @@ proc xredefine_iomodule {drvhandle config_inc} { incr i } } - + set num_intr_inputs [get_num_intr_inputs $periph] for {set i 0} {$i < $num_intr_inputs} {incr i} { diff --git a/XilinxProcessorIPLib/drivers/iomodule/src/xiomodule.h b/XilinxProcessorIPLib/drivers/iomodule/src/xiomodule.h index 44643a56..9977304b 100644 --- a/XilinxProcessorIPLib/drivers/iomodule/src/xiomodule.h +++ b/XilinxProcessorIPLib/drivers/iomodule/src/xiomodule.h @@ -231,6 +231,8 @@ * 2.2 nsk 08/19/15 Modifed iomodule_define_vector_table in iomodule.tcl * to handle,if iomodule doesn't have interrupts enabled * (CR #876507). +* 2.2 nsk 09/02/15 Modified iomodule_define_vector_table in iomodule.tcl +* when no external interrupts are used.(CR #878782) * * *