应用处理器内存映射

Application processor memory map

应用处理器的内存映射包含哪些信息?它是告诉哪个子系统可以访问 RAM 的哪个区域,还是意味着如果 CPU 尝试访问基于内存映射的地址,它可以是 RAM 地址或设备地址?我指的是这份文件
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0515b/CIHIJJJA.html.

这里0x00_0000_0000到0x00_0800_0000映射到引导区,什么意思?

内存映射包含您设备的内存布局。 它告诉你的 OS,OS 可以在哪里放置数据以及如何访问数据,因为某些区域可能只能在特权状态下访问。 您的引导映像将放置在引导 area.This 中定义您的入口点。

您链接到的内存映射图的样式显示了处理器和外围设备将如何解码物理内存地址。这是任何片上系统设备的正常图表,但精确布局会有所不同。链接页面实际上列出了 SoC 的哪些单元使用此内存映射进行地址解码,其中包括 ARM 和 Mali 图形处理器。在 Linux 系统中,大部分信息将在设备树中传递给内核。重要的是要记住,这并没有告诉我们操作系统如何选择组织虚拟内存地址。

其中有趣的区域是:

DRAM - 这些地址将传递给 DRAM 控制器。不能保证所使用的特定板在所有该地址 space 处都有 DRAM。引导固件将设置 DRAM 控制器并将这些详细信息传递给操作系统。

PCIe - 这些地址将映射到 PCIe 控制器,并最终映射到 PCIe 链路上的传输。

默认情况下,此芯片上的引导区域包含一个片上引导 rom 和工作 space。在此特定芯片上,ARM TrustZone 安全架构增加了复杂性,这意味着启动后加载的应用程序代码可能无法访问该区域。在开发板上应该可以覆盖此映射并从外部设备启动。