/* SPDX-License-Identifier: GPL-2.0-only */ #include <cbmem.h> #include <soc/addressmap.h> void *cbmem_top_chipset(void) { static uintptr_t addr; if (addr == 0) { uintptr_t begin_mib; uintptr_t end_mib; memory_in_range_below_4gb(&begin_mib, &end_mib); /* Make sure we consume everything up to 4GIB. */ if (end_mib == 4096) addr = ~(uint32_t)0; else addr = end_mib << 20; } return (void *)addr; }