Re: [PATCH 00/12] arm64: Remove unused big-endian support
From: "Arnd Bergmann" <arnd@arndb.de>
Date: 2026-08-11 15:12:34
Also in:
lkml
Subsystem:
arm/qualcomm mailing list, arm/qualcomm support, crypto api, hisilicon qm driver, qualcomm tee (qcomtee) driver, tee subsystem, the rest · Maintainers:
Bjorn Andersson, Konrad Dybcio, Herbert Xu, "David S. Miller", Weili Qian, Zhou Wang, Amirreza Zarrabi, Jens Wiklander, Linus Torvalds
On Tue, Aug 11, 2026, at 16:01, Will Deacon wrote:
Hi folks,
Big-endian support on arm64 (CONFIG_CPU_BIG_ENDIAN) has depended on
BROKEN since 1cf89b6bf660 ("arm64: Kconfig: Make CPU_BIG_ENDIAN depend
on BROKEN") and has already seen some clean-up patches removing some of
the unused support code (e.g. 5276ea17a23c ("lib/crc: arm64: Assume a
little-endian kernel")).
Finish the job, and remove the remaining big-endian support code from
arm64. Note that the SETEND emulation for 32-bit tasks remains and so
some of the mixed-endian EL0 helpers are retained.I had not expected the removal to come this soon, but I'm not complaining about that. I assume you are planning this for 7.4, leaving 7.3-LTS to still have the code in case someone wants to still use it, right? Not sure if you saw https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/arch/arm/mm/Kconfig?id=fe91e4e9da70765420538d9cbcf6d9a970237a8d https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/arch/arm/mach-ixp4xx/Kconfig?id=2262f02ac2aa545560a7f182c8e6b5c98e72763c so for 7.3, we have marked big-endian mode in arm32 as deprecated as well, and also managed to get ixp4xx working again in little-endian mode, which was slightly broken for a few years. It may be good to add a reference to your series for context. My suggestions there was to possibly remove arm32 big-endian mode at the same time as on arm64, but that does feel a little rushed if ixp4xx only has one release of supporting both, and removing be8 but leaving be32 for a little while longer is probably not worth it.
I've broken this down into fairly coarse chunks, as it seemed a lot easier to manage than one giant patch (even with the Kconfig being effectively disabled already) and not all of it is just mindless deletion. Despite that, I'm anticipating the whole thing going via the arm64 tree.
I would have done even larger patches, this does already feel fairly fine-grained to me ;-). I had a look at the individual patches to make sure this all makes sense, and I found nothing wrong here. For a 7.4 (or later) merge: Acked-by: Arnd Bergmann <arnd@arndb.de> There are also a few arm64 specific drivers that I think no longer need a dependency, but none of that is important:
diff --git a/drivers/crypto/hisilicon/Kconfig b/drivers/crypto/hisilicon/Kconfig
index aeff08ccbadd..1ae7b146b241 100644
--- a/drivers/crypto/hisilicon/Kconfig
+++ b/drivers/crypto/hisilicon/Kconfig@@ -53,7 +53,6 @@ config CRYPTO_DEV_HISI_ZIP tristate "Support for HiSilicon ZIP accelerator" depends on PCI_MSI depends on ARM64 || (COMPILE_TEST && 64BIT) - depends on !CPU_BIG_ENDIAN || COMPILE_TEST depends on UACCE || UACCE=n depends on ACPI select CRYPTO_DEV_HISI_QM
diff --git a/drivers/firmware/qcom/Kconfig b/drivers/firmware/qcom/Kconfig
index c7f8413ab996..f0c1061b0005 100644
--- a/drivers/firmware/qcom/Kconfig
+++ b/drivers/firmware/qcom/Kconfig@@ -18,7 +18,6 @@ config QCOM_PAS_TEE tristate "Qualcomm PAS TEE interface driver" select QCOM_PAS depends on TEE - depends on !CPU_BIG_ENDIAN default m if ARCH_QCOM help Enable the generic Peripheral Authentication Service (PAS) provided
diff --git a/drivers/firmware/tegra/Kconfig b/drivers/firmware/tegra/Kconfig
index 3a9162706439..e9271d706726 100644
--- a/drivers/firmware/tegra/Kconfig
+++ b/drivers/firmware/tegra/Kconfig@@ -14,7 +14,6 @@ config TEGRA_IVC config TEGRA_BPMP bool "Tegra BPMP driver" depends on ARCH_TEGRA && TEGRA_HSP_MBOX - depends on !CPU_BIG_ENDIAN select TEGRA_IVC help BPMP (Boot and Power Management Processor) is designed to off-loading
diff --git a/drivers/soc/tegra/Kconfig b/drivers/soc/tegra/Kconfig
index 8b6fdb9ad1ea..318e7b604342 100644
--- a/drivers/soc/tegra/Kconfig
+++ b/drivers/soc/tegra/Kconfig@@ -102,7 +102,6 @@ config ARCH_TEGRA_210_SOC config ARCH_TEGRA_186_SOC bool "NVIDIA Tegra186 SoC" default ARCH_TEGRA - depends on !CPU_BIG_ENDIAN select PINCTRL_TEGRA186 select MAILBOX select SOC_TEGRA_PMC
@@ -117,7 +116,6 @@ config ARCH_TEGRA_186_SOC config ARCH_TEGRA_194_SOC bool "NVIDIA Tegra194 SoC" default ARCH_TEGRA - depends on !CPU_BIG_ENDIAN select MAILBOX select PINCTRL_TEGRA194 select SOC_TEGRA_PMC
@@ -127,7 +125,6 @@ config ARCH_TEGRA_194_SOC config ARCH_TEGRA_234_SOC bool "NVIDIA Tegra234 SoC" default ARCH_TEGRA - depends on !CPU_BIG_ENDIAN select MAILBOX select PINCTRL_TEGRA234 select SOC_TEGRA_PMC
@@ -137,7 +134,6 @@ config ARCH_TEGRA_234_SOC config ARCH_TEGRA_238_SOC bool "NVIDIA Tegra238 SoC" default ARCH_TEGRA - depends on !CPU_BIG_ENDIAN select MAILBOX select SOC_TEGRA_PMC help
@@ -152,7 +148,6 @@ config ARCH_TEGRA_241_SOC config ARCH_TEGRA_264_SOC bool "NVIDIA Tegra264 SoC" default ARCH_TEGRA - depends on !CPU_BIG_ENDIAN select MAILBOX select SOC_TEGRA_PMC help
diff --git a/drivers/tee/qcomtee/Kconfig b/drivers/tee/qcomtee/Kconfig
index 9f19dee08db4..bd9be3e9a9ac 100644
--- a/drivers/tee/qcomtee/Kconfig
+++ b/drivers/tee/qcomtee/Kconfig@@ -3,7 +3,6 @@ config QCOMTEE tristate "Qualcomm TEE Support" depends on ARCH_QCOM || COMPILE_TEST - depends on !CPU_BIG_ENDIAN select QCOM_SCM select QCOM_TZMEM_MODE_SHMBRIDGE help