Post Reply 
 
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
pciscan not working in ipxe.efi
2016-12-12, 22:46
Post: #4
RE: pciscan not working in ipxe.efi
Can confirm ... in EFI mode running
Code:
set addr:uint16 0
pciscan addr
show errno
gives me 0x2c044087 and going to http://ipxe.org/err/2c044087 gives us a bit more info.

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 );
with
Code:
end = PCI_BUSDEVFN ( 0, 0x100, 0, 0 );
in the above linked pci_find_next function and we can start enumerate the pci bus - however i can't tell which other effects this will have in efi mode, so strongly recommend against it.

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.

Use GitHub Discussions
VRAM bin
Visit this user's website Find all posts by this user
Quote this message in a reply
Post Reply 


Messages In This Thread
RE: pciscan not working in ipxe.efi - NiKiZe - 2016-12-12 22:46



User(s) browsing this thread: 1 Guest(s)