mirror of
https://github.com/RT-Thread/rt-thread.git
synced 2026-09-22 03:09:16 +08:00
[libcpu][aarch64]memory setup using memblock (#9092)
* memory setup using memblock * map pages later
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user