Ai
1 Star 0 Fork 0

博尔特烦恼/chcore-note

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
c 10.72 KB
一键复制 编辑 原始数据 按行查看 历史
博尔特烦恼 提交于 2022-03-17 17:38 +08:00 . 2
+-----------------------------------------------------+
| TIPS:u64 boot_ttbr1_l0, |
| boot_ttbr1_l1, |
VA PA | boot_ttbr1_l2 |
| 地址都在bootloader内。 |
内核空间映射[直接以2M页粒度永久映射] | |
KVADDR=0xffffff0000000000 | |
+---------------+ -------------------> +--------------+ PA:0x0000_0000 | 以上定义表明:页表页的地址和(L0, L1)页表项的填充都是 |
| | | | | bootloader范围内的物理地址. 当然L2填充的是[0,256M]的|
| | | | | 物理地址,对应了[KVADDR, KVADDR+256M] |
| | | | | |
| | | | | 以上是固定分配,与后面空洞映射采用页的方式不一样。 |
| | | | | |
| | | | | 虽然本质上都是virt = phys + kvaddr.但是页的方式更加 |
| | MMU | | | 的灵活. |
| 256M | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | +-----------------------------------------------------+
| | | |
| | | |
| | | |
+------------------------+---------------+--------------------------+--------------+-----+ PA:PHYSMEM_BOOT_END 0x1000_0000
boot_ttbr1_l0 boot_ttbr1_l1 boot_ttbr1_l2 PA:0x0000_0000
+--------> +--------------------+ +------------> +---------------------------+ per idx
| | | GET_L1_INDEX(kva),idx=0| |-----------------------------> +---------------+ +--------------------------+
| | | | +---------------------------+ |----------------------------------> | | 2M
| | | | | | |---------------| +--------------------------+
| | | | | | |---------------------------------> | |
| | | | | | |---------------| | | 2M
| | | | | | |---------------| +--------------------------+
| +--------------------+ | | | |---------------| | |
L0 L1 L2 2M GET_L0_INDEX(kva), idx=510 | |----------------- | | |---------------| | | 2M
+----+-----+-----+------------+ | +--------------------| | | |---------------| +--------------------------+
| | | | | | +--------------------+ +---------------------------+ |---------------| | |
+----+-----+-----+------------+ | |---------------| | |
KVADDR | L0 PTP L1 PTP |---------------| +--------------------------+
+ +---------------------------+ +---------------+ | |
| | | | L2 PTP | |
| | | | +--------------------------+
| | +---+-------+ | ++
| | MMU |ttbr1_el1 | | |
+----------> | +-----------+ +---------------------------+
| | | |
| | | |
+---------------------------+ | |
| |
| |
| |
+--------------------------+
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/home-coder/chcore-note.git
git@gitee.com:home-coder/chcore-note.git
home-coder
chcore-note
chcore-note
master

搜索帮助