Hi Laszlo,
Thanks for the reply. I believe I understand what you are saying about
NICs having different driver types UNDI, SMP, etc. However, my belief
is that if a system offers an "Enable Network Stack" option it should
also provide the driver such that "ifconfig -s eth0 dhcp" and "ping"
should work with the integrated NIC. Would you agree? Is this the
accepted standard for UEFI?
As I mentioned before, I have systems that do include a driver and
systems that don't. I was about to open a bug/complaint with Supermicro
for example, but I wanted to make sure that I understood the standard
before doing so.
I should mention that my failure isn't the Ip4Config2Protocol
change in UEFI 2.5. The motherboards that I have are UEFI 2.3.1 and
UEFI 2.4 systems.
Thanks,
Stephen
On 12/11/15 15:40, Stephen Polkowski wrote:
> Hello,
>
> I was hoping someone could help clarify what the "Enable Network
> Stack" on a modern UEFI 2.3.1 system should do. When I enable the
> network stack on some motherboards they will install the UNDI driver for
> the on board NIC. Other motherboards won't install the UNDI driver.
> What is correct behavior for this setting?
>
> I have a MSI CSM-Q87M-E43 motherboard. When I enable the network
> stack it will install the necessary TCP drivers and the UNDI driver.
> When I type "ipconfig -s eth0 dhcp" in the shell it fetches an
> IP from my DHCP server. All is well. Now I can do TFTP, etc.
>
> I have several Supermicro motherboards. When I enable the
> network stack it installs all the necessary TCP drivers, but it doesn't
> install a UNDI driver for the on board NIC. When I type "ipconfig -s
> eth0 dhcp" the follow error appears:
>
> "The protocol 'gEFiIp4ConfigProtocol' was required and not found
> (3B95AA31-3793-434B-8667-C8070892E05E)."
>
> What is the point of installing the TCP drivers without installing
> the NIC driver? Is this a UEFI system bug?
So many questions here. I'll admit that I have limited experience as to
what "Enable Network Stack" should do, but I think I might contribute
some clarification about concepts (corrections welcome, of course):
- UNDI drivers are not a requirement. A NIC can be exposed to the
hardware independent layers of the UEFI network stack by providing a
Simple Network Protocol instance, or a Managed Network Protocol instance
(which is somewhat unlikely though), or a UNDI driver; or possible in
more ways. So just because there is no UNDI driver, the NIC could be
perfectly functional.
- The low-level UEFI driver that procudes one of the above interfaces
could actually reside on the (discrete) NIC itself, in its PCI expansion
ROM ("oprom"). Ideally the platform firmware shouldn't have to know
anything hw specific about the card. (I realize that with integrated
network cards, it gets more messy.) Anyhow, if the "Enable Network
Stack" knob in the setup utility enables only the higher level protocols
in the UEFI stack, that could make perfect sense: each NIC plugged into
the system is expected to provide its own SNP / MNP / UNDI driver in the
oprom. It is possible that a NIC doesn't provide a UEFI compatible
driver in its oprom (only a "legacy BIOS" one).
- With regard to the gEfiIp4ConfigProtocol error message, please refer
to the following thread; I think it could be relevant:
http://thread.gmane.org/gmane.comp.bios.edk2.devel/4072
Thanks
Laszlo
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel