關於PCI device driver 觀念的問題
本帖最后由 jason222333 于 2010-12-09 13:11 编辑当我的pci总线上有两个chip,一个是CPU,另一个是某个A chip
我想要实现连结这两个chip。
CPU有两个pcie core,不支持DMA功能,所以只用fifo.
如果想连结这两个chip
CPU的PCI driver,prob() function 是不是 detect A chip 的 vender ID 和 device ID?反之亦然?
所以pci侦测 config space的动作,是在 prob() function 实现就可以了吗?
侦测 config space的动作还需要注意什么吗?
关于传送接收数据的 function ,因为规格有写不支持DMA,是不是实现 read() 和 write()即可?
因为我在CPU其他的 PCI device driver 中没有看到 read或write,只有看到庞大的core Init 和 config space 的 读写function.
就算有看到read()或write(),也是只有实现write()的部分.
最后,read()或write()的读写 data reg是不是经由 I/O space或 memory space?或是PCI根本没有实现read()或write()?
a或是BAR0、BAR1就是 data reg? 楼主是台湾的,都繁体啊 抱歉,現在轉成簡體 LZ 还是把你的硬件环境表述的再清楚些吧?你是啥机器?X86 PC? ARM? 还是其他?
怎么一个CPU上还有2个PCIE CORE? 你这个CPU是插在主板上的外设上面带的CPU?
为啥DMA不支持就只能FIFO了?比DMA更低级的是中断方式 和 PROGRAM IO....
READ, WRITE 可以自己实现。PCI 肯定支持。 你是啥机器?X86 PC? ARM? 还是其他?
怎么一个CPU上还有2个PCIE CORE? 你这个CPU是插在主板上的外设上面带的CPU?
我是用ARM
bcm53001,有兩個pcie core
不過只做一端即可
這個cpu是在內部。
为啥DMA不支持就只能FIFO了?
因為我參考別人的pci device driver只有實現 DMA傳送(pci網路卡) 或是 Mailbox(cpu to cpu 傳送)
READ, WRITE 可以自己实现。PCI 肯定支持。
目前還沒有看到read() 的實際做法= =
我只有看到 DMA傳送 或是 Mailbox
如果這個CPU與A chip利用PCIe作連結的話?
CPU pci driver 的 prob()是實現 config. space detect嗎?
如果是這樣
prob() 是 detect A chip的vender id 和 device id嗎?
還是要prob()自己的vender id 和 device id?
另外,read和write的 data reg.要讀哪裡呢?
config. space 的 BAR0~5? 還是要找CPU的輸出口(PCIe core?)的 data reg.?
真煩惱:outu:
页:
[1]