diff options
author | Tom Rini <trini@konsulko.com> | 2023-11-10 11:55:28 -0500 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2023-11-10 12:52:33 -0500 |
commit | 3b6db6901ff5babbb9d21f0fca750996e29d85e0 (patch) | |
tree | 83379c53e7d1821b8351db5dec24f1835f11c526 /lib | |
parent | b630f8b3aefc2d11cdc73314743a6fb16deaf4c5 (diff) | |
parent | 47cfdb2192b1f8cb5061bde53fcce562afaeadf2 (diff) |
Merge branch '2023-11-10-improve-semihosting-armv6' into next
To quote the author:
This series has a few fixes for semihosting on ARMv6 and older CPUs. The
first two patches address problems regarding the stack pointer and link
register. U-Boot runs in supervisor mode, so taking a software interrupt
will clobber sp/lr. I think we really should run in system mode, since
it has separate sp/lr registers. To quote ARM DDI 0100I:
> The remaining mode is System mode, which is not entered by any
> exception and has exactly the same registers available as User mode.
> However, it is a privileged mode and is therefore not subject to the
> User mode restrictions. It is intended for use by operating system
> tasks that need access to system resources, but wish to avoid using
> the additional registers associated with the exception modes. Avoiding
> such use ensures that the task state is not corrupted by the
> occurrence of any exception.
However, the processor mode has been supervisor for such a long time
(since relocation got introduced) that I would rather not touch it.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Kconfig | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/Kconfig b/lib/Kconfig index 0c3afae8f52..9ae846ea5f7 100644 --- a/lib/Kconfig +++ b/lib/Kconfig @@ -100,7 +100,7 @@ config SEMIHOSTING config SEMIHOSTING_FALLBACK bool "Recover gracefully when semihosting fails" - depends on SEMIHOSTING && (ARM64 || RISCV) + depends on SEMIHOSTING default y help Normally, if U-Boot makes a semihosting call and no debugger is @@ -123,7 +123,7 @@ config SPL_SEMIHOSTING config SPL_SEMIHOSTING_FALLBACK bool "Recover gracefully when semihosting fails in SPL" - depends on SPL_SEMIHOSTING && (ARM64 || RISCV) + depends on SPL_SEMIHOSTING select ARMV8_SPL_EXCEPTION_VECTORS if ARM64 default y help |