Linux内存从0到1学习笔记(6.4,物理内存初始化之预留内存)
Posted 高桐@BILL
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux内存从0到1学习笔记(6.4,物理内存初始化之预留内存)相关的知识,希望对你有一定的参考价值。
写在前面
前面的章节中有提到过,memblock分配器会将内存划分为动态管理的内存(保存在memblock的memory type的数组)和静态预留的内存(保存在memblock的reserved type的数组)。
linux_mainline-5.17.0/include/linux/memblock.h /** * struct memblock - memblock allocator metadata * @bottom_up: is bottom up direction? * @current_limit: physical address of the current allocation limit * @memory: usable memory regions * @reserved: reserved memory regions */ struct memblock bool bottom_up; /* is bottom up direction? */ phys_addr_t current_limit; struct memblock_type memory; struct memblock_type reserved; ;
我们来了解下预留内存是如何初始化的。
一、memblock分配器初始化预留内存
在ARM Linux中,各种设备的相关属性描述都采用DTS方式来呈现。DTS是"Device Tree Source"的简称,最早是由PowerPC等其他体系结构使用的FDT(Flattened Device Tree)转变过来的。
内核reserved type在完成fdt内存区域的地址映射之后(fixmap_remap_fdt),内核会对fdt进行扫描,以便完成reserved type数组的构建。
以上是关于Linux内存从0到1学习笔记(6.4,物理内存初始化之预留内存)的主要内容,如果未能解决你的问题,请参考以下文章
Linux内存从0到1学习笔记(6.8,物理内存初始化之buddy伙伴系统)
Linux内存从0到1学习笔记(六,物理内存初始化之四 --- 内存分配器)---持续更新
Linux内存从0到1学习笔记(六,物理内存初始化) --- 更新中
Linux内存从0到1学习笔记(6.10 物理内存初始化之vmalloc分配器)