diff options
author | Tom Hughes <tomhughes@chromium.org> | 2022-10-24 11:22:38 -0700 |
---|---|---|
committer | Chromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2022-11-07 18:26:13 +0000 |
commit | 70ddb59e62ce02cb48e180a8080ceb4a83859ff8 (patch) | |
tree | 4103879c6d163ed8a67f10eab1fe7cd661476561 /chip | |
parent | 7956342b8d3d11e68d4c12a3745f82b26e81e620 (diff) | |
download | chrome-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.c | 7 |
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; |