linux - 如何修复 PCI 枚举?如何修复设备的映射位置?

标签 linux linux-device-driver pci

我有一个嵌入式系统,有两个 pci 设备。我想始终将这些设备映射到同一个地方。我知道 Bios 可以做到。但我想要的是从 Linux 做。

在bios中,步骤是: https://superuser.com/questions/595672/how-is-memory-mapped-to-certain-hardware-how-is-mmio-accomplished-exactly

1º BIOS 发现系统上的所有设备。

2º 然后它询问每个设备以确定 BIOS 是否将设置该设备,如果是,则确定设备需要多少内存地址空间(如果有的话)。

3º然后 BIOS 为每个设备分配空间,并通过写入其 BAR(基地址寄存器)来编程地址解码器。

我想要的是在 linux 初始化时执行它。我正在使用 powerPC 和 Linux(内核 3.XX)

谢谢!

最佳答案

您可以要求内核再次枚举总线。检查 Linux 中的 PCIe 热插拔实现。

关于linux - 如何修复 PCI 枚举?如何修复设备的映射位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35181575/

相关文章:

linux - 如何判断连接的USB设备是否为U盘?

linux - 当tasklet运行并触发硬件中断时,tasklet的状态会发生什么变化?

linux-kernel - := or += when compiling Linux kernel modules?

linux - 在 Linux 上查找并行端口的内存地址

c++ - 使用 epoll 边缘触发时套接字上的数据过多

linux - 使用 HTACCESS 在 URL 中隐藏文件夹

python - 在树莓派 : can't find packages 上安装 OpenCV

python - 如何确定 "BUS-Error"的原因

caching - 如何为可缓存 PCIe BAR 进行 mmap

pci - pci_enable_device_mem 和 pci_enable_device 有什么区别?