[ipxe-devel] Load via EFI on Macs

Michael Brown mbrown at fensystems.co.uk
Thu Feb 16 16:04:06 UTC 2012

On Thursday 16 Feb 2012 13:41:02 Stefan Dösinger wrote:
> > Also, read through some of the older stuff from the last couple months.
> Will do, thanks for the hint.
> Meanwhile, I found what broke my network card:
> e2b5a588691c6b0bdb99ca4b27cb8c5ea0ac712b, "[efi] Rename efi_pci.h to
> efi_pci_api.h" smuggled in a change that made pci_num_bus() return 0
> instead of 0x100. At Wine I'd be tarred and feathered if I tried such a
> thing :-)

My fault, but not as bad as it looks.  Commit e2b5a58 should have been a 
straight rename, but the change to pci_num_bus()==0 was intended to be part of 
the very next commit (d7736fbb, "[efi] Allow EFI to control PCI bus 
enumeration").  I suspect that I managed to screw up a git-rebase operation.

That (second) commit changed the intended behaviour of PCI enumeration under 
EFI.  Older versions of iPXE (and all versions of gPXE) perform a manual PCI 
enumeration via direct manipulation of the PCI registers.  This matches the 
non-EFI behaviour, but causes multiple problems under EFI.  Newer versions of 
iPXE allow EFI to control the process of attaching drivers to PCI devices.

There's no chance of reverting this commit, since the old behaviour is 
demonstrably broken in multiple scenarios.

What output do you get from DEBUG=efi_driver,efi_pci ?


More information about the ipxe-devel mailing list