Commit 827ba465 authored by Bamvor Jian Zhang's avatar Bamvor Jian Zhang Committed by Thomas Petazzoni
Browse files

aarch64: add big endian(aarch64_be) support



Add aarch64_be support. Note that CONFIG_CPU_BIG_ENDIAN should be
defined in kernel config when building a big endian kernel.

Signed-off-by: default avatarZhang Jian(Bamvor) <bamvor.zhangjian@huawei.com>
Acked-by: default avatarGustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
parent 44c48b12
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -329,7 +329,7 @@ KERNEL_ARCH := $(shell echo "$(ARCH)" | sed -e "s/-.*//" \
	-e s/arcle/arc/ \
	-e s/arceb/arc/ \
	-e s/arm.*/arm/ -e s/sa110/arm/ \
	-e s/aarch64/arm64/ \
	-e s/aarch64.*/arm64/ \
	-e s/bfin/blackfin/ \
	-e s/parisc64/parisc/ \
	-e s/powerpc64.*/powerpc/ \
+10 −2
Original line number Diff line number Diff line
@@ -59,7 +59,15 @@ config BR2_armeb
	  http://en.wikipedia.org/wiki/ARM

config BR2_aarch64
	bool "AArch64"
	bool "AArch64 (little endian)"
	select BR2_ARCH_IS_64
	help
	  Aarch64 is a 64-bit architecture developed by ARM Holdings.
	  http://www.arm.com/products/processors/instruction-set-architectures/armv8-architecture.php
	  http://en.wikipedia.org/wiki/ARM

config BR2_aarch64_be
	bool "AArch64 (big endian)"
	select BR2_ARCH_IS_64
	select BR2_ARCH_HAS_MMU_MANDATORY
	help
@@ -347,7 +355,7 @@ if BR2_arm || BR2_armeb
source "arch/Config.in.arm"
endif

if BR2_aarch64
if BR2_aarch64 || BR2_aarch64_be
source "arch/Config.in.aarch64"
endif

+3 −1
Original line number Diff line number Diff line
config BR2_ARCH
	default "aarch64"	if BR2_aarch64
	default "aarch64_be"	if BR2_aarch64_be

config BR2_ENDIAN
	default "LITTLE"
	default "LITTLE" if BR2_aarch64
	default "BIG"	 if BR2_aarch64_be

config BR2_ARCH_HAS_ATOMICS
	default y
+14 −13
Original line number Diff line number Diff line
@@ -23,8 +23,8 @@ source "package/linux-headers/Config.in.host"
choice
	prompt "C library"
	default BR2_TOOLCHAIN_UCLIBC
	default BR2_TOOLCHAIN_BUILDROOT_GLIBC if BR2_aarch64 || BR2_microblaze \
		|| BR2_mips64 || BR2_mips64el || BR2_powerpc64
	default BR2_TOOLCHAIN_BUILDROOT_GLIBC if BR2_aarch64 || BR2_aarch64_be \
		|| BR2_microblaze || BR2_mips64 || BR2_mips64el || BR2_powerpc64

config BR2_TOOLCHAIN_BUILDROOT_UCLIBC
	bool "uClibc"
@@ -43,10 +43,11 @@ config BR2_TOOLCHAIN_BUILDROOT_UCLIBC
config BR2_TOOLCHAIN_BUILDROOT_EGLIBC
	bool "eglibc"
	depends on BR2_arm        || BR2_armeb    || BR2_aarch64    || \
		   BR2_i386   || BR2_mips     || BR2_mipsel  || \
		   BR2_mips64 || BR2_mips64el || BR2_powerpc || \
		   BR2_sh     || BR2_sh64     || BR2_sparc   || \
		   BR2_x86_64 || BR2_microblaze || BR2_powerpc64
		   BR2_aarch64_be || BR2_i386     || BR2_mips       || \
		   BR2_mipsel     || BR2_mips64   || BR2_mips64el   || \
		   BR2_powerpc    || BR2_sh       || BR2_sh64       || \
		   BR2_sparc      || BR2_x86_64   || BR2_microblaze || \
		   BR2_powerpc64
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	depends on BR2_DEPRECATED_SINCE_2015_08
@@ -62,11 +63,11 @@ config BR2_TOOLCHAIN_BUILDROOT_EGLIBC
config BR2_TOOLCHAIN_BUILDROOT_GLIBC
	bool "glibc"
	depends on BR2_arm         || BR2_armeb      || BR2_aarch64 || \
		   BR2_i386        || BR2_mips     || BR2_mipsel  || \
		   BR2_mips64      || BR2_mips64el || BR2_powerpc || \
		   BR2_powerpc64   || BR2_powerpc64le || BR2_sh   || \
		   BR2_sh64        || BR2_sparc    || BR2_x86_64  || \
		   BR2_microblaze  || BR2_nios2
		   BR2_aarch64_be  || BR2_i386       || BR2_mips    || \
		   BR2_mipsel      || BR2_mips64     || BR2_mips64el|| \
		   BR2_powerpc     || BR2_powerpc64  || BR2_powerpc64le || \
		   BR2_sh          || BR2_sh64       || BR2_sparc   || \
		   BR2_x86_64      || BR2_microblaze || BR2_nios2
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	depends on !BR2_powerpc_SPE