summaryrefslogtreecommitdiff
path: root/components/drivers/core
diff options
context:
space:
mode:
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;
}
}