UEFI News and Commentary

Showing posts with label TCP/IP. Show all posts
Showing posts with label TCP/IP. Show all posts

Tuesday, August 27, 2013

UEFI 2.4 Review, Part 4: Require network drivers to return EFI_NO_MEDIA

This is the fourth in a series of articles reviewing the individual changes in the UEFI 2.4 specification. This time, we're looking at the requirement that the EFI_NO_MEDIA error be returned from a wide variety of network related protocols. Typically, EFI_NO_MEDIA indicates that there is no storage media (for disk-related functions) or no cable (for network related functions).

This update requires the low-level networking drivers to produce this error on their implementations of the Transmit() and Receive() functions in the Managed Network Protocol (MNP) and then each of the networking standard drivers that consume this protocol will propagate this error upwards to their callers. So, for example, the IP4/IP6, UDP4/UDP6, TCP4/TCP6 protocols have Transmit() and Receive(), the DHCP4/DHCP6 protocols have Start() and Stop() functions and the MTFTP4/MTFTP6 protocols have ReadFile() and WriteFile(). All of them now can report EFI_NO_MEDIA.

Why? So that calling applications can quickly determine if the cable is removed and decide to take appropriate action. Previously, there was no status code which clearly described this scenario, leaving the caller to try and decide if some sort of timeout had occurred due to a routing issue, or due to the cable not being present. Now the callers can make an intelligent choice.

Strangely, the SIMPLE_NETWORK protocol was not updated, although it is called out in the notes. My feeling is that this was either (a) a mistake or (b) a determination that some existing drivers couldn't handle the updated language.

UEFI is becoming a more capable networking platform all the time. Don't be surprised if higher level networking standards make their appearance soon. Then we'll wonder why we ever booted ;-)

Sunday, March 17, 2013

UEFI Is Not A Path To Career Glory

No, this is not strictly UEFI related. But my friend and co-author Vincent Zimmer (who is also one of the most prolific UEFI inventors I know) has published some insightful thoughts about the technical career path over on his blog. As a long time engineer located somewhere near the bottom of the respect ladder in the computer world (firmware), his point about passion is really relevant. What I do, I love doing. It is an end in itself, not a means to career glory. There is a compulsion to understand how something works that has led me to disassemble C++ virtual function calls, design Prolog/C++ hybrid programming languages or wade through TCP/IP packet dumps. Because I have to know. And then I have to find someone who'll listen.