ipq806x: fix boot freeze on zImage kernel
authorFelix Fietkau <nbd@openwrt.org>
Sun, 10 May 2015 11:46:56 +0000 (11:46 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Sun, 10 May 2015 11:46:56 +0000 (11:46 +0000)
commit2fb73fa3e40221354e6d3c80878d06fb2bc98164
treedf274ca30b3f623f19a0dd31d64f382b8b12c12e
parent59606690fb6fc974b6f7ace02049d4892df20f18
ipq806x: fix boot freeze on zImage kernel

ARCH_QCOM is using the ARCH_MULTIPLATFORM option, as now recommended
on most ARM architectures. This automatically calculate ZRELADDR by
masking PHYS_OFFSET with 0xf8000000.

On IPQ806x though, the first ~20MB of RAM is reserved for the hardware.
In newer bootloader, when DT is used, this is not a problem, we just
reserve this memory in the device tree. But if the bootloader doesn't
have DT support, then ATAGS have to be used. In this case, the ARM
decompressor will position the kernel in this low mem, which will not be
in the RAM section mapped by the bootloader, which means the kernel will
freeze in the middle of the boot process trying to map the memory.

As a work around, this patch allows disabling AUTO_ZRELADDR when
ARCH_QCOM is selected. It makes the zImage usage possible on bootloaders
which don't support device-tree, which is the case on certain early
IPQ806x based designs.

Signed-off-by: Mathieu Olivari <mathieu@codeaurora.org>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@45661 3c298f89-4303-0410-b956-a3cf2f4a3e73
target/linux/ipq806x/patches-3.18/300-arch-arm-force-ZRELADDR-on-arch-qcom.patch [new file with mode: 0644]
target/linux/ipq806x/patches-4.0/300-arch-arm-force-ZRELADDR-on-arch-qcom.patch [new file with mode: 0644]