[PATCH 00/13] Arm64 big endian enablement
Ilias Apalodimas
ilias.apalodimas at linaro.org
Tue Jun 11 15:25:03 CEST 2024
Hi Jiaxun,
On Sun, 19 May 2024 at 15:56, Jiaxun Yang <jiaxun.yang at flygoat.com> wrote:
>
> Hi all,
Apologies for taking time to review, got a lot in my backlog
>
> This series enabled big endian support for arm64, enabled qemu-arm
> board for arm64be and slightly adjusted our Kconfig handling on endianness.
>
> In practical I think most Arm SoCs do support little endian only,
> for those SoCs with big endian support they are usually bi-endian
> and expected bootloader in little endian. The only big-endian only
> Arm SoC I know is a network processor from ZTE ZXIC, I doubt if upstream
> U-Boot will ever support it.
>
> However enabling arm64be can enable us to take more care on big endian
> targets, given that arm64 is the most feature rich arch in U-Boot,
> we can run more test on big endian systems.
>
> Boot tested on qemu.
This is not a nak, but I dont see why we should have the extra
maintenace burden if people don't use it.
I'd like more feedback from the community on whether this is useful or not
Cheers
/Ilias
>
> Please review.
>
> Thanks
>
> Signed-off-by: Jiaxun Yang <jiaxun.yang at flygoat.com>
> ---
> Jiaxun Yang (13):
> tools/relocate-rela: Fix Big Endian elf64 handling
> arm: Don't select ARM_ASM_UNIFIED on arm64
> arm: Fix assembler.h for arm64
> arm: Introduce CPU_LE/CPU_BE macros
> arm: Define endian related bits in system.h
> armv8: Big Endian enablement for compiler and linker
> arm: Perform byte swap for read and write in io.h
> armv8: Allow endianness to be setted at reset entry
> armv8: spin_table: Perform byte swap for jump address
> lib/crc32: Don't perform byte swap for arm64 crc32b
> Kconfig: Unify endian support option
> config: Use CONFIG_SYS_BIG_ENDIAN in code whenever possible
> qemu-arm: Big endian enablement for arm64
>
> Makefile | 2 +-
> arch/Kconfig | 34 ++++++++---
> arch/arc/include/asm/arc-bcr.h | 10 +--
> arch/arm/Kconfig | 3 +-
> arch/arm/config.mk | 14 +++++
> arch/arm/cpu/armv8/Kconfig | 9 +++
> .../arm/cpu/armv8/linux-kernel-image-header-vars.h | 4 +-
> arch/arm/cpu/armv8/spin_table_v8.S | 2 +
> arch/arm/cpu/armv8/start.S | 26 ++++++++
> arch/arm/cpu/armv8/u-boot-spl.lds | 6 ++
> arch/arm/cpu/armv8/u-boot.lds | 4 ++
> arch/arm/include/asm/assembler.h | 25 ++++++++
> arch/arm/include/asm/io.h | 12 ++--
> arch/arm/include/asm/system.h | 3 +
> arch/arm/lib/elf_aarch64_efi.lds | 7 +++
> arch/mips/Kconfig | 20 +++---
> arch/mips/mach-ath79/Kconfig | 8 +--
> arch/mips/mach-bmips/Kconfig | 20 +++---
> arch/mips/mach-jz47xx/Kconfig | 2 +-
> arch/mips/mach-mscc/Kconfig | 4 +-
> arch/mips/mach-pic32/Kconfig | 2 +-
> board/emulation/qemu-arm/Kconfig | 2 +
> board/emulation/qemu-arm/MAINTAINERS | 1 +
> configs/qemu_arm64be_defconfig | 71 ++++++++++++++++++++++
> doc/board/emulation/qemu-arm.rst | 7 ++-
> drivers/mtd/nand/raw/brcmnand/brcmnand.c | 2 +-
> lib/crc32.c | 3 +-
> scripts/Makefile.build | 2 +-
> scripts/Makefile.lib | 3 +-
> tools/relocate-rela.c | 40 +++++++-----
> 30 files changed, 271 insertions(+), 77 deletions(-)
> ---
> base-commit: 3be9f399e911cfc437a37ac826441f1d96da1c9b
> change-id: 20240518-aarch64-be-1ec99cf7f28b
>
> Best regards,
> --
> Jiaxun Yang <jiaxun.yang at flygoat.com>
>
More information about the U-Boot
mailing list