[PATCH 1/2] sunxi: boot0.h: allow RVBAR MMIO address customisation
Jernej Škrabec
jernej.skrabec at gmail.com
Sat Apr 8 08:14:11 CEST 2023
Dne sreda, 05. april 2023 ob 16:27:30 CEST je Andre Przywara napisal(a):
> To switch the ARMv8 Allwinner SoCs into the 64-bit AArch64 ISA, we need
> to program the 64-bit start code address into an MMIO mapped register
> that shadows the architectural RVBAR register.
> This address is SoC specific, with just two versions out there so far.
> Now a third address emerged, on a *variant* of an existing SoC (H616).
>
> Change the boot0.h start code to make this address a Kconfig
> selectable option, to allow easier maintenance.
> We make this address user-visible (even though it shouldn't be), to
> allow putting this in defconfig. This is needed because there are
> apparently revisions of the H616 SoC out there using different
> addresses, so this becomes a per-board decision.
>
> Signed-off-by: Andre Przywara <andre.przywara at arm.com>
Reviewed-by: Jernej Skrabec <jernej.skrabec at gmail.com>
Best regards,
Jernej
> ---
> arch/arm/include/asm/arch-sunxi/boot0.h | 7 ++-----
> arch/arm/mach-sunxi/Kconfig | 12 ++++++++++++
> 2 files changed, 14 insertions(+), 5 deletions(-)
>
> diff --git a/arch/arm/include/asm/arch-sunxi/boot0.h
> b/arch/arm/include/asm/arch-sunxi/boot0.h index 46b7e073b59..59ea75a96b5
> 100644
> --- a/arch/arm/include/asm/arch-sunxi/boot0.h
> +++ b/arch/arm/include/asm/arch-sunxi/boot0.h
> @@ -39,11 +39,8 @@
> .word 0xf57ff06f // isb sy
> .word 0xe320f003 // wfi
> .word 0xeafffffd // b @wfi
> -#ifndef CONFIG_SUN50I_GEN_H6
> - .word 0x017000a0 // writeable RVBAR mapping address
> -#else
> - .word 0x09010040 // writeable RVBAR mapping address
> -#endif
> +
> + .word CONFIG_SUNXI_RVBAR_ADDRESS // writable RVBAR mapping
addr
> #ifdef CONFIG_SPL_BUILD
> .word CONFIG_SPL_TEXT_BASE
> #else
> diff --git a/arch/arm/mach-sunxi/Kconfig b/arch/arm/mach-sunxi/Kconfig
> index 6417aee944b..b46667ce01e 100644
> --- a/arch/arm/mach-sunxi/Kconfig
> +++ b/arch/arm/mach-sunxi/Kconfig
> @@ -110,6 +110,18 @@ config SUNXI_SRAM_ADDRESS
> Some newer SoCs map the boot ROM at address 0 instead and move the
> SRAM to a different address.
>
> +config SUNXI_RVBAR_ADDRESS
> + hex "RVBAR address"
> + depends on ARM64
> + default 0x09010040 if SUN50I_GEN_H6
> + default 0x017000a0
> + ---help---
> + The read-only RVBAR system register holds the address of the first
> + instruction to execute after a reset. Allwinner cores provide a
> + writable MMIO backing store for this register, to allow to set the
> + entry point when switching to AArch64. This store is on different
> + addresses, depending on the SoC.
> +
> config SUNXI_A64_TIMER_ERRATUM
> bool
More information about the U-Boot
mailing list