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就按照问题描述中的布局