Hi all,

I've been attempting to get a UEFI application to use the PXE Base Code Protocol (PxeBc) to get an IP (v4) using PxeBc->Dhcp(); testing is being done on a commercial ASUS motherboard (M5A99FX Pro R2.0, firmware version 2501) in the EFI Shell. During the DORA exchange, PxeBc->Dhcp() is not sending a Request after getting the Offer from the router (I have verified the Discover and Offer packets are transmitting with a packet sniffer), causing a timeout after a few attempts.

Since I am testing on a commercial motherboard, and I know PXE boot works on it in other situations, I can only assume something is wrong with the way I am trying to use PxeBc. I've tried two methods of locating/opening PxeBc: locating a handle that publishes gEfiPxeBaseCodeProtocolGuid and opening PxeBc from a valid one, and using gBS->LocateProtocol() to locate gEfiPxeBaseCodeProtocolGuid and using that. In both cases, I call PxeBc->Start() before trying Dhcp, and they both timeout in the same way.

I can't be sure what all is included in the ASUS PxeBc->Dhcp() implementation, but if it follows the implementation in MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcImpl.c, EfiPxeBcDhcp(), the DHCP4 options should be set in the PxeBc->Dhcp() call. Are there any other steps I am missing that need to be performed to get Dhcp to complete? Any advice or pointers would be appreciated.
--
Thanks,
David

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to