From 2b3ec4172ddcd5fcf37c03c59a94300588dc90a2 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 10 Nov 2018 14:06:46 -0600 Subject: [PATCH] arch/: Add 'BOARD_ASSERT_RESET_VALUE' in config/Kconfig and replace reboot status '0' to 'CONFIG_BOARD_ASSERT_RESET_VALUE'. --- arch/arm/src/arm/up_assert.c | 4 ++-- arch/arm/src/armv6-m/up_assert.c | 4 ++-- arch/arm/src/armv7-a/arm_assert.c | 4 ++-- arch/arm/src/armv7-m/up_assert.c | 4 ++-- arch/arm/src/armv7-r/arm_assert.c | 4 ++-- arch/avr/src/common/up_assert.c | 4 ++-- arch/hc/src/m9s12/m9s12_assert.c | 4 ++-- arch/mips/src/mips32/up_assert.c | 4 ++-- arch/misoc/src/lm32/lm32_assert.c | 4 ++-- arch/or1k/src/common/up_assert.c | 4 ++-- arch/renesas/src/common/up_assert.c | 4 ++-- arch/risc-v/src/rv32im/up_assert.c | 4 ++-- arch/x86/src/common/up_assert.c | 4 ++-- arch/xtensa/src/common/xtensa_assert.c | 4 ++-- arch/z16/src/common/up_assert.c | 4 ++-- arch/z80/src/common/up_assert.c | 4 ++-- configs/Kconfig | 10 ++++++++++ 17 files changed, 42 insertions(+), 32 deletions(-) diff --git a/arch/arm/src/arm/up_assert.c b/arch/arm/src/arm/up_assert.c index 4dffc6cc21..a97f7457eb 100644 --- a/arch/arm/src/arm/up_assert.c +++ b/arch/arm/src/arm/up_assert.c @@ -298,7 +298,7 @@ static void _up_assert(int errorcode) for (; ; ) { #if CONFIG_BOARD_RESET_ON_ASSERT >= 1 - board_reset(0); + board_reset(CONFIG_BOARD_ASSERT_RESET_VALUE); #endif #ifdef CONFIG_ARCH_LEDS board_autoled_on(LED_PANIC); @@ -311,7 +311,7 @@ static void _up_assert(int errorcode) else { #if CONFIG_BOARD_RESET_ON_ASSERT >= 2 - board_reset(0); + board_reset(CONFIG_BOARD_ASSERT_RESET_VALUE); #endif exit(errorcode); } diff --git a/arch/arm/src/armv6-m/up_assert.c b/arch/arm/src/armv6-m/up_assert.c index 0410948fae..9d782b6dd9 100644 --- a/arch/arm/src/armv6-m/up_assert.c +++ b/arch/arm/src/armv6-m/up_assert.c @@ -352,7 +352,7 @@ static void _up_assert(int errorcode) for (; ; ) { #if CONFIG_BOARD_RESET_ON_ASSERT >= 1 - board_reset(0); + board_reset(CONFIG_BOARD_ASSERT_RESET_VALUE); #endif #ifdef CONFIG_ARCH_LEDS board_autoled_on(LED_PANIC); @@ -365,7 +365,7 @@ static void _up_assert(int errorcode) else { #if CONFIG_BOARD_RESET_ON_ASSERT >= 2 - board_reset(0); + board_reset(CONFIG_BOARD_ASSERT_RESET_VALUE); #endif exit(errorcode); } diff --git a/arch/arm/src/armv7-a/arm_assert.c b/arch/arm/src/armv7-a/arm_assert.c index b162d5e31a..02d045a81e 100644 --- a/arch/arm/src/armv7-a/arm_assert.c +++ b/arch/arm/src/armv7-a/arm_assert.c @@ -382,7 +382,7 @@ static void _up_assert(int errorcode) #endif #if CONFIG_BOARD_RESET_ON_ASSERT >= 1 - board_reset(0); + board_reset(CONFIG_BOARD_ASSERT_RESET_VALUE); #endif #ifdef CONFIG_ARCH_LEDS /* FLASH LEDs a 2Hz */ @@ -397,7 +397,7 @@ static void _up_assert(int errorcode) else { #if CONFIG_BOARD_RESET_ON_ASSERT >= 2 - board_reset(0); + board_reset(CONFIG_BOARD_ASSERT_RESET_VALUE); #endif exit(errorcode); } diff --git a/arch/arm/src/armv7-m/up_assert.c b/arch/arm/src/armv7-m/up_assert.c index 673dfa4f48..3895c8ee1d 100644 --- a/arch/arm/src/armv7-m/up_assert.c +++ b/arch/arm/src/armv7-m/up_assert.c @@ -381,7 +381,7 @@ static void _up_assert(int errorcode) #endif #if CONFIG_BOARD_RESET_ON_ASSERT >= 1 - board_reset(0); + board_reset(CONFIG_BOARD_ASSERT_RESET_VALUE); #endif #ifdef CONFIG_ARCH_LEDS board_autoled_on(LED_PANIC); @@ -394,7 +394,7 @@ static void _up_assert(int errorcode) else { #if CONFIG_BOARD_RESET_ON_ASSERT >= 2 - board_reset(0); + board_reset(CONFIG_BOARD_ASSERT_RESET_VALUE); #endif exit(errorcode); } diff --git a/arch/arm/src/armv7-r/arm_assert.c b/arch/arm/src/armv7-r/arm_assert.c index 9d2a8fe130..3f993d0470 100644 --- a/arch/arm/src/armv7-r/arm_assert.c +++ b/arch/arm/src/armv7-r/arm_assert.c @@ -353,7 +353,7 @@ static void _up_assert(int errorcode) for (; ; ) { #if CONFIG_BOARD_RESET_ON_ASSERT >= 1 - board_reset(0); + board_reset(CONFIG_BOARD_ASSERT_RESET_VALUE); #endif #ifdef CONFIG_ARCH_LEDS board_autoled_on(LED_PANIC); @@ -366,7 +366,7 @@ static void _up_assert(int errorcode) else { #if CONFIG_BOARD_RESET_ON_ASSERT >= 2 - board_reset(0); + board_reset(CONFIG_BOARD_ASSERT_RESET_VALUE); #endif exit(errorcode); } diff --git a/arch/avr/src/common/up_assert.c b/arch/avr/src/common/up_assert.c index e2c5862977..c7bf7af932 100644 --- a/arch/avr/src/common/up_assert.c +++ b/arch/avr/src/common/up_assert.c @@ -93,7 +93,7 @@ static void _up_assert(int errorcode) for (; ; ) { #if CONFIG_BOARD_RESET_ON_ASSERT >= 1 - board_reset(0); + board_reset(CONFIG_BOARD_ASSERT_RESET_VALUE); #endif #ifdef CONFIG_ARCH_LEDS board_autoled_on(LED_PANIC); @@ -106,7 +106,7 @@ static void _up_assert(int errorcode) else { #if CONFIG_BOARD_RESET_ON_ASSERT >= 2 - board_reset(0); + board_reset(CONFIG_BOARD_ASSERT_RESET_VALUE); #endif exit(errorcode); } diff --git a/arch/hc/src/m9s12/m9s12_assert.c b/arch/hc/src/m9s12/m9s12_assert.c index df98309806..fb1c424f1d 100644 --- a/arch/hc/src/m9s12/m9s12_assert.c +++ b/arch/hc/src/m9s12/m9s12_assert.c @@ -281,7 +281,7 @@ static void _up_assert(int errorcode) for (;;) { #if CONFIG_BOARD_RESET_ON_ASSERT >= 1 - board_reset(0); + board_reset(CONFIG_BOARD_ASSERT_RESET_VALUE); #endif #ifdef CONFIG_ARCH_LEDS board_autoled_on(LED_PANIC); @@ -294,7 +294,7 @@ static void _up_assert(int errorcode) else { #if CONFIG_BOARD_RESET_ON_ASSERT >= 2 - board_reset(0); + board_reset(CONFIG_BOARD_ASSERT_RESET_VALUE); #endif exit(errorcode); } diff --git a/arch/mips/src/mips32/up_assert.c b/arch/mips/src/mips32/up_assert.c index dae419248c..890f081487 100644 --- a/arch/mips/src/mips32/up_assert.c +++ b/arch/mips/src/mips32/up_assert.c @@ -92,7 +92,7 @@ static void _up_assert(int errorcode) for (; ; ) { #if CONFIG_BOARD_RESET_ON_ASSERT >= 1 - board_reset(0); + board_reset(CONFIG_BOARD_ASSERT_RESET_VALUE); #endif #ifdef CONFIG_ARCH_LEDS board_autoled_on(LED_PANIC); @@ -105,7 +105,7 @@ static void _up_assert(int errorcode) else { #if CONFIG_BOARD_RESET_ON_ASSERT >= 2 - board_reset(0); + board_reset(CONFIG_BOARD_ASSERT_RESET_VALUE); #endif exit(errorcode); } diff --git a/arch/misoc/src/lm32/lm32_assert.c b/arch/misoc/src/lm32/lm32_assert.c index c8e4c2be48..3f66f2d74c 100644 --- a/arch/misoc/src/lm32/lm32_assert.c +++ b/arch/misoc/src/lm32/lm32_assert.c @@ -93,7 +93,7 @@ static void _up_assert(int errorcode) for (; ; ) { #if CONFIG_BOARD_RESET_ON_ASSERT >= 1 - board_reset(0); + board_reset(CONFIG_BOARD_ASSERT_RESET_VALUE); #endif #ifdef CONFIG_ARCH_LEDS board_autoled_on(LED_PANIC); @@ -106,7 +106,7 @@ static void _up_assert(int errorcode) else { #if CONFIG_BOARD_RESET_ON_ASSERT >= 2 - board_reset(0); + board_reset(CONFIG_BOARD_ASSERT_RESET_VALUE); #endif exit(errorcode); } diff --git a/arch/or1k/src/common/up_assert.c b/arch/or1k/src/common/up_assert.c index 1aacb24a8c..4a66ef2dbf 100644 --- a/arch/or1k/src/common/up_assert.c +++ b/arch/or1k/src/common/up_assert.c @@ -357,7 +357,7 @@ static void _up_assert(int errorcode) for (; ; ) { #if CONFIG_BOARD_RESET_ON_ASSERT >= 1 - board_reset(0); + board_reset(CONFIG_BOARD_ASSERT_RESET_VALUE); #endif #ifdef CONFIG_ARCH_LEDS board_autoled_on(LED_PANIC); @@ -370,7 +370,7 @@ static void _up_assert(int errorcode) else { #if CONFIG_BOARD_RESET_ON_ASSERT >= 2 - board_reset(0); + board_reset(CONFIG_BOARD_ASSERT_RESET_VALUE); #endif exit(errorcode); } diff --git a/arch/renesas/src/common/up_assert.c b/arch/renesas/src/common/up_assert.c index 2f432f1b74..ac214875c6 100644 --- a/arch/renesas/src/common/up_assert.c +++ b/arch/renesas/src/common/up_assert.c @@ -94,7 +94,7 @@ static void _up_assert(int errorcode) for (;;) { #if CONFIG_BOARD_RESET_ON_ASSERT >= 1 - board_reset(0); + board_reset(CONFIG_BOARD_ASSERT_RESET_VALUE); #endif #ifdef CONFIG_ARCH_LEDS board_autoled_on(LED_PANIC); @@ -107,7 +107,7 @@ static void _up_assert(int errorcode) else { #if CONFIG_BOARD_RESET_ON_ASSERT >= 2 - board_reset(0); + board_reset(CONFIG_BOARD_ASSERT_RESET_VALUE); #endif exit(errorcode); } diff --git a/arch/risc-v/src/rv32im/up_assert.c b/arch/risc-v/src/rv32im/up_assert.c index eb295cc674..a46ac79b9c 100644 --- a/arch/risc-v/src/rv32im/up_assert.c +++ b/arch/risc-v/src/rv32im/up_assert.c @@ -93,7 +93,7 @@ static void _up_assert(int errorcode) for (; ; ) { #if CONFIG_BOARD_RESET_ON_ASSERT >= 1 - board_reset(0); + board_reset(CONFIG_BOARD_ASSERT_RESET_VALUE); #endif #ifdef CONFIG_ARCH_LEDS board_autoled_on(LED_PANIC); @@ -106,7 +106,7 @@ static void _up_assert(int errorcode) else { #if CONFIG_BOARD_RESET_ON_ASSERT >= 2 - board_reset(0); + board_reset(CONFIG_BOARD_ASSERT_RESET_VALUE); #endif exit(errorcode); } diff --git a/arch/x86/src/common/up_assert.c b/arch/x86/src/common/up_assert.c index 242ded3a43..49f9124fab 100644 --- a/arch/x86/src/common/up_assert.c +++ b/arch/x86/src/common/up_assert.c @@ -242,7 +242,7 @@ static void _up_assert(int errorcode) for (;;) { #if CONFIG_BOARD_RESET_ON_ASSERT >= 1 - board_reset(0); + board_reset(CONFIG_BOARD_ASSERT_RESET_VALUE); #endif #ifdef CONFIG_ARCH_LEDS board_autoled_on(LED_PANIC); @@ -255,7 +255,7 @@ static void _up_assert(int errorcode) else { #if CONFIG_BOARD_RESET_ON_ASSERT >= 2 - board_reset(0); + board_reset(CONFIG_BOARD_ASSERT_RESET_VALUE); #endif exit(errorcode); } diff --git a/arch/xtensa/src/common/xtensa_assert.c b/arch/xtensa/src/common/xtensa_assert.c index 8f2d750ff1..f5f36518b0 100644 --- a/arch/xtensa/src/common/xtensa_assert.c +++ b/arch/xtensa/src/common/xtensa_assert.c @@ -134,7 +134,7 @@ static void xtensa_assert(int errorcode) for (; ; ) { #if CONFIG_BOARD_RESET_ON_ASSERT >= 1 - board_reset(0); + board_reset(CONFIG_BOARD_ASSERT_RESET_VALUE); #endif #ifdef CONFIG_ARCH_LEDS board_autoled_on(LED_PANIC); @@ -149,7 +149,7 @@ static void xtensa_assert(int errorcode) /* Assertions in other contexts only cause the thread to exit */ #if CONFIG_BOARD_RESET_ON_ASSERT >= 2 - board_reset(0); + board_reset(CONFIG_BOARD_ASSERT_RESET_VALUE); #endif exit(errorcode); } diff --git a/arch/z16/src/common/up_assert.c b/arch/z16/src/common/up_assert.c index 8f5908919b..d63aa40570 100644 --- a/arch/z16/src/common/up_assert.c +++ b/arch/z16/src/common/up_assert.c @@ -93,7 +93,7 @@ static void _up_assert(int errorcode) /* noreturn_function */ for (;;) { #if CONFIG_BOARD_RESET_ON_ASSERT >= 1 - board_reset(0); + board_reset(CONFIG_BOARD_ASSERT_RESET_VALUE); #endif #ifdef CONFIG_ARCH_LEDS board_autoled_on(LED_PANIC); @@ -106,7 +106,7 @@ static void _up_assert(int errorcode) /* noreturn_function */ else { #if CONFIG_BOARD_RESET_ON_ASSERT >= 2 - board_reset(0); + board_reset(CONFIG_BOARD_ASSERT_RESET_VALUE); #endif exit(errorcode); } diff --git a/arch/z80/src/common/up_assert.c b/arch/z80/src/common/up_assert.c index ac892b36fe..711aed53d4 100644 --- a/arch/z80/src/common/up_assert.c +++ b/arch/z80/src/common/up_assert.c @@ -92,7 +92,7 @@ static void _up_assert(int errorcode) /* noreturn_function */ for (;;) { #if CONFIG_BOARD_RESET_ON_ASSERT >= 1 - board_reset(0); + board_reset(CONFIG_BOARD_ASSERT_RESET_VALUE); #endif #ifdef CONFIG_ARCH_LEDS board_autoled_on(LED_PANIC); @@ -105,7 +105,7 @@ static void _up_assert(int errorcode) /* noreturn_function */ else { #if CONFIG_BOARD_RESET_ON_ASSERT >= 2 - board_reset(0); + board_reset(CONFIG_BOARD_ASSERT_RESET_VALUE); #endif exit(errorcode); } diff --git a/configs/Kconfig b/configs/Kconfig index 72019e2792..bd48cf6758 100644 --- a/configs/Kconfig +++ b/configs/Kconfig @@ -2430,6 +2430,16 @@ config BOARD_RESET_ON_ASSERT >= 2 up_assert from user or kernel thread will reset the machine. The default behavior is just to kill the asserting thread. +config BOARD_ASSERT_RESET_VALUE + int "Board reset argument" + default 0 + depends on BOARDCTL_RESET + ---help--- + Parameter that will be passed to board_reset() by when an + assertion occurs. This may be used by board_reset() + implementations to handle the reset differently for the + case of a crash. + config BOARDCTL_UNIQUEID bool "Return board unique ID" default n