diff options
| author | zms123456 <[email protected]> | 2024-06-26 14:36:49 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2024-06-26 14:36:49 +0800 |
| commit | b785ef9ed76fcf97d3f2d59e02bfaa8b5f6cc74e (patch) | |
| tree | 30056616a80720abecb7186ed1ac4a585f4674d3 /components/drivers/core | |
| parent | ac2664438d0d1048be46cb110549b90213a0e57a (diff) | |
[libcpu][aarch64]memory setup using memblock (#9092)
* memory setup using memblock
* map pages later
Diffstat (limited to 'components/drivers/core')
| -rw-r--r-- | components/drivers/core/mnt.c | 21 |
1 files changed, 7 insertions, 14 deletions
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 <msh.h> #endif #include <ioremap.h> +#include <mm_memblock.h> #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; } } |
