mirror of
https://github.com/openwrt/openwrt.git
synced 2026-10-13 19:48:16 +04:00
The Charter Spectrum SBE1V1K fails to boot with the default kernel load address. The device gets stuck early in the boot process due to the stock bootloader encountering memory overlap or alignment issues with the default `0x41000000` address. Changing `KERNEL_LOADADDR` to `0x42200000` resolves the boot failure and ensures stable operation. Why `0x42200000` instead of `0x42000000`? While testing showed that `0x42000000` also boots successfully, `0x42200000` was explicitly chosen for two primary safety reasons: 1. Avoid U-Boot `loadaddr` Overlap: On many QCA/IPQ platforms, `0x42000000` is commonly used as the default `loadaddr` to fetch the FIT image into memory. Setting the extraction destination (`KERNEL_LOADADDR`) to the exact same base address risks in-place decompression overlaps. 2. Reserved Memory Buffer: The memory range below `0x42000000` is heavily utilized by TZ, SMEM, and vendor-specific reserved memory in newer Askey firmwares. Adding a 2MB aligned offset (`0x200000`) provides a safer buffer against shifting vendor memory boundaries in future OEM bootloader updates, while still strictly satisfying the ARM64 2MB alignment requirement. This fix and the `0x42200000` address have been successfully tested on actual SBE1V1K hardware by community member motolav. Link: https://forum.openwrt.org/t/spectrum-sbe1v1k-ipq9574-openwrt-support/245244/262 Tested-by: motolav <https://forum.openwrt.org/u/motolav> Signed-off-by: Jackie Han <jackie.han@gmail.com> Link: https://github.com/openwrt/openwrt/pull/25344 Signed-off-by: Robert Marko <robimarko@gmail.com>