summaryrefslogtreecommitdiff
path: root/chip
diff options
context:
space:
mode:
authorTom Hughes <tomhughes@chromium.org>2022-10-24 11:22:38 -0700
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-11-07 18:26:13 +0000
commit70ddb59e62ce02cb48e180a8080ceb4a83859ff8 (patch)
tree4103879c6d163ed8a67f10eab1fe7cd661476561 /chip
parent7956342b8d3d11e68d4c12a3745f82b26e81e620 (diff)
downloadchrome-ec-70ddb59e62ce02cb48e180a8080ceb4a83859ff8.tar.gz
chip/mchp: Fix clang compilation error
When building with clang, it fails with: chip/mchp/lfw/ec_lfw.c:310:2: error: non-ASM statement in naked function is not supported uart_puts("EXCEPTION!\nTriggering watchdog reset\n"); ^ chip/mchp/lfw/ec_lfw.h:25:41: note: attribute is here void fault_handler(void) __attribute__((naked)); ^ BRANCH=none BUG=b:172020503 TEST=./util/build_with_clang.py Signed-off-by: Tom Hughes <tomhughes@chromium.org> Change-Id: If998119e285b3a068623909a373f3ebaf426b2e2 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3977110 Reviewed-by: Eric Yilun Lin <yllin@google.com> Code-Coverage: Zoss <zoss-cl-coverage@prod.google.com>
Diffstat (limited to 'chip')
-rw-r--r--chip/mchp/lfw/ec_lfw.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/chip/mchp/lfw/ec_lfw.c b/chip/mchp/lfw/ec_lfw.c
index dfd9814e6e..3a9d7160dc 100644
--- a/chip/mchp/lfw/ec_lfw.c
+++ b/chip/mchp/lfw/ec_lfw.c
@@ -305,7 +305,7 @@ void uart_init(void)
}
#endif /* #ifdef CONFIG_UART_CONSOLE */
-void fault_handler(void)
+noreturn void watchdog_reset(void)
{
uart_puts("EXCEPTION!\nTriggering watchdog reset\n");
/* trigger reset in 1 ms */
@@ -315,6 +315,11 @@ void fault_handler(void)
;
}
+void fault_handler(void)
+{
+ asm("b watchdog_reset");
+}
+
void jump_to_image(uintptr_t init_addr)
{
void (*resetvec)(void) = (void (*)(void))init_addr;