summaryrefslogtreecommitdiff
path: root/board
diff options
context:
space:
mode:
authorTzung-Bi Shih <tzungbi@chromium.org>2021-02-18 16:17:21 +0800
committerCommit Bot <commit-bot@chromium.org>2021-02-19 09:20:24 +0000
commitfe1800f01d7151064f780d8623b71778b7a81f78 (patch)
tree619d2cbc6325bf143a9600c7114e8a8bab7d3f6b /board
parent80cacc3d251ba738e2c8e6a84305ac06395898ef (diff)
downloadchrome-ec-fe1800f01d7151064f780d8623b71778b7a81f78.tar.gz
core/riscv-rv32i: set in_interrupt at beginning of exception handler
There are 3 paths when receiving an excaption in core/riscv-rv32i/init.S: 1. __irq_handler 2. excep_handler 3. unhandled_interrupt Originally, in_interrupt_context() returns true only if it goes to 1st path. However, the rest paths are also in interrupt context, especially some function may rely on in_interrupt_context(), for example, uart_flush_output() in common/uart_buffering.c. Note that, only the 1st goes back to normal context. The rest of paths are all going to panic and reset. Sets in_interrupt at the beginning of exception handler instead of start_irq_handler() so that the flag is ON when receiving an exception. BRANCH=none BUG=b:180571536 BUG=b:163300760 TEST=make BOARD=asurada_scp Signed-off-by: Tzung-Bi Shih <tzungbi@chromium.org> Change-Id: Iba689c506c02c4b5bb1668766f1d7ab5f86f72a4 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2702999 Reviewed-by: Eric Yilun Lin <yllin@chromium.org>
Diffstat (limited to 'board')
0 files changed, 0 insertions, 0 deletions