我在寫一個設備驅動程序來訪問PCIe卡上FPGA中的內存。
卡靴子和被探測/發現: -實現PCIe Linux設備驅動程序(希望從內核驅動程序訪問我的卡寄存器)
的/ proc/IOMEM
80000000-840fffff : PCI Bus #03
80000000-83ffffff : 0000:03:00.0
84000000-840fffff : 0000:03:00.0
所以讀LDD /等我編寫了以request_mem_region
呼叫在80000000
,並通過請求指向它的指針ioremap_nocache
1)我需要request_mem_region
以及ioremap_nocache
,不能使用後者嗎?
的/ proc/IOMEM後insmod
我的設備驅動程序: -
80000000-840fffff : PCI Bus #03
80000000-83ffffff : 0000:03:00.0
80000000-8003ffff : fp2
84000000-840fffff : 0000:03:00.0
2)does not看起來很正確,我...?
總之,讀不工作(它不是編碼方式類似於下面,有支票等): -
#define BAR_ADDR 0x80000000
void *base = ioremap_nocache(BAR_ADDR, 0x40000);
void *address = base + KNOWN_REG_LOCATION;
int data = ioread32(address);
printk("fp2: address:0x%08x, data:0x%08x\n", address, data);
輸出: -
address:0xfd500000, data:0xffffffff
我可以閱讀x80000000+KNOWN_REG_LOCATION
從mmap用戶空間。
3)我試過__raw_readl
/readl
也沒有運氣。
4)我可以在當前映射地址x80000000
處閱讀嗎?
您的.tar文件需要密碼。審查代碼會很有幫助。 – PatrickM 2011-10-31 23:26:46
我認爲你的評論應該引導@willtake – 2012-02-23 09:52:09