From e9f46c7402aaf2fc39bb7a4174ad691b38cbbe81 Mon Sep 17 00:00:00 2001 From: Jens Wiklander Date: Tue, 13 Aug 2019 12:25:20 +0200 Subject: core: replace thread_nintr_handler_ptr with weak function Removes registration of platform specific secure interrupt handler in thread_nintr_handler_ptr. Instead a __weak overridable itr_core_handler() is provided. Platforms which expects to receive secure interrupts must override the default function. The default function calls panic() if called. With this also nintr is removed from struct thread_handlers and consequently all platforms are updated to stop using that field. Acked-by: Jerome Forissier Signed-off-by: Jens Wiklander --- core/arch/arm/include/kernel/thread.h | 12 ------------ core/arch/arm/kernel/thread.c | 2 -- core/arch/arm/kernel/thread_a32.S | 4 +--- core/arch/arm/kernel/thread_a64.S | 4 +--- core/arch/arm/kernel/thread_optee_smc_a32.S | 5 +---- core/arch/arm/kernel/thread_optee_smc_a64.S | 4 +--- core/arch/arm/kernel/thread_private.h | 1 - core/arch/arm/plat-bcm/main.c | 6 ++---- core/arch/arm/plat-d02/main.c | 8 -------- core/arch/arm/plat-hikey/main.c | 8 -------- core/arch/arm/plat-hisilicon/main.c | 8 -------- core/arch/arm/plat-imx/main.c | 12 +++++------- core/arch/arm/plat-k3/main.c | 4 ++-- core/arch/arm/plat-ls/main.c | 8 -------- core/arch/arm/plat-marvell/main.c | 8 +++----- core/arch/arm/plat-mediatek/main.c | 8 -------- core/arch/arm/plat-poplar/main.c | 8 -------- core/arch/arm/plat-rcar/main.c | 8 -------- core/arch/arm/plat-rockchip/main.c | 6 ------ core/arch/arm/plat-rpi3/main.c | 6 ------ core/arch/arm/plat-sam/main.c | 6 ------ core/arch/arm/plat-sprd/main.c | 8 +++----- core/arch/arm/plat-stm/main.c | 10 ++++------ core/arch/arm/plat-stm32mp1/main.c | 12 +++++------- core/arch/arm/plat-sunxi/main.c | 6 ------ core/arch/arm/plat-synquacer/main.c | 8 +++----- core/arch/arm/plat-ti/main.c | 29 ++++++++++++++--------------- core/arch/arm/plat-vexpress/main.c | 6 ++---- core/arch/arm/plat-zynq7k/main.c | 8 -------- core/arch/arm/plat-zynqmp/main.c | 7 +++---- 30 files changed, 50 insertions(+), 180 deletions(-) (limited to 'core/arch/arm') diff --git a/core/arch/arm/include/kernel/thread.h b/core/arch/arm/include/kernel/thread.h index d938b5c2..3e4c0e70 100644 --- a/core/arch/arm/include/kernel/thread.h +++ b/core/arch/arm/include/kernel/thread.h @@ -212,21 +212,9 @@ struct thread_specific_data { #endif /*__ASSEMBLER__*/ #ifndef __ASSEMBLER__ -typedef void (*thread_nintr_handler_t)(void); typedef unsigned long (*thread_pm_handler_t)(unsigned long a0, unsigned long a1); struct thread_handlers { - /* - * fiq is called as a regular function and normal ARM Calling - * Convention applies. - * - * This handler handles native interrupts which can't be preemted. This - * handler is executed with a limited stack. This handler must not cause - * any aborts or reenenable native interrupts which are temporarily - * masked while executing this handler. - */ - thread_nintr_handler_t nintr; - /* * Power management handlers triggered from ARM Trusted Firmware. * Not used when using internal monitor. diff --git a/core/arch/arm/kernel/thread.c b/core/arch/arm/kernel/thread.c index 63823c42..54d72932 100644 --- a/core/arch/arm/kernel/thread.c +++ b/core/arch/arm/kernel/thread.c @@ -114,7 +114,6 @@ const uint32_t stack_tmp_stride = sizeof(stack_tmp[0]); KEEP_PAGER(stack_tmp_export); KEEP_PAGER(stack_tmp_stride); -thread_nintr_handler_t thread_nintr_handler_ptr __nex_bss; thread_pm_handler_t thread_cpu_on_handler_ptr __nex_bss; thread_pm_handler_t thread_cpu_off_handler_ptr __nex_bss; thread_pm_handler_t thread_cpu_suspend_handler_ptr __nex_bss; @@ -762,7 +761,6 @@ int thread_get_id(void) static void init_handlers(const struct thread_handlers *handlers) { - thread_nintr_handler_ptr = handlers->nintr; thread_cpu_on_handler_ptr = handlers->cpu_on; thread_cpu_off_handler_ptr = handlers->cpu_off; thread_cpu_suspend_handler_ptr = handlers->cpu_suspend; diff --git a/core/arch/arm/kernel/thread_a32.S b/core/arch/arm/kernel/thread_a32.S index 1c095da3..47d63875 100644 --- a/core/arch/arm/kernel/thread_a32.S +++ b/core/arch/arm/kernel/thread_a32.S @@ -433,9 +433,7 @@ END_FUNC thread_unwind_user_mode .endif bl thread_check_canaries - ldr lr, =thread_nintr_handler_ptr - ldr lr, [lr] - blx lr + bl itr_core_handler mrs r0, spsr cmp_spsr_user_mode r0 diff --git a/core/arch/arm/kernel/thread_a64.S b/core/arch/arm/kernel/thread_a64.S index 12bd89e6..e7dbe944 100644 --- a/core/arch/arm/kernel/thread_a64.S +++ b/core/arch/arm/kernel/thread_a64.S @@ -947,9 +947,7 @@ END_FUNC el0_sync_abort stp x30, x2, [sp, #ELX_NINTR_REC_LR] bl thread_check_canaries - adr x16, thread_nintr_handler_ptr - ldr x16, [x16] - blr x16 + bl itr_core_handler /* * Restore registers diff --git a/core/arch/arm/kernel/thread_optee_smc_a32.S b/core/arch/arm/kernel/thread_optee_smc_a32.S index 97834fa7..cb7fbfaf 100644 --- a/core/arch/arm/kernel/thread_optee_smc_a32.S +++ b/core/arch/arm/kernel/thread_optee_smc_a32.S @@ -49,10 +49,7 @@ UNWIND( .fnstart) UNWIND( .cantunwind) /* Secure Monitor received a FIQ and passed control to us. */ bl thread_check_canaries - ldr lr, =thread_nintr_handler_ptr - ldr lr, [lr] - blx lr - mov r1, r0 + bl itr_core_handler ldr r0, =TEESMC_OPTEED_RETURN_FIQ_DONE smc #0 b . /* SMC should not return */ diff --git a/core/arch/arm/kernel/thread_optee_smc_a64.S b/core/arch/arm/kernel/thread_optee_smc_a64.S index d95c6db1..49aa05b3 100644 --- a/core/arch/arm/kernel/thread_optee_smc_a64.S +++ b/core/arch/arm/kernel/thread_optee_smc_a64.S @@ -46,9 +46,7 @@ END_FUNC vector_fast_smc_entry LOCAL_FUNC vector_fiq_entry , : /* Secure Monitor received a FIQ and passed control to us. */ bl thread_check_canaries - adr x16, thread_nintr_handler_ptr - ldr x16, [x16] - blr x16 + bl itr_core_handler ldr x0, =TEESMC_OPTEED_RETURN_FIQ_DONE smc #0 b . /* SMC should not return */ diff --git a/core/arch/arm/kernel/thread_private.h b/core/arch/arm/kernel/thread_private.h index c0b3a856..cf9153ae 100644 --- a/core/arch/arm/kernel/thread_private.h +++ b/core/arch/arm/kernel/thread_private.h @@ -121,7 +121,6 @@ struct thread_ctx { extern const void *stack_tmp_export; extern const uint32_t stack_tmp_stride; extern struct thread_ctx threads[]; -extern thread_nintr_handler_t thread_nintr_handler_ptr; extern thread_pm_handler_t thread_cpu_on_handler_ptr; extern thread_pm_handler_t thread_cpu_off_handler_ptr; extern thread_pm_handler_t thread_cpu_suspend_handler_ptr; diff --git a/core/arch/arm/plat-bcm/main.c b/core/arch/arm/plat-bcm/main.c index 930a0ef6..5e31f8e8 100644 --- a/core/arch/arm/plat-bcm/main.c +++ b/core/arch/arm/plat-bcm/main.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include @@ -16,10 +17,7 @@ #include #include -static void secure_intr_handler(void); - static const struct thread_handlers handlers = { - .nintr = secure_intr_handler, .cpu_on = cpu_on_handler, .cpu_off = pm_do_nothing, .cpu_suspend = pm_do_nothing, @@ -65,7 +63,7 @@ void console_init(void) register_serial_console(&console_data.chip); } -static void secure_intr_handler(void) +void itr_core_handler(void) { gic_it_handle(&gic_data); } diff --git a/core/arch/arm/plat-d02/main.c b/core/arch/arm/plat-d02/main.c index 020827d4..a4f418a8 100644 --- a/core/arch/arm/plat-d02/main.c +++ b/core/arch/arm/plat-d02/main.c @@ -15,10 +15,7 @@ #include #include -static void main_fiq(void); - static const struct thread_handlers handlers = { - .nintr = main_fiq, .cpu_on = cpu_on_handler, .cpu_off = pm_do_nothing, .cpu_suspend = pm_do_nothing, @@ -37,11 +34,6 @@ const struct thread_handlers *generic_boot_get_handlers(void) return &handlers; } -static void main_fiq(void) -{ - panic(); -} - void console_init(void) { hi16xx_uart_init(&console_data, CONSOLE_UART_BASE, diff --git a/core/arch/arm/plat-hikey/main.c b/core/arch/arm/plat-hikey/main.c index 7a7bf6d9..90ca77a3 100644 --- a/core/arch/arm/plat-hikey/main.c +++ b/core/arch/arm/plat-hikey/main.c @@ -24,10 +24,7 @@ #include #include -static void main_fiq(void); - static const struct thread_handlers handlers = { - .nintr = main_fiq, .cpu_on = cpu_on_handler, .cpu_off = pm_do_nothing, .cpu_suspend = pm_do_nothing, @@ -62,11 +59,6 @@ const struct thread_handlers *generic_boot_get_handlers(void) return &handlers; } -static void main_fiq(void) -{ - panic(); -} - void console_init(void) { pl011_init(&console_data, CONSOLE_UART_BASE, CONSOLE_UART_CLK_IN_HZ, diff --git a/core/arch/arm/plat-hisilicon/main.c b/core/arch/arm/plat-hisilicon/main.c index b8f6ca9a..b7dff433 100644 --- a/core/arch/arm/plat-hisilicon/main.c +++ b/core/arch/arm/plat-hisilicon/main.c @@ -16,10 +16,7 @@ #include #include -static void main_fiq(void); - static const struct thread_handlers handlers = { - .nintr = main_fiq, .cpu_on = pm_panic, .cpu_off = pm_panic, .cpu_suspend = pm_panic, @@ -45,11 +42,6 @@ const struct thread_handlers *generic_boot_get_handlers(void) return &handlers; } -static void main_fiq(void) -{ - panic(); -} - void console_init(void) { pl011_init(&console_data, CONSOLE_UART_BASE, diff --git a/core/arch/arm/plat-imx/main.c b/core/arch/arm/plat-imx/main.c index 76b4f534..d7994d50 100644 --- a/core/arch/arm/plat-imx/main.c +++ b/core/arch/arm/plat-imx/main.c @@ -32,26 +32,24 @@ #include #include #include -#include #include +#include #include +#include #include #include #include -#include #include +#include #include -#include #include +#include #include #include - -static void main_fiq(void); static struct gic_data gic_data; static const struct thread_handlers handlers = { - .nintr = main_fiq, #if defined(CFG_WITH_ARM_TRUSTED_FW) .cpu_on = cpu_on_handler, .cpu_off = pm_do_nothing, @@ -125,7 +123,7 @@ const struct thread_handlers *generic_boot_get_handlers(void) return &handlers; } -static void main_fiq(void) +void itr_core_handler(void) { gic_it_handle(&gic_data); } diff --git a/core/arch/arm/plat-k3/main.c b/core/arch/arm/plat-k3/main.c index 85c84cc9..60515e39 100644 --- a/core/arch/arm/plat-k3/main.c +++ b/core/arch/arm/plat-k3/main.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include @@ -47,13 +48,12 @@ void main_secondary_init_gic(void) gic_cpu_init(&gic_data); } -static void main_fiq(void) +void itr_core_handler(void) { gic_it_handle(&gic_data); } static const struct thread_handlers handlers = { - .nintr = main_fiq, .cpu_on = cpu_on_handler, .cpu_off = pm_do_nothing, .cpu_suspend = pm_do_nothing, diff --git a/core/arch/arm/plat-ls/main.c b/core/arch/arm/plat-ls/main.c index 4303ec5c..6ad1664d 100644 --- a/core/arch/arm/plat-ls/main.c +++ b/core/arch/arm/plat-ls/main.c @@ -51,10 +51,7 @@ #include #include -static void main_fiq(void); - static const struct thread_handlers handlers = { - .nintr = main_fiq, #if defined(CFG_WITH_ARM_TRUSTED_FW) .cpu_on = cpu_on_handler, .cpu_off = pm_do_nothing, @@ -88,11 +85,6 @@ const struct thread_handlers *generic_boot_get_handlers(void) return &handlers; } -static void main_fiq(void) -{ - panic(); -} - #ifdef CFG_ARM32_core void plat_cpu_reset_late(void) { diff --git a/core/arch/arm/plat-marvell/main.c b/core/arch/arm/plat-marvell/main.c index 2e4715b6..ddbd2053 100644 --- a/core/arch/arm/plat-marvell/main.c +++ b/core/arch/arm/plat-marvell/main.c @@ -36,9 +36,10 @@ #endif #include #include -#include +#include #include #include +#include #include #include #include @@ -48,10 +49,7 @@ #include #include -static void main_fiq(void); - static const struct thread_handlers handlers = { - .nintr = main_fiq, .cpu_on = cpu_on_handler, .cpu_off = pm_do_nothing, .cpu_suspend = pm_do_nothing, @@ -97,7 +95,7 @@ void main_init_gic(void) } #endif -static void main_fiq(void) +void itr_core_handler(void) { gic_it_handle(&gic_data); } diff --git a/core/arch/arm/plat-mediatek/main.c b/core/arch/arm/plat-mediatek/main.c index bb8253b4..6a38e58c 100644 --- a/core/arch/arm/plat-mediatek/main.c +++ b/core/arch/arm/plat-mediatek/main.c @@ -14,13 +14,10 @@ #include #include -static void main_fiq(void); - register_phys_mem_pgdir(MEM_AREA_IO_NSEC, CONSOLE_UART_BASE, SERIAL8250_UART_REG_SIZE); static const struct thread_handlers handlers = { - .nintr = main_fiq, .cpu_on = cpu_on_handler, .cpu_off = pm_do_nothing, .cpu_suspend = pm_do_nothing, @@ -36,11 +33,6 @@ const struct thread_handlers *generic_boot_get_handlers(void) return &handlers; } -static void main_fiq(void) -{ - panic(); -} - void console_init(void) { serial8250_uart_init(&console_data, CONSOLE_UART_BASE, diff --git a/core/arch/arm/plat-poplar/main.c b/core/arch/arm/plat-poplar/main.c index 4d3c46ed..a048518c 100644 --- a/core/arch/arm/plat-poplar/main.c +++ b/core/arch/arm/plat-poplar/main.c @@ -18,10 +18,7 @@ #include #include -static void main_fiq(void); - static const struct thread_handlers handlers = { - .nintr = main_fiq, .cpu_on = cpu_on_handler, .cpu_off = pm_do_nothing, .cpu_suspend = pm_do_nothing, @@ -41,11 +38,6 @@ const struct thread_handlers *generic_boot_get_handlers(void) return &handlers; } -static void main_fiq(void) -{ - panic(); -} - void console_init(void) { pl011_init(&console_data, CONSOLE_UART_BASE, diff --git a/core/arch/arm/plat-rcar/main.c b/core/arch/arm/plat-rcar/main.c index 7964b135..de902285 100644 --- a/core/arch/arm/plat-rcar/main.c +++ b/core/arch/arm/plat-rcar/main.c @@ -51,10 +51,7 @@ register_dynamic_shm(NSEC_DDR_2_BASE, NSEC_DDR_2_SIZE); register_dynamic_shm(NSEC_DDR_3_BASE, NSEC_DDR_3_SIZE); #endif -static void main_fiq(void); - static const struct thread_handlers handlers __nex_data = { - .nintr = main_fiq, .cpu_on = cpu_on_handler, .cpu_off = pm_do_nothing, .cpu_suspend = pm_do_nothing, @@ -70,11 +67,6 @@ const struct thread_handlers *generic_boot_get_handlers(void) return &handlers; } -static void main_fiq(void) -{ - panic(); -} - void console_init(void) { scif_uart_init(&console_data, CONSOLE_UART_BASE); diff --git a/core/arch/arm/plat-rockchip/main.c b/core/arch/arm/plat-rockchip/main.c index ef7d9169..62d1b1b0 100644 --- a/core/arch/arm/plat-rockchip/main.c +++ b/core/arch/arm/plat-rockchip/main.c @@ -45,13 +45,7 @@ static struct serial8250_uart_data console_data; register_phys_mem_pgdir(MEM_AREA_IO_SEC, PERIPH_BASE, PERIPH_SIZE); register_phys_mem_pgdir(MEM_AREA_IO_NSEC, ISRAM_BASE, ISRAM_SIZE); -static void main_fiq(void) -{ - panic(); -} - static const struct thread_handlers handlers = { - .nintr = main_fiq, .cpu_on = pm_do_nothing, .cpu_off = pm_do_nothing, .cpu_suspend = pm_do_nothing, diff --git a/core/arch/arm/plat-rpi3/main.c b/core/arch/arm/plat-rpi3/main.c index 9b68dc13..5196c762 100644 --- a/core/arch/arm/plat-rpi3/main.c +++ b/core/arch/arm/plat-rpi3/main.c @@ -41,13 +41,7 @@ register_phys_mem_pgdir(MEM_AREA_IO_NSEC, CONSOLE_UART_BASE, SERIAL8250_UART_REG_SIZE); -static void main_fiq(void) -{ - panic(); -} - static const struct thread_handlers handlers = { - .nintr = main_fiq, .cpu_on = cpu_on_handler, .cpu_off = pm_do_nothing, .cpu_suspend = pm_do_nothing, diff --git a/core/arch/arm/plat-sam/main.c b/core/arch/arm/plat-sam/main.c index 65c89263..7a806bbf 100644 --- a/core/arch/arm/plat-sam/main.c +++ b/core/arch/arm/plat-sam/main.c @@ -47,13 +47,7 @@ #include #include -static void main_fiq(void) -{ - panic(); -} - static const struct thread_handlers handlers = { - .nintr = main_fiq, .cpu_on = pm_panic, .cpu_off = pm_panic, .cpu_suspend = pm_panic, diff --git a/core/arch/arm/plat-sprd/main.c b/core/arch/arm/plat-sprd/main.c index 754214bf..dffb3c57 100644 --- a/core/arch/arm/plat-sprd/main.c +++ b/core/arch/arm/plat-sprd/main.c @@ -28,13 +28,14 @@ #include #include +#include #include #include #include #include -#include #include #include +#include register_phys_mem_pgdir(MEM_AREA_IO_NSEC, ROUNDDOWN(CONSOLE_UART_BASE, CORE_MMU_PGDIR_SIZE), @@ -48,10 +49,7 @@ register_phys_mem_pgdir(MEM_AREA_IO_SEC, ROUNDDOWN(GIC_BASE + GICD_OFFSET, CORE_MMU_PGDIR_SIZE), CORE_MMU_PGDIR_SIZE); -static void main_fiq(void); - static const struct thread_handlers handlers = { - .nintr = main_fiq, .cpu_on = cpu_on_handler, .cpu_off = pm_do_nothing, .cpu_suspend = pm_do_nothing, @@ -84,7 +82,7 @@ void main_init_gic(void) itr_init(&gic_data.chip); } -static void main_fiq(void) +void itr_core_handler(void) { gic_it_handle(&gic_data); } diff --git a/core/arch/arm/plat-stm/main.c b/core/arch/arm/plat-stm/main.c index ca31b11a..763c1691 100644 --- a/core/arch/arm/plat-stm/main.c +++ b/core/arch/arm/plat-stm/main.c @@ -9,16 +9,17 @@ #include #include #include +#include #include #include #include #include -#include #include +#include #include #include -#include #include +#include #include #include @@ -36,8 +37,6 @@ register_ddr(DRAM1_BASE, DRAM1_SIZE); static struct gic_data gic_data; static struct stih_asc_pd console_data; -static void main_fiq(void); - #if defined(PLATFORM_FLAVOR_b2260) static bool ns_resources_ready(void) { @@ -61,7 +60,6 @@ uint32_t tee_entry_std(struct optee_msg_arg *arg, uint32_t num_params) #endif static const struct thread_handlers handlers = { - .nintr = main_fiq, .cpu_on = pm_panic, .cpu_off = pm_panic, .cpu_suspend = pm_panic, @@ -176,7 +174,7 @@ void main_secondary_init_gic(void) gic_cpu_init(&gic_data); } -static void main_fiq(void) +void itr_core_handler(void) { gic_it_handle(&gic_data); } diff --git a/core/arch/arm/plat-stm32mp1/main.c b/core/arch/arm/plat-stm32mp1/main.c index abb7c7f9..166e78d2 100644 --- a/core/arch/arm/plat-stm32mp1/main.c +++ b/core/arch/arm/plat-stm32mp1/main.c @@ -8,11 +8,12 @@ #include #include #include -#include #include +#include #include -#include #include +#include +#include #include #include #include @@ -21,8 +22,8 @@ #include #include #include -#include #include +#include #include #ifdef CFG_WITH_NSEC_GPIOS @@ -54,10 +55,7 @@ register_phys_mem_pgdir(MEM_AREA_IO_SEC, RNG1_BASE, SMALL_PAGE_SIZE); register_phys_mem_pgdir(MEM_AREA_IO_SEC, TAMP_BASE, SMALL_PAGE_SIZE); register_phys_mem_pgdir(MEM_AREA_IO_SEC, USART1_BASE, SMALL_PAGE_SIZE); -static void main_fiq(void); - static const struct thread_handlers handlers = { - .nintr = main_fiq, .cpu_on = pm_panic, .cpu_off = pm_panic, .cpu_suspend = pm_panic, @@ -181,7 +179,7 @@ service_init_late(init_console_from_dt); */ static struct gic_data gic_data; -static void main_fiq(void) +void itr_core_handler(void) { gic_it_handle(&gic_data); } diff --git a/core/arch/arm/plat-sunxi/main.c b/core/arch/arm/plat-sunxi/main.c index 7c0f2cd2..15b62b8f 100644 --- a/core/arch/arm/plat-sunxi/main.c +++ b/core/arch/arm/plat-sunxi/main.c @@ -93,13 +93,7 @@ static struct gic_data gic_data; static void tzpc_init(void); #endif -static void main_fiq(void) -{ - panic(); -} - static const struct thread_handlers handlers = { - .nintr = main_fiq, #if defined(CFG_WITH_ARM_TRUSTED_FW) .cpu_on = cpu_on_handler, .cpu_off = pm_do_nothing, diff --git a/core/arch/arm/plat-synquacer/main.c b/core/arch/arm/plat-synquacer/main.c index 67129066..28c8748d 100644 --- a/core/arch/arm/plat-synquacer/main.c +++ b/core/arch/arm/plat-synquacer/main.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include @@ -16,15 +17,12 @@ #include #include #include +#include #include #include #include -#include - -static void main_fiq(void); static const struct thread_handlers handlers = { - .nintr = main_fiq, .cpu_on = cpu_on_handler, .cpu_off = pm_do_nothing, .cpu_suspend = pm_do_nothing, @@ -47,7 +45,7 @@ const struct thread_handlers *generic_boot_get_handlers(void) return &handlers; } -static void main_fiq(void) +void itr_core_handler(void) { gic_it_handle(&gic_data); } diff --git a/core/arch/arm/plat-ti/main.c b/core/arch/arm/plat-ti/main.c index 761c3373..8cd68062 100644 --- a/core/arch/arm/plat-ti/main.c +++ b/core/arch/arm/plat-ti/main.c @@ -3,28 +3,28 @@ * Copyright (c) 2015, Linaro Limited */ -#include -#include -#include -#include +#include #include +#include #include #include -#include #include -#include -#include -#include +#include #include #include -#include +#include +#include #include -#include +#include #include -#include -#include -#include +#include +#include #include +#include +#include +#include +#include +#include #define PLAT_HW_UNIQUE_KEY_LENGTH 32 @@ -59,13 +59,12 @@ void main_secondary_init_gic(void) gic_cpu_init(&gic_data); } -static void main_fiq(void) +void itr_core_handler(void) { gic_it_handle(&gic_data); } static const struct thread_handlers handlers = { - .nintr = main_fiq, .cpu_on = pm_panic, .cpu_off = pm_panic, .cpu_suspend = pm_panic, diff --git a/core/arch/arm/plat-vexpress/main.c b/core/arch/arm/plat-vexpress/main.c index 0016b884..1b0e583c 100644 --- a/core/arch/arm/plat-vexpress/main.c +++ b/core/arch/arm/plat-vexpress/main.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include @@ -26,10 +27,7 @@ #include #include -static void main_fiq(void); - static const struct thread_handlers handlers = { - .nintr = main_fiq, #if defined(CFG_WITH_ARM_TRUSTED_FW) .cpu_on = cpu_on_handler, .cpu_off = pm_do_nothing, @@ -105,7 +103,7 @@ void main_secondary_init_gic(void) #endif -static void main_fiq(void) +void itr_core_handler(void) { gic_it_handle(&gic_data); } diff --git a/core/arch/arm/plat-zynq7k/main.c b/core/arch/arm/plat-zynq7k/main.c index 6c9a60ef..ae0753da 100644 --- a/core/arch/arm/plat-zynq7k/main.c +++ b/core/arch/arm/plat-zynq7k/main.c @@ -46,10 +46,7 @@ #include #include -static void main_fiq(void); - static const struct thread_handlers handlers = { - .nintr = main_fiq, .cpu_on = pm_panic, .cpu_off = pm_panic, .cpu_suspend = pm_panic, @@ -72,11 +69,6 @@ const struct thread_handlers *generic_boot_get_handlers(void) return &handlers; } -static void main_fiq(void) -{ - panic(); -} - void plat_cpu_reset_late(void) { if (!get_core_pos()) { diff --git a/core/arch/arm/plat-zynqmp/main.c b/core/arch/arm/plat-zynqmp/main.c index f39cdda2..5c182c92 100644 --- a/core/arch/arm/plat-zynqmp/main.c +++ b/core/arch/arm/plat-zynqmp/main.c @@ -37,15 +37,15 @@ #include #include #include -#include +#include #include +#include #include #include #include #include #include -static void main_fiq(void); static struct gic_data gic_data; static struct cdns_uart_data console_data; @@ -62,7 +62,6 @@ register_phys_mem_pgdir(MEM_AREA_IO_SEC, CORE_MMU_PGDIR_SIZE); static const struct thread_handlers handlers = { - .nintr = main_fiq, #if defined(CFG_WITH_ARM_TRUSTED_FW) .cpu_on = cpu_on_handler, .cpu_off = pm_do_nothing, @@ -97,7 +96,7 @@ void main_init_gic(void) gic_init_base_addr(&gic_data, gicc_base, gicd_base); } -static void main_fiq(void) +void itr_core_handler(void) { gic_it_handle(&gic_data); } -- cgit v1.2.3