bsps/irq: bsp_interrupt_facility_initialize()

Do not return a status code in bsp_interrupt_facility_initialize() since this
leads to unreachable code in bsp_interrupt_initialize().  Use RTEMS_DEBUG
assertions in bsp_interrupt_facility_initialize() if necessary.
This commit is contained in:
Sebastian Huber
2021-07-27 09:58:43 +02:00
parent 67c033d39a
commit c7b4eca7fa
36 changed files with 90 additions and 148 deletions

View File

@@ -163,7 +163,7 @@ rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
return RTEMS_SUCCESSFUL; return RTEMS_SUCCESSFUL;
} }
rtems_status_code bsp_interrupt_facility_initialize(void) void bsp_interrupt_facility_initialize(void)
{ {
int i; int i;
uint32_t intc_ilrx; uint32_t intc_ilrx;
@@ -183,6 +183,4 @@ rtems_status_code bsp_interrupt_facility_initialize(void)
/* Install generic interrupt handler */ /* Install generic interrupt handler */
arm_cp15_set_exception_handler(ARM_EXCEPTION_IRQ, _ARMV4_Exception_interrupt); arm_cp15_set_exception_handler(ARM_EXCEPTION_IRQ, _ARMV4_Exception_interrupt);
arm_cp15_set_vector_base_address(bsp_vector_table_begin); arm_cp15_set_vector_base_address(bsp_vector_table_begin);
return RTEMS_SUCCESSFUL;
} }

View File

@@ -88,10 +88,7 @@ rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
return RTEMS_SUCCESSFUL; return RTEMS_SUCCESSFUL;
} }
rtems_status_code bsp_interrupt_facility_initialize(void) void bsp_interrupt_facility_initialize(void)
{ {
_CPU_ISR_install_vector(ARM_EXCEPTION_IRQ, _ARMV4_Exception_interrupt, NULL); _CPU_ISR_install_vector(ARM_EXCEPTION_IRQ, _ARMV4_Exception_interrupt, NULL);
return RTEMS_SUCCESSFUL;
} }

View File

@@ -83,7 +83,7 @@ rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
return RTEMS_SUCCESSFUL; return RTEMS_SUCCESSFUL;
} }
rtems_status_code bsp_interrupt_facility_initialize(void) void bsp_interrupt_facility_initialize(void)
{ {
unsigned long i = 0; unsigned long i = 0;
@@ -95,6 +95,4 @@ rtems_status_code bsp_interrupt_facility_initialize(void)
AIC_CTL_REG(AIC_IDCR) = 0xffffffff; AIC_CTL_REG(AIC_IDCR) = 0xffffffff;
_CPU_ISR_install_vector(ARM_EXCEPTION_IRQ, _ARMV4_Exception_interrupt, NULL); _CPU_ISR_install_vector(ARM_EXCEPTION_IRQ, _ARMV4_Exception_interrupt, NULL);
return RTEMS_SUCCESSFUL;
} }

View File

@@ -125,7 +125,7 @@ rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
return RTEMS_SUCCESSFUL; return RTEMS_SUCCESSFUL;
} }
rtems_status_code bsp_interrupt_facility_initialize(void) void bsp_interrupt_facility_initialize(void)
{ {
uint32_t int_stat = 0; uint32_t int_stat = 0;
@@ -221,6 +221,4 @@ rtems_status_code bsp_interrupt_facility_initialize(void)
int_stat = *EP7312_INTSR3; int_stat = *EP7312_INTSR3;
_CPU_ISR_install_vector(ARM_EXCEPTION_IRQ, _ARMV4_Exception_interrupt, NULL); _CPU_ISR_install_vector(ARM_EXCEPTION_IRQ, _ARMV4_Exception_interrupt, NULL);
return RTEMS_SUCCESSFUL;
} }

View File

@@ -80,7 +80,7 @@ rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
return RTEMS_SUCCESSFUL; return RTEMS_SUCCESSFUL;
} }
rtems_status_code bsp_interrupt_facility_initialize(void) void bsp_interrupt_facility_initialize(void)
{ {
/* disable all interrupts */ /* disable all interrupts */
XSCALE_INT_ICMR = 0x0; XSCALE_INT_ICMR = 0x0;
@@ -90,6 +90,4 @@ rtems_status_code bsp_interrupt_facility_initialize(void)
/* Install the IRQ exception handler */ /* Install the IRQ exception handler */
_CPU_ISR_install_vector(ARM_EXCEPTION_IRQ, _ARMV4_Exception_interrupt, NULL); _CPU_ISR_install_vector(ARM_EXCEPTION_IRQ, _ARMV4_Exception_interrupt, NULL);
return RTEMS_SUCCESSFUL;
} }

