]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
riscv: add build support for big-endian
authorBen Dooks <ben.dooks@codethink.co.uk>
Fri, 13 Jun 2025 16:12:57 +0000 (17:12 +0100)
committerLeo Yu-Chi Liang <ycliang@andestech.com>
Thu, 3 Jul 2025 10:10:50 +0000 (18:10 +0800)
Add support to build code big-endian if the board supports
it. Updates the makefile to pass the correct compiler and
elf flags.

Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk>
Reviewed-by: Tom Rini <trini@konsulko.com>
arch/riscv/config.mk

index 9f16dda92a0882a8c2eed5b37403883e0e63ef1e..eddd6a3b9a29f8e2b891680efd8428d0ce153ac1 100644 (file)
 # Rick Chen, Andes Technology Corporation <rick@andestech.com>
 #
 
-32bit-emul             := elf32lriscv
-64bit-emul             := elf64lriscv
+ifdef CONFIG_SYS_BIG_ENDIAN
+small-endian           := b
+large-endian           := big
+PLATFORM_CPPFLAGS       += -mbig-endian
+KBUILD_LDFLAGS          += -mbig-endian
+else
+small-endian           := l
+large-endian           := little
+endif
+
+32bit-emul             := elf32$(small-endian)riscv
+64bit-emul             := elf64$(small-endian)riscv
 
 ifdef CONFIG_32BIT
 KBUILD_LDFLAGS         += -m $(32bit-emul)
 EFI_LDS                        := elf_riscv32_efi.lds
-PLATFORM_ELFFLAGS      += -B riscv -O elf32-littleriscv
+PLATFORM_ELFFLAGS      += -B riscv -O elf32-$(large-endian)riscv
 endif
 
 ifdef CONFIG_64BIT
 KBUILD_LDFLAGS         += -m $(64bit-emul)
 EFI_LDS                        := elf_riscv64_efi.lds
-PLATFORM_ELFFLAGS      += -B riscv -O elf64-littleriscv
+PLATFORM_ELFFLAGS      += -B riscv -O elf64-$(large-endian)riscv
 endif
 
 PLATFORM_CPPFLAGS      += -ffixed-x3 -fpic