arch/: Add 'BOARD_ASSERT_RESET_VALUE' in config/Kconfig and replace reboot status '0' to 'CONFIG_BOARD_ASSERT_RESET_VALUE'.

This commit is contained in:
Gregory Nutt 2018-11-10 14:06:46 -06:00
parent e6ebbe875a
commit 2b3ec4172d
17 changed files with 42 additions and 32 deletions

View file

@ -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);
}

View file

@ -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);
}

View file

@ -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);
}

View file

@ -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);
}

View file

@ -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);
}

View file

@ -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);
}

View file

@ -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);
}

View file

@ -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);
}

View file

@ -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);
}

View file

@ -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);
}

View file

@ -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);
}

View file

@ -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);
}

View file

@ -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);
}

View file

@ -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);
}

View file

@ -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);
}

View file

@ -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);
}

View file

@ -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