View File

@@ -120,7 +120,7 @@ rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
return RTEMS_SUCCESSFUL; return RTEMS_SUCCESSFUL;
} }
rtems_status_code bsp_interrupt_facility_initialize(void) void bsp_interrupt_facility_initialize(void)
{ {
volatile uint32_t *addr = VICVectAddrBase; volatile uint32_t *addr = VICVectAddrBase;
volatile uint32_t *prio = VICVectPriorityBase; volatile uint32_t *prio = VICVectPriorityBase;
@@ -157,8 +157,6 @@ rtems_status_code bsp_interrupt_facility_initialize(void)
/* Install the IRQ exception handler */ /* Install the IRQ exception handler */
_CPU_ISR_install_vector(ARM_EXCEPTION_IRQ, _ARMV4_Exception_interrupt, NULL); _CPU_ISR_install_vector(ARM_EXCEPTION_IRQ, _ARMV4_Exception_interrupt, NULL);
return RTEMS_SUCCESSFUL;
} }
#endif /* ARM_MULTILIB_ARCH_V4 */ #endif /* ARM_MULTILIB_ARCH_V4 */

View File

@@ -347,7 +347,7 @@ void lpc32xx_set_exception_handler(
} }
} }
rtems_status_code bsp_interrupt_facility_initialize(void) void bsp_interrupt_facility_initialize(void)
{ {
size_t i = 0; size_t i = 0;
@@ -385,6 +385,4 @@ rtems_status_code bsp_interrupt_facility_initialize(void)
lpc32xx.sic_2.atr = 0x0; lpc32xx.sic_2.atr = 0x0;
lpc32xx_set_exception_handler(ARM_EXCEPTION_IRQ, _ARMV4_Exception_interrupt); lpc32xx_set_exception_handler(ARM_EXCEPTION_IRQ, _ARMV4_Exception_interrupt);
return RTEMS_SUCCESSFUL;
} }

View File

@@ -217,11 +217,10 @@ void bsp_interrupt_handler_default(rtems_vector_number vector)
printk("spurious interrupt: %" PRIdrtems_vector_number "\n", vector); printk("spurious interrupt: %" PRIdrtems_vector_number "\n", vector);
} }
rtems_status_code bsp_interrupt_facility_initialize(void) void bsp_interrupt_facility_initialize(void)
{ {
BCM2835_REG(BCM2835_IRQ_DISABLE1) = 0xffffffff; BCM2835_REG(BCM2835_IRQ_DISABLE1) = 0xffffffff;
BCM2835_REG(BCM2835_IRQ_DISABLE2) = 0xffffffff; BCM2835_REG(BCM2835_IRQ_DISABLE2) = 0xffffffff;
BCM2835_REG(BCM2835_IRQ_DISABLE_BASIC) = 0xffffffff; BCM2835_REG(BCM2835_IRQ_DISABLE_BASIC) = 0xffffffff;
BCM2835_REG(BCM2835_IRQ_FIQ_CTRL) = 0; BCM2835_REG(BCM2835_IRQ_FIQ_CTRL) = 0;
return RTEMS_SUCCESSFUL;
} }

View File

@@ -82,7 +82,7 @@ rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
return RTEMS_SUCCESSFUL; return RTEMS_SUCCESSFUL;
} }
rtems_status_code bsp_interrupt_facility_initialize(void) void bsp_interrupt_facility_initialize(void)
{ {
volatile uint32_t *ctrl = (volatile uint32_t *) VICVectCntlBase; volatile uint32_t *ctrl = (volatile uint32_t *) VICVectCntlBase;
size_t i = 0; size_t i = 0;
@@ -109,6 +109,4 @@ rtems_status_code bsp_interrupt_facility_initialize(void)
/* Install the IRQ exception handler */ /* Install the IRQ exception handler */
_CPU_ISR_install_vector(ARM_EXCEPTION_IRQ, _ARMV4_Exception_interrupt, NULL); _CPU_ISR_install_vector(ARM_EXCEPTION_IRQ, _ARMV4_Exception_interrupt, NULL);
return RTEMS_SUCCESSFUL;
} }

