我在看一个嵌入式x86系统设计文档。一个包含Xilinx的I/O板连接到linux x86 PCI总线。FPGA的实现如下:
• PCI interface core to connect to the x86 PCI bus
• Xilinx MB soft processor
• Xilinx OPB bus (this is a processor bus for the MB)
• PCI <-> OPB interface to allow the PCI bus to access all OPB peripherals
• Interrup
为了访问PCI配置空间,根据不同的文章使用I/O端口地址0xCF8,0xCFC。
mov eax, dword 0x80000000
mov dx, word 0x0CF8
out dx, eax
mov dx, word 0x0CFC
in eax, dx
上述代码中eax的值是0x12378086,意思是vendor ID = 0x8086和device ID = 0x1237。
这里有个问题。
Q1.我已经看到这种方法只适用于PCI配置空间。那么,访问PCIe配置空间的另一种方法是什么?
“不能使用遗留的PCI方法(通过端口0xCF8和0xCFC)访问此扩展配置空间”
但其他一些文章
我一直在跟踪这个葛瑞波,在Ubuntu上手动安装Realtek驱动程序(22.04)。
到目前为止,我的理解是这个特定的卡没有被Linux正确地“识别”,所以手动驱动程序安装是一个解决办法。在过去的几个月中,在每个内核更新之后,问题都会再次出现,在dir rtl8852be上,我将重新运行以下命令:
make clean
make
sudo make install
Ubuntu会再次识别网卡,一切都会很好。今天,在Ubuntu更新之后,在系统重新启动时,我得到了预期的问题。按照通常的步骤,但继续
make
得到以下意外错误:
#rm -f .symvers.8852be
make ARCH=