diff --git a/NetworkPkg/UefiPxeBcDxe/PxeBcBoot.c b/NetworkPkg/UefiPxeBcDxe/PxeBcBoot.c index f22a151e25..0af791dc5f 100644 --- a/NetworkPkg/UefiPxeBcDxe/PxeBcBoot.c +++ b/NetworkPkg/UefiPxeBcDxe/PxeBcBoot.c @@ -1268,5 +1268,12 @@ ON_EXIT: AsciiPrint ("\n PXE-E99: Unexpected network error.\n"); } + REPORT_STATUS_CODE_WITH_EXTENDED_DATA ( + EFI_ERROR_CODE, + (EFI_STATUS_CODE_VALUE)(EFI_IO_BUS_IP_NETWORK | EFI_OEM_SPECIFIC | ((EFI_STATUS_CODE_VALUE)(Status & 0x1F))), + (VOID *)&(PxeBcMode->UsingIpv6), + sizeof (PxeBcMode->UsingIpv6) + ); + return Status; } diff --git a/NetworkPkg/UefiPxeBcDxe/PxeBcImpl.c b/NetworkPkg/UefiPxeBcDxe/PxeBcImpl.c index 0a4baf6f90..e296474471 100644 --- a/NetworkPkg/UefiPxeBcDxe/PxeBcImpl.c +++ b/NetworkPkg/UefiPxeBcDxe/PxeBcImpl.c @@ -72,6 +72,13 @@ EfiPxeBcStart ( return EFI_UNSUPPORTED; } + REPORT_STATUS_CODE_WITH_EXTENDED_DATA ( + EFI_PROGRESS_CODE, + EFI_IO_BUS_IP_NETWORK | EFI_IOB_PC_RECONFIG, + (VOID *)&(Mode->UsingIpv6), + sizeof (Mode->UsingIpv6) + ); + if (Mode->UsingIpv6) { AsciiPrint ("\n>>Start PXE over IPv6"); // diff --git a/NetworkPkg/UefiPxeBcDxe/PxeBcImpl.h b/NetworkPkg/UefiPxeBcDxe/PxeBcImpl.h index 732889f23d..cdb9b34480 100644 --- a/NetworkPkg/UefiPxeBcDxe/PxeBcImpl.h +++ b/NetworkPkg/UefiPxeBcDxe/PxeBcImpl.h @@ -48,6 +48,7 @@ #include #include #include +#include typedef struct _PXEBC_PRIVATE_DATA PXEBC_PRIVATE_DATA; typedef struct _PXEBC_PRIVATE_PROTOCOL PXEBC_PRIVATE_PROTOCOL; diff --git a/NetworkPkg/UefiPxeBcDxe/UefiPxeBcDxe.inf b/NetworkPkg/UefiPxeBcDxe/UefiPxeBcDxe.inf index 3371c150be..d5aba1376a 100644 --- a/NetworkPkg/UefiPxeBcDxe/UefiPxeBcDxe.inf +++ b/NetworkPkg/UefiPxeBcDxe/UefiPxeBcDxe.inf @@ -62,6 +62,7 @@ DpcLib DevicePathLib PcdLib + ReportStatusCodeLib [Protocols] ## TO_START