View File

@@ -94,7 +94,7 @@ rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
return RTEMS_SUCCESSFUL; return RTEMS_SUCCESSFUL;
} }
rtems_status_code bsp_interrupt_facility_initialize(void) void bsp_interrupt_facility_initialize(void)
{ {
ARMV7M_Exception_handler *vector_table; ARMV7M_Exception_handler *vector_table;
int i; int i;
@@ -118,8 +118,6 @@ rtems_status_code bsp_interrupt_facility_initialize(void)
} }
_ARMV7M_SCB->vtor = vector_table; _ARMV7M_SCB->vtor = vector_table;
return RTEMS_SUCCESSFUL;
} }
#endif /* ARM_MULTILIB_ARCH_V7M */ #endif /* ARM_MULTILIB_ARCH_V7M */

View File

@@ -81,9 +81,7 @@ rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
return RTEMS_SUCCESSFUL; return RTEMS_SUCCESSFUL;
} }
rtems_status_code bsp_interrupt_facility_initialize(void) void bsp_interrupt_facility_initialize(void)
{ {
_CPU_ISR_install_vector(ARM_EXCEPTION_IRQ, _ARMV4_Exception_interrupt, NULL); _CPU_ISR_install_vector(ARM_EXCEPTION_IRQ, _ARMV4_Exception_interrupt, NULL);
return RTEMS_SUCCESSFUL;
} }

View File

@@ -174,7 +174,7 @@ rtems_status_code bsp_interrupt_vector_disable(
* *
* @retval RTEMS_SUCCESSFUL All is set * @retval RTEMS_SUCCESSFUL All is set
*/ */
rtems_status_code bsp_interrupt_facility_initialize(void) void bsp_interrupt_facility_initialize(void)
{ {
void (**vim_vec)(void) = (void (**)(void)) 0xFFF82000; void (**vim_vec)(void) = (void (**)(void)) 0xFFF82000;
unsigned int value = 0x00010203; unsigned int value = 0x00010203;
@@ -241,6 +241,4 @@ rtems_status_code bsp_interrupt_facility_initialize(void)
sctlr |= 1 << 24; sctlr |= 1 << 24;
#endif #endif
asm volatile ("mcr p15, 0, %0, c1, c0, 0\n": : "r" (sctlr)); asm volatile ("mcr p15, 0, %0, c1, c0, 0\n": : "r" (sctlr));
return RTEMS_SUCCESSFUL;
} }

View File

@@ -326,7 +326,7 @@ rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
return RTEMS_SUCCESSFUL; return RTEMS_SUCCESSFUL;
} }
rtems_status_code bsp_interrupt_facility_initialize(void) void bsp_interrupt_facility_initialize(void)
{ {
int i; int i;
@@ -347,8 +347,6 @@ rtems_status_code bsp_interrupt_facility_initialize(void)
for (i = 0; i < BSP_IRQ_LINES_NUMBER; i++) for (i = 0; i < BSP_IRQ_LINES_NUMBER; i++)
irq_trigger[i] = elcr_read_trigger(i); irq_trigger[i] = elcr_read_trigger(i);
return RTEMS_SUCCESSFUL;
} }
static bool bsp_interrupt_handler_is_empty(rtems_vector_number vector) static bool bsp_interrupt_handler_is_empty(rtems_vector_number vector)

View File

