JackyWu
驱动小牛
驱动小牛
  • 注册日期2001-10-25
  • 最后登录2011-04-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:2035回复:6

关于PCI设备地址映射的几个问题。

楼主#
更多 发布于:2001-12-11 22:23
    我在用9054开发PCI板卡,有几个比较困惑的问题:

1)9054local总线上的资源地址(不管他是memory还是其他I/O设备)是通过什么方式映射到系统的内存地址空间和I/O地址空间上去的。
    我的理解是这样的:PCI的config register里面提供了base memory address,local bus上的地址都是在base memory address的基础上的偏移量。

2)PCI local bus上的地址到底是根据什么来决定是映射到I/O地址空间还是内存地址空间
    我的理解是这样的:到底是映射到I/O地址空间还是内存地址空间是没有硬性规定的。完全可以将一段地址同时映射成I/O地址和内存地址。只是I/O地址是相当有限的。而映射到内存地址空间的设备也未必就是local bus上的ram,只是在软件上完全可以将其当成是内存来访问而已。

3)地址映射到底是由PCI总线控制器决定的还是由每个PCI设备自己决定的
   我的理解是这样的:每个PCI设备自己决定的是需要映射的地址的宽度,比如需要0x10000长度的地址范围。而基地址是又系统根据所有需要分配地址空间的设备(包括内存,PCI设备等)然后分配基地址。

以上的理解肯定是有很多荒谬的地方,希望大家能够将自己的理解和我分享,谢谢。希望大家能够和我交流。

最新喜欢:

jmzz003jmzz00...
多年以后,我又回来了。
JackyWu
驱动小牛
驱动小牛
  • 注册日期2001-10-25
  • 最后登录2011-04-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2001-12-12 16:44
    看来是没有人来看了。Wuwuwu.......好凄惨啊。 :(
多年以后,我又回来了。
mydrive
驱动牛犊
驱动牛犊
  • 注册日期2001-06-21
  • 最后登录2004-05-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2001-12-12 22:43
1) 你的理解是错误的,映射是通过Remap寄存器完成的。你再好好看看DS。
mydrive
驱动牛犊
驱动牛犊
  • 注册日期2001-06-21
  • 最后登录2004-05-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2001-12-12 22:45
2) Local 不分I/O或MEM,只是PCI总线区分它们,通过Remap,他们都在Local中占据一段地址。
mydrive
驱动牛犊
驱动牛犊
  • 注册日期2001-06-21
  • 最后登录2004-05-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2001-12-12 22:45
3) 地址映射是通过对控制器编程实现的。PCI占用的系统地址是由系统分配的。而本地地址在设计完成后就是固定的。

你在概念上好像有些模糊。
JackyWu
驱动小牛
驱动小牛
  • 注册日期2001-10-25
  • 最后登录2011-04-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2001-12-12 22:52
    谢谢。我真的希望多些像您一样的人能给我批评和指正。
多年以后,我又回来了。
lucy1984
驱动牛犊
驱动牛犊
  • 注册日期2008-04-14
  • 最后登录2008-08-30
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望27点
  • 贡献值0点
  • 好评度13点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2008-08-03 16:03
掺和一下,受益了
pci新人
游客

返回顶部