1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 3 #include <cbmem.h> 4 #include <soc/soc_services.h> 5 6 static int cbmem_backing_store_ready; 7 ipq_cbmem_backing_store_ready(void)8void ipq_cbmem_backing_store_ready(void) 9 { 10 cbmem_backing_store_ready = 1; 11 } 12 cbmem_top_chipset(void)13uintptr_t cbmem_top_chipset(void) 14 { 15 /* 16 * In romstage, make sure that cbmem backing store is ready before 17 * returning the pointer to cbmem top. Otherwise, it could lead to 18 * issues with components that utilize cbmem in romstage 19 * (e.g. vboot_locator for loading ipq blobs before DRAM is 20 * initialized). 21 */ 22 if (cbmem_backing_store_ready == 0) 23 return 0; 24 25 return (uintptr_t)_memlayout_cbmem_top; 26 } 27