@@ -202,10 +202,8 @@ void bsp_interrupt_initialize(void);
* The vectors will be enabled with your bsp_interrupt_vector_enable() function * The vectors will be enabled with your bsp_interrupt_vector_enable() function
* and disabled via your bsp_interrupt_vector_disable() function. These * and disabled via your bsp_interrupt_vector_disable() function. These
* functions have to work afterwards. * functions have to work afterwards.
*
* @return On success RTEMS_SUCCESSFUL shall be returned.
*/ */
rtems_status_code bsp_interrupt_facility_initialize(void); void bsp_interrupt_facility_initialize(void);
/** /**
* @brief Gets the attributes of the interrupt vector. * @brief Gets the attributes of the interrupt vector.

View File

@@ -12,9 +12,9 @@
#include <bsp/irq.h> #include <bsp/irq.h>
#include <bsp/irq-generic.h> #include <bsp/irq-generic.h>
rtems_status_code bsp_interrupt_facility_initialize(void) void bsp_interrupt_facility_initialize(void)
{ {
return RTEMS_SUCCESSFUL; /* Nothing to do */
} }
rtems_status_code bsp_interrupt_get_attributes( rtems_status_code bsp_interrupt_get_attributes(

View File

@@ -121,10 +121,9 @@ rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
return RTEMS_SUCCESSFUL; return RTEMS_SUCCESSFUL;
} }
rtems_status_code bsp_interrupt_facility_initialize(void) void bsp_interrupt_facility_initialize(void)
{ {
mips_install_isr_entries(); mips_install_isr_entries();
return RTEMS_SUCCESSFUL;
} }
void bsp_interrupt_handler_default(rtems_vector_number vector) void bsp_interrupt_handler_default(rtems_vector_number vector)

View File

@@ -745,19 +745,17 @@ static void BSP_SIU_irq_init( void)
setup_irqMaskTable(); setup_irqMaskTable();
} }
rtems_status_code bsp_interrupt_facility_initialize( void) void bsp_interrupt_facility_initialize( void)
{ {
rtems_status_code sc;
BSP_SIU_irq_init(); BSP_SIU_irq_init();
/* Install exception handler */ /* Install exception handler */
if (ppc_exc_set_handler( ASM_EXT_VECTOR, C_dispatch_irq_handler)) { sc = ppc_exc_set_handler( ASM_EXT_VECTOR, C_dispatch_irq_handler);
return RTEMS_IO_ERROR; _Assert_Unused_variable_equals( sc, RTEMS_SUCCESSFUL);
} sc = ppc_exc_set_handler( ASM_E300_SYSMGMT_VECTOR, C_dispatch_irq_handler);
if (ppc_exc_set_handler( ASM_E300_SYSMGMT_VECTOR, C_dispatch_irq_handler)) { _Assert_Unused_variable_equals( sc, RTEMS_SUCCESSFUL);
return RTEMS_IO_ERROR;
}
return RTEMS_SUCCESSFUL;
} }
void bsp_interrupt_handler_default( rtems_vector_number vector) void bsp_interrupt_handler_default( rtems_vector_number vector)

View File

