arm64 的物理地址 space 映射
physical address space mapping for arm64
我可以从 DEN0001C_principles_of_arm_memory_maps.pdf:
找到 arm 的物理地址 space 映射
32-bit, 36-bit and 40-bit ARM Address Maps
Address map in use in ARM development systems today
- 32-bit - - 36-bit - - 40-bit -
1024GB+ + +--------------+ <- 40-bit
| | DRAM |
~ ~ ~ ~
| | |
| | |
| | |
| | |
544GB + + +--------------+
| | Hole or DRAM |
| | |
512GB + + +--------------+
| | Mapped |
| | I/O |
~ ~ ~ ~
| | |
256GB + + +--------------+
| | Reserved |
~ ~ ~ ~
| | |
64GB + +--------------+--------------+ <- 36-bit
| | DRAM |
~ ~ ~ ~
| | |
| | |
34GB + +--------------+--------------+
| | Hole or DRAM |
32GB + +--------------+--------------+
| | Mapped I/O |
~ ~ ~ ~
| | |
16GB + +--------------+--------------+
| | Reserved |
~ ~ ~ ~
4GB +--------------+--------------+--------------+ <- 32-bit
| 2GB of DRAM |
| |
2GB +--------------+--------------+--------------+
| Mapped I/O |
1GB +--------------+--------------+--------------+
| ROM & RAM & I/O |
0GB +--------------+--------------+--------------+ 0
- 32-bit - - 36-bit - - 40-bit -
Figure 1 32-bit, 36-bit and 40-bit Address Map
但是找不到arm64的映射,有官方文档吗?
更新
Arm 架构没有标准化 CPU 对物理地址的看法 space 事实上,DRAM 可能从地址 0x0 开始,但通常不是。 soc designer 可以有他们的布局。
============================================= ================
- 没有LPAE的32位armv7最多可以访问32位地址space
- 32位armv7最多可以访问40位地址space
- 64位arm自然最多可以访问48位的物理地址space:
256TB +-----------------+ <- 48-bit
| DRAM |
~ ~
| |
| |
| |
| |
136TB +-----------------+
| Hole or DRAM |
| |
128TB +-----------------+
| Mapped |
| I/O |
~ ~
| |
64TB +-----------------+
| Reserved |
~ ~
| |
16TB +-----------------+ <- 44-bit
~ ~
~ ~
~ ~
0GB +-----------------+ 0
所以,48位以下的地址space就按照问题描述中的布局
我可以从 DEN0001C_principles_of_arm_memory_maps.pdf:
找到 arm 的物理地址 space 映射32-bit, 36-bit and 40-bit ARM Address Maps
Address map in use in ARM development systems today
- 32-bit - - 36-bit - - 40-bit -
1024GB+ + +--------------+ <- 40-bit
| | DRAM |
~ ~ ~ ~
| | |
| | |
| | |
| | |
544GB + + +--------------+
| | Hole or DRAM |
| | |
512GB + + +--------------+
| | Mapped |
| | I/O |
~ ~ ~ ~
| | |
256GB + + +--------------+
| | Reserved |
~ ~ ~ ~
| | |
64GB + +--------------+--------------+ <- 36-bit
| | DRAM |
~ ~ ~ ~
| | |
| | |
34GB + +--------------+--------------+
| | Hole or DRAM |
32GB + +--------------+--------------+
| | Mapped I/O |
~ ~ ~ ~
| | |
16GB + +--------------+--------------+
| | Reserved |
~ ~ ~ ~
4GB +--------------+--------------+--------------+ <- 32-bit
| 2GB of DRAM |
| |
2GB +--------------+--------------+--------------+
| Mapped I/O |
1GB +--------------+--------------+--------------+
| ROM & RAM & I/O |
0GB +--------------+--------------+--------------+ 0
- 32-bit - - 36-bit - - 40-bit -
Figure 1 32-bit, 36-bit and 40-bit Address Map
但是找不到arm64的映射,有官方文档吗?
更新
Arm 架构没有标准化 CPU 对物理地址的看法 space 事实上,DRAM 可能从地址 0x0 开始,但通常不是。 soc designer 可以有他们的布局。
============================================= ================
- 没有LPAE的32位armv7最多可以访问32位地址space
- 32位armv7最多可以访问40位地址space
- 64位arm自然最多可以访问48位的物理地址space:
256TB +-----------------+ <- 48-bit
| DRAM |
~ ~
| |
| |
| |
| |
136TB +-----------------+
| Hole or DRAM |
| |
128TB +-----------------+
| Mapped |
| I/O |
~ ~
| |
64TB +-----------------+
| Reserved |
~ ~
| |
16TB +-----------------+ <- 44-bit
~ ~
~ ~
~ ~
0GB +-----------------+ 0
所以,48位以下的地址space就按照问题描述中的布局