请教PCI9054寄存器设置问题

请教PCI9054寄存器问题,
问题1:第一个图片是PCI寄存器,第二个图片是LOCAL寄存器,PCI寄存器开始地址是00h,LOCAL寄存器开始地址PCI是00h,LOCAL是80h,而且每个图片的寄存器都有PCI 和LOCAL寄存器地址,这些地址怎么计算偏移的,都有什么关系?实在是看不懂
问题2:DMA寄存器怎么配置,不能配置在EEPROM里吗?查的一些资料都是说设置DMA 寄存器设置PCI和LOCAL地址,但没有具体操作,设置到哪里,怎么做呢?

img

img

img

img

img

img

这几个问题还是比较复杂的
A:PCI9054 这个芯片有两种访问(读写)方式。

  1. 连接 PCI9054 本地总线的 CPU 通过本地总线分配地址,以片选的方式选中后读写。(你贴的图片1的第2列)
  2. PCI 总线上其他 PCI 设备上的 CPU 通过 PCI 总线访问 PCI9054(你贴的图片1的第1列)

B:第二个图片 LOCAL Configuration 寄存器的读写。

  1. PCI 读写,这个续写比较复杂,先将图片1中的 PCIBAR0 这个寄存器的值为基地址按图片2的第1列的地址偏移去读写。
  2. 本地读写就比较简单,直接按图片2的第2列的地址偏移去访问(注意要加上 PCI9054 芯片的片选基地址)

C:DMA 寄存器的读写,其实和 B 的模式一样,有 PCI/本地两种访问方式。

注意,我说的图片1,图片2 是你在帖子中贴的图片。