diff options
| author | Kimplul <kimi.h.kuparinen@gmail.com> | 2023-08-04 20:50:41 +0300 |
|---|---|---|
| committer | Kimplul <kimi.h.kuparinen@gmail.com> | 2023-08-04 20:50:41 +0300 |
| commit | e16f5f81dfb2e97a554ec19b941ec05a7942fd2d (patch) | |
| tree | 46f0609b5be009d4d1057fa02ece4461732941e0 /common/pmem.c | |
| parent | 5f30284181fcfe5b16dfb94d4fba9a9ed4a2dc6a (diff) | |
| download | kmi-e16f5f81dfb2e97a554ec19b941ec05a7942fd2d.tar.gz kmi-e16f5f81dfb2e97a554ec19b941ec05a7942fd2d.zip | |
add initial smp bringup
Diffstat (limited to 'common/pmem.c')
| -rw-r--r-- | common/pmem.c | 8 |
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; } |
