diff --git a/src/arch/arm/Makefile.inc b/src/arch/arm/Makefile.inc index 25f764c25f..e739d0b8d5 100644 --- a/src/arch/arm/Makefile.inc +++ b/src/arch/arm/Makefile.inc @@ -117,7 +117,7 @@ ifeq ($(CONFIG_ARCH_RAMSTAGE_ARM),y) ramstage-y += stages.c ramstage-y += div0.c -ramstage-y += cpu.c +ramstage-$(CONFIG_COOP_MULTITASKING) += cpu.c ramstage-y += eabi_compat.c ramstage-y += boot.c ramstage-y += tables.c diff --git a/src/arch/arm/cpu.c b/src/arch/arm/cpu.c index f90c759559..e02fed30a2 100644 --- a/src/arch/arm/cpu.c +++ b/src/arch/arm/cpu.c @@ -34,6 +34,11 @@ */ struct cpu_info *cpu_info(void) { +#error "This is BROKEN! ARM stacks are currently not guaranteed to be " \ + "STACK_SIZE-aligned in any way. If you ever plan to revive this " \ + "feature, make sure you add the proper assertions " \ + "(and maybe consider revising the whole thing to work closer to what " \ + "arm64 is doing now)." uintptr_t addr = ALIGN((uintptr_t)__builtin_frame_address(0), CONFIG_STACK_SIZE); addr -= sizeof(struct cpu_info);