[ipxe-devel] UEFI PXE problems with amd systems

Thomas Walker Thomas.Walker at twosigma.com
Tue May 12 18:57:53 UTC 2020

On Tue, May 12, 2020 at 01:19:06PM -0400, Thomas.Walker at UNVERIFIED.twosigma.com wrote:
> On Tue, May 12, 2020 at 06:44:51PM +0200, Christian Nilsson wrote:
> > A patch was sent to the list a few hours ago in regards to PCI devices, is it
> > related?
> I did see that come in, just as I had gotten a working patch and was actually amazed by how closely they are related.  Long story short, efipci_root is only looking at PCI_SEG to determine which EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL to use.  But as the other patch notes, EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL->Configure() returns a descriptor list that outlines which bus numbers each root is associated with.  Because PCI_SEG is the same across this particular system, it was always incorrectly picking the first root, so attempts to read the PCI config space failed and the NIC fell back to NII.  Modifying efipci_root to retrieve and compare this descriptor list allows it to actually find the correct root.
> Amusingly enough, it turns out that the rest of our EFI systems (mostly Dell 14th Gen) only work by blind luck because the first root is the correct one.  But on these AMD systems it isn't.
> There is definitely overlap with the other patch which, I'll be honest, I don't fully understand.  I'm primarily a kernel guy and EFI is not my thing at all (which means I'm also probably butchering the terminology).  Hopefully someone who does know this stuff can comment once I can get a patch posted.

Ok, patch up on its own thread.  Very open to suggestions.  Like I said, EFI is not my thing.  But tested and working on the Dell R6525 and R7515 that started the thread as well as a half dozen or so different models (Dell R630/R730/R640/R740, Intel S2600WT2R/S2600WFT).

Thank you all for the hospitality towards a n00b in these parts.

More information about the ipxe-devel mailing list