@@ -548,20 +548,17 @@ static int BSP_irq_handle_at_ipic( unsigned excNum)
* Fill the array mpc83xx_ipic_prio2mask to allow masking of lower prio sources * Fill the array mpc83xx_ipic_prio2mask to allow masking of lower prio sources
* to implement nested interrupts. * to implement nested interrupts.
*/ */
static rtems_status_code mpc83xx_ipic_calc_prio2mask(void) static void mpc83xx_ipic_calc_prio2mask(void)
{ {
rtems_status_code rc = RTEMS_SUCCESSFUL;
/* /*
* FIXME: fill the array * FIXME: fill the array
*/ */
return rc;
} }
/* /*
* Activate the interrupt controller * Activate the interrupt controller
*/ */
static rtems_status_code mpc83xx_ipic_initialize(void) static void mpc83xx_ipic_initialize(void)
{ {
/* /*
* mask off all interrupts * mask off all interrupts
@@ -613,7 +610,7 @@ static rtems_status_code mpc83xx_ipic_initialize(void)
/* /*
* calculate priority masks * calculate priority masks
*/ */
return mpc83xx_ipic_calc_prio2mask(); mpc83xx_ipic_calc_prio2mask();
} }
static int mpc83xx_exception_handler( static int mpc83xx_exception_handler(
@@ -624,19 +621,18 @@ static int mpc83xx_exception_handler(
return BSP_irq_handle_at_ipic( exception_number); return BSP_irq_handle_at_ipic( exception_number);
} }
rtems_status_code bsp_interrupt_facility_initialize() void bsp_interrupt_facility_initialize()
{ {
rtems_status_code sc;
/* Install exception handler */ /* Install exception handler */
if (ppc_exc_set_handler( ASM_EXT_VECTOR, mpc83xx_exception_handler)) { sc = ppc_exc_set_handler( ASM_EXT_VECTOR, mpc83xx_exception_handler);
return RTEMS_IO_ERROR; _Assert_Unused_variable_equals( sc, RTEMS_SUCCESSFUL);
} sc = ppc_exc_set_handler( ASM_E300_SYSMGMT_VECTOR, mpc83xx_exception_handler);
if (ppc_exc_set_handler( ASM_E300_SYSMGMT_VECTOR, mpc83xx_exception_handler)) { _Assert_Unused_variable_equals( sc, RTEMS_SUCCESSFUL);
return RTEMS_IO_ERROR; sc = ppc_exc_set_handler( ASM_E300_CRIT_VECTOR, mpc83xx_exception_handler);
} _Assert_Unused_variable_equals( sc, RTEMS_SUCCESSFUL);
if (ppc_exc_set_handler( ASM_E300_CRIT_VECTOR, mpc83xx_exception_handler)) {
return RTEMS_IO_ERROR;
}
/* Initialize the interrupt controller */ /* Initialize the interrupt controller */
return mpc83xx_ipic_initialize(); mpc83xx_ipic_initialize();
} }

View File

@@ -131,7 +131,7 @@ void bsp_interrupt_dispatch(uintptr_t exception_number)
INTC.EOIR.R = 1; INTC.EOIR.R = 1;
} }
rtems_status_code bsp_interrupt_facility_initialize(void) void bsp_interrupt_facility_initialize(void)
{ {
rtems_vector_number vector; rtems_vector_number vector;
@@ -148,8 +148,6 @@ rtems_status_code bsp_interrupt_facility_initialize(void)
/* Set current priority to 0 */ /* Set current priority to 0 */
INTC.CPR.B.PRI = 0; INTC.CPR.B.PRI = 0;
return RTEMS_SUCCESSFUL;
} }
rtems_status_code bsp_interrupt_get_attributes( rtems_status_code bsp_interrupt_get_attributes(

View File

@@ -398,21 +398,19 @@ rtems_status_code bsp_interrupt_vector_disable( rtems_vector_number irqnum)
return RTEMS_SUCCESSFUL; return RTEMS_SUCCESSFUL;
} }
rtems_status_code bsp_interrupt_facility_initialize() void bsp_interrupt_facility_initialize()
{ {
rtems_status_code sc;
/* Install exception handler */ /* Install exception handler */
if (ppc_exc_set_handler( ASM_EXT_VECTOR, C_dispatch_irq_handler)) { sc = ppc_exc_set_handler( ASM_EXT_VECTOR, C_dispatch_irq_handler);
return RTEMS_IO_ERROR; _Assert_Unused_variable_equals( sc, RTEMS_SUCCESSFUL);
} sc = ppc_exc_set_handler( ASM_DEC_VECTOR, C_dispatch_irq_handler);
if (ppc_exc_set_handler( ASM_DEC_VECTOR, C_dispatch_irq_handler)) { _Assert_Unused_variable_equals( sc, RTEMS_SUCCESSFUL);
return RTEMS_IO_ERROR;
}
/* Fill in priority masks */ /* Fill in priority masks */
compute_SIU_IvectMask_from_prio(); compute_SIU_IvectMask_from_prio();
/* Initialize the interrupt controller */ /* Initialize the interrupt controller */
BSP_CPM_irq_init(); BSP_CPM_irq_init();
return RTEMS_SUCCESSFUL;
} }

View File

@@ -158,12 +158,11 @@ rtems_status_code bsp_interrupt_vector_disable( rtems_vector_number irqnum)
return RTEMS_SUCCESSFUL; return RTEMS_SUCCESSFUL;
} }
rtems_status_code bsp_interrupt_facility_initialize(void) void bsp_interrupt_facility_initialize(void)
{ {
/* Install exception handler */ rtems_status_code sc;
if (ppc_exc_set_handler( ASM_EXT_VECTOR, psim_exception_handler)) {
return RTEMS_IO_ERROR;
}
return RTEMS_SUCCESSFUL; /* Install exception handler */
sc = ppc_exc_set_handler( ASM_EXT_VECTOR, psim_exception_handler);
_Assert_Unused_variable_equals( sc, RTEMS_SUCCESSFUL);
} }

View File

