aboutsummaryrefslogtreecommitdiff
path: root/common/pmem.c
diff options
context:
space:
mode:
authorKimplul <kimi.h.kuparinen@gmail.com>2023-08-04 20:50:41 +0300
committerKimplul <kimi.h.kuparinen@gmail.com>2023-08-04 20:50:41 +0300
commite16f5f81dfb2e97a554ec19b941ec05a7942fd2d (patch)
tree46f0609b5be009d4d1057fa02ece4461732941e0 /common/pmem.c
parent5f30284181fcfe5b16dfb94d4fba9a9ed4a2dc6a (diff)
downloadkmi-e16f5f81dfb2e97a554ec19b941ec05a7942fd2d.tar.gz
kmi-e16f5f81dfb2e97a554ec19b941ec05a7942fd2d.zip
add initial smp bringup
Diffstat (limited to 'common/pmem.c')
-rw-r--r--common/pmem.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/common/pmem.c b/common/pmem.c
index 02c5146..ed79e4a 100644
--- a/common/pmem.c
+++ b/common/pmem.c
@@ -550,7 +550,7 @@ static void __mark_area_used(pm_t base, pm_t top)
static void __mark_reserved_mem(void *fdt)
{
int rmem_offset = fdt_path_offset(fdt, "/reserved-memory");
- struct cell_info ci = get_reginfo(fdt, "/reserved-memory");
+ struct cell_info ci = get_cellinfo(fdt, rmem_offset);
int node = 0;
fdt_for_each_subnode(node, fdt, rmem_offset) {
@@ -576,10 +576,12 @@ static void __mark_reserved_mem(void *fdt)
*/
static pm_t __get_ramtop(void *fdt)
{
- struct cell_info ci = get_reginfo(fdt, "/memory");
int mem_offset = fdt_path_offset(fdt, "/memory");
- uint8_t *mem_reg = (uint8_t *)fdt_getprop(fdt, mem_offset, "reg", NULL);
+ const void *mem_reg = fdt_getprop(fdt, mem_offset, "reg", NULL);
+ /* here we actually want the root offset because /memory itself doesn't
+ * have children, I guess? */
+ struct cell_info ci = get_cellinfo(fdt, fdt_path_offset(fdt, "/"));
pm_t base = (pm_t)fdt_load_reg_addr(ci, mem_reg, 0);
return (pm_t)fdt_load_reg_size(ci, mem_reg, 0) + base;
}