pci 总结

物理地址有:

物理地址:CPU地址总线传来的地址,由硬件电路控制其具体含义。物理地址中很大一部分是留给内存条中的内存的,但也常被映射到其他存储器上 (如显存、BIOS等)。在程序指令中的虚拟地址经过段映射和页面映射后,就生成了物理地址,这个物理地址被放到CPU的地址线上。 物理地址空间,一部分给物理RAM(内存)用,一部分给总线用,这是由硬件设计来决定的,因此在32 bits地址线的x86处理器中,物理地址空间是2的32次方,即4GB,但物理RAM一般不能上到4GB,因为还有一部分要给总线用(总线上还挂着别的 许多设备)。在PC机中,一般是把低端物理地址给RAM用,高端物理地址给总线用。
 总线地址:总线的地址线或在地址周期上产生的信号。外设使用的是总线地址,CPU使用的是物理地址。

pci地址空间

地址范围                      大小     设备
0x00000000-0x03ffffff          64M     南桥
0x10000000-0x13ffffff          64M 网卡
0x1c000000-0x1fffffff 64M    北桥
0x40000000-0x7fffffff          1G      北桥
0x80000000-0xbfffffff          1G      处理器0

0xc0000000-0xffffffff                     1G            处理器1


龙芯2f地址空间


0000 0000256 M MEM_1
1000 0000 64 MPCI_Lo0
1400 0000 64 MPCI_Lo1
1800 0000 64 MPCI_Lo2
1c00 0000
56 M        ROM
1f80 0000 4 M ROM
1fc0 0000 1 M Boot
1fd0 0000 1 M PCI I/O
1fe0 0000 256 北桥本身PCI配置寄存器
1fe0 0100 256 北桥内部寄存器

1fe0 0200256 未使用
1fe8 0000 512 KPCI配置空间读写
1ff0 0000 256 K Local I/O
1ff4 0000 256 k Local I/O
1ff8 0000 256 K Local I/O
1ffc 0000 256 K Local I/O
2000 0000 1.5 GPCI地址
8000 0000 2 G MEM_2


总结了cpu访问pci设备的步骤:

为了让CPU访问PCI空间,须将CPU空间映射到PCI空间。在内存空间256 MB上方有3个连续64 MB的空间,即PCI_Lo0, PCI_Lo1, PCI_Lo2。这3个区间可被北桥映射到PCI空间以64 MB对齐的任意位置。通过设置PCIMAP寄存器可以完成。

CPU访问PCI空间时,CPU的低26位地址直接传到PCI的低26位地址,PCI的高6位地址分别由PCI_Lo0, PCI_Lo1, PCI_Lo2代替。Pci_map2是说明映射到2 GB以上的空间还是2 GB以下的空间。

CPU通过访问物理地址0x1fe80000即可访问PCI设备的配置空间(0xfe800000是cpu地址空间的值对应的pci设备(由pcimap—cfg寄存器决定))。分为2种配置周期:Type0和Type1。为了读写PCI设备的配置头,须事先设置Pcimap_cfg寄存器的值。

 

为使PCI设备能通过DMA访问系统内存,须把PCI地址映射成CPU地址。通过设置Base Address Register完成该过程。北桥共有3个这样的寄存器:Pcibase0, Pcibase1, Pcibase2。Pcibase0, Pcibase1均可以映射多达256 MB的空间,Pcimask0, Pcimask1决定映射的地址空间大小。Pcibase2映射北桥的内部寄存器,映射区间为64 KB。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值