DM8168的互连与内存映射
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 |
保留
|