zephyr/arch/arm
Appana Durga Kedareswara rao bb3795b75f arch: arm: cortex_a_r: align reset entry to 32 bytes for ARMv8-R RVBAR
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>
2026-03-13 16:34:05 +01:00
..
core arch: arm: cortex_a_r: align reset entry to 32 bytes for ARMv8-R RVBAR 2026-03-13 16:34:05 +01:00
include arch/arm: Remove unused Cortex M thread struct elements 2026-03-10 17:24:10 +01:00
CMakeLists.txt arch: arm: cmake: Correct endian in output format 2024-07-04 18:01:51 -04:00
Kconfig arch: arm: cortex_m: Allow VTOR to be relocated to TCM 2025-11-24 08:47:28 +01:00