u-boot/arch/arm
Andre Przywara 29c579a249 arm: 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 one instruction, 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 assembly file.
This is much more readable and robust.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Sean Anderson <sean.anderson@seco.com>
2023-03-06 17:06:17 -05:00
..
cpu ARM: remove SPEAR entry in makefile 2023-03-06 17:03:56 -05:00
dts am62a7: dts: Enable full 4GB LPDDR4 2023-03-06 17:06:17 -05:00
include ARM: tegra: crypto: extend crypto functional 2023-02-23 12:55:37 -07:00
lib arm: semihosting: replace inline assembly with assembly file 2023-03-06 17:06:17 -05:00
mach-apple Rename CONFIG_SYS_TEXT_BASE to CONFIG_TEXT_BASE 2022-10-31 11:01:31 -04:00
mach-aspeed global: Move remaining CONFIG_SYS_SDRAM_* to CFG_SYS_SDRAM_* 2022-12-05 16:06:07 -05:00
mach-at91 global: Remove unused CONFIG defines 2023-01-20 12:27:06 -05:00
mach-bcm283x
mach-bcmbca timer: bcmbca: use arm global timer for bcm63138 SoC 2022-10-31 08:56:00 -04:00
mach-bcmstb
mach-cortina
mach-davinci global: Migrate CONFIG_MAX_RAM_BANK_SIZE to CFG 2022-12-23 10:14:51 -05:00
mach-exynos Correct SPL use of EXYNOS7420 2023-02-09 16:32:26 -05:00
mach-highbank
mach-hpe
mach-imx imx9: Remove ARCH_MISC_INIT 2023-03-02 15:32:25 -05:00
mach-integrator
mach-ipq40xx Rename CONFIG_SYS_TEXT_BASE to CONFIG_TEXT_BASE 2022-10-31 11:01:31 -04:00
mach-k3 arch: mach-k3: Update board specific API name to K3 generic API name 2023-01-27 12:51:27 -05:00
mach-keystone global: Move remaining CONFIG_SYS_* to CFG_SYS_* 2022-12-05 16:06:08 -05:00
mach-kirkwood arm: kirkwood: Use CONFIG_SYS_NS16550 with DM_SERIAL for Kirkwood boards 2023-02-13 10:14:50 +01:00
mach-lpc32xx arm: lpc32xx: Remove unused hsuart driver 2022-12-05 16:07:13 -05:00
mach-mediatek global: Move remaining CONFIG_SYS_SDRAM_* to CFG_SYS_SDRAM_* 2022-12-05 16:06:07 -05:00
mach-meson ARM: meson: switch AXG & GX dwc2 otg to DM 2023-01-20 16:21:31 +01:00
mach-mvebu mvebu: Drop empty arch_misc_init 2023-03-02 15:32:25 -05:00
mach-nexell arm: s5p4418: dm_serial: remove old code / add DEBUG_UART 2023-01-02 16:06:08 -05:00
mach-npcm global: Move remaining CONFIG_SYS_* to CFG_SYS_* 2022-12-05 16:06:08 -05:00
mach-octeontx Rename CONFIG_SYS_TEXT_BASE to CONFIG_TEXT_BASE 2022-10-31 11:01:31 -04:00
mach-octeontx2 Rename CONFIG_SYS_TEXT_BASE to CONFIG_TEXT_BASE 2022-10-31 11:01:31 -04:00
mach-omap2 global: Finish CONFIG -> CFG migration 2023-01-20 12:27:24 -05:00
mach-orion5x global: Migrate CONFIG_MAX_RAM_BANK_SIZE to CFG 2022-12-23 10:14:51 -05:00
mach-owl global: Move remaining CONFIG_SYS_SDRAM_* to CFG_SYS_SDRAM_* 2022-12-05 16:06:07 -05:00
mach-qemu
mach-rmobile rmobile: Drop unused ehci-rmobile driver 2023-02-07 14:33:50 -05:00
mach-rockchip arm: rk3368: Select ARCH_EARLY_INIT_R when used 2023-03-02 15:32:25 -05:00
mach-s5pc1xx exynos: Rework legacy PWM usage 2022-12-23 10:07:03 -05:00
mach-snapdragon clocks: qcs404: Add support for I2C clocks 2023-02-13 10:01:52 -05:00
mach-socfpga Use grep -E or plain grep instead of egrep 2023-01-11 15:02:24 -05:00
mach-sti
mach-stm32
mach-stm32mp Correct SPL use of STM32MP15X_STM32IMAGE 2023-02-10 07:41:40 -05:00
mach-sunxi sunxi: eMMC: support TOC0 on boot partitions 2023-01-23 01:18:23 +00:00
mach-tegra ARM: tegra20: implement BCT patching 2023-02-23 12:55:37 -07:00
mach-u8500 global: Move remaining CONFIG_SYS_* to CFG_SYS_* 2022-12-05 16:06:08 -05:00
mach-uniphier arm: uniphier: use DM_TIMER of arm a9 global timer 2023-01-02 16:01:39 -05:00
mach-versal arm64: versal: Define zynqmp_mmio_write() for versal 2022-09-13 11:32:48 +02:00
mach-versal-net xilinx: versal-net: Add support for timer and start it 2023-01-16 15:34:37 +01:00
mach-versatile global: Move remaining CONFIG_SYS_* to CFG_SYS_* 2022-12-05 16:06:08 -05:00
mach-zynq global: Move remaining CONFIG_SYS_SDRAM_* to CFG_SYS_SDRAM_* 2022-12-05 16:06:07 -05:00
mach-zynqmp arm64: zynqmp: Do not include psu_init to U-Boot by default 2022-12-05 08:55:55 +01:00
mach-zynqmp-r5
thumb1/include/asm/proc-armv
config.mk Convert CONFIG_STANDALONE_LOAD_ADDR to Kconfig 2022-12-22 10:31:48 -05:00
Kconfig arm: zynq: Move to select'ing ARCH_EARLY_INIT_R if we have FPGA 2023-03-02 15:32:25 -05:00
Kconfig.debug
Makefile arm64: versal-net: Add support for Versal NET platform 2022-09-26 14:23:29 +02:00