arm32: Fix relocation of env_addr if POSITION_INDEPENDENT=y
authorPali Rohár <pali@kernel.org>
Sun, 20 Nov 2022 16:56:26 +0000 (17:56 +0100)
committerTom Rini <trini@konsulko.com>
Mon, 21 Nov 2022 14:23:00 +0000 (09:23 -0500)
commit04bb5e95bed2ffd9e788a76b9f6ae52de58bc6b4
tree4133ec8d2d93764e3a20f95c18532ad5f2d2e882
parent2827c2f07d6a5c498262cee7fe78aacfbf44f174
arm32: Fix relocation of env_addr if POSITION_INDEPENDENT=y

Apply commit 534f0fbd6520 ("arm64: Fix relocation of env_addr if
POSITION_INDEPENDENT=y") also for 32-bit ARM.

This change fixes crashing of U-Boot on ARMv7 (Omap3 / Cortex-A8) Nokia N900
phone (real HW). Note that qemu emulator of this board with same u-boot.bin
binary has not triggered this crash.

Crash happened after U-Boot printed following debug lines to serial console:

    initcall: 0001ea8c (relocated to 8fe0aa8c)
    Loading Environment from <NULL>... Using default environment
    Destroy Hash Table: 8fe25a98 table = 00000000
    Create Hash Table: N=387

Signed-off-by: Pali Rohár <pali@kernel.org>
arch/arm/lib/crt0.S