summaryrefslogtreecommitdiff
path: root/configs/ls1012a2g5rdb_tfa_defconfig
diff options
context:
space:
mode:
authorAndre Przywara <andre.przywara@arm.com>2023-02-07 18:21:05 +0300
committerTom Rini <trini@konsulko.com>2023-03-07 03:24:34 +0300
commit7400d34ba992e324840d3b404fb403bee323a0c5 (patch)
tree7160561793bbaf2b5a1a27a5fbed1c6f36eede87 /configs/ls1012a2g5rdb_tfa_defconfig
parent29c579a2493a1c5de162a724e05521099b66bedb (diff)
downloadu-boot-7400d34ba992e324840d3b404fb403bee323a0c5.tar.xz
riscv: semihosting: replace inline assembly with assembly file
So far we used inline assembly to inject the actual instruction that triggers the semihosting service. While this sounds elegant, as it's really only about a few instructions, it has some serious downsides: - We need some barriers in place to force the compiler to issue writes to a data structure before issuing the trap instruction. - We need to convince the compiler to actually fill the structures that we use pointers to. - We need a memory clobber to avoid the compiler caching the data in those structures, when semihosting writes data back. - We need register arguments to make sure the function ID and the pointer land in the right registers. This is all doable, but fragile and somewhat cumbersome. Since we now have a separate function in an extra file anyway, we can do away with all the magic and just write that in an actual assembler. This is much more readable and robust. Signed-off-by: Andre Przywara <andre.przywara@arm.com> Reviewed-by: Sean Anderson <sean.anderson@seco.com>
Diffstat (limited to 'configs/ls1012a2g5rdb_tfa_defconfig')
0 files changed, 0 insertions, 0 deletions