@@ -94,12 +94,11 @@ rtems_status_code bsp_interrupt_vector_disable( rtems_vector_number irqnum)
return RTEMS_SUCCESSFUL; return RTEMS_SUCCESSFUL;
} }
rtems_status_code bsp_interrupt_facility_initialize(void) void bsp_interrupt_facility_initialize(void)
{ {
/* Install exception handler */ rtems_status_code sc;
if (ppc_exc_set_handler( ASM_EXT_VECTOR, qemuppc_exception_handler)) {
return RTEMS_IO_ERROR;
}
return RTEMS_SUCCESSFUL; /* Install exception handler */
sc = ppc_exc_set_handler( ASM_EXT_VECTOR, qemuppc_exception_handler);
_Assert_Unused_variable_equals( sc, RTEMS_SUCCESSFUL);
} }

View File

@@ -181,7 +181,7 @@ void bsp_interrupt_dispatch(uintptr_t exception_number)
} }
} }
rtems_status_code bsp_interrupt_facility_initialize(void) void bsp_interrupt_facility_initialize(void)
{ {
unsigned int i; unsigned int i;
@@ -458,7 +458,7 @@ static void pic_global_timer_init(void)
} }
} }
rtems_status_code bsp_interrupt_facility_initialize(void) void bsp_interrupt_facility_initialize(void)
{ {
rtems_vector_number i = 0; rtems_vector_number i = 0;
uint32_t processor_id = ppc_processor_id(); uint32_t processor_id = ppc_processor_id();
@@ -494,8 +494,6 @@ rtems_status_code bsp_interrupt_facility_initialize(void)
qoriq.pic.eoi = 0; qoriq.pic.eoi = 0;
qoriq.pic.whoami; qoriq.pic.whoami;
} }
return RTEMS_SUCCESSFUL;
} }
#endif /* QORIQ_IS_HYPERVISOR_GUEST */ #endif /* QORIQ_IS_HYPERVISOR_GUEST */

View File

@@ -151,11 +151,10 @@ rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
return RTEMS_SUCCESSFUL; return RTEMS_SUCCESSFUL;
} }
rtems_status_code bsp_interrupt_facility_initialize(void) void bsp_interrupt_facility_initialize(void)
{ {
/* /*
* Initialize RTEMS IRQ system * Initialize RTEMS IRQ system
*/ */
BSP_rtems_irq_mng_init(0); BSP_rtems_irq_mng_init(0);
return RTEMS_SUCCESSFUL;
} }

View File

@@ -79,7 +79,7 @@ rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
return RTEMS_SUCCESSFUL; return RTEMS_SUCCESSFUL;
} }
rtems_status_code bsp_interrupt_facility_initialize(void) void bsp_interrupt_facility_initialize(void)
{ {
return RTEMS_SUCCESSFUL; /* Nothing to do */
} }

View File

