保存桌面快捷方式 - - 设为首页 - 手机版
凹丫丫旗下网站:四字成语大全 - 故事大全 - 范文大全
您现在的位置: 范文大全 >> 理工论文 >> 电子通信论文 >> 正文

ARM922T核ZCP320A处理器PCI总线操作


3.1 初始化PCI桥

下面例程都是基于C语言,其中

#define REG_READ(addr,offset,data) \par*data = (*(volatile UINT32*)((addr)+(offset)))

#define REG_WRITE(addr,offset,data) \par (*(volatile UINT32*)((addr)+(offset))) = data

(1)锁寄存器并判断是否锁成功

REG_WRITE(0xe0000000,0x120,1);

REG_ READ (0xe0000000,0x120,&data);

if(!(data & 0x1)) return;

(2)配置COREBUS窗口基地址寄存器和控制寄存器

在COREBUS 上的地址空间分配与在PCI总线上的地址

空间分配是独立的。PCI的数据空间在COREBUS上所占的范围是1G+512M到2G-1之间,地址范围是0x60000000到0x7fffffff 这里的基地址是固定的,为0x60000000。而地址范围可以根据实际情况来确定,通过相关的控制寄存器实现。同时,ZCP320A要访问的PCI设备的地址空间是不确定的,可能是所有的32位的地址空间的任意一段或几段,所以需要一个地址转换机制来实现地址空间从COREBUS到PCI总线之间的转换。

对于RTL8139,窗口基地址寄存器和控制寄存器配置如下:

REG_WRITE(0xe0000000,0x204,0x60000008);

/*windows 0,BaseAddr 0x60000000,CoreBus,Prefech */

REG_WRITE(0xe0000000,0x214,0x10000043);

/* PCI Bus RTL8139 BaseAddr: 0x100000000~0x1000ffff,大小为64K */

REG_WRITE(0xe0000000,0x208,0x00000000);./* Disable windows 1 */

REG_WRITE(0xe0000000,0x20C,0x00000000); /* Disable windows 2 */

REG_WRITE(0xe0000000,0x210,0x00000000); /* Disable windows 3 */

(3)使能PCI桥作为主设备

REG_WRITE(0xe0000000,0x04,0x06); /* Enable PCI Master */

3.2 配置RTL8139网卡的PCI配置空间寄存器

对于ARM核来说,通过AHB-PCI桥对外部PCI设备进行配置访问实际上是通过对配置地址寄存器(0xcf8)和配置数据寄存器(0xcfc)的访问来实现的,要对外部PCI设备进行配置访问。软件设计人员要执行以下两步:

第一步是将地址写入配置地址寄存器中,如图3所示;

第二步是对配置数据寄存器进行读或写。

《ARM922T核ZCP320A处理器PCI总线操作(第3页)》
本文链接地址:http://www.oyaya.net/fanwen/view/154519.html

★温馨提示:你可以返回到 电子通信论文 也可以利用本站页顶的站内搜索功能查找你想要的文章。