]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcImpl.c
For network dynamic media support:
[mirror_edk2.git] / MdeModulePkg / Universal / Network / UefiPxeBcDxe / PxeBcImpl.c
index df9d2df5be2ad76c4b9d6c6e2540101528aed2fb..f0fc48f8ac29371bef06f0bf44bee052dd4a015e 100644 (file)
@@ -2585,6 +2585,7 @@ EfiPxeLoadFile (
   BOOLEAN                     NewMakeCallback;\r
   EFI_STATUS                  Status;\r
   UINT64                      TmpBufSize;\r
+  BOOLEAN                     MediaPresent;\r
 \r
   Private         = PXEBC_PRIVATE_DATA_FROM_LOADFILE (This);\r
   PxeBc           = &Private->PxeBc;\r
@@ -2603,6 +2604,15 @@ EfiPxeLoadFile (
     return EFI_UNSUPPORTED;\r
   }\r
 \r
+  //\r
+  // Check media status before PXE start\r
+  //\r
+  MediaPresent = TRUE;\r
+  NetLibDetectMedia (Private->Controller, &MediaPresent);\r
+  if (!MediaPresent) {\r
+    return EFI_NO_MEDIA;\r
+  }\r
+\r
   Status = PxeBc->Start (PxeBc, FALSE);\r
   if (EFI_ERROR (Status) && (Status != EFI_ALREADY_STARTED)) {\r
     return Status;\r