@@ -226,8 +226,10 @@ static int BSP_irq_handle_at_siu( unsigned excNum)
/* /*
* Activate the CPIC * Activate the CPIC
*/ */
static rtems_status_code mpc8xx_cpic_initialize( void) static void mpc8xx_cpic_initialize( void)
{ {
rtems_status_code sc;
/* /*
* mask off all interrupts * mask off all interrupts
*/ */
@@ -240,20 +242,19 @@ static rtems_status_code mpc8xx_cpic_initialize( void)
/* /*
* enable CPIC interrupt in SIU interrupt controller * enable CPIC interrupt in SIU interrupt controller
*/ */
return bsp_irq_enable_at_SIU(BSP_CPM_INTERRUPT); sc = bsp_irq_enable_at_SIU(BSP_CPM_INTERRUPT);
_Assert_Unused_variable_equals(sc, RTEMS_SUCCESSFUL);
} }
/* /*
* Activate the SIU interrupt controller * Activate the SIU interrupt controller
*/ */
static rtems_status_code mpc8xx_siu_int_initialize( void) static void mpc8xx_siu_int_initialize( void)
{ {
/* /*
* mask off all interrupts * mask off all interrupts
*/ */
m8xx.simask = 0; m8xx.simask = 0;
return RTEMS_SUCCESSFUL;
} }
static int mpc8xx_exception_handler(BSP_Exception_frame *frame, static int mpc8xx_exception_handler(BSP_Exception_frame *frame,
@@ -262,16 +263,17 @@ static int mpc8xx_exception_handler(BSP_Exception_frame *frame,
return BSP_irq_handle_at_siu(exception_number); return BSP_irq_handle_at_siu(exception_number);
} }
rtems_status_code bsp_interrupt_facility_initialize() void bsp_interrupt_facility_initialize()
{ {
rtems_status_code sc;
/* Install exception handler */ /* Install exception handler */
if (ppc_exc_set_handler(ASM_EXT_VECTOR, mpc8xx_exception_handler)) { sc = ppc_exc_set_handler(ASM_EXT_VECTOR, mpc8xx_exception_handler);
return RTEMS_IO_ERROR; _Assert_Unused_variable_equals(sc, RTEMS_SUCCESSFUL);
}
/* Initialize the SIU interrupt controller */ /* Initialize the SIU interrupt controller */
if (mpc8xx_siu_int_initialize()) { mpc8xx_siu_int_initialize();
return RTEMS_IO_ERROR;
}
/* Initialize the CPIC interrupt controller */ /* Initialize the CPIC interrupt controller */
return mpc8xx_cpic_initialize(); mpc8xx_cpic_initialize();
} }

View File

@@ -203,11 +203,12 @@ static int C_dispatch_irq_handler(BSP_Exception_frame *frame, unsigned int excNu
return 0; return 0;
} }
rtems_status_code bsp_interrupt_facility_initialize(void) void bsp_interrupt_facility_initialize(void)
{ {
rtems_status_code sc;
opb_intc_init(); opb_intc_init();
ppc_exc_set_handler(ASM_EXT_VECTOR, C_dispatch_irq_handler); sc = ppc_exc_set_handler(ASM_EXT_VECTOR, C_dispatch_irq_handler);
_Assert_Unused_variable_equals(sc, RTEMS_SUCCESSFUL);
return RTEMS_SUCCESSFUL;
} }

View File

@@ -75,7 +75,7 @@ void _RISCV_Interrupt_dispatch(uintptr_t mcause, Per_CPU_Control *cpu_self)
} }
} }
rtems_status_code bsp_interrupt_facility_initialize(void) void bsp_interrupt_facility_initialize(void)
{ {
/* /*
@@ -83,8 +83,6 @@ rtems_status_code bsp_interrupt_facility_initialize(void)
* bsp_start_on_secondary_processor(). * bsp_start_on_secondary_processor().
*/ */
set_csr(mie, MIP_MEIP); set_csr(mie, MIP_MEIP);
return RTEMS_SUCCESSFUL;
} }
rtems_status_code bsp_interrupt_get_attributes( rtems_status_code bsp_interrupt_get_attributes(

View File

@@ -215,15 +215,13 @@ static void riscv_plic_init(const void *fdt)
set_csr(mie, MIP_MEIP); set_csr(mie, MIP_MEIP);
} }
rtems_status_code bsp_interrupt_facility_initialize(void) void bsp_interrupt_facility_initialize(void)
{ {
const void *fdt; const void *fdt;
fdt = bsp_fdt_get(); fdt = bsp_fdt_get();
riscv_clint_init(fdt); riscv_clint_init(fdt);
riscv_plic_init(fdt); riscv_plic_init(fdt);
return RTEMS_SUCCESSFUL;
} }
rtems_status_code bsp_interrupt_get_attributes( rtems_status_code bsp_interrupt_get_attributes(

View File

@@ -208,7 +208,7 @@ static void enable_fiq(void)
#endif #endif
} }
rtems_status_code bsp_interrupt_facility_initialize(void) void bsp_interrupt_facility_initialize(void)
{ {
volatile gic_cpuif *cpuif = GIC_CPUIF; volatile gic_cpuif *cpuif = GIC_CPUIF;
volatile gic_dist *dist = ARM_GIC_DIST; volatile gic_dist *dist = ARM_GIC_DIST;
@@ -239,7 +239,6 @@ rtems_status_code bsp_interrupt_facility_initialize(void)
dist->icddcr = GIC_DIST_ICDDCR_ENABLE_GRP_1 | GIC_DIST_ICDDCR_ENABLE; dist->icddcr = GIC_DIST_ICDDCR_ENABLE_GRP_1 | GIC_DIST_ICDDCR_ENABLE;
enable_fiq(); enable_fiq();
return RTEMS_SUCCESSFUL;
} }
#ifdef RTEMS_SMP #ifdef RTEMS_SMP

