[ipxe-devel] SuperMicro SYS-1028U-TR+ with Intel X710-DR2 nic card
Michael Brown
mcb30 at ipxe.org
Tue Mar 29 20:18:06 UTC 2016
On 29/03/16 20:41, Todd Stansell wrote:
> iPXE> show net0/bustype:hexraw
> net0/bustype:hexraw = 908b5424048b04248902896204895a0889720c897a10896a1431c0c38b5424048b44240885c07501408b62048b5a088b720c8b7a108b6a1459ff32c3b8d23b01
Nice catch. It turns out that there is a path whereby
dev->desc.bus_type will not be set to any value (and so will be left as
zero): this can happen if undibus_probe() detects the underlying UNDI as
being neither PCI nor ISAPnP. It will still continue to allow the
device to be used, since dev->desc is not required for actually using
the NIC. However, netdev_fetch_bustype() believes that drivers will
always initialise dev->desc.bus_type (which seems like a reasonable
assumption, since it's generally set by the bus driver before the NIC
driver ever gets called). This eventually leads to
netdev_fetch_bustype() treating NULL as a string pointer.
Should now be fixed in:
http://git.ipxe.org/ipxe.git/commitdiff/70509e6
If you retry with current master, you should now get a "No such file or
directory" from "show net0/bustype".
> Adding tcpip debug logs, I see some of these:
> Unrecognized TCP/IP protocol 51
I believe that's an IPSEC packet.
> Is there some way to help determine if the problem is within iPXE somewhere or
> the BIOS or the NIC itself? It feels like all of these problems are the
> failed handoff of the bus info above, so it can't load proper network drivers,
> etc.
The bus info failure is interesting. It suggests that pxeprefix.S was
unable to retrieve the device information. You should see an error
message somewhere in the "PXE->EB" block of text (before the iPXE
startup banner is printed).
As to loading proper network drivers: you're currently using
undionly.kpxe. By definition, this uses the underlying UNDI driver
(provided by Intel), not an iPXE native driver for that card. For a
native driver, you would use e.g. ipxe.pxe instead.
8086:1572 appears to be handled in Linux by the i40e driver. We don't
yet have a native driver for that card. However, Intel has historically
been exceptionally good at preserving backwards compatibility between
their NICs: we are able to use essentially the same datapath code for
everything from the original e1000 up to the 82599 10Gig virtual
function driver. There's a good chance that i40e cards can be natively
supported in iPXE with minimal effort.
You could even push your luck and try adding a PCI_ROM() line for
8086:1572 to drivers/net/intelx.c. :)
Michael
More information about the ipxe-devel
mailing list