我正在寻找一个内核模式调用,我可以从驱动程序,用户空间实用程序,或系统调用,要求内核查看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,配置和启用.