From b785ef9ed76fcf97d3f2d59e02bfaa8b5f6cc74e Mon Sep 17 00:00:00 2001 From: zms123456 <85141075+zmshahaha@users.noreply.github.com> Date: Wed, 26 Jun 2024 14:36:49 +0800 Subject: [libcpu][aarch64]memory setup using memblock (#9092) * memory setup using memblock * map pages later --- components/drivers/core/mnt.c | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) (limited to 'components/drivers/core') diff --git a/components/drivers/core/mnt.c b/components/drivers/core/mnt.c index cca6d1c944..c59fcd8b89 100644 --- a/components/drivers/core/mnt.c +++ b/components/drivers/core/mnt.c @@ -21,10 +21,10 @@ #include #endif #include +#include #ifdef RT_USING_OFW #define bootargs_select rt_ofw_bootargs_select -#define memregion_request rt_fdt_commit_memregion_request #else #error Platform have not kernel parameters select interfaces! #endif @@ -41,23 +41,16 @@ static int rootfs_mnt_init(void) if (!dev || !fstype) { const char *name = "initrd"; - rt_size_t mem_region_nr; - rt_region_t *mem_region; rt_uint64_t initrd_start = 0, initrd_end = 0; + struct rt_mmblk_reg *iter = RT_NULL; - if (!memregion_request(&mem_region, &mem_region_nr, RT_TRUE)) + rt_slist_for_each_entry(iter, &(rt_memblock_get_reserved()->reg_list), node) { - while (mem_region_nr-- > 0) + if (rt_strcmp(iter->memreg.name, name) == 0) { - if (mem_region->name == name || !rt_strcmp(mem_region->name, name)) - { - initrd_start = mem_region->start; - initrd_end = mem_region->end; - - break; - } - - mem_region++; + initrd_start = iter->memreg.start; + initrd_end = iter->memreg.end; + break; } } -- cgit v1.3.1