summaryrefslogtreecommitdiff
path: root/zephyr/Kconfig.debug_assert
diff options
context:
space:
mode:
authorYuval Peress <peress@chromium.org>2021-04-06 13:02:28 -0600
committerCommit Bot <commit-bot@chromium.org>2021-04-07 01:42:08 +0000
commit19dcdf2830ae424f7d24c828002fa133a7b7b38d (patch)
treeb7e80484bdad40105676954a6291c8ec0b3e3770 /zephyr/Kconfig.debug_assert
parent4e412c42d5e2c14a8b3f0ad001435e2d8f88f58c (diff)
downloadchrome-ec-19dcdf2830ae424f7d24c828002fa133a7b7b38d.tar.gz
zephyr: kconfig: move debug_assert configs to separate file
Clean up the root Kconfig for Zephyr by moving sub configs to separate file (Kconfig.debug_assert). Also, add correct dependency to only allow PLATFORM_EC_DEBUG_ASSERT_* configs if PLATFORM_EC_DEBUG_ASSERT is enabled. BRANCH=none BUG=none TEST=zmake testall Signed-off-by: Yuval Peress <peress@chromium.org> Change-Id: I1cdd0dbba3b7300b8b95eb69df49d44033a0eb6c Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2808145
Diffstat (limited to 'zephyr/Kconfig.debug_assert')
-rw-r--r--zephyr/Kconfig.debug_assert45
1 files changed, 45 insertions, 0 deletions
diff --git a/zephyr/Kconfig.debug_assert b/zephyr/Kconfig.debug_assert
new file mode 100644
index 0000000000..d568bc7e34
--- /dev/null
+++ b/zephyr/Kconfig.debug_assert
@@ -0,0 +1,45 @@
+# Copyright 2021 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+if PLATFORM_EC_DEBUG_ASSERT
+choice "Behaviour on assertion failure"
+ prompt "Select behaviour on assertion failure"
+ help
+ This selects the action taken when the board hits an assertion
+ failure in the code. This should not happen in normal operation,
+ but can appear during development when the code is not yet fully
+ tested.
+
+config PLATFORM_EC_DEBUG_ASSERT_REBOOTS
+ bool "Reboot"
+ help
+ Prints a message and reboot if an assert() macro fails at runtime.
+ If PLATFORM_EC_SOFTWARE_PANIC is enabled then the information is
+ written to the panic log before rebooting.
+
+config PLATFORM_EC_DEBUG_ASSERT_BREAKPOINT
+ bool "Generate a breakpoint"
+ help
+ Immediately hits a breakpoint instruction (without printing a message)
+ so that a connected JTAG debugger can be used to debug the problem
+ from there. If there is no debugger connected then the breakpoint
+ instruction will cause the board to reboot immediately.
+
+endchoice # "Behaviour on assertion failure"
+
+config PLATFORM_EC_DEBUG_ASSERT_BRIEF
+ bool "Use brief assertion-failure messages"
+ depends on PLATFORM_EC_DEBUG_ASSERT_REBOOTS
+ help
+ Normally the assertion-failure messages include the expression that
+ failed and the function name where the failure occurred. These are
+ both stored as strings and can add a lot to the size of the image,
+ since they are generated for every call to assert(). Use this option
+ to drop them so that only the file and line number are shown.
+
+ This option is of course not available with
+ PLATFORM_EC_DEBUG_ASSERT_BREAKPOINT, since that does not print a
+ message at all.
+
+endif # PLATFORM_EC_DEBUG_ASSERT