PowerPC-MPC603e内核学习笔记之mpc8245配置寄存器

MPC8245的大部分可编程配置寄存器是要在上电进行初始化的,这些寄存器其实在MPC内部PCI控制器MPC107里面的。MPC8245提供了一个接口来访问这些在PCI总线上的寄存器(也外部接着的PCI设备),这个接口其实就是两个port,一个portCONFIG_ADDR,范围可以在0xFEC0_0000 – 0xFEDF_FFFF,

另一个叫CONFIG_DAT,范围在0xFEE0_0000 – 0xFEEF_FFFF.虽然是一个地址范围,到必须使用相同的偏移量。使用0x8000_00nn来范围MPC107的配置寄存器,nn是寄存器的偏移值。当向CONFIG_ADDR写入地址时,CONFIG_DAT就是对应地址寄存器的数据,可读写。

       这些寄存器可以分为两大类,一类是PCI的控制寄存器(0x00 – 0x3C),这些寄存器的定义都是全球统一的。还有一类就是boardcom加上去的“特殊功能”寄存器了(0x40 – 0xFC)

 

PCI控制寄存器(0x00 – 0x44)

0x00开始的是设备ID设别寄存器,这些寄存器能够在硬件初始化的时候进行检测,通过检测所有的PCI slot,可以知道究竟有多少个PCI设备接在总线上。

Slot上不存在设备,读取ID时会返回0xFFFF.

       PCI Command Register—Offset 0x04

 

Fast back-to-back  硬件指定为0MPC8245不能运行 fast back-to-back transactions.

SERR 允许地址校验错误报告,驱动SERR引脚。

Parity error response 允许产生奇偶检验错误。

Memory-write-andinvalidate 允许MPC8245作为master时,产生内存写无效命令。

Special cycles 硬件指定为0,忽略所有的special-cycle 命令。

Bus master 允许MPC5248作为总线master

Memory space MPC8245作为target的时候是否响应内存访问。

I/O space 硬件指定为0,作为target时不响应PCI I/O空间访问。

 

 

 

PCI Status Register—Offset 0x06

 

通过写1来清零相应位,写0不影响,详细参见datasheet

Detected parity error 有地址或者数据检验错误即使parity error handling被通过PCI command寄存器禁止

Signaled system error 置位,如果有SERR信号.

Received master-abort MPC8245作为master时使用 master-abort.命令终止一个传输

Received target-abort MPC8245作为一个发起者,被目标使用target-abort.命令终止一个传输

66-MHz capable 只读,只是PCI是否为66MHz

 

PCI Base Address Registers—LMBARn and PCSRBAR

这些寄存器是MPC8245作为PCI agent模式时使用的。两个本地内存基址寄存器:LMBAR0,LMBAR1。一个外围控制和状态寄存器PCSRBAR-给外部PCI设备控制MPC8245时用的。

MPC8245作为一个PCI agent时,这些寄存器允许一个主处理器进行配置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

goodlinux

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值