summaryrefslogtreecommitdiff
path: root/components/drivers/core
diff options
context:
space:
mode:
authorzms123456 <[email protected]>2024-06-26 14:36:49 +0800
committerGitHub <[email protected]>2024-06-26 14:36:49 +0800
commitb785ef9ed76fcf97d3f2d59e02bfaa8b5f6cc74e (patch)
tree30056616a80720abecb7186ed1ac4a585f4674d3 /components/drivers/core
parentac2664438d0d1048be46cb110549b90213a0e57a (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.c21
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;
}
}