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
保留