【Zynq UltraScale+ MPSoC解密学习9】Zynq UltraScale+的地址映射

时间:2024-05-21 22:41:35

目录

一、基本介绍

1.1 全局地址映射

1.1.1 32bit(4GB)地址映射

1.1.2 36bit(64GB)地址映射

1.1.3 40bit(1TB)地址映射

1.1.4 系统地址映射互联

二、系统地址寄存器概述

2.1 系统层级控制寄存器(SLCR寄存器)

2.2 私有CPU寄存器

2.3 PS I/O外设寄存器

2.4 PS系统寄存器

三、详细参考


1、基本介绍

Zynq®UltraScale+ MPSoC可以支持最多1TB物理地址空间的单个地址映射配置。Arm v8-A架构允许通过软件来配置物理地址。

1.1 全局地址映射

全局地址映射由多个包含的地址映射组成,具体取决于master接口的地址位宽。Zynq UltraScale+ MPSoC地址映射为40位(物理地址空间最大为40位)。

1.1.1 32bit(4GB)地址映射

我们之前提到,A53也兼容32位,那么为了保持和32位软件的兼容性,低4GB的地址映射为所有设备提供了接口。所有外设地址空间都分配在较低的4GB中,而且是固定的地址映射。

1.1.2 36bit(64GB)地址映射

36位地址映射是32位地址映射的扩展集。超过4GB的地址空间分配给了PL、PCIe接口和DDR控制器。在这个区域中,DDR控制器占用了32GB。

1.1.3 40bit(1TB)地址映射

40位地址映射是36位地址映射的扩展集。超过64GB的地址空间分配给PL、PCIe接口和DDR控制器。

1.1.4 系统地址映射互联

全局地址映射表如下:
 【Zynq UltraScale+ MPSoC解密学习9】Zynq UltraScale+的地址映射
SMMU支持两个阶段的转换:
阶段1是从虚拟地址(VA)到中间物理地址(IPA),阶段2是从中间物理地址(IPA)到物理地址。PS主接口的虚拟化目标主要是阶段2的转换,例如hypervisor场景仅使用阶段2转换。PL可以使用阶段1和/或阶段2的转换。
对于阶段1的地址转换,ARM v8架构支持最多49bit的寻址;对于阶段2的地址转换,ARM v8架构则支持最多48bit的中间物理地址。
完整的系统地址映射如下图所示:
 【Zynq UltraScale+ MPSoC解密学习9】Zynq UltraScale+的地址映射


二、系统地址寄存器概述

2.1 系统层级控制寄存器(SLCR寄存器)

SLCR寄存器用来控制PS的行为,其中每个寄存器的详细描述可以参考UG1087。其中有一部分寄存器需要安全模式访问,所有的寄存器都需要通过XPPU进行访问,XPPU可以设置访问要求包括安全访问、读写访问和被master接口访问。SLCR寄存器及其基本地址的概要描述如下表所示:
 【Zynq UltraScale+ MPSoC解密学习9】Zynq UltraScale+的地址映射

2.2 私有CPU寄存器

RPUs和APUs都有单独私有的CPU寄存器用来配置中断控制器,寄存器地址如下表。APU_GIC在AXI互连上,可以通过使用FPD_XMPU保护单元来让APU专用。
 【Zynq UltraScale+ MPSoC解密学习9】Zynq UltraScale+的地址映射

2.3 PS I/O外设寄存器

I/O外设寄存器可以通过32bit的APB总线访问,低功耗域和全功耗域外设的基地址如以下两表:
 【Zynq UltraScale+ MPSoC解密学习9】Zynq UltraScale+的地址映射
 【Zynq UltraScale+ MPSoC解密学习9】Zynq UltraScale+的地址映射

2.4 PS系统寄存器

还有些寄存器之前没有覆盖的可见下表:
 【Zynq UltraScale+ MPSoC解密学习9】Zynq UltraScale+的地址映射

【Zynq UltraScale+ MPSoC解密学习9】Zynq UltraScale+的地址映射 


三、详细参考

Zynq UltraScale+的详细寄存器手册可以见UG1087。在Zynq 7000时,寄存器单独附在ug585文档最后,到了U+有了单独的文档,但是现在不是PDF格式的,而是网页版,还好搜索查找都比较方便,详见地址:https://www.xilinx.com/html_docs/registers/ug1087/ug1087-zynq-ultrascale-registers.html#_overview.html。有时想在没网络的情况下查看寄存器手册,那么可以把网页存下来离线查看。