View File

@@ -388,7 +388,7 @@ static void gicv3_init_cpu_interface(void)
WRITE_SR(ICC_CTLR, 0x0); WRITE_SR(ICC_CTLR, 0x0);
} }
rtems_status_code bsp_interrupt_facility_initialize(void) void bsp_interrupt_facility_initialize(void)
{ {
volatile gic_dist *dist = ARM_GIC_DIST; volatile gic_dist *dist = ARM_GIC_DIST;
uint32_t id_count = get_id_count(dist); uint32_t id_count = get_id_count(dist);
@@ -423,7 +423,6 @@ rtems_status_code bsp_interrupt_facility_initialize(void)
} }
gicv3_init_cpu_interface(); gicv3_init_cpu_interface();
return RTEMS_SUCCESSFUL;
} }
#ifdef RTEMS_SMP #ifdef RTEMS_SMP

View File

@@ -93,7 +93,7 @@ rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
return RTEMS_UNSATISFIED; return RTEMS_UNSATISFIED;
} }
rtems_status_code bsp_interrupt_facility_initialize(void) void bsp_interrupt_facility_initialize(void)
{ {
return RTEMS_NOT_IMPLEMENTED; /* Nothing to do */
} }

View File

@@ -160,13 +160,7 @@ rtems_interrupt_entry *bsp_interrupt_entry_find(
void bsp_interrupt_initialize( void ) void bsp_interrupt_initialize( void )
{ {
rtems_status_code sc; bsp_interrupt_facility_initialize();
sc = bsp_interrupt_facility_initialize();
if ( sc != RTEMS_SUCCESSFUL ) {
bsp_fatal( BSP_FATAL_INTERRUPT_INITIALIZATION );
}
bsp_interrupt_set_initialized(); bsp_interrupt_set_initialized();
} }

View File

@@ -45,7 +45,7 @@ bool bsp_interrupt_is_valid_vector(rtems_vector_number vector)
Processor_mask leon3_interrupt_affinities[BSP_INTERRUPT_VECTOR_MAX_STD + 1]; Processor_mask leon3_interrupt_affinities[BSP_INTERRUPT_VECTOR_MAX_STD + 1];
#endif #endif
rtems_status_code bsp_interrupt_facility_initialize(void) void bsp_interrupt_facility_initialize(void)
{ {
#if defined(RTEMS_SMP) #if defined(RTEMS_SMP)
Processor_mask affinity; Processor_mask affinity;
@@ -57,8 +57,6 @@ rtems_status_code bsp_interrupt_facility_initialize(void)
leon3_interrupt_affinities[i] = affinity; leon3_interrupt_affinities[i] = affinity;
} }
#endif #endif
return RTEMS_SUCCESSFUL;
} }
rtems_status_code bsp_interrupt_get_attributes( rtems_status_code bsp_interrupt_get_attributes(

View File

@@ -35,10 +35,9 @@ bool bsp_interrupt_is_valid_vector(rtems_vector_number vector)
return vector <= BSP_INTERRUPT_VECTOR_MAX_STD; return vector <= BSP_INTERRUPT_VECTOR_MAX_STD;
} }
rtems_status_code bsp_interrupt_facility_initialize(void) void bsp_interrupt_facility_initialize(void)
{ {
/* Nothing to do */ /* Nothing to do */
return RTEMS_SUCCESSFUL;
} }
static bool is_maskable(rtems_vector_number vector) static bool is_maskable(rtems_vector_number vector)

View File

@@ -129,7 +129,7 @@ void amd64_dispatch_isr(rtems_vector_number vector)
bsp_interrupt_handler_dispatch(vector); bsp_interrupt_handler_dispatch(vector);
} }
rtems_status_code bsp_interrupt_facility_initialize(void) void bsp_interrupt_facility_initialize(void)
{ {
uintptr_t old; uintptr_t old;
for (uint32_t i = 0; i < BSP_IRQ_VECTOR_NUMBER; i++) { for (uint32_t i = 0; i < BSP_IRQ_VECTOR_NUMBER; i++) {
@@ -137,8 +137,6 @@ rtems_status_code bsp_interrupt_facility_initialize(void)
} }
lidt(&idtr); lidt(&idtr);
return RTEMS_SUCCESSFUL;
} }
rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector) rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)