[PATCH] ARM: mach-qcom: fix support for ipq806x
From: Christian Marangi
Date: Fri Oct 21 2022 - 14:10:43 EST
Add a specific config flag for Qcom IPQ806x as this SoC can't use
AUTO_ZRELADDR and require the PHYS_OFFSET set to 0x42000000.
This is needed as some legacy board (or some wrongly configured
bootloader) pass the wrong memory map and doesn't exclude the first
~20MB of RAM reserved for the hardware network accellerators.
With this change we can correctly support each board and prevent any
kind of misconfiguration done by the OEM.
Signed-off-by: Christian Marangi <ansuelsmth@xxxxxxxxx>
---
arch/arm/Kconfig | 3 ++-
arch/arm/mach-qcom/Kconfig | 13 +++++++++++++
2 files changed, 15 insertions(+), 1 deletion(-)
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 1af63e17b4ad..0818d35973ad 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -282,6 +282,7 @@ config PHYS_OFFSET
default 0x30000000 if ARCH_S3C24XX
default 0xa0000000 if ARCH_IOP32X || ARCH_PXA
default 0xc0000000 if ARCH_EP93XX || ARCH_SA1100
+ default 0x42000000 if ARCH_IPQ806X
default 0
help
Please provide the physical address corresponding to the
@@ -1701,7 +1702,7 @@ config CRASH_DUMP
config AUTO_ZRELADDR
bool "Auto calculation of the decompressed kernel image address" if !ARCH_MULTIPLATFORM
- default !(ARCH_FOOTBRIDGE || ARCH_RPC || ARCH_SA1100)
+ default !(ARCH_FOOTBRIDGE || ARCH_RPC || ARCH_SA1100 || ARCH_IPQ806X)
help
ZRELADDR is the physical address where the decompressed kernel
image will be placed. If AUTO_ZRELADDR is selected, the address
diff --git a/arch/arm/mach-qcom/Kconfig b/arch/arm/mach-qcom/Kconfig
index 12a812e61c16..b11b6e391ff0 100644
--- a/arch/arm/mach-qcom/Kconfig
+++ b/arch/arm/mach-qcom/Kconfig
@@ -46,4 +46,17 @@ config ARCH_MDM9615
bool "Enable support for MDM9615"
select CLKSRC_QCOM
+config ARCH_IPQ806X
+ bool "Enable support for IPQ806x"
+ help
+ Enable support for the Qualcomm IPQ806x.
+
+ IPQ806x require special PHYS_OFFSET and can't use AUTO_ZRELADDR.
+ The first ~20MB of RAM is reserved for the hardware network accelerators,
+ and the bootloader removes this section from the layout passed from the
+ ATAGS (when used by some bootloader doesn't even do that).
+
+ To support every system and handle legacy systems, hardcode PHYS_OFFSET and
+ disable AUTO_ZRELADDR.
+
endif
--
2.37.2