DM8168是多处理器系统,每个子系统或处理器都有自己的内存和内存映射的寄存器。为了简化软件开发,使用一个统一的内存映射,这样从所有总线Master方来看芯片资源具有了一致性。
整个系统内存映射被划分为4个1GB的quadrant,用于目标地址空间的定位。4个quadrant:Q0、Q1、Q2和Q3总计4-GB 的32位地址空间。(HDVPSS包括一个第33位地址位,用于附加的4GB地址范围,这用作虚拟寻址和非物理内存寻址),在每个quadrant内部,系统目标以4MB为边界进行映射(除了EDMA目标,它降低到1MB范围)。
DM8168是使用一种互连技术,将多处理器和子系统连接到一起的。因此我们有必要介绍一下这个互连技术。
所谓互连,就是模块之间实现存取的一种技术,先要理解一些基本概略:
l Initiator(发起者):向互连发起读写请求。典型如:处理器、DMA。
l Target(目标):不同与Initiator,它不向互连发出读写请求,但是它能响应这些请求。它还可以向系统产生中断和DMA请求。典型如:外设、内存控制器
l Agent(代理):一个模块与互连的连接是通过代理的,它是模块与互连之间的适配器(有时可以配置)。一个Target通过一个Target代理(TA)与互连连接,Initiator通过Initiator代理(IA)与互连连接。
l Interconnect(互连):应该包含译码、路由、仲裁等逻辑,才能实现连接在其上的多个Initiator和多个Target之间的互连。
DM8168的互连是基于一种分层架构(L3,L4),如下图。注意箭头并不是表示数据流的方向,而是表示Master/Slave(或者Initiator/Target)关系。
图5-1 互连概貌
图5-2 L4结构
表5-1 L3 Master/Slave互连
(1) X = 互连存在;S = 可裁减的通道。Non-DEMMU可存取的目标(如C674x SDMA)总是直接映射。
表5-2 L4外设连接
(1)X,Port0,Port1 = 连接存在
DM816x的系统框图如下。我们以Cortex-A8和C674x两个子系统为例,来看DM816x是如何管理内存。
1.Cortex-A8
Cortex-A8的结构框图如下:
从图中我们可以看到:
l Cortex-A8内部有48KB ROM 和64KB RAM。
l Cortex与其它模块互连是通过DMM和L3端口。
n Cortex-A8通过DMM端口(128bit宽)直接存取DDR。
n Cortex-A8通过L3互连端口(64bit)存取芯片的其他模块。
Cortex-A8地址映射:
块名 | 起始地址 | 结束地址 | 尺寸 | 描述 |
Boot Space | 0x0000 0000 | 0x000F FFFF | 1MB | Boot Space |
L3 目标空间 | 0x0000 0000 | 0x1FFF FFFF | 512MB | GPMC |
0x2000 0000 | 0x2FFF FFFF | 256MB | PCIe Gen2 Targets | |
0x3000 0000 | 0x3FFF FFFF | 256MB | Reserved | |
内部ROM(1) | 0x4000 0000 | 0x4001 FFFF | 128KB | Reserved |
0x4002 0000 | 0x4002 BFFF | 48KB | ROM Public | |
0x4002 C000 | 0x40F FFFF | 848KB | Reserved | |
Reserved(1) | 0x4010 0000 | 0x401F FFFF | 1MB | Reserved |
Reserved(1) | 0x4020 0000 | 0x402E FFFF | 960KB | Reserved |
Reserved(1) | 0x402F 0000 | 0x402F FFFF | 64KB | SRAM(64KB) Secure/Public |
L3目标空间 | 0x4030 0000 | 0x4033 FFFF | 256MB | OCMC SRAM |
0x4034 0000 | 0x403F FFFF | 768KB | Reserved | |
0x4040 0000 | 0x4043 FFFF | 256KB | OCMC SRAM | |
0x4044 0000 | 0x404F FFFF | 768KB | Reserved(OCMC RAM1) | |
0x4050 0000 | 0x407F FFFF | 3MB | Reserved | |
0x4080 0000 | 0x4083 FFFF | 256KB | C674x UMAP0(L2 RAM) | |
0x4084 0000 | 0x40DF FFFF | 5888KB | Reserved | |
0x40E0 0000 | 0x40E0 7FFF | 32KB | C674x L1P Cache/RAM | |
0x40E0 8000 | 0x40EF FFFF | 992KB | Reserved | |
0x40F0 0000 | 0x40F0 7FFF | 32KB | C674x L1D Cache/RAM | |
0x40F0 8000 | 0x40FF FFFF | 992KB | Reserved | |
0x4100 0000 | 0x41FF FFFF | 16MB | Reserved | |
0x4200 0000 | 0x43FF FFFF | 32MB | Reserved | |
0x4400 0000 | 0x44BF FFFF | 12MB | L3配置寄存器 | |
0x44C0 0000 | 0c45FF FFFF | 20MB | Reserved | |
0x4600 0000 | 0x463F FFFF | 4MB | McASP0 | |
0x4640 0000 | 0x467F FFFF | 4MB | McASP01 | |
0x4680 0000 | 0x46BF FFFF | 4MB | McASP02 | |
0x46C0 0000 | 0x46FF FFFF | 4MB | HDMI1.3 Tx | |
0x4700 0000 | 0x473F FFFF | 4MB | McBsp | |
0x4740 0000 | 0x477F FFFF | 4MB | USB2.0寄存器/CPPI | |
0x4780 0000 | 0x47BF FFFF | 4MB | Reserved | |
0x47C0 0000 | 0x47FF FFFF | 4MB | Reserved | |
0x4800 0000 | 0x481F FFFF | 2MB | L4标准外设域 | |
ARM Subsystem INTC(1) | 0x4820 0000 | 0x4820 FFFF | 4KB | 仅由Contex-A8存取 |
Reserved(1) | 0x4820 1000 | 0x4823 FFFF | 252KB | 仅由Contex-A8存取 |
MPUSS config register(1) | 0x4824 0000 | 0x4824 FFFF | 4KB | 仅由Contex-A8存取 |
Reserved(1) | 0x4824 1000 | 0x4827 FFFF | 252KB | 仅由Contex-A8存取 |
Reserved(1) | 0x4828 1000 | 0x482F FFFF | 508KB | 仅由Contex-A8存取 |
L3目标空间 | 0x4830 0000 | 0x48FF FFFF | 13MB | L4标准外设域 |
0x4900 0000 | 0x490F FFFF | 1MB | EDMA TPCC寄存器 | |
0x4910 0000 | 0x497F FFFF | 7MB | Reserved | |
0x4980 0000 | 0x498F FFFF | 1MB | EDMA TPCC0寄存器 | |
0x4990 0000 | 0x499F FFFF | 1MB | EDMA TPCC1寄存器 | |
0x49A0 0000 | 0x49AF FFFF | 1MB | EDMA TPCC2寄存器 | |
0x49B0 0000 | 0x49BF FFFF | 1MB | EDMA TPCC3寄存器 | |
0x49C0 0000 | 0x49FF FFFF | 4MB | Reserved | |
0x4A00 0000 | 0x4AFF FFFF | 16MB | L4高速外设域 | |
0x4B00 0000 | 0x4BFF FFFF | 16MB | EMU子系统区域 | |
0x4C00 0000 | 0x4CFF FFFF | 16MB | DDR EMIF0配置寄存器(2) | |
0x4D00 0000 | 0x4DFF FFFF | 16MB | DDR EMIF1配置寄存器(2) | |
0x4E00 0000 | 0x4FFF FFFF | 32MB | DDR DMM配置寄存器(2) | |
0x5000 0000 | 0x50FF FFFF | 16MB | GMPC配置寄存器 | |
0x5100 0000 | 0x51FF FFFF | 16MB | PCIE配置寄存器 | |
0x5200 0000 | 0x52FF FFFF | 16MB | Reserved | |
0x5300 0000 | 0x53FF FFFF | 16MB | HDVICP2-2 Host端口 | |
0x5400 0000 | 0x54FF FFFF | 16MB | HDVICP2-2 SL2端口 | |
0x5500 0000 | 0x55FF FFFF | 16MB | Reserved | |
0x5600 0000 | 0x56FF FFFF | 16MB | SGX530从端口 | |
0x5700 0000 | 0x57FF FFFF | 16MB | Reserved | |
0x5800 0000 | 0x58FF FFFF | 16MB | HDVICP2-0 Host端口 | |
0x5900 0000 | 0x59FF FFFF | 16MB | HDVICP2-0 SL2端口 | |
0x5A00 0000 | 0x5AFF FFFF | 16MB | HDVICP2-1 Host端口 | |
0x5B00 0000 | 0x5BFF FFFF | 16MB | HDVICP2-1 SL2端口 | |
0x5C00 0000 | 0x5CFF FFFF | 32Mb | Reserved | |
0x5E00 0000 | 0x5FFF FFFF | 32MB | Reserved | |
0x6000 0000 | 0x7FFF FFFF | 512MB | TILER窗口 | |
DDR EMIF0/1 SDRAM(3)(4) | 0x8000 0000 | 0xBFFF FFFF | 1GB | DDR |
DDR EMIF0/1 SDRAM(3)(4) | 0xC000 0000 | 0xFFFF FFFF | 1GB | DDR |
(1) 黑体字部分表示这部分在Cortex-A8内部
(2) 这些存取通过DDR DMM TILER端口。DDR DMM内部分开寻址DDR EMIF和DDR DMM控制寄存器的地址范围
(3) 这些地址路由到与DDR DMM ELLA端口直接相连的Master0端口
(4) DDR EMIF0和DDR EMIF1地址可以连续或BANK交织,取决于DDR DMM配置
2.C674x
C674x DSP Megamodule框图如下:
从图中,我们看到:
l EMC(Extend Memory Controller)是一个桥,将Megamodule与芯片的其他部分连接起来。它包括3个端口:
n 配置端口(CFG):这个端口提供对内存映射的寄存器(这些寄存器控制不同的外设和资源)的存取,但并不支持对CPU和Megamodule内部的内存映射寄存器的存取。CFG总线总是32bit宽,总是应该使用32bit load/store指令或者IDMA来存取
n Master DMA(MDMA):MDAM提供对MegaModule外部资源的存取,传输的发起者是Megamodule(也就是说这些传输,Megamodule是Master)。MDMA常用来做为CPU/Cache对L2以外的内存的存取。这些存取可能是以对系统内存的Cache Line Allocate、Writeback、Non-Cacheable Load和Store形式。
n Slave DMA(SDMA):SDMA用于Megamodule外部的其它Masters对Megamodule内部资源的存取。这些其它的Master如:DMA控制器、HPI等等,也就是说这些传输是Megamodule外部Master发起的,而Megamodule在交易中是处于Slave地位。
n 所有的MDMA存取都是通过DEMMU来路由做地址翻译的;CFG总是用于存取连L4外设。
l 还有3个Master端口,用于直接存取HDVICP2 SL2(仅HDVICP2-0和HDVICP2-1)内存。
C6474x DSP通过MDMA端口进行的存取是通过DSP/EDMA内存管理单元(DEMMU)来路由的,DEMMU重新映射物理系统地址。这样做可以保护ARM Cortex A8内存区域避免被C674x代码意外破坏,并允许在用户空间里直接定位buffer而不需要在ARM和DSP之间进行翻译。
另外,EDMA TC0进行的存取可以选择通过DEMMU来路由,这允许DSP使用EDMA 通道0进行传输的时候,仅使用相关Buffer的已知虚拟地址来执行传输。EDMA_TC通过控制模块里的MMU_CFG寄存器来使能/禁止DSP/EDMA MMU。
表2-31C674x内存映射
区域名称 | 起始地址 | 结束地址 | 尺寸 | 描述 |
保留(注1) | 0x0000 0000 | 0x003F FFFF | 4MB | 保留 |
UMAP1(注1) | 0x0040 0000 | 0x0043 FFFF | 256KB | C674x UMAP1(HDVICP2-0 SL2) |
保留(UMAP1)(注1) | 0x0044 0000 | 0x004F FFFF | 768KB | 保留 |
UMAP1(注1) | 0x0050 0000 | 0x0053 FFFF | 256KB | C674x UMAP (HDVICP2-1 SL2) |
保留(UMAP1) (注1) | 0x0054 0000 | 0x005F FFFF | 768KB | 保留 |
保留(注1) | 0x0060 0000 | 0x007F FFFF | 2MB | 保留 |
L2 SRAM(注1) | 0x0080 0000 | 0x0083 FFFF | 256KB | C674x UMAP0(L2 RAM) |
保留(注1) | 0x0084 0000 | 0x00DF FFFF | 5888KB | 保留 |
L1P SRAM(注1) | 0x00E0 0000 | 0x00E0 7FFF | 32KB | C674x L1P Cache/RAM |
保留(注1) | 0x00E0 8000 | 0x00EF FFFF | 992KB | 保留 |
L1D SRAM(注1) | 0x00F0 0000 | 0x00F0 7FFF | 32KB | C674x L1D Cache/RAM |
保留(注1) | 0x00F0 8000 | 0x017F FFFF | 9184KB | 保留 |
内部CFG(注2、3) | 0x0180 0000 | 0x01BF FFFF | 4MB | C674x内部CFG寄存器 |
保留(注3) | 0x01C0 0000 | 0x07FF FFFF | 100MB | 保留 |
L4标准域(注3) | 0x0800 0000 | 0x08FF FFFF | 16MB | 外设域(见表2-27) |
EDMA TPCC(注3) | 0x0900 0000 | 0x090F FFFF | 1MB | EDMA TPCC寄存器 |
保留(注3) | 0x0910 0000 | 0x097F FFFF | 7MB | 保留 |
EDMA TPTC0(注3) | 0x0980 0000 | 0x098F FFFF | 1MB | EDMA TPTC0寄存器 |
EDMA TPTC1(注3) | 0x0990 0000 | 0x099F FFFF | 1MB | EDMA TPTC1寄存器 |
EDMA TPTC2(注3) | 0x09A0 0000 | 0x09AFFFFF | 1MB | EDMA TPTC2寄存器 |
EDMA TPTC3(注3) | 0x09B0 0000 | 0x09BF FFFF | 1MB | EDMA TPTC3寄存器 |
保留(注3) | 0x09C0 0000 | 0x09FF FFFF | 4MB | 保留 |
L4高速域(注3) | 0x0A00 0000 | 0x0AFF FFFF | 16MB | 外设域(见表2-28) |
保留(注3) | 0x0B00 0000 | 0x0FFF FFFF | 80MB | 保留 |
C674x L1/L2(注4) | 0x1000 0000 | 0x10FF FFFF | 16MB | C674x内部全局地址 |
MDMA(注5) | 0x1100 0000 | 0xFFFF FFFF | 3824MB | DEMMU映射L3域 |
注1:地址0x0000 0000到0x017F FFFF对C674x器件是在内部。
注2:地址0x0180 0000到0x01BF FFFF保留作为C674x内部CFG寄存器。
注3:地址0x01C0 0000到0x0FFF FFFF映射倒C674x CFG总线。
注4: 地址0x1000 0000到0x10FF FFFF映射倒C674x内部地址0x0000 0000 到 0x00FF FFFF。
注5:这些存取通过DEMMU路由,DEMMU通过页表将这些地址翻译到物理L3地址。
3.L3内存映射
L3高性能互连是基于片上网络(Network-on-Chip:NoC)互连基础架构,NoC使用一个内部基于包的通讯规程,用作前向(读命令、带数据负荷的写命令)和后向(带数据负荷的读响应、写响应)交易,所有公开的NoC互连接口(对目标和发起者)满足OCP IP2.2参考标准。
表2-26显示了DM8168的L3的内存映射,表中呈现了L3基础架构使用的物理地址,某些处理器(如Cortex A8 ARM、C674x DSP)可以通过内部或外部MMU重新将这些目标重新映射到不同的虚拟地址。没有MMU的处理器和其他总线Master使用这些物理地址存取L3区域,注意并不是所有MASTER都会对L3所有区域进行存取,而仅仅是那些有明确连接的存取,如表5-1显示的那些才可以。在5.2节列出了连接到L4外设端口的外设。任何发起者如果企图存取一个没有连接的目标, L3互连会返回一个地址空洞错误。
表2-26 L3内存映射
QUAD | 块名 | 起始地址 | 结束地址 | 尺寸 | 描述 |
Q0 | GPMC | 0x0000 0000 | 0x1FFF FFFF | 512MB | GPMC |
Q0 | PCIe Gen2 | 0x2000 0000 | 0x2FFF FFFF | 256MB | PCIe Gen2 Targets |
Q0 | Reserved | 0x3000 0000 | 0x3FFF FFFF | 256MB | Reserved |
Q1 | Reserved | 0x4000 0000 | 0x402F FFFF | 3MB | Reserved |
Q1 | L3 OCMC0 | 0x4030 0000 | 0x4033 FFFF | 256MB | OCMC SRAM |
Q1 | Reserved | 0x4034 0000 | 0x403F FFFF | 768KB | Reserved |
Q1 | L3 OCMC1 | 0x4040 0000 | 0x4043 FFFF | 256KB | OCMC SRAM |
Q1 | Reserved | 0x4044 0000 | 0x404F FFFF | 768KB | Reserved(OCMC RAM1) |
Q1 | Reserved | 0x4050 0000 | 0x407F FFFF | 3MB | Reserved |
Q1 | C674x | 0x4080 0000 | 0x4083 FFFF | 256KB | C674x UMAP0(L2 RAM) |
Q1 | Reserved | 0x4084 0000 | 0x40DF FFFF | 5888KB | Reserved |
Q1 | C674x | 0x40E0 0000 | 0x40E0 7FFF | 32KB | C674x L1P Cache/RAM |
Q1 | Reserved | 0x40E0 8000 | 0x40EF FFFF | 992KB | Reserved |
Q1 | C674x | 0x40F0 0000 | 0x40F0 7FFF | 32KB | C674x L1D Cache/RAM |
Q1 | Reserved | 0x40F0 8000 | 0x40FF FFFF | 992KB | Reserved |
Q1 | Reserved | 0x4100 0000 | 0x41FF FFFF | 16MB | Reserved |
Q1 | Reserved | 0x4200 0000 | 0x43FF FFFF | 32MB | Reserved |
Q1 | L3 CFG Regs | 0x4400 0000 | 0x44BF FFFF | 12MB | L3配置寄存器 |
Q1 | Reserved | 0x44C0 0000 | 0c45FF FFFF | 20MB | Reserved |
Q1 | McASP0 | 0x4600 0000 | 0x463F FFFF | 4MB | McASP0 |
Q1 | McASP1 | 0x4640 0000 | 0x467F FFFF | 4MB | McASP01 |
Q1 | McASP2 | 0x4680 0000 | 0x46BF FFFF | 4MB | McASP02 |
Q1 | HDMI1.3 Tx | 0x46C0 0000 | 0x46FF FFFF | 4MB | HDMI1.3 Tx |
Q1 | McBsp | 0x4700 0000 | 0x473F FFFF | 4MB | McBsp |
Q1 | USB2.0 | 0x4740 0000 | 0x477F FFFF | 4MB | USB2.0寄存器/CPPI |
Q1 | Reserved | 0x4780 0000 | 0x47BF FFFF | 4MB | Reserved |
Q1 | Reserved | 0x47C0 0000 | 0x47FF FFFF | 4MB | Reserved |
Q1 | L4 Standard domain | 0x4800 0000 | 0x48FF FFFF | 16MB | 标准外设域 |
Q1 | EDMA TPCC | 0x4900 0000 | 0x490F FFFF | 1MB | EDMA TPCC寄存器 |
Q1 | Reserved | 0x4910 0000 | 0x497F FFFF | 7MB | Reserved |
Q1 | EDMA TPTC0 | 0x4980 0000 | 0x498F FFFF | 1MB | EDMA TPCC0寄存器 |
Q1 | EDMA TPTC1 | 0x4990 0000 | 0x499F FFFF | 1MB | EDMA TPCC1寄存器 |
Q1 | EDMA TPTC2 | 0x49A0 0000 | 0x49AF FFFF | 1MB | EDMA TPCC2寄存器 |
Q1 | EDMA TPTC3 | 0x49B0 0000 | 0x49BF FFFF | 1MB | EDMA TPCC3寄存器 |
Q1 | Reserved | 0x49C0 0000 | 0x49FF FFFF | 4MB | Reserved |
Q1 | L4 High-Speed Domain | 0x4A00 0000 | 0x4AFF FFFF | 16MB | 高速外设域 |
Q1 | Instrumentation | 0x4B00 0000 | 0x4BFF FFFF | 16MB | EMU子系统区域 |
Q1 | DDR EMIF0 register | 0x4C00 0000 | 0x4CFF FFFF | 16MB | 配置寄存器 |
Q1 | DDR EMIF1 register | 0x4D00 0000 | 0x4DFF FFFF | 16MB | 配置寄存器 |
Q1 | DDR DMM Register | 0x4E00 0000 | 0x4FFF FFFF | 32MB | 配置寄存器 |
Q1 | GPMC Register | 0x5000 0000 | 0x50FF FFFF | 16MB | 配置寄存器 |
Q1 | PCIe Gen2 Register | 0x5100 0000 | 0x51FF FFFF | 16MB | 配置寄存器 |
Q1 | Reserved | 0x5200 0000 | 0x52FF FFFF | 16MB | Reserved |
Q1 | HDVICP2-2 Config | 0x5300 0000 | 0x53FF FFFF | 16MB | HDVICP2-2 Host端口 |
Q1 | HDVICP2-2 SL2 | 0x5400 0000 | 0x54FF FFFF | 16MB | HDVICP2-2 SL2端口 |
Q1 | Reserved | 0x5500 0000 | 0x55FF FFFF | 16MB | Reserved |
Q1 | SGX530 | 0x5600 0000 | 0x56FF FFFF | 16MB | SGX530从端口 |
Q1 | Reserved | 0x5700 0000 | 0x57FF FFFF | 16MB | Reserved |
Q1 | HDVICP2-0 Config | 0x5800 0000 | 0x58FF FFFF | 16MB | HDVICP2-0 Host端口 |
Q1 | HDVICP2-0 SL2 | 0x5900 0000 | 0x59FF FFFF | 16MB | HDVICP2-0 SL2端口 |
Q1 | HDVICP2-1 Config | 0x5A00 0000 | 0x5AFF FFFF | 16MB | HDVICP2-1 Host端口 |
Q1 | HDVICP2-1 SL2 | 0x5B00 0000 | 0x5BFF FFFF | 16MB | HDVICP2-1 SL2端口 |
Q1 | Reserved | 0x5C00 0000 | 0x5CFF FFFF | 32Mb | Reserved |
Q1 | Reserved | 0x5E00 0000 | 0x5FFF FFFF | 32MB | Reserved |
Q1 | Tiler | 0x6000 0000 | 0x7FFF FFFF | 512MB | 虚拟Tiled地址空间 |
Q2 | DDR EMIF0/1 SDRAM | 0x8000 0000 | 0xBFFF FFFF | 1GB | DDR |
Q3 | DDR EMIF0/1 SDRAM | 0xC000 0000 | 0xFFFF FFFF | 1GB | DDR |
Q4-7 | DDR DMM | 0x1 0000 0000 | 0x1 FFFF FFFF | 4GB | DDR DMM Tiler 扩展地址映射虚拟视图(仅HDVPPS) |
4. L4内存映射
4.1 L4标准外设
L4标准外设总线存取标准的外设和IP配置寄存器。内存映射表入表2-27
表2-27 L4标准外设内存映射
器件名称 | 起始地址 | 结束地址 | 尺寸 | 描述 |
L4标准配置 | 0x4800 0000 | 0x4800 07FF | 2KB | 地址/保护(AP) |
0x4800 0800 | 0x4800 0FFF | 2 KB | 连接代理(LA) | |
0x4800 1000 | 0x4800 13FF | 1 KB | Initiator端口(IP0) | |
0x4800 1400 | 0x4800 17FF | 1 KB | Initiator端口(IP1) | |
0x4800 1800 | 0x4800 1FFF | 2 KB | 保留(IP2 – IP3) | |
保留 | 0x4800 2000 | 0x4800 7FFF | 24 KB | 保留 |
e-Fuse控制器 | 0x4800 8000 | 0x4800 8FFF | 4 KB | 外设寄存器 |
0x4800 9000 | 0x4800 9FFF | 4 KB | 支持寄存器 | |
保留 | 0x4800 A000 | 0x4800 FFFF | 24 KB | 保留 |
DEMMU | 0x4801 0000 | 0x4801 0FFF | 4KB | 外设寄存器 |
0x4801 1000 | 0x4801 1FFF | 4KB | 支持寄存器 | |
保留 | 0x4801 2000 | 0x4801 FFFF | 56KB | 保留 |
UART0 | 0x4802 0000 | 0x4802 0FFF | 4KB | 外设寄存器 |
0x4802 1000 | 0x4802 1FFF | 4KB | 支持寄存器 | |
UART1 | 0x4802 2000 | 0x4802 2FFF | 4KB | 外设寄存器 |
0x4802 3000 | 0x4802 3FFF | 4KB | 支持寄存器 | |
UART2 | 0x4802 4000 | 0x4802 4FFF | 4KB | 外设寄存器 |
0x4802 5000 | 0x4802 5FFF | 4KB | 支持寄存器 | |
保留 | 0x4802 6000 | 0x4802 7FFF | 8KB | 保留 |
I2C0 | 0x4802 8000 | 0x4802 8FFF | 4KB | 外设寄存器 |
0x4802 9000 | 0x4802 9FFF | 4KB | 支持寄存器 | |
I2C1 | 0x4802 A000 | 0x4802 AFFF | 4KB | 外设寄存器 |
0x4802 B000 | 0x4802 BFFF | 4KB | 支持寄存器 | |
保留 | 0x4802 C000 | 0x4802 DFFF | 8KB | 保留 |
TIMER1 | 0x4802 E000 | 0x4802 EFFF | 4KB | 外设寄存器 |
0x4802 F000 | 0x4802 FFFF | 4KB | 支持寄存器 | |
SPIOCP | 0x4803 0000 | 0x4803 0FFF | 4KB | 外设寄存器 |
0x4803 1000 | 0x4803 1FFF | 4KB | 支持寄存器 | |
GPIO0 | 0x4803 2000 | 0x4803 2FFF | 4KB | 外设寄存器 |
0x4803 3000 | 0x4803 3FFF | 4KB | 支持寄存器 | |
保留 | 0x4803 4000 | 0x4803 7FFF | 16KB | 保留 |
McASP0 CFG | 0x4803 8000 | 0x4803 9FFF | 8KB | 外设寄存器 |
0x4803 A000 | 0x4803 AFFF | 4KB | 支持寄存器 | |
保留 | 0x4803 B000 | 0x4803 BFFF | 4KB | 保留 |
McASP1 CFG | 0x4803 C000 | 0x4803 DFFF | 8KB | 外设寄存器 |
0x4803 E000 | 0x4803 EFFF | 4KB | 支持寄存器 | |
保留 | 0x4803 F000 | 0x4803 FFFF | 4KB | 保留 |
TIMER2 | 0x4804 0000 | 0x4804 0FFF | 4KB | 外设寄存器 |
0x4804 1000 | 0x4804 1FFF | 4KB | 支持寄存器 | |
TIMER3 | 0x4804 2000 | 0x4804 2FFF | 4KB | 外设寄存器 |
0x4804 3000 | 0x4804 3FFF | 4KB | 支持寄存器 | |
TIMER4 | 0x4804 4000 | 0x4804 4FFF | 4KB | 外设寄存器 |
0x4804 5000 | 0x4804 5FFF | 4KB | 支持寄存器 | |
TIMER5 | 0x4804 6000 | 0x4804 6FFF | 4KB | 外设寄存器 |
0x4804 7000 | 0x4804 7FFF | 4KB | 支持寄存器 | |
TIMER6 | 0x4804 8000 | 0x4804 8FFF | 4KB | 外设寄存器 |
0x4804 9000 | 0x4804 9FFF | 4KB | 支持寄存器 | |
TIMER7 | 0x4804 A000 | 0x4804 AFFF | 4KB | 外设寄存器 |
0x4804 B000 | 0x4804 BFFF | 4KB | 支持寄存器 | |
GPIO1 | 0x4804 C000 | 0x4804 CFFF | 4KB | 外设寄存器 |
0x4804 D000 | 0x4804 DFFF | 4KB | 支持寄存器 | |
保留 | 0x4804 E000 | 0x4804 FFFF | 8KB | 保留 |
McASP2 CFG | 0x4805 0000 | 0x4805 1FFF | 8KB | 外设寄存器 |
0x4805 2000 | 0x4805 2FFF | 4KB | 支持寄存器 | |
保留 | 0x4805 3000 | 0x4805 FFFF | 52KB | 保留 |
SD/SDIO | 0x4806 0000 | 0x4806 FFFF | 64KB | 寄存器 |
0x4807 0000 | 0x4807 0FFF | 4KB | 支持寄存器 | |
保留 | 0x4807 1000 | 0x4807 FFFF | 60KB | 保留 |
ELM | 0x4808 0000 | 0x4808 FFFF | 64KB | 错误定位模块 |
0x4809 0000 | 0x4809 0FFF | 4KB | 支持寄存器 | |
保留 | 0x4809 1000 | 0x480B FFFF | 188KB | 保留 |
RTC | 0x480C 0000 | 0x480C 0FFF | 4KB | 外设寄存器 |
0x480C 1000 | 0x480C 1FFF | 4KB | 支持寄存器 | |
WDT1 | 0x480C 2000 | 0x480C 2FFF | 4KB | 外设寄存器 |
0x480C 3000 | 0x480C 3FFF | 4KB | 支持寄存器 | |
保留 | 0x480C 4000 | 0x480C 7FFF | 16KB | 保留 |
Mailbox | 0x480C 8000 | 0x480C 8FFF | 4KB | 外设寄存器 |
0x480C 9000 | 0x480C 9FFF | 4KB | 支持寄存器 | |
Spinlock | 0x480C A000 | 0x480C AFFF | 4KB | 外设寄存器 |
0x480C B000 | 0x480C BFFF | 4KB | 支持寄存器 | |
保留 | 0x480C C000 | 0x480F FFFF | 208KB | 保留 |
HDVPSS | 0x4810 0000 | 0x4811 FFFF | 128KB | 外设寄存器 |
0x4812 0000 | 0x4812 0FFF | 4KB | 支持寄存器 | |
保留 | 0x4812 1000 | 0x4812 1FFF | 4KB | 保留 |
HDMI1.3Tx | 0x4812 2000 | 0x4812 2FFF | 4KB | 外设寄存器 |
0x4812 3000 | 0x4812 3FFF | 4KB | 支持寄存器 | |
保留 | 0x4812 4000 | 0x4812 FFFF | 112KB | 保留 |
控制模块 | 0x4814 0000 | 0x4815 FFFF | 128KB | 外设寄存器 |
0x4816 0000 | 0x4816 0FFF | 4KB | 支持寄存器 | |
保留 | 0x4816 1000 | 0x4817 FFFF | 124KB | 保留 |
PRCM | 0x4818 0000 | 0x4818 2FFF | 12KB | 外设寄存器 |
0x4818 3000 | 0x4818 3FFF | 4KB | 支持寄存器 | |
保留 | 0x4818 4000 | 0x4818 7FFF | 16KB | 保留 |
SmartReflex0 | 0x4818 8000 | 0x4818 8FFF | 4KB | 外设寄存器 |
0x4818 9000 | 0x4818 9FFF | 4KB | 支持寄存器 | |
SmartReflex1 | 0x4818 A000 | 0x4818 AFFF | 4KB | 外设寄存器 |
0x4818 B000 | 0x4818 BFFF | 4KB | 支持寄存器 | |
OCP Watchpoint | 0x4818 C000 | 0x4818 CFFF | 4KB | 外设寄存器 |
0x4818 D000 | 0x4818 DFFF | 4KB | 支持寄存器 | |
保留 | 0x4818 E000 | 0x4818 EFFF | 4KB | 保留 |
0x4818 F000 | 0x4818 FFFF | 4KB | 保留 | |
保留 | 0x4819 0000 | 0x4819 0FFF | 4KB | 保留 |
0x4819 1000 | 0x4819 1FFF | 4KB | 保留 | |
保留 | 0x4819 2000 | 0x4819 2FFF | 4KB | 保留 |
0x4819 3000 | 0x4819 3FFF | 4KB | 保留 | |
保留 | 0x4819 4000 | 0x4819 4FFF | 4KB | 保留 |
0x4819 5000 | 0x4819 5FFF | 4KB | 保留 | |
保留 | 0x4819 6000 | 0x4819 6FFF | 4KB | 保留 |
0x4819 7000 | 0x4819 7FFF | 4KB | 保留 | |
DDR0 Phy Ctrl Regs | 0x4819 8000 | 0x4819 8FFF | 4KB | 外设寄存器 |
0x4819 9000 | 0x4819 9FFF | 4KB | 支持寄存器 | |
DDR1 Phy Ctrl Regs | 0x4819 A000 | 0x4819 AFFF | 4KB | 外设寄存器 |
0x4819 B000 | 0x4819 BFFF | 4KB | 支持寄存器 | |
保留 | 0x4819 C000 | 0x481F FFFF | 400KB | 保留 |
中断控制器(1) | 0x4820 0000 | 0x4820 0FFF | 4KB | 仅Cortex-A8可以存取 |
保留(1) | 0x4820 1000 | 0x4823 FFFF | 252KB | 仅Cortex-A8可以存取 |
MPUSS config Register(1) | 0x4824 0000 | 0x4824 0FFF | 4KB | 仅Cortex-A8可以存取 |
保留(1) | 0x4824 1000 | 0x4827 FFFF | 252KB | 仅Cortex-A8可以存取 |
保留(1) | 0x4828 1000 | 0x482F FFFF | 508KB | 仅Cortex-A8可以存取 |
保留 | 0x4830 0000 | 0x48FF FFFF | 13MB | 保留 |
(1)这些区域在Cortex A8子系统内部译码,物理上不是L4的一部分,它们在这儿被包括,仅是为了当考虑Cortex A8内存映射的时候作为参考。对于除了Cortex A8外的Master,这些区域是保留的。
4.2 L4高速外设
L4高速外设总线存取L3里的高速外设IP配置寄存器。内存映射表如2-28
表2-28 L4高速外设内存映射
器件名称 | 起始地址 | 结束地址 | 尺寸 | 描述 |
L4高速配置 | 0x4A00 0000 | 0x4A00 07FF | 2KB | 地址/保护(AP) |
0x4A00 0800 | 0x4A00 0FFF | 2KB | 连接代理(LA) | |
0x4A00 1000 | 0x4A00 13FF | 1KB | Initiator端口(IP0) | |
0x4A00 1400 | 0x4A00 17FF | 1KB | Initiator端口(IP1) | |
0x4A00 1800 | 0x4A00 1FFF | 2KB | 保留(IP2 - IP3) | |
保留 | 0x4A00 2000 | 0x4A07 FFFF | 504KB | 保留 |
保留 | 0x4A08 0000 | 0x4A0A 0FFF | 132KB | 保留 |
保留 | 0x4A0A 0000 | 0x4A0F FFFF | 380KB | 保留 |
EMAC0 | 0x4A10 0000 | 0x4A10 3FFF | 16KB | 外设寄存器 |
0x4A10 4000 | 0x4A10 4FFF | 4KB | 支持寄存器 | |
保留 | 0x4A10 5000 | 0x4A11 FFFF | 108KB | 保留 |
EMAC1 | 0x4A12 0000 | 0x4A12 3FFF | 16KB | 外设寄存器 |
0x4A12 4000 | 0x4A12 4FFF | 4KB | 支持寄存器 | |
保留 | 0x4A12 5000 | 0x4A13 FFFF | 108KB | 保留 |
SATA | 0x4A14 0000 | 0x4A14 FFFF | 64KB | 外设寄存器 |
0x4A15 0000 | 0x4A15 0FFF | 4KB | 支持寄存器 | |
保留 | 0x4A15 1000 | 0x4A17 FFFF | 188KB | 保留 |
保留 | 0x4A18 0000 | 0x4A19 FFFF | 128KB | 保留 |
0x4A1A 0000 | 0x4A1A 0FFF | 4KB | 保留 | |
保留 | 0x4A1A 1000 | 0x4AFF FFFF | 14716KB | 保留
|