summaryrefslogtreecommitdiffstats
path: root/src/arch/arm/cpu.c
blob: f4e7db70ec6c02d565e69dc32f45b74a88453499 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/* SPDX-License-Identifier: BSD-3-Clause */
/* This file is part of the coreboot project. */

#include <arch/cpu.h>
#include <commonlib/helpers.h>

/* Return the CPU struct which is at the high memory address of the stack.
 */
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_UP((uintptr_t)__builtin_frame_address(0),
		CONFIG_STACK_SIZE);
	addr -= sizeof(struct cpu_info);
	return (void *)addr;
}