pciscan not working in ipxe.efi - Printable Version +- iPXE discussion forum (https://forum.ipxe.org) +-- Forum: iPXE user forums (/forumdisplay.php?fid=1) +--- Forum: General (/forumdisplay.php?fid=2) +--- Thread: pciscan not working in ipxe.efi (/showthread.php?tid=8237) |
pciscan not working in ipxe.efi - renato - 2016-11-29 20:31 Hi, I am trying to add a sleep or ifclose command in case I find a pci or network card, all this in my boot menu just before booting. I am trying something like this: Code: :scan pciscan addr || goto scan_done I am doing something like below instead: Code: set addr:uint16 0 please advice RE: pciscan not working in ipxe.efi - robinsmidsrod - 2016-12-12 10:31 It is quite possible that the pciscan command is not properly implemented in EFI mode yet. If you do the workaround, do you actually receive proper information that matches the hardware setup of that machine? RE: pciscan not working in ipxe.efi - renato - 2016-12-12 22:29 yes, it takes a couple of seconds but works RE: pciscan not working in ipxe.efi - NiKiZe - 2016-12-12 22:46 Can confirm ... in EFI mode running Code: set addr:uint16 0 Building with hacky patch and DEBUG=pci_cmd,pci determined that ipxe can't enumerate any buses at all. This happens in pci_find_next The answer to why can be found at: efi code compared to pcbios code So pci scaning is not supported in EFI my guess is simply because it will cause issues on initialization, and that there is other (better) methods for doing the device enumeration in EFI mode. Replacing Code: end = PCI_BUSDEVFN ( 0, pci_num_bus(), 0, 0 ); Code: end = PCI_BUSDEVFN ( 0, 0x100, 0, 0 ); What we need here is probably a extra code path for in what manner we want enumeration, and for efi mode it can give zero buses on initialization but on pciscan it can actually give the buses - do note that in my test I did not check if the addresses returned was actually valid bus ids. |