ARMv8-R AArch32 cores determine the CPU start address on reset from RVBAR (Reset Vector Base Address Register), which only stores bits [31:5] — bits [4:0] are RES0. Any firmware or boot-loader that programs RVBAR from the ELF entry point will silently truncate a non-aligned address to a 32-byte boundary, causing the CPU to begin executing at the wrong location. Whether __start lands on a 32-byte boundary depends on the size of code sections placed before it, which changes with Kconfig options. This makes the failure non-deterministic: a build may work today and break after enabling an unrelated feature like logging. Force 32-byte alignment on z_arm_reset/__start for ARMv8-R so the entry point survives RVBAR truncation on any SoC. Signed-off-by: Appana Durga Kedareswara rao <appana.durga.kedareswara.rao@amd.com> |
||
|---|---|---|
| .. | ||
| core | ||
| include | ||
| CMakeLists.txt | ||
| Kconfig | ||