[PATCH 00/13] Arm64 big endian enablement
Jiaxun Yang
jiaxun.yang at flygoat.com
Sun May 19 14:56:45 CEST 2024
Hi all,
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.
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