首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

powerpc构架对地址的访问

powerpc构架对地址的访问

powerpc构架的处理器,对于内设和外设的访问比较奇怪(当然是和常见的ARM比起来),这些地址是可以重新配置的,包括配置这些配置的寄存器地址也是可配置的,以MPC8313的仿真器初始化文件为例
#setMMRBaseAddr 0xFF400000    ------------------------>复位后默认的地址是0xff400000
writereg
MBAR
0xFF400000


# change internal MMR base from 0xff400000 (reset value) to 0xe0000000
writemem.l 0xff400000 0xe0000000 # IMMRBAR = 0xe0000000  ------------------------>把0xff400000改成了0xe0000000,从此以后对IMMRBAR的访问基址都是0xe0000000了


#setMMRBaseAddr 0xe0000000
writereg
MBAR
0xe0000000




##############################################
# System Configuration - Local Access Windows
##############################################


# Local Bus Local Access Windows
#################################
# WINDOW 0 - NOR FLASH
writemem.l 0xe0000020 0xfe000000 # LBLAWBAR0  - begining at 0xfe000000 ------>以后凡是对0xfe000000的寻址都会出现在CS0和它的地址数据线上了
writemem.l 0xe0000024 0x80000018 # LBLAWAR0   - enable, size = 32MB


# WINDOW 1 - NAND Flash
writemem.l 0xe0000028 0xf8000000 # LBLAWBAR1  - begining at 0xf8000000
writemem.l 0xe000002c 0x80000018 # LBLAWAR1   - enable, size = 32MB


# WINDOW 2 - VSC7385
writemem.l 0xe0000030 0xf0000000 # LBLAWBAR2  - begining at 0xfc100000
writemem.l 0xe0000034 0x80000010 # LBLAWAR2   - enable, size = 128kB


# WINDOW 3 - Read Write Buffer
writemem.l 0xe0000038 0xfa000000 # LBLAWBAR3  - begining at 0xfa000000
writemem.l 0xe000003c 0x8000000e # LBLAWAR3   - enable, size = 32kB


# PCI Local Access Windows
#################################
# WINDOW 0
writemem.l 0xe0000060 0x80000000 # PCILAWBAR0 - begining at 0x80000000
writemem.l 0xe0000064 0x8000001c # PCILAWAR0  - enable, size = 512MB


# WINDOW 1
writemem.l 0xe0000068 0xa0000000 # PCILAWBAR1 - begining at 0xa0000000
writemem.l 0xe000006c 0x8000001c # PCILAWAR1  - enable, size = 512MB


# DDR Local Access Windows
#################################
# WINDOW 0 - 1st DDR SODIMM
writemem.l 0xe00000a0 0x00000000 # DDRLAWBAR0 - begining at 0x00000000
writemem.l 0xe00000a4 0x8000001a # DDRLAWAR0  - enable, size = 128MB



#*********************************

# DDR2 Controller Registers

#*********************************



#DDRCDR

writemem.l 0xE0000128 0x73000002


。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
总结一下:我要说2个意思,第一个是,我们平时访问的外设的控制寄存器都在IMMRBAR中,偏移量是固定的,基址默认是0xff400000,但是这个基址可以改变。第二个意思是,localbus总线,ddr,pci等的地址和大小也是可以配置的。所有这些配置都在IMMRBAR中叫“System Configuration Registers”的地方配置。
再补充一下:powerpc的windows设置和片选地址的设置是两码事,windows的设置对于core而言,不同地址寻址去的地方不同(2个寄存器,一个是基址一个是属性,包括大小和去向),而片选地址设置是为了产生外部的读写控制信号,二者没有直接的关系,但是一般来说,windows中的LocalBus空间要大于所有的片选空间
返回列表