From 0f02791ae68318127877a9db78d03ceb35a92a99 Mon Sep 17 00:00:00 2001 From: ligd Date: Thu, 24 Mar 2022 21:21:34 +0800 Subject: [PATCH] armv8-m: add wake_func arm_should_generate_nonsecure_busfault Signed-off-by: ligd --- arch/arm/src/armv8-m/arm_securefault.c | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/arch/arm/src/armv8-m/arm_securefault.c b/arch/arm/src/armv8-m/arm_securefault.c index 5183ff93d6..a06a72b4f3 100644 --- a/arch/arm/src/armv8-m/arm_securefault.c +++ b/arch/arm/src/armv8-m/arm_securefault.c @@ -81,6 +81,19 @@ static void generate_nonsecure_busfault(void) * Public Functions ****************************************************************************/ +/**************************************************************************** + * Name: arm_securefault_should_generate + * + * Description: + * Check whether should generate non-secure IRQ from securefault + * + ****************************************************************************/ + +bool weak_function arm_should_generate_nonsecure_busfault(void) +{ + return true; +} + /**************************************************************************** * Name: arm_securefault * @@ -145,11 +158,15 @@ int arm_securefault(int irq, FAR void *context, FAR void *arg) putreg32(0xff, SAU_SFSR); #ifdef CONFIG_DEBUG_SECUREFAULT - generate_nonsecure_busfault(); -#else + if (arm_should_generate_nonsecure_busfault()) + { + generate_nonsecure_busfault(); + return OK; + } +#endif + up_irq_save(); PANIC(); -#endif return OK; }