blob: 8c37957dd86fedb2d4b4f6774aa0e2f8ba33e86f [file] [log] [blame]
Maximilian Bruneee1cb8f2024-02-24 04:34:55 +01001/* SPDX-License-Identifier: GPL-2.0-only */
2
3#include <cbmem.h>
4#include <symbols.h>
5#include <ramdetect.h>
Alper Nebi Yasak08d7d312024-02-05 20:16:26 +03006#include <device_tree.h>
7#include <mcall.h>
Maximilian Bruneee1cb8f2024-02-24 04:34:55 +01008
9uintptr_t cbmem_top_chipset(void)
10{
Alper Nebi Yasak08d7d312024-02-05 20:16:26 +030011 uint64_t top;
12
13 top = fdt_get_memory_top((void *)HLS()->fdt);
14 if (top)
15 return MIN(top, (uint64_t)4 * GiB - 1);
16
Maximilian Bruneee1cb8f2024-02-24 04:34:55 +010017 size_t dram_mb_detected = probe_ramsize((uintptr_t)_dram, CONFIG_DRAM_SIZE_MB);
18 return (uintptr_t)_dram + dram_mb_detected * MiB;
19}