yjx2003
驱动牛犊
驱动牛犊
  • 注册日期2004-06-18
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分32分
  • 威望6点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2477回复:17

base address register 的内容是怎样写进去的

楼主#
更多 发布于:2005-02-16 09:29
我在softice 使用pci 命令
得到下面信息
在base address register 的内容都是0

请问 这里面得值是在驱动程序加上以后
由windows 分配,在写入这些寄存器里的马

我看到有一些 device base address register 是
有值得
下面是我的pci卡的信息
##########################################
Bus 03  Device 02  Function 00
Vendor: 6809
Device: 8115
Revision: 10
Device class:    04 Multimedia device
Device subclass: 00 Video
Device sub-subclass: 00
Interrupt line:  00  Interrupt pin: 01  Min_Gnt: 00      MaxLat: 00
Cache line size: 00  Latency timer: 00  Header type: 00  BIST: 00
Command Register:
I/O:0     Mem:0   BusMast:0  Special:0    MemInv:0
Parity:0  Wait:0  SERR:0     Back2Back:0  Snoop:0
Status Register:
Caps:0    66MHz Cap:0  UDF:0  FB2B Cap:0  DevSel: Medium
PERRDet:0 PERRRcvd:0 TASgnld:0  TARcvd:0  MARcvd:0   SERRSgnld:0
 00: 81156809 02000000  04000010 00000000
 10: 00000000 00000000  00000000 00000000
 20: 00000000 00000000  00000000 81156809
 30: 00000000 00000000  00000000 00000100

#####################################################
下面是base address register 是
有值得Bus 03  Device 05  Function 00
Vendor: 1000 LSI Logic
Device: 0030
Revision: 07
Device class:    01 Mass storage controller
Device subclass: 00 SCSI bus controller
Device sub-subclass: 00
Base address 0: 00002000  256 bytes  I/O
Base address 1: DA120000  128K  Memory  64-bit
Base address 2: 00000000  16 bytes  Memory  32-bit
Base address 3: DA100000  128K  Memory  64-bit
Base address 4: 00000000  16 bytes  Memory  32-bit
ROM base: 00000000  1MB  Disabled
Interrupt line:  1A  Interrupt pin: 01  Min_Gnt: 11      MaxLat: 12
Cache line size: 08  Latency timer: F8  Header type: 80  BIST: 00
Command Register:
I/O:1     Mem:1   BusMast:1  Special:0    MemInv:1
Parity:1  Wait:0  SERR:1     Back2Back:0  Snoop:0
Status Register:
Caps:1    66MHz Cap:1  UDF:0  FB2B Cap:0  DevSel: Medium
PERRDet:0 PERRRcvd:0 TASgnld:0  TARcvd:0  MARcvd:0   SERRSgnld:0
 00: 00301000 02300157  01000007 0080F808
 10: 00002001 DA120004  00000000 DA100004
 20: 00000000 00000000  00000000 10101000
 30: 00000000 00000050  00000000 1211011A

请向您的朋友推荐《名人传记》电子期刊 http://list.cn99.com/cgi-bin/getlsts?listname=zhuanji
lilanzhen
驱动牛犊
驱动牛犊
  • 注册日期2004-06-03
  • 最后登录2005-02-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-02-22 17:02
不是这样的。这些值是芯片里边的默认值或者是上电以后由板卡上的EEPROM里边的内容自动写到芯片里边去的。
yjx2003
驱动牛犊
驱动牛犊
  • 注册日期2004-06-18
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分32分
  • 威望6点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-02-22 17:56
不是这样的。这些值是芯片里边的默认值或者是上电以后由板卡上的EEPROM里边的内容自动写到芯片里边去的。


是不是,在驱动程序正确加载以后

base register 的值才能显示正确

在驱动程序的那部分处理这个值

是否要向这个寄存器里写地址
请向您的朋友推荐《名人传记》电子期刊 http://list.cn99.com/cgi-bin/getlsts?listname=zhuanji
lilanzhen
驱动牛犊
驱动牛犊
  • 注册日期2004-06-03
  • 最后登录2005-02-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-02-22 18:06
不是,这个过程在机器启动以后,驱动程序加载之前就完成了。你如果想改变它里边的值,就得改EEPROM 的值,否则它用芯片里边的默认的值
lilanzhen
驱动牛犊
驱动牛犊
  • 注册日期2004-06-03
  • 最后登录2005-02-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-02-22 18:08
我做的是PCI的板卡,用的是9052芯片,是我上述所说。你的就不是很清楚。你应该查你用的PCI芯片的资料,再定夺
yjx2003
驱动牛犊
驱动牛犊
  • 注册日期2004-06-18
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分32分
  • 威望6点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-02-22 18:20
我做的是PCI的板卡,用的是9052芯片,是我上述所说。你的就不是很清楚。你应该查你用的PCI芯片的资料,再定夺


