gpt4 book ai didi

linux - 有没有办法让 Linux 内核重新运行它的 PCI 初始化代码?

转载 作者:IT王子 更新时间:2023-10-29 00:27:47 25 4
gpt4 key购买 nike

我正在寻找可以从驱动程序、用户空间实用程序进行的内核模式调用,或者将要求内核查看 PCI 总线并完全重新运行其初始化的系统调用,或者初始化一个特定的设备。具体来说,我需要内核识别一个在启动后添加到总线上的设备,然后配置它的地址空间、中断和其他配置参数,最后启用该设备以便我可以为它加载驱动程序(除非这一切作为驱动程序负载的一部分发生)。

为此,我坚持使用 2.4.x 系列内核,目前正在使用 2.4.20,但如果需要的话,我会转移到 2.4.37。该发行版是在 ram 磁盘中运行的精简版 Red Hat 7.3,但我可以添加实现此功能所需的任何工具(只要它们与 2.4 系列兼容)。

如果一些背景知识有助于阐明我正在尝试做的事情:从冷启动开始,一旦进入 Linux,我就使用 GPIO 对 FPGA 进行编程。 FPGA 的一部分,一旦被编程,就实现了一个简单的 PCI 设备。目前,在对 FPGA 进行编程后,我重新启动系统,Linux 会在启动后识别设备并为其加载驱动程序。

不需要重新启动,我只想让内核在启动期间做任何事情来查找 PCI 设备(我将内核配置为自行查找 PCI 设备,而不是向 BIOS 询问该信息,因此 BIOS 不需要知道这个设备(我希望))。

我相信 Linux 能够在编程之后但在重新启动之前看到设备,因为 scanpci 将在我编程之后显示设备,lspci -H 1。我只需要一种方法将其放入 /proc/pci,配置并启用。

最佳答案

下面的命令将帮助用户重新扫描它,完成根集线器。

echo "1" > /sys/class/pci_bus/0000\:00/rescan

关于linux - 有没有办法让 Linux 内核重新运行它的 PCI 初始化代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1827549/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com