nuttx-update/boards
hujun5 0e1b432dd0 armv7/8m: fix regresion from https://github.com/apache/nuttx/pull/14881
reason:
svc call may trigger hardfault

Background
    The origin of this issue is our desire to eliminate the function of storing
"regs" in g_current_regs and instead utilize (*running_task)->xcp.regs for storage.
The benefits of this approach include faster storage speed and
avoiding multiple accesses to g_current_regs during context switching,
thus ensuring that whether returning from an interrupt or an exception,
we consistently use this_task()->xcp.regs

Issue Encountered
    However, when storing registers, we must ensure that (running_task)->xcp.regs is invalid
so that it can be safely overwritten.
According to the existing logic, the only scenario where (running_task)->xcp.regs
is valid is during restore_context. We must accurately identify this scenario.
Initially, we used the condition (running_task)==NULL for this purpose, but we deemed
this approach unsatisfactory as it did not align well with the actual logic.
(running_task) should not be NULL. Consequently, we adopted other arch-specific methods for judgment,
but due to special logic in some arch, the judgment was not accurate, leading to this issue.

Solution:
    For armv6-m, we haven't found a more suitable solution, so we are sticking with (*running_task)==NULL.
    For armv7-m/armv8-m, by removing support for primask, we can achieve accurate judgment.

    PRIMASK is a design in armv6-m, that's why arm introduce BASEPRI from armv7-m.
It's wrong to provide this option for armv7-m/armv8-m arch.

Signed-off-by: hujun5 <hujun5@xiaomi.com>
2024-12-09 12:20:13 +08:00
..
arm armv7/8m: fix regresion from https://github.com/apache/nuttx/pull/14881 2024-12-09 12:20:13 +08:00
arm64 arm64/qemu: Enable lto compilation by default 2024-12-05 20:36:37 +08:00
avr boards: Update configs about system/usbmsc 2024-12-06 13:38:23 +08:00
dummy
hc/m9s12 boards/hc/m9s12: migrate to SPDX identifier 2024-11-12 22:20:59 +08:00
mips boards: Update configs about system/usbmsc 2024-12-06 13:38:23 +08:00
misoc/lm32/misoc boards/misoc/lm32: migrate to SPDX identifier 2024-11-12 22:20:59 +08:00
or1k/mor1kx/or1k boards/or1k/mor1kx: migrate to SPDX identifier 2024-11-12 22:20:59 +08:00
renesas boards/renesas/sh1: migrate to SPDX identifier 2024-11-12 22:20:59 +08:00
risc-v esp32[c3|c6|h2]: Add nxdiag without esptool wrapper 2024-12-07 11:45:59 +08:00
sim/sim/sim sim/tflm: enable tflm hello world 2024-12-02 15:27:47 +08:00
sparc boards/sparc/s698pm: migrate to SPDX identifier 2024-11-12 22:20:59 +08:00
tricore/tc3xx/tc397 boards/tricore/tc3xx: migrate to SPDX identifier 2024-11-12 22:20:59 +08:00
x86/qemu/qemu-i486 boards/x86/qemu: migrate to SPDX identifier 2024-11-12 22:20:59 +08:00
x86_64/intel64/qemu-intel64 boards/qemu-intel64: add kernel build (ROMFS) configurations 2024-11-27 13:32:23 -03:00
xtensa esp32[s2|s3]: Add nxdiag without esptool wrapper 2024-12-07 11:45:59 +08:00
z16/z16f/z16f2800100zcog boards/z16/z16f: migrate to SPDX identifier 2024-11-12 22:20:59 +08:00
z80 boards/z80/z80: migrate to SPDX identifier 2024-11-12 22:20:59 +08:00
.gitignore
Board.mk sh:Change expansion path logic 2024-03-04 01:18:45 +08:00
boardctl.c boards: migrate to SPDX identifier 2024-11-12 22:20:59 +08:00
CMakeLists.txt boards: migrate to SPDX identifier 2024-11-12 22:20:59 +08:00
dummy.c boards: migrate to SPDX identifier 2024-11-12 22:20:59 +08:00
Kconfig coredump: add BOARD_CRASHDUMP_CUSTOM support 2024-11-30 03:08:35 +08:00
Makefile boards: migrate to SPDX identifier 2024-11-12 22:20:59 +08:00