我有的是xilinx 的ip core

在开始,他的地址的值 全是零

我看到其他的pci device 是有值的,

这个值是根据pci 接口后面的memeory 的大小自己设置的吗
请向您的朋友推荐《名人传记》电子期刊 http://list.cn99.com/cgi-bin/getlsts?listname=zhuanji
lilanzhen
驱动牛犊
驱动牛犊
  • 注册日期2004-06-03
  • 最后登录2005-02-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-02-23 09:41
每种PCI桥芯片都有配置空间,让系统启动时去读它,以便分配资源。应该是那样的。你在网上搜索一下你的芯片,资料肯定不少的。
yjx2003
驱动牛犊
驱动牛犊
  • 注册日期2004-06-18
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分32分
  • 威望6点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2005-02-23 10:43
每种PCI桥芯片都有配置空间,让系统启动时去读它,以便分配资源。应该是那样的。你在网上搜索一下你的芯片,资料肯定不少的。


如果不能在softice 显示base register 的值

是不是说明硬件问题,因为这个ip core 可以自己改
请向您的朋友推荐《名人传记》电子期刊 http://list.cn99.com/cgi-bin/getlsts?listname=zhuanji
lilanzhen
驱动牛犊
驱动牛犊
  • 注册日期2004-06-03
  • 最后登录2005-02-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2005-02-23 16:29
你可一用sofice的pci命令来枚举所有的PCI设备。看系统能否识别你的设备
yjx2003
驱动牛犊
驱动牛犊
  • 注册日期2004-06-18
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分32分
  • 威望6点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2005-02-23 17:14
你可一用sofice的pci命令来枚举所有的PCI设备。看系统能否识别你的设备


我在最上*楼主(
显示的信息
就是softice中的pci命令信息
请向您的朋友推荐《名人传记》电子期刊 http://list.cn99.com/cgi-bin/getlsts?listname=zhuanji
lilanzhen
驱动牛犊
驱动牛犊
  • 注册日期2004-06-03
  • 最后登录2005-02-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2005-02-24 09:15
那就是你的芯片没有被写入值,查你的芯片资料了吗?一般PDF资料里边都介绍了用什么方法写入
lipple
驱动牛犊
驱动牛犊
  • 注册日期2004-11-14
  • 最后登录2005-02-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2005-02-24 15:08
9052的基址寄存器好像不是eeprom可写的巴?
我只是看手册,没具体试过,请大侠指点!
chinaxine
驱动牛犊
驱动牛犊
  • 注册日期2004-10-22
  • 最后登录2005-09-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2005-02-24 15:54
不是这样的。这些值是芯片里边的默认值或者是上电以后由板卡上的EEPROM里边的内容自动写到芯片里边去的。


基地址的值应该是芯片映射以后系统分配的吧.
刚刚接触驱动开发,请多关照
lipple
驱动牛犊
驱动牛犊
  • 注册日期2004-11-14
  • 最后登录2005-02-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2005-02-24 17:25
按手册上说这几个寄存器是pci writable,可以由pci host写入,这是什么意思?
是系统通过pci bus分配,还是用户写入???
lipple
驱动牛犊
驱动牛犊
  • 注册日期2004-11-14
  • 最后登录2005-02-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2005-02-24 17:28
系统是不是根据LASXRR寄存器中的值来指定基址寄存器的值?
chinaxine
驱动牛犊
驱动牛犊
  • 注册日期2004-10-22
  • 最后登录2005-09-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2005-02-24 17:43
按手册上说这几个寄存器是pci writable,可以由pci host写入,这是什么意思?
是系统通过pci bus分配,还是用户写入???


我个人觉得应该是系统分配的,用户自己怎么分配啊?
刚刚接触驱动开发,请多关照
lilanzhen
驱动牛犊
驱动牛犊
  • 注册日期2004-06-03
  • 最后登录2005-02-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2005-02-25 13:11
是这样的:基址积存器里边有所要申请的空间大小。PCI HOST(即系统)往基址积存器里写入全1,然后回读,根据读回来的值来给它分配基地址。至于基地址积存器里边的值可以自己编程序写入或者用EEPROM。不过你要是为了保证每次上电都保持一样。就必须用EEPROM
yjx2003
驱动牛犊
驱动牛犊
  • 注册日期2004-06-18
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分32分
  • 威望6点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2005-02-25 14:36
是这样的:基址积存器里边有所要申请的空间大小。PCI HOST(即系统)往基址积存器里写入全1,然后回读,根据读回来的值来给它分配基地址。至于基地址积存器里边的值可以自己编程序写入或者用EEPROM。不过你要是为了保证每次上电都保持一样。就必须用EEPROM


这个值是根据pci 接口后面的memeory 的大小自己设置的吗
请向您的朋友推荐《名人传记》电子期刊 http://list.cn99.com/cgi-bin/getlsts?listname=zhuanji
游客

返回顶部