From 8e51a8153a1451bcd7336536eb4bc0027360faaa Mon Sep 17 00:00:00 2001 From: Miroslav Rezanina Date: Wed, 3 Jul 2024 08:35:29 -0400 Subject: [PATCH] * Wed Jul 03 2024 Miroslav Rezanina - 20220126gitbb1bba3d77-13.el8_10.1 - edk2-MdeModulePkg-Change-use-of-EFI_D_-to-DEBUG_.patch [RHEL-21854 RHEL-21856 RHEL-40099] - edk2-MdeModulePkg-Potential-UINT32-overflow-in-S3-ResumeC.patch [RHEL-21854 RHEL-21856 RHEL-40099] - edk2-MdePkg-Apply-uncrustify-changes.patch [RHEL-21854 RHEL-21856 RHEL-40099] - edk2-NetworkPkg-Apply-uncrustify-changes.p2.patch [RHEL-21854 RHEL-21856 RHEL-40099] - edk2-SecurityPkg-RngDxe-Rename-RdRandGenerateEntropy-to-g.patch [RHEL-21854 RHEL-21856 RHEL-40099] - edk2-SecurityPkg-RngDxe-Remove-ArchGetSupportedRngAlgorit.patch [RHEL-21854 RHEL-21856 RHEL-40099] - edk2-SecurityPkg-RngDxe-Documentation-include-parameter-c.patch [RHEL-21854 RHEL-21856 RHEL-40099] - edk2-SecurityPkg-RngDxe-Check-before-advertising-Cpu-Rng-.patch [RHEL-21854 RHEL-21856 RHEL-40099] - edk2-SecurityPkg-RngDxe-Add-AArch64-RawAlgorithm-support-.patch [RHEL-21854 RHEL-21856 RHEL-40099] - edk2-SecurityPkg-RngDxe-Add-debug-warning-for-NULL-PcdCpu.patch [RHEL-21854 RHEL-21856 RHEL-40099] - edk2-SecurityPkg-RngDxe-Rename-AArch64-RngDxe.c.patch [RHEL-21854 RHEL-21856 RHEL-40099] - edk2-SecurityPkg-RngDxe-Add-Arm-support-of-RngDxe.patch [RHEL-21854 RHEL-21856 RHEL-40099] - edk2-SecurityPkg-RngDxe-Correctly-update-mAvailableAlgoAr.patch [RHEL-21854 RHEL-21856 RHEL-40099] - edk2-SecurityPkg-RngDxe-Conditionally-install-EFI_RNG_PRO.patch [RHEL-21854 RHEL-21856 RHEL-40099] - edk2-MdeModulePkg-Duplicate-BaseRngLibTimerLib-to-MdeModu.patch [RHEL-21854 RHEL-21856 RHEL-40099] - edk2-MdePkg-Add-deprecated-warning-to-BaseRngLibTimer.patch [RHEL-21854 RHEL-21856 RHEL-40099] - edk2-SecurityPkg-SecurityPkg.dec-Move-PcdCpuRngSupportedA.patch [RHEL-21854 RHEL-21856 RHEL-40099] - edk2-MdePkg-DxeRngLib-Request-raw-algorithm-instead-of-de.patch [RHEL-21854 RHEL-21856 RHEL-40099] - edk2-MdePkg-Rng-Add-GUID-to-describe-Arm-Rndr-Rng-algorit.patch [RHEL-21854 RHEL-21856 RHEL-40099] - edk2-MdeModulePkg-Rng-Add-GUID-to-describe-unsafe-Rng-alg.patch [RHEL-21854 RHEL-21856 RHEL-40099] - edk2-MdePkg-Rng-Add-GetRngGuid-to-RngLib.patch [RHEL-21854 RHEL-21856 RHEL-40099] - edk2-SecurityPkg-RngDxe-Use-GetRngGuid-when-probing-RngLi.patch [RHEL-21854 RHEL-21856 RHEL-40099] - edk2-SecurityPkg-RngDxe-Simplify-Rng-algorithm-selection-.patch [RHEL-21854 RHEL-21856 RHEL-40099] - edk2-NetworkPkg-SECURITY-PATCH-CVE-2023-45237.patch [RHEL-21854 RHEL-21856 RHEL-40099] - edk2-MdePkg-BaseRngLib-Add-a-smoketest-for-RDRAND-and-che.patch [RHEL-21854 RHEL-21856 RHEL-40099] - edk2-SecurityPkg-RngDxe-add-rng-test.patch [RHEL-21854 RHEL-21856 RHEL-40099] - edk2-OvmfPkg-wire-up-RngDxe.patch [RHEL-21854 RHEL-21856 RHEL-40099] - edk2-CryptoPkg-Test-call-ProcessLibraryConstructorList.patch [RHEL-21854 RHEL-21856 RHEL-40099] - edk2-MdePkg-X86UnitTestHost-set-rdrand-cpuid-bit.patch [RHEL-21854 RHEL-21856 RHEL-40099] - edk2-NetworkPkg-TcpDxe-SECURITY-PATCH-CVE-2023-45236.patch [RHEL-21854 RHEL-21856 RHEL-40099] - edk2-NetworkPkg-TcpDxe-Fixed-system-stuck-on-PXE-boot-flo.patch [RHEL-21854 RHEL-21856 RHEL-40099] - Resolves: RHEL-21854 (CVE-2023-45236 edk2: Predictable TCP Initial Sequence Numbers [rhel-8]) - Resolves: RHEL-21856 (CVE-2023-45237 edk2: Use of a Weak PseudoRandom Number Generator [rhel-8]) - Resolves: RHEL-40099 (CVE-2024-1298 edk2: Temporary DoS vulnerability [rhel-8.10.z]) --- ...t-call-ProcessLibraryConstructorList.patch | 56 + ...lePkg-Change-use-of-EFI_D_-to-DEBUG_.patch | 11782 +++++++++++ ...licate-BaseRngLibTimerLib-to-MdeModu.patch | 2255 +++ ...ential-UINT32-overflow-in-S3-ResumeC.patch | 66 + ...-Add-GUID-to-describe-unsafe-Rng-alg.patch | 90 + ...eprecated-warning-to-BaseRngLibTimer.patch | 89 + edk2-MdePkg-Apply-uncrustify-changes.patch | 94 + ...b-Add-a-smoketest-for-RDRAND-and-che.patch | 213 + ...-Request-raw-algorithm-instead-of-de.patch | 66 + ...UID-to-describe-Arm-Rndr-Rng-algorit.patch | 91 + ...-MdePkg-Rng-Add-GetRngGuid-to-RngLib.patch | 409 + ...X86UnitTestHost-set-rdrand-cpuid-bit.patch | 63 + ...tworkPkg-Apply-uncrustify-changes.p2.patch | 16641 ++++++++++++++++ ...orkPkg-SECURITY-PATCH-CVE-2023-45237.patch | 1252 ++ ...e-Fixed-system-stuck-on-PXE-boot-flo.patch | 74 + ...TcpDxe-SECURITY-PATCH-CVE-2023-45236.patch | 808 + edk2-OvmfPkg-wire-up-RngDxe.patch | 318 + ...xe-Add-AArch64-RawAlgorithm-support-.patch | 246 + ...Pkg-RngDxe-Add-Arm-support-of-RngDxe.patch | 311 + ...xe-Add-debug-warning-for-NULL-PcdCpu.patch | 58 + ...xe-Check-before-advertising-Cpu-Rng-.patch | 336 + ...xe-Conditionally-install-EFI_RNG_PRO.patch | 79 + ...xe-Correctly-update-mAvailableAlgoAr.patch | 105 + ...xe-Documentation-include-parameter-c.patch | 98 + ...xe-Remove-ArchGetSupportedRngAlgorit.patch | 258 + ...tyPkg-RngDxe-Rename-AArch64-RngDxe.c.patch | 55 + ...xe-Rename-RdRandGenerateEntropy-to-g.patch | 176 + ...xe-Simplify-Rng-algorithm-selection-.patch | 78 + ...xe-Use-GetRngGuid-when-probing-RngLi.patch | 195 + edk2-SecurityPkg-RngDxe-add-rng-test.patch | 57 + ...rityPkg.dec-Move-PcdCpuRngSupportedA.patch | 104 + edk2.spec | 165 +- 32 files changed, 36687 insertions(+), 1 deletion(-) create mode 100644 edk2-CryptoPkg-Test-call-ProcessLibraryConstructorList.patch create mode 100644 edk2-MdeModulePkg-Change-use-of-EFI_D_-to-DEBUG_.patch create mode 100644 edk2-MdeModulePkg-Duplicate-BaseRngLibTimerLib-to-MdeModu.patch create mode 100644 edk2-MdeModulePkg-Potential-UINT32-overflow-in-S3-ResumeC.patch create mode 100644 edk2-MdeModulePkg-Rng-Add-GUID-to-describe-unsafe-Rng-alg.patch create mode 100644 edk2-MdePkg-Add-deprecated-warning-to-BaseRngLibTimer.patch create mode 100644 edk2-MdePkg-Apply-uncrustify-changes.patch create mode 100644 edk2-MdePkg-BaseRngLib-Add-a-smoketest-for-RDRAND-and-che.patch create mode 100644 edk2-MdePkg-DxeRngLib-Request-raw-algorithm-instead-of-de.patch create mode 100644 edk2-MdePkg-Rng-Add-GUID-to-describe-Arm-Rndr-Rng-algorit.patch create mode 100644 edk2-MdePkg-Rng-Add-GetRngGuid-to-RngLib.patch create mode 100644 edk2-MdePkg-X86UnitTestHost-set-rdrand-cpuid-bit.patch create mode 100644 edk2-NetworkPkg-Apply-uncrustify-changes.p2.patch create mode 100644 edk2-NetworkPkg-SECURITY-PATCH-CVE-2023-45237.patch create mode 100644 edk2-NetworkPkg-TcpDxe-Fixed-system-stuck-on-PXE-boot-flo.patch create mode 100644 edk2-NetworkPkg-TcpDxe-SECURITY-PATCH-CVE-2023-45236.patch create mode 100644 edk2-OvmfPkg-wire-up-RngDxe.patch create mode 100644 edk2-SecurityPkg-RngDxe-Add-AArch64-RawAlgorithm-support-.patch create mode 100644 edk2-SecurityPkg-RngDxe-Add-Arm-support-of-RngDxe.patch create mode 100644 edk2-SecurityPkg-RngDxe-Add-debug-warning-for-NULL-PcdCpu.patch create mode 100644 edk2-SecurityPkg-RngDxe-Check-before-advertising-Cpu-Rng-.patch create mode 100644 edk2-SecurityPkg-RngDxe-Conditionally-install-EFI_RNG_PRO.patch create mode 100644 edk2-SecurityPkg-RngDxe-Correctly-update-mAvailableAlgoAr.patch create mode 100644 edk2-SecurityPkg-RngDxe-Documentation-include-parameter-c.patch create mode 100644 edk2-SecurityPkg-RngDxe-Remove-ArchGetSupportedRngAlgorit.patch create mode 100644 edk2-SecurityPkg-RngDxe-Rename-AArch64-RngDxe.c.patch create mode 100644 edk2-SecurityPkg-RngDxe-Rename-RdRandGenerateEntropy-to-g.patch create mode 100644 edk2-SecurityPkg-RngDxe-Simplify-Rng-algorithm-selection-.patch create mode 100644 edk2-SecurityPkg-RngDxe-Use-GetRngGuid-when-probing-RngLi.patch create mode 100644 edk2-SecurityPkg-RngDxe-add-rng-test.patch create mode 100644 edk2-SecurityPkg-SecurityPkg.dec-Move-PcdCpuRngSupportedA.patch diff --git a/edk2-CryptoPkg-Test-call-ProcessLibraryConstructorList.patch b/edk2-CryptoPkg-Test-call-ProcessLibraryConstructorList.patch new file mode 100644 index 0000000..1ae0b2a --- /dev/null +++ b/edk2-CryptoPkg-Test-call-ProcessLibraryConstructorList.patch @@ -0,0 +1,56 @@ +From 045496325e278716e724ffdf9685667a8766d4f3 Mon Sep 17 00:00:00 2001 +From: Jon Maloy +Date: Thu, 20 Jun 2024 10:34:52 -0400 +Subject: [PATCH 28/31] CryptoPkg/Test: call ProcessLibraryConstructorList + +RH-Author: Jon Maloy +RH-MergeRequest: 77: UINT32 overflow in S3 ResumeCount and Pixiefail fixes +RH-Jira: RHEL-21854 RHEL-21856 RHEL-40099 +RH-Acked-by: Gerd Hoffmann +RH-Commit: [28/31] 5ff484fbc68d094fbcdda2772c2869818c67de8d + +JIRA: https://issues.redhat.com/browse/RHEL-21856 +Upstream: Merged +CVE: CVE-2023-45237 + +commit 94961b8817eec6f8d0434555ac50a7aa51c22201 +Author: Gerd Hoffmann +Date: Fri Jun 14 11:45:49 2024 +0200 + + CryptoPkg/Test: call ProcessLibraryConstructorList + + Needed to properly initialize BaseRngLib. + + Signed-off-by: Gerd Hoffmann + +Signed-off-by: Jon Maloy +--- + CryptoPkg/Test/UnitTest/Library/BaseCryptLib/UnitTestMain.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/CryptoPkg/Test/UnitTest/Library/BaseCryptLib/UnitTestMain.c b/CryptoPkg/Test/UnitTest/Library/BaseCryptLib/UnitTestMain.c +index 88a3f96305..0ba9f35840 100644 +--- a/CryptoPkg/Test/UnitTest/Library/BaseCryptLib/UnitTestMain.c ++++ b/CryptoPkg/Test/UnitTest/Library/BaseCryptLib/UnitTestMain.c +@@ -8,6 +8,11 @@ + **/ + #include "TestBaseCryptLib.h" + ++VOID ++EFIAPI ++ProcessLibraryConstructorList ( ++ VOID ++ ); + + /** + Initialize the unit test framework, suite, and unit tests for the +@@ -77,5 +82,6 @@ main ( + char *argv[] + ) + { ++ ProcessLibraryConstructorList (); + return UefiTestMain (); + } +-- +2.39.3 + diff --git a/edk2-MdeModulePkg-Change-use-of-EFI_D_-to-DEBUG_.patch b/edk2-MdeModulePkg-Change-use-of-EFI_D_-to-DEBUG_.patch new file mode 100644 index 0000000..9726ce4 --- /dev/null +++ b/edk2-MdeModulePkg-Change-use-of-EFI_D_-to-DEBUG_.patch @@ -0,0 +1,11782 @@ +From 3d6c7242687a2253d5d70e3c9aedb73ba300df0c Mon Sep 17 00:00:00 2001 +From: Jon Maloy +Date: Mon, 10 Jun 2024 18:13:29 -0400 +Subject: [PATCH 01/31] MdeModulePkg: Change use of EFI_D_* to DEBUG_* + +RH-Author: Jon Maloy +RH-MergeRequest: 77: UINT32 overflow in S3 ResumeCount and Pixiefail fixes +RH-Jira: RHEL-21854 RHEL-21856 RHEL-40099 +RH-Acked-by: Gerd Hoffmann +RH-Commit: [1/31] a5706fbb91131cd294fc93e56f18ce9973824c5d + +JIRA: https://issues.redhat.com/browse/RHEL-40099 +CVE: CVE-2024-1298 +Upstream: Merged + +commit 87000d77082339be464d07855d9fc194c6b4e8a6 +Author: Michael D Kinney +Date: Tue Nov 16 19:21:29 2021 -0800 + + MdeModulePkg: Change use of EFI_D_* to DEBUG_* + + REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3739 + + Update all use of EFI_D_* defines in DEBUG() macros to DEBUG_* defines. + + Cc: Andrew Fish + Cc: Leif Lindholm + Cc: Michael Kubacki + Signed-off-by: Michael D Kinney + Reviewed-by: Liming Gao + +Signed-off-by: Jon Maloy +--- + .../MemoryProfileInfo/MemoryProfileInfo.c | 12 +- + .../Bus/Ata/AtaAtapiPassThru/AhciMode.c | 15 +- + .../Ata/AtaAtapiPassThru/AtaAtapiPassThru.c | 9 +- + .../Bus/Ata/AtaAtapiPassThru/IdeMode.c | 43 ++- + MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBus.c | 11 +- + .../Bus/Ata/AtaBusDxe/AtaPassThruExecute.c | 24 +- + MdeModulePkg/Bus/I2c/I2cDxe/I2cBus.c | 18 +- + MdeModulePkg/Bus/I2c/I2cDxe/I2cHost.c | 20 +- + MdeModulePkg/Bus/Pci/EhciDxe/Ehci.c | 53 ++-- + MdeModulePkg/Bus/Pci/EhciDxe/EhciDebug.c | 124 ++++----- + MdeModulePkg/Bus/Pci/EhciDxe/EhciReg.c | 14 +- + MdeModulePkg/Bus/Pci/EhciDxe/EhciSched.c | 12 +- + MdeModulePkg/Bus/Pci/EhciDxe/UsbHcMem.c | 2 +- + MdeModulePkg/Bus/Pci/IdeBusPei/AtapiPeim.c | 34 +-- + .../Bus/Pci/NvmExpressDxe/NvmExpress.c | 18 +- + .../Bus/Pci/NvmExpressDxe/NvmExpressHci.c | 74 ++--- + .../Pci/NvmExpressDxe/NvmExpressPassthru.c | 107 ++++--- + .../Bus/Pci/PciBusDxe/PciEnumerator.c | 3 +- + .../Bus/Pci/PciBusDxe/PciEnumeratorSupport.c | 23 +- + MdeModulePkg/Bus/Pci/PciBusDxe/PciLib.c | 36 +-- + .../Bus/Pci/PciHostBridgeDxe/PciHostBridge.c | 22 +- + .../Pci/PciHostBridgeDxe/PciRootBridgeIo.c | 14 +- + MdeModulePkg/Bus/Pci/PciSioSerialDxe/Serial.c | 6 +- + .../Bus/Pci/PciSioSerialDxe/SerialIo.c | 12 +- + .../Pci/SataControllerDxe/SataController.c | 21 +- + .../Bus/Pci/SdMmcPciHcPei/SdMmcPciHcPei.c | 2 +- + .../Bus/Pci/UfsPciHcPei/UfsPciHcPei.c | 2 +- + MdeModulePkg/Bus/Pci/UhciDxe/Uhci.c | 5 +- + MdeModulePkg/Bus/Pci/UhciDxe/UhciDebug.c | 51 ++-- + MdeModulePkg/Bus/Pci/UhciDxe/UhciReg.c | 10 +- + MdeModulePkg/Bus/Pci/UhciDxe/UhciSched.c | 4 +- + MdeModulePkg/Bus/Pci/UhciDxe/UsbHcMem.c | 2 +- + MdeModulePkg/Bus/Pci/XhciDxe/UsbHcMem.c | 2 +- + MdeModulePkg/Bus/Pci/XhciDxe/Xhci.c | 63 +++-- + MdeModulePkg/Bus/Pci/XhciDxe/XhciReg.c | 25 +- + MdeModulePkg/Bus/Pci/XhciDxe/XhciSched.c | 122 ++++---- + MdeModulePkg/Bus/Pci/XhciPei/XhcPeim.c | 59 ++-- + MdeModulePkg/Bus/Pci/XhciPei/XhciSched.c | 121 ++++---- + MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDisk.c | 44 +-- + .../Bus/Sd/EmmcBlockIoPei/EmmcBlockIoPei.c | 6 +- + MdeModulePkg/Bus/Sd/EmmcBlockIoPei/EmmcHci.c | 37 ++- + MdeModulePkg/Bus/Sd/EmmcDxe/EmmcBlockIo.c | 3 +- + MdeModulePkg/Bus/Sd/EmmcDxe/EmmcDxe.c | 5 +- + .../Bus/Sd/SdBlockIoPei/SdBlockIoPei.c | 2 +- + MdeModulePkg/Bus/Sd/SdBlockIoPei/SdHci.c | 60 ++-- + MdeModulePkg/Bus/Sd/SdDxe/SdBlockIo.c | 5 +- + MdeModulePkg/Bus/Sd/SdDxe/SdDxe.c | 5 +- + .../Bus/Ufs/UfsBlockIoPei/UfsBlockIoPei.c | 24 +- + MdeModulePkg/Bus/Ufs/UfsBlockIoPei/UfsHci.c | 61 ++-- + MdeModulePkg/Bus/Usb/UsbBotPei/PeiAtapi.c | 4 +- + MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBus.c | 24 +- + MdeModulePkg/Bus/Usb/UsbBusDxe/UsbDesc.c | 26 +- + MdeModulePkg/Bus/Usb/UsbBusDxe/UsbEnumer.c | 78 +++--- + MdeModulePkg/Bus/Usb/UsbBusDxe/UsbHub.c | 34 +-- + MdeModulePkg/Bus/Usb/UsbBusDxe/UsbUtility.c | 5 +- + MdeModulePkg/Bus/Usb/UsbBusPei/HubPeim.c | 8 +- + MdeModulePkg/Bus/Usb/UsbBusPei/UsbIoPeim.c | 4 +- + MdeModulePkg/Bus/Usb/UsbBusPei/UsbPeim.c | 42 ++- + .../Bus/Usb/UsbMassStorageDxe/UsbMassBoot.c | 16 +- + .../Bus/Usb/UsbMassStorageDxe/UsbMassBot.c | 11 +- + .../Bus/Usb/UsbMassStorageDxe/UsbMassCbi.c | 6 +- + .../Bus/Usb/UsbMassStorageDxe/UsbMassImpl.c | 40 +-- + MdeModulePkg/Core/Dxe/Dispatcher/Dispatcher.c | 2 +- + MdeModulePkg/Core/Dxe/Event/Tpl.c | 4 +- + MdeModulePkg/Core/Dxe/FwVol/FwVol.c | 6 +- + MdeModulePkg/Core/Dxe/Gcd/Gcd.c | 4 +- + MdeModulePkg/Core/Dxe/Image/Image.c | 8 +- + .../Core/Dxe/Mem/MemoryProfileRecord.c | 2 +- + MdeModulePkg/Core/Dxe/Misc/DebugImageInfo.c | 4 +- + .../Core/Dxe/Misc/MemoryAttributesTable.c | 22 +- + .../Core/DxeIplPeim/Ia32/DxeLoadFunc.c | 3 +- + .../Core/DxeIplPeim/X64/DxeLoadFunc.c | 2 +- + MdeModulePkg/Core/Pei/Dispatcher/Dispatcher.c | 37 ++- + MdeModulePkg/Core/Pei/FwVol/FwVol.c | 36 +-- + MdeModulePkg/Core/Pei/Hob/Hob.c | 6 +- + MdeModulePkg/Core/Pei/Image/Image.c | 18 +- + MdeModulePkg/Core/Pei/Memory/MemoryServices.c | 8 +- + MdeModulePkg/Core/Pei/PeiMain/PeiMain.c | 2 +- + MdeModulePkg/Core/Pei/Ppi/Ppi.c | 11 +- + MdeModulePkg/Core/PiSmmCore/Dispatcher.c | 4 +- + MdeModulePkg/Core/PiSmmCore/PiSmmCore.c | 2 +- + MdeModulePkg/Core/PiSmmCore/PiSmmIpl.c | 6 +- + .../Core/PiSmmCore/SmramProfileRecord.c | 129 +++++---- + .../BootMaintenanceManagerUiLib/BootOption.c | 3 +- + .../Library/BootManagerUiLib/BootManager.c | 3 +- + .../DxeIpmiLibIpmiProtocol.c | 2 +- + .../FrameBufferBltLib/FrameBufferBltLib.c | 14 +- + .../PciHostBridgeLibNull.c | 8 +- + .../PeiIpmiLibIpmiPpi/PeiIpmiLibIpmiPpi.c | 2 +- + .../ReportStatusCodeLib.c | 2 +- + .../PiDxeS3BootScriptLib/BootScriptExecute.c | 261 +++++++++--------- + .../PiDxeS3BootScriptLib/BootScriptSave.c | 4 +- + .../PlatformVarCleanupLib/PlatVarCleanupLib.c | 28 +- + .../SmmIpmiLibSmmIpmiProtocol.c | 2 +- + .../Library/UefiBootManagerLib/BmBoot.c | 6 +- + .../Library/UefiBootManagerLib/BmConsole.c | 4 +- + .../UefiBootManagerLib/BmDriverHealth.c | 10 +- + .../Library/UefiBootManagerLib/BmHotkey.c | 14 +- + .../Library/UefiBootManagerLib/BmLoadOption.c | 2 +- + .../Library/UefiBootManagerLib/BmMisc.c | 16 +- + .../Library/VarCheckLib/VarCheckLib.c | 14 +- + .../VarCheckPcdLib/VarCheckPcdLibNullClass.c | 70 ++--- + .../VarCheckUefiLibNullClass.c | 4 +- + .../Universal/Acpi/AcpiTableDxe/AcpiSdt.c | 4 +- + .../Acpi/AcpiTableDxe/AmlNamespace.c | 18 +- + .../Universal/Acpi/AcpiTableDxe/AmlString.c | 14 +- + .../BootScriptExecutorDxe/ScriptExecute.c | 3 +- + .../FirmwarePerformanceDxe.c | 20 +- + .../FirmwarePerformancePei.c | 12 +- + .../Acpi/S3SaveStateDxe/AcpiS3ContextSave.c | 17 +- + MdeModulePkg/Universal/BdsDxe/BdsEntry.c | 24 +- + .../Universal/CapsulePei/X64/X64Entry.c | 2 +- + .../X64/SaveLongModeContext.c | 2 +- + .../Console/ConSplitterDxe/ConSplitter.c | 6 +- + .../GraphicsConsoleDxe/GraphicsConsole.c | 6 +- + .../GraphicsOutputDxe/GraphicsOutput.c | 8 +- + .../Console/TerminalDxe/TerminalConIn.c | 2 +- + .../Disk/CdExpressPei/PeiCdExpress.c | 18 +- + .../Universal/Disk/DiskIoDxe/DiskIo.c | 8 +- + .../Universal/Disk/PartitionDxe/ElTorito.c | 8 +- + .../Universal/Disk/PartitionDxe/Gpt.c | 74 ++--- + .../Universal/Disk/PartitionDxe/Mbr.c | 2 +- + .../Universal/Disk/PartitionDxe/Partition.c | 5 +- + .../Universal/Disk/RamDiskDxe/RamDiskDriver.c | 6 +- + .../Disk/RamDiskDxe/RamDiskProtocol.c | 6 +- + .../DriverHealthManagerDxe.c | 6 +- + MdeModulePkg/Universal/EbcDxe/EbcInt.c | 18 +- + MdeModulePkg/Universal/EsrtDxe/EsrtDxe.c | 10 +- + MdeModulePkg/Universal/EsrtDxe/EsrtImpl.c | 8 +- + .../FaultTolerantWrite.c | 25 +- + .../FaultTolerantWriteSmm.c | 20 +- + .../Universal/FaultTolerantWriteDxe/FtwMisc.c | 39 ++- + .../UpdateWorkingBlock.c | 10 +- + .../FaultTolerantWritePei.c | 16 +- + .../HiiDatabaseDxe/ConfigKeywordHandler.c | 4 +- + .../Universal/LockBox/SmmLockBox/SmmLockBox.c | 28 +- + MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.c | 36 +-- + .../SmbiosMeasurementDxe.c | 66 ++--- + .../SmmCommunicationBufferDxe.c | 20 +- + .../Universal/TimestampDxe/TimestampDxe.c | 2 +- + .../Universal/Variable/Pei/Variable.c | 6 +- + .../Variable/RuntimeDxe/Measurement.c | 6 +- + .../Universal/Variable/RuntimeDxe/Variable.c | 35 ++- + .../Variable/RuntimeDxe/VariableDxe.c | 3 +- + .../Variable/RuntimeDxe/VariableSmm.c | 30 +- + .../WatchdogTimerDxe/WatchdogTimer.c | 2 +- + 146 files changed, 1563 insertions(+), 1622 deletions(-) + +diff --git a/MdeModulePkg/Application/MemoryProfileInfo/MemoryProfileInfo.c b/MdeModulePkg/Application/MemoryProfileInfo/MemoryProfileInfo.c +index 191c310685..99a2d52db1 100644 +--- a/MdeModulePkg/Application/MemoryProfileInfo/MemoryProfileInfo.c ++++ b/MdeModulePkg/Application/MemoryProfileInfo/MemoryProfileInfo.c +@@ -1027,7 +1027,7 @@ GetUefiMemoryProfileData ( + + Status = gBS->LocateProtocol (&gEdkiiMemoryProfileGuid, NULL, (VOID **) &ProfileProtocol); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "UefiMemoryProfile: Locate MemoryProfile protocol - %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "UefiMemoryProfile: Locate MemoryProfile protocol - %r\n", Status)); + return Status; + } + +@@ -1136,7 +1136,7 @@ GetSmramProfileData ( + + Status = gBS->LocateProtocol (&gEfiSmmCommunicationProtocolGuid, NULL, (VOID **) &SmmCommunication); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "SmramProfile: Locate SmmCommunication protocol - %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "SmramProfile: Locate SmmCommunication protocol - %r\n", Status)); + return Status; + } + +@@ -1157,7 +1157,7 @@ GetSmramProfileData ( + (VOID **) &PiSmmCommunicationRegionTable + ); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "SmramProfile: Get PiSmmCommunicationRegionTable - %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "SmramProfile: Get PiSmmCommunicationRegionTable - %r\n", Status)); + return Status; + } + ASSERT (PiSmmCommunicationRegionTable != NULL); +@@ -1193,7 +1193,7 @@ GetSmramProfileData ( + CommSize = sizeof (EFI_GUID) + sizeof (UINTN) + CommHeader->MessageLength; + Status = SmmCommunication->Communicate (SmmCommunication, CommBuffer, &CommSize); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "SmramProfile: SmmCommunication - %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "SmramProfile: SmmCommunication - %r\n", Status)); + return Status; + } + +@@ -1349,12 +1349,12 @@ UefiMain ( + + Status = GetUefiMemoryProfileData (); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "GetUefiMemoryProfileData - %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "GetUefiMemoryProfileData - %r\n", Status)); + } + + Status = GetSmramProfileData (); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "GetSmramProfileData - %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "GetSmramProfileData - %r\n", Status)); + } + + return EFI_SUCCESS; +diff --git a/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AhciMode.c b/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AhciMode.c +index bda900a161..aec7d0cfbe 100644 +--- a/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AhciMode.c ++++ b/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AhciMode.c +@@ -1723,7 +1723,7 @@ AhciAtaSmartReturnStatusCheck ( + // + // The threshold exceeded condition is not detected by the device + // +- DEBUG ((EFI_D_INFO, "The S.M.A.R.T threshold exceeded condition is not detected\n")); ++ DEBUG ((DEBUG_INFO, "The S.M.A.R.T threshold exceeded condition is not detected\n")); + REPORT_STATUS_CODE ( + EFI_PROGRESS_CODE, + (EFI_IO_BUS_ATA_ATAPI | EFI_IOB_ATA_BUS_SMART_UNDERTHRESHOLD) +@@ -1732,7 +1732,7 @@ AhciAtaSmartReturnStatusCheck ( + // + // The threshold exceeded condition is detected by the device + // +- DEBUG ((EFI_D_INFO, "The S.M.A.R.T threshold exceeded condition is detected\n")); ++ DEBUG ((DEBUG_INFO, "The S.M.A.R.T threshold exceeded condition is detected\n")); + REPORT_STATUS_CODE ( + EFI_PROGRESS_CODE, + (EFI_IO_BUS_ATA_ATAPI | EFI_IOB_ATA_BUS_SMART_OVERTHRESHOLD) +@@ -1775,7 +1775,7 @@ AhciAtaSmartSupport ( + // + // S.M.A.R.T is not supported by the device + // +- DEBUG ((EFI_D_INFO, "S.M.A.R.T feature is not supported at port [%d] PortMultiplier [%d]!\n", ++ DEBUG ((DEBUG_INFO, "S.M.A.R.T feature is not supported at port [%d] PortMultiplier [%d]!\n", + Port, PortMultiplier)); + REPORT_STATUS_CODE ( + EFI_ERROR_CODE | EFI_ERROR_MINOR, +@@ -1851,7 +1851,7 @@ AhciAtaSmartSupport ( + AtaStatusBlock + ); + +- DEBUG ((EFI_D_INFO, "Enabled S.M.A.R.T feature at port [%d] PortMultiplier [%d]!\n", ++ DEBUG ((DEBUG_INFO, "Enabled S.M.A.R.T feature at port [%d] PortMultiplier [%d]!\n", + Port, PortMultiplier)); + } + +@@ -2785,7 +2785,7 @@ AhciModeInitialization ( + NULL + ); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_WARN, ++ DEBUG ((DEBUG_WARN, + "AhciModeInitialization: failed to enable 64-bit DMA on 64-bit capable controller (%r)\n", + Status)); + } +@@ -2991,7 +2991,7 @@ AhciModeInitialization ( + &SupportedModes + ); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "Calculate Mode Fail, Status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "Calculate Mode Fail, Status = %r\n", Status)); + continue; + } + +@@ -3022,7 +3022,7 @@ AhciModeInitialization ( + + Status = AhciDeviceSetFeature (PciIo, AhciRegisters, Port, 0, 0x03, (UINT32)(*(UINT8 *)&TransferMode), ATA_ATAPI_TIMEOUT); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "Set transfer Mode Fail, Status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "Set transfer Mode Fail, Status = %r\n", Status)); + continue; + } + +@@ -3061,4 +3061,3 @@ AhciModeInitialization ( + + return EFI_SUCCESS; + } +- +diff --git a/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.c b/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.c +index 86fe9d954f..1c94b5f39d 100644 +--- a/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.c ++++ b/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.c +@@ -682,7 +682,7 @@ AtaAtapiPassThruStart ( + Instance = NULL; + OriginalPciAttributes = 0; + +- DEBUG ((EFI_D_INFO, "==AtaAtapiPassThru Start== Controller = %x\n", Controller)); ++ DEBUG ((DEBUG_INFO, "==AtaAtapiPassThru Start== Controller = %x\n", Controller)); + + Status = gBS->OpenProtocol ( + Controller, +@@ -694,7 +694,7 @@ AtaAtapiPassThruStart ( + ); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "Open Ide_Controller_Init Error, Status=%r", Status)); ++ DEBUG ((DEBUG_ERROR, "Open Ide_Controller_Init Error, Status=%r", Status)); + goto ErrorExit; + } + +@@ -707,7 +707,7 @@ AtaAtapiPassThruStart ( + EFI_OPEN_PROTOCOL_GET_PROTOCOL + ); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "Get Pci_Io Protocol Error, Status=%r", Status)); ++ DEBUG ((DEBUG_ERROR, "Get Pci_Io Protocol Error, Status=%r", Status)); + goto ErrorExit; + } + +@@ -872,7 +872,7 @@ AtaAtapiPassThruStop ( + EFI_PCI_IO_PROTOCOL *PciIo; + EFI_AHCI_REGISTERS *AhciRegisters; + +- DEBUG ((EFI_D_INFO, "==AtaAtapiPassThru Stop== Controller = %x\n", Controller)); ++ DEBUG ((DEBUG_INFO, "==AtaAtapiPassThru Stop== Controller = %x\n", Controller)); + + Status = gBS->OpenProtocol ( + Controller, +@@ -2646,4 +2646,3 @@ Exit: + + return EFI_SUCCESS; + } +- +diff --git a/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/IdeMode.c b/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/IdeMode.c +index d284cc600b..9a6d0e60e4 100644 +--- a/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/IdeMode.c ++++ b/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/IdeMode.c +@@ -252,36 +252,36 @@ DumpAllIdeRegisters ( + + DEBUG_CODE_BEGIN (); + if ((StatusBlock.AtaStatus & ATA_STSREG_DWF) != 0) { +- DEBUG ((EFI_D_ERROR, "CheckRegisterStatus()-- %02x : Error : Write Fault\n", StatusBlock.AtaStatus)); ++ DEBUG ((DEBUG_ERROR, "CheckRegisterStatus()-- %02x : Error : Write Fault\n", StatusBlock.AtaStatus)); + } + + if ((StatusBlock.AtaStatus & ATA_STSREG_CORR) != 0) { +- DEBUG ((EFI_D_ERROR, "CheckRegisterStatus()-- %02x : Error : Corrected Data\n", StatusBlock.AtaStatus)); ++ DEBUG ((DEBUG_ERROR, "CheckRegisterStatus()-- %02x : Error : Corrected Data\n", StatusBlock.AtaStatus)); + } + + if ((StatusBlock.AtaStatus & ATA_STSREG_ERR) != 0) { + if ((StatusBlock.AtaError & ATA_ERRREG_BBK) != 0) { +- DEBUG ((EFI_D_ERROR, "CheckRegisterStatus()-- %02x : Error : Bad Block Detected\n", StatusBlock.AtaError)); ++ DEBUG ((DEBUG_ERROR, "CheckRegisterStatus()-- %02x : Error : Bad Block Detected\n", StatusBlock.AtaError)); + } + + if ((StatusBlock.AtaError & ATA_ERRREG_UNC) != 0) { +- DEBUG ((EFI_D_ERROR, "CheckRegisterStatus()-- %02x : Error : Uncorrectable Data\n", StatusBlock.AtaError)); ++ DEBUG ((DEBUG_ERROR, "CheckRegisterStatus()-- %02x : Error : Uncorrectable Data\n", StatusBlock.AtaError)); + } + + if ((StatusBlock.AtaError & ATA_ERRREG_MC) != 0) { +- DEBUG ((EFI_D_ERROR, "CheckRegisterStatus()-- %02x : Error : Media Change\n", StatusBlock.AtaError)); ++ DEBUG ((DEBUG_ERROR, "CheckRegisterStatus()-- %02x : Error : Media Change\n", StatusBlock.AtaError)); + } + + if ((StatusBlock.AtaError & ATA_ERRREG_ABRT) != 0) { +- DEBUG ((EFI_D_ERROR, "CheckRegisterStatus()-- %02x : Error : Abort\n", StatusBlock.AtaError)); ++ DEBUG ((DEBUG_ERROR, "CheckRegisterStatus()-- %02x : Error : Abort\n", StatusBlock.AtaError)); + } + + if ((StatusBlock.AtaError & ATA_ERRREG_TK0NF) != 0) { +- DEBUG ((EFI_D_ERROR, "CheckRegisterStatus()-- %02x : Error : Track 0 Not Found\n", StatusBlock.AtaError)); ++ DEBUG ((DEBUG_ERROR, "CheckRegisterStatus()-- %02x : Error : Track 0 Not Found\n", StatusBlock.AtaError)); + } + + if ((StatusBlock.AtaError & ATA_ERRREG_AMNF) != 0) { +- DEBUG ((EFI_D_ERROR, "CheckRegisterStatus()-- %02x : Error : Address Mark Not Found\n", StatusBlock.AtaError)); ++ DEBUG ((DEBUG_ERROR, "CheckRegisterStatus()-- %02x : Error : Address Mark Not Found\n", StatusBlock.AtaError)); + } + } + DEBUG_CODE_END (); +@@ -1162,7 +1162,7 @@ AtaUdmStatusWait ( + IoPortForBmis = (UINT16) (IdeRegisters->BusMasterBaseAddr + BMIS_OFFSET); + RegisterValue = IdeReadPortB (PciIo, IoPortForBmis); + if (((RegisterValue & BMIS_ERROR) != 0) || (Timeout == 0)) { +- DEBUG ((EFI_D_ERROR, "ATA UDMA operation fails\n")); ++ DEBUG ((DEBUG_ERROR, "ATA UDMA operation fails\n")); + Status = EFI_DEVICE_ERROR; + break; + } +@@ -1217,7 +1217,7 @@ AtaUdmStatusCheck ( + RegisterValue = IdeReadPortB (PciIo, IoPortForBmis); + + if ((RegisterValue & BMIS_ERROR) != 0) { +- DEBUG ((EFI_D_ERROR, "ATA UDMA operation fails\n")); ++ DEBUG ((DEBUG_ERROR, "ATA UDMA operation fails\n")); + return EFI_DEVICE_ERROR; + } + +@@ -2077,7 +2077,7 @@ IdeAtaSmartReturnStatusCheck ( + // + // The threshold exceeded condition is not detected by the device + // +- DEBUG ((EFI_D_INFO, "The S.M.A.R.T threshold exceeded condition is not detected\n")); ++ DEBUG ((DEBUG_INFO, "The S.M.A.R.T threshold exceeded condition is not detected\n")); + REPORT_STATUS_CODE ( + EFI_PROGRESS_CODE, + (EFI_IO_BUS_ATA_ATAPI | EFI_IOB_ATA_BUS_SMART_UNDERTHRESHOLD) +@@ -2086,7 +2086,7 @@ IdeAtaSmartReturnStatusCheck ( + // + // The threshold exceeded condition is detected by the device + // +- DEBUG ((EFI_D_INFO, "The S.M.A.R.T threshold exceeded condition is detected\n")); ++ DEBUG ((DEBUG_INFO, "The S.M.A.R.T threshold exceeded condition is detected\n")); + REPORT_STATUS_CODE ( + EFI_PROGRESS_CODE, + (EFI_IO_BUS_ATA_ATAPI | EFI_IOB_ATA_BUS_SMART_OVERTHRESHOLD) +@@ -2126,7 +2126,7 @@ IdeAtaSmartSupport ( + // + // S.M.A.R.T is not supported by the device + // +- DEBUG ((EFI_D_INFO, "S.M.A.R.T feature is not supported at [%a] channel [%a] device!\n", ++ DEBUG ((DEBUG_INFO, "S.M.A.R.T feature is not supported at [%a] channel [%a] device!\n", + (Channel == 1) ? "secondary" : "primary", (Device == 1) ? "slave" : "master")); + REPORT_STATUS_CODE ( + EFI_ERROR_CODE | EFI_ERROR_MINOR, +@@ -2195,7 +2195,7 @@ IdeAtaSmartSupport ( + } + } + +- DEBUG ((EFI_D_INFO, "Enabled S.M.A.R.T feature at [%a] channel [%a] device!\n", ++ DEBUG ((DEBUG_INFO, "Enabled S.M.A.R.T feature at [%a] channel [%a] device!\n", + (Channel == 1) ? "secondary" : "primary", (Device == 1) ? "slave" : "master")); + + } +@@ -2392,7 +2392,7 @@ DetectAndConfigIdeDevice ( + + Status = WaitForBSYClear (PciIo, IdeRegisters, 350000000); + if (EFI_ERROR (Status)) { +- DEBUG((EFI_D_ERROR, "New detecting method: Send Execute Diagnostic Command: WaitForBSYClear: Status: %d\n", Status)); ++ DEBUG((DEBUG_ERROR, "New detecting method: Send Execute Diagnostic Command: WaitForBSYClear: Status: %d\n", Status)); + continue; + } + +@@ -2453,7 +2453,7 @@ DetectAndConfigIdeDevice ( + continue; + } + +- DEBUG ((EFI_D_INFO, "[%a] channel [%a] [%a] device\n", ++ DEBUG ((DEBUG_INFO, "[%a] channel [%a] [%a] device\n", + (IdeChannel == 1) ? "secondary" : "primary ", (IdeDevice == 1) ? "slave " : "master", + DeviceType == EfiIdeCdrom ? "cdrom " : "harddisk")); + // +@@ -2484,7 +2484,7 @@ DetectAndConfigIdeDevice ( + &SupportedModes + ); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "Calculate Mode Fail, Status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "Calculate Mode Fail, Status = %r\n", Status)); + continue; + } + +@@ -2503,7 +2503,7 @@ DetectAndConfigIdeDevice ( + Status = SetDeviceTransferMode (Instance, IdeChannel, IdeDevice, &TransferMode, NULL); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "Set transfer Mode Fail, Status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "Set transfer Mode Fail, Status = %r\n", Status)); + continue; + } + } +@@ -2520,7 +2520,7 @@ DetectAndConfigIdeDevice ( + Status = SetDeviceTransferMode (Instance, IdeChannel, IdeDevice, &TransferMode, NULL); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "Set transfer Mode Fail, Status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "Set transfer Mode Fail, Status = %r\n", Status)); + continue; + } + } else if (SupportedModes->MultiWordDmaMode.Valid) { +@@ -2529,7 +2529,7 @@ DetectAndConfigIdeDevice ( + Status = SetDeviceTransferMode (Instance, IdeChannel, IdeDevice, &TransferMode, NULL); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "Set transfer Mode Fail, Status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "Set transfer Mode Fail, Status = %r\n", Status)); + continue; + } + } +@@ -2619,7 +2619,7 @@ IdeModeInitialization ( + &MaxDevices + ); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "[GetChannel, Status=%x]", Status)); ++ DEBUG ((DEBUG_ERROR, "[GetChannel, Status=%x]", Status)); + continue; + } + +@@ -2658,4 +2658,3 @@ IdeModeInitialization ( + ErrorExit: + return Status; + } +- +diff --git a/MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBus.c b/MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBus.c +index 28f8638c52..6c3268896b 100644 +--- a/MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBus.c ++++ b/MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBus.c +@@ -358,7 +358,7 @@ RegisterAtaDevice ( + // If yes, then install Storage Security Protocol at the ata device handle. + // + if ((AtaDevice->IdentifyData->trusted_computing_support & BIT0) != 0) { +- DEBUG ((EFI_D_INFO, "Found TCG support in Port %x PortMultiplierPort %x\n", Port, PortMultiplierPort)); ++ DEBUG ((DEBUG_INFO, "Found TCG support in Port %x PortMultiplierPort %x\n", Port, PortMultiplierPort)); + Status = gBS->InstallProtocolInterface ( + &AtaDevice->Handle, + &gEfiStorageSecurityCommandProtocolGuid, +@@ -368,7 +368,7 @@ RegisterAtaDevice ( + if (EFI_ERROR (Status)) { + goto Done; + } +- DEBUG ((EFI_D_INFO, "Successfully Install Storage Security Protocol on the ATA device\n")); ++ DEBUG ((DEBUG_INFO, "Successfully Install Storage Security Protocol on the ATA device\n")); + } + + gBS->OpenProtocol ( +@@ -387,7 +387,7 @@ Done: + + if (EFI_ERROR (Status) && (AtaDevice != NULL)) { + ReleaseAtaResources (AtaDevice); +- DEBUG ((EFI_D_ERROR | EFI_D_INIT, "Failed to initialize Port %x PortMultiplierPort %x, status = %r\n", Port, PortMultiplierPort, Status)); ++ DEBUG ((DEBUG_ERROR | DEBUG_INIT, "Failed to initialize Port %x PortMultiplierPort %x, status = %r\n", Port, PortMultiplierPort, Status)); + } + return Status; + } +@@ -1537,7 +1537,7 @@ AtaStorageSecurityReceiveData ( + ATA_DEVICE *Private; + EFI_TPL OldTpl; + +- DEBUG ((EFI_D_INFO, "EFI Storage Security Protocol - Read\n")); ++ DEBUG ((DEBUG_INFO, "EFI Storage Security Protocol - Read\n")); + if ((PayloadBuffer == NULL || PayloadTransferSize == NULL) && PayloadBufferSize != 0) { + return EFI_INVALID_PARAMETER; + } +@@ -1647,7 +1647,7 @@ AtaStorageSecuritySendData ( + ATA_DEVICE *Private; + EFI_TPL OldTpl; + +- DEBUG ((EFI_D_INFO, "EFI Storage Security Protocol - Send\n")); ++ DEBUG ((DEBUG_INFO, "EFI Storage Security Protocol - Send\n")); + if ((PayloadBuffer == NULL) && (PayloadBufferSize != 0)) { + return EFI_INVALID_PARAMETER; + } +@@ -1709,4 +1709,3 @@ InitializeAtaBus( + + return Status; + } +- +diff --git a/MdeModulePkg/Bus/Ata/AtaBusDxe/AtaPassThruExecute.c b/MdeModulePkg/Bus/Ata/AtaBusDxe/AtaPassThruExecute.c +index 79026a4a95..8655da599d 100644 +--- a/MdeModulePkg/Bus/Ata/AtaBusDxe/AtaPassThruExecute.c ++++ b/MdeModulePkg/Bus/Ata/AtaBusDxe/AtaPassThruExecute.c +@@ -309,7 +309,7 @@ IdentifyAtaDevice ( + return EFI_UNSUPPORTED; + } + +- DEBUG ((EFI_D_INFO, "AtaBus - Identify Device: Port %x PortMultiplierPort %x\n", AtaDevice->Port, AtaDevice->PortMultiplierPort)); ++ DEBUG ((DEBUG_INFO, "AtaBus - Identify Device: Port %x PortMultiplierPort %x\n", AtaDevice->Port, AtaDevice->PortMultiplierPort)); + + // + // Check whether the WORD 88 (supported UltraDMA by drive) is valid +@@ -674,7 +674,7 @@ AtaNonBlockingCallBack ( + } + + DEBUG (( +- EFI_D_BLKIO, ++ DEBUG_BLKIO, + "NON-BLOCKING EVENT FINISHED!- STATUS = %r\n", + Task->Token->TransactionStatus + )); +@@ -683,7 +683,7 @@ AtaNonBlockingCallBack ( + // Reduce the SubEventCount, till it comes to zero. + // + (*Task->UnsignalledEventCount) --; +- DEBUG ((EFI_D_BLKIO, "UnsignalledEventCount = %d\n", *Task->UnsignalledEventCount)); ++ DEBUG ((DEBUG_BLKIO, "UnsignalledEventCount = %d\n", *Task->UnsignalledEventCount)); + + // + // Remove the SubTask from the Task list. +@@ -696,7 +696,7 @@ AtaNonBlockingCallBack ( + // + if (!(*Task->IsError)) { + gBS->SignalEvent (Task->Token->Event); +- DEBUG ((EFI_D_BLKIO, "Signal the upper layer event!\n")); ++ DEBUG ((DEBUG_BLKIO, "Signal the upper layer event!\n")); + } + + FreePool (Task->UnsignalledEventCount); +@@ -709,8 +709,8 @@ AtaNonBlockingCallBack ( + if (!IsListEmpty (&AtaDevice->AtaTaskList)) { + Entry = GetFirstNode (&AtaDevice->AtaTaskList); + AtaTask = ATA_ASYN_TASK_FROM_ENTRY (Entry); +- DEBUG ((EFI_D_BLKIO, "Start to embark a new Ata Task\n")); +- DEBUG ((EFI_D_BLKIO, "AtaTask->NumberOfBlocks = %x; AtaTask->Token=%x\n", AtaTask->NumberOfBlocks, AtaTask->Token)); ++ DEBUG ((DEBUG_BLKIO, "Start to embark a new Ata Task\n")); ++ DEBUG ((DEBUG_BLKIO, "AtaTask->NumberOfBlocks = %x; AtaTask->Token=%x\n", AtaTask->NumberOfBlocks, AtaTask->Token)); + Status = AccessAtaDevice ( + AtaTask->AtaDevice, + AtaTask->Buffer, +@@ -729,7 +729,7 @@ AtaNonBlockingCallBack ( + } + + DEBUG (( +- EFI_D_BLKIO, ++ DEBUG_BLKIO, + "PACKET INFO: Write=%s, Length=%x, LowCylinder=%x, HighCylinder=%x, SectionNumber=%x\n", + Task->Packet.OutDataBuffer != NULL ? L"YES" : L"NO", + Task->Packet.OutDataBuffer != NULL ? Task->Packet.OutTransferLength : Task->Packet.InTransferLength, +@@ -838,13 +838,13 @@ AccessAtaDevice( + FreePool (EventCount); + return EFI_OUT_OF_RESOURCES; + } +- DEBUG ((EFI_D_BLKIO, "Allocation IsError Addr=%x\n", IsError)); ++ DEBUG ((DEBUG_BLKIO, "Allocation IsError Addr=%x\n", IsError)); + *IsError = FALSE; + TempCount = (NumberOfBlocks + MaxTransferBlockNumber - 1) / MaxTransferBlockNumber; + *EventCount = TempCount; +- DEBUG ((EFI_D_BLKIO, "AccessAtaDevice, NumberOfBlocks=%x\n", NumberOfBlocks)); +- DEBUG ((EFI_D_BLKIO, "AccessAtaDevice, MaxTransferBlockNumber=%x\n", MaxTransferBlockNumber)); +- DEBUG ((EFI_D_BLKIO, "AccessAtaDevice, EventCount=%x\n", TempCount)); ++ DEBUG ((DEBUG_BLKIO, "AccessAtaDevice, NumberOfBlocks=%x\n", NumberOfBlocks)); ++ DEBUG ((DEBUG_BLKIO, "AccessAtaDevice, MaxTransferBlockNumber=%x\n", MaxTransferBlockNumber)); ++ DEBUG ((DEBUG_BLKIO, "AccessAtaDevice, EventCount=%x\n", TempCount)); + } else { + while (!IsListEmpty (&AtaDevice->AtaTaskList) || !IsListEmpty (&AtaDevice->AtaSubTaskList)) { + // +@@ -906,7 +906,7 @@ AccessAtaDevice( + // + // Blocking Mode. + // +- DEBUG ((EFI_D_BLKIO, "Blocking AccessAtaDevice, TransferBlockNumber=%x; StartLba = %x\n", TransferBlockNumber, StartLba)); ++ DEBUG ((DEBUG_BLKIO, "Blocking AccessAtaDevice, TransferBlockNumber=%x; StartLba = %x\n", TransferBlockNumber, StartLba)); + Status = TransferAtaDevice (AtaDevice, NULL, Buffer, StartLba, (UINT32) TransferBlockNumber, IsWrite, NULL); + } + +diff --git a/MdeModulePkg/Bus/I2c/I2cDxe/I2cBus.c b/MdeModulePkg/Bus/I2c/I2cDxe/I2cBus.c +index 1833c0afb8..fa58632703 100644 +--- a/MdeModulePkg/Bus/I2c/I2cDxe/I2cBus.c ++++ b/MdeModulePkg/Bus/I2c/I2cDxe/I2cBus.c +@@ -312,7 +312,7 @@ CheckRemainingDevicePath ( + ((!SystemHasControllerNode) && (RemainingHasControllerNode) && (RemainingControllerNumber == 0)) || + ((SystemHasControllerNode) && (RemainingHasControllerNode) && (SystemControllerNumber == RemainingControllerNumber)) || + ((!SystemHasControllerNode) && (!RemainingHasControllerNode))) { +- DEBUG ((EFI_D_ERROR, "This I2C device has been already started.\n")); ++ DEBUG ((DEBUG_ERROR, "This I2C device has been already started.\n")); + Status = EFI_UNSUPPORTED; + break; + } +@@ -572,7 +572,7 @@ I2cBusDriverStart ( + EFI_OPEN_PROTOCOL_BY_DRIVER + ); + if (EFI_ERROR (Status) && (Status != EFI_ALREADY_STARTED)) { +- DEBUG ((EFI_D_ERROR, "I2cBus: open I2C host error, Status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "I2cBus: open I2C host error, Status = %r\n", Status)); + return Status; + } + +@@ -586,7 +586,7 @@ I2cBusDriverStart ( + EFI_OPEN_PROTOCOL_GET_PROTOCOL + ); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "I2cBus: open private protocol error, Status = %r.\n", Status)); ++ DEBUG ((DEBUG_ERROR, "I2cBus: open private protocol error, Status = %r.\n", Status)); + return Status; + } + } +@@ -603,7 +603,7 @@ I2cBusDriverStart ( + EFI_OPEN_PROTOCOL_BY_DRIVER + ); + if (EFI_ERROR (Status) && (Status != EFI_ALREADY_STARTED)) { +- DEBUG ((EFI_D_ERROR, "I2cBus: open I2C enumerate error, Status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "I2cBus: open I2C enumerate error, Status = %r\n", Status)); + goto Error; + } + +@@ -616,7 +616,7 @@ I2cBusDriverStart ( + EFI_OPEN_PROTOCOL_BY_DRIVER + ); + if (EFI_ERROR (Status) && (Status != EFI_ALREADY_STARTED)) { +- DEBUG ((EFI_D_ERROR, "I2cBus: open device path error, Status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "I2cBus: open device path error, Status = %r\n", Status)); + goto Error; + } + +@@ -637,7 +637,7 @@ I2cBusDriverStart ( + // + I2cBusContext = AllocateZeroPool (sizeof (I2C_BUS_CONTEXT)); + if (I2cBusContext == NULL) { +- DEBUG ((EFI_D_ERROR, "I2cBus: there is no enough memory to allocate.\n")); ++ DEBUG ((DEBUG_ERROR, "I2cBus: there is no enough memory to allocate.\n")); + Status = EFI_OUT_OF_RESOURCES; + goto Error; + } +@@ -676,7 +676,7 @@ I2cBusDriverStart ( + NULL + ); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "I2cBus: install private protocol error, Status = %r.\n", Status)); ++ DEBUG ((DEBUG_ERROR, "I2cBus: install private protocol error, Status = %r.\n", Status)); + goto Error; + } + } +@@ -690,7 +690,7 @@ I2cBusDriverStart ( + + Error: + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "I2cBus: Start() function failed, Status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "I2cBus: Start() function failed, Status = %r\n", Status)); + if (ParentDevicePath != NULL) { + gBS->CloseProtocol ( + Controller, +@@ -921,7 +921,7 @@ RegisterI2cDevice ( + // Determine if the device info is valid + // + if ((Device->DeviceGuid == NULL) || (Device->SlaveAddressCount == 0) || (Device->SlaveAddressArray == NULL)) { +- DEBUG ((EFI_D_ERROR, "Invalid EFI_I2C_DEVICE reported by I2c Enumerate protocol.\n")); ++ DEBUG ((DEBUG_ERROR, "Invalid EFI_I2C_DEVICE reported by I2c Enumerate protocol.\n")); + continue; + } + +diff --git a/MdeModulePkg/Bus/I2c/I2cDxe/I2cHost.c b/MdeModulePkg/Bus/I2c/I2cDxe/I2cHost.c +index 95294c9c98..8dec43bcb1 100644 +--- a/MdeModulePkg/Bus/I2c/I2cDxe/I2cHost.c ++++ b/MdeModulePkg/Bus/I2c/I2cDxe/I2cHost.c +@@ -343,7 +343,7 @@ I2cHostDriverStart ( + EFI_OPEN_PROTOCOL_BY_DRIVER + ); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "I2cHost: Open I2C bus configuration error, Status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "I2cHost: Open I2C bus configuration error, Status = %r\n", Status)); + return Status; + } + +@@ -359,7 +359,7 @@ I2cHostDriverStart ( + EFI_OPEN_PROTOCOL_GET_PROTOCOL + ); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "I2cHost: Open I2C master error, Status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "I2cHost: Open I2C master error, Status = %r\n", Status)); + goto Exit; + } + +@@ -368,7 +368,7 @@ I2cHostDriverStart ( + // + I2cHostContext = AllocateZeroPool (sizeof (I2C_HOST_CONTEXT)); + if (I2cHostContext == NULL) { +- DEBUG ((EFI_D_ERROR, "I2cHost: there is no enough memory to allocate.\n")); ++ DEBUG ((DEBUG_ERROR, "I2cHost: there is no enough memory to allocate.\n")); + Status = EFI_OUT_OF_RESOURCES; + goto Exit; + } +@@ -387,7 +387,7 @@ I2cHostDriverStart ( + // + Status = I2cMaster->Reset (I2cMaster); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "I2cHost: I2C controller reset failed!\n")); ++ DEBUG ((DEBUG_ERROR, "I2cHost: I2C controller reset failed!\n")); + goto Exit; + } + +@@ -402,7 +402,7 @@ I2cHostDriverStart ( + &I2cHostContext->I2cEvent + ); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "I2cHost: create complete event error, Status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "I2cHost: create complete event error, Status = %r\n", Status)); + goto Exit; + } + +@@ -417,7 +417,7 @@ I2cHostDriverStart ( + &I2cHostContext->I2cBusConfigurationEvent + ); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "I2cHost: create bus available event error, Status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "I2cHost: create bus available event error, Status = %r\n", Status)); + goto Exit; + } + +@@ -438,7 +438,7 @@ I2cHostDriverStart ( + ); + Exit: + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "I2cHost: Start() function failed, Status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "I2cHost: Start() function failed, Status = %r\n", Status)); + if (I2cBusConfigurationManagement != NULL) { + gBS->CloseProtocol ( + Controller, +@@ -514,7 +514,7 @@ I2cHostDriverStop ( + + TplPrevious = EfiGetCurrentTpl (); + if (TplPrevious > TPL_I2C_SYNC) { +- DEBUG ((EFI_D_ERROR, "I2cHost: TPL %d is too high in Stop.\n", TplPrevious)); ++ DEBUG ((DEBUG_ERROR, "I2cHost: TPL %d is too high in Stop.\n", TplPrevious)); + return EFI_DEVICE_ERROR; + } + +@@ -982,7 +982,7 @@ I2cHostQueueRequest ( + // + TplPrevious = EfiGetCurrentTpl (); + if ((TplPrevious > TPL_I2C_SYNC) || ((Event == NULL) && (TplPrevious > TPL_CALLBACK))) { +- DEBUG ((EFI_D_ERROR, "ERROR - TPL %d is too high!\n", TplPrevious)); ++ DEBUG ((DEBUG_ERROR, "ERROR - TPL %d is too high!\n", TplPrevious)); + return EFI_INVALID_PARAMETER; + } + +@@ -991,7 +991,7 @@ I2cHostQueueRequest ( + // + I2cRequest = AllocateZeroPool (sizeof (I2C_REQUEST)); + if (I2cRequest == NULL) { +- DEBUG ((EFI_D_ERROR, "WARNING - Failed to allocate I2C_REQUEST!\n")); ++ DEBUG ((DEBUG_ERROR, "WARNING - Failed to allocate I2C_REQUEST!\n")); + return EFI_OUT_OF_RESOURCES; + } + +diff --git a/MdeModulePkg/Bus/Pci/EhciDxe/Ehci.c b/MdeModulePkg/Bus/Pci/EhciDxe/Ehci.c +index bdd9c27db5..0e41ee17ec 100644 +--- a/MdeModulePkg/Bus/Pci/EhciDxe/Ehci.c ++++ b/MdeModulePkg/Bus/Pci/EhciDxe/Ehci.c +@@ -85,7 +85,7 @@ EhcGetCapability ( + *PortNumber = (UINT8) (Ehc->HcStructParams & HCSP_NPORTS); + *Is64BitCapable = (UINT8) Ehc->Support64BitDma; + +- DEBUG ((EFI_D_INFO, "EhcGetCapability: %d ports, 64 bit %d\n", *PortNumber, *Is64BitCapable)); ++ DEBUG ((DEBUG_INFO, "EhcGetCapability: %d ports, 64 bit %d\n", *PortNumber, *Is64BitCapable)); + + gBS->RestoreTPL (OldTpl); + return EFI_SUCCESS; +@@ -181,7 +181,7 @@ EhcReset ( + } + + ON_EXIT: +- DEBUG ((EFI_D_INFO, "EhcReset: exit status %r\n", Status)); ++ DEBUG ((DEBUG_INFO, "EhcReset: exit status %r\n", Status)); + gBS->RestoreTPL (OldTpl); + return Status; + } +@@ -225,7 +225,7 @@ EhcGetState ( + + gBS->RestoreTPL (OldTpl); + +- DEBUG ((EFI_D_INFO, "EhcGetState: current state %d\n", *State)); ++ DEBUG ((DEBUG_INFO, "EhcGetState: current state %d\n", *State)); + return EFI_SUCCESS; + } + +@@ -299,7 +299,7 @@ EhcSetState ( + Status = EFI_INVALID_PARAMETER; + } + +- DEBUG ((EFI_D_INFO, "EhcSetState: exit status %r\n", Status)); ++ DEBUG ((DEBUG_INFO, "EhcSetState: exit status %r\n", Status)); + gBS->RestoreTPL (OldTpl); + return Status; + } +@@ -470,7 +470,7 @@ EhcSetRootHubPortFeature ( + Status = EhcRunHC (Ehc, EHC_GENERIC_TIMEOUT); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_INFO, "EhcSetRootHubPortFeature :failed to start HC - %r\n", Status)); ++ DEBUG ((DEBUG_INFO, "EhcSetRootHubPortFeature :failed to start HC - %r\n", Status)); + break; + } + } +@@ -503,7 +503,7 @@ EhcSetRootHubPortFeature ( + } + + ON_EXIT: +- DEBUG ((EFI_D_INFO, "EhcSetRootHubPortFeature: exit status %r\n", Status)); ++ DEBUG ((DEBUG_INFO, "EhcSetRootHubPortFeature: exit status %r\n", Status)); + + gBS->RestoreTPL (OldTpl); + return Status; +@@ -638,7 +638,7 @@ EhcClearRootHubPortFeature ( + } + + ON_EXIT: +- DEBUG ((EFI_D_INFO, "EhcClearRootHubPortFeature: exit status %r\n", Status)); ++ DEBUG ((DEBUG_INFO, "EhcClearRootHubPortFeature: exit status %r\n", Status)); + gBS->RestoreTPL (OldTpl); + return Status; + } +@@ -729,7 +729,7 @@ EhcControlTransfer ( + *TransferResult = EFI_USB_ERR_SYSTEM; + + if (EhcIsHalt (Ehc) || EhcIsSysError (Ehc)) { +- DEBUG ((EFI_D_ERROR, "EhcControlTransfer: HC halted at entrance\n")); ++ DEBUG ((DEBUG_ERROR, "EhcControlTransfer: HC halted at entrance\n")); + + EhcAckAllInterrupt (Ehc); + goto ON_EXIT; +@@ -765,7 +765,7 @@ EhcControlTransfer ( + ); + + if (Urb == NULL) { +- DEBUG ((EFI_D_ERROR, "EhcControlTransfer: failed to create URB")); ++ DEBUG ((DEBUG_ERROR, "EhcControlTransfer: failed to create URB")); + + Status = EFI_OUT_OF_RESOURCES; + goto ON_EXIT; +@@ -794,7 +794,7 @@ ON_EXIT: + gBS->RestoreTPL (OldTpl); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "EhcControlTransfer: error - %r, transfer - %x\n", Status, *TransferResult)); ++ DEBUG ((DEBUG_ERROR, "EhcControlTransfer: error - %r, transfer - %x\n", Status, *TransferResult)); + } + + return Status; +@@ -878,7 +878,7 @@ EhcBulkTransfer ( + Status = EFI_DEVICE_ERROR; + + if (EhcIsHalt (Ehc) || EhcIsSysError (Ehc)) { +- DEBUG ((EFI_D_ERROR, "EhcBulkTransfer: HC is halted\n")); ++ DEBUG ((DEBUG_ERROR, "EhcBulkTransfer: HC is halted\n")); + + EhcAckAllInterrupt (Ehc); + goto ON_EXIT; +@@ -908,7 +908,7 @@ EhcBulkTransfer ( + ); + + if (Urb == NULL) { +- DEBUG ((EFI_D_ERROR, "EhcBulkTransfer: failed to create URB\n")); ++ DEBUG ((DEBUG_ERROR, "EhcBulkTransfer: failed to create URB\n")); + + Status = EFI_OUT_OF_RESOURCES; + goto ON_EXIT; +@@ -934,7 +934,7 @@ ON_EXIT: + gBS->RestoreTPL (OldTpl); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "EhcBulkTransfer: error - %r, transfer - %x\n", Status, *TransferResult)); ++ DEBUG ((DEBUG_ERROR, "EhcBulkTransfer: error - %r, transfer - %x\n", Status, *TransferResult)); + } + + return Status; +@@ -1023,14 +1023,14 @@ EhcAsyncInterruptTransfer ( + if (!IsNewTransfer) { + Status = EhciDelAsyncIntTransfer (Ehc, DeviceAddress, EndPointAddress, DataToggle); + +- DEBUG ((EFI_D_INFO, "EhcAsyncInterruptTransfer: remove old transfer - %r\n", Status)); ++ DEBUG ((DEBUG_INFO, "EhcAsyncInterruptTransfer: remove old transfer - %r\n", Status)); + goto ON_EXIT; + } + + Status = EFI_SUCCESS; + + if (EhcIsHalt (Ehc) || EhcIsSysError (Ehc)) { +- DEBUG ((EFI_D_ERROR, "EhcAsyncInterruptTransfer: HC is halt\n")); ++ DEBUG ((DEBUG_ERROR, "EhcAsyncInterruptTransfer: HC is halt\n")); + EhcAckAllInterrupt (Ehc); + + Status = EFI_DEVICE_ERROR; +@@ -1139,7 +1139,7 @@ EhcSyncInterruptTransfer ( + Status = EFI_DEVICE_ERROR; + + if (EhcIsHalt (Ehc) || EhcIsSysError (Ehc)) { +- DEBUG ((EFI_D_ERROR, "EhcSyncInterruptTransfer: HC is halt\n")); ++ DEBUG ((DEBUG_ERROR, "EhcSyncInterruptTransfer: HC is halt\n")); + + EhcAckAllInterrupt (Ehc); + goto ON_EXIT; +@@ -1165,7 +1165,7 @@ EhcSyncInterruptTransfer ( + ); + + if (Urb == NULL) { +- DEBUG ((EFI_D_ERROR, "EhcSyncInterruptTransfer: failed to create URB\n")); ++ DEBUG ((DEBUG_ERROR, "EhcSyncInterruptTransfer: failed to create URB\n")); + + Status = EFI_OUT_OF_RESOURCES; + goto ON_EXIT; +@@ -1189,7 +1189,7 @@ ON_EXIT: + gBS->RestoreTPL (OldTpl); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "EhcSyncInterruptTransfer: error - %r, transfer - %x\n", Status, *TransferResult)); ++ DEBUG ((DEBUG_ERROR, "EhcSyncInterruptTransfer: error - %r, transfer - %x\n", Status, *TransferResult)); + } + + return Status; +@@ -1562,7 +1562,7 @@ EhcCreateUsb2Hc ( + Ehc->HcCapParams = EhcReadCapRegister (Ehc, EHC_HCCPARAMS_OFFSET); + Ehc->CapLen = EhcReadCapRegister (Ehc, EHC_CAPLENGTH_OFFSET) & 0x0FF; + +- DEBUG ((EFI_D_INFO, "EhcCreateUsb2Hc: capability length %d\n", Ehc->CapLen)); ++ DEBUG ((DEBUG_INFO, "EhcCreateUsb2Hc: capability length %d\n", Ehc->CapLen)); + + // + // EHCI Controllers with a CapLen of 0 are ignored. +@@ -1723,7 +1723,7 @@ EhcDriverBindingStart ( + } + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "EhcDriverBindingStart: failed to enable controller\n")); ++ DEBUG ((DEBUG_ERROR, "EhcDriverBindingStart: failed to enable controller\n")); + goto CLOSE_PCIIO; + } + +@@ -1834,7 +1834,7 @@ EhcDriverBindingStart ( + Ehc = EhcCreateUsb2Hc (PciIo, HcDevicePath, OriginalPciAttributes); + + if (Ehc == NULL) { +- DEBUG ((EFI_D_ERROR, "EhcDriverBindingStart: failed to create USB2_HC\n")); ++ DEBUG ((DEBUG_ERROR, "EhcDriverBindingStart: failed to create USB2_HC\n")); + + Status = EFI_OUT_OF_RESOURCES; + goto CLOSE_PCIIO; +@@ -1854,7 +1854,7 @@ EhcDriverBindingStart ( + if (!EFI_ERROR (Status)) { + Ehc->Support64BitDma = TRUE; + } else { +- DEBUG ((EFI_D_WARN, ++ DEBUG ((DEBUG_WARN, + "%a: failed to enable 64-bit DMA on 64-bit capable controller @ %p (%r)\n", + __FUNCTION__, Controller, Status)); + } +@@ -1868,7 +1868,7 @@ EhcDriverBindingStart ( + ); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "EhcDriverBindingStart: failed to install USB2_HC Protocol\n")); ++ DEBUG ((DEBUG_ERROR, "EhcDriverBindingStart: failed to install USB2_HC Protocol\n")); + goto FREE_POOL; + } + +@@ -1887,7 +1887,7 @@ EhcDriverBindingStart ( + Status = EhcInitHC (Ehc); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "EhcDriverBindingStart: failed to init host controller\n")); ++ DEBUG ((DEBUG_ERROR, "EhcDriverBindingStart: failed to init host controller\n")); + goto UNINSTALL_USBHC; + } + +@@ -1897,7 +1897,7 @@ EhcDriverBindingStart ( + Status = gBS->SetTimer (Ehc->PollTimer, TimerPeriodic, EHC_ASYNC_POLL_INTERVAL); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "EhcDriverBindingStart: failed to start async interrupt monitor\n")); ++ DEBUG ((DEBUG_ERROR, "EhcDriverBindingStart: failed to start async interrupt monitor\n")); + + EhcHaltHC (Ehc, EHC_GENERIC_TIMEOUT); + goto UNINSTALL_USBHC; +@@ -1938,7 +1938,7 @@ EhcDriverBindingStart ( + ); + + +- DEBUG ((EFI_D_INFO, "EhcDriverBindingStart: EHCI started for controller @ %p\n", Controller)); ++ DEBUG ((DEBUG_INFO, "EhcDriverBindingStart: EHCI started for controller @ %p\n", Controller)); + return EFI_SUCCESS; + + UNINSTALL_USBHC: +@@ -2083,4 +2083,3 @@ EhcDriverBindingStop ( + + return EFI_SUCCESS; + } +- +diff --git a/MdeModulePkg/Bus/Pci/EhciDxe/EhciDebug.c b/MdeModulePkg/Bus/Pci/EhciDxe/EhciDebug.c +index db0e2c6d39..55cbb68570 100644 +--- a/MdeModulePkg/Bus/Pci/EhciDxe/EhciDebug.c ++++ b/MdeModulePkg/Bus/Pci/EhciDxe/EhciDebug.c +@@ -23,38 +23,38 @@ EhcDumpStatus ( + ) + { + if (EHC_BIT_IS_SET (State, QTD_STAT_DO_PING)) { +- DEBUG ((EFI_D_VERBOSE, " Do_Ping")); ++ DEBUG ((DEBUG_VERBOSE, " Do_Ping")); + } else { +- DEBUG ((EFI_D_VERBOSE, " Do_Out")); ++ DEBUG ((DEBUG_VERBOSE, " Do_Out")); + } + + if (EHC_BIT_IS_SET (State, QTD_STAT_DO_CS)) { +- DEBUG ((EFI_D_VERBOSE, " Do_CS")); ++ DEBUG ((DEBUG_VERBOSE, " Do_CS")); + } else { +- DEBUG ((EFI_D_VERBOSE, " Do_SS")); ++ DEBUG ((DEBUG_VERBOSE, " Do_SS")); + } + + if (EHC_BIT_IS_SET (State, QTD_STAT_TRANS_ERR)) { +- DEBUG ((EFI_D_VERBOSE, " Transfer_Error")); ++ DEBUG ((DEBUG_VERBOSE, " Transfer_Error")); + } + + if (EHC_BIT_IS_SET (State, QTD_STAT_BABBLE_ERR)) { +- DEBUG ((EFI_D_VERBOSE, " Babble_Error")); ++ DEBUG ((DEBUG_VERBOSE, " Babble_Error")); + } + + if (EHC_BIT_IS_SET (State, QTD_STAT_BUFF_ERR)) { +- DEBUG ((EFI_D_VERBOSE, " Buffer_Error")); ++ DEBUG ((DEBUG_VERBOSE, " Buffer_Error")); + } + + if (EHC_BIT_IS_SET (State, QTD_STAT_HALTED)) { +- DEBUG ((EFI_D_VERBOSE, " Halted")); ++ DEBUG ((DEBUG_VERBOSE, " Halted")); + } + + if (EHC_BIT_IS_SET (State, QTD_STAT_ACTIVE)) { +- DEBUG ((EFI_D_VERBOSE, " Active")); ++ DEBUG ((DEBUG_VERBOSE, " Active")); + } + +- DEBUG ((EFI_D_VERBOSE, "\n")); ++ DEBUG ((DEBUG_VERBOSE, "\n")); + } + + +@@ -75,37 +75,37 @@ EhcDumpQtd ( + UINTN Index; + + if (Msg != NULL) { +- DEBUG ((EFI_D_VERBOSE, Msg)); ++ DEBUG ((DEBUG_VERBOSE, Msg)); + } + +- DEBUG ((EFI_D_VERBOSE, "Queue TD @ 0x%p, data length %d\n", Qtd, (UINT32)Qtd->DataLen)); ++ DEBUG ((DEBUG_VERBOSE, "Queue TD @ 0x%p, data length %d\n", Qtd, (UINT32)Qtd->DataLen)); + + QtdHw = &Qtd->QtdHw; + +- DEBUG ((EFI_D_VERBOSE, "Next QTD : %x\n", QtdHw->NextQtd)); +- DEBUG ((EFI_D_VERBOSE, "AltNext QTD : %x\n", QtdHw->AltNext)); +- DEBUG ((EFI_D_VERBOSE, "Status : %x\n", QtdHw->Status)); ++ DEBUG ((DEBUG_VERBOSE, "Next QTD : %x\n", QtdHw->NextQtd)); ++ DEBUG ((DEBUG_VERBOSE, "AltNext QTD : %x\n", QtdHw->AltNext)); ++ DEBUG ((DEBUG_VERBOSE, "Status : %x\n", QtdHw->Status)); + EhcDumpStatus (QtdHw->Status); + + if (QtdHw->Pid == QTD_PID_SETUP) { +- DEBUG ((EFI_D_VERBOSE, "PID : Setup\n")); ++ DEBUG ((DEBUG_VERBOSE, "PID : Setup\n")); + + } else if (QtdHw->Pid == QTD_PID_INPUT) { +- DEBUG ((EFI_D_VERBOSE, "PID : IN\n")); ++ DEBUG ((DEBUG_VERBOSE, "PID : IN\n")); + + } else if (QtdHw->Pid == QTD_PID_OUTPUT) { +- DEBUG ((EFI_D_VERBOSE, "PID : OUT\n")); ++ DEBUG ((DEBUG_VERBOSE, "PID : OUT\n")); + + } + +- DEBUG ((EFI_D_VERBOSE, "Error Count : %d\n", QtdHw->ErrCnt)); +- DEBUG ((EFI_D_VERBOSE, "Current Page : %d\n", QtdHw->CurPage)); +- DEBUG ((EFI_D_VERBOSE, "IOC : %d\n", QtdHw->Ioc)); +- DEBUG ((EFI_D_VERBOSE, "Total Bytes : %d\n", QtdHw->TotalBytes)); +- DEBUG ((EFI_D_VERBOSE, "Data Toggle : %d\n", QtdHw->DataToggle)); ++ DEBUG ((DEBUG_VERBOSE, "Error Count : %d\n", QtdHw->ErrCnt)); ++ DEBUG ((DEBUG_VERBOSE, "Current Page : %d\n", QtdHw->CurPage)); ++ DEBUG ((DEBUG_VERBOSE, "IOC : %d\n", QtdHw->Ioc)); ++ DEBUG ((DEBUG_VERBOSE, "Total Bytes : %d\n", QtdHw->TotalBytes)); ++ DEBUG ((DEBUG_VERBOSE, "Data Toggle : %d\n", QtdHw->DataToggle)); + + for (Index = 0; Index < 5; Index++) { +- DEBUG ((EFI_D_VERBOSE, "Page[%d] : 0x%x\n", (UINT32)Index, QtdHw->Page[Index])); ++ DEBUG ((DEBUG_VERBOSE, "Page[%d] : 0x%x\n", (UINT32)Index, QtdHw->Page[Index])); + } + } + +@@ -131,60 +131,60 @@ EhcDumpQh ( + UINTN Index; + + if (Msg != NULL) { +- DEBUG ((EFI_D_VERBOSE, Msg)); ++ DEBUG ((DEBUG_VERBOSE, Msg)); + } + +- DEBUG ((EFI_D_VERBOSE, "Queue head @ 0x%p, interval %ld, next qh %p\n", ++ DEBUG ((DEBUG_VERBOSE, "Queue head @ 0x%p, interval %ld, next qh %p\n", + Qh, (UINT64)Qh->Interval, Qh->NextQh)); + + QhHw = &Qh->QhHw; + +- DEBUG ((EFI_D_VERBOSE, "Hoziontal link: %x\n", QhHw->HorizonLink)); +- DEBUG ((EFI_D_VERBOSE, "Device address: %d\n", QhHw->DeviceAddr)); +- DEBUG ((EFI_D_VERBOSE, "Inactive : %d\n", QhHw->Inactive)); +- DEBUG ((EFI_D_VERBOSE, "EP number : %d\n", QhHw->EpNum)); +- DEBUG ((EFI_D_VERBOSE, "EP speed : %d\n", QhHw->EpSpeed)); +- DEBUG ((EFI_D_VERBOSE, "DT control : %d\n", QhHw->DtCtrl)); +- DEBUG ((EFI_D_VERBOSE, "Reclaim head : %d\n", QhHw->ReclaimHead)); +- DEBUG ((EFI_D_VERBOSE, "Max packet len: %d\n", QhHw->MaxPacketLen)); +- DEBUG ((EFI_D_VERBOSE, "Ctrl EP : %d\n", QhHw->CtrlEp)); +- DEBUG ((EFI_D_VERBOSE, "Nak reload : %d\n", QhHw->NakReload)); +- +- DEBUG ((EFI_D_VERBOSE, "SMask : %x\n", QhHw->SMask)); +- DEBUG ((EFI_D_VERBOSE, "CMask : %x\n", QhHw->CMask)); +- DEBUG ((EFI_D_VERBOSE, "Hub address : %d\n", QhHw->HubAddr)); +- DEBUG ((EFI_D_VERBOSE, "Hub port : %d\n", QhHw->PortNum)); +- DEBUG ((EFI_D_VERBOSE, "Multiplier : %d\n", QhHw->Multiplier)); +- +- DEBUG ((EFI_D_VERBOSE, "Cur QTD : %x\n", QhHw->CurQtd)); +- +- DEBUG ((EFI_D_VERBOSE, "Next QTD : %x\n", QhHw->NextQtd)); +- DEBUG ((EFI_D_VERBOSE, "AltNext QTD : %x\n", QhHw->AltQtd)); +- DEBUG ((EFI_D_VERBOSE, "Status : %x\n", QhHw->Status)); ++ DEBUG ((DEBUG_VERBOSE, "Hoziontal link: %x\n", QhHw->HorizonLink)); ++ DEBUG ((DEBUG_VERBOSE, "Device address: %d\n", QhHw->DeviceAddr)); ++ DEBUG ((DEBUG_VERBOSE, "Inactive : %d\n", QhHw->Inactive)); ++ DEBUG ((DEBUG_VERBOSE, "EP number : %d\n", QhHw->EpNum)); ++ DEBUG ((DEBUG_VERBOSE, "EP speed : %d\n", QhHw->EpSpeed)); ++ DEBUG ((DEBUG_VERBOSE, "DT control : %d\n", QhHw->DtCtrl)); ++ DEBUG ((DEBUG_VERBOSE, "Reclaim head : %d\n", QhHw->ReclaimHead)); ++ DEBUG ((DEBUG_VERBOSE, "Max packet len: %d\n", QhHw->MaxPacketLen)); ++ DEBUG ((DEBUG_VERBOSE, "Ctrl EP : %d\n", QhHw->CtrlEp)); ++ DEBUG ((DEBUG_VERBOSE, "Nak reload : %d\n", QhHw->NakReload)); ++ ++ DEBUG ((DEBUG_VERBOSE, "SMask : %x\n", QhHw->SMask)); ++ DEBUG ((DEBUG_VERBOSE, "CMask : %x\n", QhHw->CMask)); ++ DEBUG ((DEBUG_VERBOSE, "Hub address : %d\n", QhHw->HubAddr)); ++ DEBUG ((DEBUG_VERBOSE, "Hub port : %d\n", QhHw->PortNum)); ++ DEBUG ((DEBUG_VERBOSE, "Multiplier : %d\n", QhHw->Multiplier)); ++ ++ DEBUG ((DEBUG_VERBOSE, "Cur QTD : %x\n", QhHw->CurQtd)); ++ ++ DEBUG ((DEBUG_VERBOSE, "Next QTD : %x\n", QhHw->NextQtd)); ++ DEBUG ((DEBUG_VERBOSE, "AltNext QTD : %x\n", QhHw->AltQtd)); ++ DEBUG ((DEBUG_VERBOSE, "Status : %x\n", QhHw->Status)); + + EhcDumpStatus (QhHw->Status); + + if (QhHw->Pid == QTD_PID_SETUP) { +- DEBUG ((EFI_D_VERBOSE, "PID : Setup\n")); ++ DEBUG ((DEBUG_VERBOSE, "PID : Setup\n")); + + } else if (QhHw->Pid == QTD_PID_INPUT) { +- DEBUG ((EFI_D_VERBOSE, "PID : IN\n")); ++ DEBUG ((DEBUG_VERBOSE, "PID : IN\n")); + + } else if (QhHw->Pid == QTD_PID_OUTPUT) { +- DEBUG ((EFI_D_VERBOSE, "PID : OUT\n")); ++ DEBUG ((DEBUG_VERBOSE, "PID : OUT\n")); + } + +- DEBUG ((EFI_D_VERBOSE, "Error Count : %d\n", QhHw->ErrCnt)); +- DEBUG ((EFI_D_VERBOSE, "Current Page : %d\n", QhHw->CurPage)); +- DEBUG ((EFI_D_VERBOSE, "IOC : %d\n", QhHw->Ioc)); +- DEBUG ((EFI_D_VERBOSE, "Total Bytes : %d\n", QhHw->TotalBytes)); +- DEBUG ((EFI_D_VERBOSE, "Data Toggle : %d\n", QhHw->DataToggle)); ++ DEBUG ((DEBUG_VERBOSE, "Error Count : %d\n", QhHw->ErrCnt)); ++ DEBUG ((DEBUG_VERBOSE, "Current Page : %d\n", QhHw->CurPage)); ++ DEBUG ((DEBUG_VERBOSE, "IOC : %d\n", QhHw->Ioc)); ++ DEBUG ((DEBUG_VERBOSE, "Total Bytes : %d\n", QhHw->TotalBytes)); ++ DEBUG ((DEBUG_VERBOSE, "Data Toggle : %d\n", QhHw->DataToggle)); + + for (Index = 0; Index < 5; Index++) { +- DEBUG ((EFI_D_VERBOSE, "Page[%d] : 0x%x\n", Index, QhHw->Page[Index])); ++ DEBUG ((DEBUG_VERBOSE, "Page[%d] : 0x%x\n", Index, QhHw->Page[Index])); + } + +- DEBUG ((EFI_D_VERBOSE, "\n")); ++ DEBUG ((DEBUG_VERBOSE, "\n")); + + BASE_LIST_FOR_EACH (Entry, &Qh->Qtds) { + Qtd = EFI_LIST_CONTAINER (Entry, EHC_QTD, QtdList); +@@ -214,13 +214,11 @@ EhcDumpBuf ( + + for (Index = 0; Index < Len; Index++) { + if (Index % 16 == 0) { +- DEBUG ((EFI_D_VERBOSE,"\n")); ++ DEBUG ((DEBUG_VERBOSE,"\n")); + } + +- DEBUG ((EFI_D_VERBOSE, "%02x ", Buf[Index])); ++ DEBUG ((DEBUG_VERBOSE, "%02x ", Buf[Index])); + } + +- DEBUG ((EFI_D_VERBOSE, "\n")); ++ DEBUG ((DEBUG_VERBOSE, "\n")); + } +- +- +diff --git a/MdeModulePkg/Bus/Pci/EhciDxe/EhciReg.c b/MdeModulePkg/Bus/Pci/EhciDxe/EhciReg.c +index ca63736f20..7bd01c1aee 100644 +--- a/MdeModulePkg/Bus/Pci/EhciDxe/EhciReg.c ++++ b/MdeModulePkg/Bus/Pci/EhciDxe/EhciReg.c +@@ -40,7 +40,7 @@ EhcReadCapRegister ( + ); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "EhcReadCapRegister: Pci Io read error - %r at %d\n", Status, Offset)); ++ DEBUG ((DEBUG_ERROR, "EhcReadCapRegister: Pci Io read error - %r at %d\n", Status, Offset)); + Data = 0xFFFF; + } + +@@ -76,7 +76,7 @@ EhcReadDbgRegister ( + ); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "EhcReadDbgRegister: Pci Io read error - %r at %d\n", Status, Offset)); ++ DEBUG ((DEBUG_ERROR, "EhcReadDbgRegister: Pci Io read error - %r at %d\n", Status, Offset)); + Data = 0xFFFF; + } + +@@ -168,7 +168,7 @@ EhcReadOpReg ( + ); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "EhcReadOpReg: Pci Io Read error - %r at %d\n", Status, Offset)); ++ DEBUG ((DEBUG_ERROR, "EhcReadOpReg: Pci Io Read error - %r at %d\n", Status, Offset)); + Data = 0xFFFF; + } + +@@ -205,7 +205,7 @@ EhcWriteOpReg ( + ); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "EhcWriteOpReg: Pci Io Write error: %r at %d\n", Status, Offset)); ++ DEBUG ((DEBUG_ERROR, "EhcWriteOpReg: Pci Io Write error: %r at %d\n", Status, Offset)); + } + } + +@@ -310,7 +310,7 @@ EhcClearLegacySupport ( + UINT32 Value; + UINT32 TimeOut; + +- DEBUG ((EFI_D_INFO, "EhcClearLegacySupport: called to clear legacy support\n")); ++ DEBUG ((DEBUG_INFO, "EhcClearLegacySupport: called to clear legacy support\n")); + + PciIo = Ehc->PciIo; + ExtendCap = (Ehc->HcCapParams >> 8) & 0xFF; +@@ -654,14 +654,14 @@ EhcInitHC ( + Status = EhcEnablePeriodSchd (Ehc, EHC_GENERIC_TIMEOUT); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "EhcInitHC: failed to enable period schedule\n")); ++ DEBUG ((DEBUG_ERROR, "EhcInitHC: failed to enable period schedule\n")); + return Status; + } + + Status = EhcEnableAsyncSchd (Ehc, EHC_GENERIC_TIMEOUT); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "EhcInitHC: failed to enable async schedule\n")); ++ DEBUG ((DEBUG_ERROR, "EhcInitHC: failed to enable async schedule\n")); + return Status; + } + +diff --git a/MdeModulePkg/Bus/Pci/EhciDxe/EhciSched.c b/MdeModulePkg/Bus/Pci/EhciDxe/EhciSched.c +index 5fe7cf4669..34ee40c4bb 100644 +--- a/MdeModulePkg/Bus/Pci/EhciDxe/EhciSched.c ++++ b/MdeModulePkg/Bus/Pci/EhciDxe/EhciSched.c +@@ -377,7 +377,7 @@ EhcUnlinkQhFromAsync ( + Status = EhcSetAndWaitDoorBell (Ehc, EHC_GENERIC_TIMEOUT); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "EhcUnlinkQhFromAsync: Failed to synchronize with doorbell\n")); ++ DEBUG ((DEBUG_ERROR, "EhcUnlinkQhFromAsync: Failed to synchronize with doorbell\n")); + } + } + +@@ -636,13 +636,13 @@ EhcCheckUrbResult ( + // + PciAddr = UsbHcGetPciAddressForHostMem (Ehc->MemPool, Ehc->ShortReadStop, sizeof (EHC_QTD)); + if (QtdHw->AltNext == QTD_LINK (PciAddr, FALSE)) { +- DEBUG ((EFI_D_VERBOSE, "EhcCheckUrbResult: Short packet read, break\n")); ++ DEBUG ((DEBUG_VERBOSE, "EhcCheckUrbResult: Short packet read, break\n")); + + Finished = TRUE; + goto ON_EXIT; + } + +- DEBUG ((EFI_D_VERBOSE, "EhcCheckUrbResult: Short packet read, continue\n")); ++ DEBUG ((DEBUG_VERBOSE, "EhcCheckUrbResult: Short packet read, continue\n")); + } + } + } +@@ -713,13 +713,13 @@ EhcExecTransfer ( + } + + if (!Finished) { +- DEBUG ((EFI_D_ERROR, "EhcExecTransfer: transfer not finished in %dms\n", (UINT32)TimeOut)); ++ DEBUG ((DEBUG_ERROR, "EhcExecTransfer: transfer not finished in %dms\n", (UINT32)TimeOut)); + EhcDumpQh (Urb->Qh, NULL, FALSE); + + Status = EFI_TIMEOUT; + + } else if (Urb->Result != EFI_USB_NOERROR) { +- DEBUG ((EFI_D_ERROR, "EhcExecTransfer: transfer failed with %x\n", Urb->Result)); ++ DEBUG ((DEBUG_ERROR, "EhcExecTransfer: transfer failed with %x\n", Urb->Result)); + EhcDumpQh (Urb->Qh, NULL, FALSE); + + Status = EFI_DEVICE_ERROR; +@@ -1069,7 +1069,7 @@ EhcMonitorAsyncRequests ( + // + Status = EhcFlushAsyncIntMap (Ehc, Urb); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "EhcMonitorAsyncRequests: Fail to Flush AsyncInt Mapped Memeory\n")); ++ DEBUG ((DEBUG_ERROR, "EhcMonitorAsyncRequests: Fail to Flush AsyncInt Mapped Memeory\n")); + } + + // +diff --git a/MdeModulePkg/Bus/Pci/EhciDxe/UsbHcMem.c b/MdeModulePkg/Bus/Pci/EhciDxe/UsbHcMem.c +index 43d0968dca..f39d0b57c0 100644 +--- a/MdeModulePkg/Bus/Pci/EhciDxe/UsbHcMem.c ++++ b/MdeModulePkg/Bus/Pci/EhciDxe/UsbHcMem.c +@@ -470,7 +470,7 @@ UsbHcAllocateMem ( + NewBlock = UsbHcAllocMemBlock (Pool, Pages); + + if (NewBlock == NULL) { +- DEBUG ((EFI_D_ERROR, "UsbHcAllocateMem: failed to allocate block\n")); ++ DEBUG ((DEBUG_ERROR, "UsbHcAllocateMem: failed to allocate block\n")); + return NULL; + } + +diff --git a/MdeModulePkg/Bus/Pci/IdeBusPei/AtapiPeim.c b/MdeModulePkg/Bus/Pci/IdeBusPei/AtapiPeim.c +index 2f888424d9..436d5971d0 100644 +--- a/MdeModulePkg/Bus/Pci/IdeBusPei/AtapiPeim.c ++++ b/MdeModulePkg/Bus/Pci/IdeBusPei/AtapiPeim.c +@@ -76,7 +76,7 @@ AtapiPeimEntry ( + AtapiBlkIoDev->PpiDescriptor2.Guid = &gEfiPeiVirtualBlockIo2PpiGuid; + AtapiBlkIoDev->PpiDescriptor2.Ppi = &AtapiBlkIoDev->AtapiBlkIo2; + +- DEBUG ((EFI_D_INFO, "Atatpi Device Count is %d\n", AtapiBlkIoDev->DeviceCount)); ++ DEBUG ((DEBUG_INFO, "Atatpi Device Count is %d\n", AtapiBlkIoDev->DeviceCount)); + if (AtapiBlkIoDev->DeviceCount != 0) { + Status = PeiServicesInstallPpi (&AtapiBlkIoDev->PpiDescriptor); + if (EFI_ERROR (Status)) { +@@ -189,11 +189,11 @@ AtapiGetBlockDeviceMediaInfo ( + // + // probe media and retrieve latest media information + // +- DEBUG ((EFI_D_INFO, "Atatpi GetInfo DevicePosition is %d\n", AtapiBlkIoDev->DeviceInfo[Index].DevicePosition)); +- DEBUG ((EFI_D_INFO, "Atatpi GetInfo DeviceType is %d\n", AtapiBlkIoDev->DeviceInfo[Index].MediaInfo.DeviceType)); +- DEBUG ((EFI_D_INFO, "Atatpi GetInfo MediaPresent is %d\n", AtapiBlkIoDev->DeviceInfo[Index].MediaInfo.MediaPresent)); +- DEBUG ((EFI_D_INFO, "Atatpi GetInfo BlockSize is 0x%x\n", AtapiBlkIoDev->DeviceInfo[Index].MediaInfo.BlockSize)); +- DEBUG ((EFI_D_INFO, "Atatpi GetInfo LastBlock is 0x%x\n", AtapiBlkIoDev->DeviceInfo[Index].MediaInfo.LastBlock)); ++ DEBUG ((DEBUG_INFO, "Atatpi GetInfo DevicePosition is %d\n", AtapiBlkIoDev->DeviceInfo[Index].DevicePosition)); ++ DEBUG ((DEBUG_INFO, "Atatpi GetInfo DeviceType is %d\n", AtapiBlkIoDev->DeviceInfo[Index].MediaInfo.DeviceType)); ++ DEBUG ((DEBUG_INFO, "Atatpi GetInfo MediaPresent is %d\n", AtapiBlkIoDev->DeviceInfo[Index].MediaInfo.MediaPresent)); ++ DEBUG ((DEBUG_INFO, "Atatpi GetInfo BlockSize is 0x%x\n", AtapiBlkIoDev->DeviceInfo[Index].MediaInfo.BlockSize)); ++ DEBUG ((DEBUG_INFO, "Atatpi GetInfo LastBlock is 0x%x\n", AtapiBlkIoDev->DeviceInfo[Index].MediaInfo.LastBlock)); + + Status = DetectMedia ( + AtapiBlkIoDev, +@@ -205,11 +205,11 @@ AtapiGetBlockDeviceMediaInfo ( + return EFI_DEVICE_ERROR; + } + +- DEBUG ((EFI_D_INFO, "Atatpi GetInfo DevicePosition is %d\n", AtapiBlkIoDev->DeviceInfo[Index].DevicePosition)); +- DEBUG ((EFI_D_INFO, "Atatpi GetInfo DeviceType is %d\n", AtapiBlkIoDev->DeviceInfo[Index].MediaInfo.DeviceType)); +- DEBUG ((EFI_D_INFO, "Atatpi GetInfo MediaPresent is %d\n", AtapiBlkIoDev->DeviceInfo[Index].MediaInfo.MediaPresent)); +- DEBUG ((EFI_D_INFO, "Atatpi GetInfo BlockSize is 0x%x\n", AtapiBlkIoDev->DeviceInfo[Index].MediaInfo.BlockSize)); +- DEBUG ((EFI_D_INFO, "Atatpi GetInfo LastBlock is 0x%x\n", AtapiBlkIoDev->DeviceInfo[Index].MediaInfo.LastBlock)); ++ DEBUG ((DEBUG_INFO, "Atatpi GetInfo DevicePosition is %d\n", AtapiBlkIoDev->DeviceInfo[Index].DevicePosition)); ++ DEBUG ((DEBUG_INFO, "Atatpi GetInfo DeviceType is %d\n", AtapiBlkIoDev->DeviceInfo[Index].MediaInfo.DeviceType)); ++ DEBUG ((DEBUG_INFO, "Atatpi GetInfo MediaPresent is %d\n", AtapiBlkIoDev->DeviceInfo[Index].MediaInfo.MediaPresent)); ++ DEBUG ((DEBUG_INFO, "Atatpi GetInfo BlockSize is 0x%x\n", AtapiBlkIoDev->DeviceInfo[Index].MediaInfo.BlockSize)); ++ DEBUG ((DEBUG_INFO, "Atatpi GetInfo LastBlock is 0x%x\n", AtapiBlkIoDev->DeviceInfo[Index].MediaInfo.LastBlock)); + + // + // Get media info from AtapiBlkIoDev +@@ -549,7 +549,7 @@ AtapiEnumerateDevices ( + // Allow SATA Devices to spin-up. This is needed if + // SEC and PEI phase is too short, for example Release Build. + // +- DEBUG ((EFI_D_INFO, "Delay for %d seconds for SATA devices to spin-up\n", PcdGet16 (PcdSataSpinUpDelayInSecForRecoveryPath))); ++ DEBUG ((DEBUG_INFO, "Delay for %d seconds for SATA devices to spin-up\n", PcdGet16 (PcdSataSpinUpDelayInSecForRecoveryPath))); + MicroSecondDelay (PcdGet16 (PcdSataSpinUpDelayInSecForRecoveryPath) * 1000 * 1000); // + + // +@@ -600,10 +600,10 @@ AtapiEnumerateDevices ( + CopyMem (&(AtapiBlkIoDev->DeviceInfo[DeviceCount].MediaInfo), &MediaInfo, sizeof (MediaInfo)); + CopyMem (&(AtapiBlkIoDev->DeviceInfo[DeviceCount].MediaInfo2), &MediaInfo2, sizeof (MediaInfo2)); + +- DEBUG ((EFI_D_INFO, "Atatpi Device Position is %d\n", DevicePosition)); +- DEBUG ((EFI_D_INFO, "Atatpi DeviceType is %d\n", MediaInfo.DeviceType)); +- DEBUG ((EFI_D_INFO, "Atatpi MediaPresent is %d\n", MediaInfo.MediaPresent)); +- DEBUG ((EFI_D_INFO, "Atatpi BlockSize is 0x%x\n", MediaInfo.BlockSize)); ++ DEBUG ((DEBUG_INFO, "Atatpi Device Position is %d\n", DevicePosition)); ++ DEBUG ((DEBUG_INFO, "Atatpi DeviceType is %d\n", MediaInfo.DeviceType)); ++ DEBUG ((DEBUG_INFO, "Atatpi MediaPresent is %d\n", MediaInfo.MediaPresent)); ++ DEBUG ((DEBUG_INFO, "Atatpi BlockSize is 0x%x\n", MediaInfo.BlockSize)); + + if (EFI_ERROR (Status)) { + AtapiBlkIoDev->DeviceInfo[DeviceCount].MediaInfo.MediaPresent = FALSE; +@@ -1764,7 +1764,7 @@ DetectMedia ( + SenseBuffers, + &SenseCounts + ); +- DEBUG ((EFI_D_INFO, "Atapi Request Sense Count is %d\n", SenseCounts)); ++ DEBUG ((DEBUG_INFO, "Atapi Request Sense Count is %d\n", SenseCounts)); + if (IsDeviceStateUnclear (SenseBuffers, SenseCounts) || IsNoMedia (SenseBuffers, SenseCounts)) { + // + // We are not sure whether the media is present or not, try again +diff --git a/MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpress.c b/MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpress.c +index 62886d5c91..f60c2fcd79 100644 +--- a/MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpress.c ++++ b/MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpress.c +@@ -271,11 +271,11 @@ EnumerateNvmeDevNamespace ( + // + // Dump NvmExpress Identify Namespace Data + // +- DEBUG ((EFI_D_INFO, " == NVME IDENTIFY NAMESPACE [%d] DATA ==\n", NamespaceId)); +- DEBUG ((EFI_D_INFO, " NSZE : 0x%x\n", NamespaceData->Nsze)); +- DEBUG ((EFI_D_INFO, " NCAP : 0x%x\n", NamespaceData->Ncap)); +- DEBUG ((EFI_D_INFO, " NUSE : 0x%x\n", NamespaceData->Nuse)); +- DEBUG ((EFI_D_INFO, " LBAF0.LBADS : 0x%x\n", (NamespaceData->LbaFormat[0].Lbads))); ++ DEBUG ((DEBUG_INFO, " == NVME IDENTIFY NAMESPACE [%d] DATA ==\n", NamespaceId)); ++ DEBUG ((DEBUG_INFO, " NSZE : 0x%x\n", NamespaceData->Nsze)); ++ DEBUG ((DEBUG_INFO, " NCAP : 0x%x\n", NamespaceData->Ncap)); ++ DEBUG ((DEBUG_INFO, " NUSE : 0x%x\n", NamespaceData->Nuse)); ++ DEBUG ((DEBUG_INFO, " LBAF0.LBADS : 0x%x\n", (NamespaceData->LbaFormat[0].Lbads))); + + // + // Build controller name for Component Name (2) protocol. +@@ -906,7 +906,7 @@ NvmExpressDriverBindingStart ( + UINTN Bytes; + EFI_NVM_EXPRESS_PASS_THRU_PROTOCOL *Passthru; + +- DEBUG ((EFI_D_INFO, "NvmExpressDriverBindingStart: start\n")); ++ DEBUG ((DEBUG_INFO, "NvmExpressDriverBindingStart: start\n")); + + Private = NULL; + Passthru = NULL; +@@ -944,7 +944,7 @@ NvmExpressDriverBindingStart ( + Private = AllocateZeroPool (sizeof (NVME_CONTROLLER_PRIVATE_DATA)); + + if (Private == NULL) { +- DEBUG ((EFI_D_ERROR, "NvmExpressDriverBindingStart: allocating pool for Nvme Private Data failed!\n")); ++ DEBUG ((DEBUG_ERROR, "NvmExpressDriverBindingStart: allocating pool for Nvme Private Data failed!\n")); + Status = EFI_OUT_OF_RESOURCES; + goto Exit; + } +@@ -1084,7 +1084,7 @@ NvmExpressDriverBindingStart ( + } + } + +- DEBUG ((EFI_D_INFO, "NvmExpressDriverBindingStart: end successfully\n")); ++ DEBUG ((DEBUG_INFO, "NvmExpressDriverBindingStart: end successfully\n")); + return EFI_SUCCESS; + + Exit: +@@ -1122,7 +1122,7 @@ Exit: + Controller + ); + +- DEBUG ((EFI_D_INFO, "NvmExpressDriverBindingStart: end with %r\n", Status)); ++ DEBUG ((DEBUG_INFO, "NvmExpressDriverBindingStart: end with %r\n", Status)); + + return Status; + } +diff --git a/MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressHci.c b/MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressHci.c +index 450d372b2f..08f9d50ff5 100644 +--- a/MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressHci.c ++++ b/MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressHci.c +@@ -128,13 +128,13 @@ WriteNvmeControllerConfiguration ( + return Status; + } + +- DEBUG ((EFI_D_INFO, "Cc.En: %d\n", Cc->En)); +- DEBUG ((EFI_D_INFO, "Cc.Css: %d\n", Cc->Css)); +- DEBUG ((EFI_D_INFO, "Cc.Mps: %d\n", Cc->Mps)); +- DEBUG ((EFI_D_INFO, "Cc.Ams: %d\n", Cc->Ams)); +- DEBUG ((EFI_D_INFO, "Cc.Shn: %d\n", Cc->Shn)); +- DEBUG ((EFI_D_INFO, "Cc.Iosqes: %d\n", Cc->Iosqes)); +- DEBUG ((EFI_D_INFO, "Cc.Iocqes: %d\n", Cc->Iocqes)); ++ DEBUG ((DEBUG_INFO, "Cc.En: %d\n", Cc->En)); ++ DEBUG ((DEBUG_INFO, "Cc.Css: %d\n", Cc->Css)); ++ DEBUG ((DEBUG_INFO, "Cc.Mps: %d\n", Cc->Mps)); ++ DEBUG ((DEBUG_INFO, "Cc.Ams: %d\n", Cc->Ams)); ++ DEBUG ((DEBUG_INFO, "Cc.Shn: %d\n", Cc->Shn)); ++ DEBUG ((DEBUG_INFO, "Cc.Iosqes: %d\n", Cc->Iosqes)); ++ DEBUG ((DEBUG_INFO, "Cc.Iocqes: %d\n", Cc->Iocqes)); + + return EFI_SUCCESS; + } +@@ -214,8 +214,8 @@ WriteNvmeAdminQueueAttributes ( + return Status; + } + +- DEBUG ((EFI_D_INFO, "Aqa.Asqs: %d\n", Aqa->Asqs)); +- DEBUG ((EFI_D_INFO, "Aqa.Acqs: %d\n", Aqa->Acqs)); ++ DEBUG ((DEBUG_INFO, "Aqa.Asqs: %d\n", Aqa->Asqs)); ++ DEBUG ((DEBUG_INFO, "Aqa.Acqs: %d\n", Aqa->Acqs)); + + return EFI_SUCCESS; + } +@@ -257,7 +257,7 @@ WriteNvmeAdminSubmissionQueueBaseAddress ( + return Status; + } + +- DEBUG ((EFI_D_INFO, "Asq: %lx\n", *Asq)); ++ DEBUG ((DEBUG_INFO, "Asq: %lx\n", *Asq)); + + return EFI_SUCCESS; + } +@@ -300,7 +300,7 @@ WriteNvmeAdminCompletionQueueBaseAddress ( + return Status; + } + +- DEBUG ((EFI_D_INFO, "Acq: %lxh\n", *Acq)); ++ DEBUG ((DEBUG_INFO, "Acq: %lxh\n", *Acq)); + + return EFI_SUCCESS; + } +@@ -379,7 +379,7 @@ NvmeDisableController ( + ); + } + +- DEBUG ((EFI_D_INFO, "NVMe controller is disabled with status [%r].\n", Status)); ++ DEBUG ((DEBUG_INFO, "NVMe controller is disabled with status [%r].\n", Status)); + return Status; + } + +@@ -453,7 +453,7 @@ NvmeEnableController ( + ); + } + +- DEBUG ((EFI_D_INFO, "NVMe controller is enabled with status [%r].\n", Status)); ++ DEBUG ((DEBUG_INFO, "NVMe controller is enabled with status [%r].\n", Status)); + return Status; + } + +@@ -764,7 +764,7 @@ NvmeControllerInit ( + } + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_INFO, "NvmeControllerInit: failed to enable controller\n")); ++ DEBUG ((DEBUG_INFO, "NvmeControllerInit: failed to enable controller\n")); + return Status; + } + +@@ -778,7 +778,7 @@ NvmeControllerInit ( + NULL + ); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_WARN, "NvmeControllerInit: failed to enable 64-bit DMA (%r)\n", Status)); ++ DEBUG ((DEBUG_WARN, "NvmeControllerInit: failed to enable 64-bit DMA (%r)\n", Status)); + } + + // +@@ -790,7 +790,7 @@ NvmeControllerInit ( + } + + if (Private->Cap.Css != 0x01) { +- DEBUG ((EFI_D_INFO, "NvmeControllerInit: the controller doesn't support NVMe command set\n")); ++ DEBUG ((DEBUG_INFO, "NvmeControllerInit: the controller doesn't support NVMe command set\n")); + return EFI_UNSUPPORTED; + } + +@@ -854,15 +854,15 @@ NvmeControllerInit ( + Private->CqBuffer[2] = (NVME_CQ *)(UINTN)(Private->Buffer + 5 * EFI_PAGE_SIZE); + Private->CqBufferPciAddr[2] = (NVME_CQ *)(UINTN)(Private->BufferPciAddr + 5 * EFI_PAGE_SIZE); + +- DEBUG ((EFI_D_INFO, "Private->Buffer = [%016X]\n", (UINT64)(UINTN)Private->Buffer)); +- DEBUG ((EFI_D_INFO, "Admin Submission Queue size (Aqa.Asqs) = [%08X]\n", Aqa.Asqs)); +- DEBUG ((EFI_D_INFO, "Admin Completion Queue size (Aqa.Acqs) = [%08X]\n", Aqa.Acqs)); +- DEBUG ((EFI_D_INFO, "Admin Submission Queue (SqBuffer[0]) = [%016X]\n", Private->SqBuffer[0])); +- DEBUG ((EFI_D_INFO, "Admin Completion Queue (CqBuffer[0]) = [%016X]\n", Private->CqBuffer[0])); +- DEBUG ((EFI_D_INFO, "Sync I/O Submission Queue (SqBuffer[1]) = [%016X]\n", Private->SqBuffer[1])); +- DEBUG ((EFI_D_INFO, "Sync I/O Completion Queue (CqBuffer[1]) = [%016X]\n", Private->CqBuffer[1])); +- DEBUG ((EFI_D_INFO, "Async I/O Submission Queue (SqBuffer[2]) = [%016X]\n", Private->SqBuffer[2])); +- DEBUG ((EFI_D_INFO, "Async I/O Completion Queue (CqBuffer[2]) = [%016X]\n", Private->CqBuffer[2])); ++ DEBUG ((DEBUG_INFO, "Private->Buffer = [%016X]\n", (UINT64)(UINTN)Private->Buffer)); ++ DEBUG ((DEBUG_INFO, "Admin Submission Queue size (Aqa.Asqs) = [%08X]\n", Aqa.Asqs)); ++ DEBUG ((DEBUG_INFO, "Admin Completion Queue size (Aqa.Acqs) = [%08X]\n", Aqa.Acqs)); ++ DEBUG ((DEBUG_INFO, "Admin Submission Queue (SqBuffer[0]) = [%016X]\n", Private->SqBuffer[0])); ++ DEBUG ((DEBUG_INFO, "Admin Completion Queue (CqBuffer[0]) = [%016X]\n", Private->CqBuffer[0])); ++ DEBUG ((DEBUG_INFO, "Sync I/O Submission Queue (SqBuffer[1]) = [%016X]\n", Private->SqBuffer[1])); ++ DEBUG ((DEBUG_INFO, "Sync I/O Completion Queue (CqBuffer[1]) = [%016X]\n", Private->CqBuffer[1])); ++ DEBUG ((DEBUG_INFO, "Async I/O Submission Queue (SqBuffer[2]) = [%016X]\n", Private->SqBuffer[2])); ++ DEBUG ((DEBUG_INFO, "Async I/O Completion Queue (CqBuffer[2]) = [%016X]\n", Private->CqBuffer[2])); + + // + // Program admin queue attributes. +@@ -925,20 +925,20 @@ NvmeControllerInit ( + Sn[20] = 0; + CopyMem (Mn, Private->ControllerData->Mn, sizeof (Private->ControllerData->Mn)); + Mn[40] = 0; +- DEBUG ((EFI_D_INFO, " == NVME IDENTIFY CONTROLLER DATA ==\n")); +- DEBUG ((EFI_D_INFO, " PCI VID : 0x%x\n", Private->ControllerData->Vid)); +- DEBUG ((EFI_D_INFO, " PCI SSVID : 0x%x\n", Private->ControllerData->Ssvid)); +- DEBUG ((EFI_D_INFO, " SN : %a\n", Sn)); +- DEBUG ((EFI_D_INFO, " MN : %a\n", Mn)); +- DEBUG ((EFI_D_INFO, " FR : 0x%x\n", *((UINT64*)Private->ControllerData->Fr))); ++ DEBUG ((DEBUG_INFO, " == NVME IDENTIFY CONTROLLER DATA ==\n")); ++ DEBUG ((DEBUG_INFO, " PCI VID : 0x%x\n", Private->ControllerData->Vid)); ++ DEBUG ((DEBUG_INFO, " PCI SSVID : 0x%x\n", Private->ControllerData->Ssvid)); ++ DEBUG ((DEBUG_INFO, " SN : %a\n", Sn)); ++ DEBUG ((DEBUG_INFO, " MN : %a\n", Mn)); ++ DEBUG ((DEBUG_INFO, " FR : 0x%x\n", *((UINT64*)Private->ControllerData->Fr))); + DEBUG ((DEBUG_INFO, " TNVMCAP (high 8-byte) : 0x%lx\n", *((UINT64*)(Private->ControllerData->Tnvmcap + 8)))); + DEBUG ((DEBUG_INFO, " TNVMCAP (low 8-byte) : 0x%lx\n", *((UINT64*)Private->ControllerData->Tnvmcap))); +- DEBUG ((EFI_D_INFO, " RAB : 0x%x\n", Private->ControllerData->Rab)); +- DEBUG ((EFI_D_INFO, " IEEE : 0x%x\n", *(UINT32*)Private->ControllerData->Ieee_oui)); +- DEBUG ((EFI_D_INFO, " AERL : 0x%x\n", Private->ControllerData->Aerl)); +- DEBUG ((EFI_D_INFO, " SQES : 0x%x\n", Private->ControllerData->Sqes)); +- DEBUG ((EFI_D_INFO, " CQES : 0x%x\n", Private->ControllerData->Cqes)); +- DEBUG ((EFI_D_INFO, " NN : 0x%x\n", Private->ControllerData->Nn)); ++ DEBUG ((DEBUG_INFO, " RAB : 0x%x\n", Private->ControllerData->Rab)); ++ DEBUG ((DEBUG_INFO, " IEEE : 0x%x\n", *(UINT32*)Private->ControllerData->Ieee_oui)); ++ DEBUG ((DEBUG_INFO, " AERL : 0x%x\n", Private->ControllerData->Aerl)); ++ DEBUG ((DEBUG_INFO, " SQES : 0x%x\n", Private->ControllerData->Sqes)); ++ DEBUG ((DEBUG_INFO, " CQES : 0x%x\n", Private->ControllerData->Cqes)); ++ DEBUG ((DEBUG_INFO, " NN : 0x%x\n", Private->ControllerData->Nn)); + + // + // Create two I/O completion queues. +diff --git a/MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressPassthru.c b/MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressPassthru.c +index e9357b1239..a46a098258 100644 +--- a/MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressPassthru.c ++++ b/MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressPassthru.c +@@ -21,80 +21,80 @@ NvmeDumpStatus ( + IN NVME_CQ *Cq + ) + { +- DEBUG ((EFI_D_VERBOSE, "Dump NVMe Completion Entry Status from [0x%x]:\n", Cq)); ++ DEBUG ((DEBUG_VERBOSE, "Dump NVMe Completion Entry Status from [0x%x]:\n", Cq)); + +- DEBUG ((EFI_D_VERBOSE, " SQ Identifier : [0x%x], Phase Tag : [%d], Cmd Identifier : [0x%x]\n", Cq->Sqid, Cq->Pt, Cq->Cid)); ++ DEBUG ((DEBUG_VERBOSE, " SQ Identifier : [0x%x], Phase Tag : [%d], Cmd Identifier : [0x%x]\n", Cq->Sqid, Cq->Pt, Cq->Cid)); + +- DEBUG ((EFI_D_VERBOSE, " NVMe Cmd Execution Result - ")); ++ DEBUG ((DEBUG_VERBOSE, " NVMe Cmd Execution Result - ")); + + switch (Cq->Sct) { + case 0x0: + switch (Cq->Sc) { + case 0x0: +- DEBUG ((EFI_D_VERBOSE, "Successful Completion\n")); ++ DEBUG ((DEBUG_VERBOSE, "Successful Completion\n")); + break; + case 0x1: +- DEBUG ((EFI_D_VERBOSE, "Invalid Command Opcode\n")); ++ DEBUG ((DEBUG_VERBOSE, "Invalid Command Opcode\n")); + break; + case 0x2: +- DEBUG ((EFI_D_VERBOSE, "Invalid Field in Command\n")); ++ DEBUG ((DEBUG_VERBOSE, "Invalid Field in Command\n")); + break; + case 0x3: +- DEBUG ((EFI_D_VERBOSE, "Command ID Conflict\n")); ++ DEBUG ((DEBUG_VERBOSE, "Command ID Conflict\n")); + break; + case 0x4: +- DEBUG ((EFI_D_VERBOSE, "Data Transfer Error\n")); ++ DEBUG ((DEBUG_VERBOSE, "Data Transfer Error\n")); + break; + case 0x5: +- DEBUG ((EFI_D_VERBOSE, "Commands Aborted due to Power Loss Notification\n")); ++ DEBUG ((DEBUG_VERBOSE, "Commands Aborted due to Power Loss Notification\n")); + break; + case 0x6: +- DEBUG ((EFI_D_VERBOSE, "Internal Device Error\n")); ++ DEBUG ((DEBUG_VERBOSE, "Internal Device Error\n")); + break; + case 0x7: +- DEBUG ((EFI_D_VERBOSE, "Command Abort Requested\n")); ++ DEBUG ((DEBUG_VERBOSE, "Command Abort Requested\n")); + break; + case 0x8: +- DEBUG ((EFI_D_VERBOSE, "Command Aborted due to SQ Deletion\n")); ++ DEBUG ((DEBUG_VERBOSE, "Command Aborted due to SQ Deletion\n")); + break; + case 0x9: +- DEBUG ((EFI_D_VERBOSE, "Command Aborted due to Failed Fused Command\n")); ++ DEBUG ((DEBUG_VERBOSE, "Command Aborted due to Failed Fused Command\n")); + break; + case 0xA: +- DEBUG ((EFI_D_VERBOSE, "Command Aborted due to Missing Fused Command\n")); ++ DEBUG ((DEBUG_VERBOSE, "Command Aborted due to Missing Fused Command\n")); + break; + case 0xB: +- DEBUG ((EFI_D_VERBOSE, "Invalid Namespace or Format\n")); ++ DEBUG ((DEBUG_VERBOSE, "Invalid Namespace or Format\n")); + break; + case 0xC: +- DEBUG ((EFI_D_VERBOSE, "Command Sequence Error\n")); ++ DEBUG ((DEBUG_VERBOSE, "Command Sequence Error\n")); + break; + case 0xD: +- DEBUG ((EFI_D_VERBOSE, "Invalid SGL Last Segment Descriptor\n")); ++ DEBUG ((DEBUG_VERBOSE, "Invalid SGL Last Segment Descriptor\n")); + break; + case 0xE: +- DEBUG ((EFI_D_VERBOSE, "Invalid Number of SGL Descriptors\n")); ++ DEBUG ((DEBUG_VERBOSE, "Invalid Number of SGL Descriptors\n")); + break; + case 0xF: +- DEBUG ((EFI_D_VERBOSE, "Data SGL Length Invalid\n")); ++ DEBUG ((DEBUG_VERBOSE, "Data SGL Length Invalid\n")); + break; + case 0x10: +- DEBUG ((EFI_D_VERBOSE, "Metadata SGL Length Invalid\n")); ++ DEBUG ((DEBUG_VERBOSE, "Metadata SGL Length Invalid\n")); + break; + case 0x11: +- DEBUG ((EFI_D_VERBOSE, "SGL Descriptor Type Invalid\n")); ++ DEBUG ((DEBUG_VERBOSE, "SGL Descriptor Type Invalid\n")); + break; + case 0x80: +- DEBUG ((EFI_D_VERBOSE, "LBA Out of Range\n")); ++ DEBUG ((DEBUG_VERBOSE, "LBA Out of Range\n")); + break; + case 0x81: +- DEBUG ((EFI_D_VERBOSE, "Capacity Exceeded\n")); ++ DEBUG ((DEBUG_VERBOSE, "Capacity Exceeded\n")); + break; + case 0x82: +- DEBUG ((EFI_D_VERBOSE, "Namespace Not Ready\n")); ++ DEBUG ((DEBUG_VERBOSE, "Namespace Not Ready\n")); + break; + case 0x83: +- DEBUG ((EFI_D_VERBOSE, "Reservation Conflict\n")); ++ DEBUG ((DEBUG_VERBOSE, "Reservation Conflict\n")); + break; + } + break; +@@ -102,61 +102,61 @@ NvmeDumpStatus ( + case 0x1: + switch (Cq->Sc) { + case 0x0: +- DEBUG ((EFI_D_VERBOSE, "Completion Queue Invalid\n")); ++ DEBUG ((DEBUG_VERBOSE, "Completion Queue Invalid\n")); + break; + case 0x1: +- DEBUG ((EFI_D_VERBOSE, "Invalid Queue Identifier\n")); ++ DEBUG ((DEBUG_VERBOSE, "Invalid Queue Identifier\n")); + break; + case 0x2: +- DEBUG ((EFI_D_VERBOSE, "Maximum Queue Size Exceeded\n")); ++ DEBUG ((DEBUG_VERBOSE, "Maximum Queue Size Exceeded\n")); + break; + case 0x3: +- DEBUG ((EFI_D_VERBOSE, "Abort Command Limit Exceeded\n")); ++ DEBUG ((DEBUG_VERBOSE, "Abort Command Limit Exceeded\n")); + break; + case 0x5: +- DEBUG ((EFI_D_VERBOSE, "Asynchronous Event Request Limit Exceeded\n")); ++ DEBUG ((DEBUG_VERBOSE, "Asynchronous Event Request Limit Exceeded\n")); + break; + case 0x6: +- DEBUG ((EFI_D_VERBOSE, "Invalid Firmware Slot\n")); ++ DEBUG ((DEBUG_VERBOSE, "Invalid Firmware Slot\n")); + break; + case 0x7: +- DEBUG ((EFI_D_VERBOSE, "Invalid Firmware Image\n")); ++ DEBUG ((DEBUG_VERBOSE, "Invalid Firmware Image\n")); + break; + case 0x8: +- DEBUG ((EFI_D_VERBOSE, "Invalid Interrupt Vector\n")); ++ DEBUG ((DEBUG_VERBOSE, "Invalid Interrupt Vector\n")); + break; + case 0x9: +- DEBUG ((EFI_D_VERBOSE, "Invalid Log Page\n")); ++ DEBUG ((DEBUG_VERBOSE, "Invalid Log Page\n")); + break; + case 0xA: +- DEBUG ((EFI_D_VERBOSE, "Invalid Format\n")); ++ DEBUG ((DEBUG_VERBOSE, "Invalid Format\n")); + break; + case 0xB: +- DEBUG ((EFI_D_VERBOSE, "Firmware Application Requires Conventional Reset\n")); ++ DEBUG ((DEBUG_VERBOSE, "Firmware Application Requires Conventional Reset\n")); + break; + case 0xC: +- DEBUG ((EFI_D_VERBOSE, "Invalid Queue Deletion\n")); ++ DEBUG ((DEBUG_VERBOSE, "Invalid Queue Deletion\n")); + break; + case 0xD: +- DEBUG ((EFI_D_VERBOSE, "Feature Identifier Not Saveable\n")); ++ DEBUG ((DEBUG_VERBOSE, "Feature Identifier Not Saveable\n")); + break; + case 0xE: +- DEBUG ((EFI_D_VERBOSE, "Feature Not Changeable\n")); ++ DEBUG ((DEBUG_VERBOSE, "Feature Not Changeable\n")); + break; + case 0xF: +- DEBUG ((EFI_D_VERBOSE, "Feature Not Namespace Specific\n")); ++ DEBUG ((DEBUG_VERBOSE, "Feature Not Namespace Specific\n")); + break; + case 0x10: +- DEBUG ((EFI_D_VERBOSE, "Firmware Application Requires NVM Subsystem Reset\n")); ++ DEBUG ((DEBUG_VERBOSE, "Firmware Application Requires NVM Subsystem Reset\n")); + break; + case 0x80: +- DEBUG ((EFI_D_VERBOSE, "Conflicting Attributes\n")); ++ DEBUG ((DEBUG_VERBOSE, "Conflicting Attributes\n")); + break; + case 0x81: +- DEBUG ((EFI_D_VERBOSE, "Invalid Protection Information\n")); ++ DEBUG ((DEBUG_VERBOSE, "Invalid Protection Information\n")); + break; + case 0x82: +- DEBUG ((EFI_D_VERBOSE, "Attempted Write to Read Only Range\n")); ++ DEBUG ((DEBUG_VERBOSE, "Attempted Write to Read Only Range\n")); + break; + } + break; +@@ -164,25 +164,25 @@ NvmeDumpStatus ( + case 0x2: + switch (Cq->Sc) { + case 0x80: +- DEBUG ((EFI_D_VERBOSE, "Write Fault\n")); ++ DEBUG ((DEBUG_VERBOSE, "Write Fault\n")); + break; + case 0x81: +- DEBUG ((EFI_D_VERBOSE, "Unrecovered Read Error\n")); ++ DEBUG ((DEBUG_VERBOSE, "Unrecovered Read Error\n")); + break; + case 0x82: +- DEBUG ((EFI_D_VERBOSE, "End-to-end Guard Check Error\n")); ++ DEBUG ((DEBUG_VERBOSE, "End-to-end Guard Check Error\n")); + break; + case 0x83: +- DEBUG ((EFI_D_VERBOSE, "End-to-end Application Tag Check Error\n")); ++ DEBUG ((DEBUG_VERBOSE, "End-to-end Application Tag Check Error\n")); + break; + case 0x84: +- DEBUG ((EFI_D_VERBOSE, "End-to-end Reference Tag Check Error\n")); ++ DEBUG ((DEBUG_VERBOSE, "End-to-end Reference Tag Check Error\n")); + break; + case 0x85: +- DEBUG ((EFI_D_VERBOSE, "Compare Failure\n")); ++ DEBUG ((DEBUG_VERBOSE, "Compare Failure\n")); + break; + case 0x86: +- DEBUG ((EFI_D_VERBOSE, "Access Denied\n")); ++ DEBUG ((DEBUG_VERBOSE, "Access Denied\n")); + break; + } + break; +@@ -268,7 +268,7 @@ NvmeCreatePrpList ( + ); + + if (EFI_ERROR (Status) || (Bytes != EFI_PAGES_TO_SIZE (*PrpListNo))) { +- DEBUG ((EFI_D_ERROR, "NvmeCreatePrpList: create PrpList failure!\n")); ++ DEBUG ((DEBUG_ERROR, "NvmeCreatePrpList: create PrpList failure!\n")); + goto EXIT; + } + // +@@ -578,7 +578,7 @@ NvmExpressPassThru ( + // + ASSERT (Sq->Psdt == 0); + if (Sq->Psdt != 0) { +- DEBUG ((EFI_D_ERROR, "NvmExpressPassThru: doesn't support SGL mechanism\n")); ++ DEBUG ((DEBUG_ERROR, "NvmExpressPassThru: doesn't support SGL mechanism\n")); + return EFI_UNSUPPORTED; + } + +@@ -1182,4 +1182,3 @@ Exit: + + return Status; + } +- +diff --git a/MdeModulePkg/Bus/Pci/PciBusDxe/PciEnumerator.c b/MdeModulePkg/Bus/Pci/PciBusDxe/PciEnumerator.c +index 8db1ebf8ec..99f8642f13 100644 +--- a/MdeModulePkg/Bus/Pci/PciBusDxe/PciEnumerator.c ++++ b/MdeModulePkg/Bus/Pci/PciBusDxe/PciEnumerator.c +@@ -1003,7 +1003,7 @@ PciHostBridgeAdjustAllocation ( + Status = RejectPciDevice (PciResNode->PciDev); + if (Status == EFI_SUCCESS) { + DEBUG (( +- EFI_D_ERROR, ++ DEBUG_ERROR, + "PciBus: [%02x|%02x|%02x] was rejected due to resource confliction.\n", + PciResNode->PciDev->BusNumber, PciResNode->PciDev->DeviceNumber, PciResNode->PciDev->FunctionNumber + )); +@@ -2207,4 +2207,3 @@ AddHostBridgeEnumerator ( + + return EFI_SUCCESS; + } +- +diff --git a/MdeModulePkg/Bus/Pci/PciBusDxe/PciEnumeratorSupport.c b/MdeModulePkg/Bus/Pci/PciBusDxe/PciEnumeratorSupport.c +index 3a238d4e46..5111bd513a 100644 +--- a/MdeModulePkg/Bus/Pci/PciBusDxe/PciEnumeratorSupport.c ++++ b/MdeModulePkg/Bus/Pci/PciBusDxe/PciEnumeratorSupport.c +@@ -231,7 +231,7 @@ PciSearchDevice ( + PciIoDevice = NULL; + + DEBUG (( +- EFI_D_INFO, ++ DEBUG_INFO, + "PciBus: Discovered %s @ [%02x|%02x|%02x]\n", + IS_PCI_BRIDGE (Pci) ? L"PPB" : + IS_CARDBUS_BRIDGE (Pci) ? L"P2C" : +@@ -398,7 +398,7 @@ DumpPpbPaddingResource ( + + if ((Type != PciBarTypeUnknown) && ((ResourceType == PciBarTypeUnknown) || (ResourceType == Type))) { + DEBUG (( +- EFI_D_INFO, ++ DEBUG_INFO, + " Padding: Type = %s; Alignment = 0x%lx;\tLength = 0x%lx\n", + mBarTypeStr[Type], Descriptor->AddrRangeMax, Descriptor->AddrLen + )); +@@ -425,7 +425,7 @@ DumpPciBars ( + } + + DEBUG (( +- EFI_D_INFO, ++ DEBUG_INFO, + " BAR[%d]: Type = %s; Alignment = 0x%lx;\tLength = 0x%lx;\tOffset = 0x%02x\n", + Index, mBarTypeStr[MIN (PciIoDevice->PciBar[Index].BarType, PciBarTypeMaxType)], + PciIoDevice->PciBar[Index].Alignment, PciIoDevice->PciBar[Index].Length, PciIoDevice->PciBar[Index].Offset +@@ -438,13 +438,13 @@ DumpPciBars ( + } + + DEBUG (( +- EFI_D_INFO, ++ DEBUG_INFO, + " VFBAR[%d]: Type = %s; Alignment = 0x%lx;\tLength = 0x%lx;\tOffset = 0x%02x\n", + Index, mBarTypeStr[MIN (PciIoDevice->VfPciBar[Index].BarType, PciBarTypeMaxType)], + PciIoDevice->VfPciBar[Index].Alignment, PciIoDevice->VfPciBar[Index].Length, PciIoDevice->VfPciBar[Index].Offset + )); + } +- DEBUG ((EFI_D_INFO, "\n")); ++ DEBUG ((DEBUG_INFO, "\n")); + } + + /** +@@ -1903,7 +1903,7 @@ PciParseBar ( + // Fix the length to support some special 64 bit BAR + // + if (Value == 0) { +- DEBUG ((EFI_D_INFO, "[PciBus]BAR probing for upper 32bit of MEM64 BAR returns 0, change to 0xFFFFFFFF.\n")); ++ DEBUG ((DEBUG_INFO, "[PciBus]BAR probing for upper 32bit of MEM64 BAR returns 0, change to 0xFFFFFFFF.\n")); + Value = (UINT32) -1; + } else { + Value |= ((UINT32)(-1) << HighBitSet32 (Value)); +@@ -2282,7 +2282,7 @@ CreatePciIoDevice ( + &Data32 + ); + DEBUG (( +- EFI_D_INFO, ++ DEBUG_INFO, + " ARI: forwarding enabled for PPB[%02x:%02x:%02x]\n", + Bridge->BusNumber, + Bridge->DeviceNumber, +@@ -2291,7 +2291,7 @@ CreatePciIoDevice ( + } + } + +- DEBUG ((EFI_D_INFO, " ARI: CapOffset = 0x%x\n", PciIoDevice->AriCapabilityOffset)); ++ DEBUG ((DEBUG_INFO, " ARI: CapOffset = 0x%x\n", PciIoDevice->AriCapabilityOffset)); + } + } + +@@ -2401,12 +2401,12 @@ CreatePciIoDevice ( + PciIoDevice->ReservedBusNum = (UINT16)(EFI_PCI_BUS_OF_RID (LastVF) - Bus + 1); + + DEBUG (( +- EFI_D_INFO, ++ DEBUG_INFO, + " SR-IOV: SupportedPageSize = 0x%x; SystemPageSize = 0x%x; FirstVFOffset = 0x%x;\n", + SupportedPageSize, PciIoDevice->SystemPageSize >> 12, FirstVFOffset + )); + DEBUG (( +- EFI_D_INFO, ++ DEBUG_INFO, + " InitialVFs = 0x%x; ReservedBusNum = 0x%x; CapOffset = 0x%x\n", + PciIoDevice->InitialVFs, PciIoDevice->ReservedBusNum, PciIoDevice->SrIovCapabilityOffset + )); +@@ -2421,7 +2421,7 @@ CreatePciIoDevice ( + NULL + ); + if (!EFI_ERROR (Status)) { +- DEBUG ((EFI_D_INFO, " MR-IOV: CapOffset = 0x%x\n", PciIoDevice->MrIovCapabilityOffset)); ++ DEBUG ((DEBUG_INFO, " MR-IOV: CapOffset = 0x%x\n", PciIoDevice->MrIovCapabilityOffset)); + } + } + +@@ -2869,4 +2869,3 @@ ResetAllPpbBusNumber ( + } + } + } +- +diff --git a/MdeModulePkg/Bus/Pci/PciBusDxe/PciLib.c b/MdeModulePkg/Bus/Pci/PciBusDxe/PciLib.c +index 4caac56f1d..0ad1dfa526 100644 +--- a/MdeModulePkg/Bus/Pci/PciBusDxe/PciLib.c ++++ b/MdeModulePkg/Bus/Pci/PciBusDxe/PciLib.c +@@ -215,7 +215,7 @@ DumpBridgeResource ( + + if ((BridgeResource != NULL) && (BridgeResource->Length != 0)) { + DEBUG (( +- EFI_D_INFO, "Type = %s; Base = 0x%lx;\tLength = 0x%lx;\tAlignment = 0x%lx\n", ++ DEBUG_INFO, "Type = %s; Base = 0x%lx;\tLength = 0x%lx;\tAlignment = 0x%lx\n", + mBarTypeStr[MIN (BridgeResource->ResType, PciBarTypeMaxType)], + BridgeResource->PciDev->PciBar[BridgeResource->Bar].BaseAddress, + BridgeResource->Length, BridgeResource->Alignment +@@ -228,7 +228,7 @@ DumpBridgeResource ( + if (Resource->ResourceUsage == PciResUsageTypical) { + Bar = Resource->Virtual ? Resource->PciDev->VfPciBar : Resource->PciDev->PciBar; + DEBUG (( +- EFI_D_INFO, " Base = 0x%lx;\tLength = 0x%lx;\tAlignment = 0x%lx;\tOwner = %s [%02x|%02x|%02x:", ++ DEBUG_INFO, " Base = 0x%lx;\tLength = 0x%lx;\tAlignment = 0x%lx;\tOwner = %s [%02x|%02x|%02x:", + Bar[Resource->Bar].BaseAddress, Resource->Length, Resource->Alignment, + IS_PCI_BRIDGE (&Resource->PciDev->Pci) ? L"PPB" : + IS_CARDBUS_BRIDGE (&Resource->PciDev->Pci) ? L"P2C" : +@@ -244,20 +244,20 @@ DumpBridgeResource ( + // + // The resource requirement comes from the device itself. + // +- DEBUG ((EFI_D_INFO, "%02x]", Bar[Resource->Bar].Offset)); ++ DEBUG ((DEBUG_INFO, "%02x]", Bar[Resource->Bar].Offset)); + } else { + // + // The resource requirement comes from the subordinate devices. + // +- DEBUG ((EFI_D_INFO, "**]")); ++ DEBUG ((DEBUG_INFO, "**]")); + } + } else { +- DEBUG ((EFI_D_INFO, " Base = Padding;\tLength = 0x%lx;\tAlignment = 0x%lx", Resource->Length, Resource->Alignment)); ++ DEBUG ((DEBUG_INFO, " Base = Padding;\tLength = 0x%lx;\tAlignment = 0x%lx", Resource->Length, Resource->Alignment)); + } + if (BridgeResource->ResType != Resource->ResType) { +- DEBUG ((EFI_D_INFO, "; Type = %s", mBarTypeStr[MIN (Resource->ResType, PciBarTypeMaxType)])); ++ DEBUG ((DEBUG_INFO, "; Type = %s", mBarTypeStr[MIN (Resource->ResType, PciBarTypeMaxType)])); + } +- DEBUG ((EFI_D_INFO, "\n")); ++ DEBUG ((DEBUG_INFO, "\n")); + } + } + } +@@ -321,7 +321,7 @@ DumpResourceMap ( + PCI_RESOURCE_NODE **ChildResources; + UINTN ChildResourceCount; + +- DEBUG ((EFI_D_INFO, "PciBus: Resource Map for ")); ++ DEBUG ((DEBUG_INFO, "PciBus: Resource Map for ")); + + Status = gBS->OpenProtocol ( + Bridge->Handle, +@@ -333,7 +333,7 @@ DumpResourceMap ( + ); + if (EFI_ERROR (Status)) { + DEBUG (( +- EFI_D_INFO, "Bridge [%02x|%02x|%02x]\n", ++ DEBUG_INFO, "Bridge [%02x|%02x|%02x]\n", + Bridge->BusNumber, Bridge->DeviceNumber, Bridge->FunctionNumber + )); + } else { +@@ -342,7 +342,7 @@ DumpResourceMap ( + FALSE, + FALSE + ); +- DEBUG ((EFI_D_INFO, "Root Bridge %s\n", Str != NULL ? Str : L"")); ++ DEBUG ((DEBUG_INFO, "Root Bridge %s\n", Str != NULL ? Str : L"")); + if (Str != NULL) { + FreePool (Str); + } +@@ -351,7 +351,7 @@ DumpResourceMap ( + for (Index = 0; Index < ResourceCount; Index++) { + DumpBridgeResource (Resources[Index]); + } +- DEBUG ((EFI_D_INFO, "\n")); ++ DEBUG ((DEBUG_INFO, "\n")); + + for ( Link = Bridge->ChildList.ForwardLink + ; Link != &Bridge->ChildList +@@ -622,7 +622,7 @@ PciHostBridgeResourceAllocator ( + // If SubmitResources returns error, PciBus isn't able to start. + // It's a fatal error so assertion is added. + // +- DEBUG ((EFI_D_INFO, "PciBus: HostBridge->SubmitResources() - %r\n", Status)); ++ DEBUG ((DEBUG_INFO, "PciBus: HostBridge->SubmitResources() - %r\n", Status)); + ASSERT_EFI_ERROR (Status); + } + +@@ -654,7 +654,7 @@ PciHostBridgeResourceAllocator ( + // Notify platform to start to program the resource + // + Status = NotifyPhase (PciResAlloc, EfiPciHostBridgeAllocateResources); +- DEBUG ((EFI_D_INFO, "PciBus: HostBridge->NotifyPhase(AllocateResources) - %r\n", Status)); ++ DEBUG ((DEBUG_INFO, "PciBus: HostBridge->NotifyPhase(AllocateResources) - %r\n", Status)); + if (!FeaturePcdGet (PcdPciBusHotplugDeviceSupport)) { + // + // If Hot Plug is not supported +@@ -1340,9 +1340,9 @@ PciScanBus ( + TempReservedBusNum = PciDevice->ReservedBusNum; + + if (Func == 0) { +- DEBUG ((EFI_D_INFO, "PCI-IOV ScanBus - SubBusNumber - 0x%x\n", *SubBusNumber)); ++ DEBUG ((DEBUG_INFO, "PCI-IOV ScanBus - SubBusNumber - 0x%x\n", *SubBusNumber)); + } else { +- DEBUG ((EFI_D_INFO, "PCI-IOV ScanBus - SubBusNumber - 0x%x (Update)\n", *SubBusNumber)); ++ DEBUG ((DEBUG_INFO, "PCI-IOV ScanBus - SubBusNumber - 0x%x (Update)\n", *SubBusNumber)); + } + } + } +@@ -1522,7 +1522,7 @@ PciHostBridgeEnumerator ( + return Status; + } + +- DEBUG((EFI_D_INFO, "PCI Bus First Scanning\n")); ++ DEBUG((DEBUG_INFO, "PCI Bus First Scanning\n")); + RootBridgeHandle = NULL; + while (PciResAlloc->GetNextRootBridge (PciResAlloc, &RootBridgeHandle) == EFI_SUCCESS) { + +@@ -1601,7 +1601,7 @@ PciHostBridgeEnumerator ( + Status = AllRootHPCInitialized (STALL_1_SECOND * 15); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "Some root HPC failed to initialize\n")); ++ DEBUG ((DEBUG_ERROR, "Some root HPC failed to initialize\n")); + return Status; + } + +@@ -1614,7 +1614,7 @@ PciHostBridgeEnumerator ( + return Status; + } + +- DEBUG((EFI_D_INFO, "PCI Bus Second Scanning\n")); ++ DEBUG((DEBUG_INFO, "PCI Bus Second Scanning\n")); + RootBridgeHandle = NULL; + while (PciResAlloc->GetNextRootBridge (PciResAlloc, &RootBridgeHandle) == EFI_SUCCESS) { + +diff --git a/MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciHostBridge.c b/MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciHostBridge.c +index 163e931dd9..a71518652d 100644 +--- a/MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciHostBridge.c ++++ b/MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciHostBridge.c +@@ -119,13 +119,13 @@ IntersectIoDescriptor ( + Status = gDS->AddIoSpace (EfiGcdIoTypeIo, IntersectionBase, + IntersectionEnd - IntersectionBase); + +- DEBUG ((EFI_ERROR (Status) ? EFI_D_ERROR : EFI_D_VERBOSE, ++ DEBUG ((EFI_ERROR (Status) ? DEBUG_ERROR : DEBUG_VERBOSE, + "%a: %a: add [%Lx, %Lx): %r\n", gEfiCallerBaseName, __FUNCTION__, + IntersectionBase, IntersectionEnd, Status)); + return Status; + } + +- DEBUG ((EFI_D_ERROR, "%a: %a: desc [%Lx, %Lx) type %u conflicts with " ++ DEBUG ((DEBUG_ERROR, "%a: %a: desc [%Lx, %Lx) type %u conflicts with " + "aperture [%Lx, %Lx)\n", gEfiCallerBaseName, __FUNCTION__, + Descriptor->BaseAddress, Descriptor->BaseAddress + Descriptor->Length, + (UINT32)Descriptor->GcdIoType, Base, Base + Length)); +@@ -155,7 +155,7 @@ AddIoSpace ( + + Status = gDS->GetIoSpaceMap (&NumberOfDescriptors, &IoSpaceMap); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "%a: %a: GetIoSpaceMap(): %r\n", ++ DEBUG ((DEBUG_ERROR, "%a: %a: GetIoSpaceMap(): %r\n", + gEfiCallerBaseName, __FUNCTION__, Status)); + return Status; + } +@@ -263,13 +263,13 @@ IntersectMemoryDescriptor ( + IntersectionBase, IntersectionEnd - IntersectionBase, + Capabilities); + +- DEBUG ((EFI_ERROR (Status) ? EFI_D_ERROR : EFI_D_VERBOSE, ++ DEBUG ((EFI_ERROR (Status) ? DEBUG_ERROR : DEBUG_VERBOSE, + "%a: %a: add [%Lx, %Lx): %r\n", gEfiCallerBaseName, __FUNCTION__, + IntersectionBase, IntersectionEnd, Status)); + return Status; + } + +- DEBUG ((EFI_D_ERROR, "%a: %a: desc [%Lx, %Lx) type %u cap %Lx conflicts " ++ DEBUG ((DEBUG_ERROR, "%a: %a: desc [%Lx, %Lx) type %u cap %Lx conflicts " + "with aperture [%Lx, %Lx) cap %Lx\n", gEfiCallerBaseName, __FUNCTION__, + Descriptor->BaseAddress, Descriptor->BaseAddress + Descriptor->Length, + (UINT32)Descriptor->GcdMemoryType, Descriptor->Capabilities, +@@ -302,7 +302,7 @@ AddMemoryMappedIoSpace ( + + Status = gDS->GetMemorySpaceMap (&NumberOfDescriptors, &MemorySpaceMap); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "%a: %a: GetMemorySpaceMap(): %r\n", ++ DEBUG ((DEBUG_ERROR, "%a: %a: GetMemorySpaceMap(): %r\n", + gEfiCallerBaseName, __FUNCTION__, Status)); + return Status; + } +@@ -828,7 +828,7 @@ NotifyPhase ( + } + } + +- DEBUG ((EFI_D_INFO, "PciHostBridge: NotifyPhase (AllocateResources)\n")); ++ DEBUG ((DEBUG_INFO, "PciHostBridge: NotifyPhase (AllocateResources)\n")); + for (Link = GetFirstNode (&HostBridge->RootBridges) + ; !IsNull (&HostBridge->RootBridges, Link) + ; Link = GetNextNode (&HostBridge->RootBridges, Link) +@@ -838,7 +838,7 @@ NotifyPhase ( + } + + RootBridge = ROOT_BRIDGE_FROM_LINK (Link); +- DEBUG ((EFI_D_INFO, " RootBridge: %s\n", RootBridge->DevicePathStr)); ++ DEBUG ((DEBUG_INFO, " RootBridge: %s\n", RootBridge->DevicePathStr)); + + for (Index1 = TypeIo; Index1 < TypeBus; Index1++) { + if (RootBridge->ResAllocNode[Index1].Status == ResNone) { +@@ -1360,7 +1360,7 @@ SubmitResources ( + ) { + RootBridge = ROOT_BRIDGE_FROM_LINK (Link); + if (RootBridgeHandle == RootBridge->Handle) { +- DEBUG ((EFI_D_INFO, "PciHostBridge: SubmitResources for %s\n", RootBridge->DevicePathStr)); ++ DEBUG ((DEBUG_INFO, "PciHostBridge: SubmitResources for %s\n", RootBridge->DevicePathStr)); + // + // Check the resource descriptors. + // If the Configuration includes one or more invalid resource descriptors, all the resource +@@ -1371,11 +1371,11 @@ SubmitResources ( + return EFI_INVALID_PARAMETER; + } + +- DEBUG ((EFI_D_INFO, " %s: Granularity/SpecificFlag = %ld / %02x%s\n", ++ DEBUG ((DEBUG_INFO, " %s: Granularity/SpecificFlag = %ld / %02x%s\n", + mAcpiAddressSpaceTypeStr[Descriptor->ResType], Descriptor->AddrSpaceGranularity, Descriptor->SpecificFlag, + (Descriptor->SpecificFlag & EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_CACHEABLE_PREFETCHABLE) != 0 ? L" (Prefetchable)" : L"" + )); +- DEBUG ((EFI_D_INFO, " Length/Alignment = 0x%lx / 0x%lx\n", Descriptor->AddrLen, Descriptor->AddrRangeMax)); ++ DEBUG ((DEBUG_INFO, " Length/Alignment = 0x%lx / 0x%lx\n", Descriptor->AddrLen, Descriptor->AddrRangeMax)); + switch (Descriptor->ResType) { + case ACPI_ADDRESS_SPACE_TYPE_MEM: + if (Descriptor->AddrSpaceGranularity != 32 && Descriptor->AddrSpaceGranularity != 64) { +diff --git a/MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciRootBridgeIo.c b/MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciRootBridgeIo.c +index d304fae422..2f1bed853d 100644 +--- a/MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciRootBridgeIo.c ++++ b/MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciRootBridgeIo.c +@@ -71,17 +71,17 @@ CreateRootBridge ( + + DevicePathStr = NULL; + +- DEBUG ((EFI_D_INFO, "RootBridge: ")); +- DEBUG ((EFI_D_INFO, "%s\n", DevicePathStr = ConvertDevicePathToText (Bridge->DevicePath, FALSE, FALSE))); +- DEBUG ((EFI_D_INFO, " Support/Attr: %lx / %lx\n", Bridge->Supports, Bridge->Attributes)); +- DEBUG ((EFI_D_INFO, " DmaAbove4G: %s\n", Bridge->DmaAbove4G ? L"Yes" : L"No")); +- DEBUG ((EFI_D_INFO, "NoExtConfSpace: %s\n", Bridge->NoExtendedConfigSpace ? L"Yes" : L"No")); +- DEBUG ((EFI_D_INFO, " AllocAttr: %lx (%s%s)\n", Bridge->AllocationAttributes, ++ DEBUG ((DEBUG_INFO, "RootBridge: ")); ++ DEBUG ((DEBUG_INFO, "%s\n", DevicePathStr = ConvertDevicePathToText (Bridge->DevicePath, FALSE, FALSE))); ++ DEBUG ((DEBUG_INFO, " Support/Attr: %lx / %lx\n", Bridge->Supports, Bridge->Attributes)); ++ DEBUG ((DEBUG_INFO, " DmaAbove4G: %s\n", Bridge->DmaAbove4G ? L"Yes" : L"No")); ++ DEBUG ((DEBUG_INFO, "NoExtConfSpace: %s\n", Bridge->NoExtendedConfigSpace ? L"Yes" : L"No")); ++ DEBUG ((DEBUG_INFO, " AllocAttr: %lx (%s%s)\n", Bridge->AllocationAttributes, + (Bridge->AllocationAttributes & EFI_PCI_HOST_BRIDGE_COMBINE_MEM_PMEM) != 0 ? L"CombineMemPMem " : L"", + (Bridge->AllocationAttributes & EFI_PCI_HOST_BRIDGE_MEM64_DECODE) != 0 ? L"Mem64Decode" : L"" + )); + DEBUG (( +- EFI_D_INFO, " Bus: %lx - %lx Translation=%lx\n", ++ DEBUG_INFO, " Bus: %lx - %lx Translation=%lx\n", + Bridge->Bus.Base, Bridge->Bus.Limit, Bridge->Bus.Translation + )); + // +diff --git a/MdeModulePkg/Bus/Pci/PciSioSerialDxe/Serial.c b/MdeModulePkg/Bus/Pci/PciSioSerialDxe/Serial.c +index 9fe8a482e0..4a9b49e347 100644 +--- a/MdeModulePkg/Bus/Pci/PciSioSerialDxe/Serial.c ++++ b/MdeModulePkg/Bus/Pci/PciSioSerialDxe/Serial.c +@@ -943,7 +943,7 @@ SerialControllerDriverStart ( + Node = NextDevicePathNode (Node); + } while (!IsDevicePathEnd (Node)); + Status = CreateSerialDevice (Controller, Uart, ParentDevicePath, FALSE, Acpi->UID, ParentIo, NULL, NULL); +- DEBUG ((EFI_D_INFO, "PciSioSerial: Create SIO child serial device - %r\n", Status)); ++ DEBUG ((DEBUG_INFO, "PciSioSerial: Create SIO child serial device - %r\n", Status)); + } + } else { + Status = ParentIo.PciIo->Pci.Read (ParentIo.PciIo, EfiPciIoWidthUint8, 0, sizeof (Pci), &Pci); +@@ -1024,7 +1024,7 @@ SerialControllerDriverStart ( + } + + Status = CreateSerialDevice (Controller, Uart, ParentDevicePath, FALSE, 0, ParentIo, PciSerialParameter, PciDeviceInfo); +- DEBUG ((EFI_D_INFO, "PciSioSerial: Create PCI child serial device (single) - %r\n", Status)); ++ DEBUG ((DEBUG_INFO, "PciSioSerial: Create PCI child serial device (single) - %r\n", Status)); + if (!EFI_ERROR (Status)) { + PciDeviceInfo->ChildCount++; + } +@@ -1045,7 +1045,7 @@ SerialControllerDriverStart ( + // + Status = CreateSerialDevice (Controller, Uart, ParentDevicePath, TRUE, PciSerialCount, ParentIo, PciSerialParameter, PciDeviceInfo); + PciSerialCount++; +- DEBUG ((EFI_D_INFO, "PciSioSerial: Create PCI child serial device (multiple) - %r\n", Status)); ++ DEBUG ((DEBUG_INFO, "PciSioSerial: Create PCI child serial device (multiple) - %r\n", Status)); + if (!EFI_ERROR (Status)) { + PciDeviceInfo->ChildCount++; + } +diff --git a/MdeModulePkg/Bus/Pci/PciSioSerialDxe/SerialIo.c b/MdeModulePkg/Bus/Pci/PciSioSerialDxe/SerialIo.c +index 56c5faf5db..f8b9a0e3ee 100644 +--- a/MdeModulePkg/Bus/Pci/PciSioSerialDxe/SerialIo.c ++++ b/MdeModulePkg/Bus/Pci/PciSioSerialDxe/SerialIo.c +@@ -134,9 +134,9 @@ VerifyUartParameters ( + } + + Percent = DivU64x32 (MultU64x32 (BaudRate, 100), ComputedBaudRate); +- DEBUG ((EFI_D_INFO, "ClockRate = %d\n", ClockRate)); +- DEBUG ((EFI_D_INFO, "Divisor = %ld\n", ComputedDivisor)); +- DEBUG ((EFI_D_INFO, "BaudRate/Actual (%ld/%d) = %d%%\n", BaudRate, ComputedBaudRate, Percent)); ++ DEBUG ((DEBUG_INFO, "ClockRate = %d\n", ClockRate)); ++ DEBUG ((DEBUG_INFO, "Divisor = %ld\n", ComputedDivisor)); ++ DEBUG ((DEBUG_INFO, "BaudRate/Actual (%ld/%d) = %d%%\n", BaudRate, ComputedBaudRate, Percent)); + + // + // If the requested BaudRate is not supported: +@@ -176,9 +176,9 @@ VerifyUartParameters ( + return FALSE; + } + +- DEBUG ((EFI_D_INFO, "ClockRate = %d\n", ClockRate)); +- DEBUG ((EFI_D_INFO, "Divisor = %ld\n", ComputedDivisor)); +- DEBUG ((EFI_D_INFO, "BaudRate/Actual (%ld/%d) = %d%%\n", BaudRate, ComputedBaudRate, Percent)); ++ DEBUG ((DEBUG_INFO, "ClockRate = %d\n", ClockRate)); ++ DEBUG ((DEBUG_INFO, "Divisor = %ld\n", ComputedDivisor)); ++ DEBUG ((DEBUG_INFO, "BaudRate/Actual (%ld/%d) = %d%%\n", BaudRate, ComputedBaudRate, Percent)); + + if (ActualBaudRate != NULL) { + *ActualBaudRate = ComputedBaudRate; +diff --git a/MdeModulePkg/Bus/Pci/SataControllerDxe/SataController.c b/MdeModulePkg/Bus/Pci/SataControllerDxe/SataController.c +index ab06e2833c..1133e1c935 100644 +--- a/MdeModulePkg/Bus/Pci/SataControllerDxe/SataController.c ++++ b/MdeModulePkg/Bus/Pci/SataControllerDxe/SataController.c +@@ -89,7 +89,7 @@ CalculateBestPioMode ( + if ((IdentifyData->AtaData.field_validity & 0x02) == 0x02) { + + AdvancedPioMode = IdentifyData->AtaData.advanced_pio_modes; +- DEBUG ((EFI_D_INFO, "CalculateBestPioMode: AdvancedPioMode = %x\n", AdvancedPioMode)); ++ DEBUG ((DEBUG_INFO, "CalculateBestPioMode: AdvancedPioMode = %x\n", AdvancedPioMode)); + + for (Index = 0; Index < 8; Index++) { + if ((AdvancedPioMode & 0x01) != 0) { +@@ -203,7 +203,7 @@ CalculateBestUdmaMode ( + } + + DeviceUDmaMode = IdentifyData->AtaData.ultra_dma_mode; +- DEBUG ((EFI_D_INFO, "CalculateBestUdmaMode: DeviceUDmaMode = %x\n", DeviceUDmaMode)); ++ DEBUG ((DEBUG_INFO, "CalculateBestUdmaMode: DeviceUDmaMode = %x\n", DeviceUDmaMode)); + DeviceUDmaMode &= 0x3f; + TempMode = 0; // initialize it to UDMA-0 + +@@ -362,7 +362,7 @@ SataControllerStart ( + UINT64 Supports; + UINT8 MaxPortNumber; + +- DEBUG ((EFI_D_INFO, "SataControllerStart start\n")); ++ DEBUG ((DEBUG_INFO, "SataControllerStart start\n")); + + Private = NULL; + +@@ -378,7 +378,7 @@ SataControllerStart ( + EFI_OPEN_PROTOCOL_BY_DRIVER + ); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "SataControllerStart error. return status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "SataControllerStart error. return status = %r\n", Status)); + return Status; + } + +@@ -419,7 +419,7 @@ SataControllerStart ( + } + + DEBUG (( +- EFI_D_INFO, ++ DEBUG_INFO, + "Original PCI Attributes = 0x%llx\n", + Private->OriginalPciAttributes + )); +@@ -434,7 +434,7 @@ SataControllerStart ( + goto Done; + } + +- DEBUG ((EFI_D_INFO, "Supported PCI Attributes = 0x%llx\n", Supports)); ++ DEBUG ((DEBUG_INFO, "Supported PCI Attributes = 0x%llx\n", Supports)); + + Supports &= (UINT64)EFI_PCI_DEVICE_ENABLE; + Status = PciIo->Attributes ( +@@ -447,7 +447,7 @@ SataControllerStart ( + goto Done; + } + +- DEBUG ((EFI_D_INFO, "Enabled PCI Attributes = 0x%llx\n", Supports)); ++ DEBUG ((DEBUG_INFO, "Enabled PCI Attributes = 0x%llx\n", Supports)); + Private->PciAttributesChanged = TRUE; + + Status = PciIo->Pci.Read ( +@@ -561,7 +561,7 @@ Done: + } + } + +- DEBUG ((EFI_D_INFO, "SataControllerStart end with %r\n", Status)); ++ DEBUG ((DEBUG_INFO, "SataControllerStart end with %r\n", Status)); + + return Status; + } +@@ -1048,7 +1048,7 @@ IdeInitCalculateMode ( + } else { + (*SupportedModes)->PioMode.Valid = FALSE; + } +- DEBUG ((EFI_D_INFO, "IdeInitCalculateMode: PioMode = %x\n", (*SupportedModes)->PioMode.Mode)); ++ DEBUG ((DEBUG_INFO, "IdeInitCalculateMode: PioMode = %x\n", (*SupportedModes)->PioMode.Mode)); + + Status = CalculateBestUdmaMode ( + IdentifyData, +@@ -1063,7 +1063,7 @@ IdeInitCalculateMode ( + } else { + (*SupportedModes)->UdmaMode.Valid = FALSE; + } +- DEBUG ((EFI_D_INFO, "IdeInitCalculateMode: UdmaMode = %x\n", (*SupportedModes)->UdmaMode.Mode)); ++ DEBUG ((DEBUG_INFO, "IdeInitCalculateMode: UdmaMode = %x\n", (*SupportedModes)->UdmaMode.Mode)); + + // + // The modes other than PIO and UDMA are not supported +@@ -1105,4 +1105,3 @@ IdeInitSetTiming ( + { + return EFI_SUCCESS; + } +- +diff --git a/MdeModulePkg/Bus/Pci/SdMmcPciHcPei/SdMmcPciHcPei.c b/MdeModulePkg/Bus/Pci/SdMmcPciHcPei/SdMmcPciHcPei.c +index 3aa11f8eed..9c18e6fddc 100644 +--- a/MdeModulePkg/Bus/Pci/SdMmcPciHcPei/SdMmcPciHcPei.c ++++ b/MdeModulePkg/Bus/Pci/SdMmcPciHcPei/SdMmcPciHcPei.c +@@ -108,7 +108,7 @@ InitializeSdMmcHcPeim ( + + Private = (SD_MMC_HC_PEI_PRIVATE_DATA *) AllocateZeroPool (sizeof (SD_MMC_HC_PEI_PRIVATE_DATA)); + if (Private == NULL) { +- DEBUG ((EFI_D_ERROR, "Failed to allocate memory for SD_MMC_HC_PEI_PRIVATE_DATA! \n")); ++ DEBUG ((DEBUG_ERROR, "Failed to allocate memory for SD_MMC_HC_PEI_PRIVATE_DATA! \n")); + return EFI_OUT_OF_RESOURCES; + } + +diff --git a/MdeModulePkg/Bus/Pci/UfsPciHcPei/UfsPciHcPei.c b/MdeModulePkg/Bus/Pci/UfsPciHcPei/UfsPciHcPei.c +index 86f1529eec..68bfade9c2 100644 +--- a/MdeModulePkg/Bus/Pci/UfsPciHcPei/UfsPciHcPei.c ++++ b/MdeModulePkg/Bus/Pci/UfsPciHcPei/UfsPciHcPei.c +@@ -99,7 +99,7 @@ InitializeUfsHcPeim ( + + Private = (UFS_HC_PEI_PRIVATE_DATA *) AllocateZeroPool (sizeof (UFS_HC_PEI_PRIVATE_DATA)); + if (Private == NULL) { +- DEBUG ((EFI_D_ERROR, "Failed to allocate memory for UFS_HC_PEI_PRIVATE_DATA! \n")); ++ DEBUG ((DEBUG_ERROR, "Failed to allocate memory for UFS_HC_PEI_PRIVATE_DATA! \n")); + return EFI_OUT_OF_RESOURCES; + } + +diff --git a/MdeModulePkg/Bus/Pci/UhciDxe/Uhci.c b/MdeModulePkg/Bus/Pci/UhciDxe/Uhci.c +index 3ec5ecf0e4..9f78f3dbd3 100644 +--- a/MdeModulePkg/Bus/Pci/UhciDxe/Uhci.c ++++ b/MdeModulePkg/Bus/Pci/UhciDxe/Uhci.c +@@ -323,7 +323,7 @@ Uhci2GetCapability ( + + Uhc->RootPorts = *PortNumber; + +- DEBUG ((EFI_D_INFO, "Uhci2GetCapability: %d ports\n", (UINT32)Uhc->RootPorts)); ++ DEBUG ((DEBUG_INFO, "Uhci2GetCapability: %d ports\n", (UINT32)Uhc->RootPorts)); + return EFI_SUCCESS; + } + +@@ -378,7 +378,7 @@ Uhci2GetRootHubPortStatus ( + } + + if ((PortSC & USBPORTSC_SUSP) != 0) { +- DEBUG ((EFI_D_INFO, "Uhci2GetRootHubPortStatus: port %d is suspended\n", PortNumber)); ++ DEBUG ((DEBUG_INFO, "Uhci2GetRootHubPortStatus: port %d is suspended\n", PortNumber)); + PortStatus->PortStatus |= USB_PORT_STAT_SUSPEND; + } + +@@ -1880,4 +1880,3 @@ UhciDriverBindingStop ( + + return EFI_SUCCESS; + } +- +diff --git a/MdeModulePkg/Bus/Pci/UhciDxe/UhciDebug.c b/MdeModulePkg/Bus/Pci/UhciDxe/UhciDebug.c +index 517780a5f4..3d499c9baf 100644 +--- a/MdeModulePkg/Bus/Pci/UhciDxe/UhciDebug.c ++++ b/MdeModulePkg/Bus/Pci/UhciDxe/UhciDebug.c +@@ -20,12 +20,12 @@ UhciDumpQh ( + IN UHCI_QH_SW *QhSw + ) + { +- DEBUG ((EFI_D_VERBOSE, "&QhSw @ 0x%p\n", QhSw)); +- DEBUG ((EFI_D_VERBOSE, "QhSw.NextQh - 0x%p\n", QhSw->NextQh)); +- DEBUG ((EFI_D_VERBOSE, "QhSw.TDs - 0x%p\n", QhSw->TDs)); +- DEBUG ((EFI_D_VERBOSE, "QhSw.QhHw:\n")); +- DEBUG ((EFI_D_VERBOSE, " Horizon Link - %x\n", QhSw->QhHw.HorizonLink)); +- DEBUG ((EFI_D_VERBOSE, " Vertical Link - %x\n\n", QhSw->QhHw.VerticalLink)); ++ DEBUG ((DEBUG_VERBOSE, "&QhSw @ 0x%p\n", QhSw)); ++ DEBUG ((DEBUG_VERBOSE, "QhSw.NextQh - 0x%p\n", QhSw->NextQh)); ++ DEBUG ((DEBUG_VERBOSE, "QhSw.TDs - 0x%p\n", QhSw->TDs)); ++ DEBUG ((DEBUG_VERBOSE, "QhSw.QhHw:\n")); ++ DEBUG ((DEBUG_VERBOSE, " Horizon Link - %x\n", QhSw->QhHw.HorizonLink)); ++ DEBUG ((DEBUG_VERBOSE, " Vertical Link - %x\n\n", QhSw->QhHw.VerticalLink)); + } + + +@@ -45,27 +45,26 @@ UhciDumpTds ( + CurTdSw = TdSw; + + while (CurTdSw != NULL) { +- DEBUG ((EFI_D_VERBOSE, "TdSw @ 0x%p\n", CurTdSw)); +- DEBUG ((EFI_D_VERBOSE, "TdSw.NextTd - 0x%p\n", CurTdSw->NextTd)); +- DEBUG ((EFI_D_VERBOSE, "TdSw.DataLen - %d\n", CurTdSw->DataLen)); +- DEBUG ((EFI_D_VERBOSE, "TdSw.Data - 0x%p\n", CurTdSw->Data)); +- DEBUG ((EFI_D_VERBOSE, "TdHw:\n")); +- DEBUG ((EFI_D_VERBOSE, " NextLink - 0x%x\n", CurTdSw->TdHw.NextLink)); +- DEBUG ((EFI_D_VERBOSE, " ActualLen - %d\n", CurTdSw->TdHw.ActualLen)); +- DEBUG ((EFI_D_VERBOSE, " Status - 0x%x\n", CurTdSw->TdHw.Status)); +- DEBUG ((EFI_D_VERBOSE, " IOC - %d\n", CurTdSw->TdHw.IntOnCpl)); +- DEBUG ((EFI_D_VERBOSE, " IsIsoCh - %d\n", CurTdSw->TdHw.IsIsoch)); +- DEBUG ((EFI_D_VERBOSE, " LowSpeed - %d\n", CurTdSw->TdHw.LowSpeed)); +- DEBUG ((EFI_D_VERBOSE, " ErrorCount - %d\n", CurTdSw->TdHw.ErrorCount)); +- DEBUG ((EFI_D_VERBOSE, " ShortPacket - %d\n", CurTdSw->TdHw.ShortPacket)); +- DEBUG ((EFI_D_VERBOSE, " PidCode - 0x%x\n", CurTdSw->TdHw.PidCode)); +- DEBUG ((EFI_D_VERBOSE, " DevAddr - %d\n", CurTdSw->TdHw.DeviceAddr)); +- DEBUG ((EFI_D_VERBOSE, " EndPoint - %d\n", CurTdSw->TdHw.EndPoint)); +- DEBUG ((EFI_D_VERBOSE, " DataToggle - %d\n", CurTdSw->TdHw.DataToggle)); +- DEBUG ((EFI_D_VERBOSE, " MaxPacketLen - %d\n", CurTdSw->TdHw.MaxPacketLen)); +- DEBUG ((EFI_D_VERBOSE, " DataBuffer - 0x%x\n\n",CurTdSw->TdHw.DataBuffer)); ++ DEBUG ((DEBUG_VERBOSE, "TdSw @ 0x%p\n", CurTdSw)); ++ DEBUG ((DEBUG_VERBOSE, "TdSw.NextTd - 0x%p\n", CurTdSw->NextTd)); ++ DEBUG ((DEBUG_VERBOSE, "TdSw.DataLen - %d\n", CurTdSw->DataLen)); ++ DEBUG ((DEBUG_VERBOSE, "TdSw.Data - 0x%p\n", CurTdSw->Data)); ++ DEBUG ((DEBUG_VERBOSE, "TdHw:\n")); ++ DEBUG ((DEBUG_VERBOSE, " NextLink - 0x%x\n", CurTdSw->TdHw.NextLink)); ++ DEBUG ((DEBUG_VERBOSE, " ActualLen - %d\n", CurTdSw->TdHw.ActualLen)); ++ DEBUG ((DEBUG_VERBOSE, " Status - 0x%x\n", CurTdSw->TdHw.Status)); ++ DEBUG ((DEBUG_VERBOSE, " IOC - %d\n", CurTdSw->TdHw.IntOnCpl)); ++ DEBUG ((DEBUG_VERBOSE, " IsIsoCh - %d\n", CurTdSw->TdHw.IsIsoch)); ++ DEBUG ((DEBUG_VERBOSE, " LowSpeed - %d\n", CurTdSw->TdHw.LowSpeed)); ++ DEBUG ((DEBUG_VERBOSE, " ErrorCount - %d\n", CurTdSw->TdHw.ErrorCount)); ++ DEBUG ((DEBUG_VERBOSE, " ShortPacket - %d\n", CurTdSw->TdHw.ShortPacket)); ++ DEBUG ((DEBUG_VERBOSE, " PidCode - 0x%x\n", CurTdSw->TdHw.PidCode)); ++ DEBUG ((DEBUG_VERBOSE, " DevAddr - %d\n", CurTdSw->TdHw.DeviceAddr)); ++ DEBUG ((DEBUG_VERBOSE, " EndPoint - %d\n", CurTdSw->TdHw.EndPoint)); ++ DEBUG ((DEBUG_VERBOSE, " DataToggle - %d\n", CurTdSw->TdHw.DataToggle)); ++ DEBUG ((DEBUG_VERBOSE, " MaxPacketLen - %d\n", CurTdSw->TdHw.MaxPacketLen)); ++ DEBUG ((DEBUG_VERBOSE, " DataBuffer - 0x%x\n\n",CurTdSw->TdHw.DataBuffer)); + + CurTdSw = CurTdSw->NextTd; + } + } +- +diff --git a/MdeModulePkg/Bus/Pci/UhciDxe/UhciReg.c b/MdeModulePkg/Bus/Pci/UhciDxe/UhciReg.c +index 582c25e78d..44bcde4c4e 100644 +--- a/MdeModulePkg/Bus/Pci/UhciDxe/UhciReg.c ++++ b/MdeModulePkg/Bus/Pci/UhciDxe/UhciReg.c +@@ -38,7 +38,7 @@ UhciReadReg ( + ); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "UhciReadReg: PciIo Io.Read error: %r at offset %d\n", Status, Offset)); ++ DEBUG ((DEBUG_ERROR, "UhciReadReg: PciIo Io.Read error: %r at offset %d\n", Status, Offset)); + + Data = 0xFFFF; + } +@@ -74,7 +74,7 @@ UhciWriteReg ( + ); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "UhciWriteReg: PciIo Io.Write error: %r at offset %d\n", Status, Offset)); ++ DEBUG ((DEBUG_ERROR, "UhciWriteReg: PciIo Io.Write error: %r at offset %d\n", Status, Offset)); + } + } + +@@ -144,7 +144,7 @@ UhciAckAllInterrupt ( + // is a temporary error status. + // + if (!UhciIsHcWorking (Uhc->PciIo)) { +- DEBUG ((EFI_D_ERROR, "UhciAckAllInterrupt: re-enable the UHCI from system error\n")); ++ DEBUG ((DEBUG_ERROR, "UhciAckAllInterrupt: re-enable the UHCI from system error\n")); + Uhc->Usb2Hc.SetState (&Uhc->Usb2Hc, EfiUsbHcStateOperational); + } + } +@@ -208,7 +208,7 @@ UhciIsHcWorking ( + UsbSts = UhciReadReg (PciIo, USBSTS_OFFSET); + + if ((UsbSts & (USBSTS_HCPE | USBSTS_HSE | USBSTS_HCH)) != 0) { +- DEBUG ((EFI_D_ERROR, "UhciIsHcWorking: current USB state is %x\n", UsbSts)); ++ DEBUG ((DEBUG_ERROR, "UhciIsHcWorking: current USB state is %x\n", UsbSts)); + return FALSE; + } + +@@ -245,7 +245,7 @@ UhciSetFrameListBaseAddr ( + ); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "UhciSetFrameListBaseAddr: PciIo Io.Write error: %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "UhciSetFrameListBaseAddr: PciIo Io.Write error: %r\n", Status)); + } + } + +diff --git a/MdeModulePkg/Bus/Pci/UhciDxe/UhciSched.c b/MdeModulePkg/Bus/Pci/UhciDxe/UhciSched.c +index e216418849..0829bc2a8c 100644 +--- a/MdeModulePkg/Bus/Pci/UhciDxe/UhciSched.c ++++ b/MdeModulePkg/Bus/Pci/UhciDxe/UhciSched.c +@@ -600,14 +600,14 @@ UhciExecuteTransfer ( + } + + if (!Finished) { +- DEBUG ((EFI_D_ERROR, "UhciExecuteTransfer: execution not finished for %dms\n", (UINT32)TimeOut)); ++ DEBUG ((DEBUG_ERROR, "UhciExecuteTransfer: execution not finished for %dms\n", (UINT32)TimeOut)); + UhciDumpQh (Qh); + UhciDumpTds (Td); + + Status = EFI_TIMEOUT; + + } else if (QhResult->Result != EFI_USB_NOERROR) { +- DEBUG ((EFI_D_ERROR, "UhciExecuteTransfer: execution failed with result %x\n", QhResult->Result)); ++ DEBUG ((DEBUG_ERROR, "UhciExecuteTransfer: execution failed with result %x\n", QhResult->Result)); + UhciDumpQh (Qh); + UhciDumpTds (Td); + +diff --git a/MdeModulePkg/Bus/Pci/UhciDxe/UsbHcMem.c b/MdeModulePkg/Bus/Pci/UhciDxe/UsbHcMem.c +index 9aade19f8e..a8c098f9c3 100644 +--- a/MdeModulePkg/Bus/Pci/UhciDxe/UsbHcMem.c ++++ b/MdeModulePkg/Bus/Pci/UhciDxe/UsbHcMem.c +@@ -468,7 +468,7 @@ UsbHcAllocateMem ( + NewBlock = UsbHcAllocMemBlock (Pool, Pages); + + if (NewBlock == NULL) { +- DEBUG ((EFI_D_INFO, "UsbHcAllocateMem: failed to allocate block\n")); ++ DEBUG ((DEBUG_INFO, "UsbHcAllocateMem: failed to allocate block\n")); + return NULL; + } + +diff --git a/MdeModulePkg/Bus/Pci/XhciDxe/UsbHcMem.c b/MdeModulePkg/Bus/Pci/XhciDxe/UsbHcMem.c +index aa69c47aad..005820e011 100644 +--- a/MdeModulePkg/Bus/Pci/XhciDxe/UsbHcMem.c ++++ b/MdeModulePkg/Bus/Pci/XhciDxe/UsbHcMem.c +@@ -503,7 +503,7 @@ UsbHcAllocateMem ( + NewBlock = UsbHcAllocMemBlock (Pool, Pages); + + if (NewBlock == NULL) { +- DEBUG ((EFI_D_ERROR, "UsbHcAllocateMem: failed to allocate block\n")); ++ DEBUG ((DEBUG_ERROR, "UsbHcAllocateMem: failed to allocate block\n")); + return NULL; + } + +diff --git a/MdeModulePkg/Bus/Pci/XhciDxe/Xhci.c b/MdeModulePkg/Bus/Pci/XhciDxe/Xhci.c +index 43c53bad4e..5a1f907ff0 100644 +--- a/MdeModulePkg/Bus/Pci/XhciDxe/Xhci.c ++++ b/MdeModulePkg/Bus/Pci/XhciDxe/Xhci.c +@@ -120,7 +120,7 @@ XhcGetCapability ( + *MaxSpeed = EFI_USB_SPEED_SUPER; + *PortNumber = (UINT8) (Xhc->HcSParams1.Data.MaxPorts); + *Is64BitCapable = (UINT8) Xhc->Support64BitDma; +- DEBUG ((EFI_D_INFO, "XhcGetCapability: %d ports, 64 bit %d\n", *PortNumber, *Is64BitCapable)); ++ DEBUG ((DEBUG_INFO, "XhcGetCapability: %d ports, 64 bit %d\n", *PortNumber, *Is64BitCapable)); + + gBS->RestoreTPL (OldTpl); + +@@ -216,7 +216,7 @@ XhcReset ( + } + + ON_EXIT: +- DEBUG ((EFI_D_INFO, "XhcReset: status %r\n", Status)); ++ DEBUG ((DEBUG_INFO, "XhcReset: status %r\n", Status)); + gBS->RestoreTPL (OldTpl); + + return Status; +@@ -260,7 +260,7 @@ XhcGetState ( + *State = EfiUsbHcStateOperational; + } + +- DEBUG ((EFI_D_INFO, "XhcGetState: current state %d\n", *State)); ++ DEBUG ((DEBUG_INFO, "XhcGetState: current state %d\n", *State)); + gBS->RestoreTPL (OldTpl); + + return EFI_SUCCESS; +@@ -336,7 +336,7 @@ XhcSetState ( + Status = EFI_INVALID_PARAMETER; + } + +- DEBUG ((EFI_D_INFO, "XhcSetState: status %r\n", Status)); ++ DEBUG ((DEBUG_INFO, "XhcSetState: status %r\n", Status)); + gBS->RestoreTPL (OldTpl); + + return Status; +@@ -530,7 +530,7 @@ XhcSetRootHubPortFeature ( + break; + + case EfiUsbPortReset: +- DEBUG ((EFI_D_INFO, "XhcUsbPortReset!\n")); ++ DEBUG ((DEBUG_INFO, "XhcUsbPortReset!\n")); + // + // Make sure Host Controller not halt before reset it + // +@@ -538,7 +538,7 @@ XhcSetRootHubPortFeature ( + Status = XhcRunHC (Xhc, XHC_GENERIC_TIMEOUT); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_INFO, "XhcSetRootHubPortFeature :failed to start HC - %r\n", Status)); ++ DEBUG ((DEBUG_INFO, "XhcSetRootHubPortFeature :failed to start HC - %r\n", Status)); + break; + } + } +@@ -571,7 +571,7 @@ XhcSetRootHubPortFeature ( + } + + ON_EXIT: +- DEBUG ((EFI_D_INFO, "XhcSetRootHubPortFeature: status %r\n", Status)); ++ DEBUG ((DEBUG_INFO, "XhcSetRootHubPortFeature: status %r\n", Status)); + gBS->RestoreTPL (OldTpl); + + return Status; +@@ -706,7 +706,7 @@ XhcClearRootHubPortFeature ( + } + + ON_EXIT: +- DEBUG ((EFI_D_INFO, "XhcClearRootHubPortFeature: status %r\n", Status)); ++ DEBUG ((DEBUG_INFO, "XhcClearRootHubPortFeature: status %r\n", Status)); + gBS->RestoreTPL (OldTpl); + + return Status; +@@ -914,7 +914,7 @@ XhcControlTransfer ( + Len = 0; + + if (XhcIsHalt (Xhc) || XhcIsSysError (Xhc)) { +- DEBUG ((EFI_D_ERROR, "XhcControlTransfer: HC halted at entrance\n")); ++ DEBUG ((DEBUG_ERROR, "XhcControlTransfer: HC halted at entrance\n")); + goto ON_EXIT; + } + +@@ -1043,7 +1043,7 @@ XhcControlTransfer ( + // Don't support multi-TT feature for super speed hub now. + // + MTT = 0; +- DEBUG ((EFI_D_ERROR, "XHCI: Don't support multi-TT feature for Hub now. (force to disable MTT)\n")); ++ DEBUG ((DEBUG_ERROR, "XHCI: Don't support multi-TT feature for Hub now. (force to disable MTT)\n")); + } else { + MTT = 0; + } +@@ -1162,7 +1162,7 @@ XhcControlTransfer ( + + ON_EXIT: + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "XhcControlTransfer: error - %r, transfer - %x\n", Status, *TransferResult)); ++ DEBUG ((DEBUG_ERROR, "XhcControlTransfer: error - %r, transfer - %x\n", Status, *TransferResult)); + } + + gBS->RestoreTPL (OldTpl); +@@ -1250,7 +1250,7 @@ XhcBulkTransfer ( + Status = EFI_DEVICE_ERROR; + + if (XhcIsHalt (Xhc) || XhcIsSysError (Xhc)) { +- DEBUG ((EFI_D_ERROR, "XhcBulkTransfer: HC is halted\n")); ++ DEBUG ((DEBUG_ERROR, "XhcBulkTransfer: HC is halted\n")); + goto ON_EXIT; + } + +@@ -1282,7 +1282,7 @@ XhcBulkTransfer ( + + ON_EXIT: + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "XhcBulkTransfer: error - %r, transfer - %x\n", Status, *TransferResult)); ++ DEBUG ((DEBUG_ERROR, "XhcBulkTransfer: error - %r, transfer - %x\n", Status, *TransferResult)); + } + gBS->RestoreTPL (OldTpl); + +@@ -1386,14 +1386,14 @@ XhcAsyncInterruptTransfer ( + } + + Status = XhciDelAsyncIntTransfer (Xhc, DeviceAddress, EndPointAddress); +- DEBUG ((EFI_D_INFO, "XhcAsyncInterruptTransfer: remove old transfer for addr %d, Status = %r\n", DeviceAddress, Status)); ++ DEBUG ((DEBUG_INFO, "XhcAsyncInterruptTransfer: remove old transfer for addr %d, Status = %r\n", DeviceAddress, Status)); + goto ON_EXIT; + } + + Status = EFI_SUCCESS; + + if (XhcIsHalt (Xhc) || XhcIsSysError (Xhc)) { +- DEBUG ((EFI_D_ERROR, "XhcAsyncInterruptTransfer: HC is halt\n")); ++ DEBUG ((DEBUG_ERROR, "XhcAsyncInterruptTransfer: HC is halt\n")); + Status = EFI_DEVICE_ERROR; + goto ON_EXIT; + } +@@ -1508,7 +1508,7 @@ XhcSyncInterruptTransfer ( + Status = EFI_DEVICE_ERROR; + + if (XhcIsHalt (Xhc) || XhcIsSysError (Xhc)) { +- DEBUG ((EFI_D_ERROR, "EhcSyncInterruptTransfer: HC is halt\n")); ++ DEBUG ((DEBUG_ERROR, "EhcSyncInterruptTransfer: HC is halt\n")); + goto ON_EXIT; + } + +@@ -1536,7 +1536,7 @@ XhcSyncInterruptTransfer ( + + ON_EXIT: + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "XhcSyncInterruptTransfer: error - %r, transfer - %x\n", Status, *TransferResult)); ++ DEBUG ((DEBUG_ERROR, "XhcSyncInterruptTransfer: error - %r, transfer - %x\n", Status, *TransferResult)); + } + gBS->RestoreTPL (OldTpl); + +@@ -1805,14 +1805,14 @@ XhcCreateUsbHc ( + Xhc->UsbLegSupOffset = XhcGetCapabilityAddr (Xhc, XHC_CAP_USB_LEGACY); + Xhc->DebugCapSupOffset = XhcGetCapabilityAddr (Xhc, XHC_CAP_USB_DEBUG); + +- DEBUG ((EFI_D_INFO, "XhcCreateUsb3Hc: Capability length 0x%x\n", Xhc->CapLength)); +- DEBUG ((EFI_D_INFO, "XhcCreateUsb3Hc: HcSParams1 0x%x\n", Xhc->HcSParams1)); +- DEBUG ((EFI_D_INFO, "XhcCreateUsb3Hc: HcSParams2 0x%x\n", Xhc->HcSParams2)); +- DEBUG ((EFI_D_INFO, "XhcCreateUsb3Hc: HcCParams 0x%x\n", Xhc->HcCParams)); +- DEBUG ((EFI_D_INFO, "XhcCreateUsb3Hc: DBOff 0x%x\n", Xhc->DBOff)); +- DEBUG ((EFI_D_INFO, "XhcCreateUsb3Hc: RTSOff 0x%x\n", Xhc->RTSOff)); +- DEBUG ((EFI_D_INFO, "XhcCreateUsb3Hc: UsbLegSupOffset 0x%x\n", Xhc->UsbLegSupOffset)); +- DEBUG ((EFI_D_INFO, "XhcCreateUsb3Hc: DebugCapSupOffset 0x%x\n", Xhc->DebugCapSupOffset)); ++ DEBUG ((DEBUG_INFO, "XhcCreateUsb3Hc: Capability length 0x%x\n", Xhc->CapLength)); ++ DEBUG ((DEBUG_INFO, "XhcCreateUsb3Hc: HcSParams1 0x%x\n", Xhc->HcSParams1)); ++ DEBUG ((DEBUG_INFO, "XhcCreateUsb3Hc: HcSParams2 0x%x\n", Xhc->HcSParams2)); ++ DEBUG ((DEBUG_INFO, "XhcCreateUsb3Hc: HcCParams 0x%x\n", Xhc->HcCParams)); ++ DEBUG ((DEBUG_INFO, "XhcCreateUsb3Hc: DBOff 0x%x\n", Xhc->DBOff)); ++ DEBUG ((DEBUG_INFO, "XhcCreateUsb3Hc: RTSOff 0x%x\n", Xhc->RTSOff)); ++ DEBUG ((DEBUG_INFO, "XhcCreateUsb3Hc: UsbLegSupOffset 0x%x\n", Xhc->UsbLegSupOffset)); ++ DEBUG ((DEBUG_INFO, "XhcCreateUsb3Hc: DebugCapSupOffset 0x%x\n", Xhc->DebugCapSupOffset)); + + // + // Create AsyncRequest Polling Timer +@@ -1972,7 +1972,7 @@ XhcDriverBindingStart ( + } + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "XhcDriverBindingStart: failed to enable controller\n")); ++ DEBUG ((DEBUG_ERROR, "XhcDriverBindingStart: failed to enable controller\n")); + goto CLOSE_PCIIO; + } + +@@ -1982,7 +1982,7 @@ XhcDriverBindingStart ( + Xhc = XhcCreateUsbHc (PciIo, HcDevicePath, OriginalPciAttributes); + + if (Xhc == NULL) { +- DEBUG ((EFI_D_ERROR, "XhcDriverBindingStart: failed to create USB2_HC\n")); ++ DEBUG ((DEBUG_ERROR, "XhcDriverBindingStart: failed to create USB2_HC\n")); + return EFI_OUT_OF_RESOURCES; + } + +@@ -2000,7 +2000,7 @@ XhcDriverBindingStart ( + if (!EFI_ERROR (Status)) { + Xhc->Support64BitDma = TRUE; + } else { +- DEBUG ((EFI_D_WARN, ++ DEBUG ((DEBUG_WARN, + "%a: failed to enable 64-bit DMA on 64-bit capable controller @ %p (%r)\n", + __FUNCTION__, Controller, Status)); + } +@@ -2032,7 +2032,7 @@ XhcDriverBindingStart ( + // + Status = gBS->SetTimer (Xhc->PollTimer, TimerPeriodic, XHC_ASYNC_TIMER_INTERVAL); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "XhcDriverBindingStart: failed to start async interrupt monitor\n")); ++ DEBUG ((DEBUG_ERROR, "XhcDriverBindingStart: failed to start async interrupt monitor\n")); + XhcHaltHC (Xhc, XHC_GENERIC_TIMEOUT); + goto FREE_POOL; + } +@@ -2078,11 +2078,11 @@ XhcDriverBindingStart ( + &Xhc->Usb2Hc + ); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "XhcDriverBindingStart: failed to install USB2_HC Protocol\n")); ++ DEBUG ((DEBUG_ERROR, "XhcDriverBindingStart: failed to install USB2_HC Protocol\n")); + goto FREE_POOL; + } + +- DEBUG ((EFI_D_INFO, "XhcDriverBindingStart: XHCI started for controller @ %x\n", Controller)); ++ DEBUG ((DEBUG_INFO, "XhcDriverBindingStart: XHCI started for controller @ %x\n", Controller)); + return EFI_SUCCESS; + + FREE_POOL: +@@ -2233,4 +2233,3 @@ XhcDriverBindingStop ( + + return EFI_SUCCESS; + } +- +diff --git a/MdeModulePkg/Bus/Pci/XhciDxe/XhciReg.c b/MdeModulePkg/Bus/Pci/XhciDxe/XhciReg.c +index 2bab09415b..70102a7fcf 100644 +--- a/MdeModulePkg/Bus/Pci/XhciDxe/XhciReg.c ++++ b/MdeModulePkg/Bus/Pci/XhciDxe/XhciReg.c +@@ -38,7 +38,7 @@ XhcReadCapReg8 ( + ); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "XhcReadCapReg: Pci Io read error - %r at %d\n", Status, Offset)); ++ DEBUG ((DEBUG_ERROR, "XhcReadCapReg: Pci Io read error - %r at %d\n", Status, Offset)); + Data = 0xFF; + } + +@@ -74,7 +74,7 @@ XhcReadCapReg ( + ); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "XhcReadCapReg: Pci Io read error - %r at %d\n", Status, Offset)); ++ DEBUG ((DEBUG_ERROR, "XhcReadCapReg: Pci Io read error - %r at %d\n", Status, Offset)); + Data = 0xFFFFFFFF; + } + +@@ -112,7 +112,7 @@ XhcReadOpReg ( + ); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "XhcReadOpReg: Pci Io Read error - %r at %d\n", Status, Offset)); ++ DEBUG ((DEBUG_ERROR, "XhcReadOpReg: Pci Io Read error - %r at %d\n", Status, Offset)); + Data = 0xFFFFFFFF; + } + +@@ -148,7 +148,7 @@ XhcWriteOpReg ( + ); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "XhcWriteOpReg: Pci Io Write error: %r at %d\n", Status, Offset)); ++ DEBUG ((DEBUG_ERROR, "XhcWriteOpReg: Pci Io Write error: %r at %d\n", Status, Offset)); + } + } + +@@ -185,7 +185,7 @@ XhcWriteDoorBellReg ( + ); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "XhcWriteOpReg: Pci Io Write error: %r at %d\n", Status, Offset)); ++ DEBUG ((DEBUG_ERROR, "XhcWriteOpReg: Pci Io Write error: %r at %d\n", Status, Offset)); + } + } + +@@ -219,7 +219,7 @@ XhcReadRuntimeReg ( + ); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "XhcReadRuntimeReg: Pci Io Read error - %r at %d\n", Status, Offset)); ++ DEBUG ((DEBUG_ERROR, "XhcReadRuntimeReg: Pci Io Read error - %r at %d\n", Status, Offset)); + Data = 0xFFFFFFFF; + } + +@@ -255,7 +255,7 @@ XhcWriteRuntimeReg ( + ); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "XhcWriteRuntimeReg: Pci Io Write error: %r at %d\n", Status, Offset)); ++ DEBUG ((DEBUG_ERROR, "XhcWriteRuntimeReg: Pci Io Write error: %r at %d\n", Status, Offset)); + } + } + +@@ -289,7 +289,7 @@ XhcReadExtCapReg ( + ); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "XhcReadExtCapReg: Pci Io Read error - %r at %d\n", Status, Offset)); ++ DEBUG ((DEBUG_ERROR, "XhcReadExtCapReg: Pci Io Read error - %r at %d\n", Status, Offset)); + Data = 0xFFFFFFFF; + } + +@@ -325,7 +325,7 @@ XhcWriteExtCapReg ( + ); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "XhcWriteExtCapReg: Pci Io Write error: %r at %d\n", Status, Offset)); ++ DEBUG ((DEBUG_ERROR, "XhcWriteExtCapReg: Pci Io Write error: %r at %d\n", Status, Offset)); + } + } + +@@ -508,7 +508,7 @@ XhcSetBiosOwnership ( + return; + } + +- DEBUG ((EFI_D_INFO, "XhcSetBiosOwnership: called to set BIOS ownership\n")); ++ DEBUG ((DEBUG_INFO, "XhcSetBiosOwnership: called to set BIOS ownership\n")); + + Buffer = XhcReadExtCapReg (Xhc, Xhc->UsbLegSupOffset); + Buffer = ((Buffer & (~USBLEGSP_OS_SEMAPHORE)) | USBLEGSP_BIOS_SEMAPHORE); +@@ -532,7 +532,7 @@ XhcClearBiosOwnership ( + return; + } + +- DEBUG ((EFI_D_INFO, "XhcClearBiosOwnership: called to clear BIOS ownership\n")); ++ DEBUG ((DEBUG_INFO, "XhcClearBiosOwnership: called to clear BIOS ownership\n")); + + Buffer = XhcReadExtCapReg (Xhc, Xhc->UsbLegSupOffset); + Buffer = ((Buffer & (~USBLEGSP_BIOS_SEMAPHORE)) | USBLEGSP_OS_SEMAPHORE); +@@ -666,7 +666,7 @@ XhcResetHC ( + + Status = EFI_SUCCESS; + +- DEBUG ((EFI_D_INFO, "XhcResetHC!\n")); ++ DEBUG ((DEBUG_INFO, "XhcResetHC!\n")); + // + // Host can only be reset when it is halt. If not so, halt it + // +@@ -748,4 +748,3 @@ XhcRunHC ( + Status = XhcWaitOpRegBit (Xhc, XHC_USBSTS_OFFSET, XHC_USBSTS_HALT, FALSE, Timeout); + return Status; + } +- +diff --git a/MdeModulePkg/Bus/Pci/XhciDxe/XhciSched.c b/MdeModulePkg/Bus/Pci/XhciDxe/XhciSched.c +index 6fcd2be627..92f63c29fc 100644 +--- a/MdeModulePkg/Bus/Pci/XhciDxe/XhciSched.c ++++ b/MdeModulePkg/Bus/Pci/XhciDxe/XhciSched.c +@@ -82,7 +82,7 @@ XhcCmdTransfer ( + Status = EFI_DEVICE_ERROR; + + if (XhcIsHalt (Xhc) || XhcIsSysError (Xhc)) { +- DEBUG ((EFI_D_ERROR, "XhcCmdTransfer: HC is halted\n")); ++ DEBUG ((DEBUG_ERROR, "XhcCmdTransfer: HC is halted\n")); + goto ON_EXIT; + } + +@@ -92,7 +92,7 @@ XhcCmdTransfer ( + Urb = XhcCreateCmdTrb (Xhc, CmdTrb); + + if (Urb == NULL) { +- DEBUG ((EFI_D_ERROR, "XhcCmdTransfer: failed to create URB\n")); ++ DEBUG ((DEBUG_ERROR, "XhcCmdTransfer: failed to create URB\n")); + Status = EFI_OUT_OF_RESOURCES; + goto ON_EXIT; + } +@@ -172,7 +172,7 @@ XhcCreateUrb ( + Status = XhcCreateTransferTrb (Xhc, Urb); + ASSERT_EFI_ERROR (Status); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "XhcCreateUrb: XhcCreateTransferTrb Failed, Status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "XhcCreateUrb: XhcCreateTransferTrb Failed, Status = %r\n", Status)); + FreePool (Urb); + Urb = NULL; + } +@@ -269,7 +269,7 @@ XhcCreateTransferTrb ( + Status = Xhc->PciIo->Map (Xhc->PciIo, MapOp, Urb->Data, &Len, &PhyAddr, &Map); + + if (EFI_ERROR (Status) || (Len != Urb->DataLen)) { +- DEBUG ((EFI_D_ERROR, "XhcCreateTransferTrb: Fail to map Urb->Data.\n")); ++ DEBUG ((DEBUG_ERROR, "XhcCreateTransferTrb: Fail to map Urb->Data.\n")); + return EFI_OUT_OF_RESOURCES; + } + +@@ -446,7 +446,7 @@ XhcCreateTransferTrb ( + break; + + default: +- DEBUG ((EFI_D_INFO, "Not supported EPType 0x%x!\n",EPType)); ++ DEBUG ((DEBUG_INFO, "Not supported EPType 0x%x!\n",EPType)); + ASSERT (FALSE); + break; + } +@@ -582,7 +582,7 @@ XhcInitSched ( + XhcWriteOpReg (Xhc, XHC_DCBAAP_OFFSET, XHC_LOW_32BIT(DcbaaPhy)); + XhcWriteOpReg (Xhc, XHC_DCBAAP_OFFSET + 4, XHC_HIGH_32BIT (DcbaaPhy)); + +- DEBUG ((EFI_D_INFO, "XhcInitSched:DCBAA=0x%x\n", (UINT64)(UINTN)Xhc->DCBAA)); ++ DEBUG ((DEBUG_INFO, "XhcInitSched:DCBAA=0x%x\n", (UINT64)(UINTN)Xhc->DCBAA)); + + // + // Define the Command Ring Dequeue Pointer by programming the Command Ring Control Register +@@ -660,14 +660,14 @@ XhcRecoverHaltedEndpoint ( + Dci = XhcEndpointToDci (Urb->Ep.EpAddr, (UINT8)(Urb->Ep.Direction)); + ASSERT (Dci < 32); + +- DEBUG ((EFI_D_INFO, "Recovery Halted Slot = %x,Dci = %x\n", SlotId, Dci)); ++ DEBUG ((DEBUG_INFO, "Recovery Halted Slot = %x,Dci = %x\n", SlotId, Dci)); + + // + // 1) Send Reset endpoint command to transit from halt to stop state + // + Status = XhcResetEndpoint(Xhc, SlotId, Dci); + if (EFI_ERROR(Status)) { +- DEBUG ((EFI_D_ERROR, "XhcRecoverHaltedEndpoint: Reset Endpoint Failed, Status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "XhcRecoverHaltedEndpoint: Reset Endpoint Failed, Status = %r\n", Status)); + goto Done; + } + +@@ -676,7 +676,7 @@ XhcRecoverHaltedEndpoint ( + // + Status = XhcSetTrDequeuePointer(Xhc, SlotId, Dci, Urb); + if (EFI_ERROR(Status)) { +- DEBUG ((EFI_D_ERROR, "XhcRecoverHaltedEndpoint: Set Transfer Ring Dequeue Pointer Failed, Status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "XhcRecoverHaltedEndpoint: Set Transfer Ring Dequeue Pointer Failed, Status = %r\n", Status)); + goto Done; + } + +@@ -722,14 +722,14 @@ XhcDequeueTrbFromEndpoint ( + Dci = XhcEndpointToDci (Urb->Ep.EpAddr, (UINT8)(Urb->Ep.Direction)); + ASSERT (Dci < 32); + +- DEBUG ((EFI_D_INFO, "Stop Slot = %x,Dci = %x\n", SlotId, Dci)); ++ DEBUG ((DEBUG_INFO, "Stop Slot = %x,Dci = %x\n", SlotId, Dci)); + + // + // 1) Send Stop endpoint command to stop xHC from executing of the TDs on the endpoint + // + Status = XhcStopEndpoint(Xhc, SlotId, Dci, Urb); + if (EFI_ERROR(Status)) { +- DEBUG ((EFI_D_ERROR, "XhcDequeueTrbFromEndpoint: Stop Endpoint Failed, Status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "XhcDequeueTrbFromEndpoint: Stop Endpoint Failed, Status = %r\n", Status)); + goto Done; + } + +@@ -1159,25 +1159,25 @@ XhcCheckUrbResult ( + case TRB_COMPLETION_STALL_ERROR: + CheckedUrb->Result |= EFI_USB_ERR_STALL; + CheckedUrb->Finished = TRUE; +- DEBUG ((EFI_D_ERROR, "XhcCheckUrbResult: STALL_ERROR! Completecode = %x\n",EvtTrb->Completecode)); ++ DEBUG ((DEBUG_ERROR, "XhcCheckUrbResult: STALL_ERROR! Completecode = %x\n",EvtTrb->Completecode)); + goto EXIT; + + case TRB_COMPLETION_BABBLE_ERROR: + CheckedUrb->Result |= EFI_USB_ERR_BABBLE; + CheckedUrb->Finished = TRUE; +- DEBUG ((EFI_D_ERROR, "XhcCheckUrbResult: BABBLE_ERROR! Completecode = %x\n",EvtTrb->Completecode)); ++ DEBUG ((DEBUG_ERROR, "XhcCheckUrbResult: BABBLE_ERROR! Completecode = %x\n",EvtTrb->Completecode)); + goto EXIT; + + case TRB_COMPLETION_DATA_BUFFER_ERROR: + CheckedUrb->Result |= EFI_USB_ERR_BUFFER; + CheckedUrb->Finished = TRUE; +- DEBUG ((EFI_D_ERROR, "XhcCheckUrbResult: ERR_BUFFER! Completecode = %x\n",EvtTrb->Completecode)); ++ DEBUG ((DEBUG_ERROR, "XhcCheckUrbResult: ERR_BUFFER! Completecode = %x\n",EvtTrb->Completecode)); + goto EXIT; + + case TRB_COMPLETION_USB_TRANSACTION_ERROR: + CheckedUrb->Result |= EFI_USB_ERR_TIMEOUT; + CheckedUrb->Finished = TRUE; +- DEBUG ((EFI_D_ERROR, "XhcCheckUrbResult: TRANSACTION_ERROR! Completecode = %x\n",EvtTrb->Completecode)); ++ DEBUG ((DEBUG_ERROR, "XhcCheckUrbResult: TRANSACTION_ERROR! Completecode = %x\n",EvtTrb->Completecode)); + goto EXIT; + + case TRB_COMPLETION_STOPPED: +@@ -1193,7 +1193,7 @@ XhcCheckUrbResult ( + case TRB_COMPLETION_SHORT_PACKET: + case TRB_COMPLETION_SUCCESS: + if (EvtTrb->Completecode == TRB_COMPLETION_SHORT_PACKET) { +- DEBUG ((EFI_D_VERBOSE, "XhcCheckUrbResult: short packet happens!\n")); ++ DEBUG ((DEBUG_VERBOSE, "XhcCheckUrbResult: short packet happens!\n")); + } + + TRBType = (UINT8) (TRBPtr->Type); +@@ -1206,7 +1206,7 @@ XhcCheckUrbResult ( + break; + + default: +- DEBUG ((EFI_D_ERROR, "Transfer Default Error Occur! Completecode = 0x%x!\n",EvtTrb->Completecode)); ++ DEBUG ((DEBUG_ERROR, "Transfer Default Error Occur! Completecode = 0x%x!\n",EvtTrb->Completecode)); + CheckedUrb->Result |= EFI_USB_ERR_TIMEOUT; + CheckedUrb->Finished = TRUE; + goto EXIT; +@@ -1396,7 +1396,7 @@ XhciDelAsyncIntTransfer ( + // + Status = XhcDequeueTrbFromEndpoint (Xhc, Urb); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "XhciDelAsyncIntTransfer: XhcDequeueTrbFromEndpoint failed\n")); ++ DEBUG ((DEBUG_ERROR, "XhciDelAsyncIntTransfer: XhcDequeueTrbFromEndpoint failed\n")); + } + + RemoveEntryList (&Urb->UrbList); +@@ -1434,7 +1434,7 @@ XhciDelAllAsyncIntTransfers ( + // + Status = XhcDequeueTrbFromEndpoint (Xhc, Urb); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "XhciDelAllAsyncIntTransfers: XhcDequeueTrbFromEndpoint failed\n")); ++ DEBUG ((DEBUG_ERROR, "XhciDelAllAsyncIntTransfers: XhcDequeueTrbFromEndpoint failed\n")); + } + + RemoveEntryList (&Urb->UrbList); +@@ -1644,7 +1644,7 @@ XhcMonitorAsyncRequests ( + // + Status = XhcFlushAsyncIntMap (Xhc, Urb); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "XhcMonitorAsyncRequests: Fail to Flush AsyncInt Mapped Memeory\n")); ++ DEBUG ((DEBUG_ERROR, "XhcMonitorAsyncRequests: Fail to Flush AsyncInt Mapped Memeory\n")); + } + + // +@@ -2139,11 +2139,11 @@ XhcInitializeDeviceSlot ( + (TRB_TEMPLATE **) (UINTN) &EvtTrb + ); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "XhcInitializeDeviceSlot: Enable Slot Failed, Status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "XhcInitializeDeviceSlot: Enable Slot Failed, Status = %r\n", Status)); + return Status; + } + ASSERT (EvtTrb->SlotId <= Xhc->MaxSlotsEn); +- DEBUG ((EFI_D_INFO, "Enable Slot Successfully, The Slot ID = 0x%x\n", EvtTrb->SlotId)); ++ DEBUG ((DEBUG_INFO, "Enable Slot Successfully, The Slot ID = 0x%x\n", EvtTrb->SlotId)); + SlotId = (UINT8)EvtTrb->SlotId; + ASSERT (SlotId != 0); + +@@ -2296,7 +2296,7 @@ XhcInitializeDeviceSlot ( + ); + if (!EFI_ERROR (Status)) { + DeviceAddress = (UINT8) ((DEVICE_CONTEXT *) OutputContext)->Slot.DeviceAddress; +- DEBUG ((EFI_D_INFO, " Address %d assigned successfully\n", DeviceAddress)); ++ DEBUG ((DEBUG_INFO, " Address %d assigned successfully\n", DeviceAddress)); + Xhc->UsbDevContext[SlotId].XhciDevAddr = DeviceAddress; + } else { + DEBUG ((DEBUG_ERROR, " Slot %d address not assigned successfully. Status = %r\n", SlotId, Status)); +@@ -2352,11 +2352,11 @@ XhcInitializeDeviceSlot64 ( + (TRB_TEMPLATE **) (UINTN) &EvtTrb + ); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "XhcInitializeDeviceSlot64: Enable Slot Failed, Status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "XhcInitializeDeviceSlot64: Enable Slot Failed, Status = %r\n", Status)); + return Status; + } + ASSERT (EvtTrb->SlotId <= Xhc->MaxSlotsEn); +- DEBUG ((EFI_D_INFO, "Enable Slot Successfully, The Slot ID = 0x%x\n", EvtTrb->SlotId)); ++ DEBUG ((DEBUG_INFO, "Enable Slot Successfully, The Slot ID = 0x%x\n", EvtTrb->SlotId)); + SlotId = (UINT8)EvtTrb->SlotId; + ASSERT (SlotId != 0); + +@@ -2509,7 +2509,7 @@ XhcInitializeDeviceSlot64 ( + ); + if (!EFI_ERROR (Status)) { + DeviceAddress = (UINT8) ((DEVICE_CONTEXT_64 *) OutputContext)->Slot.DeviceAddress; +- DEBUG ((EFI_D_INFO, " Address %d assigned successfully\n", DeviceAddress)); ++ DEBUG ((DEBUG_INFO, " Address %d assigned successfully\n", DeviceAddress)); + Xhc->UsbDevContext[SlotId].XhciDevAddr = DeviceAddress; + } else { + DEBUG ((DEBUG_ERROR, " Slot %d address not assigned successfully. Status = %r\n", SlotId, Status)); +@@ -2556,7 +2556,7 @@ XhcDisableSlotCmd ( + Status = XhcDisableSlotCmd (Xhc, Xhc->UsbDevContext[Index + 1].SlotId); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "XhcDisableSlotCmd: failed to disable child, ignore error\n")); ++ DEBUG ((DEBUG_ERROR, "XhcDisableSlotCmd: failed to disable child, ignore error\n")); + Xhc->UsbDevContext[Index + 1].SlotId = 0; + } + } +@@ -2564,7 +2564,7 @@ XhcDisableSlotCmd ( + // + // Construct the disable slot command + // +- DEBUG ((EFI_D_INFO, "Disable device slot %d!\n", SlotId)); ++ DEBUG ((DEBUG_INFO, "Disable device slot %d!\n", SlotId)); + + ZeroMem (&CmdTrbDisSlot, sizeof (CmdTrbDisSlot)); + CmdTrbDisSlot.CycleBit = 1; +@@ -2577,7 +2577,7 @@ XhcDisableSlotCmd ( + (TRB_TEMPLATE **) (UINTN) &EvtTrb + ); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "XhcDisableSlotCmd: Disable Slot Command Failed, Status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "XhcDisableSlotCmd: Disable Slot Command Failed, Status = %r\n", Status)); + return Status; + } + // +@@ -2663,7 +2663,7 @@ XhcDisableSlotCmd64 ( + Status = XhcDisableSlotCmd64 (Xhc, Xhc->UsbDevContext[Index + 1].SlotId); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "XhcDisableSlotCmd: failed to disable child, ignore error\n")); ++ DEBUG ((DEBUG_ERROR, "XhcDisableSlotCmd: failed to disable child, ignore error\n")); + Xhc->UsbDevContext[Index + 1].SlotId = 0; + } + } +@@ -2671,7 +2671,7 @@ XhcDisableSlotCmd64 ( + // + // Construct the disable slot command + // +- DEBUG ((EFI_D_INFO, "Disable device slot %d!\n", SlotId)); ++ DEBUG ((DEBUG_INFO, "Disable device slot %d!\n", SlotId)); + + ZeroMem (&CmdTrbDisSlot, sizeof (CmdTrbDisSlot)); + CmdTrbDisSlot.CycleBit = 1; +@@ -2684,7 +2684,7 @@ XhcDisableSlotCmd64 ( + (TRB_TEMPLATE **) (UINTN) &EvtTrb + ); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "XhcDisableSlotCmd: Disable Slot Command Failed, Status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "XhcDisableSlotCmd: Disable Slot Command Failed, Status = %r\n", Status)); + return Status; + } + // +@@ -2851,7 +2851,7 @@ XhcInitializeEndpointContext ( + // + // Do not support isochronous transfer now. + // +- DEBUG ((EFI_D_INFO, "XhcInitializeEndpointContext: Unsupport ISO EP found, Transfer ring is not allocated.\n")); ++ DEBUG ((DEBUG_INFO, "XhcInitializeEndpointContext: Unsupport ISO EP found, Transfer ring is not allocated.\n")); + EpDesc = (USB_ENDPOINT_DESCRIPTOR *)((UINTN)EpDesc + EpDesc->Length); + continue; + case USB_ENDPOINT_INTERRUPT: +@@ -2903,9 +2903,9 @@ XhcInitializeEndpointContext ( + // + // Do not support control transfer now. + // +- DEBUG ((EFI_D_INFO, "XhcInitializeEndpointContext: Unsupport Control EP found, Transfer ring is not allocated.\n")); ++ DEBUG ((DEBUG_INFO, "XhcInitializeEndpointContext: Unsupport Control EP found, Transfer ring is not allocated.\n")); + default: +- DEBUG ((EFI_D_INFO, "XhcInitializeEndpointContext: Unknown EP found, Transfer ring is not allocated.\n")); ++ DEBUG ((DEBUG_INFO, "XhcInitializeEndpointContext: Unknown EP found, Transfer ring is not allocated.\n")); + EpDesc = (USB_ENDPOINT_DESCRIPTOR *)((UINTN)EpDesc + EpDesc->Length); + continue; + } +@@ -3043,7 +3043,7 @@ XhcInitializeEndpointContext64 ( + // + // Do not support isochronous transfer now. + // +- DEBUG ((EFI_D_INFO, "XhcInitializeEndpointContext64: Unsupport ISO EP found, Transfer ring is not allocated.\n")); ++ DEBUG ((DEBUG_INFO, "XhcInitializeEndpointContext64: Unsupport ISO EP found, Transfer ring is not allocated.\n")); + EpDesc = (USB_ENDPOINT_DESCRIPTOR *)((UINTN)EpDesc + EpDesc->Length); + continue; + case USB_ENDPOINT_INTERRUPT: +@@ -3095,9 +3095,9 @@ XhcInitializeEndpointContext64 ( + // + // Do not support control transfer now. + // +- DEBUG ((EFI_D_INFO, "XhcInitializeEndpointContext64: Unsupport Control EP found, Transfer ring is not allocated.\n")); ++ DEBUG ((DEBUG_INFO, "XhcInitializeEndpointContext64: Unsupport Control EP found, Transfer ring is not allocated.\n")); + default: +- DEBUG ((EFI_D_INFO, "XhcInitializeEndpointContext64: Unknown EP found, Transfer ring is not allocated.\n")); ++ DEBUG ((DEBUG_INFO, "XhcInitializeEndpointContext64: Unknown EP found, Transfer ring is not allocated.\n")); + EpDesc = (USB_ENDPOINT_DESCRIPTOR *)((UINTN)EpDesc + EpDesc->Length); + continue; + } +@@ -3192,7 +3192,7 @@ XhcSetConfigCmd ( + CmdTrbCfgEP.CycleBit = 1; + CmdTrbCfgEP.Type = TRB_TYPE_CON_ENDPOINT; + CmdTrbCfgEP.SlotId = Xhc->UsbDevContext[SlotId].SlotId; +- DEBUG ((EFI_D_INFO, "Configure Endpoint\n")); ++ DEBUG ((DEBUG_INFO, "Configure Endpoint\n")); + Status = XhcCmdTransfer ( + Xhc, + (TRB_TEMPLATE *) (UINTN) &CmdTrbCfgEP, +@@ -3200,7 +3200,7 @@ XhcSetConfigCmd ( + (TRB_TEMPLATE **) (UINTN) &EvtTrb + ); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "XhcSetConfigCmd: Config Endpoint Failed, Status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "XhcSetConfigCmd: Config Endpoint Failed, Status = %r\n", Status)); + } else { + Xhc->UsbDevContext[SlotId].ActiveConfiguration = ConfigDesc->ConfigurationValue; + } +@@ -3282,7 +3282,7 @@ XhcSetConfigCmd64 ( + CmdTrbCfgEP.CycleBit = 1; + CmdTrbCfgEP.Type = TRB_TYPE_CON_ENDPOINT; + CmdTrbCfgEP.SlotId = Xhc->UsbDevContext[SlotId].SlotId; +- DEBUG ((EFI_D_INFO, "Configure Endpoint\n")); ++ DEBUG ((DEBUG_INFO, "Configure Endpoint\n")); + Status = XhcCmdTransfer ( + Xhc, + (TRB_TEMPLATE *) (UINTN) &CmdTrbCfgEP, +@@ -3290,7 +3290,7 @@ XhcSetConfigCmd64 ( + (TRB_TEMPLATE **) (UINTN) &EvtTrb + ); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "XhcSetConfigCmd64: Config Endpoint Failed, Status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "XhcSetConfigCmd64: Config Endpoint Failed, Status = %r\n", Status)); + } else { + Xhc->UsbDevContext[SlotId].ActiveConfiguration = ConfigDesc->ConfigurationValue; + } +@@ -3323,7 +3323,7 @@ XhcStopEndpoint ( + EVT_TRB_COMMAND_COMPLETION *EvtTrb; + CMD_TRB_STOP_ENDPOINT CmdTrbStopED; + +- DEBUG ((EFI_D_INFO, "XhcStopEndpoint: Slot = 0x%x, Dci = 0x%x\n", SlotId, Dci)); ++ DEBUG ((DEBUG_INFO, "XhcStopEndpoint: Slot = 0x%x, Dci = 0x%x\n", SlotId, Dci)); + + // + // When XhcCheckUrbResult waits for the Stop_Endpoint completion, it also checks +@@ -3363,7 +3363,7 @@ XhcStopEndpoint ( + (TRB_TEMPLATE **) (UINTN) &EvtTrb + ); + if (EFI_ERROR(Status)) { +- DEBUG ((EFI_D_ERROR, "XhcStopEndpoint: Stop Endpoint Failed, Status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "XhcStopEndpoint: Stop Endpoint Failed, Status = %r\n", Status)); + } + + Xhc->PendingUrb = NULL; +@@ -3394,7 +3394,7 @@ XhcResetEndpoint ( + EVT_TRB_COMMAND_COMPLETION *EvtTrb; + CMD_TRB_RESET_ENDPOINT CmdTrbResetED; + +- DEBUG ((EFI_D_INFO, "XhcResetEndpoint: Slot = 0x%x, Dci = 0x%x\n", SlotId, Dci)); ++ DEBUG ((DEBUG_INFO, "XhcResetEndpoint: Slot = 0x%x, Dci = 0x%x\n", SlotId, Dci)); + + // + // Send stop endpoint command to transit Endpoint from running to stop state +@@ -3411,7 +3411,7 @@ XhcResetEndpoint ( + (TRB_TEMPLATE **) (UINTN) &EvtTrb + ); + if (EFI_ERROR(Status)) { +- DEBUG ((EFI_D_ERROR, "XhcResetEndpoint: Reset Endpoint Failed, Status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "XhcResetEndpoint: Reset Endpoint Failed, Status = %r\n", Status)); + } + + return Status; +@@ -3444,7 +3444,7 @@ XhcSetTrDequeuePointer ( + CMD_SET_TR_DEQ_POINTER CmdSetTRDeq; + EFI_PHYSICAL_ADDRESS PhyAddr; + +- DEBUG ((EFI_D_INFO, "XhcSetTrDequeuePointer: Slot = 0x%x, Dci = 0x%x, Urb = 0x%x\n", SlotId, Dci, Urb)); ++ DEBUG ((DEBUG_INFO, "XhcSetTrDequeuePointer: Slot = 0x%x, Dci = 0x%x, Urb = 0x%x\n", SlotId, Dci, Urb)); + + // + // Send stop endpoint command to transit Endpoint from running to stop state +@@ -3464,7 +3464,7 @@ XhcSetTrDequeuePointer ( + (TRB_TEMPLATE **) (UINTN) &EvtTrb + ); + if (EFI_ERROR(Status)) { +- DEBUG ((EFI_D_ERROR, "XhcSetTrDequeuePointer: Set TR Dequeue Pointer Failed, Status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "XhcSetTrDequeuePointer: Set TR Dequeue Pointer Failed, Status = %r\n", Status)); + } + + return Status; +@@ -3652,7 +3652,7 @@ XhcSetInterface ( + CmdTrbCfgEP.CycleBit = 1; + CmdTrbCfgEP.Type = TRB_TYPE_CON_ENDPOINT; + CmdTrbCfgEP.SlotId = Xhc->UsbDevContext[SlotId].SlotId; +- DEBUG ((EFI_D_INFO, "SetInterface: Configure Endpoint\n")); ++ DEBUG ((DEBUG_INFO, "SetInterface: Configure Endpoint\n")); + Status = XhcCmdTransfer ( + Xhc, + (TRB_TEMPLATE *) (UINTN) &CmdTrbCfgEP, +@@ -3660,7 +3660,7 @@ XhcSetInterface ( + (TRB_TEMPLATE **) (UINTN) &EvtTrb + ); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "SetInterface: Config Endpoint Failed, Status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "SetInterface: Config Endpoint Failed, Status = %r\n", Status)); + } else { + // + // Update the active AlternateSetting. +@@ -3854,7 +3854,7 @@ XhcSetInterface64 ( + CmdTrbCfgEP.CycleBit = 1; + CmdTrbCfgEP.Type = TRB_TYPE_CON_ENDPOINT; + CmdTrbCfgEP.SlotId = Xhc->UsbDevContext[SlotId].SlotId; +- DEBUG ((EFI_D_INFO, "SetInterface64: Configure Endpoint\n")); ++ DEBUG ((DEBUG_INFO, "SetInterface64: Configure Endpoint\n")); + Status = XhcCmdTransfer ( + Xhc, + (TRB_TEMPLATE *) (UINTN) &CmdTrbCfgEP, +@@ -3862,7 +3862,7 @@ XhcSetInterface64 ( + (TRB_TEMPLATE **) (UINTN) &EvtTrb + ); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "SetInterface64: Config Endpoint Failed, Status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "SetInterface64: Config Endpoint Failed, Status = %r\n", Status)); + } else { + // + // Update the active AlternateSetting. +@@ -3916,7 +3916,7 @@ XhcEvaluateContext ( + CmdTrbEvalu.CycleBit = 1; + CmdTrbEvalu.Type = TRB_TYPE_EVALU_CONTXT; + CmdTrbEvalu.SlotId = Xhc->UsbDevContext[SlotId].SlotId; +- DEBUG ((EFI_D_INFO, "Evaluate context\n")); ++ DEBUG ((DEBUG_INFO, "Evaluate context\n")); + Status = XhcCmdTransfer ( + Xhc, + (TRB_TEMPLATE *) (UINTN) &CmdTrbEvalu, +@@ -3924,7 +3924,7 @@ XhcEvaluateContext ( + (TRB_TEMPLATE **) (UINTN) &EvtTrb + ); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "XhcEvaluateContext: Evaluate Context Failed, Status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "XhcEvaluateContext: Evaluate Context Failed, Status = %r\n", Status)); + } + return Status; + } +@@ -3971,7 +3971,7 @@ XhcEvaluateContext64 ( + CmdTrbEvalu.CycleBit = 1; + CmdTrbEvalu.Type = TRB_TYPE_EVALU_CONTXT; + CmdTrbEvalu.SlotId = Xhc->UsbDevContext[SlotId].SlotId; +- DEBUG ((EFI_D_INFO, "Evaluate context\n")); ++ DEBUG ((DEBUG_INFO, "Evaluate context\n")); + Status = XhcCmdTransfer ( + Xhc, + (TRB_TEMPLATE *) (UINTN) &CmdTrbEvalu, +@@ -3979,7 +3979,7 @@ XhcEvaluateContext64 ( + (TRB_TEMPLATE **) (UINTN) &EvtTrb + ); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "XhcEvaluateContext64: Evaluate Context Failed, Status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "XhcEvaluateContext64: Evaluate Context Failed, Status = %r\n", Status)); + } + return Status; + } +@@ -4040,7 +4040,7 @@ XhcConfigHubContext ( + CmdTrbCfgEP.CycleBit = 1; + CmdTrbCfgEP.Type = TRB_TYPE_CON_ENDPOINT; + CmdTrbCfgEP.SlotId = Xhc->UsbDevContext[SlotId].SlotId; +- DEBUG ((EFI_D_INFO, "Configure Hub Slot Context\n")); ++ DEBUG ((DEBUG_INFO, "Configure Hub Slot Context\n")); + Status = XhcCmdTransfer ( + Xhc, + (TRB_TEMPLATE *) (UINTN) &CmdTrbCfgEP, +@@ -4048,7 +4048,7 @@ XhcConfigHubContext ( + (TRB_TEMPLATE **) (UINTN) &EvtTrb + ); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "XhcConfigHubContext: Config Endpoint Failed, Status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "XhcConfigHubContext: Config Endpoint Failed, Status = %r\n", Status)); + } + return Status; + } +@@ -4108,7 +4108,7 @@ XhcConfigHubContext64 ( + CmdTrbCfgEP.CycleBit = 1; + CmdTrbCfgEP.Type = TRB_TYPE_CON_ENDPOINT; + CmdTrbCfgEP.SlotId = Xhc->UsbDevContext[SlotId].SlotId; +- DEBUG ((EFI_D_INFO, "Configure Hub Slot Context\n")); ++ DEBUG ((DEBUG_INFO, "Configure Hub Slot Context\n")); + Status = XhcCmdTransfer ( + Xhc, + (TRB_TEMPLATE *) (UINTN) &CmdTrbCfgEP, +@@ -4116,9 +4116,7 @@ XhcConfigHubContext64 ( + (TRB_TEMPLATE **) (UINTN) &EvtTrb + ); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "XhcConfigHubContext64: Config Endpoint Failed, Status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "XhcConfigHubContext64: Config Endpoint Failed, Status = %r\n", Status)); + } + return Status; + } +- +- +diff --git a/MdeModulePkg/Bus/Pci/XhciPei/XhcPeim.c b/MdeModulePkg/Bus/Pci/XhciPei/XhcPeim.c +index 4b670ebedf..6bdf488413 100644 +--- a/MdeModulePkg/Bus/Pci/XhciPei/XhcPeim.c ++++ b/MdeModulePkg/Bus/Pci/XhciPei/XhcPeim.c +@@ -386,7 +386,7 @@ XhcPeiResetHC ( + MicroSecondDelay (1000); + Status = XhcPeiWaitOpRegBit (Xhc, XHC_USBCMD_OFFSET, XHC_USBCMD_RESET, FALSE, Timeout); + ON_EXIT: +- DEBUG ((EFI_D_INFO, "XhcPeiResetHC: %r\n", Status)); ++ DEBUG ((DEBUG_INFO, "XhcPeiResetHC: %r\n", Status)); + return Status; + } + +@@ -410,7 +410,7 @@ XhcPeiHaltHC ( + + XhcPeiClearOpRegBit (Xhc, XHC_USBCMD_OFFSET, XHC_USBCMD_RUN); + Status = XhcPeiWaitOpRegBit (Xhc, XHC_USBSTS_OFFSET, XHC_USBSTS_HALT, TRUE, Timeout); +- DEBUG ((EFI_D_INFO, "XhcPeiHaltHC: %r\n", Status)); ++ DEBUG ((DEBUG_INFO, "XhcPeiHaltHC: %r\n", Status)); + return Status; + } + +@@ -434,7 +434,7 @@ XhcPeiRunHC ( + + XhcPeiSetOpRegBit (Xhc, XHC_USBCMD_OFFSET, XHC_USBCMD_RUN); + Status = XhcPeiWaitOpRegBit (Xhc, XHC_USBSTS_OFFSET, XHC_USBSTS_HALT, FALSE, Timeout); +- DEBUG ((EFI_D_INFO, "XhcPeiRunHC: %r\n", Status)); ++ DEBUG ((DEBUG_INFO, "XhcPeiRunHC: %r\n", Status)); + return Status; + } + +@@ -544,7 +544,7 @@ XhcPeiControlTransfer ( + Len = 0; + + if (XhcPeiIsHalt (Xhc) || XhcPeiIsSysError (Xhc)) { +- DEBUG ((EFI_D_ERROR, "XhcPeiControlTransfer: HC is halted or has system error\n")); ++ DEBUG ((DEBUG_ERROR, "XhcPeiControlTransfer: HC is halted or has system error\n")); + goto ON_EXIT; + } + +@@ -611,7 +611,7 @@ XhcPeiControlTransfer ( + ); + + if (Urb == NULL) { +- DEBUG ((EFI_D_ERROR, "XhcPeiControlTransfer: failed to create URB")); ++ DEBUG ((DEBUG_ERROR, "XhcPeiControlTransfer: failed to create URB")); + Status = EFI_OUT_OF_RESOURCES; + goto ON_EXIT; + } +@@ -631,7 +631,7 @@ XhcPeiControlTransfer ( + // + RecoveryStatus = XhcPeiDequeueTrbFromEndpoint(Xhc, Urb); + if (EFI_ERROR(RecoveryStatus)) { +- DEBUG((EFI_D_ERROR, "XhcPeiControlTransfer: XhcPeiDequeueTrbFromEndpoint failed\n")); ++ DEBUG((DEBUG_ERROR, "XhcPeiControlTransfer: XhcPeiDequeueTrbFromEndpoint failed\n")); + } + XhcPeiFreeUrb (Xhc, Urb); + goto ON_EXIT; +@@ -641,7 +641,7 @@ XhcPeiControlTransfer ( + } else if ((*TransferResult == EFI_USB_ERR_STALL) || (*TransferResult == EFI_USB_ERR_BABBLE)) { + RecoveryStatus = XhcPeiRecoverHaltedEndpoint(Xhc, Urb); + if (EFI_ERROR (RecoveryStatus)) { +- DEBUG ((EFI_D_ERROR, "XhcPeiControlTransfer: XhcPeiRecoverHaltedEndpoint failed\n")); ++ DEBUG ((DEBUG_ERROR, "XhcPeiControlTransfer: XhcPeiRecoverHaltedEndpoint failed\n")); + } + Status = EFI_DEVICE_ERROR; + XhcPeiFreeUrb (Xhc, Urb); +@@ -718,7 +718,7 @@ XhcPeiControlTransfer ( + // Don't support multi-TT feature for super speed hub now. + // + MTT = 0; +- DEBUG ((EFI_D_ERROR, "XHCI: Don't support multi-TT feature for Hub now. (force to disable MTT)\n")); ++ DEBUG ((DEBUG_ERROR, "XHCI: Don't support multi-TT feature for Hub now. (force to disable MTT)\n")); + } else { + MTT = 0; + } +@@ -825,7 +825,7 @@ XhcPeiControlTransfer ( + ON_EXIT: + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "XhcPeiControlTransfer: error - %r, transfer - %x\n", Status, *TransferResult)); ++ DEBUG ((DEBUG_ERROR, "XhcPeiControlTransfer: error - %r, transfer - %x\n", Status, *TransferResult)); + } + + return Status; +@@ -911,7 +911,7 @@ XhcPeiBulkTransfer ( + Status = EFI_DEVICE_ERROR; + + if (XhcPeiIsHalt (Xhc) || XhcPeiIsSysError (Xhc)) { +- DEBUG ((EFI_D_ERROR, "XhcPeiBulkTransfer: HC is halted or has system error\n")); ++ DEBUG ((DEBUG_ERROR, "XhcPeiBulkTransfer: HC is halted or has system error\n")); + goto ON_EXIT; + } + +@@ -942,7 +942,7 @@ XhcPeiBulkTransfer ( + ); + + if (Urb == NULL) { +- DEBUG ((EFI_D_ERROR, "XhcPeiBulkTransfer: failed to create URB\n")); ++ DEBUG ((DEBUG_ERROR, "XhcPeiBulkTransfer: failed to create URB\n")); + Status = EFI_OUT_OF_RESOURCES; + goto ON_EXIT; + } +@@ -958,7 +958,7 @@ XhcPeiBulkTransfer ( + // + RecoveryStatus = XhcPeiDequeueTrbFromEndpoint(Xhc, Urb); + if (EFI_ERROR(RecoveryStatus)) { +- DEBUG((EFI_D_ERROR, "XhcPeiBulkTransfer: XhcPeiDequeueTrbFromEndpoint failed\n")); ++ DEBUG((DEBUG_ERROR, "XhcPeiBulkTransfer: XhcPeiDequeueTrbFromEndpoint failed\n")); + } + } else { + if (*TransferResult == EFI_USB_NOERROR) { +@@ -966,7 +966,7 @@ XhcPeiBulkTransfer ( + } else if ((*TransferResult == EFI_USB_ERR_STALL) || (*TransferResult == EFI_USB_ERR_BABBLE)) { + RecoveryStatus = XhcPeiRecoverHaltedEndpoint(Xhc, Urb); + if (EFI_ERROR (RecoveryStatus)) { +- DEBUG ((EFI_D_ERROR, "XhcPeiBulkTransfer: XhcPeiRecoverHaltedEndpoint failed\n")); ++ DEBUG ((DEBUG_ERROR, "XhcPeiBulkTransfer: XhcPeiRecoverHaltedEndpoint failed\n")); + } + Status = EFI_DEVICE_ERROR; + } +@@ -977,7 +977,7 @@ XhcPeiBulkTransfer ( + ON_EXIT: + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "XhcPeiBulkTransfer: error - %r, transfer - %x\n", Status, *TransferResult)); ++ DEBUG ((DEBUG_ERROR, "XhcPeiBulkTransfer: error - %r, transfer - %x\n", Status, *TransferResult)); + } + + return Status; +@@ -1011,7 +1011,7 @@ XhcPeiGetRootHubPortNumber ( + } + + *PortNumber = XhcDev->HcSParams1.Data.MaxPorts; +- DEBUG ((EFI_D_INFO, "XhcPeiGetRootHubPortNumber: PortNumber = %x\n", *PortNumber)); ++ DEBUG ((DEBUG_INFO, "XhcPeiGetRootHubPortNumber: PortNumber = %x\n", *PortNumber)); + return EFI_SUCCESS; + } + +@@ -1054,7 +1054,7 @@ XhcPeiClearRootHubPortFeature ( + + Offset = (UINT32) (XHC_PORTSC_OFFSET + (0x10 * PortNumber)); + State = XhcPeiReadOpReg (Xhc, Offset); +- DEBUG ((EFI_D_INFO, "XhcPeiClearRootHubPortFeature: Port: %x State: %x\n", PortNumber, State)); ++ DEBUG ((DEBUG_INFO, "XhcPeiClearRootHubPortFeature: Port: %x State: %x\n", PortNumber, State)); + + // + // Mask off the port status change bits, these bits are +@@ -1148,7 +1148,7 @@ XhcPeiClearRootHubPortFeature ( + } + + ON_EXIT: +- DEBUG ((EFI_D_INFO, "XhcPeiClearRootHubPortFeature: PortFeature: %x Status = %r\n", PortFeature, Status)); ++ DEBUG ((DEBUG_INFO, "XhcPeiClearRootHubPortFeature: PortFeature: %x Status = %r\n", PortFeature, Status)); + return Status; + } + +@@ -1189,7 +1189,7 @@ XhcPeiSetRootHubPortFeature ( + + Offset = (UINT32) (XHC_PORTSC_OFFSET + (0x10 * PortNumber)); + State = XhcPeiReadOpReg (Xhc, Offset); +- DEBUG ((EFI_D_INFO, "XhcPeiSetRootHubPortFeature: Port: %x State: %x\n", PortNumber, State)); ++ DEBUG ((DEBUG_INFO, "XhcPeiSetRootHubPortFeature: Port: %x State: %x\n", PortNumber, State)); + + // + // Mask off the port status change bits, these bits are +@@ -1256,7 +1256,7 @@ XhcPeiSetRootHubPortFeature ( + } + + ON_EXIT: +- DEBUG ((EFI_D_INFO, "XhcPeiSetRootHubPortFeature: PortFeature: %x Status = %r\n", PortFeature, Status)); ++ DEBUG ((DEBUG_INFO, "XhcPeiSetRootHubPortFeature: PortFeature: %x Status = %r\n", PortFeature, Status)); + return Status; + } + +@@ -1307,7 +1307,7 @@ XhcPeiGetRootHubPortStatus ( + + Offset = (UINT32) (XHC_PORTSC_OFFSET + (0x10 * PortNumber)); + State = XhcPeiReadOpReg (Xhc, Offset); +- DEBUG ((EFI_D_INFO, "XhcPeiGetRootHubPortStatus: Port: %x State: %x\n", PortNumber, State)); ++ DEBUG ((DEBUG_INFO, "XhcPeiGetRootHubPortStatus: Port: %x State: %x\n", PortNumber, State)); + + // + // According to XHCI 1.1 spec November 2017, +@@ -1371,7 +1371,7 @@ XhcPeiGetRootHubPortStatus ( + ParentRouteChart.Dword = 0; + XhcPeiPollPortStatusChange (Xhc, ParentRouteChart, PortNumber, PortStatus); + +- DEBUG ((EFI_D_INFO, "XhcPeiGetRootHubPortStatus: PortChangeStatus: %x PortStatus: %x\n", PortStatus->PortChangeStatus, PortStatus->PortStatus)); ++ DEBUG ((DEBUG_INFO, "XhcPeiGetRootHubPortStatus: PortChangeStatus: %x PortStatus: %x\n", PortStatus->PortChangeStatus, PortStatus->PortStatus)); + return EFI_SUCCESS; + } + +@@ -1501,14 +1501,14 @@ XhcPeimEntry ( + PageSize = XhcPeiReadOpReg (XhcDev, XHC_PAGESIZE_OFFSET) & XHC_PAGESIZE_MASK; + XhcDev->PageSize = 1 << (HighBitSet32 (PageSize) + 12); + +- DEBUG ((EFI_D_INFO, "XhciPei: UsbHostControllerBaseAddress: %x\n", XhcDev->UsbHostControllerBaseAddress)); +- DEBUG ((EFI_D_INFO, "XhciPei: CapLength: %x\n", XhcDev->CapLength)); +- DEBUG ((EFI_D_INFO, "XhciPei: HcSParams1: %x\n", XhcDev->HcSParams1.Dword)); +- DEBUG ((EFI_D_INFO, "XhciPei: HcSParams2: %x\n", XhcDev->HcSParams2.Dword)); +- DEBUG ((EFI_D_INFO, "XhciPei: HcCParams: %x\n", XhcDev->HcCParams.Dword)); +- DEBUG ((EFI_D_INFO, "XhciPei: DBOff: %x\n", XhcDev->DBOff)); +- DEBUG ((EFI_D_INFO, "XhciPei: RTSOff: %x\n", XhcDev->RTSOff)); +- DEBUG ((EFI_D_INFO, "XhciPei: PageSize: %x\n", XhcDev->PageSize)); ++ DEBUG ((DEBUG_INFO, "XhciPei: UsbHostControllerBaseAddress: %x\n", XhcDev->UsbHostControllerBaseAddress)); ++ DEBUG ((DEBUG_INFO, "XhciPei: CapLength: %x\n", XhcDev->CapLength)); ++ DEBUG ((DEBUG_INFO, "XhciPei: HcSParams1: %x\n", XhcDev->HcSParams1.Dword)); ++ DEBUG ((DEBUG_INFO, "XhciPei: HcSParams2: %x\n", XhcDev->HcSParams2.Dword)); ++ DEBUG ((DEBUG_INFO, "XhciPei: HcCParams: %x\n", XhcDev->HcCParams.Dword)); ++ DEBUG ((DEBUG_INFO, "XhciPei: DBOff: %x\n", XhcDev->DBOff)); ++ DEBUG ((DEBUG_INFO, "XhciPei: RTSOff: %x\n", XhcDev->RTSOff)); ++ DEBUG ((DEBUG_INFO, "XhciPei: PageSize: %x\n", XhcDev->PageSize)); + + XhcPeiResetHC (XhcDev, XHC_RESET_TIMEOUT); + ASSERT (XhcPeiIsHalt (XhcDev)); +@@ -1551,4 +1551,3 @@ XhcPeimEntry ( + + return EFI_SUCCESS; + } +- +diff --git a/MdeModulePkg/Bus/Pci/XhciPei/XhciSched.c b/MdeModulePkg/Bus/Pci/XhciPei/XhciSched.c +index 5b9892a1cb..1fc06aaa61 100644 +--- a/MdeModulePkg/Bus/Pci/XhciPei/XhciSched.c ++++ b/MdeModulePkg/Bus/Pci/XhciPei/XhciSched.c +@@ -81,7 +81,7 @@ XhcPeiCmdTransfer ( + Status = EFI_DEVICE_ERROR; + + if (XhcPeiIsHalt (Xhc) || XhcPeiIsSysError (Xhc)) { +- DEBUG ((EFI_D_ERROR, "XhcPeiCmdTransfer: HC is halted or has system error\n")); ++ DEBUG ((DEBUG_ERROR, "XhcPeiCmdTransfer: HC is halted or has system error\n")); + goto ON_EXIT; + } + +@@ -90,7 +90,7 @@ XhcPeiCmdTransfer ( + // + Urb = XhcPeiCreateCmdTrb (Xhc, CmdTrb); + if (Urb == NULL) { +- DEBUG ((EFI_D_ERROR, "XhcPeiCmdTransfer: failed to create URB\n")); ++ DEBUG ((DEBUG_ERROR, "XhcPeiCmdTransfer: failed to create URB\n")); + Status = EFI_OUT_OF_RESOURCES; + goto ON_EXIT; + } +@@ -168,7 +168,7 @@ XhcPeiCreateUrb ( + + Status = XhcPeiCreateTransferTrb (Xhc, Urb); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "XhcPeiCreateUrb: XhcPeiCreateTransferTrb Failed, Status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "XhcPeiCreateUrb: XhcPeiCreateTransferTrb Failed, Status = %r\n", Status)); + FreePool (Urb); + Urb = NULL; + } +@@ -439,7 +439,7 @@ XhcPeiCreateTransferTrb ( + break; + + default: +- DEBUG ((EFI_D_INFO, "Not supported EPType 0x%x!\n",EPType)); ++ DEBUG ((DEBUG_INFO, "Not supported EPType 0x%x!\n",EPType)); + ASSERT (FALSE); + break; + } +@@ -478,14 +478,14 @@ XhcPeiRecoverHaltedEndpoint ( + } + Dci = XhcPeiEndpointToDci (Urb->Ep.EpAddr, (UINT8) (Urb->Ep.Direction)); + +- DEBUG ((EFI_D_INFO, "XhcPeiRecoverHaltedEndpoint: Recovery Halted Slot = %x, Dci = %x\n", SlotId, Dci)); ++ DEBUG ((DEBUG_INFO, "XhcPeiRecoverHaltedEndpoint: Recovery Halted Slot = %x, Dci = %x\n", SlotId, Dci)); + + // + // 1) Send Reset endpoint command to transit from halt to stop state + // + Status = XhcPeiResetEndpoint (Xhc, SlotId, Dci); + if (EFI_ERROR(Status)) { +- DEBUG ((EFI_D_ERROR, "XhcPeiRecoverHaltedEndpoint: Reset Endpoint Failed, Status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "XhcPeiRecoverHaltedEndpoint: Reset Endpoint Failed, Status = %r\n", Status)); + goto Done; + } + +@@ -494,7 +494,7 @@ XhcPeiRecoverHaltedEndpoint ( + // + Status = XhcPeiSetTrDequeuePointer (Xhc, SlotId, Dci, Urb); + if (EFI_ERROR(Status)) { +- DEBUG ((EFI_D_ERROR, "XhcPeiRecoverHaltedEndpoint: Set Dequeue Pointer Failed, Status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "XhcPeiRecoverHaltedEndpoint: Set Dequeue Pointer Failed, Status = %r\n", Status)); + goto Done; + } + +@@ -537,14 +537,14 @@ XhcPeiDequeueTrbFromEndpoint ( + } + Dci = XhcPeiEndpointToDci (Urb->Ep.EpAddr, (UINT8) (Urb->Ep.Direction)); + +- DEBUG ((EFI_D_INFO, "XhcPeiDequeueTrbFromEndpoint: Stop Slot = %x, Dci = %x\n", SlotId, Dci)); ++ DEBUG ((DEBUG_INFO, "XhcPeiDequeueTrbFromEndpoint: Stop Slot = %x, Dci = %x\n", SlotId, Dci)); + + // + // 1) Send Stop endpoint command to stop endpoint. + // + Status = XhcPeiStopEndpoint (Xhc, SlotId, Dci); + if (EFI_ERROR(Status)) { +- DEBUG ((EFI_D_ERROR, "XhcPeiDequeueTrbFromEndpoint: Stop Endpoint Failed, Status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "XhcPeiDequeueTrbFromEndpoint: Stop Endpoint Failed, Status = %r\n", Status)); + goto Done; + } + +@@ -553,7 +553,7 @@ XhcPeiDequeueTrbFromEndpoint ( + // + Status = XhcPeiSetTrDequeuePointer (Xhc, SlotId, Dci, Urb); + if (EFI_ERROR(Status)) { +- DEBUG ((EFI_D_ERROR, "XhcPeiDequeueTrbFromEndpoint: Set Dequeue Pointer Failed, Status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "XhcPeiDequeueTrbFromEndpoint: Set Dequeue Pointer Failed, Status = %r\n", Status)); + goto Done; + } + +@@ -683,31 +683,31 @@ XhcPeiCheckUrbResult ( + case TRB_COMPLETION_STALL_ERROR: + CheckedUrb->Result |= EFI_USB_ERR_STALL; + CheckedUrb->Finished = TRUE; +- DEBUG ((EFI_D_ERROR, "XhcPeiCheckUrbResult: STALL_ERROR! Completecode = %x\n", EvtTrb->Completecode)); ++ DEBUG ((DEBUG_ERROR, "XhcPeiCheckUrbResult: STALL_ERROR! Completecode = %x\n", EvtTrb->Completecode)); + goto EXIT; + + case TRB_COMPLETION_BABBLE_ERROR: + CheckedUrb->Result |= EFI_USB_ERR_BABBLE; + CheckedUrb->Finished = TRUE; +- DEBUG ((EFI_D_ERROR, "XhcPeiCheckUrbResult: BABBLE_ERROR! Completecode = %x\n", EvtTrb->Completecode)); ++ DEBUG ((DEBUG_ERROR, "XhcPeiCheckUrbResult: BABBLE_ERROR! Completecode = %x\n", EvtTrb->Completecode)); + goto EXIT; + + case TRB_COMPLETION_DATA_BUFFER_ERROR: + CheckedUrb->Result |= EFI_USB_ERR_BUFFER; + CheckedUrb->Finished = TRUE; +- DEBUG ((EFI_D_ERROR, "XhcPeiCheckUrbResult: ERR_BUFFER! Completecode = %x\n", EvtTrb->Completecode)); ++ DEBUG ((DEBUG_ERROR, "XhcPeiCheckUrbResult: ERR_BUFFER! Completecode = %x\n", EvtTrb->Completecode)); + goto EXIT; + + case TRB_COMPLETION_USB_TRANSACTION_ERROR: + CheckedUrb->Result |= EFI_USB_ERR_TIMEOUT; + CheckedUrb->Finished = TRUE; +- DEBUG ((EFI_D_ERROR, "XhcPeiCheckUrbResult: TRANSACTION_ERROR! Completecode = %x\n", EvtTrb->Completecode)); ++ DEBUG ((DEBUG_ERROR, "XhcPeiCheckUrbResult: TRANSACTION_ERROR! Completecode = %x\n", EvtTrb->Completecode)); + goto EXIT; + + case TRB_COMPLETION_SHORT_PACKET: + case TRB_COMPLETION_SUCCESS: + if (EvtTrb->Completecode == TRB_COMPLETION_SHORT_PACKET) { +- DEBUG ((EFI_D_VERBOSE, "XhcPeiCheckUrbResult: short packet happens!\n")); ++ DEBUG ((DEBUG_VERBOSE, "XhcPeiCheckUrbResult: short packet happens!\n")); + } + + TRBType = (UINT8) (TRBPtr->Type); +@@ -720,7 +720,7 @@ XhcPeiCheckUrbResult ( + break; + + default: +- DEBUG ((EFI_D_ERROR, "XhcPeiCheckUrbResult: Transfer Default Error Occur! Completecode = 0x%x!\n", EvtTrb->Completecode)); ++ DEBUG ((DEBUG_ERROR, "XhcPeiCheckUrbResult: Transfer Default Error Occur! Completecode = 0x%x!\n", EvtTrb->Completecode)); + CheckedUrb->Result |= EFI_USB_ERR_TIMEOUT; + CheckedUrb->Finished = TRUE; + goto EXIT; +@@ -859,7 +859,7 @@ XhcPeiPollPortStatusChange ( + UINT8 SlotId; + USB_DEV_ROUTE RouteChart; + +- DEBUG ((EFI_D_INFO, "XhcPeiPollPortStatusChange: PortChangeStatus: %x PortStatus: %x\n", PortState->PortChangeStatus, PortState->PortStatus)); ++ DEBUG ((DEBUG_INFO, "XhcPeiPollPortStatusChange: PortChangeStatus: %x PortStatus: %x\n", PortState->PortChangeStatus, PortState->PortStatus)); + + Status = EFI_SUCCESS; + +@@ -1081,11 +1081,11 @@ XhcPeiInitializeDeviceSlot ( + (TRB_TEMPLATE **) (UINTN) &EvtTrb + ); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "XhcPeiInitializeDeviceSlot: Enable Slot Failed, Status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "XhcPeiInitializeDeviceSlot: Enable Slot Failed, Status = %r\n", Status)); + return Status; + } + ASSERT (EvtTrb->SlotId <= Xhc->MaxSlotsEn); +- DEBUG ((EFI_D_INFO, "XhcPeiInitializeDeviceSlot: Enable Slot Successfully, The Slot ID = 0x%x\n", EvtTrb->SlotId)); ++ DEBUG ((DEBUG_INFO, "XhcPeiInitializeDeviceSlot: Enable Slot Successfully, The Slot ID = 0x%x\n", EvtTrb->SlotId)); + SlotId = (UINT8) EvtTrb->SlotId; + ASSERT (SlotId != 0); + +@@ -1238,11 +1238,11 @@ XhcPeiInitializeDeviceSlot ( + ); + if (!EFI_ERROR (Status)) { + DeviceAddress = (UINT8) OutputContext->Slot.DeviceAddress; +- DEBUG ((EFI_D_INFO, "XhcPeiInitializeDeviceSlot: Address %d assigned successfully\n", DeviceAddress)); ++ DEBUG ((DEBUG_INFO, "XhcPeiInitializeDeviceSlot: Address %d assigned successfully\n", DeviceAddress)); + Xhc->UsbDevContext[SlotId].XhciDevAddr = DeviceAddress; + } + +- DEBUG ((EFI_D_INFO, "XhcPeiInitializeDeviceSlot: Enable Slot, Status = %r\n", Status)); ++ DEBUG ((DEBUG_INFO, "XhcPeiInitializeDeviceSlot: Enable Slot, Status = %r\n", Status)); + return Status; + } + +@@ -1292,11 +1292,11 @@ XhcPeiInitializeDeviceSlot64 ( + (TRB_TEMPLATE **) (UINTN) &EvtTrb + ); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "XhcPeiInitializeDeviceSlot64: Enable Slot Failed, Status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "XhcPeiInitializeDeviceSlot64: Enable Slot Failed, Status = %r\n", Status)); + return Status; + } + ASSERT (EvtTrb->SlotId <= Xhc->MaxSlotsEn); +- DEBUG ((EFI_D_INFO, "XhcPeiInitializeDeviceSlot64: Enable Slot Successfully, The Slot ID = 0x%x\n", EvtTrb->SlotId)); ++ DEBUG ((DEBUG_INFO, "XhcPeiInitializeDeviceSlot64: Enable Slot Successfully, The Slot ID = 0x%x\n", EvtTrb->SlotId)); + SlotId = (UINT8)EvtTrb->SlotId; + ASSERT (SlotId != 0); + +@@ -1449,11 +1449,11 @@ XhcPeiInitializeDeviceSlot64 ( + ); + if (!EFI_ERROR (Status)) { + DeviceAddress = (UINT8) OutputContext->Slot.DeviceAddress; +- DEBUG ((EFI_D_INFO, "XhcPeiInitializeDeviceSlot64: Address %d assigned successfully\n", DeviceAddress)); ++ DEBUG ((DEBUG_INFO, "XhcPeiInitializeDeviceSlot64: Address %d assigned successfully\n", DeviceAddress)); + Xhc->UsbDevContext[SlotId].XhciDevAddr = DeviceAddress; + } + +- DEBUG ((EFI_D_INFO, "XhcPeiInitializeDeviceSlot64: Enable Slot, Status = %r\n", Status)); ++ DEBUG ((DEBUG_INFO, "XhcPeiInitializeDeviceSlot64: Enable Slot, Status = %r\n", Status)); + return Status; + } + +@@ -1493,7 +1493,7 @@ XhcPeiDisableSlotCmd ( + Status = XhcPeiDisableSlotCmd (Xhc, Xhc->UsbDevContext[Index + 1].SlotId); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "XhcPeiDisableSlotCmd: failed to disable child, ignore error\n")); ++ DEBUG ((DEBUG_ERROR, "XhcPeiDisableSlotCmd: failed to disable child, ignore error\n")); + Xhc->UsbDevContext[Index + 1].SlotId = 0; + } + } +@@ -1501,7 +1501,7 @@ XhcPeiDisableSlotCmd ( + // + // Construct the disable slot command + // +- DEBUG ((EFI_D_INFO, "XhcPeiDisableSlotCmd: Disable device slot %d!\n", SlotId)); ++ DEBUG ((DEBUG_INFO, "XhcPeiDisableSlotCmd: Disable device slot %d!\n", SlotId)); + + ZeroMem (&CmdTrbDisSlot, sizeof (CmdTrbDisSlot)); + CmdTrbDisSlot.CycleBit = 1; +@@ -1514,7 +1514,7 @@ XhcPeiDisableSlotCmd ( + (TRB_TEMPLATE **) (UINTN) &EvtTrb + ); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "XhcPeiDisableSlotCmd: Disable Slot Command Failed, Status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "XhcPeiDisableSlotCmd: Disable Slot Command Failed, Status = %r\n", Status)); + return Status; + } + // +@@ -1557,7 +1557,7 @@ XhcPeiDisableSlotCmd ( + Xhc->UsbDevContext[SlotId].Enabled = FALSE; + Xhc->UsbDevContext[SlotId].SlotId = 0; + +- DEBUG ((EFI_D_INFO, "XhcPeiDisableSlotCmd: Disable Slot Command, Status = %r\n", Status)); ++ DEBUG ((DEBUG_INFO, "XhcPeiDisableSlotCmd: Disable Slot Command, Status = %r\n", Status)); + return Status; + } + +@@ -1596,7 +1596,7 @@ XhcPeiDisableSlotCmd64 ( + Status = XhcPeiDisableSlotCmd64 (Xhc, Xhc->UsbDevContext[Index + 1].SlotId); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "XhcPeiDisableSlotCmd64: failed to disable child, ignore error\n")); ++ DEBUG ((DEBUG_ERROR, "XhcPeiDisableSlotCmd64: failed to disable child, ignore error\n")); + Xhc->UsbDevContext[Index + 1].SlotId = 0; + } + } +@@ -1604,7 +1604,7 @@ XhcPeiDisableSlotCmd64 ( + // + // Construct the disable slot command + // +- DEBUG ((EFI_D_INFO, "XhcPeiDisableSlotCmd64: Disable device slot %d!\n", SlotId)); ++ DEBUG ((DEBUG_INFO, "XhcPeiDisableSlotCmd64: Disable device slot %d!\n", SlotId)); + + ZeroMem (&CmdTrbDisSlot, sizeof (CmdTrbDisSlot)); + CmdTrbDisSlot.CycleBit = 1; +@@ -1617,7 +1617,7 @@ XhcPeiDisableSlotCmd64 ( + (TRB_TEMPLATE **) (UINTN) &EvtTrb + ); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "XhcPeiDisableSlotCmd64: Disable Slot Command Failed, Status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "XhcPeiDisableSlotCmd64: Disable Slot Command Failed, Status = %r\n", Status)); + return Status; + } + // +@@ -1660,7 +1660,7 @@ XhcPeiDisableSlotCmd64 ( + Xhc->UsbDevContext[SlotId].Enabled = FALSE; + Xhc->UsbDevContext[SlotId].SlotId = 0; + +- DEBUG ((EFI_D_INFO, "XhcPeiDisableSlotCmd64: Disable Slot Command, Status = %r\n", Status)); ++ DEBUG ((DEBUG_INFO, "XhcPeiDisableSlotCmd64: Disable Slot Command, Status = %r\n", Status)); + return Status; + } + +@@ -1790,7 +1790,7 @@ XhcPeiSetConfigCmd ( + // + // Do not support isochronous transfer now. + // +- DEBUG ((EFI_D_INFO, "XhcPeiSetConfigCmd: Unsupport ISO EP found, Transfer ring is not allocated.\n")); ++ DEBUG ((DEBUG_INFO, "XhcPeiSetConfigCmd: Unsupport ISO EP found, Transfer ring is not allocated.\n")); + EpDesc = (USB_ENDPOINT_DESCRIPTOR *)((UINTN)EpDesc + EpDesc->Length); + continue; + case USB_ENDPOINT_INTERRUPT: +@@ -1833,9 +1833,9 @@ XhcPeiSetConfigCmd ( + // + // Do not support control transfer now. + // +- DEBUG ((EFI_D_INFO, "XhcPeiSetConfigCmd: Unsupport Control EP found, Transfer ring is not allocated.\n")); ++ DEBUG ((DEBUG_INFO, "XhcPeiSetConfigCmd: Unsupport Control EP found, Transfer ring is not allocated.\n")); + default: +- DEBUG ((EFI_D_INFO, "XhcPeiSetConfigCmd: Unknown EP found, Transfer ring is not allocated.\n")); ++ DEBUG ((DEBUG_INFO, "XhcPeiSetConfigCmd: Unknown EP found, Transfer ring is not allocated.\n")); + EpDesc = (USB_ENDPOINT_DESCRIPTOR *)((UINTN)EpDesc + EpDesc->Length); + continue; + } +@@ -1867,7 +1867,7 @@ XhcPeiSetConfigCmd ( + CmdTrbCfgEP.CycleBit = 1; + CmdTrbCfgEP.Type = TRB_TYPE_CON_ENDPOINT; + CmdTrbCfgEP.SlotId = Xhc->UsbDevContext[SlotId].SlotId; +- DEBUG ((EFI_D_INFO, "XhcSetConfigCmd: Configure Endpoint\n")); ++ DEBUG ((DEBUG_INFO, "XhcSetConfigCmd: Configure Endpoint\n")); + Status = XhcPeiCmdTransfer ( + Xhc, + (TRB_TEMPLATE *) (UINTN) &CmdTrbCfgEP, +@@ -1875,7 +1875,7 @@ XhcPeiSetConfigCmd ( + (TRB_TEMPLATE **) (UINTN) &EvtTrb + ); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "XhcSetConfigCmd: Config Endpoint Failed, Status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "XhcSetConfigCmd: Config Endpoint Failed, Status = %r\n", Status)); + } + return Status; + } +@@ -2007,7 +2007,7 @@ XhcPeiSetConfigCmd64 ( + // + // Do not support isochronous transfer now. + // +- DEBUG ((EFI_D_INFO, "XhcPeiSetConfigCmd64: Unsupport ISO EP found, Transfer ring is not allocated.\n")); ++ DEBUG ((DEBUG_INFO, "XhcPeiSetConfigCmd64: Unsupport ISO EP found, Transfer ring is not allocated.\n")); + EpDesc = (USB_ENDPOINT_DESCRIPTOR *)((UINTN)EpDesc + EpDesc->Length); + continue; + case USB_ENDPOINT_INTERRUPT: +@@ -2050,9 +2050,9 @@ XhcPeiSetConfigCmd64 ( + // + // Do not support control transfer now. + // +- DEBUG ((EFI_D_INFO, "XhcPeiSetConfigCmd64: Unsupport Control EP found, Transfer ring is not allocated.\n")); ++ DEBUG ((DEBUG_INFO, "XhcPeiSetConfigCmd64: Unsupport Control EP found, Transfer ring is not allocated.\n")); + default: +- DEBUG ((EFI_D_INFO, "XhcPeiSetConfigCmd64: Unknown EP found, Transfer ring is not allocated.\n")); ++ DEBUG ((DEBUG_INFO, "XhcPeiSetConfigCmd64: Unknown EP found, Transfer ring is not allocated.\n")); + EpDesc = (USB_ENDPOINT_DESCRIPTOR *)((UINTN)EpDesc + EpDesc->Length); + continue; + } +@@ -2086,7 +2086,7 @@ XhcPeiSetConfigCmd64 ( + CmdTrbCfgEP.CycleBit = 1; + CmdTrbCfgEP.Type = TRB_TYPE_CON_ENDPOINT; + CmdTrbCfgEP.SlotId = Xhc->UsbDevContext[SlotId].SlotId; +- DEBUG ((EFI_D_INFO, "XhcSetConfigCmd64: Configure Endpoint\n")); ++ DEBUG ((DEBUG_INFO, "XhcSetConfigCmd64: Configure Endpoint\n")); + Status = XhcPeiCmdTransfer ( + Xhc, + (TRB_TEMPLATE *) (UINTN) &CmdTrbCfgEP, +@@ -2094,7 +2094,7 @@ XhcPeiSetConfigCmd64 ( + (TRB_TEMPLATE **) (UINTN) &EvtTrb + ); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "XhcSetConfigCmd64: Config Endpoint Failed, Status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "XhcSetConfigCmd64: Config Endpoint Failed, Status = %r\n", Status)); + } + + return Status; +@@ -2142,7 +2142,7 @@ XhcPeiEvaluateContext ( + CmdTrbEvalu.CycleBit = 1; + CmdTrbEvalu.Type = TRB_TYPE_EVALU_CONTXT; + CmdTrbEvalu.SlotId = Xhc->UsbDevContext[SlotId].SlotId; +- DEBUG ((EFI_D_INFO, "XhcEvaluateContext: Evaluate context\n")); ++ DEBUG ((DEBUG_INFO, "XhcEvaluateContext: Evaluate context\n")); + Status = XhcPeiCmdTransfer ( + Xhc, + (TRB_TEMPLATE *) (UINTN) &CmdTrbEvalu, +@@ -2150,7 +2150,7 @@ XhcPeiEvaluateContext ( + (TRB_TEMPLATE **) (UINTN) &EvtTrb + ); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "XhcEvaluateContext: Evaluate Context Failed, Status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "XhcEvaluateContext: Evaluate Context Failed, Status = %r\n", Status)); + } + return Status; + } +@@ -2196,7 +2196,7 @@ XhcPeiEvaluateContext64 ( + CmdTrbEvalu.CycleBit = 1; + CmdTrbEvalu.Type = TRB_TYPE_EVALU_CONTXT; + CmdTrbEvalu.SlotId = Xhc->UsbDevContext[SlotId].SlotId; +- DEBUG ((EFI_D_INFO, "XhcEvaluateContext64: Evaluate context 64\n")); ++ DEBUG ((DEBUG_INFO, "XhcEvaluateContext64: Evaluate context 64\n")); + Status = XhcPeiCmdTransfer ( + Xhc, + (TRB_TEMPLATE *) (UINTN) &CmdTrbEvalu, +@@ -2204,7 +2204,7 @@ XhcPeiEvaluateContext64 ( + (TRB_TEMPLATE **) (UINTN) &EvtTrb + ); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "XhcEvaluateContext64: Evaluate Context Failed, Status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "XhcEvaluateContext64: Evaluate Context Failed, Status = %r\n", Status)); + } + return Status; + } +@@ -2264,7 +2264,7 @@ XhcPeiConfigHubContext ( + CmdTrbCfgEP.CycleBit = 1; + CmdTrbCfgEP.Type = TRB_TYPE_CON_ENDPOINT; + CmdTrbCfgEP.SlotId = Xhc->UsbDevContext[SlotId].SlotId; +- DEBUG ((EFI_D_INFO, "Configure Hub Slot Context\n")); ++ DEBUG ((DEBUG_INFO, "Configure Hub Slot Context\n")); + Status = XhcPeiCmdTransfer ( + Xhc, + (TRB_TEMPLATE *) (UINTN) &CmdTrbCfgEP, +@@ -2272,7 +2272,7 @@ XhcPeiConfigHubContext ( + (TRB_TEMPLATE **) (UINTN) &EvtTrb + ); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "XhcConfigHubContext: Config Endpoint Failed, Status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "XhcConfigHubContext: Config Endpoint Failed, Status = %r\n", Status)); + } + return Status; + } +@@ -2332,7 +2332,7 @@ XhcPeiConfigHubContext64 ( + CmdTrbCfgEP.CycleBit = 1; + CmdTrbCfgEP.Type = TRB_TYPE_CON_ENDPOINT; + CmdTrbCfgEP.SlotId = Xhc->UsbDevContext[SlotId].SlotId; +- DEBUG ((EFI_D_INFO, "Configure Hub Slot Context 64\n")); ++ DEBUG ((DEBUG_INFO, "Configure Hub Slot Context 64\n")); + Status = XhcPeiCmdTransfer ( + Xhc, + (TRB_TEMPLATE *) (UINTN) &CmdTrbCfgEP, +@@ -2340,7 +2340,7 @@ XhcPeiConfigHubContext64 ( + (TRB_TEMPLATE **) (UINTN) &EvtTrb + ); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "XhcConfigHubContext64: Config Endpoint Failed, Status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "XhcConfigHubContext64: Config Endpoint Failed, Status = %r\n", Status)); + } + return Status; + } +@@ -2368,7 +2368,7 @@ XhcPeiStopEndpoint ( + EVT_TRB_COMMAND_COMPLETION *EvtTrb; + CMD_TRB_STOP_ENDPOINT CmdTrbStopED; + +- DEBUG ((EFI_D_INFO, "XhcPeiStopEndpoint: Slot = 0x%x, Dci = 0x%x\n", SlotId, Dci)); ++ DEBUG ((DEBUG_INFO, "XhcPeiStopEndpoint: Slot = 0x%x, Dci = 0x%x\n", SlotId, Dci)); + + // + // Send stop endpoint command to transit Endpoint from running to stop state +@@ -2385,7 +2385,7 @@ XhcPeiStopEndpoint ( + (TRB_TEMPLATE **) (UINTN) &EvtTrb + ); + if (EFI_ERROR(Status)) { +- DEBUG ((EFI_D_ERROR, "XhcPeiStopEndpoint: Stop Endpoint Failed, Status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "XhcPeiStopEndpoint: Stop Endpoint Failed, Status = %r\n", Status)); + } + + return Status; +@@ -2414,7 +2414,7 @@ XhcPeiResetEndpoint ( + EVT_TRB_COMMAND_COMPLETION *EvtTrb; + CMD_TRB_RESET_ENDPOINT CmdTrbResetED; + +- DEBUG ((EFI_D_INFO, "XhcPeiResetEndpoint: Slot = 0x%x, Dci = 0x%x\n", SlotId, Dci)); ++ DEBUG ((DEBUG_INFO, "XhcPeiResetEndpoint: Slot = 0x%x, Dci = 0x%x\n", SlotId, Dci)); + + // + // Send stop endpoint command to transit Endpoint from running to stop state +@@ -2431,7 +2431,7 @@ XhcPeiResetEndpoint ( + (TRB_TEMPLATE **) (UINTN) &EvtTrb + ); + if (EFI_ERROR(Status)) { +- DEBUG ((EFI_D_ERROR, "XhcPeiResetEndpoint: Reset Endpoint Failed, Status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "XhcPeiResetEndpoint: Reset Endpoint Failed, Status = %r\n", Status)); + } + + return Status; +@@ -2464,7 +2464,7 @@ XhcPeiSetTrDequeuePointer ( + CMD_SET_TR_DEQ_POINTER CmdSetTRDeq; + EFI_PHYSICAL_ADDRESS PhyAddr; + +- DEBUG ((EFI_D_INFO, "XhcPeiSetTrDequeuePointer: Slot = 0x%x, Dci = 0x%x, Urb = 0x%x\n", SlotId, Dci, Urb)); ++ DEBUG ((DEBUG_INFO, "XhcPeiSetTrDequeuePointer: Slot = 0x%x, Dci = 0x%x, Urb = 0x%x\n", SlotId, Dci, Urb)); + + // + // Send stop endpoint command to transit Endpoint from running to stop state +@@ -2484,7 +2484,7 @@ XhcPeiSetTrDequeuePointer ( + (TRB_TEMPLATE **) (UINTN) &EvtTrb + ); + if (EFI_ERROR(Status)) { +- DEBUG ((EFI_D_ERROR, "XhcPeiSetTrDequeuePointer: Set TR Dequeue Pointer Failed, Status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "XhcPeiSetTrDequeuePointer: Set TR Dequeue Pointer Failed, Status = %r\n", Status)); + } + + return Status; +@@ -2938,7 +2938,7 @@ XhcPeiInitSched ( + XhcPeiWriteOpReg (Xhc, XHC_DCBAAP_OFFSET, XHC_LOW_32BIT (DcbaaPhy)); + XhcPeiWriteOpReg (Xhc, XHC_DCBAAP_OFFSET + 4, XHC_HIGH_32BIT (DcbaaPhy)); + +- DEBUG ((EFI_D_INFO, "XhcPeiInitSched:DCBAA=0x%x\n", Xhc->DCBAA)); ++ DEBUG ((DEBUG_INFO, "XhcPeiInitSched:DCBAA=0x%x\n", Xhc->DCBAA)); + + // + // Define the Command Ring Dequeue Pointer by programming the Command Ring Control Register +@@ -2962,7 +2962,7 @@ XhcPeiInitSched ( + XhcPeiWriteOpReg (Xhc, XHC_CRCR_OFFSET, XHC_LOW_32BIT (CmdRingPhy)); + XhcPeiWriteOpReg (Xhc, XHC_CRCR_OFFSET + 4, XHC_HIGH_32BIT (CmdRingPhy)); + +- DEBUG ((EFI_D_INFO, "XhcPeiInitSched:XHC_CRCR=0x%x\n", Xhc->CmdRing.RingSeg0)); ++ DEBUG ((DEBUG_INFO, "XhcPeiInitSched:XHC_CRCR=0x%x\n", Xhc->CmdRing.RingSeg0)); + + // + // Disable the 'interrupter enable' bit in USB_CMD +@@ -2978,7 +2978,7 @@ XhcPeiInitSched ( + // Allocate EventRing for Cmd, Ctrl, Bulk, Interrupt, AsynInterrupt transfer + // + XhcPeiCreateEventRing (Xhc, &Xhc->EventRing); +- DEBUG ((EFI_D_INFO, "XhcPeiInitSched:XHC_EVENTRING=0x%x\n", Xhc->EventRing.EventRingSeg0)); ++ DEBUG ((DEBUG_INFO, "XhcPeiInitSched:XHC_EVENTRING=0x%x\n", Xhc->EventRing.EventRingSeg0)); + } + + /** +@@ -3031,4 +3031,3 @@ XhcPeiFreeSched ( + Xhc->MemPool = NULL; + } + } +- +diff --git a/MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDisk.c b/MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDisk.c +index c80e78fa8a..b35d92fcd7 100644 +--- a/MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDisk.c ++++ b/MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDisk.c +@@ -1420,7 +1420,7 @@ ScsiDiskAsyncUnmapNotify ( + Status = CheckHostAdapterStatus (CommandPacket->HostAdapterStatus); + if (EFI_ERROR(Status)) { + DEBUG (( +- EFI_D_ERROR, ++ DEBUG_ERROR, + "ScsiDiskAsyncUnmapNotify: Host adapter indicating error status 0x%x.\n", + CommandPacket->HostAdapterStatus + )); +@@ -1432,7 +1432,7 @@ ScsiDiskAsyncUnmapNotify ( + Status = CheckTargetStatus (CommandPacket->TargetStatus); + if (EFI_ERROR(Status)) { + DEBUG (( +- EFI_D_ERROR, ++ DEBUG_ERROR, + "ScsiDiskAsyncUnmapNotify: Target indicating error status 0x%x.\n", + CommandPacket->HostAdapterStatus + )); +@@ -1614,7 +1614,7 @@ ScsiDiskUnmap ( + Status = CheckHostAdapterStatus (CommandPacket->HostAdapterStatus); + if (EFI_ERROR(Status)) { + DEBUG (( +- EFI_D_ERROR, ++ DEBUG_ERROR, + "ScsiDiskUnmap: Host adapter indicating error status 0x%x.\n", + CommandPacket->HostAdapterStatus + )); +@@ -1626,7 +1626,7 @@ ScsiDiskUnmap ( + Status = CheckTargetStatus (CommandPacket->TargetStatus); + if (EFI_ERROR(Status)) { + DEBUG (( +- EFI_D_ERROR, ++ DEBUG_ERROR, + "ScsiDiskUnmap: Target indicating error status 0x%x.\n", + CommandPacket->HostAdapterStatus + )); +@@ -2510,7 +2510,7 @@ ScsiDiskInquiryDevice ( + // Sanity checks for coping with broken devices + // + if (PageLength > sizeof SupportedVpdPages->SupportedVpdPageList) { +- DEBUG ((EFI_D_WARN, ++ DEBUG ((DEBUG_WARN, + "%a: invalid PageLength (%u) in Supported VPD Pages page\n", + __FUNCTION__, (UINT32)PageLength)); + PageLength = 0; +@@ -2519,7 +2519,7 @@ ScsiDiskInquiryDevice ( + if ((PageLength > 0) && + (SupportedVpdPages->SupportedVpdPageList[0] != + EFI_SCSI_PAGE_CODE_SUPPORTED_VPD)) { +- DEBUG ((EFI_D_WARN, ++ DEBUG ((DEBUG_WARN, + "%a: Supported VPD Pages page doesn't start with code 0x%02x\n", + __FUNCTION__, EFI_SCSI_PAGE_CODE_SUPPORTED_VPD)); + PageLength = 0; +@@ -2535,7 +2535,7 @@ ScsiDiskInquiryDevice ( + if ((Index > 0) && + (SupportedVpdPages->SupportedVpdPageList[Index] <= + SupportedVpdPages->SupportedVpdPageList[Index - 1])) { +- DEBUG ((EFI_D_WARN, ++ DEBUG ((DEBUG_WARN, + "%a: non-ascending code in Supported VPD Pages page @ %u\n", + __FUNCTION__, Index)); + Index = 0; +@@ -2861,30 +2861,30 @@ DetectMediaParsingSenseKeys ( + ScsiDiskDevice->BlkIo.Media->MediaPresent = FALSE; + ScsiDiskDevice->BlkIo.Media->LastBlock = 0; + *Action = ACTION_NO_ACTION; +- DEBUG ((EFI_D_VERBOSE, "ScsiDisk: ScsiDiskIsNoMedia\n")); ++ DEBUG ((DEBUG_VERBOSE, "ScsiDisk: ScsiDiskIsNoMedia\n")); + return EFI_SUCCESS; + } + + if (ScsiDiskIsMediaChange (SenseData, NumberOfSenseKeys)) { + ScsiDiskDevice->BlkIo.Media->MediaId++; +- DEBUG ((EFI_D_VERBOSE, "ScsiDisk: ScsiDiskIsMediaChange!\n")); ++ DEBUG ((DEBUG_VERBOSE, "ScsiDisk: ScsiDiskIsMediaChange!\n")); + return EFI_SUCCESS; + } + + if (ScsiDiskIsResetBefore (SenseData, NumberOfSenseKeys)) { + *Action = ACTION_RETRY_COMMAND_LATER; +- DEBUG ((EFI_D_VERBOSE, "ScsiDisk: ScsiDiskIsResetBefore!\n")); ++ DEBUG ((DEBUG_VERBOSE, "ScsiDisk: ScsiDiskIsResetBefore!\n")); + return EFI_SUCCESS; + } + + if (ScsiDiskIsMediaError (SenseData, NumberOfSenseKeys)) { +- DEBUG ((EFI_D_VERBOSE, "ScsiDisk: ScsiDiskIsMediaError\n")); ++ DEBUG ((DEBUG_VERBOSE, "ScsiDisk: ScsiDiskIsMediaError\n")); + *Action = ACTION_RETRY_WITH_BACKOFF_ALGO; + return EFI_DEVICE_ERROR; + } + + if (ScsiDiskIsHardwareError (SenseData, NumberOfSenseKeys)) { +- DEBUG ((EFI_D_VERBOSE, "ScsiDisk: ScsiDiskIsHardwareError\n")); ++ DEBUG ((DEBUG_VERBOSE, "ScsiDisk: ScsiDiskIsHardwareError\n")); + *Action = ACTION_RETRY_WITH_BACKOFF_ALGO; + return EFI_DEVICE_ERROR; + } +@@ -2892,7 +2892,7 @@ DetectMediaParsingSenseKeys ( + if (!ScsiDiskIsDriveReady (SenseData, NumberOfSenseKeys, &RetryLater)) { + if (RetryLater) { + *Action = ACTION_RETRY_COMMAND_LATER; +- DEBUG ((EFI_D_VERBOSE, "ScsiDisk: ScsiDiskDriveNotReady!\n")); ++ DEBUG ((DEBUG_VERBOSE, "ScsiDisk: ScsiDiskDriveNotReady!\n")); + return EFI_SUCCESS; + } + *Action = ACTION_NO_ACTION; +@@ -2900,7 +2900,7 @@ DetectMediaParsingSenseKeys ( + } + + *Action = ACTION_RETRY_WITH_BACKOFF_ALGO; +- DEBUG ((EFI_D_VERBOSE, "ScsiDisk: Sense Key = 0x%x ASC = 0x%x!\n", SenseData->Sense_Key, SenseData->Addnl_Sense_Code)); ++ DEBUG ((DEBUG_VERBOSE, "ScsiDisk: Sense Key = 0x%x ASC = 0x%x!\n", SenseData->Sense_Key, SenseData->Addnl_Sense_Code)); + return EFI_SUCCESS; + } + +@@ -4206,7 +4206,7 @@ BackOff: + } + + if ((TargetStatus == EFI_EXT_SCSI_STATUS_TARGET_CHECK_CONDITION) || (EFI_ERROR (ReturnStatus))) { +- DEBUG ((EFI_D_ERROR, "ScsiDiskRead10: Check Condition happened!\n")); ++ DEBUG ((DEBUG_ERROR, "ScsiDiskRead10: Check Condition happened!\n")); + Status = DetectMediaParsingSenseKeys (ScsiDiskDevice, ScsiDiskDevice->SenseData, SenseDataLength / sizeof (EFI_SCSI_SENSE_DATA), &Action); + if (Action == ACTION_RETRY_COMMAND_LATER) { + *NeedRetry = TRUE; +@@ -4330,7 +4330,7 @@ BackOff: + } + + if ((TargetStatus == EFI_EXT_SCSI_STATUS_TARGET_CHECK_CONDITION) || (EFI_ERROR (ReturnStatus))) { +- DEBUG ((EFI_D_ERROR, "ScsiDiskWrite10: Check Condition happened!\n")); ++ DEBUG ((DEBUG_ERROR, "ScsiDiskWrite10: Check Condition happened!\n")); + Status = DetectMediaParsingSenseKeys (ScsiDiskDevice, ScsiDiskDevice->SenseData, SenseDataLength / sizeof (EFI_SCSI_SENSE_DATA), &Action); + if (Action == ACTION_RETRY_COMMAND_LATER) { + *NeedRetry = TRUE; +@@ -4453,7 +4453,7 @@ BackOff: + } + + if ((TargetStatus == EFI_EXT_SCSI_STATUS_TARGET_CHECK_CONDITION) || (EFI_ERROR (ReturnStatus))) { +- DEBUG ((EFI_D_ERROR, "ScsiDiskRead16: Check Condition happened!\n")); ++ DEBUG ((DEBUG_ERROR, "ScsiDiskRead16: Check Condition happened!\n")); + Status = DetectMediaParsingSenseKeys (ScsiDiskDevice, ScsiDiskDevice->SenseData, SenseDataLength / sizeof (EFI_SCSI_SENSE_DATA), &Action); + if (Action == ACTION_RETRY_COMMAND_LATER) { + *NeedRetry = TRUE; +@@ -4577,7 +4577,7 @@ BackOff: + } + + if ((TargetStatus == EFI_EXT_SCSI_STATUS_TARGET_CHECK_CONDITION) || (EFI_ERROR (ReturnStatus))) { +- DEBUG ((EFI_D_ERROR, "ScsiDiskWrite16: Check Condition happened!\n")); ++ DEBUG ((DEBUG_ERROR, "ScsiDiskWrite16: Check Condition happened!\n")); + Status = DetectMediaParsingSenseKeys (ScsiDiskDevice, ScsiDiskDevice->SenseData, SenseDataLength / sizeof (EFI_SCSI_SENSE_DATA), &Action); + if (Action == ACTION_RETRY_COMMAND_LATER) { + *NeedRetry = TRUE; +@@ -4686,7 +4686,7 @@ ScsiDiskNotify ( + } + + if (Request->TargetStatus == EFI_EXT_SCSI_STATUS_TARGET_CHECK_CONDITION) { +- DEBUG ((EFI_D_ERROR, "ScsiDiskNotify: Check Condition happened!\n")); ++ DEBUG ((DEBUG_ERROR, "ScsiDiskNotify: Check Condition happened!\n")); + + Status = DetectMediaParsingSenseKeys ( + ScsiDiskDevice, +@@ -5948,7 +5948,7 @@ DetermineInstallEraseBlock ( + if (((CapacityData16->LowestAlignLogic2 & BIT7) == 0) || + ((CapacityData16->LowestAlignLogic2 & BIT6) == 0)) { + DEBUG (( +- EFI_D_VERBOSE, ++ DEBUG_VERBOSE, + "ScsiDisk EraseBlock: Either TPE or TPRZ is not set: 0x%x.\n", + CapacityData16->LowestAlignLogic2 + )); +@@ -5958,7 +5958,7 @@ DetermineInstallEraseBlock ( + } + } else { + DEBUG (( +- EFI_D_VERBOSE, ++ DEBUG_VERBOSE, + "ScsiDisk EraseBlock: ReadCapacity16 failed with status %r.\n", + CommandStatus + )); +@@ -5973,7 +5973,7 @@ DetermineInstallEraseBlock ( + if ((ScsiDiskDevice->UnmapInfo.MaxLbaCnt == 0) || + (ScsiDiskDevice->UnmapInfo.MaxBlkDespCnt == 0)) { + DEBUG (( +- EFI_D_VERBOSE, ++ DEBUG_VERBOSE, + "ScsiDisk EraseBlock: The device server does not implement the UNMAP command.\n" + )); + +diff --git a/MdeModulePkg/Bus/Sd/EmmcBlockIoPei/EmmcBlockIoPei.c b/MdeModulePkg/Bus/Sd/EmmcBlockIoPei/EmmcBlockIoPei.c +index 267db4a89d..bf4498df55 100644 +--- a/MdeModulePkg/Bus/Sd/EmmcBlockIoPei/EmmcBlockIoPei.c ++++ b/MdeModulePkg/Bus/Sd/EmmcBlockIoPei/EmmcBlockIoPei.c +@@ -741,7 +741,7 @@ InitializeEmmcBlockIoPeim ( + continue; + } + if (Capability.SlotType != 0x1) { +- DEBUG ((EFI_D_INFO, "The slot at 0x%x is not embedded slot type\n", MmioBase[Index])); ++ DEBUG ((DEBUG_INFO, "The slot at 0x%x is not embedded slot type\n", MmioBase[Index])); + Status = EFI_UNSUPPORTED; + continue; + } +@@ -773,12 +773,12 @@ InitializeEmmcBlockIoPeim ( + + ExtCsd = &Slot->ExtCsd; + if (ExtCsd->ExtCsdRev < 5) { +- DEBUG ((EFI_D_ERROR, "The EMMC device version is too low, we don't support!!!\n")); ++ DEBUG ((DEBUG_ERROR, "The EMMC device version is too low, we don't support!!!\n")); + Status = EFI_UNSUPPORTED; + continue; + } + if ((ExtCsd->PartitioningSupport & BIT0) != BIT0) { +- DEBUG ((EFI_D_ERROR, "The EMMC device doesn't support Partition Feature!!!\n")); ++ DEBUG ((DEBUG_ERROR, "The EMMC device doesn't support Partition Feature!!!\n")); + Status = EFI_UNSUPPORTED; + continue; + } +diff --git a/MdeModulePkg/Bus/Sd/EmmcBlockIoPei/EmmcHci.c b/MdeModulePkg/Bus/Sd/EmmcBlockIoPei/EmmcHci.c +index 287a10266a..d7f9e107c4 100644 +--- a/MdeModulePkg/Bus/Sd/EmmcBlockIoPei/EmmcHci.c ++++ b/MdeModulePkg/Bus/Sd/EmmcBlockIoPei/EmmcHci.c +@@ -304,7 +304,7 @@ EmmcPeimHcReset ( + Status = EmmcPeimHcRwMmio (Bar + EMMC_HC_SW_RST, FALSE, sizeof (SwReset), &SwReset); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "EmmcPeimHcReset: write full 1 fails: %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "EmmcPeimHcReset: write full 1 fails: %r\n", Status)); + return Status; + } + +@@ -316,7 +316,7 @@ EmmcPeimHcReset ( + EMMC_TIMEOUT + ); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_INFO, "EmmcPeimHcReset: reset done with %r\n", Status)); ++ DEBUG ((DEBUG_INFO, "EmmcPeimHcReset: reset done with %r\n", Status)); + return Status; + } + // +@@ -556,7 +556,7 @@ EmmcPeimHcClockSupply ( + } + } + +- DEBUG ((EFI_D_INFO, "BaseClkFreq %dMHz Divisor %d ClockFreq %dKhz\n", BaseClkFreq, Divisor, ClockFreq)); ++ DEBUG ((DEBUG_INFO, "BaseClkFreq %dMHz Divisor %d ClockFreq %dKhz\n", BaseClkFreq, Divisor, ClockFreq)); + + Status = EmmcPeimHcRwMmio (Bar + EMMC_HC_CTRL_VER, TRUE, sizeof (ControllerVer), &ControllerVer); + if (EFI_ERROR (Status)) { +@@ -578,7 +578,7 @@ EmmcPeimHcClockSupply ( + ASSERT (Divisor <= 0x80); + ClockCtrl = (Divisor & 0xFF) << 8; + } else { +- DEBUG ((EFI_D_ERROR, "Unknown SD Host Controller Spec version [0x%x]!!!\n", ControllerVer)); ++ DEBUG ((DEBUG_ERROR, "Unknown SD Host Controller Spec version [0x%x]!!!\n", ControllerVer)); + return EFI_UNSUPPORTED; + } + +@@ -596,7 +596,7 @@ EmmcPeimHcClockSupply ( + ClockCtrl |= BIT0; + Status = EmmcPeimHcRwMmio (Bar + EMMC_HC_CLOCK_CTRL, FALSE, sizeof (ClockCtrl), &ClockCtrl); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "Set SDCLK Frequency Select and Internal Clock Enable fields fails\n")); ++ DEBUG ((DEBUG_ERROR, "Set SDCLK Frequency Select and Internal Clock Enable fields fails\n")); + return Status; + } + +@@ -936,7 +936,7 @@ BuildAdmaDescTable ( + // for 32-bit address descriptor table. + // + if ((Data & (BIT0 | BIT1)) != 0) { +- DEBUG ((EFI_D_INFO, "The buffer [0x%x] to construct ADMA desc is not aligned to 4 bytes boundary!\n", Data)); ++ DEBUG ((DEBUG_INFO, "The buffer [0x%x] to construct ADMA desc is not aligned to 4 bytes boundary!\n", Data)); + } + + Entries = DivU64x32 ((DataLen + ADMA_MAX_DATA_PER_LINE - 1), ADMA_MAX_DATA_PER_LINE); +@@ -2330,7 +2330,7 @@ EmmcPeimTuningClkForHs200 ( + } + } while (++Retry < 40); + +- DEBUG ((EFI_D_ERROR, "EmmcPeimTuningClkForHs200: Send tuning block fails at %d times with HostCtrl2 %02x\n", Retry, HostCtrl2)); ++ DEBUG ((DEBUG_ERROR, "EmmcPeimTuningClkForHs200: Send tuning block fails at %d times with HostCtrl2 %02x\n", Retry, HostCtrl2)); + // + // Abort the tuning procedure and reset the tuning circuit. + // +@@ -2720,7 +2720,7 @@ EmmcPeimSetBusMode ( + + Status = EmmcPeimGetCsd (Slot, Rca, &Slot->Csd); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "EmmcPeimSetBusMode: EmmcPeimGetCsd fails with %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "EmmcPeimSetBusMode: EmmcPeimGetCsd fails with %r\n", Status)); + return Status; + } + +@@ -2732,13 +2732,13 @@ EmmcPeimSetBusMode ( + + Status = EmmcPeimSelect (Slot, Rca); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "EmmcPeimSetBusMode: EmmcPeimSelect fails with %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "EmmcPeimSetBusMode: EmmcPeimSelect fails with %r\n", Status)); + return Status; + } + + Status = EmmcPeimHcGetCapability (Slot->EmmcHcBase, &Capability); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "EmmcPeimSetBusMode: EmmcPeimHcGetCapability fails with %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "EmmcPeimSetBusMode: EmmcPeimHcGetCapability fails with %r\n", Status)); + return Status; + } + +@@ -2756,7 +2756,7 @@ EmmcPeimSetBusMode ( + // + Status = EmmcPeimGetExtCsd (Slot, &Slot->ExtCsd); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "EmmcPeimSetBusMode: EmmcPeimGetExtCsd fails with %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "EmmcPeimSetBusMode: EmmcPeimGetExtCsd fails with %r\n", Status)); + return Status; + } + // +@@ -2802,7 +2802,7 @@ EmmcPeimSetBusMode ( + return EFI_SUCCESS; + } + +- DEBUG ((EFI_D_INFO, "HsTiming %d ClockFreq %d BusWidth %d Ddr %a\n", HsTiming, ClockFreq, BusWidth, IsDdr ? "TRUE":"FALSE")); ++ DEBUG ((DEBUG_INFO, "HsTiming %d ClockFreq %d BusWidth %d Ddr %a\n", HsTiming, ClockFreq, BusWidth, IsDdr ? "TRUE":"FALSE")); + + if (HsTiming == 3) { + // +@@ -2847,7 +2847,7 @@ EmmcPeimIdentification ( + + Status = EmmcPeimReset (Slot); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "EmmcPeimIdentification: EmmcPeimReset fails with %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "EmmcPeimIdentification: EmmcPeimReset fails with %r\n", Status)); + return Status; + } + +@@ -2856,12 +2856,12 @@ EmmcPeimIdentification ( + do { + Status = EmmcPeimGetOcr (Slot, &Ocr); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "EmmcPeimIdentification: EmmcPeimGetOcr fails with %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "EmmcPeimIdentification: EmmcPeimGetOcr fails with %r\n", Status)); + return Status; + } + + if (Retry++ == 100) { +- DEBUG ((EFI_D_ERROR, "EmmcPeimIdentification: EmmcPeimGetOcr fails too many times\n")); ++ DEBUG ((DEBUG_ERROR, "EmmcPeimIdentification: EmmcPeimGetOcr fails too many times\n")); + return EFI_DEVICE_ERROR; + } + MicroSecondDelay (10 * 1000); +@@ -2869,7 +2869,7 @@ EmmcPeimIdentification ( + + Status = EmmcPeimGetAllCid (Slot); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "EmmcPeimIdentification: EmmcPeimGetAllCid fails with %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "EmmcPeimIdentification: EmmcPeimGetAllCid fails with %r\n", Status)); + return Status; + } + // +@@ -2879,16 +2879,15 @@ EmmcPeimIdentification ( + Rca = 1; + Status = EmmcPeimSetRca (Slot, Rca); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "EmmcPeimIdentification: EmmcPeimSetRca fails with %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "EmmcPeimIdentification: EmmcPeimSetRca fails with %r\n", Status)); + return Status; + } + // + // Enter Data Tranfer Mode. + // +- DEBUG ((EFI_D_INFO, "Found a EMMC device at slot [%d], RCA [%d]\n", Slot, Rca)); ++ DEBUG ((DEBUG_INFO, "Found a EMMC device at slot [%d], RCA [%d]\n", Slot, Rca)); + + Status = EmmcPeimSetBusMode (Slot, Rca); + + return Status; + } +- +diff --git a/MdeModulePkg/Bus/Sd/EmmcDxe/EmmcBlockIo.c b/MdeModulePkg/Bus/Sd/EmmcDxe/EmmcBlockIo.c +index afdc0a57ef..63d77a22fe 100644 +--- a/MdeModulePkg/Bus/Sd/EmmcDxe/EmmcBlockIo.c ++++ b/MdeModulePkg/Bus/Sd/EmmcDxe/EmmcBlockIo.c +@@ -34,7 +34,7 @@ AsyncIoCallback ( + Request = (EMMC_REQUEST *) Context; + + DEBUG_CODE_BEGIN (); +- DEBUG ((EFI_D_INFO, "Emmc Async Request: CmdIndex[%d] Arg[%08x] %r\n", ++ DEBUG ((DEBUG_INFO, "Emmc Async Request: CmdIndex[%d] Arg[%08x] %r\n", + Request->SdMmcCmdBlk.CommandIndex, Request->SdMmcCmdBlk.CommandArgument, + Request->Packet.TransactionStatus)); + DEBUG_CODE_END (); +@@ -2158,4 +2158,3 @@ EmmcEraseBlocks ( + + return Status; + } +- +diff --git a/MdeModulePkg/Bus/Sd/EmmcDxe/EmmcDxe.c b/MdeModulePkg/Bus/Sd/EmmcDxe/EmmcDxe.c +index e9095b904c..8dca9a6ee1 100644 +--- a/MdeModulePkg/Bus/Sd/EmmcDxe/EmmcDxe.c ++++ b/MdeModulePkg/Bus/Sd/EmmcDxe/EmmcDxe.c +@@ -314,12 +314,12 @@ DiscoverAllPartitions ( + DumpExtCsd (ExtCsd); + + if (ExtCsd->ExtCsdRev < 5) { +- DEBUG ((EFI_D_ERROR, "The EMMC device version is too low, we don't support!!!\n")); ++ DEBUG ((DEBUG_ERROR, "The EMMC device version is too low, we don't support!!!\n")); + return EFI_UNSUPPORTED; + } + + if ((ExtCsd->PartitioningSupport & BIT0) != BIT0) { +- DEBUG ((EFI_D_ERROR, "The EMMC device doesn't support Partition Feature!!!\n")); ++ DEBUG ((DEBUG_ERROR, "The EMMC device doesn't support Partition Feature!!!\n")); + return EFI_UNSUPPORTED; + } + +@@ -1202,4 +1202,3 @@ InitializeEmmcDxe ( + + return Status; + } +- +diff --git a/MdeModulePkg/Bus/Sd/SdBlockIoPei/SdBlockIoPei.c b/MdeModulePkg/Bus/Sd/SdBlockIoPei/SdBlockIoPei.c +index 1d53fcd23e..ddcd68bef7 100644 +--- a/MdeModulePkg/Bus/Sd/SdBlockIoPei/SdBlockIoPei.c ++++ b/MdeModulePkg/Bus/Sd/SdBlockIoPei/SdBlockIoPei.c +@@ -588,7 +588,7 @@ InitializeSdBlockIoPeim ( + continue; + } + if (Capability.SlotType != 0x1) { +- DEBUG ((EFI_D_INFO, "The slot at 0x%x is not embedded slot type\n", MmioBase[Index])); ++ DEBUG ((DEBUG_INFO, "The slot at 0x%x is not embedded slot type\n", MmioBase[Index])); + Status = EFI_UNSUPPORTED; + continue; + } +diff --git a/MdeModulePkg/Bus/Sd/SdBlockIoPei/SdHci.c b/MdeModulePkg/Bus/Sd/SdBlockIoPei/SdHci.c +index 756c3063bb..7c8b548b9e 100644 +--- a/MdeModulePkg/Bus/Sd/SdBlockIoPei/SdHci.c ++++ b/MdeModulePkg/Bus/Sd/SdBlockIoPei/SdHci.c +@@ -304,7 +304,7 @@ SdPeimHcReset ( + Status = SdPeimHcRwMmio (Bar + SD_HC_SW_RST, FALSE, sizeof (SwReset), &SwReset); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "SdPeimHcReset: write full 1 fails: %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "SdPeimHcReset: write full 1 fails: %r\n", Status)); + return Status; + } + +@@ -316,7 +316,7 @@ SdPeimHcReset ( + SD_TIMEOUT + ); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_INFO, "SdPeimHcReset: reset done with %r\n", Status)); ++ DEBUG ((DEBUG_INFO, "SdPeimHcReset: reset done with %r\n", Status)); + return Status; + } + // +@@ -556,7 +556,7 @@ SdPeimHcClockSupply ( + } + } + +- DEBUG ((EFI_D_INFO, "BaseClkFreq %dMHz Divisor %d ClockFreq %dKhz\n", BaseClkFreq, Divisor, ClockFreq)); ++ DEBUG ((DEBUG_INFO, "BaseClkFreq %dMHz Divisor %d ClockFreq %dKhz\n", BaseClkFreq, Divisor, ClockFreq)); + + Status = SdPeimHcRwMmio (Bar + SD_HC_CTRL_VER, TRUE, sizeof (ControllerVer), &ControllerVer); + if (EFI_ERROR (Status)) { +@@ -578,7 +578,7 @@ SdPeimHcClockSupply ( + ASSERT (Divisor <= 0x80); + ClockCtrl = (Divisor & 0xFF) << 8; + } else { +- DEBUG ((EFI_D_ERROR, "Unknown SD Host Controller Spec version [0x%x]!!!\n", ControllerVer)); ++ DEBUG ((DEBUG_ERROR, "Unknown SD Host Controller Spec version [0x%x]!!!\n", ControllerVer)); + return EFI_UNSUPPORTED; + } + +@@ -596,7 +596,7 @@ SdPeimHcClockSupply ( + ClockCtrl |= BIT0; + Status = SdPeimHcRwMmio (Bar + SD_HC_CLOCK_CTRL, FALSE, sizeof (ClockCtrl), &ClockCtrl); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "Set SDCLK Frequency Select and Internal Clock Enable fields fails\n")); ++ DEBUG ((DEBUG_ERROR, "Set SDCLK Frequency Select and Internal Clock Enable fields fails\n")); + return Status; + } + +@@ -936,7 +936,7 @@ BuildAdmaDescTable ( + // for 32-bit address descriptor table. + // + if ((Data & (BIT0 | BIT1)) != 0) { +- DEBUG ((EFI_D_INFO, "The buffer [0x%x] to construct ADMA desc is not aligned to 4 bytes boundary!\n", Data)); ++ DEBUG ((DEBUG_INFO, "The buffer [0x%x] to construct ADMA desc is not aligned to 4 bytes boundary!\n", Data)); + } + + Entries = DivU64x32 ((DataLen + ADMA_MAX_DATA_PER_LINE - 1), ADMA_MAX_DATA_PER_LINE); +@@ -2549,7 +2549,7 @@ SdPeimTuningClock ( + } + } while (++Retry < 40); + +- DEBUG ((EFI_D_ERROR, "SdPeimTuningClock: Send tuning block fails at %d times with HostCtrl2 %02x\n", Retry, HostCtrl2)); ++ DEBUG ((DEBUG_ERROR, "SdPeimTuningClock: Send tuning block fails at %d times with HostCtrl2 %02x\n", Retry, HostCtrl2)); + // + // Abort the tuning procedure and reset the tuning circuit. + // +@@ -2638,7 +2638,7 @@ SdPeimSetBusMode ( + + Status = SdPeimGetCsd (Slot, Rca, &Slot->Csd); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "SdPeimSetBusMode: SdPeimGetCsd fails with %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "SdPeimSetBusMode: SdPeimGetCsd fails with %r\n", Status)); + return Status; + } + +@@ -2649,14 +2649,14 @@ SdPeimSetBusMode ( + + Status = SdPeimSelect (Slot, Rca); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "SdPeimSetBusMode: SdPeimSelect fails with %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "SdPeimSetBusMode: SdPeimSelect fails with %r\n", Status)); + return Status; + } + + BusWidth = 4; + Status = SdPeimSwitchBusWidth (Slot, Rca, BusWidth); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "SdPeimSetBusMode: SdPeimSwitchBusWidth fails with %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "SdPeimSetBusMode: SdPeimSwitchBusWidth fails with %r\n", Status)); + return Status; + } + +@@ -2689,16 +2689,16 @@ SdPeimSetBusMode ( + AccessMode = 0; + } + +- DEBUG ((EFI_D_INFO, "SdPeimSetBusMode: AccessMode %d ClockFreq %d BusWidth %d\n", AccessMode, ClockFreq, BusWidth)); ++ DEBUG ((DEBUG_INFO, "SdPeimSetBusMode: AccessMode %d ClockFreq %d BusWidth %d\n", AccessMode, ClockFreq, BusWidth)); + + Status = SdPeimSwitch (Slot, AccessMode, 0xF, 0xF, 0xF, TRUE, SwitchResp); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "SdPeimSetBusMode: SdPeimSwitch fails with %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "SdPeimSetBusMode: SdPeimSwitch fails with %r\n", Status)); + return Status; + } + + if ((SwitchResp[16] & 0xF) != AccessMode) { +- DEBUG ((EFI_D_ERROR, "SdPeimSetBusMode: SdPeimSwitch to AccessMode %d ClockFreq %d BusWidth %d fails! The Switch response is 0x%1x\n", AccessMode, ClockFreq, BusWidth, SwitchResp[16] & 0xF)); ++ DEBUG ((DEBUG_ERROR, "SdPeimSetBusMode: SdPeimSwitch to AccessMode %d ClockFreq %d BusWidth %d fails! The Switch response is 0x%1x\n", AccessMode, ClockFreq, BusWidth, SwitchResp[16] & 0xF)); + return EFI_DEVICE_ERROR; + } + // +@@ -2725,19 +2725,19 @@ SdPeimSetBusMode ( + + Status = SdPeimHcClockSupply (Slot->SdHcBase, ClockFreq * 1000); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "SdPeimSetBusMode: SdPeimHcClockSupply %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "SdPeimSetBusMode: SdPeimHcClockSupply %r\n", Status)); + return Status; + } + + if ((AccessMode == 3) || ((AccessMode == 2) && (Capability.TuningSDR50 != 0))) { + Status = SdPeimTuningClock (Slot); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "SdPeimSetBusMode: SdPeimTuningClock fails with %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "SdPeimSetBusMode: SdPeimTuningClock fails with %r\n", Status)); + return Status; + } + } + +- DEBUG ((EFI_D_INFO, "SdPeimSetBusMode: SdPeimSetBusMode %r\n", Status)); ++ DEBUG ((DEBUG_INFO, "SdPeimSetBusMode: SdPeimSetBusMode %r\n", Status)); + + return Status; + } +@@ -2776,7 +2776,7 @@ SdPeimIdentification ( + // + Status = SdPeimReset (Slot); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "SdPeimIdentification: Executing Cmd0 fails with %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "SdPeimIdentification: Executing Cmd0 fails with %r\n", Status)); + return Status; + } + // +@@ -2784,7 +2784,7 @@ SdPeimIdentification ( + // + Status = SdPeimVoltageCheck (Slot, 0x1, 0xFF); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "SdPeimIdentification: Executing Cmd8 fails with %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "SdPeimIdentification: Executing Cmd8 fails with %r\n", Status)); + return Status; + } + // +@@ -2792,7 +2792,7 @@ SdPeimIdentification ( + // + Status = SdioSendOpCond (Slot, 0, FALSE); + if (!EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "SdPeimIdentification: Found SDIO device, ignore it as we don't support\n")); ++ DEBUG ((DEBUG_ERROR, "SdPeimIdentification: Found SDIO device, ignore it as we don't support\n")); + return EFI_DEVICE_ERROR; + } + // +@@ -2800,7 +2800,7 @@ SdPeimIdentification ( + // + Status = SdPeimSendOpCond (Slot, 0, 0, FALSE, FALSE, FALSE, &Ocr); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "SdPeimIdentification: Executing SdPeimSendOpCond fails with %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "SdPeimIdentification: Executing SdPeimSendOpCond fails with %r\n", Status)); + return EFI_DEVICE_ERROR; + } + +@@ -2863,12 +2863,12 @@ SdPeimIdentification ( + do { + Status = SdPeimSendOpCond (Slot, 0, Ocr, S18r, Xpc, TRUE, &Ocr); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "SdPeimIdentification: SdPeimSendOpCond fails with %r Ocr %x, S18r %x, Xpc %x\n", Status, Ocr, S18r, Xpc)); ++ DEBUG ((DEBUG_ERROR, "SdPeimIdentification: SdPeimSendOpCond fails with %r Ocr %x, S18r %x, Xpc %x\n", Status, Ocr, S18r, Xpc)); + return EFI_DEVICE_ERROR; + } + + if (Retry++ == 100) { +- DEBUG ((EFI_D_ERROR, "SdPeimIdentification: SdPeimSendOpCond fails too many times\n")); ++ DEBUG ((DEBUG_ERROR, "SdPeimIdentification: SdPeimSendOpCond fails too many times\n")); + return EFI_DEVICE_ERROR; + } + MicroSecondDelay (10 * 1000); +@@ -2885,7 +2885,7 @@ SdPeimIdentification ( + ((Ocr & BIT24) != 0)) { + Status = SdPeimVoltageSwitch (Slot); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "SdPeimIdentification: Executing SdPeimVoltageSwitch fails with %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "SdPeimIdentification: Executing SdPeimVoltageSwitch fails with %r\n", Status)); + Status = EFI_DEVICE_ERROR; + goto Error; + } else { +@@ -2897,7 +2897,7 @@ SdPeimIdentification ( + + SdPeimHcRwMmio (Slot->SdHcBase + SD_HC_PRESENT_STATE, TRUE, sizeof (PresentState), &PresentState); + if (((PresentState >> 20) & 0xF) != 0) { +- DEBUG ((EFI_D_ERROR, "SdPeimIdentification: SwitchVoltage fails with PresentState = 0x%x\n", PresentState)); ++ DEBUG ((DEBUG_ERROR, "SdPeimIdentification: SwitchVoltage fails with PresentState = 0x%x\n", PresentState)); + Status = EFI_DEVICE_ERROR; + goto Error; + } +@@ -2908,7 +2908,7 @@ SdPeimIdentification ( + + SdPeimHcRwMmio (Slot->SdHcBase + SD_HC_HOST_CTRL2, TRUE, sizeof (HostCtrl2), &HostCtrl2); + if ((HostCtrl2 & BIT3) == 0) { +- DEBUG ((EFI_D_ERROR, "SdPeimIdentification: SwitchVoltage fails with HostCtrl2 = 0x%x\n", HostCtrl2)); ++ DEBUG ((DEBUG_ERROR, "SdPeimIdentification: SwitchVoltage fails with HostCtrl2 = 0x%x\n", HostCtrl2)); + Status = EFI_DEVICE_ERROR; + goto Error; + } +@@ -2919,29 +2919,29 @@ SdPeimIdentification ( + + SdPeimHcRwMmio (Slot->SdHcBase + SD_HC_PRESENT_STATE, TRUE, sizeof (PresentState), &PresentState); + if (((PresentState >> 20) & 0xF) != 0xF) { +- DEBUG ((EFI_D_ERROR, "SdPeimIdentification: SwitchVoltage fails with PresentState = 0x%x, It should be 0xF\n", PresentState)); ++ DEBUG ((DEBUG_ERROR, "SdPeimIdentification: SwitchVoltage fails with PresentState = 0x%x, It should be 0xF\n", PresentState)); + Status = EFI_DEVICE_ERROR; + goto Error; + } + } +- DEBUG ((EFI_D_INFO, "SdPeimIdentification: Switch to 1.8v signal voltage success\n")); ++ DEBUG ((DEBUG_INFO, "SdPeimIdentification: Switch to 1.8v signal voltage success\n")); + } + + Status = SdPeimAllSendCid (Slot); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "SdPeimIdentification: Executing SdPeimAllSendCid fails with %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "SdPeimIdentification: Executing SdPeimAllSendCid fails with %r\n", Status)); + return Status; + } + + Status = SdPeimSetRca (Slot, &Rca); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "SdPeimIdentification: Executing SdPeimSetRca fails with %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "SdPeimIdentification: Executing SdPeimSetRca fails with %r\n", Status)); + return Status; + } + // + // Enter Data Tranfer Mode. + // +- DEBUG ((EFI_D_INFO, "Found a SD device at slot [%d]\n", Slot)); ++ DEBUG ((DEBUG_INFO, "Found a SD device at slot [%d]\n", Slot)); + + Status = SdPeimSetBusMode (Slot, Rca, ((Ocr & BIT24) != 0)); + +diff --git a/MdeModulePkg/Bus/Sd/SdDxe/SdBlockIo.c b/MdeModulePkg/Bus/Sd/SdDxe/SdBlockIo.c +index 721f264377..5a041d3618 100644 +--- a/MdeModulePkg/Bus/Sd/SdDxe/SdBlockIo.c ++++ b/MdeModulePkg/Bus/Sd/SdDxe/SdBlockIo.c +@@ -30,7 +30,7 @@ AsyncIoCallback ( + Request = (SD_REQUEST *) Context; + + DEBUG_CODE_BEGIN (); +- DEBUG ((EFI_D_INFO, "Sd Async Request: CmdIndex[%d] Arg[%08x] %r\n", ++ DEBUG ((DEBUG_INFO, "Sd Async Request: CmdIndex[%d] Arg[%08x] %r\n", + Request->SdMmcCmdBlk.CommandIndex, Request->SdMmcCmdBlk.CommandArgument, + Request->Packet.TransactionStatus)); + DEBUG_CODE_END (); +@@ -86,7 +86,7 @@ SdSetRca ( + + Status = PassThru->PassThru (PassThru, Device->Slot, &Packet, NULL); + if (!EFI_ERROR (Status)) { +- DEBUG ((EFI_D_INFO, "Set RCA succeeds with Resp0 = 0x%x\n", SdMmcStatusBlk.Resp0)); ++ DEBUG ((DEBUG_INFO, "Set RCA succeeds with Resp0 = 0x%x\n", SdMmcStatusBlk.Resp0)); + *Rca = (UINT16)(SdMmcStatusBlk.Resp0 >> 16); + } + +@@ -1378,4 +1378,3 @@ SdEraseBlocks ( + + return Status; + } +- +diff --git a/MdeModulePkg/Bus/Sd/SdDxe/SdDxe.c b/MdeModulePkg/Bus/Sd/SdDxe/SdDxe.c +index 73bcc181c1..4ca374990d 100644 +--- a/MdeModulePkg/Bus/Sd/SdDxe/SdDxe.c ++++ b/MdeModulePkg/Bus/Sd/SdDxe/SdDxe.c +@@ -201,7 +201,7 @@ DiscoverUserArea ( + + Status = SdSetRca (Device, &Rca); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "DiscoverUserArea(): Assign new Rca = 0x%x fails with %r\n", Rca, Status)); ++ DEBUG ((DEBUG_ERROR, "DiscoverUserArea(): Assign new Rca = 0x%x fails with %r\n", Rca, Status)); + return Status; + } + +@@ -221,7 +221,7 @@ DiscoverUserArea ( + + Status = SdSelect (Device, Rca); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "DiscoverUserArea(): Reselect the device 0x%x fails with %r\n", Rca, Status)); ++ DEBUG ((DEBUG_ERROR, "DiscoverUserArea(): Reselect the device 0x%x fails with %r\n", Rca, Status)); + return Status; + } + +@@ -905,4 +905,3 @@ InitializeSdDxe ( + + return Status; + } +- +diff --git a/MdeModulePkg/Bus/Ufs/UfsBlockIoPei/UfsBlockIoPei.c b/MdeModulePkg/Bus/Ufs/UfsBlockIoPei/UfsBlockIoPei.c +index d79ca3904b..2538f22f42 100644 +--- a/MdeModulePkg/Bus/Ufs/UfsBlockIoPei/UfsBlockIoPei.c ++++ b/MdeModulePkg/Bus/Ufs/UfsBlockIoPei/UfsBlockIoPei.c +@@ -441,21 +441,21 @@ UfsPeimParsingSenseKeys ( + (SenseData->Addnl_Sense_Code == EFI_SCSI_ASC_NO_MEDIA)) { + Media->MediaPresent = FALSE; + *NeedRetry = FALSE; +- DEBUG ((EFI_D_VERBOSE, "UfsBlockIoPei: Is No Media\n")); ++ DEBUG ((DEBUG_VERBOSE, "UfsBlockIoPei: Is No Media\n")); + return EFI_DEVICE_ERROR; + } + + if ((SenseData->Sense_Key == EFI_SCSI_SK_UNIT_ATTENTION) && + (SenseData->Addnl_Sense_Code == EFI_SCSI_ASC_MEDIA_CHANGE)) { + *NeedRetry = TRUE; +- DEBUG ((EFI_D_VERBOSE, "UfsBlockIoPei: Is Media Change\n")); ++ DEBUG ((DEBUG_VERBOSE, "UfsBlockIoPei: Is Media Change\n")); + return EFI_SUCCESS; + } + + if ((SenseData->Sense_Key == EFI_SCSI_SK_UNIT_ATTENTION) && + (SenseData->Addnl_Sense_Code == EFI_SCSI_ASC_RESET)) { + *NeedRetry = TRUE; +- DEBUG ((EFI_D_VERBOSE, "UfsBlockIoPei: Was Reset Before\n")); ++ DEBUG ((DEBUG_VERBOSE, "UfsBlockIoPei: Was Reset Before\n")); + return EFI_SUCCESS; + } + +@@ -463,13 +463,13 @@ UfsPeimParsingSenseKeys ( + ((SenseData->Sense_Key == EFI_SCSI_SK_NOT_READY) && + (SenseData->Addnl_Sense_Code == EFI_SCSI_ASC_MEDIA_UPSIDE_DOWN))) { + *NeedRetry = FALSE; +- DEBUG ((EFI_D_VERBOSE, "UfsBlockIoPei: Media Error\n")); ++ DEBUG ((DEBUG_VERBOSE, "UfsBlockIoPei: Media Error\n")); + return EFI_DEVICE_ERROR; + } + + if (SenseData->Sense_Key == EFI_SCSI_SK_HARDWARE_ERROR) { + *NeedRetry = FALSE; +- DEBUG ((EFI_D_VERBOSE, "UfsBlockIoPei: Hardware Error\n")); ++ DEBUG ((DEBUG_VERBOSE, "UfsBlockIoPei: Hardware Error\n")); + return EFI_DEVICE_ERROR; + } + +@@ -477,12 +477,12 @@ UfsPeimParsingSenseKeys ( + (SenseData->Addnl_Sense_Code == EFI_SCSI_ASC_NOT_READY) && + (SenseData->Addnl_Sense_Code_Qualifier == EFI_SCSI_ASCQ_IN_PROGRESS)) { + *NeedRetry = TRUE; +- DEBUG ((EFI_D_VERBOSE, "UfsBlockIoPei: Was Reset Before\n")); ++ DEBUG ((DEBUG_VERBOSE, "UfsBlockIoPei: Was Reset Before\n")); + return EFI_SUCCESS; + } + + *NeedRetry = FALSE; +- DEBUG ((EFI_D_VERBOSE, "UfsBlockIoPei: Sense Key = 0x%x ASC = 0x%x!\n", SenseData->Sense_Key, SenseData->Addnl_Sense_Code)); ++ DEBUG ((DEBUG_VERBOSE, "UfsBlockIoPei: Sense Key = 0x%x ASC = 0x%x!\n", SenseData->Sense_Key, SenseData->Addnl_Sense_Code)); + return EFI_DEVICE_ERROR; + } + +@@ -1097,7 +1097,7 @@ InitializeUfsBlockIoPeim ( + // + Status = UfsControllerInit (Private); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "UfsDevicePei: Host Controller Initialization Error, Status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "UfsDevicePei: Host Controller Initialization Error, Status = %r\n", Status)); + Controller++; + continue; + } +@@ -1109,7 +1109,7 @@ InitializeUfsBlockIoPeim ( + // + Status = UfsExecNopCmds (Private); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "Ufs Sending NOP IN command Error, Status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "Ufs Sending NOP IN command Error, Status = %r\n", Status)); + Controller++; + continue; + } +@@ -1119,7 +1119,7 @@ InitializeUfsBlockIoPeim ( + // + Status = UfsSetFlag (Private, UfsFlagDevInit); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "Ufs Set fDeviceInit Flag Error, Status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "Ufs Set fDeviceInit Flag Error, Status = %r\n", Status)); + Controller++; + continue; + } +@@ -1129,7 +1129,7 @@ InitializeUfsBlockIoPeim ( + // + Status = UfsRwDeviceDesc (Private, TRUE, UfsConfigDesc, 0, 0, &Config, sizeof (UFS_CONFIG_DESC)); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "Ufs Get Configuration Descriptor Error, Status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "Ufs Get Configuration Descriptor Error, Status = %r\n", Status)); + Controller++; + continue; + } +@@ -1137,7 +1137,7 @@ InitializeUfsBlockIoPeim ( + for (Index = 0; Index < UFS_PEIM_MAX_LUNS; Index++) { + if (Config.UnitDescConfParams[Index].LunEn != 0) { + Private->Luns.BitMask |= (BIT0 << Index); +- DEBUG ((EFI_D_INFO, "Ufs %d Lun %d is enabled\n", Controller, Index)); ++ DEBUG ((DEBUG_INFO, "Ufs %d Lun %d is enabled\n", Controller, Index)); + } + } + +diff --git a/MdeModulePkg/Bus/Ufs/UfsBlockIoPei/UfsHci.c b/MdeModulePkg/Bus/Ufs/UfsBlockIoPei/UfsHci.c +index e450f6f49d..1e47eb7eaa 100644 +--- a/MdeModulePkg/Bus/Ufs/UfsBlockIoPei/UfsHci.c ++++ b/MdeModulePkg/Bus/Ufs/UfsBlockIoPei/UfsHci.c +@@ -80,34 +80,34 @@ DumpUicCmdExecResult ( + case 0x00: + break; + case 0x01: +- DEBUG ((EFI_D_VERBOSE, "UIC configuration command fails - INVALID_MIB_ATTRIBUTE\n")); ++ DEBUG ((DEBUG_VERBOSE, "UIC configuration command fails - INVALID_MIB_ATTRIBUTE\n")); + break; + case 0x02: +- DEBUG ((EFI_D_VERBOSE, "UIC configuration command fails - INVALID_MIB_ATTRIBUTE_VALUE\n")); ++ DEBUG ((DEBUG_VERBOSE, "UIC configuration command fails - INVALID_MIB_ATTRIBUTE_VALUE\n")); + break; + case 0x03: +- DEBUG ((EFI_D_VERBOSE, "UIC configuration command fails - READ_ONLY_MIB_ATTRIBUTE\n")); ++ DEBUG ((DEBUG_VERBOSE, "UIC configuration command fails - READ_ONLY_MIB_ATTRIBUTE\n")); + break; + case 0x04: +- DEBUG ((EFI_D_VERBOSE, "UIC configuration command fails - WRITE_ONLY_MIB_ATTRIBUTE\n")); ++ DEBUG ((DEBUG_VERBOSE, "UIC configuration command fails - WRITE_ONLY_MIB_ATTRIBUTE\n")); + break; + case 0x05: +- DEBUG ((EFI_D_VERBOSE, "UIC configuration command fails - BAD_INDEX\n")); ++ DEBUG ((DEBUG_VERBOSE, "UIC configuration command fails - BAD_INDEX\n")); + break; + case 0x06: +- DEBUG ((EFI_D_VERBOSE, "UIC configuration command fails - LOCKED_MIB_ATTRIBUTE\n")); ++ DEBUG ((DEBUG_VERBOSE, "UIC configuration command fails - LOCKED_MIB_ATTRIBUTE\n")); + break; + case 0x07: +- DEBUG ((EFI_D_VERBOSE, "UIC configuration command fails - BAD_TEST_FEATURE_INDEX\n")); ++ DEBUG ((DEBUG_VERBOSE, "UIC configuration command fails - BAD_TEST_FEATURE_INDEX\n")); + break; + case 0x08: +- DEBUG ((EFI_D_VERBOSE, "UIC configuration command fails - PEER_COMMUNICATION_FAILURE\n")); ++ DEBUG ((DEBUG_VERBOSE, "UIC configuration command fails - PEER_COMMUNICATION_FAILURE\n")); + break; + case 0x09: +- DEBUG ((EFI_D_VERBOSE, "UIC configuration command fails - BUSY\n")); ++ DEBUG ((DEBUG_VERBOSE, "UIC configuration command fails - BUSY\n")); + break; + case 0x0A: +- DEBUG ((EFI_D_VERBOSE, "UIC configuration command fails - DME_FAILURE\n")); ++ DEBUG ((DEBUG_VERBOSE, "UIC configuration command fails - DME_FAILURE\n")); + break; + default : + ASSERT (FALSE); +@@ -118,7 +118,7 @@ DumpUicCmdExecResult ( + case 0x00: + break; + case 0x01: +- DEBUG ((EFI_D_VERBOSE, "UIC control command fails - FAILURE\n")); ++ DEBUG ((DEBUG_VERBOSE, "UIC control command fails - FAILURE\n")); + break; + default : + ASSERT (FALSE); +@@ -140,34 +140,34 @@ DumpQueryResponseResult ( + { + switch (Result) { + case 0xF6: +- DEBUG ((EFI_D_VERBOSE, "Query Response with Parameter Not Readable\n")); ++ DEBUG ((DEBUG_VERBOSE, "Query Response with Parameter Not Readable\n")); + break; + case 0xF7: +- DEBUG ((EFI_D_VERBOSE, "Query Response with Parameter Not Writeable\n")); ++ DEBUG ((DEBUG_VERBOSE, "Query Response with Parameter Not Writeable\n")); + break; + case 0xF8: +- DEBUG ((EFI_D_VERBOSE, "Query Response with Parameter Already Written\n")); ++ DEBUG ((DEBUG_VERBOSE, "Query Response with Parameter Already Written\n")); + break; + case 0xF9: +- DEBUG ((EFI_D_VERBOSE, "Query Response with Invalid Length\n")); ++ DEBUG ((DEBUG_VERBOSE, "Query Response with Invalid Length\n")); + break; + case 0xFA: +- DEBUG ((EFI_D_VERBOSE, "Query Response with Invalid Value\n")); ++ DEBUG ((DEBUG_VERBOSE, "Query Response with Invalid Value\n")); + break; + case 0xFB: +- DEBUG ((EFI_D_VERBOSE, "Query Response with Invalid Selector\n")); ++ DEBUG ((DEBUG_VERBOSE, "Query Response with Invalid Selector\n")); + break; + case 0xFC: +- DEBUG ((EFI_D_VERBOSE, "Query Response with Invalid Index\n")); ++ DEBUG ((DEBUG_VERBOSE, "Query Response with Invalid Index\n")); + break; + case 0xFD: +- DEBUG ((EFI_D_VERBOSE, "Query Response with Invalid Idn\n")); ++ DEBUG ((DEBUG_VERBOSE, "Query Response with Invalid Idn\n")); + break; + case 0xFE: +- DEBUG ((EFI_D_VERBOSE, "Query Response with Invalid Opcode\n")); ++ DEBUG ((DEBUG_VERBOSE, "Query Response with Invalid Opcode\n")); + break; + case 0xFF: +- DEBUG ((EFI_D_VERBOSE, "Query Response with General Failure\n")); ++ DEBUG ((DEBUG_VERBOSE, "Query Response with General Failure\n")); + break; + default : + ASSERT (FALSE); +@@ -325,7 +325,7 @@ UfsInitUtpPrdt ( + + if ((BufferSize & (BIT0 | BIT1)) != 0) { + BufferSize &= ~(BIT0 | BIT1); +- DEBUG ((EFI_D_WARN, "UfsInitUtpPrdt: The BufferSize [%d] is not dword-aligned!\n", BufferSize)); ++ DEBUG ((DEBUG_WARN, "UfsInitUtpPrdt: The BufferSize [%d] is not dword-aligned!\n", BufferSize)); + } + + if (BufferSize == 0) { +@@ -1190,7 +1190,7 @@ UfsExecScsiCmds ( + // Check the transfer request result. + // + if (Response->Response != 0) { +- DEBUG ((EFI_D_ERROR, "UfsExecScsiCmds() fails with Target Failure\n")); ++ DEBUG ((DEBUG_ERROR, "UfsExecScsiCmds() fails with Target Failure\n")); + Status = EFI_DEVICE_ERROR; + goto Exit; + } +@@ -1324,7 +1324,7 @@ UfsExecUicCommands ( + return EFI_NOT_FOUND; + } + +- DEBUG ((EFI_D_INFO, "UfsblockioPei: found a attached UFS device\n")); ++ DEBUG ((DEBUG_INFO, "UfsblockioPei: found a attached UFS device\n")); + + return EFI_SUCCESS; + } +@@ -1577,25 +1577,25 @@ UfsControllerInit ( + + Status = UfsEnableHostController (Private); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "UfsDevicePei: Enable Host Controller Fails, Status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "UfsDevicePei: Enable Host Controller Fails, Status = %r\n", Status)); + return Status; + } + + Status = UfsDeviceDetection (Private); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "UfsDevicePei: Device Detection Fails, Status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "UfsDevicePei: Device Detection Fails, Status = %r\n", Status)); + return Status; + } + + Status = UfsInitTaskManagementRequestList (Private); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "UfsDevicePei: Task management list initialization Fails, Status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "UfsDevicePei: Task management list initialization Fails, Status = %r\n", Status)); + return Status; + } + + Status = UfsInitTransferRequestList (Private); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "UfsDevicePei: Transfer list initialization Fails, Status = %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "UfsDevicePei: Transfer list initialization Fails, Status = %r\n", Status)); + + if (Private->TmrlMapping != NULL) { + IoMmuFreeBuffer ( +@@ -1609,7 +1609,7 @@ UfsControllerInit ( + return Status; + } + +- DEBUG ((EFI_D_INFO, "UfsDevicePei Finished\n")); ++ DEBUG ((DEBUG_INFO, "UfsDevicePei Finished\n")); + return EFI_SUCCESS; + } + +@@ -1661,8 +1661,7 @@ UfsControllerStop ( + return EFI_DEVICE_ERROR; + } + +- DEBUG ((EFI_D_INFO, "UfsDevicePei: Stop the UFS Host Controller\n")); ++ DEBUG ((DEBUG_INFO, "UfsDevicePei: Stop the UFS Host Controller\n")); + + return EFI_SUCCESS; + } +- +diff --git a/MdeModulePkg/Bus/Usb/UsbBotPei/PeiAtapi.c b/MdeModulePkg/Bus/Usb/UsbBotPei/PeiAtapi.c +index 41f782a78b..c5ba307e75 100644 +--- a/MdeModulePkg/Bus/Usb/UsbBotPei/PeiAtapi.c ++++ b/MdeModulePkg/Bus/Usb/UsbBotPei/PeiAtapi.c +@@ -270,7 +270,7 @@ PeiUsbReadCapacity ( + LastBlock = ((UINT32) Data.LastLba3 << 24) | (Data.LastLba2 << 16) | (Data.LastLba1 << 8) | Data.LastLba0; + + if (LastBlock == 0xFFFFFFFF) { +- DEBUG ((EFI_D_INFO, "The usb device LBA count is larger than 0xFFFFFFFF!\n")); ++ DEBUG ((DEBUG_INFO, "The usb device LBA count is larger than 0xFFFFFFFF!\n")); + } + + PeiBotDevice->Media.LastBlock = LastBlock; +@@ -341,7 +341,7 @@ PeiUsbReadFormattedCapacity ( + } else { + LastBlock = ((UINT32) FormatData.LastLba3 << 24) | (FormatData.LastLba2 << 16) | (FormatData.LastLba1 << 8) | FormatData.LastLba0; + if (LastBlock == 0xFFFFFFFF) { +- DEBUG ((EFI_D_INFO, "The usb device LBA count is larger than 0xFFFFFFFF!\n")); ++ DEBUG ((DEBUG_INFO, "The usb device LBA count is larger than 0xFFFFFFFF!\n")); + } + + PeiBotDevice->Media.LastBlock = LastBlock; +diff --git a/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBus.c b/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBus.c +index 4b4915c019..76b3737032 100644 +--- a/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBus.c ++++ b/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBus.c +@@ -168,7 +168,7 @@ UsbIoControlTransfer ( + + goto ON_EXIT; + } +- DEBUG ((EFI_D_INFO, "UsbIoControlTransfer: configure changed!!! Do NOT use old UsbIo!!!\n")); ++ DEBUG ((DEBUG_INFO, "UsbIoControlTransfer: configure changed!!! Do NOT use old UsbIo!!!\n")); + + if (Dev->ActiveConfig != NULL) { + UsbRemoveConfig (Dev); +@@ -837,7 +837,7 @@ UsbIoPortReset ( + Status = HubIf->HubApi->ResetPort (HubIf, Dev->ParentPort); + + if (EFI_ERROR (Status)) { +- DEBUG (( EFI_D_ERROR, "UsbIoPortReset: failed to reset hub port %d@hub %d, %r \n", ++ DEBUG (( DEBUG_ERROR, "UsbIoPortReset: failed to reset hub port %d@hub %d, %r \n", + Dev->ParentPort, Dev->ParentAddr, Status)); + + goto ON_EXIT; +@@ -861,13 +861,13 @@ UsbIoPortReset ( + // + // It may fail due to device disconnection or other reasons. + // +- DEBUG (( EFI_D_ERROR, "UsbIoPortReset: failed to set address for device %d - %r\n", ++ DEBUG (( DEBUG_ERROR, "UsbIoPortReset: failed to set address for device %d - %r\n", + Dev->Address, Status)); + + goto ON_EXIT; + } + +- DEBUG (( EFI_D_INFO, "UsbIoPortReset: device is now ADDRESSED at %d\n", Dev->Address)); ++ DEBUG (( DEBUG_INFO, "UsbIoPortReset: device is now ADDRESSED at %d\n", Dev->Address)); + + // + // Reset the current active configure, after this device +@@ -877,7 +877,7 @@ UsbIoPortReset ( + Status = UsbSetConfig (Dev, Dev->ActiveConfig->Desc.ConfigurationValue); + + if (EFI_ERROR (Status)) { +- DEBUG (( EFI_D_ERROR, "UsbIoPortReset: failed to set configure for device %d - %r\n", ++ DEBUG (( DEBUG_ERROR, "UsbIoPortReset: failed to set configure for device %d - %r\n", + Dev->Address, Status)); + } + } +@@ -934,7 +934,7 @@ UsbBusBuildProtocol ( + ); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "UsbBusStart: Failed to open device path %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "UsbBusStart: Failed to open device path %r\n", Status)); + + FreePool (UsbBus); + return Status; +@@ -967,7 +967,7 @@ UsbBusBuildProtocol ( + ); + + if (EFI_ERROR (Status) && EFI_ERROR (Status2)) { +- DEBUG ((EFI_D_ERROR, "UsbBusStart: Failed to open USB_HC/USB2_HC %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "UsbBusStart: Failed to open USB_HC/USB2_HC %r\n", Status)); + + Status = EFI_DEVICE_ERROR; + goto CLOSE_HC; +@@ -995,7 +995,7 @@ UsbBusBuildProtocol ( + ); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "UsbBusStart: Failed to install bus protocol %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "UsbBusStart: Failed to install bus protocol %r\n", Status)); + goto CLOSE_HC; + } + +@@ -1043,13 +1043,13 @@ UsbBusBuildProtocol ( + Status = mUsbRootHubApi.Init (RootIf); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "UsbBusStart: Failed to init root hub %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "UsbBusStart: Failed to init root hub %r\n", Status)); + goto FREE_ROOTHUB; + } + + UsbBus->Devices[0] = RootHub; + +- DEBUG ((EFI_D_INFO, "UsbBusStart: usb bus started on %p, root hub %p\n", Controller, RootIf)); ++ DEBUG ((DEBUG_INFO, "UsbBusStart: usb bus started on %p, root hub %p\n", Controller, RootIf)); + return EFI_SUCCESS; + + FREE_ROOTHUB: +@@ -1088,7 +1088,7 @@ CLOSE_HC: + ); + FreePool (UsbBus); + +- DEBUG ((EFI_D_ERROR, "UsbBusStart: Failed to start bus driver %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "UsbBusStart: Failed to start bus driver %r\n", Status)); + return Status; + } + +@@ -1448,7 +1448,7 @@ UsbBusControllerDriverStop ( + return ReturnStatus; + } + +- DEBUG (( EFI_D_INFO, "UsbBusStop: usb bus stopped on %p\n", Controller)); ++ DEBUG (( DEBUG_INFO, "UsbBusStop: usb bus stopped on %p\n", Controller)); + + // + // Locate USB_BUS for the current host controller +diff --git a/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbDesc.c b/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbDesc.c +index b08188b1bc..4e602228fb 100644 +--- a/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbDesc.c ++++ b/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbDesc.c +@@ -272,7 +272,7 @@ UsbParseInterfaceDesc ( + Setting = UsbCreateDesc (DescBuf, Len, USB_DESC_TYPE_INTERFACE, &Used); + + if (Setting == NULL) { +- DEBUG (( EFI_D_ERROR, "UsbParseInterfaceDesc: failed to create interface descriptor\n")); ++ DEBUG (( DEBUG_ERROR, "UsbParseInterfaceDesc: failed to create interface descriptor\n")); + return NULL; + } + +@@ -283,7 +283,7 @@ UsbParseInterfaceDesc ( + // + NumEp = Setting->Desc.NumEndpoints; + +- DEBUG (( EFI_D_INFO, "UsbParseInterfaceDesc: interface %d(setting %d) has %d endpoints\n", ++ DEBUG (( DEBUG_INFO, "UsbParseInterfaceDesc: interface %d(setting %d) has %d endpoints\n", + Setting->Desc.InterfaceNumber, Setting->Desc.AlternateSetting, (UINT32)NumEp)); + + if (NumEp == 0) { +@@ -303,7 +303,7 @@ UsbParseInterfaceDesc ( + Ep = UsbCreateDesc (DescBuf + Offset, Len - Offset, USB_DESC_TYPE_ENDPOINT, &Used); + + if (Ep == NULL) { +- DEBUG (( EFI_D_ERROR, "UsbParseInterfaceDesc: failed to create endpoint(index %d)\n", (UINT32)Index)); ++ DEBUG (( DEBUG_ERROR, "UsbParseInterfaceDesc: failed to create endpoint(index %d)\n", (UINT32)Index)); + goto ON_ERROR; + } + +@@ -362,7 +362,7 @@ UsbParseConfigDesc ( + goto ON_ERROR; + } + +- DEBUG (( EFI_D_INFO, "UsbParseConfigDesc: config %d has %d interfaces\n", ++ DEBUG (( DEBUG_INFO, "UsbParseConfigDesc: config %d has %d interfaces\n", + Config->Desc.ConfigurationValue, (UINT32)NumIf)); + + for (Index = 0; Index < NumIf; Index++) { +@@ -394,7 +394,7 @@ UsbParseConfigDesc ( + Setting = UsbParseInterfaceDesc (DescBuf, Len, &Consumed); + + if (Setting == NULL) { +- DEBUG (( EFI_D_ERROR, "UsbParseConfigDesc: warning: failed to get interface setting, stop parsing now.\n")); ++ DEBUG (( DEBUG_ERROR, "UsbParseConfigDesc: warning: failed to get interface setting, stop parsing now.\n")); + break; + + } else if (Setting->Desc.InterfaceNumber >= NumIf) { +@@ -765,13 +765,13 @@ UsbGetOneConfig ( + Status = UsbCtrlGetDesc (UsbDev, USB_DESC_TYPE_CONFIG, Index, 0, &Desc, 8); + + if (EFI_ERROR (Status)) { +- DEBUG (( EFI_D_ERROR, "UsbGetOneConfig: failed to get descript length(%d) %r\n", ++ DEBUG (( DEBUG_ERROR, "UsbGetOneConfig: failed to get descript length(%d) %r\n", + Desc.TotalLength, Status)); + + return NULL; + } + +- DEBUG (( EFI_D_INFO, "UsbGetOneConfig: total length is %d\n", Desc.TotalLength)); ++ DEBUG (( DEBUG_INFO, "UsbGetOneConfig: total length is %d\n", Desc.TotalLength)); + + // + // Reject if TotalLength even cannot cover itself. +@@ -789,7 +789,7 @@ UsbGetOneConfig ( + Status = UsbCtrlGetDesc (UsbDev, USB_DESC_TYPE_CONFIG, Index, 0, Buf, Desc.TotalLength); + + if (EFI_ERROR (Status)) { +- DEBUG (( EFI_D_ERROR, "UsbGetOneConfig: failed to get full descript %r\n", Status)); ++ DEBUG (( DEBUG_ERROR, "UsbGetOneConfig: failed to get full descript %r\n", Status)); + + FreePool (Buf); + return NULL; +@@ -829,7 +829,7 @@ UsbBuildDescTable ( + Status = UsbGetDevDesc (UsbDev); + + if (EFI_ERROR (Status)) { +- DEBUG (( EFI_D_ERROR, "UsbBuildDescTable: failed to get device descriptor - %r\n", Status)); ++ DEBUG (( DEBUG_ERROR, "UsbBuildDescTable: failed to get device descriptor - %r\n", Status)); + return Status; + } + +@@ -844,7 +844,7 @@ UsbBuildDescTable ( + return EFI_OUT_OF_RESOURCES; + } + +- DEBUG (( EFI_D_INFO, "UsbBuildDescTable: device has %d configures\n", NumConfig)); ++ DEBUG (( DEBUG_INFO, "UsbBuildDescTable: device has %d configures\n", NumConfig)); + + // + // Read each configurations, then parse them +@@ -853,7 +853,7 @@ UsbBuildDescTable ( + Config = UsbGetOneConfig (UsbDev, Index); + + if (Config == NULL) { +- DEBUG (( EFI_D_ERROR, "UsbBuildDescTable: failed to get configure (index %d)\n", Index)); ++ DEBUG (( DEBUG_ERROR, "UsbBuildDescTable: failed to get configure (index %d)\n", Index)); + + // + // If we can get the default descriptor, it is likely that the +@@ -871,7 +871,7 @@ UsbBuildDescTable ( + FreePool (Config); + + if (ConfigDesc == NULL) { +- DEBUG (( EFI_D_ERROR, "UsbBuildDescTable: failed to parse configure (index %d)\n", Index)); ++ DEBUG (( DEBUG_ERROR, "UsbBuildDescTable: failed to parse configure (index %d)\n", Index)); + + // + // If we can get the default descriptor, it is likely that the +@@ -894,7 +894,7 @@ UsbBuildDescTable ( + Status = UsbBuildLangTable (UsbDev); + + if (EFI_ERROR (Status)) { +- DEBUG (( EFI_D_INFO, "UsbBuildDescTable: get language ID table %r\n", Status)); ++ DEBUG (( DEBUG_INFO, "UsbBuildDescTable: get language ID table %r\n", Status)); + } + + return EFI_SUCCESS; +diff --git a/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbEnumer.c b/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbEnumer.c +index d3e0cfa626..500978a9de 100644 +--- a/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbEnumer.c ++++ b/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbEnumer.c +@@ -132,7 +132,7 @@ UsbCreateInterface ( + UsbIf->DevicePath = AppendDevicePathNode (HubIf->DevicePath, &UsbNode.Header); + + if (UsbIf->DevicePath == NULL) { +- DEBUG ((EFI_D_ERROR, "UsbCreateInterface: failed to create device path\n")); ++ DEBUG ((DEBUG_ERROR, "UsbCreateInterface: failed to create device path\n")); + + Status = EFI_OUT_OF_RESOURCES; + goto ON_ERROR; +@@ -148,7 +148,7 @@ UsbCreateInterface ( + ); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "UsbCreateInterface: failed to install UsbIo - %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "UsbCreateInterface: failed to install UsbIo - %r\n", Status)); + goto ON_ERROR; + } + +@@ -167,7 +167,7 @@ UsbCreateInterface ( + NULL + ); + +- DEBUG ((EFI_D_ERROR, "UsbCreateInterface: failed to open host for child - %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "UsbCreateInterface: failed to open host for child - %r\n", Status)); + goto ON_ERROR; + } + +@@ -262,7 +262,7 @@ UsbConnectDriver ( + // connect drivers with this interface + // + if (UsbIsHubInterface (UsbIf)) { +- DEBUG ((EFI_D_INFO, "UsbConnectDriver: found a hub device\n")); ++ DEBUG ((DEBUG_INFO, "UsbConnectDriver: found a hub device\n")); + Status = mUsbHubApi.Init (UsbIf); + + } else { +@@ -279,14 +279,14 @@ UsbConnectDriver ( + // + if (UsbBusIsWantedUsbIO (UsbIf->Device->Bus, UsbIf)) { + OldTpl = UsbGetCurrentTpl (); +- DEBUG ((EFI_D_INFO, "UsbConnectDriver: TPL before connect is %d, %p\n", (UINT32)OldTpl, UsbIf->Handle)); ++ DEBUG ((DEBUG_INFO, "UsbConnectDriver: TPL before connect is %d, %p\n", (UINT32)OldTpl, UsbIf->Handle)); + + gBS->RestoreTPL (TPL_CALLBACK); + + Status = gBS->ConnectController (UsbIf->Handle, NULL, NULL, TRUE); + UsbIf->IsManaged = (BOOLEAN)!EFI_ERROR (Status); + +- DEBUG ((EFI_D_INFO, "UsbConnectDriver: TPL after connect is %d\n", (UINT32)UsbGetCurrentTpl())); ++ DEBUG ((DEBUG_INFO, "UsbConnectDriver: TPL after connect is %d\n", (UINT32)UsbGetCurrentTpl())); + ASSERT (UsbGetCurrentTpl () == TPL_CALLBACK); + + gBS->RaiseTPL (OldTpl); +@@ -340,7 +340,7 @@ UsbSelectSetting ( + IfDesc->ActiveIndex = Index; + + ASSERT (Setting != NULL); +- DEBUG ((EFI_D_INFO, "UsbSelectSetting: setting %d selected for interface %d\n", ++ DEBUG ((DEBUG_INFO, "UsbSelectSetting: setting %d selected for interface %d\n", + Alternate, Setting->Desc.InterfaceNumber)); + + // +@@ -399,7 +399,7 @@ UsbSelectConfig ( + + Device->ActiveConfig = ConfigDesc; + +- DEBUG ((EFI_D_INFO, "UsbSelectConfig: config %d selected for device %d\n", ++ DEBUG ((DEBUG_INFO, "UsbSelectConfig: config %d selected for device %d\n", + ConfigValue, Device->Address)); + + // +@@ -479,7 +479,7 @@ UsbDisconnectDriver ( + // or disconnect at CALLBACK. + // + OldTpl = UsbGetCurrentTpl (); +- DEBUG ((EFI_D_INFO, "UsbDisconnectDriver: old TPL is %d, %p\n", (UINT32)OldTpl, UsbIf->Handle)); ++ DEBUG ((DEBUG_INFO, "UsbDisconnectDriver: old TPL is %d, %p\n", (UINT32)OldTpl, UsbIf->Handle)); + + gBS->RestoreTPL (TPL_CALLBACK); + +@@ -488,7 +488,7 @@ UsbDisconnectDriver ( + UsbIf->IsManaged = FALSE; + } + +- DEBUG (( EFI_D_INFO, "UsbDisconnectDriver: TPL after disconnect is %d, %d\n", (UINT32)UsbGetCurrentTpl(), Status)); ++ DEBUG (( DEBUG_INFO, "UsbDisconnectDriver: TPL after disconnect is %d, %d\n", (UINT32)UsbGetCurrentTpl(), Status)); + ASSERT (UsbGetCurrentTpl () == TPL_CALLBACK); + + gBS->RaiseTPL (OldTpl); +@@ -586,7 +586,7 @@ UsbRemoveDevice ( + } else { + Bus->Devices[Index]->DisconnectFail = TRUE; + ReturnStatus = Status; +- DEBUG ((EFI_D_INFO, "UsbRemoveDevice: failed to remove child %p at parent %p\n", Child, Device)); ++ DEBUG ((DEBUG_INFO, "UsbRemoveDevice: failed to remove child %p at parent %p\n", Child, Device)); + } + } + +@@ -597,7 +597,7 @@ UsbRemoveDevice ( + Status = UsbRemoveConfig (Device); + + if (!EFI_ERROR (Status)) { +- DEBUG (( EFI_D_INFO, "UsbRemoveDevice: device %d removed\n", Device->Address)); ++ DEBUG (( DEBUG_INFO, "UsbRemoveDevice: device %d removed\n", Device->Address)); + + ASSERT (Device->Address < Bus->MaxDevices); + Bus->Devices[Device->Address] = NULL; +@@ -691,13 +691,13 @@ UsbEnumerateNewDev ( + if (ResetIsNeeded) { + Status = HubApi->ResetPort (HubIf, Port); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "UsbEnumerateNewDev: failed to reset port %d - %r\n", Port, Status)); ++ DEBUG ((DEBUG_ERROR, "UsbEnumerateNewDev: failed to reset port %d - %r\n", Port, Status)); + + return Status; + } +- DEBUG (( EFI_D_INFO, "UsbEnumerateNewDev: hub port %d is reset\n", Port)); ++ DEBUG (( DEBUG_INFO, "UsbEnumerateNewDev: hub port %d is reset\n", Port)); + } else { +- DEBUG (( EFI_D_INFO, "UsbEnumerateNewDev: hub port %d reset is skipped\n", Port)); ++ DEBUG (( DEBUG_INFO, "UsbEnumerateNewDev: hub port %d reset is skipped\n", Port)); + } + + Child = UsbCreateDevice (HubIf, Port); +@@ -713,12 +713,12 @@ UsbEnumerateNewDev ( + Status = HubApi->GetPortStatus (HubIf, Port, &PortState); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "UsbEnumerateNewDev: failed to get speed of port %d\n", Port)); ++ DEBUG ((DEBUG_ERROR, "UsbEnumerateNewDev: failed to get speed of port %d\n", Port)); + goto ON_ERROR; + } + + if (!USB_BIT_IS_SET (PortState.PortStatus, USB_PORT_STAT_CONNECTION)) { +- DEBUG ((EFI_D_ERROR, "UsbEnumerateNewDev: No device present at port %d\n", Port)); ++ DEBUG ((DEBUG_ERROR, "UsbEnumerateNewDev: No device present at port %d\n", Port)); + Status = EFI_NOT_FOUND; + goto ON_ERROR; + } else if (USB_BIT_IS_SET (PortState.PortStatus, USB_PORT_STAT_SUPER_SPEED)){ +@@ -735,7 +735,7 @@ UsbEnumerateNewDev ( + Child->MaxPacket0 = 8; + } + +- DEBUG (( EFI_D_INFO, "UsbEnumerateNewDev: device is of %d speed\n", Child->Speed)); ++ DEBUG (( DEBUG_INFO, "UsbEnumerateNewDev: device is of %d speed\n", Child->Speed)); + + if (((Child->Speed == EFI_USB_SPEED_LOW) || (Child->Speed == EFI_USB_SPEED_FULL)) && + (Parent->Speed == EFI_USB_SPEED_HIGH)) { +@@ -751,7 +751,7 @@ UsbEnumerateNewDev ( + } else { + Child->Translator = Parent->Translator; + } +- DEBUG (( EFI_D_INFO, "UsbEnumerateNewDev: device uses translator (%d, %d)\n", ++ DEBUG (( DEBUG_INFO, "UsbEnumerateNewDev: device uses translator (%d, %d)\n", + Child->Translator.TranslatorHubAddress, + Child->Translator.TranslatorPortNumber)); + +@@ -775,7 +775,7 @@ UsbEnumerateNewDev ( + } + + if (Address >= Bus->MaxDevices) { +- DEBUG ((EFI_D_ERROR, "UsbEnumerateNewDev: address pool is full for port %d\n", Port)); ++ DEBUG ((DEBUG_ERROR, "UsbEnumerateNewDev: address pool is full for port %d\n", Port)); + + Status = EFI_ACCESS_DENIED; + goto ON_ERROR; +@@ -786,13 +786,13 @@ UsbEnumerateNewDev ( + Bus->Devices[Address] = Child; + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "UsbEnumerateNewDev: failed to set device address - %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "UsbEnumerateNewDev: failed to set device address - %r\n", Status)); + goto ON_ERROR; + } + + gBS->Stall (USB_SET_DEVICE_ADDRESS_STALL); + +- DEBUG ((EFI_D_INFO, "UsbEnumerateNewDev: device is now ADDRESSED at %d\n", Address)); ++ DEBUG ((DEBUG_INFO, "UsbEnumerateNewDev: device is now ADDRESSED at %d\n", Address)); + + // + // Host sends a Get_Descriptor request to learn the max packet +@@ -801,11 +801,11 @@ UsbEnumerateNewDev ( + Status = UsbGetMaxPacketSize0 (Child); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "UsbEnumerateNewDev: failed to get max packet for EP 0 - %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "UsbEnumerateNewDev: failed to get max packet for EP 0 - %r\n", Status)); + goto ON_ERROR; + } + +- DEBUG (( EFI_D_INFO, "UsbEnumerateNewDev: max packet size for EP 0 is %d\n", Child->MaxPacket0)); ++ DEBUG (( DEBUG_INFO, "UsbEnumerateNewDev: max packet size for EP 0 is %d\n", Child->MaxPacket0)); + + // + // Host learns about the device's abilities by requesting device's +@@ -814,7 +814,7 @@ UsbEnumerateNewDev ( + Status = UsbBuildDescTable (Child); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "UsbEnumerateNewDev: failed to build descriptor table - %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "UsbEnumerateNewDev: failed to build descriptor table - %r\n", Status)); + goto ON_ERROR; + } + +@@ -826,11 +826,11 @@ UsbEnumerateNewDev ( + Status = UsbSetConfig (Child, Config); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "UsbEnumerateNewDev: failed to set configure %d - %r\n", Config, Status)); ++ DEBUG ((DEBUG_ERROR, "UsbEnumerateNewDev: failed to set configure %d - %r\n", Config, Status)); + goto ON_ERROR; + } + +- DEBUG (( EFI_D_INFO, "UsbEnumerateNewDev: device %d is now in CONFIGED state\n", Address)); ++ DEBUG (( DEBUG_INFO, "UsbEnumerateNewDev: device %d is now in CONFIGED state\n", Address)); + + // + // Host assigns and loads a device driver. +@@ -838,7 +838,7 @@ UsbEnumerateNewDev ( + Status = UsbSelectConfig (Child, Config); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "UsbEnumerateNewDev: failed to create interfaces - %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "UsbEnumerateNewDev: failed to create interfaces - %r\n", Status)); + goto ON_ERROR; + } + +@@ -902,7 +902,7 @@ UsbEnumeratePort ( + Status = HubApi->GetPortStatus (HubIf, Port, &PortState); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "UsbEnumeratePort: failed to get state of port %d\n", Port)); ++ DEBUG ((DEBUG_ERROR, "UsbEnumeratePort: failed to get state of port %d\n", Port)); + return Status; + } + +@@ -914,7 +914,7 @@ UsbEnumeratePort ( + return EFI_SUCCESS; + } + +- DEBUG (( EFI_D_INFO, "UsbEnumeratePort: port %d state - %02x, change - %02x on %p\n", ++ DEBUG (( DEBUG_INFO, "UsbEnumeratePort: port %d state - %02x, change - %02x on %p\n", + Port, PortState.PortStatus, PortState.PortChangeStatus, HubIf)); + + // +@@ -932,7 +932,7 @@ UsbEnumeratePort ( + // which probably is caused by short circuit. It has to wait system hardware + // to perform recovery. + // +- DEBUG (( EFI_D_ERROR, "UsbEnumeratePort: Critical Over Current\n", Port)); ++ DEBUG (( DEBUG_ERROR, "UsbEnumeratePort: Critical Over Current\n", Port)); + return EFI_DEVICE_ERROR; + + } +@@ -942,7 +942,7 @@ UsbEnumeratePort ( + // over current. As a result, all ports are nearly power-off, so + // it's necessary to detach and enumerate all ports again. + // +- DEBUG (( EFI_D_ERROR, "UsbEnumeratePort: 2.0 device Recovery Over Current\n", Port)); ++ DEBUG (( DEBUG_ERROR, "UsbEnumeratePort: 2.0 device Recovery Over Current\n", Port)); + } + + if (USB_BIT_IS_SET (PortState.PortChangeStatus, USB_PORT_STAT_C_ENABLE)) { +@@ -952,7 +952,7 @@ UsbEnumeratePort ( + // on 2.0 roothub does. When over-current has influence on 1.1 device, the port + // would be disabled, so it's also necessary to detach and enumerate again. + // +- DEBUG (( EFI_D_ERROR, "UsbEnumeratePort: 1.1 device Recovery Over Current\n", Port)); ++ DEBUG (( DEBUG_ERROR, "UsbEnumeratePort: 1.1 device Recovery Over Current\n", Port)); + } + + if (USB_BIT_IS_SET (PortState.PortChangeStatus, USB_PORT_STAT_C_CONNECTION)) { +@@ -960,7 +960,7 @@ UsbEnumeratePort ( + // Case4: + // Device connected or disconnected normally. + // +- DEBUG ((EFI_D_INFO, "UsbEnumeratePort: Device Connect/Disconnect Normally\n", Port)); ++ DEBUG ((DEBUG_INFO, "UsbEnumeratePort: Device Connect/Disconnect Normally\n", Port)); + } + + // +@@ -969,7 +969,7 @@ UsbEnumeratePort ( + Child = UsbFindChild (HubIf, Port); + + if (Child != NULL) { +- DEBUG (( EFI_D_INFO, "UsbEnumeratePort: device at port %d removed from root hub %p\n", Port, HubIf)); ++ DEBUG (( DEBUG_INFO, "UsbEnumeratePort: device at port %d removed from root hub %p\n", Port, HubIf)); + UsbRemoveDevice (Child); + } + +@@ -977,7 +977,7 @@ UsbEnumeratePort ( + // + // Now, new device connected, enumerate and configure the device + // +- DEBUG (( EFI_D_INFO, "UsbEnumeratePort: new device connected at port %d\n", Port)); ++ DEBUG (( DEBUG_INFO, "UsbEnumeratePort: new device connected at port %d\n", Port)); + if (USB_BIT_IS_SET (PortState.PortChangeStatus, USB_PORT_STAT_C_RESET)) { + Status = UsbEnumerateNewDev (HubIf, Port, FALSE); + } else { +@@ -985,7 +985,7 @@ UsbEnumeratePort ( + } + + } else { +- DEBUG (( EFI_D_INFO, "UsbEnumeratePort: device disconnected event on port %d\n", Port)); ++ DEBUG (( DEBUG_INFO, "UsbEnumeratePort: device disconnected event on port %d\n", Port)); + } + + HubApi->ClearPortChange (HubIf, Port); +@@ -1020,7 +1020,7 @@ UsbHubEnumeration ( + for (Index = 0; Index < HubIf->NumOfPort; Index++) { + Child = UsbFindChild (HubIf, Index); + if ((Child != NULL) && (Child->DisconnectFail == TRUE)) { +- DEBUG (( EFI_D_INFO, "UsbEnumeratePort: The device disconnect fails at port %d from hub %p, try again\n", Index, HubIf)); ++ DEBUG (( DEBUG_INFO, "UsbEnumeratePort: The device disconnect fails at port %d from hub %p, try again\n", Index, HubIf)); + UsbRemoveDevice (Child); + } + } +@@ -1074,7 +1074,7 @@ UsbRootHubEnumeration ( + for (Index = 0; Index < RootHub->NumOfPort; Index++) { + Child = UsbFindChild (RootHub, Index); + if ((Child != NULL) && (Child->DisconnectFail == TRUE)) { +- DEBUG (( EFI_D_INFO, "UsbEnumeratePort: The device disconnect fails at port %d from root hub %p, try again\n", Index, RootHub)); ++ DEBUG (( DEBUG_INFO, "UsbEnumeratePort: The device disconnect fails at port %d from root hub %p, try again\n", Index, RootHub)); + UsbRemoveDevice (Child); + } + +diff --git a/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbHub.c b/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbHub.c +index c5bd112511..022bab5fc1 100644 +--- a/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbHub.c ++++ b/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbHub.c +@@ -516,7 +516,7 @@ UsbOnHubInterrupt ( + ); + + if (EFI_ERROR (Status)) { +- DEBUG (( EFI_D_ERROR, "UsbOnHubInterrupt: failed to remove async transfer - %r\n", Status)); ++ DEBUG (( DEBUG_ERROR, "UsbOnHubInterrupt: failed to remove async transfer - %r\n", Status)); + return Status; + } + +@@ -531,7 +531,7 @@ UsbOnHubInterrupt ( + ); + + if (EFI_ERROR (Status)) { +- DEBUG (( EFI_D_ERROR, "UsbOnHubInterrupt: failed to submit new async transfer - %r\n", Status)); ++ DEBUG (( DEBUG_ERROR, "UsbOnHubInterrupt: failed to submit new async transfer - %r\n", Status)); + } + + return Status; +@@ -608,7 +608,7 @@ UsbHubInit ( + } + + if (Index == NumEndpoints) { +- DEBUG (( EFI_D_ERROR, "UsbHubInit: no interrupt endpoint found for hub %d\n", HubDev->Address)); ++ DEBUG (( DEBUG_ERROR, "UsbHubInit: no interrupt endpoint found for hub %d\n", HubDev->Address)); + return EFI_DEVICE_ERROR; + } + +@@ -620,13 +620,13 @@ UsbHubInit ( + Status = UsbHubReadDesc (HubDev, HubDesc); + + if (EFI_ERROR (Status)) { +- DEBUG (( EFI_D_ERROR, "UsbHubInit: failed to read HUB descriptor %r\n", Status)); ++ DEBUG (( DEBUG_ERROR, "UsbHubInit: failed to read HUB descriptor %r\n", Status)); + return Status; + } + + HubIf->NumOfPort = HubDesc->NumPorts; + +- DEBUG (( EFI_D_INFO, "UsbHubInit: hub %d has %d ports\n", HubDev->Address,HubIf->NumOfPort)); ++ DEBUG (( DEBUG_INFO, "UsbHubInit: hub %d has %d ports\n", HubDev->Address,HubIf->NumOfPort)); + + // + // OK, set IsHub to TRUE. Now usb bus can handle this device +@@ -640,7 +640,7 @@ UsbHubInit ( + + if (HubIf->Device->Speed == EFI_USB_SPEED_SUPER) { + Depth = (UINT16)(HubIf->Device->Tier - 1); +- DEBUG ((EFI_D_INFO, "UsbHubInit: Set Hub Depth as 0x%x\n", Depth)); ++ DEBUG ((DEBUG_INFO, "UsbHubInit: Set Hub Depth as 0x%x\n", Depth)); + UsbHubCtrlSetHubDepth (HubIf->Device, Depth); + + for (Index = 0; Index < HubDesc->NumPorts; Index++) { +@@ -676,7 +676,7 @@ UsbHubInit ( + ); + + if (EFI_ERROR (Status)) { +- DEBUG (( EFI_D_ERROR, "UsbHubInit: failed to create signal for hub %d - %r\n", ++ DEBUG (( DEBUG_ERROR, "UsbHubInit: failed to create signal for hub %d - %r\n", + HubDev->Address, Status)); + + return Status; +@@ -701,7 +701,7 @@ UsbHubInit ( + ); + + if (EFI_ERROR (Status)) { +- DEBUG (( EFI_D_ERROR, "UsbHubInit: failed to queue interrupt transfer for hub %d - %r\n", ++ DEBUG (( DEBUG_ERROR, "UsbHubInit: failed to queue interrupt transfer for hub %d - %r\n", + HubDev->Address, Status)); + + gBS->CloseEvent (HubIf->HubNotify); +@@ -710,7 +710,7 @@ UsbHubInit ( + return Status; + } + +- DEBUG (( EFI_D_INFO, "UsbHubInit: hub %d initialized\n", HubDev->Address)); ++ DEBUG (( DEBUG_INFO, "UsbHubInit: hub %d initialized\n", HubDev->Address)); + return Status; + } + +@@ -935,7 +935,7 @@ UsbHubRelease ( + HubIf->HubEp = NULL; + HubIf->HubNotify = NULL; + +- DEBUG (( EFI_D_INFO, "UsbHubRelease: hub device %d released\n", HubIf->Device->Address)); ++ DEBUG (( DEBUG_INFO, "UsbHubRelease: hub device %d released\n", HubIf->Device->Address)); + return EFI_SUCCESS; + } + +@@ -966,7 +966,7 @@ UsbRootHubInit ( + return Status; + } + +- DEBUG (( EFI_D_INFO, "UsbRootHubInit: root hub %p - max speed %d, %d ports\n", ++ DEBUG (( DEBUG_INFO, "UsbRootHubInit: root hub %p - max speed %d, %d ports\n", + HubIf, MaxSpeed, NumOfPort)); + + HubIf->IsHub = TRUE; +@@ -1168,7 +1168,7 @@ UsbRootHubResetPort ( + Status = UsbHcSetRootHubPortFeature (Bus, Port, EfiUsbPortReset); + + if (EFI_ERROR (Status)) { +- DEBUG (( EFI_D_ERROR, "UsbRootHubResetPort: failed to start reset on port %d\n", Port)); ++ DEBUG (( DEBUG_ERROR, "UsbRootHubResetPort: failed to start reset on port %d\n", Port)); + return Status; + } + +@@ -1181,7 +1181,7 @@ UsbRootHubResetPort ( + Status = UsbHcClearRootHubPortFeature (Bus, Port, EfiUsbPortReset); + + if (EFI_ERROR (Status)) { +- DEBUG (( EFI_D_ERROR, "UsbRootHubResetPort: failed to clear reset on port %d\n", Port)); ++ DEBUG (( DEBUG_ERROR, "UsbRootHubResetPort: failed to clear reset on port %d\n", Port)); + return Status; + } + +@@ -1208,7 +1208,7 @@ UsbRootHubResetPort ( + } + + if (Index == USB_WAIT_PORT_STS_CHANGE_LOOP) { +- DEBUG ((EFI_D_ERROR, "UsbRootHubResetPort: reset not finished in time on port %d\n", Port)); ++ DEBUG ((DEBUG_ERROR, "UsbRootHubResetPort: reset not finished in time on port %d\n", Port)); + return EFI_TIMEOUT; + } + +@@ -1220,7 +1220,7 @@ UsbRootHubResetPort ( + // automatically enable the port, we need to enable it manually. + // + if (RootIf->MaxSpeed == EFI_USB_SPEED_HIGH) { +- DEBUG (( EFI_D_ERROR, "UsbRootHubResetPort: release low/full speed device (%d) to UHCI\n", Port)); ++ DEBUG (( DEBUG_ERROR, "UsbRootHubResetPort: release low/full speed device (%d) to UHCI\n", Port)); + + UsbRootHubSetPortFeature (RootIf, Port, EfiUsbPortOwner); + return EFI_NOT_FOUND; +@@ -1230,7 +1230,7 @@ UsbRootHubResetPort ( + Status = UsbRootHubSetPortFeature (RootIf, Port, EfiUsbPortEnable); + + if (EFI_ERROR (Status)) { +- DEBUG (( EFI_D_ERROR, "UsbRootHubResetPort: failed to enable port %d for UHCI\n", Port)); ++ DEBUG (( DEBUG_ERROR, "UsbRootHubResetPort: failed to enable port %d for UHCI\n", Port)); + return Status; + } + +@@ -1256,7 +1256,7 @@ UsbRootHubRelease ( + IN USB_INTERFACE *HubIf + ) + { +- DEBUG (( EFI_D_INFO, "UsbRootHubRelease: root hub released for hub %p\n", HubIf)); ++ DEBUG (( DEBUG_INFO, "UsbRootHubRelease: root hub released for hub %p\n", HubIf)); + + gBS->SetTimer (HubIf->HubNotify, TimerCancel, USB_ROOTHUB_POLL_INTERVAL); + gBS->CloseEvent (HubIf->HubNotify); +diff --git a/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbUtility.c b/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbUtility.c +index 7529e03e85..4441466d80 100644 +--- a/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbUtility.c ++++ b/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbUtility.c +@@ -1212,10 +1212,10 @@ UsbBusRecursivelyConnectWantedUsbIo ( + // + // Recursively connect the wanted Usb Io handle + // +- DEBUG ((EFI_D_INFO, "UsbBusRecursivelyConnectWantedUsbIo: TPL before connect is %d\n", (UINT32)UsbGetCurrentTpl ())); ++ DEBUG ((DEBUG_INFO, "UsbBusRecursivelyConnectWantedUsbIo: TPL before connect is %d\n", (UINT32)UsbGetCurrentTpl ())); + Status = gBS->ConnectController (UsbIf->Handle, NULL, NULL, TRUE); + UsbIf->IsManaged = (BOOLEAN)!EFI_ERROR (Status); +- DEBUG ((EFI_D_INFO, "UsbBusRecursivelyConnectWantedUsbIo: TPL after connect is %d\n", (UINT32)UsbGetCurrentTpl())); ++ DEBUG ((DEBUG_INFO, "UsbBusRecursivelyConnectWantedUsbIo: TPL after connect is %d\n", (UINT32)UsbGetCurrentTpl())); + } + } + } +@@ -1224,4 +1224,3 @@ UsbBusRecursivelyConnectWantedUsbIo ( + + return EFI_SUCCESS; + } +- +diff --git a/MdeModulePkg/Bus/Usb/UsbBusPei/HubPeim.c b/MdeModulePkg/Bus/Usb/UsbBusPei/HubPeim.c +index c44c403890..ce6db0b048 100644 +--- a/MdeModulePkg/Bus/Usb/UsbBusPei/HubPeim.c ++++ b/MdeModulePkg/Bus/Usb/UsbBusPei/HubPeim.c +@@ -409,7 +409,7 @@ PeiDoHubConfig ( + PeiUsbDevice->DownStreamPortNo = HubDescriptor->NbrPorts; + + if (PeiUsbDevice->DeviceSpeed == EFI_USB_SPEED_SUPER) { +- DEBUG ((EFI_D_INFO, "PeiDoHubConfig: Set Hub Depth as 0x%x\n", PeiUsbDevice->Tier)); ++ DEBUG ((DEBUG_INFO, "PeiDoHubConfig: Set Hub Depth as 0x%x\n", PeiUsbDevice->Tier)); + PeiUsbHubCtrlSetHubDepth ( + PeiServices, + PeiUsbDevice, +@@ -427,12 +427,12 @@ PeiDoHubConfig ( + EfiUsbPortPower + ); + if (EFI_ERROR (Status)) { +- DEBUG (( EFI_D_ERROR, "PeiDoHubConfig: PeiHubSetPortFeature EfiUsbPortPower failed %x\n", Index)); ++ DEBUG (( DEBUG_ERROR, "PeiDoHubConfig: PeiHubSetPortFeature EfiUsbPortPower failed %x\n", Index)); + continue; + } + } + +- DEBUG (( EFI_D_INFO, "PeiDoHubConfig: HubDescriptor.PwrOn2PwrGood: 0x%x\n", HubDescriptor->PwrOn2PwrGood)); ++ DEBUG (( DEBUG_INFO, "PeiDoHubConfig: HubDescriptor.PwrOn2PwrGood: 0x%x\n", HubDescriptor->PwrOn2PwrGood)); + if (HubDescriptor->PwrOn2PwrGood > 0) { + MicroSecondDelay (HubDescriptor->PwrOn2PwrGood * USB_SET_PORT_POWER_STALL); + } +@@ -536,7 +536,7 @@ PeiResetHubPort ( + } + + if (Index == USB_WAIT_PORT_STS_CHANGE_LOOP) { +- DEBUG ((EFI_D_ERROR, "PeiResetHubPort: reset not finished in time on port %d\n", PortNum)); ++ DEBUG ((DEBUG_ERROR, "PeiResetHubPort: reset not finished in time on port %d\n", PortNum)); + return; + } + +diff --git a/MdeModulePkg/Bus/Usb/UsbBusPei/UsbIoPeim.c b/MdeModulePkg/Bus/Usb/UsbBusPei/UsbIoPeim.c +index fc04f834a5..01b4b8b11e 100644 +--- a/MdeModulePkg/Bus/Usb/UsbBusPei/UsbIoPeim.c ++++ b/MdeModulePkg/Bus/Usb/UsbBusPei/UsbIoPeim.c +@@ -119,7 +119,7 @@ PeiUsbControlTransfer ( + } + } + +- DEBUG ((EFI_D_INFO, "PeiUsbControlTransfer: %r\n", Status)); ++ DEBUG ((DEBUG_INFO, "PeiUsbControlTransfer: %r\n", Status)); + return Status; + } + +@@ -232,7 +232,7 @@ PeiUsbBulkTransfer ( + PeiUsbDev->DataToggle = (UINT16) (PeiUsbDev->DataToggle ^ (1 << EndpointIndex)); + } + +- DEBUG ((EFI_D_INFO, "PeiUsbBulkTransfer: %r\n", Status)); ++ DEBUG ((DEBUG_INFO, "PeiUsbBulkTransfer: %r\n", Status)); + return Status; + } + +diff --git a/MdeModulePkg/Bus/Usb/UsbBusPei/UsbPeim.c b/MdeModulePkg/Bus/Usb/UsbBusPei/UsbPeim.c +index 45e48f472e..12dc975e88 100644 +--- a/MdeModulePkg/Bus/Usb/UsbBusPei/UsbPeim.c ++++ b/MdeModulePkg/Bus/Usb/UsbBusPei/UsbPeim.c +@@ -221,7 +221,7 @@ PeiHubEnumeration ( + + UsbIoPpi = &PeiUsbDevice->UsbIoPpi; + +- DEBUG ((EFI_D_INFO, "PeiHubEnumeration: DownStreamPortNo: %x\n", PeiUsbDevice->DownStreamPortNo)); ++ DEBUG ((DEBUG_INFO, "PeiHubEnumeration: DownStreamPortNo: %x\n", PeiUsbDevice->DownStreamPortNo)); + + for (Index = 0; Index < PeiUsbDevice->DownStreamPortNo; Index++) { + +@@ -236,7 +236,7 @@ PeiHubEnumeration ( + continue; + } + +- DEBUG ((EFI_D_INFO, "USB Status --- Port: %x ConnectChange[%04x] Status[%04x]\n", Index, PortStatus.PortChangeStatus, PortStatus.PortStatus)); ++ DEBUG ((DEBUG_INFO, "USB Status --- Port: %x ConnectChange[%04x] Status[%04x]\n", Index, PortStatus.PortChangeStatus, PortStatus.PortStatus)); + // + // Only handle connection/enable/overcurrent/reset change. + // +@@ -305,7 +305,7 @@ PeiHubEnumeration ( + } + + NewPeiUsbDevice->DeviceSpeed = (UINT8) PeiUsbGetDeviceSpeed (PortStatus.PortStatus); +- DEBUG ((EFI_D_INFO, "Device Speed =%d\n", PeiUsbDevice->DeviceSpeed)); ++ DEBUG ((DEBUG_INFO, "Device Speed =%d\n", PeiUsbDevice->DeviceSpeed)); + + if (USB_BIT_IS_SET (PortStatus.PortStatus, USB_PORT_STAT_SUPER_SPEED)){ + NewPeiUsbDevice->MaxPacketSize0 = 512; +@@ -339,7 +339,7 @@ PeiHubEnumeration ( + if (EFI_ERROR (Status)) { + continue; + } +- DEBUG ((EFI_D_INFO, "PeiHubEnumeration: PeiConfigureUsbDevice Success\n")); ++ DEBUG ((DEBUG_INFO, "PeiHubEnumeration: PeiConfigureUsbDevice Success\n")); + + Status = PeiServicesInstallPpi (&NewPeiUsbDevice->UsbIoPpiList); + +@@ -445,7 +445,7 @@ PeiUsbEnumeration ( + return EFI_INVALID_PARAMETER; + } + +- DEBUG ((EFI_D_INFO, "PeiUsbEnumeration: NumOfRootPort: %x\n", NumOfRootPort)); ++ DEBUG ((DEBUG_INFO, "PeiUsbEnumeration: NumOfRootPort: %x\n", NumOfRootPort)); + + for (Index = 0; Index < NumOfRootPort; Index++) { + // +@@ -466,7 +466,7 @@ PeiUsbEnumeration ( + &PortStatus + ); + } +- DEBUG ((EFI_D_INFO, "USB Status --- Port: %x ConnectChange[%04x] Status[%04x]\n", Index, PortStatus.PortChangeStatus, PortStatus.PortStatus)); ++ DEBUG ((DEBUG_INFO, "USB Status --- Port: %x ConnectChange[%04x] Status[%04x]\n", Index, PortStatus.PortChangeStatus, PortStatus.PortStatus)); + // + // Only handle connection/enable/overcurrent/reset change. + // +@@ -555,7 +555,7 @@ PeiUsbEnumeration ( + } + + PeiUsbDevice->DeviceSpeed = (UINT8) PeiUsbGetDeviceSpeed (PortStatus.PortStatus); +- DEBUG ((EFI_D_INFO, "Device Speed =%d\n", PeiUsbDevice->DeviceSpeed)); ++ DEBUG ((DEBUG_INFO, "Device Speed =%d\n", PeiUsbDevice->DeviceSpeed)); + + if (USB_BIT_IS_SET (PortStatus.PortStatus, USB_PORT_STAT_SUPER_SPEED)){ + PeiUsbDevice->MaxPacketSize0 = 512; +@@ -580,7 +580,7 @@ PeiUsbEnumeration ( + if (EFI_ERROR (Status)) { + continue; + } +- DEBUG ((EFI_D_INFO, "PeiUsbEnumeration: PeiConfigureUsbDevice Success\n")); ++ DEBUG ((DEBUG_INFO, "PeiUsbEnumeration: PeiConfigureUsbDevice Success\n")); + + Status = PeiServicesInstallPpi (&PeiUsbDevice->UsbIoPpiList); + +@@ -685,13 +685,13 @@ PeiConfigureUsbDevice ( + ); + + if (!EFI_ERROR (Status)) { +- DEBUG ((EFI_D_INFO, "PeiUsbGet Device Descriptor the %d time Success\n", Retry)); ++ DEBUG ((DEBUG_INFO, "PeiUsbGet Device Descriptor the %d time Success\n", Retry)); + break; + } + } + + if (Retry == 3) { +- DEBUG ((EFI_D_ERROR, "PeiUsbGet Device Descriptor fail: %x %r\n", Retry, Status)); ++ DEBUG ((DEBUG_ERROR, "PeiUsbGet Device Descriptor fail: %x %r\n", Retry, Status)); + return Status; + } + +@@ -710,7 +710,7 @@ PeiConfigureUsbDevice ( + ); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "PeiUsbSetDeviceAddress Failed: %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "PeiUsbSetDeviceAddress Failed: %r\n", Status)); + return Status; + } + MicroSecondDelay (USB_SET_DEVICE_ADDRESS_STALL); +@@ -730,7 +730,7 @@ PeiConfigureUsbDevice ( + ); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "PeiUsbGetDescriptor First Failed\n")); ++ DEBUG ((DEBUG_ERROR, "PeiUsbGetDescriptor First Failed\n")); + return Status; + } + +@@ -801,7 +801,7 @@ PeiUsbGetAllConfiguration ( + ); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "PeiUsbGet Config Descriptor First Failed\n")); ++ DEBUG ((DEBUG_ERROR, "PeiUsbGet Config Descriptor First Failed\n")); + return Status; + } + MicroSecondDelay (USB_GET_CONFIG_DESCRIPTOR_STALL); +@@ -836,7 +836,7 @@ PeiUsbGetAllConfiguration ( + ); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "PeiUsbGet Config Descriptor all Failed\n")); ++ DEBUG ((DEBUG_ERROR, "PeiUsbGet Config Descriptor all Failed\n")); + return Status; + } + // +@@ -1046,7 +1046,7 @@ ResetRootPort ( + ); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "SetRootHubPortFeature EfiUsbPortReset Failed\n")); ++ DEBUG ((DEBUG_ERROR, "SetRootHubPortFeature EfiUsbPortReset Failed\n")); + return; + } + +@@ -1067,7 +1067,7 @@ ResetRootPort ( + ); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "ClearRootHubPortFeature EfiUsbPortReset Failed\n")); ++ DEBUG ((DEBUG_ERROR, "ClearRootHubPortFeature EfiUsbPortReset Failed\n")); + return; + } + +@@ -1098,7 +1098,7 @@ ResetRootPort ( + } + + if (Index == USB_WAIT_PORT_STS_CHANGE_LOOP) { +- DEBUG ((EFI_D_ERROR, "ResetRootPort: reset not finished in time on port %d\n", PortNum)); ++ DEBUG ((DEBUG_ERROR, "ResetRootPort: reset not finished in time on port %d\n", PortNum)); + return; + } + +@@ -1148,7 +1148,7 @@ ResetRootPort ( + ); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "SetRootHubPortFeature EfiUsbPortReset Failed\n")); ++ DEBUG ((DEBUG_ERROR, "SetRootHubPortFeature EfiUsbPortReset Failed\n")); + return; + } + +@@ -1169,7 +1169,7 @@ ResetRootPort ( + ); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "ClearRootHubPortFeature EfiUsbPortReset Failed\n")); ++ DEBUG ((DEBUG_ERROR, "ClearRootHubPortFeature EfiUsbPortReset Failed\n")); + return; + } + +@@ -1200,7 +1200,7 @@ ResetRootPort ( + } + + if (Index == USB_WAIT_PORT_STS_CHANGE_LOOP) { +- DEBUG ((EFI_D_ERROR, "ResetRootPort: reset not finished in time on port %d\n", PortNum)); ++ DEBUG ((DEBUG_ERROR, "ResetRootPort: reset not finished in time on port %d\n", PortNum)); + return; + } + +@@ -1239,5 +1239,3 @@ ResetRootPort ( + } + return; + } +- +- +diff --git a/MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassBoot.c b/MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassBoot.c +index aab4061e18..7b29bc81fe 100644 +--- a/MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassBoot.c ++++ b/MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassBoot.c +@@ -58,7 +58,7 @@ UsbBootRequestSense ( + &CmdResult + ); + if (EFI_ERROR (Status) || CmdResult != USB_MASS_CMD_SUCCESS) { +- DEBUG ((EFI_D_ERROR, "UsbBootRequestSense: (%r) CmdResult=0x%x\n", Status, CmdResult)); ++ DEBUG ((DEBUG_ERROR, "UsbBootRequestSense: (%r) CmdResult=0x%x\n", Status, CmdResult)); + if (!EFI_ERROR (Status)) { + Status = EFI_DEVICE_ERROR; + } +@@ -131,7 +131,7 @@ UsbBootRequestSense ( + break; + } + +- DEBUG ((EFI_D_INFO, "UsbBootRequestSense: (%r) with error code (%x) sense key %x/%x/%x\n", ++ DEBUG ((DEBUG_INFO, "UsbBootRequestSense: (%r) with error code (%x) sense key %x/%x/%x\n", + Status, + SenseData.ErrorCode, + USB_BOOT_SENSE_KEY (SenseData.SenseKey), +@@ -191,7 +191,7 @@ UsbBootExecCmd ( + ); + + if (Status == EFI_TIMEOUT) { +- DEBUG ((EFI_D_ERROR, "UsbBootExecCmd: %r to Exec 0x%x Cmd\n", Status, *(UINT8 *)Cmd)); ++ DEBUG ((DEBUG_ERROR, "UsbBootExecCmd: %r to Exec 0x%x Cmd\n", Status, *(UINT8 *)Cmd)); + return EFI_TIMEOUT; + } + +@@ -206,7 +206,7 @@ UsbBootExecCmd ( + // + // If command execution failed, then retrieve error info via sense request. + // +- DEBUG ((EFI_D_ERROR, "UsbBootExecCmd: %r to Exec 0x%x Cmd (Result = %x)\n", Status, *(UINT8 *)Cmd, CmdResult)); ++ DEBUG ((DEBUG_ERROR, "UsbBootExecCmd: %r to Exec 0x%x Cmd (Result = %x)\n", Status, *(UINT8 *)Cmd, CmdResult)); + return UsbBootRequestSense (UsbMass); + } + +@@ -631,7 +631,7 @@ UsbBootGetParams ( + + Status = UsbBootInquiry (UsbMass); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "UsbBootGetParams: UsbBootInquiry (%r)\n", Status)); ++ DEBUG ((DEBUG_ERROR, "UsbBootGetParams: UsbBootInquiry (%r)\n", Status)); + return Status; + } + +@@ -643,7 +643,7 @@ UsbBootGetParams ( + (UsbMass->Pdt != USB_PDT_CDROM) && + (UsbMass->Pdt != USB_PDT_OPTICAL) && + (UsbMass->Pdt != USB_PDT_SIMPLE_DIRECT)) { +- DEBUG ((EFI_D_ERROR, "UsbBootGetParams: Found an unsupported peripheral type[%d]\n", UsbMass->Pdt)); ++ DEBUG ((DEBUG_ERROR, "UsbBootGetParams: Found an unsupported peripheral type[%d]\n", UsbMass->Pdt)); + return EFI_UNSUPPORTED; + } + +@@ -695,7 +695,7 @@ UsbBootDetectMedia ( + + Status = UsbBootIsUnitReady (UsbMass); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "UsbBootDetectMedia: UsbBootIsUnitReady (%r)\n", Status)); ++ DEBUG ((DEBUG_ERROR, "UsbBootDetectMedia: UsbBootIsUnitReady (%r)\n", Status)); + } + + // +@@ -719,7 +719,7 @@ UsbBootDetectMedia ( + + Status = UsbBootReadCapacity (UsbMass); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "UsbBootDetectMedia: UsbBootReadCapacity (%r)\n", Status)); ++ DEBUG ((DEBUG_ERROR, "UsbBootDetectMedia: UsbBootReadCapacity (%r)\n", Status)); + } + } + +diff --git a/MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassBot.c b/MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassBot.c +index 1e878a1bdd..ce252e60fc 100644 +--- a/MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassBot.c ++++ b/MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassBot.c +@@ -266,13 +266,13 @@ UsbBotDataTransfer ( + ); + if (EFI_ERROR (Status)) { + if (USB_IS_ERROR (Result, EFI_USB_ERR_STALL)) { +- DEBUG ((EFI_D_INFO, "UsbBotDataTransfer: (%r)\n", Status)); +- DEBUG ((EFI_D_INFO, "UsbBotDataTransfer: DataIn Stall\n")); ++ DEBUG ((DEBUG_INFO, "UsbBotDataTransfer: (%r)\n", Status)); ++ DEBUG ((DEBUG_INFO, "UsbBotDataTransfer: DataIn Stall\n")); + UsbClearEndpointStall (UsbBot->UsbIo, Endpoint->EndpointAddress); + } else if (USB_IS_ERROR (Result, EFI_USB_ERR_NAK)) { + Status = EFI_NOT_READY; + } else { +- DEBUG ((EFI_D_ERROR, "UsbBotDataTransfer: (%r)\n", Status)); ++ DEBUG ((DEBUG_ERROR, "UsbBotDataTransfer: (%r)\n", Status)); + } + if(Status == EFI_TIMEOUT){ + UsbBotResetDevice(UsbBot, FALSE); +@@ -416,7 +416,7 @@ UsbBotExecCommand ( + // + Status = UsbBotSendCommand (UsbBot, Cmd, CmdLen, DataDir, DataLen, Lun); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "UsbBotExecCommand: UsbBotSendCommand (%r)\n", Status)); ++ DEBUG ((DEBUG_ERROR, "UsbBotExecCommand: UsbBotSendCommand (%r)\n", Status)); + return Status; + } + +@@ -433,7 +433,7 @@ UsbBotExecCommand ( + // + Status = UsbBotGetStatus (UsbBot, DataLen, &Result); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "UsbBotExecCommand: UsbBotGetStatus (%r)\n", Status)); ++ DEBUG ((DEBUG_ERROR, "UsbBotExecCommand: UsbBotGetStatus (%r)\n", Status)); + return Status; + } + +@@ -604,4 +604,3 @@ UsbBotCleanUp ( + FreePool (Context); + return EFI_SUCCESS; + } +- +diff --git a/MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassCbi.c b/MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassCbi.c +index 477f0536d6..423104f504 100644 +--- a/MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassCbi.c ++++ b/MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassCbi.c +@@ -451,7 +451,7 @@ UsbCbiExecCommand ( + Status = UsbCbiSendCommand (UsbCbi, Cmd, CmdLen, Timeout); + if (EFI_ERROR (Status)) { + gBS->Stall(10 * USB_MASS_1_MILLISECOND); +- DEBUG ((EFI_D_ERROR, "UsbCbiExecCommand: UsbCbiSendCommand (%r)\n",Status)); ++ DEBUG ((DEBUG_ERROR, "UsbCbiExecCommand: UsbCbiSendCommand (%r)\n",Status)); + return Status; + } + +@@ -463,7 +463,7 @@ UsbCbiExecCommand ( + + Status = UsbCbiDataTransfer (UsbCbi, DataDir, Data, &TransLen, Timeout); + if (UsbCbi->InterruptEndpoint == NULL) { +- DEBUG ((EFI_D_ERROR, "UsbCbiExecCommand: UsbCbiDataTransfer (%r)\n",Status)); ++ DEBUG ((DEBUG_ERROR, "UsbCbiExecCommand: UsbCbiDataTransfer (%r)\n",Status)); + return Status; + } + +@@ -472,7 +472,7 @@ UsbCbiExecCommand ( + // + Status = UsbCbiGetStatus (UsbCbi, Timeout, &Result); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "UsbCbiExecCommand: UsbCbiGetStatus (%r)\n",Status)); ++ DEBUG ((DEBUG_ERROR, "UsbCbiExecCommand: UsbCbiGetStatus (%r)\n",Status)); + return Status; + } + +diff --git a/MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassImpl.c b/MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassImpl.c +index bbd19e0447..de9c5f0632 100644 +--- a/MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassImpl.c ++++ b/MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassImpl.c +@@ -172,7 +172,7 @@ UsbMassReadBlocks ( + } + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "UsbMassReadBlocks: UsbBootReadBlocks (%r) -> Reset\n", Status)); ++ DEBUG ((DEBUG_ERROR, "UsbMassReadBlocks: UsbBootReadBlocks (%r) -> Reset\n", Status)); + UsbMassReset (This, TRUE); + } + +@@ -292,7 +292,7 @@ UsbMassWriteBlocks ( + } + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "UsbMassWriteBlocks: UsbBootWriteBlocks (%r) -> Reset\n", Status)); ++ DEBUG ((DEBUG_ERROR, "UsbMassWriteBlocks: UsbBootWriteBlocks (%r) -> Reset\n", Status)); + UsbMassReset (This, TRUE); + } + +@@ -491,7 +491,7 @@ UsbMassInitMultiLun ( + + for (Index = 0; Index <= MaxLun; Index++) { + +- DEBUG ((EFI_D_INFO, "UsbMassInitMultiLun: Start to initialize No.%d logic unit\n", Index)); ++ DEBUG ((DEBUG_INFO, "UsbMassInitMultiLun: Start to initialize No.%d logic unit\n", Index)); + + UsbIo = NULL; + UsbMass = AllocateZeroPool (sizeof (USB_MASS_DEVICE)); +@@ -514,7 +514,7 @@ UsbMassInitMultiLun ( + // + Status = UsbMassInitMedia (UsbMass); + if ((EFI_ERROR (Status)) && (Status != EFI_NO_MEDIA)) { +- DEBUG ((EFI_D_ERROR, "UsbMassInitMultiLun: UsbMassInitMedia (%r)\n", Status)); ++ DEBUG ((DEBUG_ERROR, "UsbMassInitMultiLun: UsbMassInitMedia (%r)\n", Status)); + FreePool (UsbMass); + continue; + } +@@ -531,7 +531,7 @@ UsbMassInitMultiLun ( + UsbMass->DevicePath = AppendDevicePathNode (DevicePath, &LunNode.Header); + + if (UsbMass->DevicePath == NULL) { +- DEBUG ((EFI_D_ERROR, "UsbMassInitMultiLun: failed to create device logic unit device path\n")); ++ DEBUG ((DEBUG_ERROR, "UsbMassInitMultiLun: failed to create device logic unit device path\n")); + Status = EFI_OUT_OF_RESOURCES; + FreePool (UsbMass); + continue; +@@ -554,7 +554,7 @@ UsbMassInitMultiLun ( + ); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "UsbMassInitMultiLun: InstallMultipleProtocolInterfaces (%r)\n", Status)); ++ DEBUG ((DEBUG_ERROR, "UsbMassInitMultiLun: InstallMultipleProtocolInterfaces (%r)\n", Status)); + FreePool (UsbMass->DevicePath); + FreePool (UsbMass); + continue; +@@ -573,7 +573,7 @@ UsbMassInitMultiLun ( + ); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "UsbMassInitMultiLun: OpenUsbIoProtocol By Child (%r)\n", Status)); ++ DEBUG ((DEBUG_ERROR, "UsbMassInitMultiLun: OpenUsbIoProtocol By Child (%r)\n", Status)); + gBS->UninstallMultipleProtocolInterfaces ( + UsbMass->Controller, + &gEfiDevicePathProtocolGuid, +@@ -589,7 +589,7 @@ UsbMassInitMultiLun ( + continue; + } + ReturnStatus = EFI_SUCCESS; +- DEBUG ((EFI_D_INFO, "UsbMassInitMultiLun: Success to initialize No.%d logic unit\n", Index)); ++ DEBUG ((DEBUG_INFO, "UsbMassInitMultiLun: Success to initialize No.%d logic unit\n", Index)); + } + + return ReturnStatus; +@@ -633,7 +633,7 @@ UsbMassInitNonLun ( + ); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "UsbMassInitNonLun: OpenUsbIoProtocol By Driver (%r)\n", Status)); ++ DEBUG ((DEBUG_ERROR, "UsbMassInitNonLun: OpenUsbIoProtocol By Driver (%r)\n", Status)); + goto ON_ERROR; + } + +@@ -654,7 +654,7 @@ UsbMassInitNonLun ( + // + Status = UsbMassInitMedia (UsbMass); + if ((EFI_ERROR (Status)) && (Status != EFI_NO_MEDIA)) { +- DEBUG ((EFI_D_ERROR, "UsbMassInitNonLun: UsbMassInitMedia (%r)\n", Status)); ++ DEBUG ((DEBUG_ERROR, "UsbMassInitNonLun: UsbMassInitMedia (%r)\n", Status)); + goto ON_ERROR; + } + +@@ -810,7 +810,7 @@ USBMassDriverBindingStart ( + Status = UsbMassInitTransport (This, Controller, &Transport, &Context, &MaxLun); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "USBMassDriverBindingStart: UsbMassInitTransport (%r)\n", Status)); ++ DEBUG ((DEBUG_ERROR, "USBMassDriverBindingStart: UsbMassInitTransport (%r)\n", Status)); + goto Exit; + } + if (MaxLun == 0) { +@@ -819,7 +819,7 @@ USBMassDriverBindingStart ( + // + Status = UsbMassInitNonLun (This, Controller, Transport, Context); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "USBMassDriverBindingStart: UsbMassInitNonLun (%r)\n", Status)); ++ DEBUG ((DEBUG_ERROR, "USBMassDriverBindingStart: UsbMassInitNonLun (%r)\n", Status)); + } + } else { + // +@@ -835,7 +835,7 @@ USBMassDriverBindingStart ( + ); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "USBMassDriverBindingStart: OpenDevicePathProtocol By Driver (%r)\n", Status)); ++ DEBUG ((DEBUG_ERROR, "USBMassDriverBindingStart: OpenDevicePathProtocol By Driver (%r)\n", Status)); + goto Exit; + } + +@@ -849,7 +849,7 @@ USBMassDriverBindingStart ( + ); + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "USBMassDriverBindingStart: OpenUsbIoProtocol By Driver (%r)\n", Status)); ++ DEBUG ((DEBUG_ERROR, "USBMassDriverBindingStart: OpenUsbIoProtocol By Driver (%r)\n", Status)); + gBS->CloseProtocol ( + Controller, + &gEfiDevicePathProtocolGuid, +@@ -877,7 +877,7 @@ USBMassDriverBindingStart ( + This->DriverBindingHandle, + Controller + ); +- DEBUG ((EFI_D_ERROR, "USBMassDriverBindingStart: UsbMassInitMultiLun (%r) with Maxlun=%d\n", Status, MaxLun)); ++ DEBUG ((DEBUG_ERROR, "USBMassDriverBindingStart: UsbMassInitMultiLun (%r) with Maxlun=%d\n", Status, MaxLun)); + } + } + Exit: +@@ -953,7 +953,7 @@ USBMassDriverBindingStop ( + This->DriverBindingHandle, + Controller + ); +- DEBUG ((EFI_D_INFO, "Success to stop multi-lun root handle\n")); ++ DEBUG ((DEBUG_INFO, "Success to stop multi-lun root handle\n")); + return EFI_SUCCESS; + } + +@@ -989,7 +989,7 @@ USBMassDriverBindingStop ( + UsbMass->Transport->CleanUp (UsbMass->Context); + FreePool (UsbMass); + +- DEBUG ((EFI_D_INFO, "Success to stop non-multi-lun root handle\n")); ++ DEBUG ((DEBUG_INFO, "Success to stop non-multi-lun root handle\n")); + return EFI_SUCCESS; + } + +@@ -1012,7 +1012,7 @@ USBMassDriverBindingStop ( + ); + if (EFI_ERROR (Status)) { + AllChildrenStopped = FALSE; +- DEBUG ((EFI_D_ERROR, "Fail to stop No.%d multi-lun child handle when opening blockio\n", (UINT32)Index)); ++ DEBUG ((DEBUG_ERROR, "Fail to stop No.%d multi-lun child handle when opening blockio\n", (UINT32)Index)); + continue; + } + +@@ -1041,7 +1041,7 @@ USBMassDriverBindingStop ( + // Fail to uninstall Block I/O Protocol and Device Path Protocol, so re-open USB I/O Protocol by child. + // + AllChildrenStopped = FALSE; +- DEBUG ((EFI_D_ERROR, "Fail to stop No.%d multi-lun child handle when uninstalling blockio and devicepath\n", (UINT32)Index)); ++ DEBUG ((DEBUG_ERROR, "Fail to stop No.%d multi-lun child handle when uninstalling blockio and devicepath\n", (UINT32)Index)); + + gBS->OpenProtocol ( + Controller, +@@ -1066,7 +1066,7 @@ USBMassDriverBindingStop ( + return EFI_DEVICE_ERROR; + } + +- DEBUG ((EFI_D_INFO, "Success to stop all %d multi-lun children handles\n", (UINT32) NumberOfChildren)); ++ DEBUG ((DEBUG_INFO, "Success to stop all %d multi-lun children handles\n", (UINT32) NumberOfChildren)); + return EFI_SUCCESS; + } + +diff --git a/MdeModulePkg/Core/Dxe/Dispatcher/Dispatcher.c b/MdeModulePkg/Core/Dxe/Dispatcher/Dispatcher.c +index fed60c4882..3605605e91 100644 +--- a/MdeModulePkg/Core/Dxe/Dispatcher/Dispatcher.c ++++ b/MdeModulePkg/Core/Dxe/Dispatcher/Dispatcher.c +@@ -769,7 +769,7 @@ FvIsBeingProcessed ( + for (Link = mFvHandleList.ForwardLink; Link != &mFvHandleList; Link = Link->ForwardLink) { + KnownHandle = CR(Link, KNOWN_HANDLE, Link, KNOWN_HANDLE_SIGNATURE); + if (CompareGuid (&FvNameGuid, &KnownHandle->FvNameGuid)) { +- DEBUG ((EFI_D_ERROR, "FvImage on FvHandle %p and %p has the same FvNameGuid %g.\n", FvHandle, KnownHandle->Handle, &FvNameGuid)); ++ DEBUG ((DEBUG_ERROR, "FvImage on FvHandle %p and %p has the same FvNameGuid %g.\n", FvHandle, KnownHandle->Handle, &FvNameGuid)); + return NULL; + } + } +diff --git a/MdeModulePkg/Core/Dxe/Event/Tpl.c b/MdeModulePkg/Core/Dxe/Event/Tpl.c +index 5ff8eb55ba..8b5928df00 100644 +--- a/MdeModulePkg/Core/Dxe/Event/Tpl.c ++++ b/MdeModulePkg/Core/Dxe/Event/Tpl.c +@@ -60,7 +60,7 @@ CoreRaiseTpl ( + + OldTpl = gEfiCurrentTpl; + if (OldTpl > NewTpl) { +- DEBUG ((EFI_D_ERROR, "FATAL ERROR - RaiseTpl with OldTpl(0x%x) > NewTpl(0x%x)\n", OldTpl, NewTpl)); ++ DEBUG ((DEBUG_ERROR, "FATAL ERROR - RaiseTpl with OldTpl(0x%x) > NewTpl(0x%x)\n", OldTpl, NewTpl)); + ASSERT (FALSE); + } + ASSERT (VALID_TPL (NewTpl)); +@@ -101,7 +101,7 @@ CoreRestoreTpl ( + + OldTpl = gEfiCurrentTpl; + if (NewTpl > OldTpl) { +- DEBUG ((EFI_D_ERROR, "FATAL ERROR - RestoreTpl with NewTpl(0x%x) > OldTpl(0x%x)\n", NewTpl, OldTpl)); ++ DEBUG ((DEBUG_ERROR, "FATAL ERROR - RestoreTpl with NewTpl(0x%x) > OldTpl(0x%x)\n", NewTpl, OldTpl)); + ASSERT (FALSE); + } + ASSERT (VALID_TPL (NewTpl)); +diff --git a/MdeModulePkg/Core/Dxe/FwVol/FwVol.c b/MdeModulePkg/Core/Dxe/FwVol/FwVol.c +index cbf5c1c7b9..0059b0f2d9 100644 +--- a/MdeModulePkg/Core/Dxe/FwVol/FwVol.c ++++ b/MdeModulePkg/Core/Dxe/FwVol/FwVol.c +@@ -463,7 +463,7 @@ FvCheck ( + (FileState == EFI_FILE_HEADER_CONSTRUCTION)) { + if (IS_FFS_FILE2 (FfsHeader)) { + if (!FvDevice->IsFfs3Fv) { +- DEBUG ((EFI_D_ERROR, "Found a FFS3 formatted file: %g in a non-FFS3 formatted FV.\n", &FfsHeader->Name)); ++ DEBUG ((DEBUG_ERROR, "Found a FFS3 formatted file: %g in a non-FFS3 formatted FV.\n", &FfsHeader->Name)); + } + FfsHeader = (EFI_FFS_FILE_HEADER *) ((UINT8 *) FfsHeader + sizeof (EFI_FFS_FILE_HEADER2)); + } else { +@@ -508,7 +508,7 @@ FvCheck ( + if (IS_FFS_FILE2 (CacheFfsHeader)) { + ASSERT (FFS_FILE2_SIZE (CacheFfsHeader) > 0x00FFFFFF); + if (!FvDevice->IsFfs3Fv) { +- DEBUG ((EFI_D_ERROR, "Found a FFS3 formatted file: %g in a non-FFS3 formatted FV.\n", &CacheFfsHeader->Name)); ++ DEBUG ((DEBUG_ERROR, "Found a FFS3 formatted file: %g in a non-FFS3 formatted FV.\n", &CacheFfsHeader->Name)); + FfsHeader = (EFI_FFS_FILE_HEADER *) ((UINT8 *) FfsHeader + FFS_FILE2_SIZE (CacheFfsHeader)); + // + // Adjust pointer to the next 8-byte aligned boundary. +@@ -725,5 +725,3 @@ FwVolDriverInit ( + ); + return EFI_SUCCESS; + } +- +- +diff --git a/MdeModulePkg/Core/Dxe/Gcd/Gcd.c b/MdeModulePkg/Core/Dxe/Gcd/Gcd.c +index 51b082b7e7..6518921516 100644 +--- a/MdeModulePkg/Core/Dxe/Gcd/Gcd.c ++++ b/MdeModulePkg/Core/Dxe/Gcd/Gcd.c +@@ -2384,8 +2384,8 @@ CoreInitializeMemoryServices ( + } + } + +- DEBUG ((EFI_D_INFO, "CoreInitializeMemoryServices:\n")); +- DEBUG ((EFI_D_INFO, " BaseAddress - 0x%lx Length - 0x%lx MinimalMemorySizeNeeded - 0x%lx\n", BaseAddress, Length, MinimalMemorySizeNeeded)); ++ DEBUG ((DEBUG_INFO, "CoreInitializeMemoryServices:\n")); ++ DEBUG ((DEBUG_INFO, " BaseAddress - 0x%lx Length - 0x%lx MinimalMemorySizeNeeded - 0x%lx\n", BaseAddress, Length, MinimalMemorySizeNeeded)); + + // + // If no memory regions are found that are big enough to initialize the DXE core, then ASSERT(). +diff --git a/MdeModulePkg/Core/Dxe/Image/Image.c b/MdeModulePkg/Core/Dxe/Image/Image.c +index 641a5715b1..44b7f105a2 100644 +--- a/MdeModulePkg/Core/Dxe/Image/Image.c ++++ b/MdeModulePkg/Core/Dxe/Image/Image.c +@@ -485,7 +485,7 @@ GetPeCoffImageFixLoadingAssignedAddress( + } + SectionHeaderOffset += sizeof (EFI_IMAGE_SECTION_HEADER); + } +- DEBUG ((EFI_D_INFO|EFI_D_LOAD, "LOADING MODULE FIXED INFO: Loading module at fixed address 0x%11p. Status = %r \n", (VOID *)(UINTN)(ImageContext->ImageAddress), Status)); ++ DEBUG ((DEBUG_INFO|DEBUG_LOAD, "LOADING MODULE FIXED INFO: Loading module at fixed address 0x%11p. Status = %r \n", (VOID *)(UINTN)(ImageContext->ImageAddress), Status)); + return Status; + } + +@@ -648,7 +648,7 @@ CoreLoadPeImage ( + // + // If the code memory is not ready, invoke CoreAllocatePage with AllocateAnyPages to load the driver. + // +- DEBUG ((EFI_D_INFO|EFI_D_LOAD, "LOADING MODULE FIXED ERROR: Loading module at fixed address failed since specified memory is not available.\n")); ++ DEBUG ((DEBUG_INFO|DEBUG_LOAD, "LOADING MODULE FIXED ERROR: Loading module at fixed address failed since specified memory is not available.\n")); + + Status = CoreAllocatePages ( + AllocateAnyPages, +@@ -1587,8 +1587,8 @@ CoreStartImage ( + // Do not ASSERT here, because image might be loaded via EFI_IMAGE_MACHINE_CROSS_TYPE_SUPPORTED + // But it can not be started. + // +- DEBUG ((EFI_D_ERROR, "Image type %s can't be started ", GetMachineTypeName(Image->Machine))); +- DEBUG ((EFI_D_ERROR, "on %s UEFI system.\n", GetMachineTypeName(mDxeCoreImageMachineType))); ++ DEBUG ((DEBUG_ERROR, "Image type %s can't be started ", GetMachineTypeName(Image->Machine))); ++ DEBUG ((DEBUG_ERROR, "on %s UEFI system.\n", GetMachineTypeName(mDxeCoreImageMachineType))); + return EFI_UNSUPPORTED; + } + +diff --git a/MdeModulePkg/Core/Dxe/Mem/MemoryProfileRecord.c b/MdeModulePkg/Core/Dxe/Mem/MemoryProfileRecord.c +index 2ca0417b07..62bbe3cdc8 100644 +--- a/MdeModulePkg/Core/Dxe/Mem/MemoryProfileRecord.c ++++ b/MdeModulePkg/Core/Dxe/Mem/MemoryProfileRecord.c +@@ -611,7 +611,7 @@ MemoryProfileInit ( + + RegisterDxeCore (HobStart, &mMemoryProfileContext); + +- DEBUG ((EFI_D_INFO, "MemoryProfileInit MemoryProfileContext - 0x%x\n", &mMemoryProfileContext)); ++ DEBUG ((DEBUG_INFO, "MemoryProfileInit MemoryProfileContext - 0x%x\n", &mMemoryProfileContext)); + } + + /** +diff --git a/MdeModulePkg/Core/Dxe/Misc/DebugImageInfo.c b/MdeModulePkg/Core/Dxe/Misc/DebugImageInfo.c +index a75d415828..c637e35076 100644 +--- a/MdeModulePkg/Core/Dxe/Misc/DebugImageInfo.c ++++ b/MdeModulePkg/Core/Dxe/Misc/DebugImageInfo.c +@@ -66,7 +66,7 @@ CoreInitializeDebugImageInfoTable ( + ); + if (EFI_ERROR (Status)) { + if (PcdGet64 (PcdMaxEfiSystemTablePointerAddress) != 0) { +- DEBUG ((EFI_D_INFO, "Allocate memory for EFI_SYSTEM_TABLE_POINTER below PcdMaxEfiSystemTablePointerAddress failed. \ ++ DEBUG ((DEBUG_INFO, "Allocate memory for EFI_SYSTEM_TABLE_POINTER below PcdMaxEfiSystemTablePointerAddress failed. \ + Retry to allocate memroy as close to the top of memory as feasible.\n")); + } + // +@@ -278,5 +278,3 @@ CoreRemoveDebugImageInfoEntry ( + } + mDebugInfoTableHeader.UpdateStatus &= ~EFI_DEBUG_IMAGE_INFO_UPDATE_IN_PROGRESS; + } +- +- +diff --git a/MdeModulePkg/Core/Dxe/Misc/MemoryAttributesTable.c b/MdeModulePkg/Core/Dxe/Misc/MemoryAttributesTable.c +index 45356130bc..02a67cafa9 100644 +--- a/MdeModulePkg/Core/Dxe/Misc/MemoryAttributesTable.c ++++ b/MdeModulePkg/Core/Dxe/Misc/MemoryAttributesTable.c +@@ -120,7 +120,7 @@ InstallMemoryAttributesTable ( + + if (!mMemoryAttributesTableEnable) { + DEBUG ((DEBUG_VERBOSE, "Cannot install Memory Attributes Table ")); +- DEBUG ((EFI_D_VERBOSE, "because Runtime Driver Section Alignment is not %dK.\n", RUNTIME_PAGE_ALLOCATION_GRANULARITY >> 10)); ++ DEBUG ((DEBUG_VERBOSE, "because Runtime Driver Section Alignment is not %dK.\n", RUNTIME_PAGE_ALLOCATION_GRANULARITY >> 10)); + return ; + } + +@@ -182,10 +182,10 @@ InstallMemoryAttributesTable ( + MemoryAttributesTable->NumberOfEntries = RuntimeEntryCount; + MemoryAttributesTable->DescriptorSize = (UINT32)DescriptorSize; + MemoryAttributesTable->Reserved = 0; +- DEBUG ((EFI_D_VERBOSE, "MemoryAttributesTable:\n")); +- DEBUG ((EFI_D_VERBOSE, " Version - 0x%08x\n", MemoryAttributesTable->Version)); +- DEBUG ((EFI_D_VERBOSE, " NumberOfEntries - 0x%08x\n", MemoryAttributesTable->NumberOfEntries)); +- DEBUG ((EFI_D_VERBOSE, " DescriptorSize - 0x%08x\n", MemoryAttributesTable->DescriptorSize)); ++ DEBUG ((DEBUG_VERBOSE, "MemoryAttributesTable:\n")); ++ DEBUG ((DEBUG_VERBOSE, " Version - 0x%08x\n", MemoryAttributesTable->Version)); ++ DEBUG ((DEBUG_VERBOSE, " NumberOfEntries - 0x%08x\n", MemoryAttributesTable->NumberOfEntries)); ++ DEBUG ((DEBUG_VERBOSE, " DescriptorSize - 0x%08x\n", MemoryAttributesTable->DescriptorSize)); + MemoryAttributesEntry = (EFI_MEMORY_DESCRIPTOR *)(MemoryAttributesTable + 1); + MemoryMap = MemoryMapStart; + for (Index = 0; Index < MemoryMapSize/DescriptorSize; Index++) { +@@ -194,12 +194,12 @@ InstallMemoryAttributesTable ( + case EfiRuntimeServicesData: + CopyMem (MemoryAttributesEntry, MemoryMap, DescriptorSize); + MemoryAttributesEntry->Attribute &= (EFI_MEMORY_RO|EFI_MEMORY_XP|EFI_MEMORY_RUNTIME); +- DEBUG ((EFI_D_VERBOSE, "Entry (0x%x)\n", MemoryAttributesEntry)); +- DEBUG ((EFI_D_VERBOSE, " Type - 0x%x\n", MemoryAttributesEntry->Type)); +- DEBUG ((EFI_D_VERBOSE, " PhysicalStart - 0x%016lx\n", MemoryAttributesEntry->PhysicalStart)); +- DEBUG ((EFI_D_VERBOSE, " VirtualStart - 0x%016lx\n", MemoryAttributesEntry->VirtualStart)); +- DEBUG ((EFI_D_VERBOSE, " NumberOfPages - 0x%016lx\n", MemoryAttributesEntry->NumberOfPages)); +- DEBUG ((EFI_D_VERBOSE, " Attribute - 0x%016lx\n", MemoryAttributesEntry->Attribute)); ++ DEBUG ((DEBUG_VERBOSE, "Entry (0x%x)\n", MemoryAttributesEntry)); ++ DEBUG ((DEBUG_VERBOSE, " Type - 0x%x\n", MemoryAttributesEntry->Type)); ++ DEBUG ((DEBUG_VERBOSE, " PhysicalStart - 0x%016lx\n", MemoryAttributesEntry->PhysicalStart)); ++ DEBUG ((DEBUG_VERBOSE, " VirtualStart - 0x%016lx\n", MemoryAttributesEntry->VirtualStart)); ++ DEBUG ((DEBUG_VERBOSE, " NumberOfPages - 0x%016lx\n", MemoryAttributesEntry->NumberOfPages)); ++ DEBUG ((DEBUG_VERBOSE, " Attribute - 0x%016lx\n", MemoryAttributesEntry->Attribute)); + MemoryAttributesEntry = NEXT_MEMORY_DESCRIPTOR(MemoryAttributesEntry, DescriptorSize); + break; + } +diff --git a/MdeModulePkg/Core/DxeIplPeim/Ia32/DxeLoadFunc.c b/MdeModulePkg/Core/DxeIplPeim/Ia32/DxeLoadFunc.c +index 284b34818c..b65b01c9e5 100644 +--- a/MdeModulePkg/Core/DxeIplPeim/Ia32/DxeLoadFunc.c ++++ b/MdeModulePkg/Core/DxeIplPeim/Ia32/DxeLoadFunc.c +@@ -378,7 +378,7 @@ HandOffToDxeCore ( + (VOID **)&VectorHandoffInfoPpi + ); + if (Status == EFI_SUCCESS) { +- DEBUG ((EFI_D_INFO, "Vector Hand-off Info PPI is gotten, GUIDed HOB is created!\n")); ++ DEBUG ((DEBUG_INFO, "Vector Hand-off Info PPI is gotten, GUIDed HOB is created!\n")); + VectorInfo = VectorHandoffInfoPpi->Info; + Index = 1; + while (VectorInfo->Attribute != EFI_VECTOR_HANDOFF_LAST_ENTRY) { +@@ -462,4 +462,3 @@ HandOffToDxeCore ( + } + } + } +- +diff --git a/MdeModulePkg/Core/DxeIplPeim/X64/DxeLoadFunc.c b/MdeModulePkg/Core/DxeIplPeim/X64/DxeLoadFunc.c +index 156a477d84..813445b1ef 100644 +--- a/MdeModulePkg/Core/DxeIplPeim/X64/DxeLoadFunc.c ++++ b/MdeModulePkg/Core/DxeIplPeim/X64/DxeLoadFunc.c +@@ -56,7 +56,7 @@ HandOffToDxeCore ( + (VOID **)&VectorHandoffInfoPpi + ); + if (Status == EFI_SUCCESS) { +- DEBUG ((EFI_D_INFO, "Vector Hand-off Info PPI is gotten, GUIDed HOB is created!\n")); ++ DEBUG ((DEBUG_INFO, "Vector Hand-off Info PPI is gotten, GUIDed HOB is created!\n")); + VectorInfo = VectorHandoffInfoPpi->Info; + Index = 1; + while (VectorInfo->Attribute != EFI_VECTOR_HANDOFF_LAST_ENTRY) { +diff --git a/MdeModulePkg/Core/Pei/Dispatcher/Dispatcher.c b/MdeModulePkg/Core/Pei/Dispatcher/Dispatcher.c +index f6bb906f38..7d959b36ea 100644 +--- a/MdeModulePkg/Core/Pei/Dispatcher/Dispatcher.c ++++ b/MdeModulePkg/Core/Pei/Dispatcher/Dispatcher.c +@@ -302,10 +302,10 @@ PeiLoadFixAddressHook( + // + TotalReservedMemorySize += PeiMemorySize; + +- DEBUG ((EFI_D_INFO, "LOADING MODULE FIXED INFO: PcdLoadFixAddressRuntimeCodePageNumber= 0x%x.\n", PcdGet32(PcdLoadFixAddressRuntimeCodePageNumber))); +- DEBUG ((EFI_D_INFO, "LOADING MODULE FIXED INFO: PcdLoadFixAddressBootTimeCodePageNumber= 0x%x.\n", PcdGet32(PcdLoadFixAddressBootTimeCodePageNumber))); +- DEBUG ((EFI_D_INFO, "LOADING MODULE FIXED INFO: PcdLoadFixAddressPeiCodePageNumber= 0x%x.\n", PcdGet32(PcdLoadFixAddressPeiCodePageNumber))); +- DEBUG ((EFI_D_INFO, "LOADING MODULE FIXED INFO: Total Reserved Memory Size = 0x%lx.\n", TotalReservedMemorySize)); ++ DEBUG ((DEBUG_INFO, "LOADING MODULE FIXED INFO: PcdLoadFixAddressRuntimeCodePageNumber= 0x%x.\n", PcdGet32(PcdLoadFixAddressRuntimeCodePageNumber))); ++ DEBUG ((DEBUG_INFO, "LOADING MODULE FIXED INFO: PcdLoadFixAddressBootTimeCodePageNumber= 0x%x.\n", PcdGet32(PcdLoadFixAddressBootTimeCodePageNumber))); ++ DEBUG ((DEBUG_INFO, "LOADING MODULE FIXED INFO: PcdLoadFixAddressPeiCodePageNumber= 0x%x.\n", PcdGet32(PcdLoadFixAddressPeiCodePageNumber))); ++ DEBUG ((DEBUG_INFO, "LOADING MODULE FIXED INFO: Total Reserved Memory Size = 0x%lx.\n", TotalReservedMemorySize)); + // + // Loop through the system memory typed HOB to merge the adjacent memory range + // +@@ -433,12 +433,12 @@ PeiLoadFixAddressHook( + // The LMFA feature is enabled as load module at fixed absolute address. + // + TopLoadingAddress = (EFI_PHYSICAL_ADDRESS)PcdGet64(PcdLoadModuleAtFixAddressEnable); +- DEBUG ((EFI_D_INFO, "LOADING MODULE FIXED INFO: Loading module at fixed absolute address.\n")); ++ DEBUG ((DEBUG_INFO, "LOADING MODULE FIXED INFO: Loading module at fixed absolute address.\n")); + // + // validate the Address. Loop the resource descriptor HOB to make sure the address is in valid memory range + // + if ((TopLoadingAddress & EFI_PAGE_MASK) != 0) { +- DEBUG ((EFI_D_INFO, "LOADING MODULE FIXED ERROR:Top Address 0x%lx is invalid since top address should be page align. \n", TopLoadingAddress)); ++ DEBUG ((DEBUG_INFO, "LOADING MODULE FIXED ERROR:Top Address 0x%lx is invalid since top address should be page align. \n", TopLoadingAddress)); + ASSERT (FALSE); + } + // +@@ -470,11 +470,11 @@ PeiLoadFixAddressHook( + } + } + if (CurrentResourceHob != NULL) { +- DEBUG ((EFI_D_INFO, "LOADING MODULE FIXED INFO:Top Address 0x%lx is valid \n", TopLoadingAddress)); ++ DEBUG ((DEBUG_INFO, "LOADING MODULE FIXED INFO:Top Address 0x%lx is valid \n", TopLoadingAddress)); + TopLoadingAddress += MINIMUM_INITIAL_MEMORY_SIZE; + } else { +- DEBUG ((EFI_D_INFO, "LOADING MODULE FIXED ERROR:Top Address 0x%lx is invalid \n", TopLoadingAddress)); +- DEBUG ((EFI_D_INFO, "LOADING MODULE FIXED ERROR:The recommended Top Address for the platform is: \n")); ++ DEBUG ((DEBUG_INFO, "LOADING MODULE FIXED ERROR:Top Address 0x%lx is invalid \n", TopLoadingAddress)); ++ DEBUG ((DEBUG_INFO, "LOADING MODULE FIXED ERROR:The recommended Top Address for the platform is: \n")); + // + // Print the recommended Top address range. + // +@@ -494,7 +494,7 @@ PeiLoadFixAddressHook( + // See if Top address specified by user is valid. + // + if (ResourceHob->ResourceLength > TotalReservedMemorySize && PeiLoadFixAddressIsMemoryRangeAvailable(PrivateData, ResourceHob)) { +- DEBUG ((EFI_D_INFO, "(0x%lx, 0x%lx)\n", ++ DEBUG ((DEBUG_INFO, "(0x%lx, 0x%lx)\n", + (ResourceHob->PhysicalStart + TotalReservedMemorySize -MINIMUM_INITIAL_MEMORY_SIZE), + (ResourceHob->PhysicalStart + ResourceHob->ResourceLength -MINIMUM_INITIAL_MEMORY_SIZE) + )); +@@ -541,7 +541,7 @@ PeiLoadFixAddressHook( + } + } + if (CurrentResourceHob == NULL) { +- DEBUG ((EFI_D_INFO, "LOADING MODULE FIXED ERROR:The System Memory is too small\n")); ++ DEBUG ((DEBUG_INFO, "LOADING MODULE FIXED ERROR:The System Memory is too small\n")); + // + // Assert here + // +@@ -613,7 +613,7 @@ PeiLoadFixAddressHook( + // Cache the top address for Loading Module at Fixed Address feature + // + PrivateData->LoadModuleAtFixAddressTopAddress = TopLoadingAddress - MINIMUM_INITIAL_MEMORY_SIZE; +- DEBUG ((EFI_D_INFO, "LOADING MODULE FIXED INFO: Top address = 0x%lx\n", PrivateData->LoadModuleAtFixAddressTopAddress)); ++ DEBUG ((DEBUG_INFO, "LOADING MODULE FIXED INFO: Top address = 0x%lx\n", PrivateData->LoadModuleAtFixAddressTopAddress)); + // + // reinstall the PEI memory relative to TopLoadingAddress + // +@@ -732,7 +732,7 @@ PeiCheckAndSwitchStack ( + // If Loading Module at Fixed Address is enabled, Allocating memory range for Pei code range. + // + LoadFixPeiCodeBegin = AllocatePages((UINTN)PcdGet32(PcdLoadFixAddressPeiCodePageNumber)); +- DEBUG ((EFI_D_INFO, "LOADING MODULE FIXED INFO: PeiCodeBegin = 0x%lX, PeiCodeTop= 0x%lX\n", (UINT64)(UINTN)LoadFixPeiCodeBegin, (UINT64)((UINTN)LoadFixPeiCodeBegin + PcdGet32(PcdLoadFixAddressPeiCodePageNumber) * EFI_PAGE_SIZE))); ++ DEBUG ((DEBUG_INFO, "LOADING MODULE FIXED INFO: PeiCodeBegin = 0x%lX, PeiCodeTop= 0x%lX\n", (UINT64)(UINTN)LoadFixPeiCodeBegin, (UINT64)((UINTN)LoadFixPeiCodeBegin + PcdGet32(PcdLoadFixAddressPeiCodePageNumber) * EFI_PAGE_SIZE))); + } + + // +@@ -746,7 +746,7 @@ PeiCheckAndSwitchStack ( + NewStackSize = RShiftU64 (Private->PhysicalMemoryLength, 1); + NewStackSize = ALIGN_VALUE (NewStackSize, EFI_PAGE_SIZE); + NewStackSize = MIN (PcdGet32(PcdPeiCoreMaxPeiStackSize), NewStackSize); +- DEBUG ((EFI_D_INFO, "Old Stack size %d, New stack size %d\n", (UINT32)SecCoreData->StackSize, (UINT32)NewStackSize)); ++ DEBUG ((DEBUG_INFO, "Old Stack size %d, New stack size %d\n", (UINT32)SecCoreData->StackSize, (UINT32)NewStackSize)); + ASSERT (NewStackSize >= SecCoreData->StackSize); + + // +@@ -768,7 +768,7 @@ PeiCheckAndSwitchStack ( + // + // Build Stack HOB that describes the permanent memory stack + // +- DEBUG ((EFI_D_INFO, "Stack Hob: BaseAddress=0x%lX Length=0x%lX\n", TopOfNewStack - NewStackSize, NewStackSize)); ++ DEBUG ((DEBUG_INFO, "Stack Hob: BaseAddress=0x%lX Length=0x%lX\n", TopOfNewStack - NewStackSize, NewStackSize)); + BuildStackHob (TopOfNewStack - NewStackSize, NewStackSize); + + // +@@ -803,7 +803,7 @@ PeiCheckAndSwitchStack ( + Private->HeapOffset = (UINTN)((UINTN)SecCoreData->PeiTemporaryRamBase - BaseOfNewHeap); + } + +- DEBUG ((EFI_D_INFO, "Heap Offset = 0x%lX Stack Offset = 0x%lX\n", (UINT64) Private->HeapOffset, (UINT64) Private->StackOffset)); ++ DEBUG ((DEBUG_INFO, "Heap Offset = 0x%lX Stack Offset = 0x%lX\n", (UINT64) Private->HeapOffset, (UINT64) Private->StackOffset)); + + // + // Calculate new HandOffTable and PrivateData address in permanent memory's stack +@@ -871,7 +871,7 @@ PeiCheckAndSwitchStack ( + Private->HeapOffset = (UINTN)((UINTN)SecCoreData->PeiTemporaryRamBase - BaseOfNewHeap); + } + +- DEBUG ((EFI_D_INFO, "Heap Offset = 0x%lX Stack Offset = 0x%lX\n", (UINT64) Private->HeapOffset, (UINT64) Private->StackOffset)); ++ DEBUG ((DEBUG_INFO, "Heap Offset = 0x%lX Stack Offset = 0x%lX\n", (UINT64) Private->HeapOffset, (UINT64) Private->StackOffset)); + + // + // Migrate Heap +@@ -1730,6 +1730,3 @@ PeiRegisterForShadow ( + + return EFI_SUCCESS; + } +- +- +- +diff --git a/MdeModulePkg/Core/Pei/FwVol/FwVol.c b/MdeModulePkg/Core/Pei/FwVol/FwVol.c +index fa1a3d3acc..bf8dbd3763 100644 +--- a/MdeModulePkg/Core/Pei/FwVol/FwVol.c ++++ b/MdeModulePkg/Core/Pei/FwVol/FwVol.c +@@ -317,7 +317,7 @@ FindFileEx ( + } else { + if (IS_FFS_FILE2 (*FileHeader)) { + if (!IsFfs3Fv) { +- DEBUG ((EFI_D_ERROR, "It is a FFS3 formatted file: %g in a non-FFS3 formatted FV.\n", &(*FileHeader)->Name)); ++ DEBUG ((DEBUG_ERROR, "It is a FFS3 formatted file: %g in a non-FFS3 formatted FV.\n", &(*FileHeader)->Name)); + } + FileLength = FFS_FILE2_SIZE (*FileHeader); + ASSERT (FileLength > 0x00FFFFFF); +@@ -345,7 +345,7 @@ FindFileEx ( + case EFI_FILE_HEADER_INVALID: + if (IS_FFS_FILE2 (FfsFileHeader)) { + if (!IsFfs3Fv) { +- DEBUG ((EFI_D_ERROR, "Found a FFS3 formatted file: %g in a non-FFS3 formatted FV.\n", &FfsFileHeader->Name)); ++ DEBUG ((DEBUG_ERROR, "Found a FFS3 formatted file: %g in a non-FFS3 formatted FV.\n", &FfsFileHeader->Name)); + } + FileOffset += sizeof (EFI_FFS_FILE_HEADER2); + FfsFileHeader = (EFI_FFS_FILE_HEADER *) ((UINT8 *) FfsFileHeader + sizeof (EFI_FFS_FILE_HEADER2)); +@@ -368,7 +368,7 @@ FindFileEx ( + ASSERT (FileLength > 0x00FFFFFF); + FileOccupiedSize = GET_OCCUPIED_SIZE (FileLength, 8); + if (!IsFfs3Fv) { +- DEBUG ((EFI_D_ERROR, "Found a FFS3 formatted file: %g in a non-FFS3 formatted FV.\n", &FfsFileHeader->Name)); ++ DEBUG ((DEBUG_ERROR, "Found a FFS3 formatted file: %g in a non-FFS3 formatted FV.\n", &FfsFileHeader->Name)); + FileOffset += FileOccupiedSize; + FfsFileHeader = (EFI_FFS_FILE_HEADER *) ((UINT8 *) FfsFileHeader + FileOccupiedSize); + break; +@@ -424,7 +424,7 @@ FindFileEx ( + case EFI_FILE_DELETED: + if (IS_FFS_FILE2 (FfsFileHeader)) { + if (!IsFfs3Fv) { +- DEBUG ((EFI_D_ERROR, "Found a FFS3 formatted file: %g in a non-FFS3 formatted FV.\n", &FfsFileHeader->Name)); ++ DEBUG ((DEBUG_ERROR, "Found a FFS3 formatted file: %g in a non-FFS3 formatted FV.\n", &FfsFileHeader->Name)); + } + FileLength = FFS_FILE2_SIZE (FfsFileHeader); + ASSERT (FileLength > 0x00FFFFFF); +@@ -509,7 +509,7 @@ PeiInitializeFv ( + PrivateData->Fv[PrivateData->FvCount].FvHandle = FvHandle; + PrivateData->Fv[PrivateData->FvCount].AuthenticationStatus = 0; + DEBUG (( +- EFI_D_INFO, ++ DEBUG_INFO, + "The %dth FV start address is 0x%11p, size is 0x%08x, handle is 0x%p\n", + (UINT32) PrivateData->FvCount, + (VOID *) BfvHeader, +@@ -607,7 +607,7 @@ FirmwareVolumeInfoPpiNotifyCallback ( + // + Status = FvPpi->ProcessVolume (FvPpi, FvInfo2Ppi.FvInfo, FvInfo2Ppi.FvInfoSize, &FvHandle); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "Fail to process new found FV, FV may be corrupted!\n")); ++ DEBUG ((DEBUG_ERROR, "Fail to process new found FV, FV may be corrupted!\n")); + return Status; + } + +@@ -618,7 +618,7 @@ FirmwareVolumeInfoPpiNotifyCallback ( + if (PrivateData->Fv[FvIndex].FvHandle == FvHandle) { + if (IsFvInfo2 && (FvInfo2Ppi.AuthenticationStatus != PrivateData->Fv[FvIndex].AuthenticationStatus)) { + PrivateData->Fv[FvIndex].AuthenticationStatus = FvInfo2Ppi.AuthenticationStatus; +- DEBUG ((EFI_D_INFO, "Update AuthenticationStatus of the %dth FV to 0x%x!\n", FvIndex, FvInfo2Ppi.AuthenticationStatus)); ++ DEBUG ((DEBUG_INFO, "Update AuthenticationStatus of the %dth FV to 0x%x!\n", FvIndex, FvInfo2Ppi.AuthenticationStatus)); + } + DEBUG ((DEBUG_INFO, "The FV %p has already been processed!\n", FvInfo2Ppi.FvInfo)); + return EFI_SUCCESS; +@@ -651,7 +651,7 @@ FirmwareVolumeInfoPpiNotifyCallback ( + PrivateData->Fv[PrivateData->FvCount].AuthenticationStatus = FvInfo2Ppi.AuthenticationStatus; + CurFvCount = PrivateData->FvCount; + DEBUG (( +- EFI_D_INFO, ++ DEBUG_INFO, + "The %dth FV start address is 0x%11p, size is 0x%08x, handle is 0x%p\n", + (UINT32) CurFvCount, + (VOID *) FvInfo2Ppi.FvInfo, +@@ -687,12 +687,12 @@ FirmwareVolumeInfoPpiNotifyCallback ( + } + } + +- DEBUG ((EFI_D_INFO, "Found firmware volume Image File %p in FV[%d] %p\n", FileHandle, CurFvCount, FvHandle)); ++ DEBUG ((DEBUG_INFO, "Found firmware volume Image File %p in FV[%d] %p\n", FileHandle, CurFvCount, FvHandle)); + ProcessFvFile (PrivateData, &PrivateData->Fv[CurFvCount], FileHandle); + } + } while (FileHandle != NULL); + } else { +- DEBUG ((EFI_D_ERROR, "Fail to process FV %p because no corresponding EFI_FIRMWARE_VOLUME_PPI is found!\n", FvInfo2Ppi.FvInfo)); ++ DEBUG ((DEBUG_ERROR, "Fail to process FV %p because no corresponding EFI_FIRMWARE_VOLUME_PPI is found!\n", FvInfo2Ppi.FvInfo)); + + AddUnknownFormatFvInfo (PrivateData, &FvInfo2Ppi); + } +@@ -808,7 +808,7 @@ ProcessSection ( + if (IS_SECTION2 (Section)) { + ASSERT (SECTION2_SIZE (Section) > 0x00FFFFFF); + if (!IsFfs3Fv) { +- DEBUG ((EFI_D_ERROR, "Found a FFS3 formatted section in a non-FFS3 formatted FV.\n")); ++ DEBUG ((DEBUG_ERROR, "Found a FFS3 formatted section in a non-FFS3 formatted FV.\n")); + SectionLength = SECTION2_SIZE (Section); + // + // SectionLength is adjusted it is 4 byte aligned. +@@ -1404,7 +1404,7 @@ ProcessFvFile ( + // + // this FILE has been dispatched, it will not be dispatched again. + // +- DEBUG ((EFI_D_INFO, "FV file %p has been dispatched!\r\n", ParentFvFileHandle)); ++ DEBUG ((DEBUG_INFO, "FV file %p has been dispatched!\r\n", ParentFvFileHandle)); + return EFI_SUCCESS; + } + HobPtr.Raw = GET_NEXT_HOB (HobPtr); +@@ -1628,7 +1628,7 @@ PeiFfsFvPpiProcessVolume ( + // + Status = VerifyFv ((EFI_FIRMWARE_VOLUME_HEADER*) Buffer); + if (EFI_ERROR(Status)) { +- DEBUG ((EFI_D_ERROR, "Fail to verify FV which address is 0x%11p", Buffer)); ++ DEBUG ((DEBUG_ERROR, "Fail to verify FV which address is 0x%11p", Buffer)); + return EFI_VOLUME_CORRUPTED; + } + +@@ -1810,7 +1810,7 @@ PeiFfsFvPpiGetFileInfo ( + if (IS_FFS_FILE2 (FileHeader)) { + ASSERT (FFS_FILE2_SIZE (FileHeader) > 0x00FFFFFF); + if (!FwVolInstance->IsFfs3Fv) { +- DEBUG ((EFI_D_ERROR, "It is a FFS3 formatted file: %g in a non-FFS3 formatted FV.\n", &FileHeader->Name)); ++ DEBUG ((DEBUG_ERROR, "It is a FFS3 formatted file: %g in a non-FFS3 formatted FV.\n", &FileHeader->Name)); + return EFI_INVALID_PARAMETER; + } + FileInfo->BufferSize = FFS_FILE2_SIZE (FileHeader) - sizeof (EFI_FFS_FILE_HEADER2); +@@ -2029,7 +2029,7 @@ PeiFfsFvPpiFindSectionByType2 ( + if (IS_FFS_FILE2 (FfsFileHeader)) { + ASSERT (FFS_FILE2_SIZE (FfsFileHeader) > 0x00FFFFFF); + if (!FwVolInstance->IsFfs3Fv) { +- DEBUG ((EFI_D_ERROR, "It is a FFS3 formatted file: %g in a non-FFS3 formatted FV.\n", &FfsFileHeader->Name)); ++ DEBUG ((DEBUG_ERROR, "It is a FFS3 formatted file: %g in a non-FFS3 formatted FV.\n", &FfsFileHeader->Name)); + return EFI_NOT_FOUND; + } + Section = (EFI_COMMON_SECTION_HEADER *) ((UINT8 *) FfsFileHeader + sizeof (EFI_FFS_FILE_HEADER2)); +@@ -2344,7 +2344,7 @@ ThirdPartyFvPpiNotifyCallback ( + // + Status = FvPpi->ProcessVolume (FvPpi, FvInfo, FvInfoSize, &FvHandle); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "Fail to process the FV 0x%p, FV may be corrupted!\n", FvInfo)); ++ DEBUG ((DEBUG_ERROR, "Fail to process the FV 0x%p, FV may be corrupted!\n", FvInfo)); + continue; + } + +@@ -2390,7 +2390,7 @@ ThirdPartyFvPpiNotifyCallback ( + PrivateData->Fv[PrivateData->FvCount].AuthenticationStatus = AuthenticationStatus; + CurFvCount = PrivateData->FvCount; + DEBUG (( +- EFI_D_INFO, ++ DEBUG_INFO, + "The %dth FV start address is 0x%11p, size is 0x%08x, handle is 0x%p\n", + (UINT32) CurFvCount, + (VOID *) FvInfo, +@@ -2426,7 +2426,7 @@ ThirdPartyFvPpiNotifyCallback ( + } + } + +- DEBUG ((EFI_D_INFO, "Found firmware volume Image File %p in FV[%d] %p\n", FileHandle, CurFvCount, FvHandle)); ++ DEBUG ((DEBUG_INFO, "Found firmware volume Image File %p in FV[%d] %p\n", FileHandle, CurFvCount, FvHandle)); + ProcessFvFile (PrivateData, &PrivateData->Fv[CurFvCount], FileHandle); + } + } while (FileHandle != NULL); +diff --git a/MdeModulePkg/Core/Pei/Hob/Hob.c b/MdeModulePkg/Core/Pei/Hob/Hob.c +index 4d8db2e7a5..d36b61417e 100644 +--- a/MdeModulePkg/Core/Pei/Hob/Hob.c ++++ b/MdeModulePkg/Core/Pei/Hob/Hob.c +@@ -95,9 +95,9 @@ PeiCreateHob ( + HandOffHob->EfiFreeMemoryBottom; + + if (FreeMemory < Length) { +- DEBUG ((EFI_D_ERROR, "PeiCreateHob fail: Length - 0x%08x\n", (UINTN)Length)); +- DEBUG ((EFI_D_ERROR, " FreeMemoryTop - 0x%08x\n", (UINTN)HandOffHob->EfiFreeMemoryTop)); +- DEBUG ((EFI_D_ERROR, " FreeMemoryBottom - 0x%08x\n", (UINTN)HandOffHob->EfiFreeMemoryBottom)); ++ DEBUG ((DEBUG_ERROR, "PeiCreateHob fail: Length - 0x%08x\n", (UINTN)Length)); ++ DEBUG ((DEBUG_ERROR, " FreeMemoryTop - 0x%08x\n", (UINTN)HandOffHob->EfiFreeMemoryTop)); ++ DEBUG ((DEBUG_ERROR, " FreeMemoryBottom - 0x%08x\n", (UINTN)HandOffHob->EfiFreeMemoryBottom)); + return EFI_OUT_OF_RESOURCES; + } + +diff --git a/MdeModulePkg/Core/Pei/Image/Image.c b/MdeModulePkg/Core/Pei/Image/Image.c +index 5af3895191..92fe798cd6 100644 +--- a/MdeModulePkg/Core/Pei/Image/Image.c ++++ b/MdeModulePkg/Core/Pei/Image/Image.c +@@ -235,7 +235,7 @@ GetPeCoffImageFixLoadingAssignedAddress( + } + SectionHeaderOffset += sizeof (EFI_IMAGE_SECTION_HEADER); + } +- DEBUG ((EFI_D_INFO|EFI_D_LOAD, "LOADING MODULE FIXED INFO: Loading module at fixed address 0x%11p. Status= %r \n", (VOID *)(UINTN)FixLoadingAddress, Status)); ++ DEBUG ((DEBUG_INFO|DEBUG_LOAD, "LOADING MODULE FIXED INFO: Loading module at fixed address 0x%11p. Status= %r \n", (VOID *)(UINTN)FixLoadingAddress, Status)); + return Status; + } + /** +@@ -333,7 +333,7 @@ LoadAndRelocatePeCoffImage ( + (!IsS3Boot && (PcdGetBool (PcdShadowPeimOnBoot) || IsRegisterForShadow)) || + (IsS3Boot && PcdGetBool (PcdShadowPeimOnS3Boot))) + ) { +- DEBUG ((EFI_D_INFO|EFI_D_LOAD, "The image at 0x%08x without reloc section can't be loaded into memory\n", (UINTN) Pe32Data)); ++ DEBUG ((DEBUG_INFO|DEBUG_LOAD, "The image at 0x%08x without reloc section can't be loaded into memory\n", (UINTN) Pe32Data)); + } + + // +@@ -367,7 +367,7 @@ LoadAndRelocatePeCoffImage ( + if (PcdGet64(PcdLoadModuleAtFixAddressEnable) != 0 && (Private->HobList.HandoffInformationTable->BootMode != BOOT_ON_S3_RESUME)) { + Status = GetPeCoffImageFixLoadingAssignedAddress(&ImageContext, Private); + if (EFI_ERROR (Status)){ +- DEBUG ((EFI_D_INFO|EFI_D_LOAD, "LOADING MODULE FIXED ERROR: Failed to load module at fixed address. \n")); ++ DEBUG ((DEBUG_INFO|DEBUG_LOAD, "LOADING MODULE FIXED ERROR: Failed to load module at fixed address. \n")); + // + // The PEIM is not assigned valid address, try to allocate page to load it. + // +@@ -697,12 +697,12 @@ PeiLoadImageLoadImage ( + // Print debug message: Loading PEIM at 0x12345678 EntryPoint=0x12345688 Driver.efi + // + if (Machine != EFI_IMAGE_MACHINE_IA64) { +- DEBUG ((EFI_D_INFO | EFI_D_LOAD, "Loading PEIM at 0x%11p EntryPoint=0x%11p ", (VOID *)(UINTN)ImageAddress, (VOID *)(UINTN)*EntryPoint)); ++ DEBUG ((DEBUG_INFO | DEBUG_LOAD, "Loading PEIM at 0x%11p EntryPoint=0x%11p ", (VOID *)(UINTN)ImageAddress, (VOID *)(UINTN)*EntryPoint)); + } else { + // + // For IPF Image, the real entry point should be print. + // +- DEBUG ((EFI_D_INFO | EFI_D_LOAD, "Loading PEIM at 0x%11p EntryPoint=0x%11p ", (VOID *)(UINTN)ImageAddress, (VOID *)(UINTN)(*(UINT64 *)(UINTN)*EntryPoint))); ++ DEBUG ((DEBUG_INFO | DEBUG_LOAD, "Loading PEIM at 0x%11p EntryPoint=0x%11p ", (VOID *)(UINTN)ImageAddress, (VOID *)(UINTN)(*(UINT64 *)(UINTN)*EntryPoint))); + } + + // +@@ -741,12 +741,12 @@ PeiLoadImageLoadImage ( + EfiFileName[Index] = 0; + } + +- DEBUG ((EFI_D_INFO | EFI_D_LOAD, "%a", EfiFileName)); ++ DEBUG ((DEBUG_INFO | DEBUG_LOAD, "%a", EfiFileName)); + } + + DEBUG_CODE_END (); + +- DEBUG ((EFI_D_INFO | EFI_D_LOAD, "\n")); ++ DEBUG ((DEBUG_INFO | DEBUG_LOAD, "\n")); + + return EFI_SUCCESS; + +@@ -961,7 +961,3 @@ InitializeImageServices ( + PeiServicesReInstallPpi (PrivateData->XipLoadFile, &gPpiLoadFilePpiList); + } + } +- +- +- +- +diff --git a/MdeModulePkg/Core/Pei/Memory/MemoryServices.c b/MdeModulePkg/Core/Pei/Memory/MemoryServices.c +index 9d933f0393..53c9eaceb0 100644 +--- a/MdeModulePkg/Core/Pei/Memory/MemoryServices.c ++++ b/MdeModulePkg/Core/Pei/Memory/MemoryServices.c +@@ -80,7 +80,7 @@ PeiInstallPeiMemory ( + { + PEI_CORE_INSTANCE *PrivateData; + +- DEBUG ((EFI_D_INFO, "PeiInstallPeiMemory MemoryBegin 0x%LX, MemoryLength 0x%LX\n", MemoryBegin, MemoryLength)); ++ DEBUG ((DEBUG_INFO, "PeiInstallPeiMemory MemoryBegin 0x%LX, MemoryLength 0x%LX\n", MemoryBegin, MemoryLength)); + PrivateData = PEI_CORE_INSTANCE_FROM_PS_THIS (PeiServices); + + // +@@ -89,7 +89,7 @@ PeiInstallPeiMemory ( + // simply return EFI_SUCCESS in release tip to ignore it. + // + if (PrivateData->PeiMemoryInstalled) { +- DEBUG ((EFI_D_ERROR, "ERROR: PeiInstallPeiMemory is called more than once!\n")); ++ DEBUG ((DEBUG_ERROR, "ERROR: PeiInstallPeiMemory is called more than once!\n")); + ASSERT (FALSE); + return EFI_SUCCESS; + } +@@ -676,8 +676,8 @@ PeiAllocatePages ( + if (!EFI_ERROR (Status)) { + return Status; + } +- DEBUG ((EFI_D_ERROR, "AllocatePages failed: No 0x%lx Pages is available.\n", (UINT64) Pages)); +- DEBUG ((EFI_D_ERROR, "There is only left 0x%lx pages memory resource to be allocated.\n", (UINT64) RemainingPages)); ++ DEBUG ((DEBUG_ERROR, "AllocatePages failed: No 0x%lx Pages is available.\n", (UINT64) Pages)); ++ DEBUG ((DEBUG_ERROR, "There is only left 0x%lx pages memory resource to be allocated.\n", (UINT64) RemainingPages)); + return EFI_OUT_OF_RESOURCES; + } else { + // +diff --git a/MdeModulePkg/Core/Pei/PeiMain/PeiMain.c b/MdeModulePkg/Core/Pei/PeiMain/PeiMain.c +index 2ad08878d9..a72d07c4be 100644 +--- a/MdeModulePkg/Core/Pei/PeiMain/PeiMain.c ++++ b/MdeModulePkg/Core/Pei/PeiMain/PeiMain.c +@@ -508,7 +508,7 @@ PeiCore ( + // + // Enter DxeIpl to load Dxe core. + // +- DEBUG ((EFI_D_INFO, "DXE IPL Entry\n")); ++ DEBUG ((DEBUG_INFO, "DXE IPL Entry\n")); + Status = TempPtr.DxeIpl->Entry ( + TempPtr.DxeIpl, + &PrivateData.Ps, +diff --git a/MdeModulePkg/Core/Pei/Ppi/Ppi.c b/MdeModulePkg/Core/Pei/Ppi/Ppi.c +index 0ad71d116f..2e339e2522 100644 +--- a/MdeModulePkg/Core/Pei/Ppi/Ppi.c ++++ b/MdeModulePkg/Core/Pei/Ppi/Ppi.c +@@ -474,7 +474,7 @@ InternalPeiInstallPpi ( + // + if ((PpiList->Flags & EFI_PEI_PPI_DESCRIPTOR_PPI) == 0) { + PpiListPointer->CurrentCount = LastCount; +- DEBUG((EFI_D_ERROR, "ERROR -> InstallPpi: %g %p\n", PpiList->Guid, PpiList->Ppi)); ++ DEBUG((DEBUG_ERROR, "ERROR -> InstallPpi: %g %p\n", PpiList->Guid, PpiList->Ppi)); + return EFI_INVALID_PARAMETER; + } + +@@ -495,7 +495,7 @@ InternalPeiInstallPpi ( + PpiListPointer->MaxCount = PpiListPointer->MaxCount + PPI_GROWTH_STEP; + } + +- DEBUG((EFI_D_INFO, "Install PPI: %g\n", PpiList->Guid)); ++ DEBUG((DEBUG_INFO, "Install PPI: %g\n", PpiList->Guid)); + PpiListPointer->PpiPtrs[Index].Ppi = (EFI_PEI_PPI_DESCRIPTOR *) PpiList; + Index++; + PpiListPointer->CurrentCount++; +@@ -613,7 +613,7 @@ PeiReInstallPpi ( + // + // Replace the old PPI with the new one. + // +- DEBUG((EFI_D_INFO, "Reinstall PPI: %g\n", NewPpi->Guid)); ++ DEBUG((DEBUG_INFO, "Reinstall PPI: %g\n", NewPpi->Guid)); + PrivateData->PpiData.PpiList.PpiPtrs[Index].Ppi = (EFI_PEI_PPI_DESCRIPTOR *) NewPpi; + + // +@@ -807,7 +807,7 @@ InternalPeiNotifyPpi ( + DispatchNotifyListPointer->CurrentCount++; + } + +- DEBUG((EFI_D_INFO, "Register PPI Notify: %g\n", NotifyList->Guid)); ++ DEBUG((DEBUG_INFO, "Register PPI Notify: %g\n", NotifyList->Guid)); + + if (Single) { + // +@@ -978,7 +978,7 @@ ProcessNotify ( + (((INT32 *)SearchGuid)[1] == ((INT32 *)CheckGuid)[1]) && + (((INT32 *)SearchGuid)[2] == ((INT32 *)CheckGuid)[2]) && + (((INT32 *)SearchGuid)[3] == ((INT32 *)CheckGuid)[3])) { +- DEBUG ((EFI_D_INFO, "Notify: PPI Guid: %g, Peim notify entry point: %p\n", ++ DEBUG ((DEBUG_INFO, "Notify: PPI Guid: %g, Peim notify entry point: %p\n", + SearchGuid, + NotifyDescriptor->Notify + )); +@@ -1115,4 +1115,3 @@ ConvertPeiCorePpiPointers ( + ConvertPpiPointersFv (PrivateData, (UINTN) OrgImageBase, (UINTN) MigratedImageBase, PeiCoreModuleSize); + } + } +- +diff --git a/MdeModulePkg/Core/PiSmmCore/Dispatcher.c b/MdeModulePkg/Core/PiSmmCore/Dispatcher.c +index 76ee9e0b89..6d669bd1be 100644 +--- a/MdeModulePkg/Core/PiSmmCore/Dispatcher.c ++++ b/MdeModulePkg/Core/PiSmmCore/Dispatcher.c +@@ -283,7 +283,7 @@ GetPeCoffImageFixLoadingAssignedAddress( + } + SectionHeaderOffset += sizeof (EFI_IMAGE_SECTION_HEADER); + } +- DEBUG ((EFI_D_INFO|EFI_D_LOAD, "LOADING MODULE FIXED INFO: Loading module at fixed address %x, Status = %r\n", FixLoadingAddress, Status)); ++ DEBUG ((DEBUG_INFO|DEBUG_LOAD, "LOADING MODULE FIXED INFO: Loading module at fixed address %x, Status = %r\n", FixLoadingAddress, Status)); + return Status; + } + /** +@@ -464,7 +464,7 @@ SmmLoadImage ( + PageCount = 0; + DstBuffer = (UINTN)gLoadModuleAtFixAddressSmramBase; + } else { +- DEBUG ((EFI_D_INFO|EFI_D_LOAD, "LOADING MODULE FIXED ERROR: Failed to load module at fixed address. \n")); ++ DEBUG ((DEBUG_INFO|DEBUG_LOAD, "LOADING MODULE FIXED ERROR: Failed to load module at fixed address. \n")); + // + // allocate the memory to load the SMM driver + // +diff --git a/MdeModulePkg/Core/PiSmmCore/PiSmmCore.c b/MdeModulePkg/Core/PiSmmCore/PiSmmCore.c +index cfa9922cbd..c460805148 100644 +--- a/MdeModulePkg/Core/PiSmmCore/PiSmmCore.c ++++ b/MdeModulePkg/Core/PiSmmCore/PiSmmCore.c +@@ -439,7 +439,7 @@ SmmEndOfDxeHandler ( + EFI_SMM_SX_REGISTER_CONTEXT EntryRegisterContext; + EFI_HANDLE S3EntryHandle; + +- DEBUG ((EFI_D_INFO, "SmmEndOfDxeHandler\n")); ++ DEBUG ((DEBUG_INFO, "SmmEndOfDxeHandler\n")); + + // + // Install SMM EndOfDxe protocol +diff --git a/MdeModulePkg/Core/PiSmmCore/PiSmmIpl.c b/MdeModulePkg/Core/PiSmmCore/PiSmmIpl.c +index 599a0cd01d..e8e25c6c91 100644 +--- a/MdeModulePkg/Core/PiSmmCore/PiSmmIpl.c ++++ b/MdeModulePkg/Core/PiSmmCore/PiSmmIpl.c +@@ -991,7 +991,7 @@ GetPeCoffImageFixLoadingAssignedAddress( + } + SectionHeaderOffset += sizeof (EFI_IMAGE_SECTION_HEADER); + } +- DEBUG ((EFI_D_INFO|EFI_D_LOAD, "LOADING MODULE FIXED INFO: Loading module at fixed address %x, Status = %r \n", FixLoadingAddress, Status)); ++ DEBUG ((DEBUG_INFO|DEBUG_LOAD, "LOADING MODULE FIXED INFO: Loading module at fixed address %x, Status = %r \n", FixLoadingAddress, Status)); + return Status; + } + /** +@@ -1068,7 +1068,7 @@ ExecuteSmmCoreFromSmram ( + // + gSmmCorePrivate->SmramRangeCount --; + } else { +- DEBUG ((EFI_D_INFO, "LOADING MODULE FIXED ERROR: Loading module at fixed address at address failed\n")); ++ DEBUG ((DEBUG_INFO, "LOADING MODULE FIXED ERROR: Loading module at fixed address at address failed\n")); + // + // Allocate memory for the image being loaded from the EFI_SRAM_DESCRIPTOR + // specified by SmramRange +@@ -1749,7 +1749,7 @@ SmmIplEntry ( + // + // Print the SMRAM base + // +- DEBUG ((EFI_D_INFO, "LOADING MODULE FIXED INFO: TSEG BASE is %x. \n", mLMFAConfigurationTable->SmramBase)); ++ DEBUG ((DEBUG_INFO, "LOADING MODULE FIXED INFO: TSEG BASE is %x. \n", mLMFAConfigurationTable->SmramBase)); + } + + // +diff --git a/MdeModulePkg/Core/PiSmmCore/SmramProfileRecord.c b/MdeModulePkg/Core/PiSmmCore/SmramProfileRecord.c +index 9d6e3bf27a..5b8ce55347 100644 +--- a/MdeModulePkg/Core/PiSmmCore/SmramProfileRecord.c ++++ b/MdeModulePkg/Core/PiSmmCore/SmramProfileRecord.c +@@ -676,7 +676,7 @@ SmramProfileInit ( + + RegisterSmmCore (&mSmramProfileContext); + +- DEBUG ((EFI_D_INFO, "SmramProfileInit SmramProfileContext - 0x%x\n", &mSmramProfileContext)); ++ DEBUG ((DEBUG_INFO, "SmramProfileInit SmramProfileContext - 0x%x\n", &mSmramProfileContext)); + } + + /** +@@ -1530,7 +1530,7 @@ SmramProfileReadyToLock ( + return; + } + +- DEBUG ((EFI_D_INFO, "SmramProfileReadyToLock\n")); ++ DEBUG ((DEBUG_INFO, "SmramProfileReadyToLock\n")); + mSmramReadyToLock = TRUE; + } + +@@ -2168,7 +2168,7 @@ SmramProfileHandlerGetData ( + // Sanity check + // + if (!SmmIsBufferOutsideSmmValid ((UINTN) SmramProfileGetData.ProfileBuffer, (UINTN) ProfileSize)) { +- DEBUG ((EFI_D_ERROR, "SmramProfileHandlerGetData: SMM ProfileBuffer in SMRAM or overflow!\n")); ++ DEBUG ((DEBUG_ERROR, "SmramProfileHandlerGetData: SMM ProfileBuffer in SMRAM or overflow!\n")); + SmramProfileParameterGetData->ProfileSize = ProfileSize; + SmramProfileParameterGetData->Header.ReturnStatus = (UINT64) (INT64) (INTN) EFI_ACCESS_DENIED; + goto Done; +@@ -2219,7 +2219,7 @@ SmramProfileHandlerGetDataByOffset ( + // Sanity check + // + if (!SmmIsBufferOutsideSmmValid ((UINTN) SmramProfileGetDataByOffset.ProfileBuffer, (UINTN) SmramProfileGetDataByOffset.ProfileSize)) { +- DEBUG ((EFI_D_ERROR, "SmramProfileHandlerGetDataByOffset: SMM ProfileBuffer in SMRAM or overflow!\n")); ++ DEBUG ((DEBUG_ERROR, "SmramProfileHandlerGetDataByOffset: SMM ProfileBuffer in SMRAM or overflow!\n")); + SmramProfileParameterGetDataByOffset->Header.ReturnStatus = (UINT64) (INT64) (INTN) EFI_ACCESS_DENIED; + goto Done; + } +@@ -2261,7 +2261,7 @@ SmramProfileHandler ( + UINTN TempCommBufferSize; + SMRAM_PROFILE_PARAMETER_RECORDING_STATE *ParameterRecordingState; + +- DEBUG ((EFI_D_ERROR, "SmramProfileHandler Enter\n")); ++ DEBUG ((DEBUG_ERROR, "SmramProfileHandler Enter\n")); + + // + // If input is invalid, stop processing this SMI +@@ -2273,12 +2273,12 @@ SmramProfileHandler ( + TempCommBufferSize = *CommBufferSize; + + if (TempCommBufferSize < sizeof (SMRAM_PROFILE_PARAMETER_HEADER)) { +- DEBUG ((EFI_D_ERROR, "SmramProfileHandler: SMM communication buffer size invalid!\n")); ++ DEBUG ((DEBUG_ERROR, "SmramProfileHandler: SMM communication buffer size invalid!\n")); + return EFI_SUCCESS; + } + + if (mSmramReadyToLock && !SmmIsBufferOutsideSmmValid ((UINTN)CommBuffer, TempCommBufferSize)) { +- DEBUG ((EFI_D_ERROR, "SmramProfileHandler: SMM communication buffer in SMRAM or overflow!\n")); ++ DEBUG ((DEBUG_ERROR, "SmramProfileHandler: SMM communication buffer in SMRAM or overflow!\n")); + return EFI_SUCCESS; + } + +@@ -2293,33 +2293,33 @@ SmramProfileHandler ( + + switch (SmramProfileParameterHeader->Command) { + case SMRAM_PROFILE_COMMAND_GET_PROFILE_INFO: +- DEBUG ((EFI_D_ERROR, "SmramProfileHandlerGetInfo\n")); ++ DEBUG ((DEBUG_ERROR, "SmramProfileHandlerGetInfo\n")); + if (TempCommBufferSize != sizeof (SMRAM_PROFILE_PARAMETER_GET_PROFILE_INFO)) { +- DEBUG ((EFI_D_ERROR, "SmramProfileHandler: SMM communication buffer size invalid!\n")); ++ DEBUG ((DEBUG_ERROR, "SmramProfileHandler: SMM communication buffer size invalid!\n")); + return EFI_SUCCESS; + } + SmramProfileHandlerGetInfo ((SMRAM_PROFILE_PARAMETER_GET_PROFILE_INFO *) (UINTN) CommBuffer); + break; + case SMRAM_PROFILE_COMMAND_GET_PROFILE_DATA: +- DEBUG ((EFI_D_ERROR, "SmramProfileHandlerGetData\n")); ++ DEBUG ((DEBUG_ERROR, "SmramProfileHandlerGetData\n")); + if (TempCommBufferSize != sizeof (SMRAM_PROFILE_PARAMETER_GET_PROFILE_DATA)) { +- DEBUG ((EFI_D_ERROR, "SmramProfileHandler: SMM communication buffer size invalid!\n")); ++ DEBUG ((DEBUG_ERROR, "SmramProfileHandler: SMM communication buffer size invalid!\n")); + return EFI_SUCCESS; + } + SmramProfileHandlerGetData ((SMRAM_PROFILE_PARAMETER_GET_PROFILE_DATA *) (UINTN) CommBuffer); + break; + case SMRAM_PROFILE_COMMAND_GET_PROFILE_DATA_BY_OFFSET: +- DEBUG ((EFI_D_ERROR, "SmramProfileHandlerGetDataByOffset\n")); ++ DEBUG ((DEBUG_ERROR, "SmramProfileHandlerGetDataByOffset\n")); + if (TempCommBufferSize != sizeof (SMRAM_PROFILE_PARAMETER_GET_PROFILE_DATA_BY_OFFSET)) { +- DEBUG ((EFI_D_ERROR, "SmramProfileHandler: SMM communication buffer size invalid!\n")); ++ DEBUG ((DEBUG_ERROR, "SmramProfileHandler: SMM communication buffer size invalid!\n")); + return EFI_SUCCESS; + } + SmramProfileHandlerGetDataByOffset ((SMRAM_PROFILE_PARAMETER_GET_PROFILE_DATA_BY_OFFSET *) (UINTN) CommBuffer); + break; + case SMRAM_PROFILE_COMMAND_GET_RECORDING_STATE: +- DEBUG ((EFI_D_ERROR, "SmramProfileHandlerGetRecordingState\n")); ++ DEBUG ((DEBUG_ERROR, "SmramProfileHandlerGetRecordingState\n")); + if (TempCommBufferSize != sizeof (SMRAM_PROFILE_PARAMETER_RECORDING_STATE)) { +- DEBUG ((EFI_D_ERROR, "SmramProfileHandler: SMM communication buffer size invalid!\n")); ++ DEBUG ((DEBUG_ERROR, "SmramProfileHandler: SMM communication buffer size invalid!\n")); + return EFI_SUCCESS; + } + ParameterRecordingState = (SMRAM_PROFILE_PARAMETER_RECORDING_STATE *) (UINTN) CommBuffer; +@@ -2327,9 +2327,9 @@ SmramProfileHandler ( + ParameterRecordingState->Header.ReturnStatus = 0; + break; + case SMRAM_PROFILE_COMMAND_SET_RECORDING_STATE: +- DEBUG ((EFI_D_ERROR, "SmramProfileHandlerSetRecordingState\n")); ++ DEBUG ((DEBUG_ERROR, "SmramProfileHandlerSetRecordingState\n")); + if (TempCommBufferSize != sizeof (SMRAM_PROFILE_PARAMETER_RECORDING_STATE)) { +- DEBUG ((EFI_D_ERROR, "SmramProfileHandler: SMM communication buffer size invalid!\n")); ++ DEBUG ((DEBUG_ERROR, "SmramProfileHandler: SMM communication buffer size invalid!\n")); + return EFI_SUCCESS; + } + ParameterRecordingState = (SMRAM_PROFILE_PARAMETER_RECORDING_STATE *) (UINTN) CommBuffer; +@@ -2350,7 +2350,7 @@ SmramProfileHandler ( + break; + } + +- DEBUG ((EFI_D_ERROR, "SmramProfileHandler Exit\n")); ++ DEBUG ((DEBUG_ERROR, "SmramProfileHandler Exit\n")); + + return EFI_SUCCESS; + } +@@ -2402,20 +2402,20 @@ DumpSmramRange ( + SmramProfileGettingStatus = mSmramProfileGettingStatus; + mSmramProfileGettingStatus = TRUE; + +- DEBUG ((EFI_D_INFO, "FullSmramRange address - 0x%08x\n", mFullSmramRanges)); ++ DEBUG ((DEBUG_INFO, "FullSmramRange address - 0x%08x\n", mFullSmramRanges)); + +- DEBUG ((EFI_D_INFO, "======= SmramProfile begin =======\n")); ++ DEBUG ((DEBUG_INFO, "======= SmramProfile begin =======\n")); + +- DEBUG ((EFI_D_INFO, "FullSmramRange:\n")); ++ DEBUG ((DEBUG_INFO, "FullSmramRange:\n")); + for (Index = 0; Index < mFullSmramRangeCount; Index++) { +- DEBUG ((EFI_D_INFO, " FullSmramRange (0x%x)\n", Index)); +- DEBUG ((EFI_D_INFO, " PhysicalStart - 0x%016lx\n", mFullSmramRanges[Index].PhysicalStart)); +- DEBUG ((EFI_D_INFO, " CpuStart - 0x%016lx\n", mFullSmramRanges[Index].CpuStart)); +- DEBUG ((EFI_D_INFO, " PhysicalSize - 0x%016lx\n", mFullSmramRanges[Index].PhysicalSize)); +- DEBUG ((EFI_D_INFO, " RegionState - 0x%016lx\n", mFullSmramRanges[Index].RegionState)); ++ DEBUG ((DEBUG_INFO, " FullSmramRange (0x%x)\n", Index)); ++ DEBUG ((DEBUG_INFO, " PhysicalStart - 0x%016lx\n", mFullSmramRanges[Index].PhysicalStart)); ++ DEBUG ((DEBUG_INFO, " CpuStart - 0x%016lx\n", mFullSmramRanges[Index].CpuStart)); ++ DEBUG ((DEBUG_INFO, " PhysicalSize - 0x%016lx\n", mFullSmramRanges[Index].PhysicalSize)); ++ DEBUG ((DEBUG_INFO, " RegionState - 0x%016lx\n", mFullSmramRanges[Index].RegionState)); + } + +- DEBUG ((EFI_D_INFO, "======= SmramProfile end =======\n")); ++ DEBUG ((DEBUG_INFO, "======= SmramProfile end =======\n")); + + mSmramProfileGettingStatus = SmramProfileGettingStatus; + } +@@ -2444,20 +2444,20 @@ DumpFreePagesList ( + SmramProfileGettingStatus = mSmramProfileGettingStatus; + mSmramProfileGettingStatus = TRUE; + +- DEBUG ((EFI_D_INFO, "======= SmramProfile begin =======\n")); ++ DEBUG ((DEBUG_INFO, "======= SmramProfile begin =======\n")); + +- DEBUG ((EFI_D_INFO, "FreePagesList:\n")); ++ DEBUG ((DEBUG_INFO, "FreePagesList:\n")); + FreePageList = &mSmmMemoryMap; + for (Node = FreePageList->BackLink, Index = 0; + Node != FreePageList; + Node = Node->BackLink, Index++) { + Pages = BASE_CR (Node, FREE_PAGE_LIST, Link); +- DEBUG ((EFI_D_INFO, " Index - 0x%x\n", Index)); +- DEBUG ((EFI_D_INFO, " PhysicalStart - 0x%016lx\n", (PHYSICAL_ADDRESS) (UINTN) Pages)); +- DEBUG ((EFI_D_INFO, " NumberOfPages - 0x%08x\n", Pages->NumberOfPages)); ++ DEBUG ((DEBUG_INFO, " Index - 0x%x\n", Index)); ++ DEBUG ((DEBUG_INFO, " PhysicalStart - 0x%016lx\n", (PHYSICAL_ADDRESS) (UINTN) Pages)); ++ DEBUG ((DEBUG_INFO, " NumberOfPages - 0x%08x\n", Pages->NumberOfPages)); + } + +- DEBUG ((EFI_D_INFO, "======= SmramProfile end =======\n")); ++ DEBUG ((DEBUG_INFO, "======= SmramProfile end =======\n")); + + mSmramProfileGettingStatus = SmramProfileGettingStatus; + } +@@ -2646,21 +2646,21 @@ DumpSmramProfile ( + mSmramProfileGettingStatus = TRUE; + + Context = &ContextData->Context; +- DEBUG ((EFI_D_INFO, "======= SmramProfile begin =======\n")); +- DEBUG ((EFI_D_INFO, "MEMORY_PROFILE_CONTEXT\n")); ++ DEBUG ((DEBUG_INFO, "======= SmramProfile begin =======\n")); ++ DEBUG ((DEBUG_INFO, "MEMORY_PROFILE_CONTEXT\n")); + +- DEBUG ((EFI_D_INFO, " CurrentTotalUsage - 0x%016lx\n", Context->CurrentTotalUsage)); +- DEBUG ((EFI_D_INFO, " PeakTotalUsage - 0x%016lx\n", Context->PeakTotalUsage)); ++ DEBUG ((DEBUG_INFO, " CurrentTotalUsage - 0x%016lx\n", Context->CurrentTotalUsage)); ++ DEBUG ((DEBUG_INFO, " PeakTotalUsage - 0x%016lx\n", Context->PeakTotalUsage)); + for (TypeIndex = 0; TypeIndex < sizeof (Context->CurrentTotalUsageByType) / sizeof (Context->CurrentTotalUsageByType[0]); TypeIndex++) { + if ((Context->CurrentTotalUsageByType[TypeIndex] != 0) || + (Context->PeakTotalUsageByType[TypeIndex] != 0)) { +- DEBUG ((EFI_D_INFO, " CurrentTotalUsage[0x%02x] - 0x%016lx (%a)\n", TypeIndex, Context->CurrentTotalUsageByType[TypeIndex], ProfileMemoryTypeToStr (TypeIndex))); +- DEBUG ((EFI_D_INFO, " PeakTotalUsage[0x%02x] - 0x%016lx (%a)\n", TypeIndex, Context->PeakTotalUsageByType[TypeIndex], ProfileMemoryTypeToStr (TypeIndex))); ++ DEBUG ((DEBUG_INFO, " CurrentTotalUsage[0x%02x] - 0x%016lx (%a)\n", TypeIndex, Context->CurrentTotalUsageByType[TypeIndex], ProfileMemoryTypeToStr (TypeIndex))); ++ DEBUG ((DEBUG_INFO, " PeakTotalUsage[0x%02x] - 0x%016lx (%a)\n", TypeIndex, Context->PeakTotalUsageByType[TypeIndex], ProfileMemoryTypeToStr (TypeIndex))); + } + } +- DEBUG ((EFI_D_INFO, " TotalImageSize - 0x%016lx\n", Context->TotalImageSize)); +- DEBUG ((EFI_D_INFO, " ImageCount - 0x%08x\n", Context->ImageCount)); +- DEBUG ((EFI_D_INFO, " SequenceCount - 0x%08x\n", Context->SequenceCount)); ++ DEBUG ((DEBUG_INFO, " TotalImageSize - 0x%016lx\n", Context->TotalImageSize)); ++ DEBUG ((DEBUG_INFO, " ImageCount - 0x%08x\n", Context->ImageCount)); ++ DEBUG ((DEBUG_INFO, " SequenceCount - 0x%08x\n", Context->SequenceCount)); + + SmramDriverInfoList = ContextData->DriverInfoList; + for (DriverLink = SmramDriverInfoList->ForwardLink, DriverIndex = 0; +@@ -2673,23 +2673,23 @@ DumpSmramProfile ( + MEMORY_PROFILE_DRIVER_INFO_SIGNATURE + ); + DriverInfo = &DriverInfoData->DriverInfo; +- DEBUG ((EFI_D_INFO, " MEMORY_PROFILE_DRIVER_INFO (0x%x)\n", DriverIndex)); +- DEBUG ((EFI_D_INFO, " FileName - %g\n", &DriverInfo->FileName)); +- DEBUG ((EFI_D_INFO, " ImageBase - 0x%016lx\n", DriverInfo->ImageBase)); +- DEBUG ((EFI_D_INFO, " ImageSize - 0x%016lx\n", DriverInfo->ImageSize)); +- DEBUG ((EFI_D_INFO, " EntryPoint - 0x%016lx\n", DriverInfo->EntryPoint)); +- DEBUG ((EFI_D_INFO, " ImageSubsystem - 0x%04x\n", DriverInfo->ImageSubsystem)); +- DEBUG ((EFI_D_INFO, " FileType - 0x%02x\n", DriverInfo->FileType)); +- DEBUG ((EFI_D_INFO, " CurrentUsage - 0x%016lx\n", DriverInfo->CurrentUsage)); +- DEBUG ((EFI_D_INFO, " PeakUsage - 0x%016lx\n", DriverInfo->PeakUsage)); ++ DEBUG ((DEBUG_INFO, " MEMORY_PROFILE_DRIVER_INFO (0x%x)\n", DriverIndex)); ++ DEBUG ((DEBUG_INFO, " FileName - %g\n", &DriverInfo->FileName)); ++ DEBUG ((DEBUG_INFO, " ImageBase - 0x%016lx\n", DriverInfo->ImageBase)); ++ DEBUG ((DEBUG_INFO, " ImageSize - 0x%016lx\n", DriverInfo->ImageSize)); ++ DEBUG ((DEBUG_INFO, " EntryPoint - 0x%016lx\n", DriverInfo->EntryPoint)); ++ DEBUG ((DEBUG_INFO, " ImageSubsystem - 0x%04x\n", DriverInfo->ImageSubsystem)); ++ DEBUG ((DEBUG_INFO, " FileType - 0x%02x\n", DriverInfo->FileType)); ++ DEBUG ((DEBUG_INFO, " CurrentUsage - 0x%016lx\n", DriverInfo->CurrentUsage)); ++ DEBUG ((DEBUG_INFO, " PeakUsage - 0x%016lx\n", DriverInfo->PeakUsage)); + for (TypeIndex = 0; TypeIndex < sizeof (DriverInfo->CurrentUsageByType) / sizeof (DriverInfo->CurrentUsageByType[0]); TypeIndex++) { + if ((DriverInfo->CurrentUsageByType[TypeIndex] != 0) || + (DriverInfo->PeakUsageByType[TypeIndex] != 0)) { +- DEBUG ((EFI_D_INFO, " CurrentUsage[0x%02x] - 0x%016lx (%a)\n", TypeIndex, DriverInfo->CurrentUsageByType[TypeIndex], ProfileMemoryTypeToStr (TypeIndex))); +- DEBUG ((EFI_D_INFO, " PeakUsage[0x%02x] - 0x%016lx (%a)\n", TypeIndex, DriverInfo->PeakUsageByType[TypeIndex], ProfileMemoryTypeToStr (TypeIndex))); ++ DEBUG ((DEBUG_INFO, " CurrentUsage[0x%02x] - 0x%016lx (%a)\n", TypeIndex, DriverInfo->CurrentUsageByType[TypeIndex], ProfileMemoryTypeToStr (TypeIndex))); ++ DEBUG ((DEBUG_INFO, " PeakUsage[0x%02x] - 0x%016lx (%a)\n", TypeIndex, DriverInfo->PeakUsageByType[TypeIndex], ProfileMemoryTypeToStr (TypeIndex))); + } + } +- DEBUG ((EFI_D_INFO, " AllocRecordCount - 0x%08x\n", DriverInfo->AllocRecordCount)); ++ DEBUG ((DEBUG_INFO, " AllocRecordCount - 0x%08x\n", DriverInfo->AllocRecordCount)); + + AllocInfoList = DriverInfoData->AllocInfoList; + for (AllocLink = AllocInfoList->ForwardLink, AllocIndex = 0; +@@ -2702,25 +2702,25 @@ DumpSmramProfile ( + MEMORY_PROFILE_ALLOC_INFO_SIGNATURE + ); + AllocInfo = &AllocInfoData->AllocInfo; +- DEBUG ((EFI_D_INFO, " MEMORY_PROFILE_ALLOC_INFO (0x%x)\n", AllocIndex)); +- DEBUG ((EFI_D_INFO, " CallerAddress - 0x%016lx (Offset: 0x%08x)\n", AllocInfo->CallerAddress, AllocInfo->CallerAddress - DriverInfo->ImageBase)); +- DEBUG ((EFI_D_INFO, " SequenceId - 0x%08x\n", AllocInfo->SequenceId)); ++ DEBUG ((DEBUG_INFO, " MEMORY_PROFILE_ALLOC_INFO (0x%x)\n", AllocIndex)); ++ DEBUG ((DEBUG_INFO, " CallerAddress - 0x%016lx (Offset: 0x%08x)\n", AllocInfo->CallerAddress, AllocInfo->CallerAddress - DriverInfo->ImageBase)); ++ DEBUG ((DEBUG_INFO, " SequenceId - 0x%08x\n", AllocInfo->SequenceId)); + if ((AllocInfo->Action & MEMORY_PROFILE_ACTION_USER_DEFINED_MASK) != 0) { + if (AllocInfoData->ActionString != NULL) { +- DEBUG ((EFI_D_INFO, " Action - 0x%08x (%a)\n", AllocInfo->Action, AllocInfoData->ActionString)); ++ DEBUG ((DEBUG_INFO, " Action - 0x%08x (%a)\n", AllocInfo->Action, AllocInfoData->ActionString)); + } else { +- DEBUG ((EFI_D_INFO, " Action - 0x%08x (UserDefined-0x%08x)\n", AllocInfo->Action, AllocInfo->Action)); ++ DEBUG ((DEBUG_INFO, " Action - 0x%08x (UserDefined-0x%08x)\n", AllocInfo->Action, AllocInfo->Action)); + } + } else { +- DEBUG ((EFI_D_INFO, " Action - 0x%08x (%a)\n", AllocInfo->Action, ProfileActionToStr (AllocInfo->Action))); ++ DEBUG ((DEBUG_INFO, " Action - 0x%08x (%a)\n", AllocInfo->Action, ProfileActionToStr (AllocInfo->Action))); + } +- DEBUG ((EFI_D_INFO, " MemoryType - 0x%08x (%a)\n", AllocInfo->MemoryType, ProfileMemoryTypeToStr (AllocInfo->MemoryType))); +- DEBUG ((EFI_D_INFO, " Buffer - 0x%016lx\n", AllocInfo->Buffer)); +- DEBUG ((EFI_D_INFO, " Size - 0x%016lx\n", AllocInfo->Size)); ++ DEBUG ((DEBUG_INFO, " MemoryType - 0x%08x (%a)\n", AllocInfo->MemoryType, ProfileMemoryTypeToStr (AllocInfo->MemoryType))); ++ DEBUG ((DEBUG_INFO, " Buffer - 0x%016lx\n", AllocInfo->Buffer)); ++ DEBUG ((DEBUG_INFO, " Size - 0x%016lx\n", AllocInfo->Size)); + } + } + +- DEBUG ((EFI_D_INFO, "======= SmramProfile end =======\n")); ++ DEBUG ((DEBUG_INFO, "======= SmramProfile end =======\n")); + + mSmramProfileGettingStatus = SmramProfileGettingStatus; + } +@@ -2743,4 +2743,3 @@ DumpSmramInfo ( + } + ); + } +- +diff --git a/MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootOption.c b/MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootOption.c +index 53f0ef3d19..45d0fbb8a1 100644 +--- a/MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootOption.c ++++ b/MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootOption.c +@@ -611,7 +611,7 @@ BOpt_GetOptionNumber ( + continue; + } + UnicodeSPrint (StrTemp, sizeof (StrTemp), L"%s%04x", Type, (UINTN) OptionNumber); +- DEBUG((EFI_D_ERROR,"Option = %s\n", StrTemp)); ++ DEBUG((DEBUG_ERROR,"Option = %s\n", StrTemp)); + GetEfiGlobalVariable2 (StrTemp, (VOID **) &OptionBuffer, &OptionSize); + if (NULL == OptionBuffer) { + // +@@ -1002,4 +1002,3 @@ CreateDriverOptionFromFile ( + { + return ReSendForm(FilePath, FORM_DRV_ADD_FILE_ID); + } +- +diff --git a/MdeModulePkg/Library/BootManagerUiLib/BootManager.c b/MdeModulePkg/Library/BootManagerUiLib/BootManager.c +index 4b2c4c77a1..e378ac52b5 100644 +--- a/MdeModulePkg/Library/BootManagerUiLib/BootManager.c ++++ b/MdeModulePkg/Library/BootManagerUiLib/BootManager.c +@@ -380,7 +380,7 @@ GroupMultipleLegacyBootOption4SameType ( + // + // Legacy Boot Option + // +- DEBUG ((EFI_D_ERROR, "[BootManagerDxe] ==== Find Legacy Boot Option 0x%x! ==== \n", Index)); ++ DEBUG ((DEBUG_ERROR, "[BootManagerDxe] ==== Find Legacy Boot Option 0x%x! ==== \n", Index)); + ASSERT ((((BBS_BBS_DEVICE_PATH *) BootOption.FilePath)->DeviceType & 0xF) < ARRAY_SIZE (DeviceTypeIndex)); + NextIndex = &DeviceTypeIndex[((BBS_BBS_DEVICE_PATH *) BootOption.FilePath)->DeviceType & 0xF]; + +@@ -926,4 +926,3 @@ BootManagerUiLibDestructor ( + + return EFI_SUCCESS; + } +- +diff --git a/MdeModulePkg/Library/DxeIpmiLibIpmiProtocol/DxeIpmiLibIpmiProtocol.c b/MdeModulePkg/Library/DxeIpmiLibIpmiProtocol/DxeIpmiLibIpmiProtocol.c +index 22b96b05da..0ee7095aba 100644 +--- a/MdeModulePkg/Library/DxeIpmiLibIpmiProtocol/DxeIpmiLibIpmiProtocol.c ++++ b/MdeModulePkg/Library/DxeIpmiLibIpmiProtocol/DxeIpmiLibIpmiProtocol.c +@@ -54,7 +54,7 @@ IpmiSubmitCommand ( + // + // Dxe Ipmi Protocol is not installed. So, IPMI device is not present. + // +- DEBUG ((EFI_D_ERROR, "IpmiSubmitCommand in Dxe Phase under SMS Status - %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "IpmiSubmitCommand in Dxe Phase under SMS Status - %r\n", Status)); + return EFI_NOT_FOUND; + } + } +diff --git a/MdeModulePkg/Library/FrameBufferBltLib/FrameBufferBltLib.c b/MdeModulePkg/Library/FrameBufferBltLib/FrameBufferBltLib.c +index ff7979c962..a71221d7de 100644 +--- a/MdeModulePkg/Library/FrameBufferBltLib/FrameBufferBltLib.c ++++ b/MdeModulePkg/Library/FrameBufferBltLib/FrameBufferBltLib.c +@@ -209,17 +209,17 @@ FrameBufferBltLibVideoFill ( + // BltBuffer to Video: Source is BltBuffer, destination is Video + // + if (DestinationY + Height > Configure->Height) { +- DEBUG ((EFI_D_VERBOSE, "VideoFill: Past screen (Y)\n")); ++ DEBUG ((DEBUG_VERBOSE, "VideoFill: Past screen (Y)\n")); + return RETURN_INVALID_PARAMETER; + } + + if (DestinationX + Width > Configure->Width) { +- DEBUG ((EFI_D_VERBOSE, "VideoFill: Past screen (X)\n")); ++ DEBUG ((DEBUG_VERBOSE, "VideoFill: Past screen (X)\n")); + return RETURN_INVALID_PARAMETER; + } + + if (Width == 0 || Height == 0) { +- DEBUG ((EFI_D_VERBOSE, "VideoFill: Width or Height is 0\n")); ++ DEBUG ((DEBUG_VERBOSE, "VideoFill: Width or Height is 0\n")); + return RETURN_INVALID_PARAMETER; + } + +@@ -235,7 +235,7 @@ FrameBufferBltLibVideoFill ( + (((Uint32 << Configure->PixelShl[2]) >> Configure->PixelShr[2]) & + Configure->PixelMasks.BlueMask) + ); +- DEBUG ((EFI_D_VERBOSE, "VideoFill: color=0x%x, wide-fill=0x%x\n", ++ DEBUG ((DEBUG_VERBOSE, "VideoFill: color=0x%x, wide-fill=0x%x\n", + Uint32, WideFill)); + + // +@@ -267,7 +267,7 @@ FrameBufferBltLibVideoFill ( + } + + if (UseWideFill && (DestinationX == 0) && (Width == Configure->PixelsPerScanLine)) { +- DEBUG ((EFI_D_VERBOSE, "VideoFill (wide, one-shot)\n")); ++ DEBUG ((DEBUG_VERBOSE, "VideoFill (wide, one-shot)\n")); + Offset = DestinationY * Configure->PixelsPerScanLine; + Offset = Configure->BytesPerPixel * Offset; + Destination = Configure->FrameBuffer + Offset; +@@ -288,7 +288,7 @@ FrameBufferBltLibVideoFill ( + Destination = Configure->FrameBuffer + Offset; + + if (UseWideFill && (((UINTN) Destination & 7) == 0)) { +- DEBUG ((EFI_D_VERBOSE, "VideoFill (wide)\n")); ++ DEBUG ((DEBUG_VERBOSE, "VideoFill (wide)\n")); + SizeInBytes = WidthInBytes; + if (SizeInBytes >= 8) { + SetMem64 (Destination, SizeInBytes & ~7, WideFill); +@@ -299,7 +299,7 @@ FrameBufferBltLibVideoFill ( + CopyMem (Destination, &WideFill, SizeInBytes); + } + } else { +- DEBUG ((EFI_D_VERBOSE, "VideoFill (not wide)\n")); ++ DEBUG ((DEBUG_VERBOSE, "VideoFill (not wide)\n")); + if (!LineBufferReady) { + CopyMem (Configure->LineBuffer, &WideFill, Configure->BytesPerPixel); + for (IndexX = 1; IndexX < Width; ) { +diff --git a/MdeModulePkg/Library/PciHostBridgeLibNull/PciHostBridgeLibNull.c b/MdeModulePkg/Library/PciHostBridgeLibNull/PciHostBridgeLibNull.c +index 0bf07e3492..0b86ef3ad5 100644 +--- a/MdeModulePkg/Library/PciHostBridgeLibNull/PciHostBridgeLibNull.c ++++ b/MdeModulePkg/Library/PciHostBridgeLibNull/PciHostBridgeLibNull.c +@@ -73,24 +73,24 @@ PciHostBridgeResourceConflict ( + { + EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR *Descriptor; + UINTN RootBridgeIndex; +- DEBUG ((EFI_D_ERROR, "PciHostBridge: Resource conflict happens!\n")); ++ DEBUG ((DEBUG_ERROR, "PciHostBridge: Resource conflict happens!\n")); + + RootBridgeIndex = 0; + Descriptor = (EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR *) Configuration; + while (Descriptor->Desc == ACPI_ADDRESS_SPACE_DESCRIPTOR) { +- DEBUG ((EFI_D_ERROR, "RootBridge[%d]:\n", RootBridgeIndex++)); ++ DEBUG ((DEBUG_ERROR, "RootBridge[%d]:\n", RootBridgeIndex++)); + for (; Descriptor->Desc == ACPI_ADDRESS_SPACE_DESCRIPTOR; Descriptor++) { + ASSERT (Descriptor->ResType < + (sizeof (mPciHostBridgeLibAcpiAddressSpaceTypeStr) / + sizeof (mPciHostBridgeLibAcpiAddressSpaceTypeStr[0]) + ) + ); +- DEBUG ((EFI_D_ERROR, " %s: Length/Alignment = 0x%lx / 0x%lx\n", ++ DEBUG ((DEBUG_ERROR, " %s: Length/Alignment = 0x%lx / 0x%lx\n", + mPciHostBridgeLibAcpiAddressSpaceTypeStr[Descriptor->ResType], + Descriptor->AddrLen, Descriptor->AddrRangeMax + )); + if (Descriptor->ResType == ACPI_ADDRESS_SPACE_TYPE_MEM) { +- DEBUG ((EFI_D_ERROR, " Granularity/SpecificFlag = %ld / %02x%s\n", ++ DEBUG ((DEBUG_ERROR, " Granularity/SpecificFlag = %ld / %02x%s\n", + Descriptor->AddrSpaceGranularity, Descriptor->SpecificFlag, + ((Descriptor->SpecificFlag & + EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_CACHEABLE_PREFETCHABLE +diff --git a/MdeModulePkg/Library/PeiIpmiLibIpmiPpi/PeiIpmiLibIpmiPpi.c b/MdeModulePkg/Library/PeiIpmiLibIpmiPpi/PeiIpmiLibIpmiPpi.c +index fa6b30905f..648af08761 100644 +--- a/MdeModulePkg/Library/PeiIpmiLibIpmiPpi/PeiIpmiLibIpmiPpi.c ++++ b/MdeModulePkg/Library/PeiIpmiLibIpmiPpi/PeiIpmiLibIpmiPpi.c +@@ -55,7 +55,7 @@ IpmiSubmitCommand ( + // + // Ipmi Ppi is not installed. So, IPMI device is not present. + // +- DEBUG ((EFI_D_ERROR, "IpmiSubmitCommand in Pei Phase under SMS Status - %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "IpmiSubmitCommand in Pei Phase under SMS Status - %r\n", Status)); + return EFI_NOT_FOUND; + } + +diff --git a/MdeModulePkg/Library/PeiReportStatusCodeLib/ReportStatusCodeLib.c b/MdeModulePkg/Library/PeiReportStatusCodeLib/ReportStatusCodeLib.c +index 5ea2760dd5..43b4d49d30 100644 +--- a/MdeModulePkg/Library/PeiReportStatusCodeLib/ReportStatusCodeLib.c ++++ b/MdeModulePkg/Library/PeiReportStatusCodeLib/ReportStatusCodeLib.c +@@ -468,7 +468,7 @@ ReportStatusCodeEx ( + // The local variable Buffer not large enough to hold the extended data associated + // with the status code being reported. + // +- DEBUG ((EFI_D_ERROR, "Status code extended data is too large to be reported!\n")); ++ DEBUG ((DEBUG_ERROR, "Status code extended data is too large to be reported!\n")); + return EFI_OUT_OF_RESOURCES; + } + StatusCodeData = (EFI_STATUS_CODE_DATA *) Buffer; +diff --git a/MdeModulePkg/Library/PiDxeS3BootScriptLib/BootScriptExecute.c b/MdeModulePkg/Library/PiDxeS3BootScriptLib/BootScriptExecute.c +index 038dd20b90..f7fb787cd5 100644 +--- a/MdeModulePkg/Library/PiDxeS3BootScriptLib/BootScriptExecute.c ++++ b/MdeModulePkg/Library/PiDxeS3BootScriptLib/BootScriptExecute.c +@@ -62,51 +62,51 @@ InternalSmbusExecute ( + + switch (Operation) { + case EfiSmbusQuickRead: +- DEBUG ((EFI_D_INFO, "EfiSmbusQuickRead - 0x%08x\n", SmbusAddress)); ++ DEBUG ((DEBUG_INFO, "EfiSmbusQuickRead - 0x%08x\n", SmbusAddress)); + SmBusQuickRead (SmbusAddress, &Status); + break; + case EfiSmbusQuickWrite: +- DEBUG ((EFI_D_INFO, "EfiSmbusQuickWrite - 0x%08x\n", SmbusAddress)); ++ DEBUG ((DEBUG_INFO, "EfiSmbusQuickWrite - 0x%08x\n", SmbusAddress)); + SmBusQuickWrite (SmbusAddress, &Status); + break; + case EfiSmbusReceiveByte: +- DEBUG ((EFI_D_INFO, "EfiSmbusReceiveByte - 0x%08x\n", SmbusAddress)); ++ DEBUG ((DEBUG_INFO, "EfiSmbusReceiveByte - 0x%08x\n", SmbusAddress)); + SmBusReceiveByte (SmbusAddress, &Status); + break; + case EfiSmbusSendByte: +- DEBUG ((EFI_D_INFO, "EfiSmbusSendByte - 0x%08x (0x%02x)\n", SmbusAddress, (UINTN)*(UINT8 *) Buffer)); ++ DEBUG ((DEBUG_INFO, "EfiSmbusSendByte - 0x%08x (0x%02x)\n", SmbusAddress, (UINTN)*(UINT8 *) Buffer)); + SmBusSendByte (SmbusAddress, *(UINT8 *) Buffer, &Status); + break; + case EfiSmbusReadByte: +- DEBUG ((EFI_D_INFO, "EfiSmbusReadByte - 0x%08x\n", SmbusAddress)); ++ DEBUG ((DEBUG_INFO, "EfiSmbusReadByte - 0x%08x\n", SmbusAddress)); + SmBusReadDataByte (SmbusAddress, &Status); + break; + case EfiSmbusWriteByte: +- DEBUG ((EFI_D_INFO, "EfiSmbusWriteByte - 0x%08x (0x%02x)\n", SmbusAddress, (UINTN)*(UINT8 *) Buffer)); ++ DEBUG ((DEBUG_INFO, "EfiSmbusWriteByte - 0x%08x (0x%02x)\n", SmbusAddress, (UINTN)*(UINT8 *) Buffer)); + SmBusWriteDataByte (SmbusAddress, *(UINT8 *) Buffer, &Status); + break; + case EfiSmbusReadWord: +- DEBUG ((EFI_D_INFO, "EfiSmbusReadWord - 0x%08x\n", SmbusAddress)); ++ DEBUG ((DEBUG_INFO, "EfiSmbusReadWord - 0x%08x\n", SmbusAddress)); + SmBusReadDataWord (SmbusAddress, &Status); + break; + case EfiSmbusWriteWord: +- DEBUG ((EFI_D_INFO, "EfiSmbusWriteWord - 0x%08x (0x%04x)\n", SmbusAddress, (UINTN)*(UINT16 *) Buffer)); ++ DEBUG ((DEBUG_INFO, "EfiSmbusWriteWord - 0x%08x (0x%04x)\n", SmbusAddress, (UINTN)*(UINT16 *) Buffer)); + SmBusWriteDataWord (SmbusAddress, *(UINT16 *) Buffer, &Status); + break; + case EfiSmbusProcessCall: +- DEBUG ((EFI_D_INFO, "EfiSmbusProcessCall - 0x%08x (0x%04x)\n", SmbusAddress, (UINTN)*(UINT16 *) Buffer)); ++ DEBUG ((DEBUG_INFO, "EfiSmbusProcessCall - 0x%08x (0x%04x)\n", SmbusAddress, (UINTN)*(UINT16 *) Buffer)); + SmBusProcessCall (SmbusAddress, *(UINT16 *) Buffer, &Status); + break; + case EfiSmbusReadBlock: +- DEBUG ((EFI_D_INFO, "EfiSmbusReadBlock - 0x%08x\n", SmbusAddress)); ++ DEBUG ((DEBUG_INFO, "EfiSmbusReadBlock - 0x%08x\n", SmbusAddress)); + SmBusReadBlock (SmbusAddress, WorkBuffer, &Status); + break; + case EfiSmbusWriteBlock: +- DEBUG ((EFI_D_INFO, "EfiSmbusWriteBlock - 0x%08x\n", SmbusAddress)); ++ DEBUG ((DEBUG_INFO, "EfiSmbusWriteBlock - 0x%08x\n", SmbusAddress)); + SmBusWriteBlock ((SmbusAddress + SMBUS_LIB_ADDRESS (0, 0, (*Length), FALSE)), Buffer, &Status); + break; + case EfiSmbusBWBRProcessCall: +- DEBUG ((EFI_D_INFO, "EfiSmbusBWBRProcessCall - 0x%08x\n", SmbusAddress)); ++ DEBUG ((DEBUG_INFO, "EfiSmbusBWBRProcessCall - 0x%08x\n", SmbusAddress)); + SmBusBlockProcessCall ((SmbusAddress + SMBUS_LIB_ADDRESS (0, 0, (*Length), FALSE)), Buffer, WorkBuffer, &Status); + break; + default: +@@ -206,54 +206,54 @@ ScriptIoRead ( + switch (Width) { + + case S3BootScriptWidthUint8: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthUint8 - 0x%08x\n", (UINTN) Address)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthUint8 - 0x%08x\n", (UINTN) Address)); + *Out.Uint8 = IoRead8 ((UINTN) Address); + break; + case S3BootScriptWidthFifoUint8: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthFifoUint8 - 0x%08x\n", (UINTN) Address)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthFifoUint8 - 0x%08x\n", (UINTN) Address)); + *Out.Uint8 = IoRead8 ((UINTN) Address); + break; + case S3BootScriptWidthFillUint8: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthFillUint8 - 0x%08x\n", (UINTN) Address)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthFillUint8 - 0x%08x\n", (UINTN) Address)); + *Out.Uint8 = IoRead8 ((UINTN) Address); + break; + + case S3BootScriptWidthUint16: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthUint16 - 0x%08x\n", (UINTN) Address)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthUint16 - 0x%08x\n", (UINTN) Address)); + *Out.Uint16 = IoRead16 ((UINTN) Address); + break; + case S3BootScriptWidthFifoUint16: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthFifoUint16 - 0x%08x\n", (UINTN) Address)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthFifoUint16 - 0x%08x\n", (UINTN) Address)); + *Out.Uint16 = IoRead16 ((UINTN) Address); + break; + case S3BootScriptWidthFillUint16: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthFillUint16 - 0x%08x\n", (UINTN) Address)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthFillUint16 - 0x%08x\n", (UINTN) Address)); + *Out.Uint16 = IoRead16 ((UINTN) Address); + break; + + case S3BootScriptWidthUint32: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthUint32 - 0x%08x\n", (UINTN) Address)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthUint32 - 0x%08x\n", (UINTN) Address)); + *Out.Uint32 = IoRead32 ((UINTN) Address); + break; + case S3BootScriptWidthFifoUint32: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthFifoUint32 - 0x%08x\n", (UINTN) Address)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthFifoUint32 - 0x%08x\n", (UINTN) Address)); + *Out.Uint32 = IoRead32 ((UINTN) Address); + break; + case S3BootScriptWidthFillUint32: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthFillUint32 - 0x%08x\n", (UINTN) Address)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthFillUint32 - 0x%08x\n", (UINTN) Address)); + *Out.Uint32 = IoRead32 ((UINTN) Address); + break; + + case S3BootScriptWidthUint64: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthUint64 - 0x%08x\n", (UINTN) Address)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthUint64 - 0x%08x\n", (UINTN) Address)); + *Out.Uint64 = IoRead64 ((UINTN) Address); + break; + case S3BootScriptWidthFifoUint64: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthFifoUint64 - 0x%08x\n", (UINTN) Address)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthFifoUint64 - 0x%08x\n", (UINTN) Address)); + *Out.Uint64 = IoRead64 ((UINTN) Address); + break; + case S3BootScriptWidthFillUint64: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthFillUint64 - 0x%08x\n", (UINTN) Address)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthFillUint64 - 0x%08x\n", (UINTN) Address)); + *Out.Uint64 = IoRead64 ((UINTN) Address); + break; + +@@ -313,51 +313,51 @@ ScriptIoWrite ( + for (; Count > 0; Count--, Address += AddressStride, In.Buf += BufferStride) { + switch (Width) { + case S3BootScriptWidthUint8: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthUint8 - 0x%08x (0x%02x)\n", (UINTN)Address, (UINTN)*In.Uint8)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthUint8 - 0x%08x (0x%02x)\n", (UINTN)Address, (UINTN)*In.Uint8)); + IoWrite8 ((UINTN) Address, *In.Uint8); + break; + case S3BootScriptWidthFifoUint8: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthFifoUint8 - 0x%08x (0x%02x)\n", (UINTN)OriginalAddress, (UINTN)*In.Uint8)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthFifoUint8 - 0x%08x (0x%02x)\n", (UINTN)OriginalAddress, (UINTN)*In.Uint8)); + IoWrite8 ((UINTN) OriginalAddress, *In.Uint8); + break; + case S3BootScriptWidthFillUint8: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthFillUint8 - 0x%08x (0x%02x)\n", (UINTN)Address, (UINTN)*OriginalIn.Uint8)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthFillUint8 - 0x%08x (0x%02x)\n", (UINTN)Address, (UINTN)*OriginalIn.Uint8)); + IoWrite8 ((UINTN) Address, *OriginalIn.Uint8); + break; + case S3BootScriptWidthUint16: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthUint16 - 0x%08x (0x%04x)\n", (UINTN)Address, (UINTN)*In.Uint16)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthUint16 - 0x%08x (0x%04x)\n", (UINTN)Address, (UINTN)*In.Uint16)); + IoWrite16 ((UINTN) Address, *In.Uint16); + break; + case S3BootScriptWidthFifoUint16: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthFifoUint16 - 0x%08x (0x%04x)\n", (UINTN)OriginalAddress, (UINTN)*In.Uint16)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthFifoUint16 - 0x%08x (0x%04x)\n", (UINTN)OriginalAddress, (UINTN)*In.Uint16)); + IoWrite16 ((UINTN) OriginalAddress, *In.Uint16); + break; + case S3BootScriptWidthFillUint16: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthFillUint16 - 0x%08x (0x%04x)\n", (UINTN)Address, (UINTN)*OriginalIn.Uint16)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthFillUint16 - 0x%08x (0x%04x)\n", (UINTN)Address, (UINTN)*OriginalIn.Uint16)); + IoWrite16 ((UINTN) Address, *OriginalIn.Uint16); + break; + case S3BootScriptWidthUint32: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthUint32 - 0x%08x (0x%08x)\n", (UINTN)Address, (UINTN)*In.Uint32)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthUint32 - 0x%08x (0x%08x)\n", (UINTN)Address, (UINTN)*In.Uint32)); + IoWrite32 ((UINTN) Address, *In.Uint32); + break; + case S3BootScriptWidthFifoUint32: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthFifoUint32 - 0x%08x (0x%08x)\n", (UINTN)OriginalAddress, (UINTN)*In.Uint32)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthFifoUint32 - 0x%08x (0x%08x)\n", (UINTN)OriginalAddress, (UINTN)*In.Uint32)); + IoWrite32 ((UINTN) OriginalAddress, *In.Uint32); + break; + case S3BootScriptWidthFillUint32: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthFillUint32 - 0x%08x (0x%08x)\n", (UINTN)Address, (UINTN)*OriginalIn.Uint32)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthFillUint32 - 0x%08x (0x%08x)\n", (UINTN)Address, (UINTN)*OriginalIn.Uint32)); + IoWrite32 ((UINTN) Address, *OriginalIn.Uint32); + break; + case S3BootScriptWidthUint64: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthUint64 - 0x%08x (0x%016lx)\n", (UINTN)Address, *In.Uint64)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthUint64 - 0x%08x (0x%016lx)\n", (UINTN)Address, *In.Uint64)); + IoWrite64 ((UINTN) Address, *In.Uint64); + break; + case S3BootScriptWidthFifoUint64: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthFifoUint64 - 0x%08x (0x%016lx)\n", (UINTN)OriginalAddress, *In.Uint64)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthFifoUint64 - 0x%08x (0x%016lx)\n", (UINTN)OriginalAddress, *In.Uint64)); + IoWrite64 ((UINTN) OriginalAddress, *In.Uint64); + break; + case S3BootScriptWidthFillUint64: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthFillUint64 - 0x%08x (0x%016lx)\n", (UINTN)Address, *OriginalIn.Uint64)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthFillUint64 - 0x%08x (0x%016lx)\n", (UINTN)Address, *OriginalIn.Uint64)); + IoWrite64 ((UINTN) Address, *OriginalIn.Uint64); + break; + default: +@@ -397,7 +397,7 @@ BootScriptExecuteIoWrite ( + Count = IoWrite.Count; + Buffer = Script + sizeof (EFI_BOOT_SCRIPT_IO_WRITE); + +- DEBUG ((EFI_D_INFO, "BootScriptExecuteIoWrite - 0x%08x, 0x%08x, 0x%08x\n", (UINTN)Address, Count, (UINTN)Width)); ++ DEBUG ((DEBUG_INFO, "BootScriptExecuteIoWrite - 0x%08x, 0x%08x, 0x%08x\n", (UINTN)Address, Count, (UINTN)Width)); + return ScriptIoWrite(Width, Address, Count, Buffer); + } + /** +@@ -441,54 +441,54 @@ ScriptMemoryRead ( + for (; Count > 0; Count--, Address += AddressStride, Out.Buf += BufferStride) { + switch (Width) { + case S3BootScriptWidthUint8: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthUint8 - 0x%08x\n", (UINTN)Address)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthUint8 - 0x%08x\n", (UINTN)Address)); + *Out.Uint8 = MmioRead8 ((UINTN) Address); + break; + case S3BootScriptWidthFifoUint8: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthFifoUint8 - 0x%08x\n", (UINTN)Address)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthFifoUint8 - 0x%08x\n", (UINTN)Address)); + *Out.Uint8 = MmioRead8 ((UINTN) Address); + break; + case S3BootScriptWidthFillUint8: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthFillUint8 - 0x%08x\n", (UINTN)Address)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthFillUint8 - 0x%08x\n", (UINTN)Address)); + *Out.Uint8 = MmioRead8 ((UINTN) Address); + break; + + case S3BootScriptWidthUint16: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthUint16 - 0x%08x\n", (UINTN)Address)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthUint16 - 0x%08x\n", (UINTN)Address)); + *Out.Uint16 = MmioRead16 ((UINTN) Address); + break; + case S3BootScriptWidthFifoUint16: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthFifoUint16 - 0x%08x\n", (UINTN)Address)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthFifoUint16 - 0x%08x\n", (UINTN)Address)); + *Out.Uint16 = MmioRead16 ((UINTN) Address); + break; + case S3BootScriptWidthFillUint16: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthFillUint16 - 0x%08x\n", (UINTN)Address)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthFillUint16 - 0x%08x\n", (UINTN)Address)); + *Out.Uint16 = MmioRead16 ((UINTN) Address); + break; + + case S3BootScriptWidthUint32: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthUint32 - 0x%08x\n", (UINTN)Address)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthUint32 - 0x%08x\n", (UINTN)Address)); + *Out.Uint32 = MmioRead32 ((UINTN) Address); + break; + case S3BootScriptWidthFifoUint32: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthFifoUint32 - 0x%08x\n", (UINTN)Address)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthFifoUint32 - 0x%08x\n", (UINTN)Address)); + *Out.Uint32 = MmioRead32 ((UINTN) Address); + break; + case S3BootScriptWidthFillUint32: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthFillUint32 - 0x%08x\n", (UINTN)Address)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthFillUint32 - 0x%08x\n", (UINTN)Address)); + *Out.Uint32 = MmioRead32 ((UINTN) Address); + break; + + case S3BootScriptWidthUint64: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthUint64 - 0x%08x\n", (UINTN)Address)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthUint64 - 0x%08x\n", (UINTN)Address)); + *Out.Uint64 = MmioRead64 ((UINTN) Address); + break; + case S3BootScriptWidthFifoUint64: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthFifoUint64 - 0x%08x\n", (UINTN)Address)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthFifoUint64 - 0x%08x\n", (UINTN)Address)); + *Out.Uint64 = MmioRead64 ((UINTN) Address); + break; + case S3BootScriptWidthFillUint64: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthFillUint64 - 0x%08x\n", (UINTN)Address)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthFillUint64 - 0x%08x\n", (UINTN)Address)); + *Out.Uint64 = MmioRead64 ((UINTN) Address); + break; + +@@ -544,51 +544,51 @@ ScriptMemoryWrite ( + for (; Count > 0; Count--, Address += AddressStride, In.Buf += BufferStride) { + switch (Width) { + case S3BootScriptWidthUint8: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthUint8 - 0x%08x (0x%02x)\n", (UINTN)Address, (UINTN)*In.Uint8)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthUint8 - 0x%08x (0x%02x)\n", (UINTN)Address, (UINTN)*In.Uint8)); + MmioWrite8 ((UINTN) Address, *In.Uint8); + break; + case S3BootScriptWidthFifoUint8: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthFifoUint8 - 0x%08x (0x%02x)\n", (UINTN)OriginalAddress, (UINTN)*In.Uint8)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthFifoUint8 - 0x%08x (0x%02x)\n", (UINTN)OriginalAddress, (UINTN)*In.Uint8)); + MmioWrite8 ((UINTN) OriginalAddress, *In.Uint8); + break; + case S3BootScriptWidthFillUint8: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthFillUint8 - 0x%08x (0x%02x)\n", (UINTN)Address, (UINTN)*OriginalIn.Uint8)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthFillUint8 - 0x%08x (0x%02x)\n", (UINTN)Address, (UINTN)*OriginalIn.Uint8)); + MmioWrite8 ((UINTN) Address, *OriginalIn.Uint8); + break; + case S3BootScriptWidthUint16: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthUint16 - 0x%08x (0x%04x)\n", (UINTN)Address, (UINTN)*In.Uint16)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthUint16 - 0x%08x (0x%04x)\n", (UINTN)Address, (UINTN)*In.Uint16)); + MmioWrite16 ((UINTN) Address, *In.Uint16); + break; + case S3BootScriptWidthFifoUint16: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthFifoUint16 - 0x%08x (0x%04x)\n", (UINTN)OriginalAddress, (UINTN)*In.Uint16)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthFifoUint16 - 0x%08x (0x%04x)\n", (UINTN)OriginalAddress, (UINTN)*In.Uint16)); + MmioWrite16 ((UINTN) OriginalAddress, *In.Uint16); + break; + case S3BootScriptWidthFillUint16: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthFillUint16 - 0x%08x (0x%04x)\n", (UINTN)Address, (UINTN)*OriginalIn.Uint16)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthFillUint16 - 0x%08x (0x%04x)\n", (UINTN)Address, (UINTN)*OriginalIn.Uint16)); + MmioWrite16 ((UINTN) Address, *OriginalIn.Uint16); + break; + case S3BootScriptWidthUint32: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthUint32 - 0x%08x (0x%08x)\n", (UINTN)Address, (UINTN)*In.Uint32)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthUint32 - 0x%08x (0x%08x)\n", (UINTN)Address, (UINTN)*In.Uint32)); + MmioWrite32 ((UINTN) Address, *In.Uint32); + break; + case S3BootScriptWidthFifoUint32: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthFifoUint32 - 0x%08x (0x%08x)\n", (UINTN)OriginalAddress, (UINTN)*In.Uint32)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthFifoUint32 - 0x%08x (0x%08x)\n", (UINTN)OriginalAddress, (UINTN)*In.Uint32)); + MmioWrite32 ((UINTN) OriginalAddress, *In.Uint32); + break; + case S3BootScriptWidthFillUint32: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthFillUint32 - 0x%08x (0x%08x)\n", (UINTN)Address, (UINTN)*OriginalIn.Uint32)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthFillUint32 - 0x%08x (0x%08x)\n", (UINTN)Address, (UINTN)*OriginalIn.Uint32)); + MmioWrite32 ((UINTN) Address, *OriginalIn.Uint32); + break; + case S3BootScriptWidthUint64: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthUint64 - 0x%08x (0x%016lx)\n", (UINTN)Address, *In.Uint64)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthUint64 - 0x%08x (0x%016lx)\n", (UINTN)Address, *In.Uint64)); + MmioWrite64 ((UINTN) Address, *In.Uint64); + break; + case S3BootScriptWidthFifoUint64: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthFifoUint64 - 0x%08x (0x%016lx)\n", (UINTN)OriginalAddress, *In.Uint64)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthFifoUint64 - 0x%08x (0x%016lx)\n", (UINTN)OriginalAddress, *In.Uint64)); + MmioWrite64 ((UINTN) OriginalAddress, *In.Uint64); + break; + case S3BootScriptWidthFillUint64: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthFillUint64 - 0x%08x (0x%016lx)\n", (UINTN)Address, *OriginalIn.Uint64)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthFillUint64 - 0x%08x (0x%016lx)\n", (UINTN)Address, *OriginalIn.Uint64)); + MmioWrite64 ((UINTN) Address, *OriginalIn.Uint64); + break; + default: +@@ -627,7 +627,7 @@ BootScriptExecuteMemoryWrite ( + Count = MemWrite.Count; + Buffer = Script + sizeof(EFI_BOOT_SCRIPT_MEM_WRITE); + +- DEBUG ((EFI_D_INFO, "BootScriptExecuteMemoryWrite - 0x%08x, 0x%08x, 0x%08x\n", (UINTN)Address, Count, (UINTN)Width)); ++ DEBUG ((DEBUG_INFO, "BootScriptExecuteMemoryWrite - 0x%08x, 0x%08x, 0x%08x\n", (UINTN)Address, Count, (UINTN)Width)); + return ScriptMemoryWrite (Width,Address, Count, Buffer); + + } +@@ -674,41 +674,41 @@ ScriptPciCfg2Read ( + for (; Count > 0; Count--, PciAddress += AddressStride, Out.Buf += BufferStride) { + switch (Width) { + case S3BootScriptWidthUint8: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthUint8 - 0x%016lx\n", PciAddress)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthUint8 - 0x%016lx\n", PciAddress)); + *Out.Uint8 = PciSegmentRead8 (PciAddress); + break; + case S3BootScriptWidthFifoUint8: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthFifoUint8 - 0x%016lx\n", PciAddress)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthFifoUint8 - 0x%016lx\n", PciAddress)); + *Out.Uint8 = PciSegmentRead8 (PciAddress); + break; + case S3BootScriptWidthFillUint8: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthFillUint8 - 0x%016lx\n", PciAddress)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthFillUint8 - 0x%016lx\n", PciAddress)); + *Out.Uint8 = PciSegmentRead8 (PciAddress); + break; + + case S3BootScriptWidthUint16: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthUint16 - 0x%016lx\n", PciAddress)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthUint16 - 0x%016lx\n", PciAddress)); + *Out.Uint16 = PciSegmentRead16 (PciAddress); + break; + case S3BootScriptWidthFifoUint16: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthFifoUint16 - 0x%016lx\n", PciAddress)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthFifoUint16 - 0x%016lx\n", PciAddress)); + *Out.Uint16 = PciSegmentRead16 (PciAddress); + break; + case S3BootScriptWidthFillUint16: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthFillUint16 - 0x%016lx\n", PciAddress)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthFillUint16 - 0x%016lx\n", PciAddress)); + *Out.Uint16 = PciSegmentRead16 (PciAddress); + break; + + case S3BootScriptWidthUint32: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthUint32 - 0x%016lx\n", PciAddress)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthUint32 - 0x%016lx\n", PciAddress)); + *Out.Uint32 = PciSegmentRead32 (PciAddress); + break; + case S3BootScriptWidthFifoUint32: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthFifoUint32 - 0x%016lx\n", PciAddress)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthFifoUint32 - 0x%016lx\n", PciAddress)); + *Out.Uint32 = PciSegmentRead32 (PciAddress); + break; + case S3BootScriptWidthFillUint32: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthFillUint32 - 0x%016lx\n", PciAddress)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthFillUint32 - 0x%016lx\n", PciAddress)); + *Out.Uint32 = PciSegmentRead32 (PciAddress); + break; + +@@ -766,39 +766,39 @@ ScriptPciCfg2Write ( + for (; Count > 0; Count--, PciAddress += AddressStride, In.Buf += BufferStride) { + switch (Width) { + case S3BootScriptWidthUint8: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthUint8 - 0x%016lx (0x%02x)\n", PciAddress, (UINTN)*In.Uint8)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthUint8 - 0x%016lx (0x%02x)\n", PciAddress, (UINTN)*In.Uint8)); + PciSegmentWrite8 (PciAddress, *In.Uint8); + break; + case S3BootScriptWidthFifoUint8: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthFifoUint8 - 0x%016lx (0x%02x)\n", OriginalPciAddress, (UINTN)*In.Uint8)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthFifoUint8 - 0x%016lx (0x%02x)\n", OriginalPciAddress, (UINTN)*In.Uint8)); + PciSegmentWrite8 (OriginalPciAddress, *In.Uint8); + break; + case S3BootScriptWidthFillUint8: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthFillUint8 - 0x%016lx (0x%02x)\n", PciAddress, (UINTN)*OriginalIn.Uint8)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthFillUint8 - 0x%016lx (0x%02x)\n", PciAddress, (UINTN)*OriginalIn.Uint8)); + PciSegmentWrite8 (PciAddress, *OriginalIn.Uint8); + break; + case S3BootScriptWidthUint16: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthUint16 - 0x%016lx (0x%04x)\n", PciAddress, (UINTN)*In.Uint16)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthUint16 - 0x%016lx (0x%04x)\n", PciAddress, (UINTN)*In.Uint16)); + PciSegmentWrite16 (PciAddress, *In.Uint16); + break; + case S3BootScriptWidthFifoUint16: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthFifoUint16 - 0x%016lx (0x%04x)\n", OriginalPciAddress, (UINTN)*In.Uint16)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthFifoUint16 - 0x%016lx (0x%04x)\n", OriginalPciAddress, (UINTN)*In.Uint16)); + PciSegmentWrite16 (OriginalPciAddress, *In.Uint16); + break; + case S3BootScriptWidthFillUint16: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthFillUint16 - 0x%016lx (0x%04x)\n", PciAddress, (UINTN)*OriginalIn.Uint16)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthFillUint16 - 0x%016lx (0x%04x)\n", PciAddress, (UINTN)*OriginalIn.Uint16)); + PciSegmentWrite16 (PciAddress, *OriginalIn.Uint16); + break; + case S3BootScriptWidthUint32: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthUint32 - 0x%016lx (0x%08x)\n", PciAddress, (UINTN)*In.Uint32)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthUint32 - 0x%016lx (0x%08x)\n", PciAddress, (UINTN)*In.Uint32)); + PciSegmentWrite32 (PciAddress, *In.Uint32); + break; + case S3BootScriptWidthFifoUint32: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthFifoUint32 - 0x%016lx (0x%08x)\n", OriginalPciAddress, (UINTN)*In.Uint32)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthFifoUint32 - 0x%016lx (0x%08x)\n", OriginalPciAddress, (UINTN)*In.Uint32)); + PciSegmentWrite32 (OriginalPciAddress, *In.Uint32); + break; + case S3BootScriptWidthFillUint32: +- DEBUG ((EFI_D_INFO, "S3BootScriptWidthFillUint32 - 0x%016lx (0x%08x)\n", (UINTN)PciAddress, (UINTN)*OriginalIn.Uint32)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptWidthFillUint32 - 0x%016lx (0x%08x)\n", (UINTN)PciAddress, (UINTN)*OriginalIn.Uint32)); + PciSegmentWrite32 (PciAddress, *OriginalIn.Uint32); + break; + default: +@@ -883,7 +883,7 @@ BootScriptExecutePciCfgWrite ( + Count = PciCfgWrite.Count; + Buffer = Script + sizeof(EFI_BOOT_SCRIPT_PCI_CONFIG_WRITE); + +- DEBUG ((EFI_D_INFO, "BootScriptExecutePciCfgWrite - 0x%016lx, 0x%08x, 0x%08x\n", PCI_ADDRESS_ENCODE (0, Address), Count, (UINTN)Width)); ++ DEBUG ((DEBUG_INFO, "BootScriptExecutePciCfgWrite - 0x%016lx, 0x%08x, 0x%08x\n", PCI_ADDRESS_ENCODE (0, Address), Count, (UINTN)Width)); + return ScriptPciCfgWrite (Width, Address, Count, Buffer); + } + /** +@@ -911,7 +911,7 @@ BootScriptExecuteIoReadWrite ( + + CopyMem((VOID*)&IoReadWrite, (VOID*)Script, sizeof(EFI_BOOT_SCRIPT_IO_READ_WRITE)); + +- DEBUG ((EFI_D_INFO, "BootScriptExecuteIoReadWrite - 0x%08x, 0x%016lx, 0x%016lx\n", (UINTN)IoReadWrite.Address, AndMask, OrMask)); ++ DEBUG ((DEBUG_INFO, "BootScriptExecuteIoReadWrite - 0x%08x, 0x%016lx, 0x%016lx\n", (UINTN)IoReadWrite.Address, AndMask, OrMask)); + + Status = ScriptIoRead ( + (S3_BOOT_SCRIPT_LIB_WIDTH) IoReadWrite.Width, +@@ -955,7 +955,7 @@ BootScriptExecuteMemoryReadWrite ( + + CopyMem((VOID*)&MemReadWrite, (VOID*)Script, sizeof(EFI_BOOT_SCRIPT_MEM_READ_WRITE)); + +- DEBUG ((EFI_D_INFO, "BootScriptExecuteMemoryReadWrite - 0x%08x, 0x%016lx, 0x%016lx\n", (UINTN)MemReadWrite.Address, AndMask, OrMask)); ++ DEBUG ((DEBUG_INFO, "BootScriptExecuteMemoryReadWrite - 0x%08x, 0x%016lx, 0x%016lx\n", (UINTN)MemReadWrite.Address, AndMask, OrMask)); + + Status = ScriptMemoryRead ( + (S3_BOOT_SCRIPT_LIB_WIDTH) MemReadWrite.Width, +@@ -999,7 +999,7 @@ BootScriptExecutePciCfgReadWrite ( + + CopyMem((VOID*)&PciCfgReadWrite, (VOID*)Script, sizeof(EFI_BOOT_SCRIPT_PCI_CONFIG_READ_WRITE)); + +- DEBUG ((EFI_D_INFO, "BootScriptExecutePciCfgReadWrite - 0x%016lx, 0x%016lx, 0x%016lx\n", PCI_ADDRESS_ENCODE (0, PciCfgReadWrite.Address), AndMask, OrMask)); ++ DEBUG ((DEBUG_INFO, "BootScriptExecutePciCfgReadWrite - 0x%016lx, 0x%016lx, 0x%016lx\n", PCI_ADDRESS_ENCODE (0, PciCfgReadWrite.Address), AndMask, OrMask)); + + Status = ScriptPciCfgRead ( + (S3_BOOT_SCRIPT_LIB_WIDTH) PciCfgReadWrite.Width, +@@ -1042,7 +1042,7 @@ BootScriptExecuteSmbusExecute ( + + CopyMem ((VOID*)&SmbusExecuteEntry, (VOID*)Script, sizeof(EFI_BOOT_SCRIPT_SMBUS_EXECUTE )); + +- DEBUG ((EFI_D_INFO, "BootScriptExecuteSmbusExecute - 0x%08x, 0x%08x\n", (UINTN)SmbusExecuteEntry.SmBusAddress, (UINTN)SmbusExecuteEntry.Operation)); ++ DEBUG ((DEBUG_INFO, "BootScriptExecuteSmbusExecute - 0x%08x, 0x%08x\n", (UINTN)SmbusExecuteEntry.SmBusAddress, (UINTN)SmbusExecuteEntry.Operation)); + + SmBusAddress = (UINTN)SmbusExecuteEntry.SmBusAddress; + DataSize = (UINTN) SmbusExecuteEntry.DataSize; +@@ -1069,7 +1069,7 @@ BootScriptExecuteStall ( + + CopyMem ((VOID*)&Stall, (VOID*)Script, sizeof(EFI_BOOT_SCRIPT_STALL)); + +- DEBUG ((EFI_D_INFO, "BootScriptExecuteStall - 0x%08x\n", (UINTN)Stall.Duration)); ++ DEBUG ((DEBUG_INFO, "BootScriptExecuteStall - 0x%08x\n", (UINTN)Stall.Duration)); + + MicroSecondDelay ((UINTN) Stall.Duration); + return EFI_SUCCESS; +@@ -1092,7 +1092,7 @@ BootScriptExecuteDispatch ( + CopyMem ((VOID*)&ScriptDispatch, (VOID*)Script, sizeof(EFI_BOOT_SCRIPT_DISPATCH)); + EntryFunc = (DISPATCH_ENTRYPOINT_FUNC) (UINTN) (ScriptDispatch.EntryPoint); + +- DEBUG ((EFI_D_INFO, "BootScriptExecuteDispatch - 0x%08x\n", (UINTN)ScriptDispatch.EntryPoint)); ++ DEBUG ((DEBUG_INFO, "BootScriptExecuteDispatch - 0x%08x\n", (UINTN)ScriptDispatch.EntryPoint)); + + Status = EntryFunc (NULL, NULL); + +@@ -1115,7 +1115,7 @@ BootScriptExecuteDispatch2 ( + + CopyMem ((VOID*)&ScriptDispatch2, (VOID*)Script, sizeof(EFI_BOOT_SCRIPT_DISPATCH_2)); + +- DEBUG ((EFI_D_INFO, "BootScriptExecuteDispatch2 - 0x%08x(0x%08x)\n", (UINTN)ScriptDispatch2.EntryPoint, (UINTN)ScriptDispatch2.Context)); ++ DEBUG ((DEBUG_INFO, "BootScriptExecuteDispatch2 - 0x%08x(0x%08x)\n", (UINTN)ScriptDispatch2.EntryPoint, (UINTN)ScriptDispatch2.Context)); + + EntryFunc = (DISPATCH_ENTRYPOINT_FUNC) (UINTN) (ScriptDispatch2.EntryPoint); + +@@ -1149,7 +1149,7 @@ BootScriptExecuteMemPoll ( + + CopyMem ((VOID*)&MemPoll, (VOID*)Script, sizeof(EFI_BOOT_SCRIPT_MEM_POLL)); + +- DEBUG ((EFI_D_INFO, "BootScriptExecuteMemPoll - 0x%08x, 0x%016lx, 0x%016lx\n", (UINTN)MemPoll.Address, AndMask, OrMask)); ++ DEBUG ((DEBUG_INFO, "BootScriptExecuteMemPoll - 0x%08x, 0x%016lx, 0x%016lx\n", (UINTN)MemPoll.Address, AndMask, OrMask)); + + Data = 0; + Status = ScriptMemoryRead ( +@@ -1203,13 +1203,13 @@ BootScriptExecuteInformation ( + CopyMem ((VOID*)&Information, (VOID*)Script, sizeof(EFI_BOOT_SCRIPT_INFORMATION)); + + InformationData = Script + sizeof (EFI_BOOT_SCRIPT_INFORMATION); +- DEBUG ((EFI_D_INFO, "BootScriptExecuteInformation - 0x%08x\n", (UINTN) InformationData)); ++ DEBUG ((DEBUG_INFO, "BootScriptExecuteInformation - 0x%08x\n", (UINTN) InformationData)); + +- DEBUG ((EFI_D_INFO, "BootScriptInformation: ")); ++ DEBUG ((DEBUG_INFO, "BootScriptInformation: ")); + for (Index = 0; Index < Information.InformationLength; Index++) { +- DEBUG ((EFI_D_INFO, "%02x ", InformationData[Index])); ++ DEBUG ((DEBUG_INFO, "%02x ", InformationData[Index])); + } +- DEBUG ((EFI_D_INFO, "\n")); ++ DEBUG ((DEBUG_INFO, "\n")); + } + + /** +@@ -1231,13 +1231,13 @@ BootScriptExecuteLabel ( + CopyMem ((VOID*)&Information, (VOID*)Script, sizeof(EFI_BOOT_SCRIPT_INFORMATION)); + + InformationData = Script + sizeof (EFI_BOOT_SCRIPT_INFORMATION); +- DEBUG ((EFI_D_INFO, "BootScriptExecuteLabel - 0x%08x\n", (UINTN) InformationData)); ++ DEBUG ((DEBUG_INFO, "BootScriptExecuteLabel - 0x%08x\n", (UINTN) InformationData)); + +- DEBUG ((EFI_D_INFO, "BootScriptLabel: ")); ++ DEBUG ((DEBUG_INFO, "BootScriptLabel: ")); + for (Index = 0; Index < Information.InformationLength; Index++) { +- DEBUG ((EFI_D_INFO, "%02x ", InformationData[Index])); ++ DEBUG ((DEBUG_INFO, "%02x ", InformationData[Index])); + } +- DEBUG ((EFI_D_INFO, "\n")); ++ DEBUG ((DEBUG_INFO, "\n")); + } + + /** +@@ -1349,7 +1349,7 @@ BootScriptExecuteIoPoll ( + + CopyMem ((VOID*)&IoPoll, (VOID*)Script, sizeof(EFI_BOOT_SCRIPT_IO_POLL)); + +- DEBUG ((EFI_D_INFO, "BootScriptExecuteIoPoll - 0x%08x, 0x%016lx, 0x%016lx\n", (UINTN)IoPoll.Address, AndMask, OrMask)); ++ DEBUG ((DEBUG_INFO, "BootScriptExecuteIoPoll - 0x%08x, 0x%016lx, 0x%016lx\n", (UINTN)IoPoll.Address, AndMask, OrMask)); + + Data = 0; + Status = ScriptIoRead ( +@@ -1409,7 +1409,7 @@ BootScriptExecutePciCfg2Write ( + Count = PciCfg2Write.Count; + Buffer = Script + sizeof(EFI_BOOT_SCRIPT_PCI_CONFIG2_WRITE); + +- DEBUG ((EFI_D_INFO, "BootScriptExecutePciCfg2Write - 0x%016lx, 0x%08x, 0x%08x\n", PCI_ADDRESS_ENCODE (Segment, Address), Count, (UINTN)Width)); ++ DEBUG ((DEBUG_INFO, "BootScriptExecutePciCfg2Write - 0x%016lx, 0x%08x, 0x%08x\n", PCI_ADDRESS_ENCODE (Segment, Address), Count, (UINTN)Width)); + return ScriptPciCfg2Write (Width, Segment, Address, Count, Buffer); + } + +@@ -1439,7 +1439,7 @@ BootScriptExecutePciCfg2ReadWrite ( + + CopyMem ((VOID*)&PciCfg2ReadWrite, (VOID*)Script, sizeof(EFI_BOOT_SCRIPT_PCI_CONFIG2_READ_WRITE)); + +- DEBUG ((EFI_D_INFO, "BootScriptExecutePciCfg2ReadWrite - 0x%016lx, 0x%016lx, 0x%016lx\n", PCI_ADDRESS_ENCODE (PciCfg2ReadWrite.Segment, PciCfg2ReadWrite.Address), AndMask, OrMask)); ++ DEBUG ((DEBUG_INFO, "BootScriptExecutePciCfg2ReadWrite - 0x%016lx, 0x%016lx, 0x%016lx\n", PCI_ADDRESS_ENCODE (PciCfg2ReadWrite.Segment, PciCfg2ReadWrite.Address), AndMask, OrMask)); + + Status = ScriptPciCfg2Read ( + (S3_BOOT_SCRIPT_LIB_WIDTH) PciCfg2ReadWrite.Width, +@@ -1486,7 +1486,7 @@ BootScriptPciCfgPoll ( + EFI_BOOT_SCRIPT_PCI_CONFIG_POLL PciCfgPoll; + CopyMem ((VOID*)&PciCfgPoll, (VOID*)Script, sizeof(EFI_BOOT_SCRIPT_PCI_CONFIG_POLL)); + +- DEBUG ((EFI_D_INFO, "BootScriptPciCfgPoll - 0x%016lx, 0x%016lx, 0x%016lx\n", PCI_ADDRESS_ENCODE (0, PciCfgPoll.Address), AndMask, OrMask)); ++ DEBUG ((DEBUG_INFO, "BootScriptPciCfgPoll - 0x%016lx, 0x%016lx, 0x%016lx\n", PCI_ADDRESS_ENCODE (0, PciCfgPoll.Address), AndMask, OrMask)); + + Data = 0; + Status = ScriptPciCfgRead ( +@@ -1548,7 +1548,7 @@ BootScriptPciCfg2Poll ( + Data = 0; + CopyMem ((VOID*)&PciCfg2Poll, (VOID*)Script, sizeof(EFI_BOOT_SCRIPT_PCI_CONFIG2_POLL)); + +- DEBUG ((EFI_D_INFO, "BootScriptPciCfg2Poll - 0x%016lx, 0x%016lx, 0x%016lx\n", PCI_ADDRESS_ENCODE (PciCfg2Poll.Segment, PciCfg2Poll.Address), AndMask, OrMask)); ++ DEBUG ((DEBUG_INFO, "BootScriptPciCfg2Poll - 0x%016lx, 0x%016lx, 0x%016lx\n", PCI_ADDRESS_ENCODE (PciCfg2Poll.Segment, PciCfg2Poll.Address), AndMask, OrMask)); + + Status = ScriptPciCfg2Read ( + (S3_BOOT_SCRIPT_LIB_WIDTH) PciCfg2Poll.Width, +@@ -1613,12 +1613,12 @@ S3BootScriptExecute ( + return EFI_INVALID_PARAMETER; + } + +- DEBUG ((EFI_D_INFO, "S3BootScriptExecute:\n")); ++ DEBUG ((DEBUG_INFO, "S3BootScriptExecute:\n")); + if (TableHeader.OpCode != S3_BOOT_SCRIPT_LIB_TABLE_OPCODE) { + return EFI_UNSUPPORTED; + } + +- DEBUG ((EFI_D_INFO, "TableHeader - 0x%08x\n", Script)); ++ DEBUG ((DEBUG_INFO, "TableHeader - 0x%08x\n", Script)); + + StartAddress = (UINTN) Script; + TableLength = TableHeader.TableLength; +@@ -1627,22 +1627,22 @@ S3BootScriptExecute ( + AndMask = 0; + OrMask = 0; + +- DEBUG ((EFI_D_INFO, "TableHeader.Version - 0x%04x\n", (UINTN)TableHeader.Version)); +- DEBUG ((EFI_D_INFO, "TableHeader.TableLength - 0x%08x\n", (UINTN)TableLength)); ++ DEBUG ((DEBUG_INFO, "TableHeader.Version - 0x%04x\n", (UINTN)TableHeader.Version)); ++ DEBUG ((DEBUG_INFO, "TableHeader.TableLength - 0x%08x\n", (UINTN)TableLength)); + + while ((UINTN) Script < (UINTN) (StartAddress + TableLength)) { +- DEBUG ((EFI_D_INFO, "ExecuteBootScript - %08x\n", (UINTN)Script)); ++ DEBUG ((DEBUG_INFO, "ExecuteBootScript - %08x\n", (UINTN)Script)); + + CopyMem ((VOID*)&ScriptHeader, Script, sizeof(EFI_BOOT_SCRIPT_COMMON_HEADER)); + switch (ScriptHeader.OpCode) { + + case EFI_BOOT_SCRIPT_MEM_WRITE_OPCODE: +- DEBUG ((EFI_D_INFO, "EFI_BOOT_SCRIPT_MEM_WRITE_OPCODE\n")); ++ DEBUG ((DEBUG_INFO, "EFI_BOOT_SCRIPT_MEM_WRITE_OPCODE\n")); + Status = BootScriptExecuteMemoryWrite (Script); + break; + + case EFI_BOOT_SCRIPT_MEM_READ_WRITE_OPCODE: +- DEBUG ((EFI_D_INFO, "EFI_BOOT_SCRIPT_MEM_READ_WRITE_OPCODE\n")); ++ DEBUG ((DEBUG_INFO, "EFI_BOOT_SCRIPT_MEM_READ_WRITE_OPCODE\n")); + CheckAndOrMask (&ScriptHeader, &AndMask, &OrMask, Script); + Status = BootScriptExecuteMemoryReadWrite ( + Script, +@@ -1652,17 +1652,17 @@ S3BootScriptExecute ( + break; + + case EFI_BOOT_SCRIPT_IO_WRITE_OPCODE: +- DEBUG ((EFI_D_INFO, "EFI_BOOT_SCRIPT_IO_WRITE_OPCODE\n")); ++ DEBUG ((DEBUG_INFO, "EFI_BOOT_SCRIPT_IO_WRITE_OPCODE\n")); + Status = BootScriptExecuteIoWrite (Script); + break; + + case EFI_BOOT_SCRIPT_PCI_CONFIG_WRITE_OPCODE: +- DEBUG ((EFI_D_INFO, "EFI_BOOT_SCRIPT_PCI_CONFIG_WRITE_OPCODE\n")); ++ DEBUG ((DEBUG_INFO, "EFI_BOOT_SCRIPT_PCI_CONFIG_WRITE_OPCODE\n")); + Status = BootScriptExecutePciCfgWrite (Script); + break; + + case EFI_BOOT_SCRIPT_PCI_CONFIG_READ_WRITE_OPCODE: +- DEBUG ((EFI_D_INFO, "EFI_BOOT_SCRIPT_PCI_CONFIG_READ_WRITE_OPCODE\n")); ++ DEBUG ((DEBUG_INFO, "EFI_BOOT_SCRIPT_PCI_CONFIG_READ_WRITE_OPCODE\n")); + CheckAndOrMask (&ScriptHeader, &AndMask, &OrMask, Script); + Status = BootScriptExecutePciCfgReadWrite ( + Script, +@@ -1671,12 +1671,12 @@ S3BootScriptExecute ( + ); + break; + case EFI_BOOT_SCRIPT_PCI_CONFIG2_WRITE_OPCODE: +- DEBUG ((EFI_D_INFO, "EFI_BOOT_SCRIPT_PCI_CONFIG2_WRITE_OPCODE\n")); ++ DEBUG ((DEBUG_INFO, "EFI_BOOT_SCRIPT_PCI_CONFIG2_WRITE_OPCODE\n")); + Status = BootScriptExecutePciCfg2Write (Script); + break; + + case EFI_BOOT_SCRIPT_PCI_CONFIG2_READ_WRITE_OPCODE: +- DEBUG ((EFI_D_INFO, "EFI_BOOT_SCRIPT_PCI_CONFIG2_READ_WRITE_OPCODE\n")); ++ DEBUG ((DEBUG_INFO, "EFI_BOOT_SCRIPT_PCI_CONFIG2_READ_WRITE_OPCODE\n")); + CheckAndOrMask (&ScriptHeader, &AndMask, &OrMask, Script); + Status = BootScriptExecutePciCfg2ReadWrite ( + Script, +@@ -1685,27 +1685,27 @@ S3BootScriptExecute ( + ); + break; + case EFI_BOOT_SCRIPT_DISPATCH_OPCODE: +- DEBUG ((EFI_D_INFO, "EFI_BOOT_SCRIPT_DISPATCH_OPCODE\n")); ++ DEBUG ((DEBUG_INFO, "EFI_BOOT_SCRIPT_DISPATCH_OPCODE\n")); + Status = BootScriptExecuteDispatch (Script); + break; + + case EFI_BOOT_SCRIPT_DISPATCH_2_OPCODE: +- DEBUG ((EFI_D_INFO, "EFI_BOOT_SCRIPT_DISPATCH_2_OPCODE\n")); ++ DEBUG ((DEBUG_INFO, "EFI_BOOT_SCRIPT_DISPATCH_2_OPCODE\n")); + Status = BootScriptExecuteDispatch2 (Script); + break; + + case EFI_BOOT_SCRIPT_INFORMATION_OPCODE: +- DEBUG ((EFI_D_INFO, "EFI_BOOT_SCRIPT_INFORMATION_OPCODE\n")); ++ DEBUG ((DEBUG_INFO, "EFI_BOOT_SCRIPT_INFORMATION_OPCODE\n")); + BootScriptExecuteInformation (Script); + break; + + case S3_BOOT_SCRIPT_LIB_TERMINATE_OPCODE: +- DEBUG ((EFI_D_INFO, "S3_BOOT_SCRIPT_LIB_TERMINATE_OPCODE\n")); +- DEBUG ((EFI_D_INFO, "S3BootScriptDone - %r\n", EFI_SUCCESS)); ++ DEBUG ((DEBUG_INFO, "S3_BOOT_SCRIPT_LIB_TERMINATE_OPCODE\n")); ++ DEBUG ((DEBUG_INFO, "S3BootScriptDone - %r\n", EFI_SUCCESS)); + return EFI_SUCCESS; + + case EFI_BOOT_SCRIPT_IO_READ_WRITE_OPCODE: +- DEBUG ((EFI_D_INFO, "EFI_BOOT_SCRIPT_IO_READ_WRITE_OPCODE\n")); ++ DEBUG ((DEBUG_INFO, "EFI_BOOT_SCRIPT_IO_READ_WRITE_OPCODE\n")); + CheckAndOrMask (&ScriptHeader, &AndMask, &OrMask, Script); + Status = BootScriptExecuteIoReadWrite ( + Script, +@@ -1715,36 +1715,36 @@ S3BootScriptExecute ( + break; + + case EFI_BOOT_SCRIPT_SMBUS_EXECUTE_OPCODE: +- DEBUG ((EFI_D_INFO, "EFI_BOOT_SCRIPT_SMBUS_EXECUTE_OPCODE\n")); ++ DEBUG ((DEBUG_INFO, "EFI_BOOT_SCRIPT_SMBUS_EXECUTE_OPCODE\n")); + Status = BootScriptExecuteSmbusExecute (Script); + break; + + case EFI_BOOT_SCRIPT_STALL_OPCODE: +- DEBUG ((EFI_D_INFO, "EFI_BOOT_SCRIPT_STALL_OPCODE\n")); ++ DEBUG ((DEBUG_INFO, "EFI_BOOT_SCRIPT_STALL_OPCODE\n")); + Status = BootScriptExecuteStall (Script); + break; + + case EFI_BOOT_SCRIPT_MEM_POLL_OPCODE: +- DEBUG ((EFI_D_INFO, "EFI_BOOT_SCRIPT_MEM_POLL_OPCODE\n")); ++ DEBUG ((DEBUG_INFO, "EFI_BOOT_SCRIPT_MEM_POLL_OPCODE\n")); + CheckAndOrMask (&ScriptHeader, &AndMask, &OrMask, Script); + Status = BootScriptExecuteMemPoll (Script, AndMask, OrMask); + + break; + + case EFI_BOOT_SCRIPT_IO_POLL_OPCODE: +- DEBUG ((EFI_D_INFO, "EFI_BOOT_SCRIPT_IO_POLL_OPCODE\n")); ++ DEBUG ((DEBUG_INFO, "EFI_BOOT_SCRIPT_IO_POLL_OPCODE\n")); + CheckAndOrMask (&ScriptHeader, &AndMask, &OrMask, Script); + Status = BootScriptExecuteIoPoll (Script, AndMask, OrMask); + break; + + case EFI_BOOT_SCRIPT_PCI_CONFIG_POLL_OPCODE: +- DEBUG ((EFI_D_INFO, "EFI_BOOT_SCRIPT_PCI_CONFIG_POLL_OPCODE\n")); ++ DEBUG ((DEBUG_INFO, "EFI_BOOT_SCRIPT_PCI_CONFIG_POLL_OPCODE\n")); + CheckAndOrMask (&ScriptHeader, &AndMask, &OrMask, Script); + Status = BootScriptPciCfgPoll (Script, AndMask, OrMask); + break; + + case EFI_BOOT_SCRIPT_PCI_CONFIG2_POLL_OPCODE: +- DEBUG ((EFI_D_INFO, "EFI_BOOT_SCRIPT_PCI_CONFIG2_POLL_OPCODE\n")); ++ DEBUG ((DEBUG_INFO, "EFI_BOOT_SCRIPT_PCI_CONFIG2_POLL_OPCODE\n")); + CheckAndOrMask (&ScriptHeader, &AndMask, &OrMask, Script); + Status = BootScriptPciCfg2Poll (Script, AndMask, OrMask); + break; +@@ -1753,24 +1753,23 @@ S3BootScriptExecute ( + // + // For label + // +- DEBUG ((EFI_D_INFO, "S3_BOOT_SCRIPT_LIB_LABEL_OPCODE\n")); ++ DEBUG ((DEBUG_INFO, "S3_BOOT_SCRIPT_LIB_LABEL_OPCODE\n")); + BootScriptExecuteLabel (Script); + break; + default: +- DEBUG ((EFI_D_INFO, "S3BootScriptDone - %r\n", EFI_UNSUPPORTED)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptDone - %r\n", EFI_UNSUPPORTED)); + return EFI_UNSUPPORTED; + } + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_INFO, "S3BootScriptDone - %r\n", Status)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptDone - %r\n", Status)); + return Status; + } + + Script = Script + ScriptHeader.Length; + } + +- DEBUG ((EFI_D_INFO, "S3BootScriptDone - %r\n", Status)); ++ DEBUG ((DEBUG_INFO, "S3BootScriptDone - %r\n", Status)); + + return Status; + } +- +diff --git a/MdeModulePkg/Library/PiDxeS3BootScriptLib/BootScriptSave.c b/MdeModulePkg/Library/PiDxeS3BootScriptLib/BootScriptSave.c +index 9cdf475521..20378502c8 100644 +--- a/MdeModulePkg/Library/PiDxeS3BootScriptLib/BootScriptSave.c ++++ b/MdeModulePkg/Library/PiDxeS3BootScriptLib/BootScriptSave.c +@@ -573,7 +573,7 @@ S3BootScriptLibDeinitialize ( + return RETURN_SUCCESS; + } + +- DEBUG ((EFI_D_INFO, "%a() in %a module\n", __FUNCTION__, gEfiCallerBaseName)); ++ DEBUG ((DEBUG_INFO, "%a() in %a module\n", __FUNCTION__, gEfiCallerBaseName)); + + if (mEventDxeSmmReadyToLock != NULL) { + // +@@ -834,7 +834,7 @@ S3BootScriptGetEntryAddAddress ( + // Add DEBUG ERROR, so that we can find it after SmmReadyToLock. + // Do not use ASSERT, because we may have test to invoke this interface. + // +- DEBUG ((EFI_D_ERROR, "FATAL ERROR: Set boot script outside SMM after SmmReadyToLock!!!\n")); ++ DEBUG ((DEBUG_ERROR, "FATAL ERROR: Set boot script outside SMM after SmmReadyToLock!!!\n")); + return NULL; + } + +diff --git a/MdeModulePkg/Library/PlatformVarCleanupLib/PlatVarCleanupLib.c b/MdeModulePkg/Library/PlatformVarCleanupLib/PlatVarCleanupLib.c +index 3875d614bb..0633f8197f 100644 +--- a/MdeModulePkg/Library/PlatformVarCleanupLib/PlatVarCleanupLib.c ++++ b/MdeModulePkg/Library/PlatformVarCleanupLib/PlatVarCleanupLib.c +@@ -71,7 +71,7 @@ InternalGetVarErrorFlag ( + &ErrorFlag + ); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_INFO, "%s - not found\n", VAR_ERROR_FLAG_NAME)); ++ DEBUG ((DEBUG_INFO, "%s - not found\n", VAR_ERROR_FLAG_NAME)); + return VAR_ERROR_FLAG_NO_ERROR; + } + return ErrorFlag; +@@ -115,16 +115,16 @@ IsUserVariable ( + // + // No property, it is user variable. + // +- DEBUG ((EFI_D_INFO, "PlatformVarCleanup - User variable: %g:%s\n", Guid, Name)); ++ DEBUG ((DEBUG_INFO, "PlatformVarCleanup - User variable: %g:%s\n", Guid, Name)); + return TRUE; + } + +-// DEBUG ((EFI_D_INFO, "PlatformVarCleanup - Variable Property: %g:%s\n", Guid, Name)); +-// DEBUG ((EFI_D_INFO, " Revision - 0x%04x\n", Property.Revision)); +-// DEBUG ((EFI_D_INFO, " Property - 0x%04x\n", Property.Property)); +-// DEBUG ((EFI_D_INFO, " Attribute - 0x%08x\n", Property.Attributes)); +-// DEBUG ((EFI_D_INFO, " MinSize - 0x%x\n", Property.MinSize)); +-// DEBUG ((EFI_D_INFO, " MaxSize - 0x%x\n", Property.MaxSize)); ++// DEBUG ((DEBUG_INFO, "PlatformVarCleanup - Variable Property: %g:%s\n", Guid, Name)); ++// DEBUG ((DEBUG_INFO, " Revision - 0x%04x\n", Property.Revision)); ++// DEBUG ((DEBUG_INFO, " Property - 0x%04x\n", Property.Property)); ++// DEBUG ((DEBUG_INFO, " Attribute - 0x%08x\n", Property.Attributes)); ++// DEBUG ((DEBUG_INFO, " MinSize - 0x%x\n", Property.MinSize)); ++// DEBUG ((DEBUG_INFO, " MaxSize - 0x%x\n", Property.MaxSize)); + + return FALSE; + } +@@ -276,7 +276,7 @@ CreateUserVariableNode ( + + mUserVariableCount = Index; + ASSERT (mUserVariableCount <= MAX_USER_VARIABLE_COUNT); +- DEBUG ((EFI_D_INFO, "PlatformVarCleanup - User variable count: 0x%04x\n", mUserVariableCount)); ++ DEBUG ((DEBUG_INFO, "PlatformVarCleanup - User variable count: 0x%04x\n", mUserVariableCount)); + + FreePool (VarName); + FreePool (Data); +@@ -515,7 +515,7 @@ DeleteUserVariable ( + UserVariableNameNode = USER_VARIABLE_NAME_FROM_LINK (NameLink); + + if (!UserVariableNameNode->Deleted && (DeleteAll || ((VariableCleanupData != NULL) && (VariableCleanupData->UserVariable[UserVariableNameNode->Index] == TRUE)))) { +- DEBUG ((EFI_D_INFO, "PlatformVarCleanup - Delete variable: %g:%s\n", &UserVariableNode->Guid, UserVariableNameNode->Name)); ++ DEBUG ((DEBUG_INFO, "PlatformVarCleanup - Delete variable: %g:%s\n", &UserVariableNode->Guid, UserVariableNameNode->Name)); + if ((UserVariableNameNode->Attributes & EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS) != 0) { + DataSize = 0; + Data = NULL; +@@ -538,7 +538,7 @@ DeleteUserVariable ( + if (!EFI_ERROR (Status)) { + UserVariableNameNode->Deleted = TRUE; + } else { +- DEBUG ((EFI_D_INFO, "PlatformVarCleanup - Delete variable fail: %g:%s\n", &UserVariableNode->Guid, UserVariableNameNode->Name)); ++ DEBUG ((DEBUG_INFO, "PlatformVarCleanup - Delete variable fail: %g:%s\n", &UserVariableNode->Guid, UserVariableNameNode->Name)); + } + } + } +@@ -1052,8 +1052,8 @@ PlatformVarCleanup ( + // + // This sample does not support system variables cleanup. + // +- DEBUG ((EFI_D_ERROR, "NOTICE - VAR_ERROR_FLAG_SYSTEM_ERROR\n")); +- DEBUG ((EFI_D_ERROR, "Platform should have mechanism to reset system to manufacture mode\n")); ++ DEBUG ((DEBUG_ERROR, "NOTICE - VAR_ERROR_FLAG_SYSTEM_ERROR\n")); ++ DEBUG ((DEBUG_ERROR, "Platform should have mechanism to reset system to manufacture mode\n")); + return EFI_UNSUPPORTED; + } + +@@ -1232,7 +1232,7 @@ PlatformVarCleanupLibConstructor ( + EFI_STATUS Status; + + mLastVarErrorFlag = InternalGetVarErrorFlag (); +- DEBUG ((EFI_D_INFO, "mLastVarErrorFlag - 0x%02x\n", mLastVarErrorFlag)); ++ DEBUG ((DEBUG_INFO, "mLastVarErrorFlag - 0x%02x\n", mLastVarErrorFlag)); + + // + // Register EFI_END_OF_DXE_EVENT_GROUP_GUID event. +diff --git a/MdeModulePkg/Library/SmmIpmiLibSmmIpmiProtocol/SmmIpmiLibSmmIpmiProtocol.c b/MdeModulePkg/Library/SmmIpmiLibSmmIpmiProtocol/SmmIpmiLibSmmIpmiProtocol.c +index 0af2fab296..e06944d833 100644 +--- a/MdeModulePkg/Library/SmmIpmiLibSmmIpmiProtocol/SmmIpmiLibSmmIpmiProtocol.c ++++ b/MdeModulePkg/Library/SmmIpmiLibSmmIpmiProtocol/SmmIpmiLibSmmIpmiProtocol.c +@@ -55,7 +55,7 @@ IpmiSubmitCommand ( + // + // Smm Ipmi Protocol is not installed. So, IPMI device is not present. + // +- DEBUG ((EFI_D_ERROR, "IpmiSubmitCommand for SMM Status - %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "IpmiSubmitCommand for SMM Status - %r\n", Status)); + return EFI_NOT_FOUND; + } + } +diff --git a/MdeModulePkg/Library/UefiBootManagerLib/BmBoot.c b/MdeModulePkg/Library/UefiBootManagerLib/BmBoot.c +index 95d185b639..a862e04a89 100644 +--- a/MdeModulePkg/Library/UefiBootManagerLib/BmBoot.c ++++ b/MdeModulePkg/Library/UefiBootManagerLib/BmBoot.c +@@ -1807,7 +1807,7 @@ EfiBootManagerBoot ( + } + + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "[Bds] Failed to create Boot#### for a temporary boot - %r!\n", Status)); ++ DEBUG ((DEBUG_ERROR, "[Bds] Failed to create Boot#### for a temporary boot - %r!\n", Status)); + BootOption->Status = Status; + return ; + } +@@ -1830,7 +1830,7 @@ EfiBootManagerBoot ( + // the boot option. + // + if (BmIsBootManagerMenuFilePath (BootOption->FilePath)) { +- DEBUG ((EFI_D_INFO, "[Bds] Booting Boot Manager Menu.\n")); ++ DEBUG ((DEBUG_INFO, "[Bds] Booting Boot Manager Menu.\n")); + BmStopHotkeyService (NULL, NULL); + } else { + EfiSignalEventReadyToBoot(); +@@ -2440,7 +2440,7 @@ BmRegisterBootManagerMenu ( + &DevicePath + ); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_WARN, "[Bds]BootManagerMenu FFS section can not be found, skip its boot option registration\n")); ++ DEBUG ((DEBUG_WARN, "[Bds]BootManagerMenu FFS section can not be found, skip its boot option registration\n")); + return EFI_NOT_FOUND; + } + ASSERT (DevicePath != NULL); +diff --git a/MdeModulePkg/Library/UefiBootManagerLib/BmConsole.c b/MdeModulePkg/Library/UefiBootManagerLib/BmConsole.c +index d89331784c..bdbb9a8770 100644 +--- a/MdeModulePkg/Library/UefiBootManagerLib/BmConsole.c ++++ b/MdeModulePkg/Library/UefiBootManagerLib/BmConsole.c +@@ -199,7 +199,7 @@ EfiBootManagerGetGopDevicePath ( + // + // Recursively look for GOP child in this frame buffer handle + // +- DEBUG ((EFI_D_INFO, "[Bds] Looking for GOP child deeper ... \n")); ++ DEBUG ((DEBUG_INFO, "[Bds] Looking for GOP child deeper ... \n")); + TempDevicePath = GopPool; + ReturnDevicePath = EfiBootManagerGetGopDevicePath (OpenInfoBuffer[Index].ControllerHandle); + GopPool = AppendDevicePathInstance (GopPool, ReturnDevicePath); +@@ -340,7 +340,7 @@ BmUpdateSystemTableConsole ( + // + Instance = GetNextDevicePathInstance (&VarConsole, &DevicePathSize); + if (Instance == NULL) { +- DEBUG ((EFI_D_ERROR, "[Bds] No valid console instance is found for %s!\n", VarName)); ++ DEBUG ((DEBUG_ERROR, "[Bds] No valid console instance is found for %s!\n", VarName)); + // We should not ASSERT when all the console devices are removed. + // ASSERT_EFI_ERROR (EFI_NOT_FOUND); + FreePool (FullDevicePath); +diff --git a/MdeModulePkg/Library/UefiBootManagerLib/BmDriverHealth.c b/MdeModulePkg/Library/UefiBootManagerLib/BmDriverHealth.c +index fa1fd87d15..332a967d37 100644 +--- a/MdeModulePkg/Library/UefiBootManagerLib/BmDriverHealth.c ++++ b/MdeModulePkg/Library/UefiBootManagerLib/BmDriverHealth.c +@@ -129,7 +129,7 @@ BmDisplayMessages ( + DriverHealthInfo->ChildHandle + ); + +- DEBUG ((EFI_D_INFO, "Controller: %s\n", ControllerName)); ++ DEBUG ((DEBUG_INFO, "Controller: %s\n", ControllerName)); + Print (L"Controller: %s\n", ControllerName); + for (Index = 0; DriverHealthInfo->MessageList[Index].HiiHandle != NULL; Index++) { + String = HiiGetString ( +@@ -139,7 +139,7 @@ BmDisplayMessages ( + ); + if (String != NULL) { + Print (L" %s\n", String); +- DEBUG ((EFI_D_INFO, " %s\n", String)); ++ DEBUG ((DEBUG_INFO, " %s\n", String)); + FreePool (String); + } + } +@@ -167,7 +167,7 @@ BmRepairNotify ( + IN UINTN Limit + ) + { +- DEBUG ((EFI_D_INFO, "[BDS]RepairNotify: %d/%d\n", Value, Limit)); ++ DEBUG ((DEBUG_INFO, "[BDS]RepairNotify: %d/%d\n", Value, Limit)); + Print (L"[BDS]RepairNotify: %d/%d\n", Value, Limit); + + return EFI_SUCCESS; +@@ -556,7 +556,7 @@ BmRepairAllControllers ( + DriverHealthInfo[Index].ChildHandle + ); + DEBUG (( +- EFI_D_INFO, ++ DEBUG_INFO, + "%02d: %s - %s\n", + Index, + ControllerName, +@@ -579,7 +579,7 @@ BmRepairAllControllers ( + } + + if (RebootRequired) { +- DEBUG ((EFI_D_INFO, "[BDS] One of the Driver Health instances requires rebooting.\n")); ++ DEBUG ((DEBUG_INFO, "[BDS] One of the Driver Health instances requires rebooting.\n")); + gRT->ResetSystem (EfiResetWarm, EFI_SUCCESS, 0, NULL); + } + } +diff --git a/MdeModulePkg/Library/UefiBootManagerLib/BmHotkey.c b/MdeModulePkg/Library/UefiBootManagerLib/BmHotkey.c +index c2d1447f59..25da95b669 100644 +--- a/MdeModulePkg/Library/UefiBootManagerLib/BmHotkey.c ++++ b/MdeModulePkg/Library/UefiBootManagerLib/BmHotkey.c +@@ -353,7 +353,7 @@ BmHotkeyCallback ( + return EFI_SUCCESS; + } + +- DEBUG ((EFI_D_INFO, "[Bds]BmHotkeyCallback: %04x:%04x\n", KeyData->Key.ScanCode, KeyData->Key.UnicodeChar)); ++ DEBUG ((DEBUG_INFO, "[Bds]BmHotkeyCallback: %04x:%04x\n", KeyData->Key.ScanCode, KeyData->Key.UnicodeChar)); + + EfiAcquireLock (&mBmHotkeyLock); + for ( Link = GetFirstNode (&mBmHotkeyList) +@@ -399,12 +399,12 @@ BmHotkeyCallback ( + mBmLoadOptionName[LoadOptionTypeBoot], Hotkey->BootOption + ); + Status = EfiBootManagerVariableToLoadOption (OptionName, &mBmHotkeyBootOption); +- DEBUG ((EFI_D_INFO, "[Bds]Hotkey for %s pressed - %r\n", OptionName, Status)); ++ DEBUG ((DEBUG_INFO, "[Bds]Hotkey for %s pressed - %r\n", OptionName, Status)); + if (EFI_ERROR (Status)) { + mBmHotkeyBootOption.OptionNumber = LoadOptionNumberUnassigned; + } + } else { +- DEBUG ((EFI_D_INFO, "[Bds]Continue key pressed!\n")); ++ DEBUG ((DEBUG_INFO, "[Bds]Continue key pressed!\n")); + } + } + } else { +@@ -503,7 +503,7 @@ BmUnregisterHotkeyNotify ( + ); + if (!EFI_ERROR (Status)) { + Status = TxtInEx->UnregisterKeyNotify (TxtInEx, NotifyHandle); +- DEBUG ((EFI_D_INFO, "[Bds]UnregisterKeyNotify: %04x/%04x %r\n", Hotkey->KeyData[KeyIndex].Key.ScanCode, Hotkey->KeyData[KeyIndex].Key.UnicodeChar, Status)); ++ DEBUG ((DEBUG_INFO, "[Bds]UnregisterKeyNotify: %04x/%04x %r\n", Hotkey->KeyData[KeyIndex].Key.ScanCode, Hotkey->KeyData[KeyIndex].Key.UnicodeChar, Status)); + } + } + } +@@ -542,7 +542,7 @@ BmRegisterHotkeyNotify ( + &NotifyHandle + ); + DEBUG (( +- EFI_D_INFO, ++ DEBUG_INFO, + "[Bds]RegisterKeyNotify: %04x/%04x %08x/%02x %r\n", + Hotkey->KeyData[Index].Key.ScanCode, + Hotkey->KeyData[Index].Key.UnicodeChar, +@@ -830,7 +830,7 @@ BmStopHotkeyService ( + LIST_ENTRY *Link; + BM_HOTKEY *Hotkey; + +- DEBUG ((EFI_D_INFO, "[Bds]Stop Hotkey Service!\n")); ++ DEBUG ((DEBUG_INFO, "[Bds]Stop Hotkey Service!\n")); + gBS->CloseEvent (Event); + + EfiAcquireLock (&mBmHotkeyLock); +@@ -873,7 +873,7 @@ EfiBootManagerStartHotkeyService ( + } + + if (mBmHotkeySupportCount == 0) { +- DEBUG ((EFI_D_INFO, "Bds: BootOptionSupport NV variable forbids starting the hotkey service.\n")); ++ DEBUG ((DEBUG_INFO, "Bds: BootOptionSupport NV variable forbids starting the hotkey service.\n")); + return EFI_UNSUPPORTED; + } + +diff --git a/MdeModulePkg/Library/UefiBootManagerLib/BmLoadOption.c b/MdeModulePkg/Library/UefiBootManagerLib/BmLoadOption.c +index 89372b3b97..30a6c840aa 100644 +--- a/MdeModulePkg/Library/UefiBootManagerLib/BmLoadOption.c ++++ b/MdeModulePkg/Library/UefiBootManagerLib/BmLoadOption.c +@@ -1081,7 +1081,7 @@ EfiBootManagerGetLoadOptions ( + + Status = EfiBootManagerVariableToLoadOption (OptionName, &Options[OptionIndex]); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_INFO, "[Bds] %s doesn't exist - Update ****Order variable to remove the reference!!", OptionName)); ++ DEBUG ((DEBUG_INFO, "[Bds] %s doesn't exist - Update ****Order variable to remove the reference!!", OptionName)); + EfiBootManagerDeleteLoadOptionVariable (OptionNumber, LoadOptionType); + } else { + ASSERT (Options[OptionIndex].OptionNumber == OptionNumber); +diff --git a/MdeModulePkg/Library/UefiBootManagerLib/BmMisc.c b/MdeModulePkg/Library/UefiBootManagerLib/BmMisc.c +index 89595747af..6e7af3e3d9 100644 +--- a/MdeModulePkg/Library/UefiBootManagerLib/BmMisc.c ++++ b/MdeModulePkg/Library/UefiBootManagerLib/BmMisc.c +@@ -208,9 +208,9 @@ BmSetMemoryTypeInformationVariable ( + // + // Use a heuristic to adjust the Memory Type Information for the next boot + // +- DEBUG ((EFI_D_INFO, "Memory Previous Current Next \n")); +- DEBUG ((EFI_D_INFO, " Type Pages Pages Pages \n")); +- DEBUG ((EFI_D_INFO, "====== ======== ======== ========\n")); ++ DEBUG ((DEBUG_INFO, "Memory Previous Current Next \n")); ++ DEBUG ((DEBUG_INFO, " Type Pages Pages Pages \n")); ++ DEBUG ((DEBUG_INFO, "====== ======== ======== ========\n")); + + for (Index = 0; PreviousMemoryTypeInformation[Index].Type != EfiMaxMemoryType; Index++) { + +@@ -253,7 +253,7 @@ BmSetMemoryTypeInformationVariable ( + MemoryTypeInformationModified = TRUE; + } + +- DEBUG ((EFI_D_INFO, " %02x %08x %08x %08x\n", PreviousMemoryTypeInformation[Index].Type, Previous, Current, Next)); ++ DEBUG ((DEBUG_INFO, " %02x %08x %08x %08x\n", PreviousMemoryTypeInformation[Index].Type, Previous, Current, Next)); + } + + // +@@ -276,14 +276,14 @@ BmSetMemoryTypeInformationVariable ( + // entry/resume cycle will not fail. + // + if (MemoryTypeInformationModified) { +- DEBUG ((EFI_D_INFO, "Memory Type Information settings change.\n")); ++ DEBUG ((DEBUG_INFO, "Memory Type Information settings change.\n")); + if (Boot && PcdGetBool (PcdResetOnMemoryTypeInformationChange)) { +- DEBUG ((EFI_D_INFO, "...Warm Reset!!!\n")); ++ DEBUG ((DEBUG_INFO, "...Warm Reset!!!\n")); + gRT->ResetSystem (EfiResetWarm, EFI_SUCCESS, 0, NULL); + } + } + } else { +- DEBUG ((EFI_D_ERROR, "Memory Type Information settings cannot be saved. OS S4 may fail!\n")); ++ DEBUG ((DEBUG_ERROR, "Memory Type Information settings cannot be saved. OS S4 may fail!\n")); + } + } + FreePool (PreviousMemoryTypeInformation); +@@ -385,7 +385,7 @@ BmPrintDp ( + CHAR16 *Str; + + Str = ConvertDevicePathToText (DevicePath, FALSE, FALSE); +- DEBUG ((EFI_D_INFO, "%s", Str)); ++ DEBUG ((DEBUG_INFO, "%s", Str)); + if (Str != NULL) { + FreePool (Str); + } +diff --git a/MdeModulePkg/Library/VarCheckLib/VarCheckLib.c b/MdeModulePkg/Library/VarCheckLib/VarCheckLib.c +index 9596d760e9..e7cc76a7f0 100644 +--- a/MdeModulePkg/Library/VarCheckLib/VarCheckLib.c ++++ b/MdeModulePkg/Library/VarCheckLib/VarCheckLib.c +@@ -280,7 +280,7 @@ VarCheckLibRegisterEndOfDxeCallback ( + (UINTN) Callback + ); + +- DEBUG ((EFI_D_INFO, "VarCheckLibRegisterEndOfDxeCallback - 0x%x %r\n", Callback, Status)); ++ DEBUG ((DEBUG_INFO, "VarCheckLibRegisterEndOfDxeCallback - 0x%x %r\n", Callback, Status)); + + return Status; + } +@@ -412,7 +412,7 @@ VarCheckLibRegisterAddressPointer ( + (UINTN) AddressPointer + ); + +- DEBUG ((EFI_D_INFO, "VarCheckLibRegisterAddressPointer - 0x%x %r\n", AddressPointer, Status)); ++ DEBUG ((DEBUG_INFO, "VarCheckLibRegisterAddressPointer - 0x%x %r\n", AddressPointer, Status)); + + return Status; + } +@@ -454,7 +454,7 @@ VarCheckLibRegisterSetVariableCheckHandler ( + (UINTN) Handler + ); + +- DEBUG ((EFI_D_INFO, "VarCheckLibRegisterSetVariableCheckHandler - 0x%x %r\n", Handler, Status)); ++ DEBUG ((DEBUG_INFO, "VarCheckLibRegisterSetVariableCheckHandler - 0x%x %r\n", Handler, Status)); + + return Status; + } +@@ -627,7 +627,7 @@ VarCheckLibSetVariableCheck ( + // + if ((Property != NULL) && (Property->Revision == VAR_CHECK_VARIABLE_PROPERTY_REVISION)) { + if ((RequestSource != VarCheckFromTrusted) && ((Property->Property & VAR_CHECK_VARIABLE_PROPERTY_READ_ONLY) != 0)) { +- DEBUG ((EFI_D_INFO, "Variable Check ReadOnly variable fail %r - %g:%s\n", EFI_WRITE_PROTECTED, VendorGuid, VariableName)); ++ DEBUG ((DEBUG_INFO, "Variable Check ReadOnly variable fail %r - %g:%s\n", EFI_WRITE_PROTECTED, VendorGuid, VariableName)); + return EFI_WRITE_PROTECTED; + } + if (!((((Attributes & EFI_VARIABLE_APPEND_WRITE) == 0) && (DataSize == 0)) || (Attributes == 0))) { +@@ -635,12 +635,12 @@ VarCheckLibSetVariableCheck ( + // Not to delete variable. + // + if ((Property->Attributes != 0) && ((Attributes & (~EFI_VARIABLE_APPEND_WRITE)) != Property->Attributes)) { +- DEBUG ((EFI_D_INFO, "Variable Check Attributes(0x%08x to 0x%08x) fail %r - %g:%s\n", Property->Attributes, Attributes, EFI_INVALID_PARAMETER, VendorGuid, VariableName)); ++ DEBUG ((DEBUG_INFO, "Variable Check Attributes(0x%08x to 0x%08x) fail %r - %g:%s\n", Property->Attributes, Attributes, EFI_INVALID_PARAMETER, VendorGuid, VariableName)); + return EFI_INVALID_PARAMETER; + } + if (DataSize != 0) { + if ((DataSize < Property->MinSize) || (DataSize > Property->MaxSize)) { +- DEBUG ((EFI_D_INFO, "Variable Check DataSize fail(0x%x not in 0x%x - 0x%x) %r - %g:%s\n", DataSize, Property->MinSize, Property->MaxSize, EFI_INVALID_PARAMETER, VendorGuid, VariableName)); ++ DEBUG ((DEBUG_INFO, "Variable Check DataSize fail(0x%x not in 0x%x - 0x%x) %r - %g:%s\n", DataSize, Property->MinSize, Property->MaxSize, EFI_INVALID_PARAMETER, VendorGuid, VariableName)); + return EFI_INVALID_PARAMETER; + } + } +@@ -663,7 +663,7 @@ VarCheckLibSetVariableCheck ( + continue; + } + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_INFO, "Variable Check handler fail %r - %g:%s\n", Status, VendorGuid, VariableName)); ++ DEBUG ((DEBUG_INFO, "Variable Check handler fail %r - %g:%s\n", Status, VendorGuid, VariableName)); + return Status; + } + } +diff --git a/MdeModulePkg/Library/VarCheckPcdLib/VarCheckPcdLibNullClass.c b/MdeModulePkg/Library/VarCheckPcdLib/VarCheckPcdLibNullClass.c +index 9a3f9187c4..31efa69148 100644 +--- a/MdeModulePkg/Library/VarCheckPcdLib/VarCheckPcdLibNullClass.c ++++ b/MdeModulePkg/Library/VarCheckPcdLib/VarCheckPcdLibNullClass.c +@@ -63,7 +63,7 @@ VarCheckPcdInternalDumpHex ( + + Val[Index * 3] = 0; + Str[Index] = 0; +- DEBUG ((EFI_D_INFO, "%*a%08X: %-48a *%a*\r\n", Indent, "", Offset, Val, Str)); ++ DEBUG ((DEBUG_INFO, "%*a%08X: %-48a *%a*\r\n", Indent, "", Offset, Val, Str)); + + Data += Size; + Offset += Size; +@@ -116,7 +116,7 @@ VarCheckPcdValidData ( + // + // No match + // +- DEBUG ((EFI_D_INFO, "VarCheckPcdValidData fail: ValidList mismatch (0x%lx)\n", OneData)); ++ DEBUG ((DEBUG_INFO, "VarCheckPcdValidData fail: ValidList mismatch (0x%lx)\n", OneData)); + DEBUG_CODE (VarCheckPcdInternalDumpHex (2, 0, PcdValidData->Length, (UINT8 *) PcdValidData);); + return FALSE; + } +@@ -136,7 +136,7 @@ VarCheckPcdValidData ( + return TRUE; + } + } +- DEBUG ((EFI_D_INFO, "VarCheckPcdValidData fail: ValidRange mismatch (0x%lx)\n", OneData)); ++ DEBUG ((DEBUG_INFO, "VarCheckPcdValidData fail: ValidRange mismatch (0x%lx)\n", OneData)); + DEBUG_CODE (VarCheckPcdInternalDumpHex (2, 0, PcdValidData->Length, (UINT8 *) PcdValidData);); + return FALSE; + break; +@@ -199,14 +199,14 @@ SetVariableCheckHandlerPcd ( + // + // Found the Pcd Variable that could be used to do check. + // +- DEBUG ((EFI_D_INFO, "VarCheckPcdVariable - %s:%g with Attributes = 0x%08x Size = 0x%x\n", VariableName, VendorGuid, Attributes, DataSize)); ++ DEBUG ((DEBUG_INFO, "VarCheckPcdVariable - %s:%g with Attributes = 0x%08x Size = 0x%x\n", VariableName, VendorGuid, Attributes, DataSize)); + if ((PcdVariable->Attributes != 0) && PcdVariable->Attributes != Attributes) { +- DEBUG ((EFI_D_INFO, "VarCheckPcdVariable fail for Attributes - 0x%08x\n", PcdVariable->Attributes)); ++ DEBUG ((DEBUG_INFO, "VarCheckPcdVariable fail for Attributes - 0x%08x\n", PcdVariable->Attributes)); + return EFI_SECURITY_VIOLATION; + } + + if (DataSize == 0) { +- DEBUG ((EFI_D_INFO, "VarCheckPcdVariable - CHECK PASS with DataSize == 0 !\n")); ++ DEBUG ((DEBUG_INFO, "VarCheckPcdVariable - CHECK PASS with DataSize == 0 !\n")); + return EFI_SUCCESS; + } + +@@ -227,7 +227,7 @@ SetVariableCheckHandlerPcd ( + PcdValidData = (VAR_CHECK_PCD_VALID_DATA_HEADER *) HEADER_ALIGN (((UINTN) PcdValidData + PcdValidData->Length)); + } + +- DEBUG ((EFI_D_INFO, "VarCheckPcdVariable - ALL CHECK PASS!\n")); ++ DEBUG ((DEBUG_INFO, "VarCheckPcdVariable - ALL CHECK PASS!\n")); + return EFI_SUCCESS; + } + // +@@ -257,11 +257,11 @@ DumpPcdValidData ( + UINT64 OneValue; + UINT8 *Ptr; + +- DEBUG ((EFI_D_INFO, " VAR_CHECK_PCD_VALID_DATA_HEADER\n")); +- DEBUG ((EFI_D_INFO, " Type - 0x%02x\n", PcdValidData->Type)); +- DEBUG ((EFI_D_INFO, " Length - 0x%02x\n", PcdValidData->Length)); +- DEBUG ((EFI_D_INFO, " VarOffset - 0x%04x\n", PcdValidData->VarOffset)); +- DEBUG ((EFI_D_INFO, " StorageWidth - 0x%02x\n", PcdValidData->StorageWidth)); ++ DEBUG ((DEBUG_INFO, " VAR_CHECK_PCD_VALID_DATA_HEADER\n")); ++ DEBUG ((DEBUG_INFO, " Type - 0x%02x\n", PcdValidData->Type)); ++ DEBUG ((DEBUG_INFO, " Length - 0x%02x\n", PcdValidData->Length)); ++ DEBUG ((DEBUG_INFO, " VarOffset - 0x%04x\n", PcdValidData->VarOffset)); ++ DEBUG ((DEBUG_INFO, " StorageWidth - 0x%02x\n", PcdValidData->StorageWidth)); + + switch (PcdValidData->Type) { + case VarCheckPcdValidList: +@@ -271,16 +271,16 @@ DumpPcdValidData ( + CopyMem (&OneValue, Ptr, PcdValidData->StorageWidth); + switch (PcdValidData->StorageWidth) { + case sizeof (UINT8): +- DEBUG ((EFI_D_INFO, " ValidList - 0x%02x\n", OneValue)); ++ DEBUG ((DEBUG_INFO, " ValidList - 0x%02x\n", OneValue)); + break; + case sizeof (UINT16): +- DEBUG ((EFI_D_INFO, " ValidList - 0x%04x\n", OneValue)); ++ DEBUG ((DEBUG_INFO, " ValidList - 0x%04x\n", OneValue)); + break; + case sizeof (UINT32): +- DEBUG ((EFI_D_INFO, " ValidList - 0x%08x\n", OneValue)); ++ DEBUG ((DEBUG_INFO, " ValidList - 0x%08x\n", OneValue)); + break; + case sizeof (UINT64): +- DEBUG ((EFI_D_INFO, " ValidList - 0x%016lx\n", OneValue)); ++ DEBUG ((DEBUG_INFO, " ValidList - 0x%016lx\n", OneValue)); + break; + default: + ASSERT (FALSE); +@@ -302,20 +302,20 @@ DumpPcdValidData ( + + switch (PcdValidData->StorageWidth) { + case sizeof (UINT8): +- DEBUG ((EFI_D_INFO, " Minimum - 0x%02x\n", Minimum)); +- DEBUG ((EFI_D_INFO, " Maximum - 0x%02x\n", Maximum)); ++ DEBUG ((DEBUG_INFO, " Minimum - 0x%02x\n", Minimum)); ++ DEBUG ((DEBUG_INFO, " Maximum - 0x%02x\n", Maximum)); + break; + case sizeof (UINT16): +- DEBUG ((EFI_D_INFO, " Minimum - 0x%04x\n", Minimum)); +- DEBUG ((EFI_D_INFO, " Maximum - 0x%04x\n", Maximum)); ++ DEBUG ((DEBUG_INFO, " Minimum - 0x%04x\n", Minimum)); ++ DEBUG ((DEBUG_INFO, " Maximum - 0x%04x\n", Maximum)); + break; + case sizeof (UINT32): +- DEBUG ((EFI_D_INFO, " Minimum - 0x%08x\n", Minimum)); +- DEBUG ((EFI_D_INFO, " Maximum - 0x%08x\n", Maximum)); ++ DEBUG ((DEBUG_INFO, " Minimum - 0x%08x\n", Minimum)); ++ DEBUG ((DEBUG_INFO, " Maximum - 0x%08x\n", Maximum)); + break; + case sizeof (UINT64): +- DEBUG ((EFI_D_INFO, " Minimum - 0x%016lx\n", Minimum)); +- DEBUG ((EFI_D_INFO, " Maximum - 0x%016lx\n", Maximum)); ++ DEBUG ((DEBUG_INFO, " Minimum - 0x%016lx\n", Minimum)); ++ DEBUG ((DEBUG_INFO, " Maximum - 0x%016lx\n", Maximum)); + break; + default: + ASSERT (FALSE); +@@ -343,14 +343,14 @@ DumpPcdVariable ( + { + VAR_CHECK_PCD_VALID_DATA_HEADER *PcdValidData; + +- DEBUG ((EFI_D_INFO, "VAR_CHECK_PCD_VARIABLE_HEADER\n")); +- DEBUG ((EFI_D_INFO, " Revision - 0x%04x\n", PcdVariable->Revision)); +- DEBUG ((EFI_D_INFO, " HeaderLength - 0x%04x\n", PcdVariable->HeaderLength)); +- DEBUG ((EFI_D_INFO, " Length - 0x%08x\n", PcdVariable->Length)); +- DEBUG ((EFI_D_INFO, " Type - 0x%02x\n", PcdVariable->Type)); +- DEBUG ((EFI_D_INFO, " Attributes - 0x%08x\n", PcdVariable->Attributes)); +- DEBUG ((EFI_D_INFO, " Guid - %g\n", &PcdVariable->Guid)); +- DEBUG ((EFI_D_INFO, " Name - %s\n", PcdVariable + 1)); ++ DEBUG ((DEBUG_INFO, "VAR_CHECK_PCD_VARIABLE_HEADER\n")); ++ DEBUG ((DEBUG_INFO, " Revision - 0x%04x\n", PcdVariable->Revision)); ++ DEBUG ((DEBUG_INFO, " HeaderLength - 0x%04x\n", PcdVariable->HeaderLength)); ++ DEBUG ((DEBUG_INFO, " Length - 0x%08x\n", PcdVariable->Length)); ++ DEBUG ((DEBUG_INFO, " Type - 0x%02x\n", PcdVariable->Type)); ++ DEBUG ((DEBUG_INFO, " Attributes - 0x%08x\n", PcdVariable->Attributes)); ++ DEBUG ((DEBUG_INFO, " Guid - %g\n", &PcdVariable->Guid)); ++ DEBUG ((DEBUG_INFO, " Name - %s\n", PcdVariable + 1)); + + // + // For Pcd ValidData header align. +@@ -383,7 +383,7 @@ DumpVarCheckPcd ( + { + VAR_CHECK_PCD_VARIABLE_HEADER *PcdVariable; + +- DEBUG ((EFI_D_INFO, "DumpVarCheckPcd\n")); ++ DEBUG ((DEBUG_INFO, "DumpVarCheckPcd\n")); + + // + // For Pcd Variable header align. +@@ -436,7 +436,7 @@ LocateVarCheckPcdBin ( + mVarCheckPcdBinSize = VarCheckPcdBinSize; + FreePool (VarCheckPcdBin); + +- DEBUG ((EFI_D_INFO, "VarCheckPcdBin - at 0x%x size = 0x%x\n", mVarCheckPcdBin, mVarCheckPcdBinSize)); ++ DEBUG ((DEBUG_INFO, "VarCheckPcdBin - at 0x%x size = 0x%x\n", mVarCheckPcdBin, mVarCheckPcdBinSize)); + + #ifdef DUMP_VAR_CHECK_PCD + DEBUG_CODE ( +@@ -444,7 +444,7 @@ LocateVarCheckPcdBin ( + ); + #endif + } else { +- DEBUG ((EFI_D_INFO, "[VarCheckPcd] No VarCheckPcdBin found at the first RAW section\n")); ++ DEBUG ((DEBUG_INFO, "[VarCheckPcd] No VarCheckPcdBin found at the first RAW section\n")); + } + } + +diff --git a/MdeModulePkg/Library/VarCheckUefiLib/VarCheckUefiLibNullClass.c b/MdeModulePkg/Library/VarCheckUefiLib/VarCheckUefiLibNullClass.c +index e3bf04a54f..5767213224 100644 +--- a/MdeModulePkg/Library/VarCheckUefiLib/VarCheckUefiLibNullClass.c ++++ b/MdeModulePkg/Library/VarCheckUefiLib/VarCheckUefiLibNullClass.c +@@ -836,7 +836,7 @@ SetVariableCheckHandlerUefiDefined ( + // only permit the creation of variables with a UEFI Specification-defined + // VendorGuid when these variables are documented in the UEFI Specification. + // +- DEBUG ((EFI_D_INFO, "UEFI Variable Check fail %r - %s not in %g namespace\n", EFI_INVALID_PARAMETER, VariableName, VendorGuid)); ++ DEBUG ((DEBUG_INFO, "UEFI Variable Check fail %r - %s not in %g namespace\n", EFI_INVALID_PARAMETER, VariableName, VendorGuid)); + return EFI_INVALID_PARAMETER; + } + } +@@ -855,7 +855,7 @@ SetVariableCheckHandlerUefiDefined ( + Data + ); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_INFO, "UEFI Variable Check function fail %r - %g:%s\n", Status, VendorGuid, VariableName)); ++ DEBUG ((DEBUG_INFO, "UEFI Variable Check function fail %r - %g:%s\n", Status, VendorGuid, VariableName)); + return Status; + } + } +diff --git a/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiSdt.c b/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiSdt.c +index d98573d613..5019b49afe 100644 +--- a/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiSdt.c ++++ b/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiSdt.c +@@ -1048,9 +1048,9 @@ FindPath ( + } + + DEBUG_CODE_BEGIN (); +- DEBUG ((EFI_D_ERROR, "AcpiSdt: FindPath - ")); ++ DEBUG ((DEBUG_ERROR, "AcpiSdt: FindPath - ")); + AmlPrintNameString (AmlPath); +- DEBUG ((EFI_D_ERROR, "\n")); ++ DEBUG ((DEBUG_ERROR, "\n")); + DEBUG_CODE_END (); + + if (AmlHandle->Signature == EFI_AML_ROOT_HANDLE_SIGNATURE) { +diff --git a/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AmlNamespace.c b/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AmlNamespace.c +index 8139f3ab44..d5d48f9455 100644 +--- a/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AmlNamespace.c ++++ b/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AmlNamespace.c +@@ -263,9 +263,9 @@ AmlInsertNodeToTree ( + // + // Oops!!!, There must be something wrong. + // +- DEBUG ((EFI_D_ERROR, "AML: Override Happen - %a!\n", NameString)); +- DEBUG ((EFI_D_ERROR, "AML: Existing Node - %x\n", AmlNodeList->Buffer)); +- DEBUG ((EFI_D_ERROR, "AML: New Buffer - %x\n", Buffer)); ++ DEBUG ((DEBUG_ERROR, "AML: Override Happen - %a!\n", NameString)); ++ DEBUG ((DEBUG_ERROR, "AML: Existing Node - %x\n", AmlNodeList->Buffer)); ++ DEBUG ((DEBUG_ERROR, "AML: New Buffer - %x\n", Buffer)); + + return NULL; + } +@@ -476,14 +476,14 @@ AmlDumpNodeInfo ( + CurrentLink = AmlParentNodeList->Children.ForwardLink; + + if (Level == 0) { +- DEBUG ((EFI_D_ERROR, "\\")); ++ DEBUG ((DEBUG_ERROR, "\\")); + } else { + for (Index = 0; Index < Level; Index++) { +- DEBUG ((EFI_D_ERROR, " ")); ++ DEBUG ((DEBUG_ERROR, " ")); + } + AmlPrintNameSeg (AmlParentNodeList->Name); + } +- DEBUG ((EFI_D_ERROR, "\n")); ++ DEBUG ((DEBUG_ERROR, "\n")); + + while (CurrentLink != &AmlParentNodeList->Children) { + CurrentAmlNodeList = EFI_AML_NODE_LIST_FROM_LINK (CurrentLink); +@@ -543,7 +543,7 @@ AmlFindPath ( + } + + DEBUG_CODE_BEGIN (); +- DEBUG ((EFI_D_ERROR, "AcpiSdt: NameSpace:\n")); ++ DEBUG ((DEBUG_ERROR, "AcpiSdt: NameSpace:\n")); + AmlDumpNodeInfo (AmlRootNodeList, 0); + DEBUG_CODE_END (); + +@@ -579,9 +579,9 @@ AmlFindPath ( + // + if (CurrentAmlNodeList != NULL) { + DEBUG_CODE_BEGIN (); +- DEBUG ((EFI_D_ERROR, "AcpiSdt: Search from: \\")); ++ DEBUG ((DEBUG_ERROR, "AcpiSdt: Search from: \\")); + AmlPrintNameSeg (CurrentAmlNodeList->Name); +- DEBUG ((EFI_D_ERROR, "\n")); ++ DEBUG ((DEBUG_ERROR, "\n")); + DEBUG_CODE_END (); + AmlNodeList = AmlFindNodeInTheTree ( + AmlPath, +diff --git a/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AmlString.c b/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AmlString.c +index d0b8b0d0f4..96341b7fec 100644 +--- a/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AmlString.c ++++ b/MdeModulePkg/Universal/Acpi/AcpiTableDxe/AmlString.c +@@ -457,19 +457,19 @@ AmlPrintNameSeg ( + IN UINT8 *Buffer + ) + { +- DEBUG ((EFI_D_ERROR, "%c", Buffer[0])); ++ DEBUG ((DEBUG_ERROR, "%c", Buffer[0])); + if ((Buffer[1] == '_') && (Buffer[2] == '_') && (Buffer[3] == '_')) { + return ; + } +- DEBUG ((EFI_D_ERROR, "%c", Buffer[1])); ++ DEBUG ((DEBUG_ERROR, "%c", Buffer[1])); + if ((Buffer[2] == '_') && (Buffer[3] == '_')) { + return ; + } +- DEBUG ((EFI_D_ERROR, "%c", Buffer[2])); ++ DEBUG ((DEBUG_ERROR, "%c", Buffer[2])); + if (Buffer[3] == '_') { + return ; + } +- DEBUG ((EFI_D_ERROR, "%c", Buffer[3])); ++ DEBUG ((DEBUG_ERROR, "%c", Buffer[3])); + return ; + } + +@@ -491,14 +491,14 @@ AmlPrintNameString ( + // RootChar + // + Buffer ++; +- DEBUG ((EFI_D_ERROR, "\\")); ++ DEBUG ((DEBUG_ERROR, "\\")); + } else if (*Buffer == AML_PARENT_PREFIX_CHAR) { + // + // ParentPrefixChar + // + do { + Buffer ++; +- DEBUG ((EFI_D_ERROR, "^")); ++ DEBUG ((DEBUG_ERROR, "^")); + } while (*Buffer == AML_PARENT_PREFIX_CHAR); + } + +@@ -530,7 +530,7 @@ AmlPrintNameString ( + AmlPrintNameSeg (Buffer); + Buffer += AML_NAME_SEG_SIZE; + for (Index = 0; Index < SegCount - 1; Index++) { +- DEBUG ((EFI_D_ERROR, ".")); ++ DEBUG ((DEBUG_ERROR, ".")); + AmlPrintNameSeg (Buffer); + Buffer += AML_NAME_SEG_SIZE; + } +diff --git a/MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/ScriptExecute.c b/MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/ScriptExecute.c +index b2ae9ec3a4..4ed23979bd 100644 +--- a/MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/ScriptExecute.c ++++ b/MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/ScriptExecute.c +@@ -164,7 +164,7 @@ S3BootScriptExecutorEntryFunction ( + ); + } else { + // Unsupported for 32bit DXE, 64bit OS vector +- DEBUG (( EFI_D_ERROR, "Unsupported for 32bit DXE transfer to 64bit OS waking vector!\r\n")); ++ DEBUG (( DEBUG_ERROR, "Unsupported for 32bit DXE transfer to 64bit OS waking vector!\r\n")); + ASSERT (FALSE); + } + } else { +@@ -494,4 +494,3 @@ BootScriptExecutorEntryPoint ( + + return EFI_SUCCESS; + } +- +diff --git a/MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableDxe/FirmwarePerformanceDxe.c b/MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableDxe/FirmwarePerformanceDxe.c +index 68755554ad..5c20002077 100644 +--- a/MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableDxe/FirmwarePerformanceDxe.c ++++ b/MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableDxe/FirmwarePerformanceDxe.c +@@ -248,7 +248,7 @@ FpdtAllocateS3PerformanceTableMemory ( + EFI_SIZE_TO_PAGES (sizeof (S3_PERFORMANCE_TABLE)) + ); + } +- DEBUG ((EFI_D_INFO, "FPDT: ACPI S3 Performance Table address = 0x%x\n", mAcpiS3PerformanceTable)); ++ DEBUG ((DEBUG_INFO, "FPDT: ACPI S3 Performance Table address = 0x%x\n", mAcpiS3PerformanceTable)); + if (mAcpiS3PerformanceTable != NULL) { + CopyMem (mAcpiS3PerformanceTable, &mS3PerformanceTableTemplate, sizeof (mS3PerformanceTableTemplate)); + } +@@ -526,11 +526,11 @@ FpdtStatusCodeListenerDxe ( + // + // Dump FPDT Boot Performance record. + // +- DEBUG ((EFI_D_INFO, "FPDT: Boot Performance - ResetEnd = %ld\n", mAcpiBootPerformanceTable->BasicBoot.ResetEnd)); +- DEBUG ((EFI_D_INFO, "FPDT: Boot Performance - OsLoaderLoadImageStart = 0\n")); +- DEBUG ((EFI_D_INFO, "FPDT: Boot Performance - OsLoaderStartImageStart = %ld\n", mAcpiBootPerformanceTable->BasicBoot.OsLoaderStartImageStart)); +- DEBUG ((EFI_D_INFO, "FPDT: Boot Performance - ExitBootServicesEntry = 0\n")); +- DEBUG ((EFI_D_INFO, "FPDT: Boot Performance - ExitBootServicesExit = 0\n")); ++ DEBUG ((DEBUG_INFO, "FPDT: Boot Performance - ResetEnd = %ld\n", mAcpiBootPerformanceTable->BasicBoot.ResetEnd)); ++ DEBUG ((DEBUG_INFO, "FPDT: Boot Performance - OsLoaderLoadImageStart = 0\n")); ++ DEBUG ((DEBUG_INFO, "FPDT: Boot Performance - OsLoaderStartImageStart = %ld\n", mAcpiBootPerformanceTable->BasicBoot.OsLoaderStartImageStart)); ++ DEBUG ((DEBUG_INFO, "FPDT: Boot Performance - ExitBootServicesEntry = 0\n")); ++ DEBUG ((DEBUG_INFO, "FPDT: Boot Performance - ExitBootServicesExit = 0\n")); + } else if (Data != NULL && CompareGuid (&Data->Type, &gEdkiiFpdtExtendedFirmwarePerformanceGuid)) { + // + // Get the Boot performance table and then install it to ACPI table. +@@ -615,10 +615,10 @@ FpdtExitBootServicesEventNotify ( + // + // Dump FPDT Boot Performance record. + // +- DEBUG ((EFI_D_INFO, "FPDT: Boot Performance - ResetEnd = %ld\n", mAcpiBootPerformanceTable->BasicBoot.ResetEnd)); +- DEBUG ((EFI_D_INFO, "FPDT: Boot Performance - OsLoaderLoadImageStart = %ld\n", mAcpiBootPerformanceTable->BasicBoot.OsLoaderLoadImageStart)); +- DEBUG ((EFI_D_INFO, "FPDT: Boot Performance - OsLoaderStartImageStart = %ld\n", mAcpiBootPerformanceTable->BasicBoot.OsLoaderStartImageStart)); +- DEBUG ((EFI_D_INFO, "FPDT: Boot Performance - ExitBootServicesEntry = %ld\n", mAcpiBootPerformanceTable->BasicBoot.ExitBootServicesEntry)); ++ DEBUG ((DEBUG_INFO, "FPDT: Boot Performance - ResetEnd = %ld\n", mAcpiBootPerformanceTable->BasicBoot.ResetEnd)); ++ DEBUG ((DEBUG_INFO, "FPDT: Boot Performance - OsLoaderLoadImageStart = %ld\n", mAcpiBootPerformanceTable->BasicBoot.OsLoaderLoadImageStart)); ++ DEBUG ((DEBUG_INFO, "FPDT: Boot Performance - OsLoaderStartImageStart = %ld\n", mAcpiBootPerformanceTable->BasicBoot.OsLoaderStartImageStart)); ++ DEBUG ((DEBUG_INFO, "FPDT: Boot Performance - ExitBootServicesEntry = %ld\n", mAcpiBootPerformanceTable->BasicBoot.ExitBootServicesEntry)); + // + // ExitBootServicesExit will be updated later, so don't dump it here. + // +diff --git a/MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTablePei/FirmwarePerformancePei.c b/MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTablePei/FirmwarePerformancePei.c +index 493d09c785..6881466201 100644 +--- a/MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTablePei/FirmwarePerformancePei.c ++++ b/MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTablePei/FirmwarePerformancePei.c +@@ -100,7 +100,7 @@ FpdtStatusCodeListenerPei ( + AcpiS3PerformanceTable = (S3_PERFORMANCE_TABLE *) (UINTN) S3PerformanceTablePointer; + ASSERT (AcpiS3PerformanceTable != NULL); + if (AcpiS3PerformanceTable->Header.Signature != EFI_ACPI_5_0_FPDT_S3_PERFORMANCE_TABLE_SIGNATURE) { +- DEBUG ((EFI_D_ERROR, "FPDT S3 performance data in ACPI memory get corrupted\n")); ++ DEBUG ((DEBUG_ERROR, "FPDT S3 performance data in ACPI memory get corrupted\n")); + return EFI_ABORTED; + } + AcpiS3ResumeRecord = &AcpiS3PerformanceTable->S3Resume; +@@ -112,9 +112,9 @@ FpdtStatusCodeListenerPei ( + AcpiS3ResumeRecord->ResumeCount++; + AcpiS3ResumeRecord->AverageResume = DivU64x32 (S3ResumeTotal + AcpiS3ResumeRecord->FullResume, AcpiS3ResumeRecord->ResumeCount); + +- DEBUG ((EFI_D_INFO, "FPDT: S3 Resume Performance - ResumeCount = %d\n", AcpiS3ResumeRecord->ResumeCount)); +- DEBUG ((EFI_D_INFO, "FPDT: S3 Resume Performance - FullResume = %ld\n", AcpiS3ResumeRecord->FullResume)); +- DEBUG ((EFI_D_INFO, "FPDT: S3 Resume Performance - AverageResume = %ld\n", AcpiS3ResumeRecord->AverageResume)); ++ DEBUG ((DEBUG_INFO, "FPDT: S3 Resume Performance - ResumeCount = %d\n", AcpiS3ResumeRecord->ResumeCount)); ++ DEBUG ((DEBUG_INFO, "FPDT: S3 Resume Performance - FullResume = %ld\n", AcpiS3ResumeRecord->FullResume)); ++ DEBUG ((DEBUG_INFO, "FPDT: S3 Resume Performance - AverageResume = %ld\n", AcpiS3ResumeRecord->AverageResume)); + + // + // Update S3 Suspend Performance Record. +@@ -132,8 +132,8 @@ FpdtStatusCodeListenerPei ( + AcpiS3SuspendRecord->SuspendStart = S3SuspendRecord.SuspendStart; + AcpiS3SuspendRecord->SuspendEnd = S3SuspendRecord.SuspendEnd; + +- DEBUG ((EFI_D_INFO, "FPDT: S3 Suspend Performance - SuspendStart = %ld\n", AcpiS3SuspendRecord->SuspendStart)); +- DEBUG ((EFI_D_INFO, "FPDT: S3 Suspend Performance - SuspendEnd = %ld\n", AcpiS3SuspendRecord->SuspendEnd)); ++ DEBUG ((DEBUG_INFO, "FPDT: S3 Suspend Performance - SuspendStart = %ld\n", AcpiS3SuspendRecord->SuspendStart)); ++ DEBUG ((DEBUG_INFO, "FPDT: S3 Suspend Performance - SuspendEnd = %ld\n", AcpiS3SuspendRecord->SuspendEnd)); + + Status = PeiServicesLocatePpi ( + &gEfiPeiReadOnlyVariable2PpiGuid, +diff --git a/MdeModulePkg/Universal/Acpi/S3SaveStateDxe/AcpiS3ContextSave.c b/MdeModulePkg/Universal/Acpi/S3SaveStateDxe/AcpiS3ContextSave.c +index e7cd2a12a0..8df9d73a96 100644 +--- a/MdeModulePkg/Universal/Acpi/S3SaveStateDxe/AcpiS3ContextSave.c ++++ b/MdeModulePkg/Universal/Acpi/S3SaveStateDxe/AcpiS3ContextSave.c +@@ -236,11 +236,11 @@ AcpiS3ContextSaveOnEndOfDxe ( + EFI_ACPI_4_0_FIRMWARE_ACPI_CONTROL_STRUCTURE *Facs; + VOID *Interface; + +- DEBUG ((EFI_D_INFO, "AcpiS3ContextSave!\n")); ++ DEBUG ((DEBUG_INFO, "AcpiS3ContextSave!\n")); + + Status = gBS->LocateProtocol (&gEfiLockBoxProtocolGuid, NULL, &Interface); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_INFO | EFI_D_WARN, "ACPI S3 context can't be saved without LockBox!\n")); ++ DEBUG ((DEBUG_INFO | DEBUG_WARN, "ACPI S3 context can't be saved without LockBox!\n")); + goto Done; + } + +@@ -291,12 +291,12 @@ AcpiS3ContextSaveOnEndOfDxe ( + AcpiS3Context->S3DebugBufferAddress = (EFI_PHYSICAL_ADDRESS)(UINTN)AllocateMemoryBelow4G (EfiReservedMemoryType, EFI_PAGE_SIZE); + SetMem ((VOID *)(UINTN)AcpiS3Context->S3DebugBufferAddress, EFI_PAGE_SIZE, 0xff); + +- DEBUG((EFI_D_INFO, "AcpiS3Context: AcpiFacsTable is 0x%8x\n", AcpiS3Context->AcpiFacsTable)); +- DEBUG((EFI_D_INFO, "AcpiS3Context: IdtrProfile is 0x%8x\n", AcpiS3Context->IdtrProfile)); +- DEBUG((EFI_D_INFO, "AcpiS3Context: S3NvsPageTableAddress is 0x%8x\n", AcpiS3Context->S3NvsPageTableAddress)); +- DEBUG((EFI_D_INFO, "AcpiS3Context: S3DebugBufferAddress is 0x%8x\n", AcpiS3Context->S3DebugBufferAddress)); +- DEBUG((EFI_D_INFO, "AcpiS3Context: BootScriptStackBase is 0x%8x\n", AcpiS3Context->BootScriptStackBase)); +- DEBUG((EFI_D_INFO, "AcpiS3Context: BootScriptStackSize is 0x%8x\n", AcpiS3Context->BootScriptStackSize)); ++ DEBUG((DEBUG_INFO, "AcpiS3Context: AcpiFacsTable is 0x%8x\n", AcpiS3Context->AcpiFacsTable)); ++ DEBUG((DEBUG_INFO, "AcpiS3Context: IdtrProfile is 0x%8x\n", AcpiS3Context->IdtrProfile)); ++ DEBUG((DEBUG_INFO, "AcpiS3Context: S3NvsPageTableAddress is 0x%8x\n", AcpiS3Context->S3NvsPageTableAddress)); ++ DEBUG((DEBUG_INFO, "AcpiS3Context: S3DebugBufferAddress is 0x%8x\n", AcpiS3Context->S3DebugBufferAddress)); ++ DEBUG((DEBUG_INFO, "AcpiS3Context: BootScriptStackBase is 0x%8x\n", AcpiS3Context->BootScriptStackBase)); ++ DEBUG((DEBUG_INFO, "AcpiS3Context: BootScriptStackSize is 0x%8x\n", AcpiS3Context->BootScriptStackSize)); + + Status = SaveLockBox ( + &gEfiAcpiVariableGuid, +@@ -322,4 +322,3 @@ Done: + Status = gBS->CloseEvent (Event); + ASSERT_EFI_ERROR (Status); + } +- +diff --git a/MdeModulePkg/Universal/BdsDxe/BdsEntry.c b/MdeModulePkg/Universal/BdsDxe/BdsEntry.c +index 13c10bdc5b..4b10567eb3 100644 +--- a/MdeModulePkg/Universal/BdsDxe/BdsEntry.c ++++ b/MdeModulePkg/Universal/BdsDxe/BdsEntry.c +@@ -78,7 +78,7 @@ BdsDxeOnConnectConInCallBack ( + // Should not enter this case, if enter, the keyboard will not work. + // May need platfrom policy to connect keyboard. + // +- DEBUG ((EFI_D_WARN, "[Bds] Connect ConIn failed - %r!!!\n", Status)); ++ DEBUG ((DEBUG_WARN, "[Bds] Connect ConIn failed - %r!!!\n", Status)); + } + } + /** +@@ -315,11 +315,11 @@ BdsWait ( + EFI_STATUS Status; + UINT16 TimeoutRemain; + +- DEBUG ((EFI_D_INFO, "[Bds]BdsWait ...Zzzzzzzzzzzz...\n")); ++ DEBUG ((DEBUG_INFO, "[Bds]BdsWait ...Zzzzzzzzzzzz...\n")); + + TimeoutRemain = PcdGet16 (PcdPlatformBootTimeOut); + while (TimeoutRemain != 0) { +- DEBUG ((EFI_D_INFO, "[Bds]BdsWait(%d)..Zzzz...\n", (UINTN) TimeoutRemain)); ++ DEBUG ((DEBUG_INFO, "[Bds]BdsWait(%d)..Zzzz...\n", (UINTN) TimeoutRemain)); + PlatformBootManagerWaitCallback (TimeoutRemain); + + BdsReadKeys (); // BUGBUG: Only reading can signal HotkeyTriggered +@@ -353,7 +353,7 @@ BdsWait ( + if (PcdGet16 (PcdPlatformBootTimeOut) != 0 && TimeoutRemain == 0) { + PlatformBootManagerWaitCallback (0); + } +- DEBUG ((EFI_D_INFO, "[Bds]Exit the waiting!\n")); ++ DEBUG ((DEBUG_INFO, "[Bds]Exit the waiting!\n")); + } + + /** +@@ -610,7 +610,7 @@ BdsFormalizeOSIndicationVariable ( + (Attributes != (EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE)) + ){ + +- DEBUG ((EFI_D_ERROR, "[Bds] Unformalized OsIndications variable exists. Delete it\n")); ++ DEBUG ((DEBUG_ERROR, "[Bds] Unformalized OsIndications variable exists. Delete it\n")); + Status = gRT->SetVariable ( + EFI_OS_INDICATIONS_VARIABLE_NAME, + &gEfiGlobalVariableGuid, +@@ -693,7 +693,7 @@ BdsEntry ( + // + PERF_CROSSMODULE_END("DXE"); + PERF_CROSSMODULE_BEGIN("BDS"); +- DEBUG ((EFI_D_INFO, "[Bds] Entry...\n")); ++ DEBUG ((DEBUG_INFO, "[Bds] Entry...\n")); + + // + // Fill in FirmwareVendor and FirmwareRevision from PCDs +@@ -943,17 +943,17 @@ BdsEntry ( + + DEBUG_CODE ( + EFI_BOOT_MANAGER_LOAD_OPTION_TYPE LoadOptionType; +- DEBUG ((EFI_D_INFO, "[Bds]OsIndication: %016x\n", OsIndication)); +- DEBUG ((EFI_D_INFO, "[Bds]=============Begin Load Options Dumping ...=============\n")); ++ DEBUG ((DEBUG_INFO, "[Bds]OsIndication: %016x\n", OsIndication)); ++ DEBUG ((DEBUG_INFO, "[Bds]=============Begin Load Options Dumping ...=============\n")); + for (LoadOptionType = 0; LoadOptionType < LoadOptionTypeMax; LoadOptionType++) { + DEBUG (( +- EFI_D_INFO, " %s Options:\n", ++ DEBUG_INFO, " %s Options:\n", + mBdsLoadOptionName[LoadOptionType] + )); + LoadOptions = EfiBootManagerGetLoadOptions (&LoadOptionCount, LoadOptionType); + for (Index = 0; Index < LoadOptionCount; Index++) { + DEBUG (( +- EFI_D_INFO, " %s%04x: %s \t\t 0x%04x\n", ++ DEBUG_INFO, " %s%04x: %s \t\t 0x%04x\n", + mBdsLoadOptionName[LoadOptionType], + LoadOptions[Index].OptionNumber, + LoadOptions[Index].Description, +@@ -962,7 +962,7 @@ BdsEntry ( + } + EfiBootManagerFreeLoadOptions (LoadOptions, LoadOptionCount); + } +- DEBUG ((EFI_D_INFO, "[Bds]=============End Load Options Dumping=============\n")); ++ DEBUG ((DEBUG_INFO, "[Bds]=============End Load Options Dumping=============\n")); + ); + + // +@@ -1092,7 +1092,7 @@ BdsEntry ( + } + EfiBootManagerFreeLoadOption (&PlatformDefaultBootOption); + +- DEBUG ((EFI_D_ERROR, "[Bds] Unable to boot!\n")); ++ DEBUG ((DEBUG_ERROR, "[Bds] Unable to boot!\n")); + PlatformBootManagerUnableToBoot (); + CpuDeadLoop (); + } +diff --git a/MdeModulePkg/Universal/CapsulePei/X64/X64Entry.c b/MdeModulePkg/Universal/CapsulePei/X64/X64Entry.c +index 4a0567fa76..22704910dd 100644 +--- a/MdeModulePkg/Universal/CapsulePei/X64/X64Entry.c ++++ b/MdeModulePkg/Universal/CapsulePei/X64/X64Entry.c +@@ -168,7 +168,7 @@ PageFaultHandler ( + AddressEncMask = PageFaultContext->AddressEncMask; + + PFAddress = AsmReadCr2 (); +- DEBUG ((EFI_D_ERROR, "CapsuleX64 - PageFaultHandler: Cr2 - %lx\n", PFAddress)); ++ DEBUG ((DEBUG_ERROR, "CapsuleX64 - PageFaultHandler: Cr2 - %lx\n", PFAddress)); + + if (PFAddress >= PhyMask + SIZE_4KB) { + return PageFaultContext->OriginalHandler; +diff --git a/MdeModulePkg/Universal/CapsuleRuntimeDxe/X64/SaveLongModeContext.c b/MdeModulePkg/Universal/CapsuleRuntimeDxe/X64/SaveLongModeContext.c +index d80d4ed3ac..eab24e4da0 100644 +--- a/MdeModulePkg/Universal/CapsuleRuntimeDxe/X64/SaveLongModeContext.c ++++ b/MdeModulePkg/Universal/CapsuleRuntimeDxe/X64/SaveLongModeContext.c +@@ -186,7 +186,7 @@ PrepareContextForCapsulePei ( + &Registration + ); + } else { +- DEBUG ((EFI_D_ERROR, "FATAL ERROR: CapsuleLongModeBuffer cannot be saved: %r. Capsule in PEI may fail!\n", Status)); ++ DEBUG ((DEBUG_ERROR, "FATAL ERROR: CapsuleLongModeBuffer cannot be saved: %r. Capsule in PEI may fail!\n", Status)); + gBS->FreePages (LongModeBuffer.StackBaseAddress, EFI_SIZE_TO_PAGES (LongModeBuffer.StackSize)); + } + } +diff --git a/MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitter.c b/MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitter.c +index e8cd4ce120..114c46addd 100644 +--- a/MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitter.c ++++ b/MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitter.c +@@ -330,7 +330,7 @@ ToggleStateSyncKeyNotify ( + ); + } + mConIn.PhysicalKeyToggleState = KeyData->KeyState.KeyToggleState; +- DEBUG ((EFI_D_INFO, "Current toggle state is 0x%02x\n", mConIn.PhysicalKeyToggleState)); ++ DEBUG ((DEBUG_INFO, "Current toggle state is 0x%02x\n", mConIn.PhysicalKeyToggleState)); + } + + return EFI_SUCCESS; +@@ -3615,7 +3615,7 @@ ConSplitterTextInReadKeyStroke ( + // Signal ConnectConIn event on first call in Lazy ConIn mode + // + if (!mConInIsConnect && PcdGetBool (PcdConInConnectOnDemand)) { +- DEBUG ((EFI_D_INFO, "Connect ConIn in first ReadKeyStoke in Lazy ConIn mode.\n")); ++ DEBUG ((DEBUG_INFO, "Connect ConIn in first ReadKeyStoke in Lazy ConIn mode.\n")); + gBS->SignalEvent (Private->ConnectConInEvent); + mConInIsConnect = TRUE; + } +@@ -3809,7 +3809,7 @@ ConSplitterTextInReadKeyStrokeEx ( + // Signal ConnectConIn event on first call in Lazy ConIn mode + // + if (!mConInIsConnect && PcdGetBool (PcdConInConnectOnDemand)) { +- DEBUG ((EFI_D_INFO, "Connect ConIn in first ReadKeyStoke in Lazy ConIn mode.\n")); ++ DEBUG ((DEBUG_INFO, "Connect ConIn in first ReadKeyStoke in Lazy ConIn mode.\n")); + gBS->SignalEvent (Private->ConnectConInEvent); + mConInIsConnect = TRUE; + } +diff --git a/MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsole.c b/MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsole.c +index d6d8db51d5..838c3337c7 100644 +--- a/MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsole.c ++++ b/MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsole.c +@@ -337,7 +337,7 @@ InitializeGraphicsConsoleTextMode ( + + DEBUG_CODE ( + for (Index = 0; Index < ValidCount; Index++) { +- DEBUG ((EFI_D_INFO, "Graphics - Mode %d, Column = %d, Row = %d\n", ++ DEBUG ((DEBUG_INFO, "Graphics - Mode %d, Column = %d, Row = %d\n", + Index, NewModeBuffer[Index].Columns, NewModeBuffer[Index].Rows)); + } + ); +@@ -551,7 +551,7 @@ GraphicsConsoleControllerDriverStart ( + } + } + +- DEBUG ((EFI_D_INFO, "GraphicsConsole video resolution %d x %d\n", HorizontalResolution, VerticalResolution)); ++ DEBUG ((DEBUG_INFO, "GraphicsConsole video resolution %d x %d\n", HorizontalResolution, VerticalResolution)); + + // + // Initialize the mode which GraphicsConsole supports. +@@ -2132,5 +2132,3 @@ InitializeGraphicsConsole ( + + return Status; + } +- +- +diff --git a/MdeModulePkg/Universal/Console/GraphicsOutputDxe/GraphicsOutput.c b/MdeModulePkg/Universal/Console/GraphicsOutputDxe/GraphicsOutput.c +index 99a76aa55c..ef82daebed 100644 +--- a/MdeModulePkg/Universal/Console/GraphicsOutputDxe/GraphicsOutput.c ++++ b/MdeModulePkg/Universal/Console/GraphicsOutputDxe/GraphicsOutput.c +@@ -323,10 +323,10 @@ GraphicsOutputDriverBindingStart ( + // Use default device infomation when the device info HOB doesn't exist + // + DeviceInfo = &mDefaultGraphicsDeviceInfo; +- DEBUG ((EFI_D_INFO, "[%a]: GraphicsDeviceInfo HOB doesn't exist!\n", gEfiCallerBaseName)); ++ DEBUG ((DEBUG_INFO, "[%a]: GraphicsDeviceInfo HOB doesn't exist!\n", gEfiCallerBaseName)); + } else { + DeviceInfo = (EFI_PEI_GRAPHICS_DEVICE_INFO_HOB *) (GET_GUID_HOB_DATA (HobStart)); +- DEBUG ((EFI_D_INFO, "[%a]: GraphicsDeviceInfo HOB:\n" ++ DEBUG ((DEBUG_INFO, "[%a]: GraphicsDeviceInfo HOB:\n" + " VendorId = %04x, DeviceId = %04x,\n" + " RevisionId = %02x, BarIndex = %x,\n" + " SubsystemVendorId = %04x, SubsystemId = %04x\n", +@@ -395,7 +395,7 @@ GraphicsOutputDriverBindingStart ( + } + Status = PciIo->GetBarAttributes (PciIo, Index, NULL, (VOID**) &Resources); + if (!EFI_ERROR (Status)) { +- DEBUG ((EFI_D_INFO, "[%a]: BAR[%d]: Base = %lx, Length = %lx\n", ++ DEBUG ((DEBUG_INFO, "[%a]: BAR[%d]: Base = %lx, Length = %lx\n", + gEfiCallerBaseName, Index, Resources->AddrRangeMin, Resources->AddrLen)); + if ((Resources->Desc == ACPI_ADDRESS_SPACE_DESCRIPTOR) && + (Resources->Len == (UINT16) (sizeof (EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR) - 3)) && +@@ -403,7 +403,7 @@ GraphicsOutputDriverBindingStart ( + (Resources->AddrLen >= GraphicsInfo->FrameBufferSize) + ) { + FrameBufferBase = Resources->AddrRangeMin; +- DEBUG ((EFI_D_INFO, "[%a]: ... matched!\n", gEfiCallerBaseName)); ++ DEBUG ((DEBUG_INFO, "[%a]: ... matched!\n", gEfiCallerBaseName)); + break; + } + } +diff --git a/MdeModulePkg/Universal/Console/TerminalDxe/TerminalConIn.c b/MdeModulePkg/Universal/Console/TerminalDxe/TerminalConIn.c +index f8c71f95c1..4d6ede4c9f 100644 +--- a/MdeModulePkg/Universal/Console/TerminalDxe/TerminalConIn.c ++++ b/MdeModulePkg/Universal/Console/TerminalDxe/TerminalConIn.c +@@ -2025,7 +2025,7 @@ UnicodeToEfiKey ( + continue; + } + else { +- DEBUG ((EFI_D_ERROR, "Unexpected state in escape2\n")); ++ DEBUG ((DEBUG_ERROR, "Unexpected state in escape2\n")); + } + } + TerminalDevice->ResetState = RESET_STATE_DEFAULT; +diff --git a/MdeModulePkg/Universal/Disk/CdExpressPei/PeiCdExpress.c b/MdeModulePkg/Universal/Disk/CdExpressPei/PeiCdExpress.c +index fd34f07eec..242dbf8eb1 100644 +--- a/MdeModulePkg/Universal/Disk/CdExpressPei/PeiCdExpress.c ++++ b/MdeModulePkg/Universal/Disk/CdExpressPei/PeiCdExpress.c +@@ -231,9 +231,9 @@ UpdateBlocksAndVolumes ( + ) { + continue; + } +- DEBUG ((EFI_D_INFO, "PeiCdExpress InterfaceType is %d\n", Media2.InterfaceType)); +- DEBUG ((EFI_D_INFO, "PeiCdExpress MediaPresent is %d\n", Media2.MediaPresent)); +- DEBUG ((EFI_D_INFO, "PeiCdExpress BlockSize is 0x%x\n", Media2.BlockSize)); ++ DEBUG ((DEBUG_INFO, "PeiCdExpress InterfaceType is %d\n", Media2.InterfaceType)); ++ DEBUG ((DEBUG_INFO, "PeiCdExpress MediaPresent is %d\n", Media2.MediaPresent)); ++ DEBUG ((DEBUG_INFO, "PeiCdExpress BlockSize is 0x%x\n", Media2.BlockSize)); + } else { + Status = BlockIoPpi->GetBlockDeviceMediaInfo ( + PeiServices, +@@ -248,14 +248,14 @@ UpdateBlocksAndVolumes ( + ) { + continue; + } +- DEBUG ((EFI_D_INFO, "PeiCdExpress DeviceType is %d\n", Media.DeviceType)); +- DEBUG ((EFI_D_INFO, "PeiCdExpress MediaPresent is %d\n", Media.MediaPresent)); +- DEBUG ((EFI_D_INFO, "PeiCdExpress BlockSize is 0x%x\n", Media.BlockSize)); ++ DEBUG ((DEBUG_INFO, "PeiCdExpress DeviceType is %d\n", Media.DeviceType)); ++ DEBUG ((DEBUG_INFO, "PeiCdExpress MediaPresent is %d\n", Media.MediaPresent)); ++ DEBUG ((DEBUG_INFO, "PeiCdExpress BlockSize is 0x%x\n", Media.BlockSize)); + } + +- DEBUG ((EFI_D_INFO, "PeiCdExpress Status is %d\n", Status)); ++ DEBUG ((DEBUG_INFO, "PeiCdExpress Status is %d\n", Status)); + +- DEBUG ((EFI_D_INFO, "IndexBlockDevice is %d\n", IndexBlockDevice)); ++ DEBUG ((DEBUG_INFO, "IndexBlockDevice is %d\n", IndexBlockDevice)); + PrivateData->CapsuleData[PrivateData->CapsuleCount].IndexBlock = IndexBlockDevice; + if (BlockIo2) { + PrivateData->CapsuleData[PrivateData->CapsuleCount].BlockIo2 = BlockIo2Ppi; +@@ -263,7 +263,7 @@ UpdateBlocksAndVolumes ( + PrivateData->CapsuleData[PrivateData->CapsuleCount].BlockIo = BlockIoPpi; + } + Status = FindRecoveryCapsules (PrivateData); +- DEBUG ((EFI_D_INFO, "Status is %d\n", Status)); ++ DEBUG ((DEBUG_INFO, "Status is %d\n", Status)); + + if (EFI_ERROR (Status)) { + continue; +diff --git a/MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIo.c b/MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIo.c +index e19466bd26..235db92969 100644 +--- a/MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIo.c ++++ b/MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIo.c +@@ -492,7 +492,7 @@ DiskIoCreateSubtask ( + } + } + DEBUG (( +- EFI_D_BLKIO, ++ DEBUG_BLKIO, + " %c:Lba/Offset/Length/WorkingBuffer/Buffer = %016lx/%08x/%08x/%08x/%08x\n", + Write ? 'W': 'R', Lba, Offset, Length, WorkingBuffer, Buffer + )); +@@ -540,7 +540,7 @@ DiskIoCreateSubtaskList ( + VOID *WorkingBuffer; + LIST_ENTRY *Link; + +- DEBUG ((EFI_D_BLKIO, "DiskIo: Create subtasks for task: Offset/BufferSize/Buffer = %016lx/%08x/%08x\n", Offset, BufferSize, Buffer)); ++ DEBUG ((DEBUG_BLKIO, "DiskIo: Create subtasks for task: Offset/BufferSize/Buffer = %016lx/%08x/%08x\n", Offset, BufferSize, Buffer)); + + BlockSize = Instance->BlockIo->Media->BlockSize; + IoAlign = Instance->BlockIo->Media->IoAlign; +@@ -668,7 +668,7 @@ DiskIoCreateSubtaskList ( + // + // If there is not enough memory, downgrade to blocking access + // +- DEBUG ((EFI_D_VERBOSE, "DiskIo: No enough memory so downgrade to blocking access\n")); ++ DEBUG ((DEBUG_VERBOSE, "DiskIo: No enough memory so downgrade to blocking access\n")); + if (!DiskIoCreateSubtaskList (Instance, Write, Offset, BufferSize, BufferPtr, TRUE, SharedWorkingBuffer, Subtasks)) { + goto Done; + } +@@ -970,7 +970,7 @@ DiskIo2ReadWriteDisk ( + // Task->Token should be set to NULL by the DiskIo2OnReadWriteComplete + // It it's not, that means the non-blocking request was downgraded to blocking request. + // +- DEBUG ((EFI_D_VERBOSE, "DiskIo: Non-blocking request was downgraded to blocking request, signal event directly.\n")); ++ DEBUG ((DEBUG_VERBOSE, "DiskIo: Non-blocking request was downgraded to blocking request, signal event directly.\n")); + Task->Token->TransactionStatus = Status; + gBS->SignalEvent (Task->Token->Event); + } +diff --git a/MdeModulePkg/Universal/Disk/PartitionDxe/ElTorito.c b/MdeModulePkg/Universal/Disk/PartitionDxe/ElTorito.c +index 3d2ff3bc29..e2b028f733 100644 +--- a/MdeModulePkg/Universal/Disk/PartitionDxe/ElTorito.c ++++ b/MdeModulePkg/Universal/Disk/PartitionDxe/ElTorito.c +@@ -141,7 +141,7 @@ PartitionInstallElToritoChildHandles ( + Catalog + ); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "EltCheckDevice: error reading catalog %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "EltCheckDevice: error reading catalog %r\n", Status)); + continue; + } + // +@@ -149,7 +149,7 @@ PartitionInstallElToritoChildHandles ( + // to make sure it looks like a Catalog header + // + if (Catalog->Catalog.Indicator != ELTORITO_ID_CATALOG || Catalog->Catalog.Id55AA != 0xAA55) { +- DEBUG ((EFI_D_ERROR, "EltCheckBootCatalog: El Torito boot catalog header IDs not correct\n")); ++ DEBUG ((DEBUG_ERROR, "EltCheckBootCatalog: El Torito boot catalog header IDs not correct\n")); + continue; + } + +@@ -160,7 +160,7 @@ PartitionInstallElToritoChildHandles ( + } + + if ((Check & 0xFFFF) != 0) { +- DEBUG ((EFI_D_ERROR, "EltCheckBootCatalog: El Torito boot catalog header checksum failed\n")); ++ DEBUG ((DEBUG_ERROR, "EltCheckBootCatalog: El Torito boot catalog header checksum failed\n")); + continue; + } + +@@ -203,7 +203,7 @@ PartitionInstallElToritoChildHandles ( + break; + + default: +- DEBUG ((EFI_D_INIT, "EltCheckDevice: unsupported El Torito boot media type %x\n", Catalog->Boot.MediaType)); ++ DEBUG ((DEBUG_INIT, "EltCheckDevice: unsupported El Torito boot media type %x\n", Catalog->Boot.MediaType)); + SectorCount = 0; + SubBlockSize = Media->BlockSize; + break; +diff --git a/MdeModulePkg/Universal/Disk/PartitionDxe/Gpt.c b/MdeModulePkg/Universal/Disk/PartitionDxe/Gpt.c +index efaff5e080..e985bd2c44 100644 +--- a/MdeModulePkg/Universal/Disk/PartitionDxe/Gpt.c ++++ b/MdeModulePkg/Universal/Disk/PartitionDxe/Gpt.c +@@ -225,8 +225,8 @@ PartitionInstallGptChildHandles ( + LastBlock = BlockIo->Media->LastBlock; + MediaId = BlockIo->Media->MediaId; + +- DEBUG ((EFI_D_INFO, " BlockSize : %d \n", BlockSize)); +- DEBUG ((EFI_D_INFO, " LastBlock : %lx \n", LastBlock)); ++ DEBUG ((DEBUG_INFO, " BlockSize : %d \n", BlockSize)); ++ DEBUG ((DEBUG_INFO, " LastBlock : %lx \n", LastBlock)); + + GptValidStatus = EFI_NOT_FOUND; + +@@ -291,43 +291,43 @@ PartitionInstallGptChildHandles ( + // Check primary and backup partition tables + // + if (!PartitionValidGptTable (BlockIo, DiskIo, PRIMARY_PART_HEADER_LBA, PrimaryHeader)) { +- DEBUG ((EFI_D_INFO, " Not Valid primary partition table\n")); ++ DEBUG ((DEBUG_INFO, " Not Valid primary partition table\n")); + + if (!PartitionValidGptTable (BlockIo, DiskIo, LastBlock, BackupHeader)) { +- DEBUG ((EFI_D_INFO, " Not Valid backup partition table\n")); ++ DEBUG ((DEBUG_INFO, " Not Valid backup partition table\n")); + goto Done; + } else { +- DEBUG ((EFI_D_INFO, " Valid backup partition table\n")); +- DEBUG ((EFI_D_INFO, " Restore primary partition table by the backup\n")); ++ DEBUG ((DEBUG_INFO, " Valid backup partition table\n")); ++ DEBUG ((DEBUG_INFO, " Restore primary partition table by the backup\n")); + if (!PartitionRestoreGptTable (BlockIo, DiskIo, BackupHeader)) { +- DEBUG ((EFI_D_INFO, " Restore primary partition table error\n")); ++ DEBUG ((DEBUG_INFO, " Restore primary partition table error\n")); + } + + if (PartitionValidGptTable (BlockIo, DiskIo, BackupHeader->AlternateLBA, PrimaryHeader)) { +- DEBUG ((EFI_D_INFO, " Restore backup partition table success\n")); ++ DEBUG ((DEBUG_INFO, " Restore backup partition table success\n")); + } + } + } else if (!PartitionValidGptTable (BlockIo, DiskIo, PrimaryHeader->AlternateLBA, BackupHeader)) { +- DEBUG ((EFI_D_INFO, " Valid primary and !Valid backup partition table\n")); +- DEBUG ((EFI_D_INFO, " Restore backup partition table by the primary\n")); ++ DEBUG ((DEBUG_INFO, " Valid primary and !Valid backup partition table\n")); ++ DEBUG ((DEBUG_INFO, " Restore backup partition table by the primary\n")); + if (!PartitionRestoreGptTable (BlockIo, DiskIo, PrimaryHeader)) { +- DEBUG ((EFI_D_INFO, " Restore backup partition table error\n")); ++ DEBUG ((DEBUG_INFO, " Restore backup partition table error\n")); + } + + if (PartitionValidGptTable (BlockIo, DiskIo, PrimaryHeader->AlternateLBA, BackupHeader)) { +- DEBUG ((EFI_D_INFO, " Restore backup partition table success\n")); ++ DEBUG ((DEBUG_INFO, " Restore backup partition table success\n")); + } + + } + +- DEBUG ((EFI_D_INFO, " Valid primary and Valid backup partition table\n")); ++ DEBUG ((DEBUG_INFO, " Valid primary and Valid backup partition table\n")); + + // + // Read the EFI Partition Entries + // + PartEntry = AllocatePool (PrimaryHeader->NumberOfPartitionEntries * PrimaryHeader->SizeOfPartitionEntry); + if (PartEntry == NULL) { +- DEBUG ((EFI_D_ERROR, "Allocate pool error\n")); ++ DEBUG ((DEBUG_ERROR, "Allocate pool error\n")); + goto Done; + } + +@@ -340,17 +340,17 @@ PartitionInstallGptChildHandles ( + ); + if (EFI_ERROR (Status)) { + GptValidStatus = Status; +- DEBUG ((EFI_D_ERROR, " Partition Entry ReadDisk error\n")); ++ DEBUG ((DEBUG_ERROR, " Partition Entry ReadDisk error\n")); + goto Done; + } + +- DEBUG ((EFI_D_INFO, " Partition entries read block success\n")); ++ DEBUG ((DEBUG_INFO, " Partition entries read block success\n")); + +- DEBUG ((EFI_D_INFO, " Number of partition entries: %d\n", PrimaryHeader->NumberOfPartitionEntries)); ++ DEBUG ((DEBUG_INFO, " Number of partition entries: %d\n", PrimaryHeader->NumberOfPartitionEntries)); + + PEntryStatus = AllocateZeroPool (PrimaryHeader->NumberOfPartitionEntries * sizeof (EFI_PARTITION_ENTRY_STATUS)); + if (PEntryStatus == NULL) { +- DEBUG ((EFI_D_ERROR, "Allocate pool error\n")); ++ DEBUG ((DEBUG_ERROR, "Allocate pool error\n")); + goto Done; + } + +@@ -401,12 +401,12 @@ PartitionInstallGptChildHandles ( + } + CopyMem (&PartitionInfo.Info.Gpt, Entry, sizeof (EFI_PARTITION_ENTRY)); + +- DEBUG ((EFI_D_INFO, " Index : %d\n", (UINT32) Index)); +- DEBUG ((EFI_D_INFO, " Start LBA : %lx\n", (UINT64) HdDev.PartitionStart)); +- DEBUG ((EFI_D_INFO, " End LBA : %lx\n", (UINT64) Entry->EndingLBA)); +- DEBUG ((EFI_D_INFO, " Partition size: %lx\n", (UINT64) HdDev.PartitionSize)); +- DEBUG ((EFI_D_INFO, " Start : %lx", MultU64x32 (Entry->StartingLBA, BlockSize))); +- DEBUG ((EFI_D_INFO, " End : %lx\n", MultU64x32 (Entry->EndingLBA, BlockSize))); ++ DEBUG ((DEBUG_INFO, " Index : %d\n", (UINT32) Index)); ++ DEBUG ((DEBUG_INFO, " Start LBA : %lx\n", (UINT64) HdDev.PartitionStart)); ++ DEBUG ((DEBUG_INFO, " End LBA : %lx\n", (UINT64) Entry->EndingLBA)); ++ DEBUG ((DEBUG_INFO, " Partition size: %lx\n", (UINT64) HdDev.PartitionSize)); ++ DEBUG ((DEBUG_INFO, " Start : %lx", MultU64x32 (Entry->StartingLBA, BlockSize))); ++ DEBUG ((DEBUG_INFO, " End : %lx\n", MultU64x32 (Entry->EndingLBA, BlockSize))); + + Status = PartitionInstallChildHandle ( + This, +@@ -425,7 +425,7 @@ PartitionInstallGptChildHandles ( + ); + } + +- DEBUG ((EFI_D_INFO, "Prepare to Free Pool\n")); ++ DEBUG ((DEBUG_INFO, "Prepare to Free Pool\n")); + + Done: + if (ProtectiveMbr != NULL) { +@@ -481,7 +481,7 @@ PartitionValidGptTable ( + PartHdr = AllocateZeroPool (BlockSize); + + if (PartHdr == NULL) { +- DEBUG ((EFI_D_ERROR, "Allocate pool error\n")); ++ DEBUG ((DEBUG_ERROR, "Allocate pool error\n")); + return FALSE; + } + // +@@ -504,7 +504,7 @@ PartitionValidGptTable ( + PartHdr->MyLBA != Lba || + (PartHdr->SizeOfPartitionEntry < sizeof (EFI_PARTITION_ENTRY)) + ) { +- DEBUG ((EFI_D_INFO, "Invalid efi partition table header\n")); ++ DEBUG ((DEBUG_INFO, "Invalid efi partition table header\n")); + FreePool (PartHdr); + return FALSE; + } +@@ -523,7 +523,7 @@ PartitionValidGptTable ( + return FALSE; + } + +- DEBUG ((EFI_D_INFO, " Valid efi partition table header\n")); ++ DEBUG ((DEBUG_INFO, " Valid efi partition table header\n")); + FreePool (PartHdr); + return TRUE; + } +@@ -557,7 +557,7 @@ PartitionCheckGptEntryArrayCRC ( + // + Ptr = AllocatePool (PartHeader->NumberOfPartitionEntries * PartHeader->SizeOfPartitionEntry); + if (Ptr == NULL) { +- DEBUG ((EFI_D_ERROR, " Allocate pool error\n")); ++ DEBUG ((DEBUG_ERROR, " Allocate pool error\n")); + return FALSE; + } + +@@ -577,7 +577,7 @@ PartitionCheckGptEntryArrayCRC ( + + Status = gBS->CalculateCrc32 (Ptr, Size, &Crc); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "CheckPEntryArrayCRC: Crc calculation failed\n")); ++ DEBUG ((DEBUG_ERROR, "CheckPEntryArrayCRC: Crc calculation failed\n")); + FreePool (Ptr); + return FALSE; + } +@@ -623,7 +623,7 @@ PartitionRestoreGptTable ( + PartHdr = AllocateZeroPool (BlockSize); + + if (PartHdr == NULL) { +- DEBUG ((EFI_D_ERROR, "Allocate pool error\n")); ++ DEBUG ((DEBUG_ERROR, "Allocate pool error\n")); + return FALSE; + } + +@@ -651,7 +651,7 @@ PartitionRestoreGptTable ( + + Ptr = AllocatePool (PartHeader->NumberOfPartitionEntries * PartHeader->SizeOfPartitionEntry); + if (Ptr == NULL) { +- DEBUG ((EFI_D_ERROR, " Allocate pool error\n")); ++ DEBUG ((DEBUG_ERROR, " Allocate pool error\n")); + Status = EFI_OUT_OF_RESOURCES; + goto Done; + } +@@ -715,7 +715,7 @@ PartitionCheckGptEntry ( + UINTN Index1; + UINTN Index2; + +- DEBUG ((EFI_D_INFO, " start check partition entries\n")); ++ DEBUG ((DEBUG_INFO, " start check partition entries\n")); + for (Index1 = 0; Index1 < PartHeader->NumberOfPartitionEntries; Index1++) { + Entry = (EFI_PARTITION_ENTRY *) ((UINT8 *) PartEntry + Index1 * PartHeader->SizeOfPartitionEntry); + if (CompareGuid (&Entry->PartitionTypeGUID, &gEfiPartTypeUnusedGuid)) { +@@ -758,7 +758,7 @@ PartitionCheckGptEntry ( + } + } + +- DEBUG ((EFI_D_INFO, " End check partition entries\n")); ++ DEBUG ((DEBUG_INFO, " End check partition entries\n")); + } + + +@@ -850,7 +850,7 @@ PartitionCheckCrcAltSize ( + } + + if ((MaxSize != 0) && (Size > MaxSize)) { +- DEBUG ((EFI_D_ERROR, "CheckCrc32: Size > MaxSize\n")); ++ DEBUG ((DEBUG_ERROR, "CheckCrc32: Size > MaxSize\n")); + return FALSE; + } + // +@@ -861,7 +861,7 @@ PartitionCheckCrcAltSize ( + + Status = gBS->CalculateCrc32 ((UINT8 *) Hdr, Size, &Crc); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "CheckCrc32: Crc calculation failed\n")); ++ DEBUG ((DEBUG_ERROR, "CheckCrc32: Crc calculation failed\n")); + return FALSE; + } + // +@@ -874,7 +874,7 @@ PartitionCheckCrcAltSize ( + // + DEBUG_CODE_BEGIN (); + if (OrgCrc != Crc) { +- DEBUG ((EFI_D_ERROR, "CheckCrc32: Crc check failed\n")); ++ DEBUG ((DEBUG_ERROR, "CheckCrc32: Crc check failed\n")); + } + DEBUG_CODE_END (); + +diff --git a/MdeModulePkg/Universal/Disk/PartitionDxe/Mbr.c b/MdeModulePkg/Universal/Disk/PartitionDxe/Mbr.c +index f0c92aa09a..df25a93f85 100644 +--- a/MdeModulePkg/Universal/Disk/PartitionDxe/Mbr.c ++++ b/MdeModulePkg/Universal/Disk/PartitionDxe/Mbr.c +@@ -71,7 +71,7 @@ PartitionValidMbr ( + // with INT 13h + // + +- DEBUG((EFI_D_INFO, "PartitionValidMbr: Bad MBR partition size EndingLBA(%1x) > LastLBA(%1x)\n", EndingLBA, LastLba)); ++ DEBUG((DEBUG_INFO, "PartitionValidMbr: Bad MBR partition size EndingLBA(%1x) > LastLBA(%1x)\n", EndingLBA, LastLba)); + + return FALSE; + } +diff --git a/MdeModulePkg/Universal/Disk/PartitionDxe/Partition.c b/MdeModulePkg/Universal/Disk/PartitionDxe/Partition.c +index 473e091320..aebc8a1dac 100644 +--- a/MdeModulePkg/Universal/Disk/PartitionDxe/Partition.c ++++ b/MdeModulePkg/Universal/Disk/PartitionDxe/Partition.c +@@ -417,7 +417,7 @@ PartitionDriverBindingStop ( + // bus driver. Hence, additional check is needed here. + // + if (HasChildren (ControllerHandle)) { +- DEBUG((EFI_D_ERROR, "PartitionDriverBindingStop: Still has child.\n")); ++ DEBUG((DEBUG_ERROR, "PartitionDriverBindingStop: Still has child.\n")); + return EFI_DEVICE_ERROR; + } + +@@ -486,7 +486,7 @@ PartitionDriverBindingStop ( + + if (BlockIo2 != NULL) { + Status = BlockIo2->FlushBlocksEx (BlockIo2, NULL); +- DEBUG((EFI_D_ERROR, "PartitionDriverBindingStop: FlushBlocksEx returned with %r\n", Status)); ++ DEBUG((DEBUG_ERROR, "PartitionDriverBindingStop: FlushBlocksEx returned with %r\n", Status)); + } else { + Status = EFI_SUCCESS; + } +@@ -1372,4 +1372,3 @@ HasChildren ( + + return (BOOLEAN) (Index < EntryCount); + } +- +diff --git a/MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskDriver.c b/MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskDriver.c +index 13e2aed87c..1ecf8da1d3 100644 +--- a/MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskDriver.c ++++ b/MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskDriver.c +@@ -68,7 +68,7 @@ RamDiskAcpiCheck ( + ); + if (EFI_ERROR (Status)) { + DEBUG (( +- EFI_D_INFO, ++ DEBUG_INFO, + "RamDiskAcpiCheck: Cannot locate the EFI ACPI Table Protocol, " + "unable to publish RAM disks to NFIT.\n" + )); +@@ -85,7 +85,7 @@ RamDiskAcpiCheck ( + ); + if (EFI_ERROR (Status)) { + DEBUG (( +- EFI_D_INFO, ++ DEBUG_INFO, + "RamDiskAcpiCheck: Cannot locate the EFI ACPI Sdt Protocol, " + "unable to publish RAM disks to NFIT.\n" + )); +@@ -134,7 +134,7 @@ RamDiskDxeEntryPoint ( + &DummyInterface + ); + if (!EFI_ERROR (Status)) { +- DEBUG ((EFI_D_INFO, "Driver already started!\n")); ++ DEBUG ((DEBUG_INFO, "Driver already started!\n")); + return EFI_ALREADY_STARTED; + } + +diff --git a/MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskProtocol.c b/MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskProtocol.c +index a45a55c823..329de17ff9 100644 +--- a/MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskProtocol.c ++++ b/MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskProtocol.c +@@ -194,7 +194,7 @@ RamDiskPublishNfit ( + >= PrivateData->StartingAddr + PrivateData->Size)) { + MemoryFound = TRUE; + DEBUG (( +- EFI_D_INFO, ++ DEBUG_INFO, + "RamDiskPublishNfit: RAM disk with reserved memory type, will publish to NFIT.\n" + )); + break; +@@ -237,7 +237,7 @@ RamDiskPublishNfit ( + // A NFIT is already in the ACPI table. + // + DEBUG (( +- EFI_D_INFO, ++ DEBUG_INFO, + "RamDiskPublishNfit: A NFIT is already exist in the ACPI Table.\n" + )); + +@@ -300,7 +300,7 @@ RamDiskPublishNfit ( + // No NFIT is in the ACPI table, we will create one here. + // + DEBUG (( +- EFI_D_INFO, ++ DEBUG_INFO, + "RamDiskPublishNfit: No NFIT is in the ACPI Table, will create one.\n" + )); + +diff --git a/MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerDxe.c b/MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerDxe.c +index 92c738a3f6..a873f0ae2f 100644 +--- a/MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerDxe.c ++++ b/MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerDxe.c +@@ -523,7 +523,7 @@ DriverHealthManagerRepairNotify ( + IN UINTN Limit + ) + { +- DEBUG ((EFI_D_INFO, "[DriverHealthManagement]RepairNotify: %d/%d\n", Value, Limit)); ++ DEBUG ((DEBUG_INFO, "[DriverHealthManagement]RepairNotify: %d/%d\n", Value, Limit)); + return EFI_SUCCESS; + } + +@@ -958,7 +958,7 @@ DriverHealthManagerCallback ( + return EFI_INVALID_PARAMETER; + } + +- DEBUG ((EFI_D_ERROR, "QuestionId = %x\n", QuestionId)); ++ DEBUG ((DEBUG_ERROR, "QuestionId = %x\n", QuestionId)); + + // + // We will have returned from processing a callback - user either hit ESC to exit, or selected +@@ -983,5 +983,3 @@ DriverHealthManagerCallback ( + + return EFI_SUCCESS; + } +- +- +diff --git a/MdeModulePkg/Universal/EbcDxe/EbcInt.c b/MdeModulePkg/Universal/EbcDxe/EbcInt.c +index eced1d5c7f..a255b4acc3 100644 +--- a/MdeModulePkg/Universal/EbcDxe/EbcInt.c ++++ b/MdeModulePkg/Universal/EbcDxe/EbcInt.c +@@ -988,51 +988,51 @@ CommonEbcExceptionHandler ( + // We print debug information to let user know what happen. + // + DEBUG (( +- EFI_D_ERROR, ++ DEBUG_ERROR, + "EBC Interrupter Version - 0x%016lx\n", + (UINT64) (((VM_MAJOR_VERSION & 0xFFFF) << 16) | ((VM_MINOR_VERSION & 0xFFFF))) + )); + DEBUG (( +- EFI_D_ERROR, ++ DEBUG_ERROR, + "Exception Type - 0x%016lx\n", + (UINT64)(UINTN)InterruptType + )); + DEBUG (( +- EFI_D_ERROR, ++ DEBUG_ERROR, + " R0 - 0x%016lx, R1 - 0x%016lx\n", + SystemContext.SystemContextEbc->R0, + SystemContext.SystemContextEbc->R1 + )); + DEBUG (( +- EFI_D_ERROR, ++ DEBUG_ERROR, + " R2 - 0x%016lx, R3 - 0x%016lx\n", + SystemContext.SystemContextEbc->R2, + SystemContext.SystemContextEbc->R3 + )); + DEBUG (( +- EFI_D_ERROR, ++ DEBUG_ERROR, + " R4 - 0x%016lx, R5 - 0x%016lx\n", + SystemContext.SystemContextEbc->R4, + SystemContext.SystemContextEbc->R5 + )); + DEBUG (( +- EFI_D_ERROR, ++ DEBUG_ERROR, + " R6 - 0x%016lx, R7 - 0x%016lx\n", + SystemContext.SystemContextEbc->R6, + SystemContext.SystemContextEbc->R7 + )); + DEBUG (( +- EFI_D_ERROR, ++ DEBUG_ERROR, + " Flags - 0x%016lx\n", + SystemContext.SystemContextEbc->Flags + )); + DEBUG (( +- EFI_D_ERROR, ++ DEBUG_ERROR, + " ControlFlags - 0x%016lx\n", + SystemContext.SystemContextEbc->ControlFlags + )); + DEBUG (( +- EFI_D_ERROR, ++ DEBUG_ERROR, + " Ip - 0x%016lx\n\n", + SystemContext.SystemContextEbc->Ip + )); +diff --git a/MdeModulePkg/Universal/EsrtDxe/EsrtDxe.c b/MdeModulePkg/Universal/EsrtDxe/EsrtDxe.c +index a386a97705..83deb14749 100644 +--- a/MdeModulePkg/Universal/EsrtDxe/EsrtDxe.c ++++ b/MdeModulePkg/Universal/EsrtDxe/EsrtDxe.c +@@ -485,10 +485,10 @@ EsrtDxeLockEsrtRepository( + Status = gBS->LocateProtocol (&gEdkiiVariableLockProtocolGuid, NULL, (VOID **) &VariableLock); + if (!EFI_ERROR (Status)) { + Status = VariableLock->RequestToLock (VariableLock, EFI_ESRT_FMP_VARIABLE_NAME, &gEfiCallerIdGuid); +- DEBUG((EFI_D_INFO, "EsrtDxe Lock EsrtFmp Variable Status 0x%x", Status)); ++ DEBUG((DEBUG_INFO, "EsrtDxe Lock EsrtFmp Variable Status 0x%x", Status)); + + Status = VariableLock->RequestToLock (VariableLock, EFI_ESRT_NONFMP_VARIABLE_NAME, &gEfiCallerIdGuid); +- DEBUG((EFI_D_INFO, "EsrtDxe Lock EsrtNonFmp Variable Status 0x%x", Status)); ++ DEBUG((DEBUG_INFO, "EsrtDxe Lock EsrtNonFmp Variable Status 0x%x", Status)); + } + + return Status; +@@ -539,7 +539,7 @@ EsrtReadyToBootEventNotify ( + } + + if (NonFmpRepositorySize % sizeof(EFI_SYSTEM_RESOURCE_ENTRY) != 0) { +- DEBUG((EFI_D_ERROR, "NonFmp Repository Corrupt. Need to rebuild NonFmp Repository.\n")); ++ DEBUG((DEBUG_ERROR, "NonFmp Repository Corrupt. Need to rebuild NonFmp Repository.\n")); + NonFmpRepositorySize = 0; + } + +@@ -558,7 +558,7 @@ EsrtReadyToBootEventNotify ( + } + + if (FmpRepositorySize % sizeof(EFI_SYSTEM_RESOURCE_ENTRY) != 0) { +- DEBUG((EFI_D_ERROR, "Fmp Repository Corrupt. Need to rebuild Fmp Repository.\n")); ++ DEBUG((DEBUG_ERROR, "Fmp Repository Corrupt. Need to rebuild Fmp Repository.\n")); + FmpRepositorySize = 0; + } + +@@ -573,7 +573,7 @@ EsrtReadyToBootEventNotify ( + + EsrtTable = AllocatePool(sizeof(EFI_SYSTEM_RESOURCE_TABLE) + NonFmpRepositorySize + FmpRepositorySize); + if (EsrtTable == NULL) { +- DEBUG ((EFI_D_ERROR, "Esrt table memory allocation failure\n")); ++ DEBUG ((DEBUG_ERROR, "Esrt table memory allocation failure\n")); + goto EXIT; + } + +diff --git a/MdeModulePkg/Universal/EsrtDxe/EsrtImpl.c b/MdeModulePkg/Universal/EsrtDxe/EsrtImpl.c +index fff17b98fa..0fa8c2ee99 100644 +--- a/MdeModulePkg/Universal/EsrtDxe/EsrtImpl.c ++++ b/MdeModulePkg/Universal/EsrtDxe/EsrtImpl.c +@@ -56,7 +56,7 @@ GetEsrtEntry ( + } + + if (RepositorySize % sizeof(EFI_SYSTEM_RESOURCE_ENTRY) != 0) { +- DEBUG((EFI_D_ERROR, "Repository Corrupt. Need to rebuild Repository.\n")); ++ DEBUG((DEBUG_ERROR, "Repository Corrupt. Need to rebuild Repository.\n")); + Status = EFI_ABORTED; + goto EXIT; + } +@@ -137,7 +137,7 @@ InsertEsrtEntry( + // if exist, update Esrt cache repository + // + if (RepositorySize % sizeof(EFI_SYSTEM_RESOURCE_ENTRY) != 0) { +- DEBUG((EFI_D_ERROR, "Repository Corrupt. Need to rebuild Repository.\n")); ++ DEBUG((DEBUG_ERROR, "Repository Corrupt. Need to rebuild Repository.\n")); + // + // Repository is corrupt. Clear Repository before insert new entry + // +@@ -245,7 +245,7 @@ DeleteEsrtEntry( + } + + if ((RepositorySize % sizeof(EFI_SYSTEM_RESOURCE_ENTRY)) != 0) { +- DEBUG((EFI_D_ERROR, "Repository Corrupt. Need to rebuild Repository.\n")); ++ DEBUG((DEBUG_ERROR, "Repository Corrupt. Need to rebuild Repository.\n")); + // + // Repository is corrupt. Clear Repository before insert new entry + // +@@ -347,7 +347,7 @@ UpdateEsrtEntry( + // if exist, update Esrt cache repository + // + if (RepositorySize % sizeof(EFI_SYSTEM_RESOURCE_ENTRY) != 0) { +- DEBUG((EFI_D_ERROR, "Repository Corrupt. Need to rebuild Repository.\n")); ++ DEBUG((DEBUG_ERROR, "Repository Corrupt. Need to rebuild Repository.\n")); + // + // Repository is corrupt. Clear Repository before insert new entry + // +diff --git a/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWrite.c b/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWrite.c +index 484763225f..dbe5c00ba5 100644 +--- a/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWrite.c ++++ b/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWrite.c +@@ -89,7 +89,7 @@ FtwAllocate ( + // Check if there is enough space for the coming allocation + // + if (FTW_WRITE_TOTAL_SIZE (NumberOfWrites, PrivateDataSize) > FtwDevice->FtwWorkSpaceHeader->WriteQueueSize) { +- DEBUG ((EFI_D_ERROR, "Ftw: Allocate() request exceed Workspace, Caller: %g\n", CallerId)); ++ DEBUG ((DEBUG_ERROR, "Ftw: Allocate() request exceed Workspace, Caller: %g\n", CallerId)); + return EFI_BUFFER_TOO_SMALL; + } + // +@@ -153,7 +153,7 @@ FtwAllocate ( + } + + DEBUG ( +- (EFI_D_INFO, ++ (DEBUG_INFO, + "Ftw: Allocate() success, Caller:%g, # %d\n", + CallerId, + NumberOfWrites) +@@ -358,8 +358,8 @@ FtwWrite ( + // Ftw Write Header is not allocated + // Additional private data is not NULL, the private data size can't be determined. + // +- DEBUG ((EFI_D_ERROR, "Ftw: no allocates space for write record!\n")); +- DEBUG ((EFI_D_ERROR, "Ftw: Allocate service should be called before Write service!\n")); ++ DEBUG ((DEBUG_ERROR, "Ftw: no allocates space for write record!\n")); ++ DEBUG ((DEBUG_ERROR, "Ftw: Allocate service should be called before Write service!\n")); + return EFI_NOT_READY; + } + } +@@ -396,7 +396,7 @@ FtwWrite ( + + Status = Fvb->GetPhysicalAddress (Fvb, &FvbPhysicalAddress); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "Ftw: Write(), Get FVB physical address - %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "Ftw: Write(), Get FVB physical address - %r\n", Status)); + return EFI_ABORTED; + } + +@@ -405,12 +405,12 @@ FtwWrite ( + // + Status = Fvb->GetBlockSize (Fvb, 0, &BlockSize, &NumberOfBlocks); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "Ftw: Write(), Get block size - %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "Ftw: Write(), Get block size - %r\n", Status)); + return EFI_ABORTED; + } + + NumberOfWriteBlocks = FTW_BLOCKS (Offset + Length, BlockSize); +- DEBUG ((EFI_D_INFO, "Ftw: Write(), BlockSize - 0x%x, NumberOfWriteBlock - 0x%x\n", BlockSize, NumberOfWriteBlocks)); ++ DEBUG ((DEBUG_INFO, "Ftw: Write(), BlockSize - 0x%x, NumberOfWriteBlock - 0x%x\n", BlockSize, NumberOfWriteBlocks)); + WriteLength = NumberOfWriteBlocks * BlockSize; + + // +@@ -611,7 +611,7 @@ FtwWrite ( + FreePool (SpareBuffer); + + DEBUG ( +- (EFI_D_INFO, ++ (DEBUG_INFO, + "Ftw: Write() success, (Lba:Offset)=(%lx:0x%x), Length: 0x%x\n", + Lba, + Offset, +@@ -674,7 +674,7 @@ FtwRestart ( + // + Status = Fvb->GetBlockSize (Fvb, 0, &BlockSize, &NumberOfBlocks); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "Ftw: Restart(), Get block size - %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "Ftw: Restart(), Get block size - %r\n", Status)); + return EFI_ABORTED; + } + +@@ -714,7 +714,7 @@ FtwRestart ( + return EFI_ABORTED; + } + +- DEBUG ((EFI_D_INFO, "%a(): success\n", __FUNCTION__)); ++ DEBUG ((DEBUG_INFO, "%a(): success\n", __FUNCTION__)); + return EFI_SUCCESS; + } + +@@ -769,7 +769,7 @@ FtwAbort ( + + FtwDevice->FtwLastWriteHeader->Complete = FTW_VALID_STATE; + +- DEBUG ((EFI_D_INFO, "%a(): success\n", __FUNCTION__)); ++ DEBUG ((DEBUG_INFO, "%a(): success\n", __FUNCTION__)); + return EFI_SUCCESS; + } + +@@ -880,8 +880,7 @@ FtwGetLastWrite ( + Status = EFI_SUCCESS; + } + +- DEBUG ((EFI_D_INFO, "%a(): success\n", __FUNCTION__)); ++ DEBUG ((DEBUG_INFO, "%a(): success\n", __FUNCTION__)); + + return Status; + } +- +diff --git a/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmm.c b/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmm.c +index 9612b39486..de7544e0ac 100644 +--- a/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmm.c ++++ b/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmm.c +@@ -324,13 +324,13 @@ SmmFaultTolerantWriteHandler ( + TempCommBufferSize = *CommBufferSize; + + if (TempCommBufferSize < SMM_FTW_COMMUNICATE_HEADER_SIZE) { +- DEBUG ((EFI_D_ERROR, "SmmFtwHandler: SMM communication buffer size invalid!\n")); ++ DEBUG ((DEBUG_ERROR, "SmmFtwHandler: SMM communication buffer size invalid!\n")); + return EFI_SUCCESS; + } + CommBufferPayloadSize = TempCommBufferSize - SMM_FTW_COMMUNICATE_HEADER_SIZE; + + if (!FtwSmmIsBufferOutsideSmmValid ((UINTN)CommBuffer, TempCommBufferSize)) { +- DEBUG ((EFI_D_ERROR, "SmmFtwHandler: SMM communication buffer in SMRAM or overflow!\n")); ++ DEBUG ((DEBUG_ERROR, "SmmFtwHandler: SMM communication buffer in SMRAM or overflow!\n")); + return EFI_SUCCESS; + } + +@@ -340,7 +340,7 @@ SmmFaultTolerantWriteHandler ( + // + // It will be not safe to expose the operations after End Of Dxe. + // +- DEBUG ((EFI_D_ERROR, "SmmFtwHandler: Not safe to do the operation: %x after End Of Dxe, so access denied!\n", SmmFtwFunctionHeader->Function)); ++ DEBUG ((DEBUG_ERROR, "SmmFtwHandler: Not safe to do the operation: %x after End Of Dxe, so access denied!\n", SmmFtwFunctionHeader->Function)); + SmmFtwFunctionHeader->ReturnStatus = EFI_ACCESS_DENIED; + return EFI_SUCCESS; + } +@@ -348,7 +348,7 @@ SmmFaultTolerantWriteHandler ( + switch (SmmFtwFunctionHeader->Function) { + case FTW_FUNCTION_GET_MAX_BLOCK_SIZE: + if (CommBufferPayloadSize < sizeof (SMM_FTW_GET_MAX_BLOCK_SIZE_HEADER)) { +- DEBUG ((EFI_D_ERROR, "GetMaxBlockSize: SMM communication buffer size invalid!\n")); ++ DEBUG ((DEBUG_ERROR, "GetMaxBlockSize: SMM communication buffer size invalid!\n")); + return EFI_SUCCESS; + } + SmmGetMaxBlockSizeHeader = (SMM_FTW_GET_MAX_BLOCK_SIZE_HEADER *) SmmFtwFunctionHeader->Data; +@@ -361,7 +361,7 @@ SmmFaultTolerantWriteHandler ( + + case FTW_FUNCTION_ALLOCATE: + if (CommBufferPayloadSize < sizeof (SMM_FTW_ALLOCATE_HEADER)) { +- DEBUG ((EFI_D_ERROR, "Allocate: SMM communication buffer size invalid!\n")); ++ DEBUG ((DEBUG_ERROR, "Allocate: SMM communication buffer size invalid!\n")); + return EFI_SUCCESS; + } + SmmFtwAllocateHeader = (SMM_FTW_ALLOCATE_HEADER *) SmmFtwFunctionHeader->Data; +@@ -375,7 +375,7 @@ SmmFaultTolerantWriteHandler ( + + case FTW_FUNCTION_WRITE: + if (CommBufferPayloadSize < OFFSET_OF (SMM_FTW_WRITE_HEADER, Data)) { +- DEBUG ((EFI_D_ERROR, "Write: SMM communication buffer size invalid!\n")); ++ DEBUG ((DEBUG_ERROR, "Write: SMM communication buffer size invalid!\n")); + return EFI_SUCCESS; + } + SmmFtwWriteHeader = (SMM_FTW_WRITE_HEADER *) SmmFtwFunctionHeader->Data; +@@ -395,7 +395,7 @@ SmmFaultTolerantWriteHandler ( + // SMRAM range check already covered before + // + if (InfoSize > CommBufferPayloadSize) { +- DEBUG ((EFI_D_ERROR, "Write: Data size exceed communication buffer size limit!\n")); ++ DEBUG ((DEBUG_ERROR, "Write: Data size exceed communication buffer size limit!\n")); + Status = EFI_ACCESS_DENIED; + break; + } +@@ -431,7 +431,7 @@ SmmFaultTolerantWriteHandler ( + + case FTW_FUNCTION_RESTART: + if (CommBufferPayloadSize < sizeof (SMM_FTW_RESTART_HEADER)) { +- DEBUG ((EFI_D_ERROR, "Restart: SMM communication buffer size invalid!\n")); ++ DEBUG ((DEBUG_ERROR, "Restart: SMM communication buffer size invalid!\n")); + return EFI_SUCCESS; + } + SmmFtwRestartHeader = (SMM_FTW_RESTART_HEADER *) SmmFtwFunctionHeader->Data; +@@ -451,7 +451,7 @@ SmmFaultTolerantWriteHandler ( + + case FTW_FUNCTION_GET_LAST_WRITE: + if (CommBufferPayloadSize < OFFSET_OF (SMM_FTW_GET_LAST_WRITE_HEADER, Data)) { +- DEBUG ((EFI_D_ERROR, "GetLastWrite: SMM communication buffer size invalid!\n")); ++ DEBUG ((DEBUG_ERROR, "GetLastWrite: SMM communication buffer size invalid!\n")); + return EFI_SUCCESS; + } + SmmFtwGetLastWriteHeader = (SMM_FTW_GET_LAST_WRITE_HEADER *) SmmFtwFunctionHeader->Data; +@@ -469,7 +469,7 @@ SmmFaultTolerantWriteHandler ( + // SMRAM range check already covered before + // + if (InfoSize > CommBufferPayloadSize) { +- DEBUG ((EFI_D_ERROR, "Data size exceed communication buffer size limit!\n")); ++ DEBUG ((DEBUG_ERROR, "Data size exceed communication buffer size limit!\n")); + Status = EFI_ACCESS_DENIED; + break; + } +diff --git a/MdeModulePkg/Universal/FaultTolerantWriteDxe/FtwMisc.c b/MdeModulePkg/Universal/FaultTolerantWriteDxe/FtwMisc.c +index ed73f887aa..dce50e81ab 100644 +--- a/MdeModulePkg/Universal/FaultTolerantWriteDxe/FtwMisc.c ++++ b/MdeModulePkg/Universal/FaultTolerantWriteDxe/FtwMisc.c +@@ -340,7 +340,7 @@ FlushSpareBlockToBootBlock ( + // + Status = SarProtocol->GetSwapState (SarProtocol, &TopSwap); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "Ftw: Get Top Swapped status - %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "Ftw: Get Top Swapped status - %r\n", Status)); + FreePool (Buffer); + return EFI_ABORTED; + } +@@ -427,7 +427,7 @@ FlushSpareBlockToBootBlock ( + Ptr + ); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "Ftw: FVB Write boot block - %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "Ftw: FVB Write boot block - %r\n", Status)); + FreePool (Buffer); + return Status; + } +@@ -526,7 +526,7 @@ FlushSpareBlockToTargetBlock ( + Count = BlockSize; + Status = FvBlock->Write (FvBlock, Lba + Index, 0, &Count, Ptr); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "Ftw: FVB Write block - %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "Ftw: FVB Write block - %r\n", Status)); + FreePool (Buffer); + return Status; + } +@@ -667,7 +667,7 @@ FlushSpareBlockToWorkingBlock ( + Ptr + ); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "Ftw: FVB Write block - %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "Ftw: FVB Write block - %r\n", Status)); + FreePool (Buffer); + return Status; + } +@@ -984,7 +984,7 @@ InitFtwDevice ( + FtwDevice->WorkSpaceLength = (UINTN) PcdGet32 (PcdFlashNvStorageFtwWorkingSize); + FtwDevice->SpareAreaLength = (UINTN) PcdGet32 (PcdFlashNvStorageFtwSpareSize); + if ((FtwDevice->WorkSpaceLength == 0) || (FtwDevice->SpareAreaLength == 0)) { +- DEBUG ((EFI_D_ERROR, "Ftw: Workspace or Spare block does not exist!\n")); ++ DEBUG ((DEBUG_ERROR, "Ftw: Workspace or Spare block does not exist!\n")); + FreePool (FtwDevice); + return EFI_INVALID_PARAMETER; + } +@@ -1103,13 +1103,13 @@ FindFvbForFtw ( + // + if (((FtwDevice->WorkSpaceAddress & (FtwDevice->WorkBlockSize - 1)) != 0) || + ((FtwDevice->WorkSpaceLength & (FtwDevice->WorkBlockSize - 1)) != 0)) { +- DEBUG ((EFI_D_ERROR, "Ftw: Work space address or length is not block size aligned when work space size is larger than one block size\n")); ++ DEBUG ((DEBUG_ERROR, "Ftw: Work space address or length is not block size aligned when work space size is larger than one block size\n")); + FreePool (HandleBuffer); + ASSERT (FALSE); + return EFI_ABORTED; + } + } else if ((FtwDevice->FtwWorkSpaceBase + FtwDevice->FtwWorkSpaceSize) > FtwDevice->WorkBlockSize) { +- DEBUG ((EFI_D_ERROR, "Ftw: The work space range should not span blocks when work space size is less than one block size\n")); ++ DEBUG ((DEBUG_ERROR, "Ftw: The work space range should not span blocks when work space size is less than one block size\n")); + FreePool (HandleBuffer); + ASSERT (FALSE); + return EFI_ABORTED; +@@ -1138,7 +1138,7 @@ FindFvbForFtw ( + // Check the range of spare area to make sure that it's in FV range + // + if ((FtwDevice->FtwSpareLba + FtwDevice->NumberOfSpareBlock) > NumberOfBlocks) { +- DEBUG ((EFI_D_ERROR, "Ftw: Spare area is out of FV range\n")); ++ DEBUG ((DEBUG_ERROR, "Ftw: Spare area is out of FV range\n")); + FreePool (HandleBuffer); + ASSERT (FALSE); + return EFI_ABORTED; +@@ -1148,7 +1148,7 @@ FindFvbForFtw ( + // + if (((FtwDevice->SpareAreaAddress & (FtwDevice->SpareBlockSize - 1)) != 0) || + ((FtwDevice->SpareAreaLength & (FtwDevice->SpareBlockSize - 1)) != 0)) { +- DEBUG ((EFI_D_ERROR, "Ftw: Spare area address or length is not block size aligned\n")); ++ DEBUG ((DEBUG_ERROR, "Ftw: Spare area address or length is not block size aligned\n")); + FreePool (HandleBuffer); + // + // Report Status Code EFI_SW_EC_ABORTED. +@@ -1168,8 +1168,8 @@ FindFvbForFtw ( + (FtwDevice->FtwWorkSpaceLba == (EFI_LBA) (-1)) || (FtwDevice->FtwSpareLba == (EFI_LBA) (-1))) { + return EFI_ABORTED; + } +- DEBUG ((EFI_D_INFO, "Ftw: FtwWorkSpaceLba - 0x%lx, WorkBlockSize - 0x%x, FtwWorkSpaceBase - 0x%x\n", FtwDevice->FtwWorkSpaceLba, FtwDevice->WorkBlockSize, FtwDevice->FtwWorkSpaceBase)); +- DEBUG ((EFI_D_INFO, "Ftw: FtwSpareLba - 0x%lx, SpareBlockSize - 0x%x\n", FtwDevice->FtwSpareLba, FtwDevice->SpareBlockSize)); ++ DEBUG ((DEBUG_INFO, "Ftw: FtwWorkSpaceLba - 0x%lx, WorkBlockSize - 0x%x, FtwWorkSpaceBase - 0x%x\n", FtwDevice->FtwWorkSpaceLba, FtwDevice->WorkBlockSize, FtwDevice->FtwWorkSpaceBase)); ++ DEBUG ((DEBUG_INFO, "Ftw: FtwSpareLba - 0x%lx, SpareBlockSize - 0x%x\n", FtwDevice->FtwSpareLba, FtwDevice->SpareBlockSize)); + + return EFI_SUCCESS; + } +@@ -1225,7 +1225,7 @@ InitFtwProtocol ( + } + } + FtwDevice->FtwWorkBlockLba = FtwDevice->FtwWorkSpaceLba + FtwDevice->NumberOfWorkSpaceBlock - FtwDevice->NumberOfWorkBlock; +- DEBUG ((EFI_D_INFO, "Ftw: NumberOfWorkBlock - 0x%x, FtwWorkBlockLba - 0x%lx\n", FtwDevice->NumberOfWorkBlock, FtwDevice->FtwWorkBlockLba)); ++ DEBUG ((DEBUG_INFO, "Ftw: NumberOfWorkBlock - 0x%x, FtwWorkBlockLba - 0x%lx\n", FtwDevice->NumberOfWorkBlock, FtwDevice->FtwWorkBlockLba)); + + // + // Calcualte the LBA and base of work space in spare block. +@@ -1234,7 +1234,7 @@ InitFtwProtocol ( + WorkSpaceLbaOffset = FtwDevice->FtwWorkSpaceLba - FtwDevice->FtwWorkBlockLba; + FtwDevice->FtwWorkSpaceLbaInSpare = (EFI_LBA) (((UINTN) WorkSpaceLbaOffset * FtwDevice->WorkBlockSize + FtwDevice->FtwWorkSpaceBase) / FtwDevice->SpareBlockSize); + FtwDevice->FtwWorkSpaceBaseInSpare = ((UINTN) WorkSpaceLbaOffset * FtwDevice->WorkBlockSize + FtwDevice->FtwWorkSpaceBase) % FtwDevice->SpareBlockSize; +- DEBUG ((EFI_D_INFO, "Ftw: WorkSpaceLbaInSpare - 0x%lx, WorkSpaceBaseInSpare - 0x%x\n", FtwDevice->FtwWorkSpaceLbaInSpare, FtwDevice->FtwWorkSpaceBaseInSpare)); ++ DEBUG ((DEBUG_INFO, "Ftw: WorkSpaceLbaInSpare - 0x%lx, WorkSpaceBaseInSpare - 0x%x\n", FtwDevice->FtwWorkSpaceLbaInSpare, FtwDevice->FtwWorkSpaceBaseInSpare)); + + // + // Initialize other parameters, and set WorkSpace as FTW_ERASED_BYTE. +@@ -1274,7 +1274,7 @@ InitFtwProtocol ( + // + if (IsValidWorkSpace (FtwDevice->FtwWorkSpaceHeader)) { + Status = FlushSpareBlockToWorkingBlock (FtwDevice); +- DEBUG ((EFI_D_INFO, "Ftw: Restart working block update in %a() - %r\n", ++ DEBUG ((DEBUG_INFO, "Ftw: Restart working block update in %a() - %r\n", + __FUNCTION__, Status)); + FtwAbort (&FtwDevice->FtwInstance); + // +@@ -1283,7 +1283,7 @@ InitFtwProtocol ( + Status = WorkSpaceRefresh (FtwDevice); + ASSERT_EFI_ERROR (Status); + } else { +- DEBUG ((EFI_D_INFO, ++ DEBUG ((DEBUG_INFO, + "Ftw: Both working and spare blocks are invalid, init workspace\n")); + // + // If both are invalid, then initialize work space. +@@ -1309,7 +1309,7 @@ InitFtwProtocol ( + (FtwDevice->FtwLastWriteRecord->SpareComplete != FTW_VALID_STATE) && + IsFirstRecordOfWrites (FtwDevice->FtwLastWriteHeader, FtwDevice->FtwLastWriteRecord) + ) { +- DEBUG ((EFI_D_ERROR, "Ftw: Init.. find first record not SpareCompleted, abort()\n")); ++ DEBUG ((DEBUG_ERROR, "Ftw: Init.. find first record not SpareCompleted, abort()\n")); + FtwAbort (&FtwDevice->FtwInstance); + } + // +@@ -1320,7 +1320,7 @@ InitFtwProtocol ( + (FtwDevice->FtwLastWriteRecord->DestinationComplete == FTW_VALID_STATE) && + IsLastRecordOfWrites (FtwDevice->FtwLastWriteHeader, FtwDevice->FtwLastWriteRecord) + ) { +- DEBUG ((EFI_D_ERROR, "Ftw: Init.. find last record completed but header not, abort()\n")); ++ DEBUG ((DEBUG_ERROR, "Ftw: Init.. find last record completed but header not, abort()\n")); + FtwAbort (&FtwDevice->FtwInstance); + } + // +@@ -1346,7 +1346,7 @@ InitFtwProtocol ( + ) { + if (FtwDevice->FtwLastWriteRecord->BootBlockUpdate == FTW_VALID_STATE) { + Status = FlushSpareBlockToBootBlock (FtwDevice); +- DEBUG ((EFI_D_ERROR, "Ftw: Restart boot block update - %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "Ftw: Restart boot block update - %r\n", Status)); + ASSERT_EFI_ERROR (Status); + FtwAbort (&FtwDevice->FtwInstance); + } else { +@@ -1357,7 +1357,7 @@ InitFtwProtocol ( + FvbHandle = GetFvbByAddress ((EFI_PHYSICAL_ADDRESS) (UINTN) ((INT64) FtwDevice->SpareAreaAddress + FtwDevice->FtwLastWriteRecord->RelativeOffset), &Fvb); + if (FvbHandle != NULL) { + Status = FtwRestart (&FtwDevice->FtwInstance, FvbHandle); +- DEBUG ((EFI_D_ERROR, "Ftw: Restart last write - %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "Ftw: Restart last write - %r\n", Status)); + ASSERT_EFI_ERROR (Status); + } + FtwAbort (&FtwDevice->FtwInstance); +@@ -1375,4 +1375,3 @@ InitFtwProtocol ( + + return EFI_SUCCESS; + } +- +diff --git a/MdeModulePkg/Universal/FaultTolerantWriteDxe/UpdateWorkingBlock.c b/MdeModulePkg/Universal/FaultTolerantWriteDxe/UpdateWorkingBlock.c +index 04cb38afd5..703da6d330 100644 +--- a/MdeModulePkg/Universal/FaultTolerantWriteDxe/UpdateWorkingBlock.c ++++ b/MdeModulePkg/Universal/FaultTolerantWriteDxe/UpdateWorkingBlock.c +@@ -86,7 +86,7 @@ IsValidWorkSpace ( + return TRUE; + } + +- DEBUG ((EFI_D_INFO, "Ftw: Work block header check mismatch\n")); ++ DEBUG ((DEBUG_INFO, "Ftw: Work block header check mismatch\n")); + return FALSE; + } + +@@ -287,7 +287,7 @@ WorkSpaceRefresh ( + &FtwDevice->FtwLastWriteHeader + ); + RemainingSpaceSize = FtwDevice->FtwWorkSpaceSize - ((UINTN) FtwDevice->FtwLastWriteHeader - (UINTN) FtwDevice->FtwWorkSpace); +- DEBUG ((EFI_D_INFO, "Ftw: Remaining work space size - %x\n", RemainingSpaceSize)); ++ DEBUG ((DEBUG_INFO, "Ftw: Remaining work space size - %x\n", RemainingSpaceSize)); + // + // If FtwGetLastWriteHeader() returns error, or the remaining space size is even not enough to contain + // one EFI_FAULT_TOLERANT_WRITE_HEADER + one EFI_FAULT_TOLERANT_WRITE_RECORD(It will cause that the header +@@ -300,7 +300,7 @@ WorkSpaceRefresh ( + // + Status = FtwReclaimWorkSpace (FtwDevice, TRUE); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "Ftw: Reclaim workspace - %r\n", Status)); ++ DEBUG ((DEBUG_ERROR, "Ftw: Reclaim workspace - %r\n", Status)); + return EFI_ABORTED; + } + // +@@ -370,7 +370,7 @@ FtwReclaimWorkSpace ( + UINT8 *Ptr; + EFI_LBA WorkSpaceLbaOffset; + +- DEBUG ((EFI_D_INFO, "Ftw: start to reclaim work space\n")); ++ DEBUG ((DEBUG_INFO, "Ftw: start to reclaim work space\n")); + + WorkSpaceLbaOffset = FtwDevice->FtwWorkSpaceLba - FtwDevice->FtwWorkBlockLba; + +@@ -601,7 +601,7 @@ FtwReclaimWorkSpace ( + + FreePool (SpareBuffer); + +- DEBUG ((EFI_D_INFO, "Ftw: reclaim work space successfully\n")); ++ DEBUG ((DEBUG_INFO, "Ftw: reclaim work space successfully\n")); + + return EFI_SUCCESS; + } +diff --git a/MdeModulePkg/Universal/FaultTolerantWritePei/FaultTolerantWritePei.c b/MdeModulePkg/Universal/FaultTolerantWritePei/FaultTolerantWritePei.c +index 439d5b01e6..ca5d5b4a22 100644 +--- a/MdeModulePkg/Universal/FaultTolerantWritePei/FaultTolerantWritePei.c ++++ b/MdeModulePkg/Universal/FaultTolerantWritePei/FaultTolerantWritePei.c +@@ -152,12 +152,12 @@ IsValidWorkSpace ( + } + + if ((WorkingHeader->WorkingBlockValid != FTW_VALID_STATE) || (WorkingHeader->WorkingBlockInvalid == FTW_VALID_STATE)) { +- DEBUG ((EFI_D_ERROR, "FtwPei: Work block header valid bit check error\n")); ++ DEBUG ((DEBUG_ERROR, "FtwPei: Work block header valid bit check error\n")); + return FALSE; + } + + if (WorkingHeader->WriteQueueSize != (WorkingLength - sizeof (EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER))) { +- DEBUG ((EFI_D_ERROR, "FtwPei: Work block header WriteQueueSize check error\n")); ++ DEBUG ((DEBUG_ERROR, "FtwPei: Work block header WriteQueueSize check error\n")); + return FALSE; + } + +@@ -165,7 +165,7 @@ IsValidWorkSpace ( + // Check signature with gEdkiiWorkingBlockSignatureGuid + // + if (!CompareGuid (&gEdkiiWorkingBlockSignatureGuid, &WorkingHeader->Signature)) { +- DEBUG ((EFI_D_ERROR, "FtwPei: Work block header signature check error, it should be gEdkiiWorkingBlockSignatureGuid\n")); ++ DEBUG ((DEBUG_ERROR, "FtwPei: Work block header signature check error, it should be gEdkiiWorkingBlockSignatureGuid\n")); + // + // To be compatible with old signature gEfiSystemNvDataFvGuid. + // +@@ -174,7 +174,7 @@ IsValidWorkSpace ( + } else { + Data = *(UINT8 *) (WorkingHeader + 1); + if (Data != 0xff) { +- DEBUG ((EFI_D_ERROR, "FtwPei: Old format FTW structure can't be handled\n")); ++ DEBUG ((DEBUG_ERROR, "FtwPei: Old format FTW structure can't be handled\n")); + ASSERT (FALSE); + return FALSE; + } +@@ -261,7 +261,7 @@ PeimFaultTolerantWriteInitialize ( + FtwLastWrite.SpareAddress = SpareAreaAddress; + FtwLastWrite.Length = SpareAreaLength; + DEBUG (( +- EFI_D_INFO, ++ DEBUG_INFO, + "FtwPei last write data: TargetAddress - 0x%x SpareAddress - 0x%x Length - 0x%x\n", + (UINTN) FtwLastWrite.TargetAddress, + (UINTN) FtwLastWrite.SpareAddress, +@@ -280,7 +280,7 @@ PeimFaultTolerantWriteInitialize ( + // + // Found the workspace. + // +- DEBUG ((EFI_D_INFO, "FtwPei: workspace in spare block is at 0x%x.\n", (UINTN) WorkSpaceInSpareArea)); ++ DEBUG ((DEBUG_INFO, "FtwPei: workspace in spare block is at 0x%x.\n", (UINTN) WorkSpaceInSpareArea)); + FtwWorkingBlockHeader = (EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER *) (UINTN) WorkSpaceInSpareArea; + break; + } +@@ -294,7 +294,7 @@ PeimFaultTolerantWriteInitialize ( + FtwLastWrite.SpareAddress = SpareAreaAddress; + FtwLastWrite.Length = SpareAreaLength; + DEBUG (( +- EFI_D_INFO, ++ DEBUG_INFO, + "FtwPei last write data: TargetAddress - 0x%x SpareAddress - 0x%x Length - 0x%x\n", + (UINTN) FtwLastWrite.TargetAddress, + (UINTN) FtwLastWrite.SpareAddress, +@@ -304,7 +304,7 @@ PeimFaultTolerantWriteInitialize ( + // + // Both are invalid. + // +- DEBUG ((EFI_D_ERROR, "FtwPei: Both working and spare block are invalid.\n")); ++ DEBUG ((DEBUG_ERROR, "FtwPei: Both working and spare block are invalid.\n")); + } + } + +diff --git a/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigKeywordHandler.c b/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigKeywordHandler.c +index 5ee866fb9e..3dfa8bf41f 100644 +--- a/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigKeywordHandler.c ++++ b/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigKeywordHandler.c +@@ -2046,7 +2046,7 @@ ExtractConfigRequest ( + // Header->VarStoreId == 0 means no storage for this question. + // + ASSERT (Header->VarStoreId != 0); +- DEBUG ((EFI_D_INFO, "Varstore Id: 0x%x\n", Header->VarStoreId)); ++ DEBUG ((DEBUG_INFO, "Varstore Id: 0x%x\n", Header->VarStoreId)); + + Storage = FindStorageFromVarId (FormPackage, Header->VarStoreId); + ASSERT (Storage != NULL); +@@ -2149,7 +2149,7 @@ ExtractConfigResp ( + // Header->VarStoreId == 0 means no storage for this question. + // + ASSERT (Header->VarStoreId != 0); +- DEBUG ((EFI_D_INFO, "Varstore Id: 0x%x\n", Header->VarStoreId)); ++ DEBUG ((DEBUG_INFO, "Varstore Id: 0x%x\n", Header->VarStoreId)); + + Storage = FindStorageFromVarId (FormPackage, Header->VarStoreId); + ASSERT (Storage != NULL); +diff --git a/MdeModulePkg/Universal/LockBox/SmmLockBox/SmmLockBox.c b/MdeModulePkg/Universal/LockBox/SmmLockBox/SmmLockBox.c +index f11c3a17ef..e4659c149f 100644 +--- a/MdeModulePkg/Universal/LockBox/SmmLockBox/SmmLockBox.c ++++ b/MdeModulePkg/Universal/LockBox/SmmLockBox/SmmLockBox.c +@@ -54,7 +54,7 @@ SmmLockBoxSave ( + // Sanity check + // + if (mLocked) { +- DEBUG ((EFI_D_ERROR, "SmmLockBox Locked!\n")); ++ DEBUG ((DEBUG_ERROR, "SmmLockBox Locked!\n")); + LockBoxParameterSave->Header.ReturnStatus = (UINT64)EFI_ACCESS_DENIED; + return ; + } +@@ -65,7 +65,7 @@ SmmLockBoxSave ( + // Sanity check + // + if (!SmmIsBufferOutsideSmmValid ((UINTN)TempLockBoxParameterSave.Buffer, (UINTN)TempLockBoxParameterSave.Length)) { +- DEBUG ((EFI_D_ERROR, "SmmLockBox Save address in SMRAM or buffer overflow!\n")); ++ DEBUG ((DEBUG_ERROR, "SmmLockBox Save address in SMRAM or buffer overflow!\n")); + LockBoxParameterSave->Header.ReturnStatus = (UINT64)EFI_ACCESS_DENIED; + return ; + } +@@ -104,7 +104,7 @@ SmmLockBoxSetAttributes ( + // Sanity check + // + if (mLocked) { +- DEBUG ((EFI_D_ERROR, "SmmLockBox Locked!\n")); ++ DEBUG ((DEBUG_ERROR, "SmmLockBox Locked!\n")); + LockBoxParameterSetAttributes->Header.ReturnStatus = (UINT64)EFI_ACCESS_DENIED; + return ; + } +@@ -143,7 +143,7 @@ SmmLockBoxUpdate ( + // Sanity check + // + if (mLocked) { +- DEBUG ((EFI_D_ERROR, "SmmLockBox Locked!\n")); ++ DEBUG ((DEBUG_ERROR, "SmmLockBox Locked!\n")); + LockBoxParameterUpdate->Header.ReturnStatus = (UINT64)EFI_ACCESS_DENIED; + return ; + } +@@ -154,7 +154,7 @@ SmmLockBoxUpdate ( + // Sanity check + // + if (!SmmIsBufferOutsideSmmValid ((UINTN)TempLockBoxParameterUpdate.Buffer, (UINTN)TempLockBoxParameterUpdate.Length)) { +- DEBUG ((EFI_D_ERROR, "SmmLockBox Update address in SMRAM or buffer overflow!\n")); ++ DEBUG ((DEBUG_ERROR, "SmmLockBox Update address in SMRAM or buffer overflow!\n")); + LockBoxParameterUpdate->Header.ReturnStatus = (UINT64)EFI_ACCESS_DENIED; + return ; + } +@@ -200,7 +200,7 @@ SmmLockBoxRestore ( + // Sanity check + // + if (!SmmIsBufferOutsideSmmValid ((UINTN)TempLockBoxParameterRestore.Buffer, (UINTN)TempLockBoxParameterRestore.Length)) { +- DEBUG ((EFI_D_ERROR, "SmmLockBox Restore address in SMRAM or buffer overflow!\n")); ++ DEBUG ((DEBUG_ERROR, "SmmLockBox Restore address in SMRAM or buffer overflow!\n")); + LockBoxParameterRestore->Header.ReturnStatus = (UINT64)EFI_ACCESS_DENIED; + return ; + } +@@ -291,11 +291,11 @@ SmmLockBoxHandler ( + // Sanity check + // + if (TempCommBufferSize < sizeof(EFI_SMM_LOCK_BOX_PARAMETER_HEADER)) { +- DEBUG ((EFI_D_ERROR, "SmmLockBox Command Buffer Size invalid!\n")); ++ DEBUG ((DEBUG_ERROR, "SmmLockBox Command Buffer Size invalid!\n")); + return EFI_SUCCESS; + } + if (!SmmIsBufferOutsideSmmValid ((UINTN)CommBuffer, TempCommBufferSize)) { +- DEBUG ((EFI_D_ERROR, "SmmLockBox Command Buffer in SMRAM or overflow!\n")); ++ DEBUG ((DEBUG_ERROR, "SmmLockBox Command Buffer in SMRAM or overflow!\n")); + return EFI_SUCCESS; + } + +@@ -310,41 +310,41 @@ SmmLockBoxHandler ( + switch (LockBoxParameterHeader->Command) { + case EFI_SMM_LOCK_BOX_COMMAND_SAVE: + if (TempCommBufferSize < sizeof(EFI_SMM_LOCK_BOX_PARAMETER_SAVE)) { +- DEBUG ((EFI_D_ERROR, "SmmLockBox Command Buffer Size for SAVE invalid!\n")); ++ DEBUG ((DEBUG_ERROR, "SmmLockBox Command Buffer Size for SAVE invalid!\n")); + break; + } + SmmLockBoxSave ((EFI_SMM_LOCK_BOX_PARAMETER_SAVE *)(UINTN)LockBoxParameterHeader); + break; + case EFI_SMM_LOCK_BOX_COMMAND_UPDATE: + if (TempCommBufferSize < sizeof(EFI_SMM_LOCK_BOX_PARAMETER_UPDATE)) { +- DEBUG ((EFI_D_ERROR, "SmmLockBox Command Buffer Size for UPDATE invalid!\n")); ++ DEBUG ((DEBUG_ERROR, "SmmLockBox Command Buffer Size for UPDATE invalid!\n")); + break; + } + SmmLockBoxUpdate ((EFI_SMM_LOCK_BOX_PARAMETER_UPDATE *)(UINTN)LockBoxParameterHeader); + break; + case EFI_SMM_LOCK_BOX_COMMAND_RESTORE: + if (TempCommBufferSize < sizeof(EFI_SMM_LOCK_BOX_PARAMETER_RESTORE)) { +- DEBUG ((EFI_D_ERROR, "SmmLockBox Command Buffer Size for RESTORE invalid!\n")); ++ DEBUG ((DEBUG_ERROR, "SmmLockBox Command Buffer Size for RESTORE invalid!\n")); + break; + } + SmmLockBoxRestore ((EFI_SMM_LOCK_BOX_PARAMETER_RESTORE *)(UINTN)LockBoxParameterHeader); + break; + case EFI_SMM_LOCK_BOX_COMMAND_SET_ATTRIBUTES: + if (TempCommBufferSize < sizeof(EFI_SMM_LOCK_BOX_PARAMETER_SET_ATTRIBUTES)) { +- DEBUG ((EFI_D_ERROR, "SmmLockBox Command Buffer Size for SET_ATTRIBUTES invalid!\n")); ++ DEBUG ((DEBUG_ERROR, "SmmLockBox Command Buffer Size for SET_ATTRIBUTES invalid!\n")); + break; + } + SmmLockBoxSetAttributes ((EFI_SMM_LOCK_BOX_PARAMETER_SET_ATTRIBUTES *)(UINTN)LockBoxParameterHeader); + break; + case EFI_SMM_LOCK_BOX_COMMAND_RESTORE_ALL_IN_PLACE: + if (TempCommBufferSize < sizeof(EFI_SMM_LOCK_BOX_PARAMETER_RESTORE_ALL_IN_PLACE)) { +- DEBUG ((EFI_D_ERROR, "SmmLockBox Command Buffer Size for RESTORE_ALL_IN_PLACE invalid!\n")); ++ DEBUG ((DEBUG_ERROR, "SmmLockBox Command Buffer Size for RESTORE_ALL_IN_PLACE invalid!\n")); + break; + } + SmmLockBoxRestoreAllInPlace ((EFI_SMM_LOCK_BOX_PARAMETER_RESTORE_ALL_IN_PLACE *)(UINTN)LockBoxParameterHeader); + break; + default: +- DEBUG ((EFI_D_ERROR, "SmmLockBox Command invalid!\n")); ++ DEBUG ((DEBUG_ERROR, "SmmLockBox Command invalid!\n")); + break; + } + +diff --git a/MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.c b/MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.c +index 400b0fa578..04c3dd34b1 100644 +--- a/MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.c ++++ b/MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.c +@@ -426,10 +426,10 @@ SmbiosAdd ( + // + if ((EntryPointStructure != NULL) && + (EntryPointStructure->TableLength + StructureSize > SMBIOS_TABLE_MAX_LENGTH)) { +- DEBUG ((EFI_D_INFO, "SmbiosAdd: Total length exceeds max 32-bit table length with type = %d size = 0x%x\n", Record->Type, StructureSize)); ++ DEBUG ((DEBUG_INFO, "SmbiosAdd: Total length exceeds max 32-bit table length with type = %d size = 0x%x\n", Record->Type, StructureSize)); + } else { + Smbios32BitTable = TRUE; +- DEBUG ((EFI_D_INFO, "SmbiosAdd: Smbios type %d with size 0x%x is added to 32-bit table\n", Record->Type, StructureSize)); ++ DEBUG ((DEBUG_INFO, "SmbiosAdd: Smbios type %d with size 0x%x is added to 32-bit table\n", Record->Type, StructureSize)); + } + } + +@@ -443,9 +443,9 @@ SmbiosAdd ( + // + if ((Smbios30EntryPointStructure != NULL) && + (Smbios30EntryPointStructure->TableMaximumSize + StructureSize > SMBIOS_3_0_TABLE_MAX_LENGTH)) { +- DEBUG ((EFI_D_INFO, "SmbiosAdd: Total length exceeds max 64-bit table length with type = %d size = 0x%x\n", Record->Type, StructureSize)); ++ DEBUG ((DEBUG_INFO, "SmbiosAdd: Total length exceeds max 64-bit table length with type = %d size = 0x%x\n", Record->Type, StructureSize)); + } else { +- DEBUG ((EFI_D_INFO, "SmbiosAdd: Smbios type %d with size 0x%x is added to 64-bit table\n", Record->Type, StructureSize)); ++ DEBUG ((DEBUG_INFO, "SmbiosAdd: Smbios type %d with size 0x%x is added to 64-bit table\n", Record->Type, StructureSize)); + Smbios64BitTable = TRUE; + } + } +@@ -691,9 +691,9 @@ SmbiosUpdateString ( + // in the Structure Table Length field of the SMBIOS Structure Table Entry Point, + // which is a WORD field limited to 65,535 bytes. + // +- DEBUG ((EFI_D_INFO, "SmbiosUpdateString: Total length exceeds max 32-bit table length\n")); ++ DEBUG ((DEBUG_INFO, "SmbiosUpdateString: Total length exceeds max 32-bit table length\n")); + } else { +- DEBUG ((EFI_D_INFO, "SmbiosUpdateString: New smbios record add to 32-bit table\n")); ++ DEBUG ((DEBUG_INFO, "SmbiosUpdateString: New smbios record add to 32-bit table\n")); + SmbiosEntry->Smbios32BitTable = TRUE; + } + } +@@ -704,9 +704,9 @@ SmbiosUpdateString ( + // + if ((Smbios30EntryPointStructure != NULL) && + (Smbios30EntryPointStructure->TableMaximumSize + InputStrLen - TargetStrLen > SMBIOS_3_0_TABLE_MAX_LENGTH)) { +- DEBUG ((EFI_D_INFO, "SmbiosUpdateString: Total length exceeds max 64-bit table length\n")); ++ DEBUG ((DEBUG_INFO, "SmbiosUpdateString: Total length exceeds max 64-bit table length\n")); + } else { +- DEBUG ((EFI_D_INFO, "SmbiosUpdateString: New smbios record add to 64-bit table\n")); ++ DEBUG ((DEBUG_INFO, "SmbiosUpdateString: New smbios record add to 64-bit table\n")); + SmbiosEntry->Smbios64BitTable = TRUE; + } + } +@@ -852,10 +852,10 @@ SmbiosRemove ( + // configuration table without depending on PI SMBIOS protocol. + // + if (SmbiosEntry->Smbios32BitTable) { +- DEBUG ((EFI_D_INFO, "SmbiosRemove: remove from 32-bit table\n")); ++ DEBUG ((DEBUG_INFO, "SmbiosRemove: remove from 32-bit table\n")); + } + if (SmbiosEntry->Smbios64BitTable) { +- DEBUG ((EFI_D_INFO, "SmbiosRemove: remove from 64-bit table\n")); ++ DEBUG ((DEBUG_INFO, "SmbiosRemove: remove from 64-bit table\n")); + } + // + // Update the whole SMBIOS table again based on which table the removed SMBIOS record is in. +@@ -1058,7 +1058,7 @@ SmbiosCreateTable ( + // It should be done only once. + // Allocate memory (below 4GB). + // +- DEBUG ((EFI_D_INFO, "SmbiosCreateTable: Initialize 32-bit entry point structure\n")); ++ DEBUG ((DEBUG_INFO, "SmbiosCreateTable: Initialize 32-bit entry point structure\n")); + EntryPointStructureData.MajorVersion = mPrivateData.Smbios.MajorVersion; + EntryPointStructureData.MinorVersion = mPrivateData.Smbios.MinorVersion; + EntryPointStructureData.SmbiosBcdRevision = (UINT8) ((PcdGet16 (PcdSmbiosVersion) >> 4) & 0xf0) | (UINT8) (PcdGet16 (PcdSmbiosVersion) & 0x0f); +@@ -1070,7 +1070,7 @@ SmbiosCreateTable ( + &PhysicalAddress + ); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "SmbiosCreateTable () could not allocate EntryPointStructure < 4GB\n")); ++ DEBUG ((DEBUG_ERROR, "SmbiosCreateTable () could not allocate EntryPointStructure < 4GB\n")); + Status = gBS->AllocatePages ( + AllocateAnyPages, + EfiRuntimeServicesData, +@@ -1143,7 +1143,7 @@ SmbiosCreateTable ( + // If new SMBIOS table size exceeds the previous allocated page, + // it is time to re-allocate memory (below 4GB). + // +- DEBUG ((EFI_D_INFO, "%a() re-allocate SMBIOS 32-bit table\n", ++ DEBUG ((DEBUG_INFO, "%a() re-allocate SMBIOS 32-bit table\n", + __FUNCTION__)); + if (EntryPointStructure->TableAddress != 0) { + // +@@ -1165,7 +1165,7 @@ SmbiosCreateTable ( + &PhysicalAddress + ); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "SmbiosCreateTable() could not allocate SMBIOS table < 4GB\n")); ++ DEBUG ((DEBUG_ERROR, "SmbiosCreateTable() could not allocate SMBIOS table < 4GB\n")); + EntryPointStructure->TableAddress = 0; + return EFI_OUT_OF_RESOURCES; + } else { +@@ -1250,7 +1250,7 @@ SmbiosCreate64BitTable ( + // It should be done only once. + // Allocate memory at any address. + // +- DEBUG ((EFI_D_INFO, "SmbiosCreateTable: Initialize 64-bit entry point structure\n")); ++ DEBUG ((DEBUG_INFO, "SmbiosCreateTable: Initialize 64-bit entry point structure\n")); + Smbios30EntryPointStructureData.MajorVersion = mPrivateData.Smbios.MajorVersion; + Smbios30EntryPointStructureData.MinorVersion = mPrivateData.Smbios.MinorVersion; + Smbios30EntryPointStructureData.DocRev = PcdGet8 (PcdSmbiosDocRev); +@@ -1261,7 +1261,7 @@ SmbiosCreate64BitTable ( + &PhysicalAddress + ); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "SmbiosCreate64BitTable() could not allocate Smbios30EntryPointStructure\n")); ++ DEBUG ((DEBUG_ERROR, "SmbiosCreate64BitTable() could not allocate Smbios30EntryPointStructure\n")); + return EFI_OUT_OF_RESOURCES; + } + +@@ -1312,7 +1312,7 @@ SmbiosCreate64BitTable ( + // If new SMBIOS table size exceeds the previous allocated page, + // it is time to re-allocate memory at anywhere. + // +- DEBUG ((EFI_D_INFO, "%a() re-allocate SMBIOS 64-bit table\n", ++ DEBUG ((DEBUG_INFO, "%a() re-allocate SMBIOS 64-bit table\n", + __FUNCTION__)); + if (Smbios30EntryPointStructure->TableAddress != 0) { + // +@@ -1333,7 +1333,7 @@ SmbiosCreate64BitTable ( + &PhysicalAddress + ); + if (EFI_ERROR (Status)) { +- DEBUG ((EFI_D_ERROR, "SmbiosCreateTable() could not allocate SMBIOS 64-bit table\n")); ++ DEBUG ((DEBUG_ERROR, "SmbiosCreateTable() could not allocate SMBIOS 64-bit table\n")); + Smbios30EntryPointStructure->TableAddress = 0; + return EFI_OUT_OF_RESOURCES; + } else { +diff --git a/MdeModulePkg/Universal/SmbiosMeasurementDxe/SmbiosMeasurementDxe.c b/MdeModulePkg/Universal/SmbiosMeasurementDxe/SmbiosMeasurementDxe.c +index 1050c9b17b..98788ead9a 100644 +--- a/MdeModulePkg/Universal/SmbiosMeasurementDxe/SmbiosMeasurementDxe.c ++++ b/MdeModulePkg/Universal/SmbiosMeasurementDxe/SmbiosMeasurementDxe.c +@@ -137,7 +137,7 @@ InternalDumpData ( + { + UINTN Index; + for (Index = 0; Index < Size; Index++) { +- DEBUG ((EFI_D_VERBOSE, "%02x", (UINTN)Data[Index])); ++ DEBUG ((DEBUG_VERBOSE, "%02x", (UINTN)Data[Index])); + } + } + +@@ -164,15 +164,15 @@ InternalDumpHex ( + Count = Size / COLUME_SIZE; + Left = Size % COLUME_SIZE; + for (Index = 0; Index < Count; Index++) { +- DEBUG ((EFI_D_VERBOSE, "%04x: ", Index * COLUME_SIZE)); ++ DEBUG ((DEBUG_VERBOSE, "%04x: ", Index * COLUME_SIZE)); + InternalDumpData (Data + Index * COLUME_SIZE, COLUME_SIZE); +- DEBUG ((EFI_D_VERBOSE, "\n")); ++ DEBUG ((DEBUG_VERBOSE, "\n")); + } + + if (Left != 0) { +- DEBUG ((EFI_D_VERBOSE, "%04x: ", Index * COLUME_SIZE)); ++ DEBUG ((DEBUG_VERBOSE, "%04x: ", Index * COLUME_SIZE)); + InternalDumpData (Data + Index * COLUME_SIZE, Left); +- DEBUG ((EFI_D_VERBOSE, "\n")); ++ DEBUG ((DEBUG_VERBOSE, "\n")); + } + } + +@@ -282,7 +282,7 @@ FilterSmbiosEntry ( + CHAR8 *String; + UINTN StringLen; + +- DEBUG ((EFI_D_INFO, "Smbios Table (Type - %d):\n", ((SMBIOS_STRUCTURE *)TableEntry)->Type)); ++ DEBUG ((DEBUG_INFO, "Smbios Table (Type - %d):\n", ((SMBIOS_STRUCTURE *)TableEntry)->Type)); + DEBUG_CODE (InternalDumpHex (TableEntry, TableEntrySize);); + + // +@@ -310,7 +310,7 @@ FilterSmbiosEntry ( + // set ' ' for string field + String = GetSmbiosStringById (TableEntry, StringId, &StringLen); + ASSERT (String != NULL); +- //DEBUG ((EFI_D_INFO,"StrId(0x%x)-%a(%d)\n", StringId, String, StringLen)); ++ //DEBUG ((DEBUG_INFO,"StrId(0x%x)-%a(%d)\n", StringId, String, StringLen)); + SetMem (String, StringLen, ' '); + } + } +@@ -322,7 +322,7 @@ FilterSmbiosEntry ( + } + } + +- DEBUG ((EFI_D_INFO, "Filter Smbios Table (Type - %d):\n", ((SMBIOS_STRUCTURE *)TableEntry)->Type)); ++ DEBUG ((DEBUG_INFO, "Filter Smbios Table (Type - %d):\n", ((SMBIOS_STRUCTURE *)TableEntry)->Type)); + DEBUG_CODE (InternalDumpHex (TableEntry, TableEntrySize);); + } + +@@ -494,22 +494,22 @@ MeasureSmbiosTable ( + (VOID **) &Smbios3Table + ); + if (!EFI_ERROR (Status)) { +- DEBUG ((EFI_D_INFO, "Smbios3Table:\n")); +- DEBUG ((EFI_D_INFO, " AnchorString - '%c%c%c%c%c'\n", ++ DEBUG ((DEBUG_INFO, "Smbios3Table:\n")); ++ DEBUG ((DEBUG_INFO, " AnchorString - '%c%c%c%c%c'\n", + Smbios3Table->AnchorString[0], + Smbios3Table->AnchorString[1], + Smbios3Table->AnchorString[2], + Smbios3Table->AnchorString[3], + Smbios3Table->AnchorString[4] + )); +- DEBUG ((EFI_D_INFO, " EntryPointStructureChecksum - 0x%02x\n", Smbios3Table->EntryPointStructureChecksum)); +- DEBUG ((EFI_D_INFO, " EntryPointLength - 0x%02x\n", Smbios3Table->EntryPointLength)); +- DEBUG ((EFI_D_INFO, " MajorVersion - 0x%02x\n", Smbios3Table->MajorVersion)); +- DEBUG ((EFI_D_INFO, " MinorVersion - 0x%02x\n", Smbios3Table->MinorVersion)); +- DEBUG ((EFI_D_INFO, " DocRev - 0x%02x\n", Smbios3Table->DocRev)); +- DEBUG ((EFI_D_INFO, " EntryPointRevision - 0x%02x\n", Smbios3Table->EntryPointRevision)); +- DEBUG ((EFI_D_INFO, " TableMaximumSize - 0x%08x\n", Smbios3Table->TableMaximumSize)); +- DEBUG ((EFI_D_INFO, " TableAddress - 0x%016lx\n", Smbios3Table->TableAddress)); ++ DEBUG ((DEBUG_INFO, " EntryPointStructureChecksum - 0x%02x\n", Smbios3Table->EntryPointStructureChecksum)); ++ DEBUG ((DEBUG_INFO, " EntryPointLength - 0x%02x\n", Smbios3Table->EntryPointLength)); ++ DEBUG ((DEBUG_INFO, " MajorVersion - 0x%02x\n", Smbios3Table->MajorVersion)); ++ DEBUG ((DEBUG_INFO, " MinorVersion - 0x%02x\n", Smbios3Table->MinorVersion)); ++ DEBUG ((DEBUG_INFO, " DocRev - 0x%02x\n", Smbios3Table->DocRev)); ++ DEBUG ((DEBUG_INFO, " EntryPointRevision - 0x%02x\n", Smbios3Table->EntryPointRevision)); ++ DEBUG ((DEBUG_INFO, " TableMaximumSize - 0x%08x\n", Smbios3Table->TableMaximumSize)); ++ DEBUG ((DEBUG_INFO, " TableAddress - 0x%016lx\n", Smbios3Table->TableAddress)); + } + } + +@@ -519,38 +519,38 @@ MeasureSmbiosTable ( + (VOID **) &SmbiosTable + ); + if (!EFI_ERROR (Status)) { +- DEBUG ((EFI_D_INFO, "SmbiosTable:\n")); +- DEBUG ((EFI_D_INFO, " AnchorString - '%c%c%c%c'\n", ++ DEBUG ((DEBUG_INFO, "SmbiosTable:\n")); ++ DEBUG ((DEBUG_INFO, " AnchorString - '%c%c%c%c'\n", + SmbiosTable->AnchorString[0], + SmbiosTable->AnchorString[1], + SmbiosTable->AnchorString[2], + SmbiosTable->AnchorString[3] + )); +- DEBUG ((EFI_D_INFO, " EntryPointStructureChecksum - 0x%02x\n", SmbiosTable->EntryPointStructureChecksum)); +- DEBUG ((EFI_D_INFO, " EntryPointLength - 0x%02x\n", SmbiosTable->EntryPointLength)); +- DEBUG ((EFI_D_INFO, " MajorVersion - 0x%02x\n", SmbiosTable->MajorVersion)); +- DEBUG ((EFI_D_INFO, " MinorVersion - 0x%02x\n", SmbiosTable->MinorVersion)); +- DEBUG ((EFI_D_INFO, " MaxStructureSize - 0x%08x\n", SmbiosTable->MaxStructureSize)); +- DEBUG ((EFI_D_INFO, " EntryPointRevision - 0x%02x\n", SmbiosTable->EntryPointRevision)); +- DEBUG ((EFI_D_INFO, " FormattedArea - '%c%c%c%c%c'\n", ++ DEBUG ((DEBUG_INFO, " EntryPointStructureChecksum - 0x%02x\n", SmbiosTable->EntryPointStructureChecksum)); ++ DEBUG ((DEBUG_INFO, " EntryPointLength - 0x%02x\n", SmbiosTable->EntryPointLength)); ++ DEBUG ((DEBUG_INFO, " MajorVersion - 0x%02x\n", SmbiosTable->MajorVersion)); ++ DEBUG ((DEBUG_INFO, " MinorVersion - 0x%02x\n", SmbiosTable->MinorVersion)); ++ DEBUG ((DEBUG_INFO, " MaxStructureSize - 0x%08x\n", SmbiosTable->MaxStructureSize)); ++ DEBUG ((DEBUG_INFO, " EntryPointRevision - 0x%02x\n", SmbiosTable->EntryPointRevision)); ++ DEBUG ((DEBUG_INFO, " FormattedArea - '%c%c%c%c%c'\n", + SmbiosTable->FormattedArea[0], + SmbiosTable->FormattedArea[1], + SmbiosTable->FormattedArea[2], + SmbiosTable->FormattedArea[3], + SmbiosTable->FormattedArea[4] + )); +- DEBUG ((EFI_D_INFO, " IntermediateAnchorString - '%c%c%c%c%c'\n", ++ DEBUG ((DEBUG_INFO, " IntermediateAnchorString - '%c%c%c%c%c'\n", + SmbiosTable->IntermediateAnchorString[0], + SmbiosTable->IntermediateAnchorString[1], + SmbiosTable->IntermediateAnchorString[2], + SmbiosTable->IntermediateAnchorString[3], + SmbiosTable->IntermediateAnchorString[4] + )); +- DEBUG ((EFI_D_INFO, " IntermediateChecksum - 0x%02x\n", SmbiosTable->IntermediateChecksum)); +- DEBUG ((EFI_D_INFO, " TableLength - 0x%04x\n", SmbiosTable->TableLength)); +- DEBUG ((EFI_D_INFO, " TableAddress - 0x%08x\n", SmbiosTable->TableAddress)); +- DEBUG ((EFI_D_INFO, " NumberOfSmbiosStructures - 0x%04x\n", SmbiosTable->NumberOfSmbiosStructures)); +- DEBUG ((EFI_D_INFO, " SmbiosBcdRevision - 0x%02x\n", SmbiosTable->SmbiosBcdRevision)); ++ DEBUG ((DEBUG_INFO, " IntermediateChecksum - 0x%02x\n", SmbiosTable->IntermediateChecksum)); ++ DEBUG ((DEBUG_INFO, " TableLength - 0x%04x\n", SmbiosTable->TableLength)); ++ DEBUG ((DEBUG_INFO, " TableAddress - 0x%08x\n", SmbiosTable->TableAddress)); ++ DEBUG ((DEBUG_INFO, " NumberOfSmbiosStructures - 0x%04x\n", SmbiosTable->NumberOfSmbiosStructures)); ++ DEBUG ((DEBUG_INFO, " SmbiosBcdRevision - 0x%02x\n", SmbiosTable->SmbiosBcdRevision)); + } + } + +diff --git a/MdeModulePkg/Universal/SmmCommunicationBufferDxe/SmmCommunicationBufferDxe.c b/MdeModulePkg/Universal/SmmCommunicationBufferDxe/SmmCommunicationBufferDxe.c +index 9a5dbb2720..a2434908a8 100644 +--- a/MdeModulePkg/Universal/SmmCommunicationBufferDxe/SmmCommunicationBufferDxe.c ++++ b/MdeModulePkg/Universal/SmmCommunicationBufferDxe/SmmCommunicationBufferDxe.c +@@ -71,16 +71,16 @@ SmmCommunicationBufferEntryPoint ( + Entry->NumberOfPages = DEFAULT_COMMON_PI_SMM_COMMUNIATION_REGION_PAGES; + Entry->Attribute = 0; + +- DEBUG ((EFI_D_INFO, "PiSmmCommunicationRegionTable:(0x%x)\n", PiSmmCommunicationRegionTable)); +- DEBUG ((EFI_D_INFO, " Version - 0x%x\n", PiSmmCommunicationRegionTable->Version)); +- DEBUG ((EFI_D_INFO, " NumberOfEntries - 0x%x\n", PiSmmCommunicationRegionTable->NumberOfEntries)); +- DEBUG ((EFI_D_INFO, " DescriptorSize - 0x%x\n", PiSmmCommunicationRegionTable->DescriptorSize)); +- DEBUG ((EFI_D_INFO, "Entry:(0x%x)\n", Entry)); +- DEBUG ((EFI_D_INFO, " Type - 0x%x\n", Entry->Type)); +- DEBUG ((EFI_D_INFO, " PhysicalStart - 0x%lx\n", Entry->PhysicalStart)); +- DEBUG ((EFI_D_INFO, " VirtualStart - 0x%lx\n", Entry->VirtualStart)); +- DEBUG ((EFI_D_INFO, " NumberOfPages - 0x%lx\n", Entry->NumberOfPages)); +- DEBUG ((EFI_D_INFO, " Attribute - 0x%lx\n", Entry->Attribute)); ++ DEBUG ((DEBUG_INFO, "PiSmmCommunicationRegionTable:(0x%x)\n", PiSmmCommunicationRegionTable)); ++ DEBUG ((DEBUG_INFO, " Version - 0x%x\n", PiSmmCommunicationRegionTable->Version)); ++ DEBUG ((DEBUG_INFO, " NumberOfEntries - 0x%x\n", PiSmmCommunicationRegionTable->NumberOfEntries)); ++ DEBUG ((DEBUG_INFO, " DescriptorSize - 0x%x\n", PiSmmCommunicationRegionTable->DescriptorSize)); ++ DEBUG ((DEBUG_INFO, "Entry:(0x%x)\n", Entry)); ++ DEBUG ((DEBUG_INFO, " Type - 0x%x\n", Entry->Type)); ++ DEBUG ((DEBUG_INFO, " PhysicalStart - 0x%lx\n", Entry->PhysicalStart)); ++ DEBUG ((DEBUG_INFO, " VirtualStart - 0x%lx\n", Entry->VirtualStart)); ++ DEBUG ((DEBUG_INFO, " NumberOfPages - 0x%lx\n", Entry->NumberOfPages)); ++ DEBUG ((DEBUG_INFO, " Attribute - 0x%lx\n", Entry->Attribute)); + + // + // Publish this table, so that other driver can use the buffer. +diff --git a/MdeModulePkg/Universal/TimestampDxe/TimestampDxe.c b/MdeModulePkg/Universal/TimestampDxe/TimestampDxe.c +index 2ca4ae5cd2..a318ae00b5 100644 +--- a/MdeModulePkg/Universal/TimestampDxe/TimestampDxe.c ++++ b/MdeModulePkg/Universal/TimestampDxe/TimestampDxe.c +@@ -142,7 +142,7 @@ TimestampDriverInitialize ( + mTimestampProperties.EndValue = mTimerLibStartValue - mTimerLibEndValue; + } + +- DEBUG ((EFI_D_INFO, "TimerFrequency:0x%lx, TimerLibStartTime:0x%lx, TimerLibEndtime:0x%lx\n", mTimestampProperties.Frequency, mTimerLibStartValue, mTimerLibEndValue)); ++ DEBUG ((DEBUG_INFO, "TimerFrequency:0x%lx, TimerLibStartTime:0x%lx, TimerLibEndtime:0x%lx\n", mTimestampProperties.Frequency, mTimerLibStartValue, mTimerLibEndValue)); + + // + // Install the Timestamp Protocol onto a new handle +diff --git a/MdeModulePkg/Universal/Variable/Pei/Variable.c b/MdeModulePkg/Universal/Variable/Pei/Variable.c +index f420b58165..468b73215b 100644 +--- a/MdeModulePkg/Universal/Variable/Pei/Variable.c ++++ b/MdeModulePkg/Universal/Variable/Pei/Variable.c +@@ -608,14 +608,14 @@ GetVariableStore ( + // Let FvHeader point to spare block. + // + FvHeader = (EFI_FIRMWARE_VOLUME_HEADER *) (UINTN) FtwLastWriteData->SpareAddress; +- DEBUG ((EFI_D_INFO, "PeiVariable: NV storage is backed up in spare block: 0x%x\n", (UINTN) FtwLastWriteData->SpareAddress)); ++ DEBUG ((DEBUG_INFO, "PeiVariable: NV storage is backed up in spare block: 0x%x\n", (UINTN) FtwLastWriteData->SpareAddress)); + } else if ((FtwLastWriteData->TargetAddress > NvStorageBase) && (FtwLastWriteData->TargetAddress < (NvStorageBase + NvStorageSize))) { + StoreInfo->FtwLastWriteData = FtwLastWriteData; + // + // Flash NV storage from the offset is backed up in spare block. + // + BackUpOffset = (UINT32) (FtwLastWriteData->TargetAddress - NvStorageBase); +- DEBUG ((EFI_D_INFO, "PeiVariable: High partial NV storage from offset: %x is backed up in spare block: 0x%x\n", BackUpOffset, (UINTN) FtwLastWriteData->SpareAddress)); ++ DEBUG ((DEBUG_INFO, "PeiVariable: High partial NV storage from offset: %x is backed up in spare block: 0x%x\n", BackUpOffset, (UINTN) FtwLastWriteData->SpareAddress)); + // + // At least one block data in flash NV storage is still valid, so still leave FvHeader point to NV storage base. + // +@@ -626,7 +626,7 @@ GetVariableStore ( + // Check if the Firmware Volume is not corrupted + // + if ((FvHeader->Signature != EFI_FVH_SIGNATURE) || (!CompareGuid (&gEfiSystemNvDataFvGuid, &FvHeader->FileSystemGuid))) { +- DEBUG ((EFI_D_ERROR, "Firmware Volume for Variable Store is corrupted\n")); ++ DEBUG ((DEBUG_ERROR, "Firmware Volume for Variable Store is corrupted\n")); + break; + } + +diff --git a/MdeModulePkg/Universal/Variable/RuntimeDxe/Measurement.c b/MdeModulePkg/Universal/Variable/RuntimeDxe/Measurement.c +index 75350ca2ef..6f459e9549 100644 +--- a/MdeModulePkg/Universal/Variable/RuntimeDxe/Measurement.c ++++ b/MdeModulePkg/Universal/Variable/RuntimeDxe/Measurement.c +@@ -121,8 +121,8 @@ MeasureVariable ( + ); + } + +- DEBUG ((EFI_D_INFO, "VariableDxe: MeasureVariable (Pcr - %x, EventType - %x, ", (UINTN)7, (UINTN)EV_EFI_VARIABLE_DRIVER_CONFIG)); +- DEBUG ((EFI_D_INFO, "VariableName - %s, VendorGuid - %g)\n", VarName, VendorGuid)); ++ DEBUG ((DEBUG_INFO, "VariableDxe: MeasureVariable (Pcr - %x, EventType - %x, ", (UINTN)7, (UINTN)EV_EFI_VARIABLE_DRIVER_CONFIG)); ++ DEBUG ((DEBUG_INFO, "VariableName - %s, VendorGuid - %g)\n", VarName, VendorGuid)); + + Status = TpmMeasureAndLogData ( + 7, +@@ -257,7 +257,7 @@ SecureBootHook ( + VariableData, + VariableDataSize + ); +- DEBUG ((EFI_D_INFO, "MeasureBootPolicyVariable - %r\n", Status)); ++ DEBUG ((DEBUG_INFO, "MeasureBootPolicyVariable - %r\n", Status)); + + if (VariableData != NULL) { + FreePool (VariableData); +diff --git a/MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.c b/MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.c +index 41f8ff4ceb..5115bcf816 100644 +--- a/MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.c ++++ b/MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.c +@@ -281,15 +281,15 @@ RecordVarErrorFlag ( + VAR_ERROR_FLAG TempFlag; + + DEBUG_CODE ( +- DEBUG ((EFI_D_ERROR, "RecordVarErrorFlag (0x%02x) %s:%g - 0x%08x - 0x%x\n", Flag, VariableName, VendorGuid, Attributes, VariableSize)); ++ DEBUG ((DEBUG_ERROR, "RecordVarErrorFlag (0x%02x) %s:%g - 0x%08x - 0x%x\n", Flag, VariableName, VendorGuid, Attributes, VariableSize)); + if (Flag == VAR_ERROR_FLAG_SYSTEM_ERROR) { + if (AtRuntime ()) { +- DEBUG ((EFI_D_ERROR, "CommonRuntimeVariableSpace = 0x%x - CommonVariableTotalSize = 0x%x\n", mVariableModuleGlobal->CommonRuntimeVariableSpace, mVariableModuleGlobal->CommonVariableTotalSize)); ++ DEBUG ((DEBUG_ERROR, "CommonRuntimeVariableSpace = 0x%x - CommonVariableTotalSize = 0x%x\n", mVariableModuleGlobal->CommonRuntimeVariableSpace, mVariableModuleGlobal->CommonVariableTotalSize)); + } else { +- DEBUG ((EFI_D_ERROR, "CommonVariableSpace = 0x%x - CommonVariableTotalSize = 0x%x\n", mVariableModuleGlobal->CommonVariableSpace, mVariableModuleGlobal->CommonVariableTotalSize)); ++ DEBUG ((DEBUG_ERROR, "CommonVariableSpace = 0x%x - CommonVariableTotalSize = 0x%x\n", mVariableModuleGlobal->CommonVariableSpace, mVariableModuleGlobal->CommonVariableTotalSize)); + } + } else { +- DEBUG ((EFI_D_ERROR, "CommonMaxUserVariableSpace = 0x%x - CommonUserVariableTotalSize = 0x%x\n", mVariableModuleGlobal->CommonMaxUserVariableSpace, mVariableModuleGlobal->CommonUserVariableTotalSize)); ++ DEBUG ((DEBUG_ERROR, "CommonMaxUserVariableSpace = 0x%x - CommonUserVariableTotalSize = 0x%x\n", mVariableModuleGlobal->CommonMaxUserVariableSpace, mVariableModuleGlobal->CommonUserVariableTotalSize)); + } + ); + +@@ -369,7 +369,7 @@ InitializeVarErrorFlag ( + } + + Flag = mCurrentBootVarErrFlag; +- DEBUG ((EFI_D_INFO, "Initialize variable error flag (%02x)\n", Flag)); ++ DEBUG ((DEBUG_INFO, "Initialize variable error flag (%02x)\n", Flag)); + + Status = FindVariable ( + VAR_ERROR_FLAG_NAME, +@@ -1532,7 +1532,7 @@ AutoUpdateLangVariable ( + ISO_639_2_ENTRY_SIZE + 1, Attributes, 0, 0, &Variable, NULL); + } + +- DEBUG ((EFI_D_INFO, "Variable Driver Auto Update PlatformLang, PlatformLang:%a, Lang:%a Status: %r\n", BestPlatformLang, BestLang, Status)); ++ DEBUG ((DEBUG_INFO, "Variable Driver Auto Update PlatformLang, PlatformLang:%a, Lang:%a Status: %r\n", BestPlatformLang, BestLang, Status)); + } + } + +@@ -1581,7 +1581,7 @@ AutoUpdateLangVariable ( + AsciiStrSize (BestPlatformLang), Attributes, 0, 0, &Variable, NULL); + } + +- DEBUG ((EFI_D_INFO, "Variable Driver Auto Update Lang, Lang:%a, PlatformLang:%a Status: %r\n", BestLang, BestPlatformLang, Status)); ++ DEBUG ((DEBUG_INFO, "Variable Driver Auto Update Lang, Lang:%a, PlatformLang:%a Status: %r\n", BestLang, BestPlatformLang, Status)); + } + } + } +@@ -1659,14 +1659,14 @@ UpdateVariable ( + // + // Trying to update NV variable prior to the installation of EFI_VARIABLE_WRITE_ARCH_PROTOCOL + // +- DEBUG ((EFI_D_ERROR, "Update NV variable before EFI_VARIABLE_WRITE_ARCH_PROTOCOL ready - %r\n", EFI_NOT_AVAILABLE_YET)); ++ DEBUG ((DEBUG_ERROR, "Update NV variable before EFI_VARIABLE_WRITE_ARCH_PROTOCOL ready - %r\n", EFI_NOT_AVAILABLE_YET)); + return EFI_NOT_AVAILABLE_YET; + } else if ((Attributes & VARIABLE_ATTRIBUTE_AT_AW) != 0) { + // + // Trying to update volatile authenticated variable prior to the installation of EFI_VARIABLE_WRITE_ARCH_PROTOCOL + // The authenticated variable perhaps is not initialized, just return here. + // +- DEBUG ((EFI_D_ERROR, "Update AUTH variable before EFI_VARIABLE_WRITE_ARCH_PROTOCOL ready - %r\n", EFI_NOT_AVAILABLE_YET)); ++ DEBUG ((DEBUG_ERROR, "Update AUTH variable before EFI_VARIABLE_WRITE_ARCH_PROTOCOL ready - %r\n", EFI_NOT_AVAILABLE_YET)); + return EFI_NOT_AVAILABLE_YET; + } + } +@@ -2764,7 +2764,7 @@ VariableServiceSetVariable ( + // 2. The only attribute differing is EFI_VARIABLE_APPEND_WRITE + // + Status = EFI_INVALID_PARAMETER; +- DEBUG ((EFI_D_INFO, "[Variable]: Rewritten a preexisting variable(0x%08x) with different attributes(0x%08x) - %g:%s\n", Variable.CurrPtr->Attributes, Attributes, VendorGuid, VariableName)); ++ DEBUG ((DEBUG_INFO, "[Variable]: Rewritten a preexisting variable(0x%08x) with different attributes(0x%08x) - %g:%s\n", Variable.CurrPtr->Attributes, Attributes, VendorGuid, VariableName)); + goto Done; + } + } +@@ -3264,7 +3264,7 @@ FlushHobVariableToFlash ( + // + // All HOB variables have been flushed in flash. + // +- DEBUG ((EFI_D_INFO, "Variable driver: all HOB variables have been flushed in flash.\n")); ++ DEBUG ((DEBUG_INFO, "Variable driver: all HOB variables have been flushed in flash.\n")); + if (mVariableModuleGlobal->VariableGlobal.VariableRuntimeCacheContext.HobFlushComplete != NULL) { + *(mVariableModuleGlobal->VariableGlobal.VariableRuntimeCacheContext.HobFlushComplete) = TRUE; + } +@@ -3333,7 +3333,7 @@ VariableWriteServiceInitialize ( + GetVariableHeaderSize (mVariableModuleGlobal->VariableGlobal.AuthFormat); + Status = AuthVariableLibInitialize (&mAuthContextIn, &mAuthContextOut); + if (!EFI_ERROR (Status)) { +- DEBUG ((EFI_D_INFO, "Variable driver will work with auth variable support!\n")); ++ DEBUG ((DEBUG_INFO, "Variable driver will work with auth variable support!\n")); + mVariableModuleGlobal->VariableGlobal.AuthSupport = TRUE; + if (mAuthContextOut.AuthVarEntry != NULL) { + for (Index = 0; Index < mAuthContextOut.AuthVarEntryCount; Index++) { +@@ -3347,8 +3347,8 @@ VariableWriteServiceInitialize ( + } + } + } else if (Status == EFI_UNSUPPORTED) { +- DEBUG ((EFI_D_INFO, "NOTICE - AuthVariableLibInitialize() returns %r!\n", Status)); +- DEBUG ((EFI_D_INFO, "Variable driver will continue to work without auth variable support!\n")); ++ DEBUG ((DEBUG_INFO, "NOTICE - AuthVariableLibInitialize() returns %r!\n", Status)); ++ DEBUG ((DEBUG_INFO, "Variable driver will continue to work without auth variable support!\n")); + mVariableModuleGlobal->VariableGlobal.AuthSupport = FALSE; + Status = EFI_SUCCESS; + } +@@ -3550,7 +3550,7 @@ GetHobVariableStore ( + return EFI_OUT_OF_RESOURCES; + } + } else { +- DEBUG ((EFI_D_ERROR, "HOB Variable Store header is corrupted!\n")); ++ DEBUG ((DEBUG_ERROR, "HOB Variable Store header is corrupted!\n")); + } + } + +@@ -3598,14 +3598,14 @@ VariableCommonInitialize ( + // has been initialized in InitNonVolatileVariableStore(). + // + if (mVariableModuleGlobal->VariableGlobal.AuthFormat) { +- DEBUG ((EFI_D_INFO, "Variable driver will work with auth variable format!\n")); ++ DEBUG ((DEBUG_INFO, "Variable driver will work with auth variable format!\n")); + // + // Set AuthSupport to FALSE first, VariableWriteServiceInitialize() will initialize it. + // + mVariableModuleGlobal->VariableGlobal.AuthSupport = FALSE; + VariableGuid = &gEfiAuthenticatedVariableGuid; + } else { +- DEBUG ((EFI_D_INFO, "Variable driver will work without auth variable support!\n")); ++ DEBUG ((DEBUG_INFO, "Variable driver will work without auth variable support!\n")); + mVariableModuleGlobal->VariableGlobal.AuthSupport = FALSE; + VariableGuid = &gEfiVariableGuid; + } +@@ -3750,4 +3750,3 @@ GetFvbInfoByAddress ( + + return Status; + } +- +diff --git a/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableDxe.c b/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableDxe.c +index 0fca0bb2a9..9f19d73dd6 100644 +--- a/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableDxe.c ++++ b/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableDxe.c +@@ -345,7 +345,7 @@ OnEndOfDxe ( + { + EFI_STATUS Status; + +- DEBUG ((EFI_D_INFO, "[Variable]END_OF_DXE is signaled\n")); ++ DEBUG ((DEBUG_INFO, "[Variable]END_OF_DXE is signaled\n")); + MorLockInitAtEndOfDxe (); + Status = LockVariablePolicy (); + ASSERT_EFI_ERROR (Status); +@@ -638,4 +638,3 @@ VariableServiceInitialize ( + + return EFI_SUCCESS; + } +- +diff --git a/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmm.c b/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmm.c +index 014aa79850..1ee6d2194e 100644 +--- a/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmm.c ++++ b/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmm.c +@@ -489,17 +489,17 @@ SmmVariableHandler ( + TempCommBufferSize = *CommBufferSize; + + if (TempCommBufferSize < SMM_VARIABLE_COMMUNICATE_HEADER_SIZE) { +- DEBUG ((EFI_D_ERROR, "SmmVariableHandler: SMM communication buffer size invalid!\n")); ++ DEBUG ((DEBUG_ERROR, "SmmVariableHandler: SMM communication buffer size invalid!\n")); + return EFI_SUCCESS; + } + CommBufferPayloadSize = TempCommBufferSize - SMM_VARIABLE_COMMUNICATE_HEADER_SIZE; + if (CommBufferPayloadSize > mVariableBufferPayloadSize) { +- DEBUG ((EFI_D_ERROR, "SmmVariableHandler: SMM communication buffer payload size invalid!\n")); ++ DEBUG ((DEBUG_ERROR, "SmmVariableHandler: SMM communication buffer payload size invalid!\n")); + return EFI_SUCCESS; + } + + if (!VariableSmmIsBufferOutsideSmmValid ((UINTN)CommBuffer, TempCommBufferSize)) { +- DEBUG ((EFI_D_ERROR, "SmmVariableHandler: SMM communication buffer in SMRAM or overflow!\n")); ++ DEBUG ((DEBUG_ERROR, "SmmVariableHandler: SMM communication buffer in SMRAM or overflow!\n")); + return EFI_SUCCESS; + } + +@@ -507,7 +507,7 @@ SmmVariableHandler ( + switch (SmmVariableFunctionHeader->Function) { + case SMM_VARIABLE_FUNCTION_GET_VARIABLE: + if (CommBufferPayloadSize < OFFSET_OF(SMM_VARIABLE_COMMUNICATE_ACCESS_VARIABLE, Name)) { +- DEBUG ((EFI_D_ERROR, "GetVariable: SMM communication buffer size invalid!\n")); ++ DEBUG ((DEBUG_ERROR, "GetVariable: SMM communication buffer size invalid!\n")); + return EFI_SUCCESS; + } + // +@@ -530,7 +530,7 @@ SmmVariableHandler ( + // SMRAM range check already covered before + // + if (InfoSize > CommBufferPayloadSize) { +- DEBUG ((EFI_D_ERROR, "GetVariable: Data size exceed communication buffer size limit!\n")); ++ DEBUG ((DEBUG_ERROR, "GetVariable: Data size exceed communication buffer size limit!\n")); + Status = EFI_ACCESS_DENIED; + goto EXIT; + } +@@ -561,7 +561,7 @@ SmmVariableHandler ( + + case SMM_VARIABLE_FUNCTION_GET_NEXT_VARIABLE_NAME: + if (CommBufferPayloadSize < OFFSET_OF(SMM_VARIABLE_COMMUNICATE_GET_NEXT_VARIABLE_NAME, Name)) { +- DEBUG ((EFI_D_ERROR, "GetNextVariableName: SMM communication buffer size invalid!\n")); ++ DEBUG ((DEBUG_ERROR, "GetNextVariableName: SMM communication buffer size invalid!\n")); + return EFI_SUCCESS; + } + // +@@ -582,7 +582,7 @@ SmmVariableHandler ( + // SMRAM range check already covered before + // + if (InfoSize > CommBufferPayloadSize) { +- DEBUG ((EFI_D_ERROR, "GetNextVariableName: Data size exceed communication buffer size limit!\n")); ++ DEBUG ((DEBUG_ERROR, "GetNextVariableName: Data size exceed communication buffer size limit!\n")); + Status = EFI_ACCESS_DENIED; + goto EXIT; + } +@@ -606,7 +606,7 @@ SmmVariableHandler ( + + case SMM_VARIABLE_FUNCTION_SET_VARIABLE: + if (CommBufferPayloadSize < OFFSET_OF(SMM_VARIABLE_COMMUNICATE_ACCESS_VARIABLE, Name)) { +- DEBUG ((EFI_D_ERROR, "SetVariable: SMM communication buffer size invalid!\n")); ++ DEBUG ((DEBUG_ERROR, "SetVariable: SMM communication buffer size invalid!\n")); + return EFI_SUCCESS; + } + // +@@ -630,7 +630,7 @@ SmmVariableHandler ( + // Data buffer should not contain SMM range + // + if (InfoSize > CommBufferPayloadSize) { +- DEBUG ((EFI_D_ERROR, "SetVariable: Data size exceed communication buffer size limit!\n")); ++ DEBUG ((DEBUG_ERROR, "SetVariable: Data size exceed communication buffer size limit!\n")); + Status = EFI_ACCESS_DENIED; + goto EXIT; + } +@@ -660,7 +660,7 @@ SmmVariableHandler ( + + case SMM_VARIABLE_FUNCTION_QUERY_VARIABLE_INFO: + if (CommBufferPayloadSize < sizeof (SMM_VARIABLE_COMMUNICATE_QUERY_VARIABLE_INFO)) { +- DEBUG ((EFI_D_ERROR, "QueryVariableInfo: SMM communication buffer size invalid!\n")); ++ DEBUG ((DEBUG_ERROR, "QueryVariableInfo: SMM communication buffer size invalid!\n")); + return EFI_SUCCESS; + } + QueryVariableInfo = (SMM_VARIABLE_COMMUNICATE_QUERY_VARIABLE_INFO *) SmmVariableFunctionHeader->Data; +@@ -675,7 +675,7 @@ SmmVariableHandler ( + + case SMM_VARIABLE_FUNCTION_GET_PAYLOAD_SIZE: + if (CommBufferPayloadSize < sizeof (SMM_VARIABLE_COMMUNICATE_GET_PAYLOAD_SIZE)) { +- DEBUG ((EFI_D_ERROR, "GetPayloadSize: SMM communication buffer size invalid!\n")); ++ DEBUG ((DEBUG_ERROR, "GetPayloadSize: SMM communication buffer size invalid!\n")); + return EFI_SUCCESS; + } + GetPayloadSize = (SMM_VARIABLE_COMMUNICATE_GET_PAYLOAD_SIZE *) SmmVariableFunctionHeader->Data; +@@ -752,7 +752,7 @@ SmmVariableHandler ( + break; + case SMM_VARIABLE_FUNCTION_VAR_CHECK_VARIABLE_PROPERTY_GET: + if (CommBufferPayloadSize < OFFSET_OF (SMM_VARIABLE_COMMUNICATE_VAR_CHECK_VARIABLE_PROPERTY, Name)) { +- DEBUG ((EFI_D_ERROR, "VarCheckVariablePropertyGet: SMM communication buffer size invalid!\n")); ++ DEBUG ((DEBUG_ERROR, "VarCheckVariablePropertyGet: SMM communication buffer size invalid!\n")); + return EFI_SUCCESS; + } + // +@@ -773,7 +773,7 @@ SmmVariableHandler ( + // SMRAM range check already covered before + // + if (InfoSize > CommBufferPayloadSize) { +- DEBUG ((EFI_D_ERROR, "VarCheckVariablePropertyGet: Data size exceed communication buffer size limit!\n")); ++ DEBUG ((DEBUG_ERROR, "VarCheckVariablePropertyGet: Data size exceed communication buffer size limit!\n")); + Status = EFI_ACCESS_DENIED; + goto EXIT; + } +@@ -979,7 +979,7 @@ SmmEndOfDxeCallback ( + { + EFI_STATUS Status; + +- DEBUG ((EFI_D_INFO, "[Variable]SMM_END_OF_DXE is signaled\n")); ++ DEBUG ((DEBUG_INFO, "[Variable]SMM_END_OF_DXE is signaled\n")); + MorLockInitAtEndOfDxe (); + Status = LockVariablePolicy (); + ASSERT_EFI_ERROR (Status); +@@ -1191,5 +1191,3 @@ MmVariableServiceInitialize ( + + return EFI_SUCCESS; + } +- +- +diff --git a/MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.c b/MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.c +index f72b4df80a..2403e1a1cd 100644 +--- a/MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.c ++++ b/MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.c +@@ -69,7 +69,7 @@ WatchdogTimerDriverExpires ( + mWatchdogTimerNotifyFunction (mWatchdogTimerPeriod); + } + +- DEBUG ((EFI_D_ERROR, "Watchdog Timer resetting system\n")); ++ DEBUG ((DEBUG_ERROR, "Watchdog Timer resetting system\n")); + + // + // Reset the platform +-- +2.39.3 + diff --git a/edk2-MdeModulePkg-Duplicate-BaseRngLibTimerLib-to-MdeModu.patch b/edk2-MdeModulePkg-Duplicate-BaseRngLibTimerLib-to-MdeModu.patch new file mode 100644 index 0000000..8f6d306 --- /dev/null +++ b/edk2-MdeModulePkg-Duplicate-BaseRngLibTimerLib-to-MdeModu.patch @@ -0,0 +1,2255 @@ +From a653b017b8d7222e95106eabb835c33a9dcb8f69 Mon Sep 17 00:00:00 2001 +From: Jon Maloy +Date: Thu, 20 Jun 2024 15:31:15 -0400 +Subject: [PATCH 15/31] MdeModulePkg: Duplicate BaseRngLibTimerLib to + MdeModulePkg + +RH-Author: Jon Maloy +RH-MergeRequest: 77: UINT32 overflow in S3 ResumeCount and Pixiefail fixes +RH-Jira: RHEL-21854 RHEL-21856 RHEL-40099 +RH-Acked-by: Gerd Hoffmann +RH-Commit: [15/31] dd75e7846edc2449229c32d5c4fc5fef0133069f + +JIRA: https://issues.redhat.com/browse/RHEL-21856 +Upstream: Merged +CVE: CVE-2023-45237 + +commit 2f981bddcbd6adde5f682caf0d3812ba92bc0f73 +Author: Pierre Gondois +Date: Fri Aug 11 16:33:02 2023 +0200 + + MdeModulePkg: Duplicate BaseRngLibTimerLib to MdeModulePkg + + BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=4504 + + The BaseRngLibTimerLib allows to generate number based on a timer. + This mechanism allows to have a basic non-secure implementation + for non-production platforms. + To bind and identify Random Number Generators implementations with + a GUID, an unsafe GUID should be added. This GUID cannot be added + to the MdePkg unless it is also added to a specification. + + To keep the MdePkg self-contained, copy the BaseRngLibTimerLib to + the MdeModulePkg. This will allow to define an unsafe Rng GUID + in a later patch in the MdeModulePkg. + + The MdePkg implementation will be removed later. This allows to give + some time to platform owners to switch to the MdeModulePkg + implementation. + + Signed-off-by: Pierre Gondois + Reviewed-by: Sami Mujawar + Acked-by: Ard Biesheuvel + Tested-by: Kun Qin + +Signed-off-by: Jon Maloy +--- + ArmVirtPkg/ArmVirt.dsc.inc | 2 +- + EmulatorPkg/EmulatorPkg.dsc | 2 +- + .../BaseRngLibTimerLib/BaseRngLibTimerLib.inf | 36 + + .../BaseRngLibTimerLib/BaseRngLibTimerLib.uni | 15 + + .../Library/BaseRngLibTimerLib/RngLibTimer.c | 192 ++++ + MdeModulePkg/MdeModulePkg.dsc | 1 + + NetworkPkg/NetworkPkg.dsc | 4 +- + OvmfPkg/AmdSev/AmdSevX64.dsc | 2 +- + OvmfPkg/Bhyve/BhyveX64.dsc | 2 +- + OvmfPkg/CloudHv/CloudHvX64.dsc | 949 ++++++++++++++++++ + OvmfPkg/IntelTdx/IntelTdxX64.dsc | 779 ++++++++++++++ + OvmfPkg/Microvm/MicrovmX64.dsc | 2 +- + OvmfPkg/OvmfPkgIa32.dsc | 2 +- + OvmfPkg/OvmfPkgIa32X64.dsc | 2 +- + OvmfPkg/OvmfPkgX64.dsc | 2 +- + OvmfPkg/OvmfXen.dsc | 2 +- + SecurityPkg/SecurityPkg.dsc | 4 +- + SignedCapsulePkg/SignedCapsulePkg.dsc | 4 +- + 18 files changed, 1987 insertions(+), 15 deletions(-) + create mode 100644 MdeModulePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf + create mode 100644 MdeModulePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.uni + create mode 100644 MdeModulePkg/Library/BaseRngLibTimerLib/RngLibTimer.c + create mode 100644 OvmfPkg/CloudHv/CloudHvX64.dsc + create mode 100644 OvmfPkg/IntelTdx/IntelTdxX64.dsc + +diff --git a/ArmVirtPkg/ArmVirt.dsc.inc b/ArmVirtPkg/ArmVirt.dsc.inc +index 5a1598d90c..584affa836 100644 +--- a/ArmVirtPkg/ArmVirt.dsc.inc ++++ b/ArmVirtPkg/ArmVirt.dsc.inc +@@ -161,7 +161,7 @@ + OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf + !endif + BaseCryptLib|CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf +- RngLib|MdePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf ++ RngLib|MdeModulePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf + + # + # Secure Boot dependencies +diff --git a/EmulatorPkg/EmulatorPkg.dsc b/EmulatorPkg/EmulatorPkg.dsc +index 554c13ddb5..4168837b67 100644 +--- a/EmulatorPkg/EmulatorPkg.dsc ++++ b/EmulatorPkg/EmulatorPkg.dsc +@@ -127,7 +127,7 @@ + FileHandleLib|MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf + + !if $(SECURE_BOOT_ENABLE) == TRUE +- RngLib|MdePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf ++ RngLib|MdeModulePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf + IntrinsicLib|CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf + OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf + PlatformSecureLib|SecurityPkg/Library/PlatformSecureLibNull/PlatformSecureLibNull.inf +diff --git a/MdeModulePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf b/MdeModulePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf +new file mode 100644 +index 0000000000..f857290e82 +--- /dev/null ++++ b/MdeModulePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf +@@ -0,0 +1,36 @@ ++## @file ++# Instance of RNG (Random Number Generator) Library. ++# ++# BaseRng Library that uses the TimerLib to provide reasonably random numbers. ++# Do NOT use this on a production system as this uses the system performance ++# counter rather than a true source of random in addition to having a weak ++# random algorithm. This is provided primarily as a source of entropy for ++# OpenSSL for platforms that do not have a good built in RngLib as this ++# emulates what was done before (though it isn't perfect). ++# ++# Copyright (c) Microsoft Corporation. All rights reserved.
++# ++# SPDX-License-Identifier: BSD-2-Clause-Patent ++# ++# ++## ++ ++[Defines] ++ INF_VERSION = 1.27 ++ BASE_NAME = BaseRngLibTimerLib ++ MODULE_UNI_FILE = BaseRngLibTimerLib.uni ++ FILE_GUID = 74950C45-10FC-4AB5-B114-49C87C17409B ++ MODULE_TYPE = BASE ++ VERSION_STRING = 1.0 ++ LIBRARY_CLASS = RngLib ++ ++[Sources] ++ RngLibTimer.c ++ ++[Packages] ++ MdePkg/MdePkg.dec ++ ++[LibraryClasses] ++ BaseLib ++ DebugLib ++ TimerLib +diff --git a/MdeModulePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.uni b/MdeModulePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.uni +new file mode 100644 +index 0000000000..fde24b9f01 +--- /dev/null ++++ b/MdeModulePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.uni +@@ -0,0 +1,15 @@ ++// @file ++// Instance of RNG (Random Number Generator) Library. ++// ++// RngLib that uses TimerLib's performance counter to provide random numbers. ++// ++// Copyright (c) Microsoft Corporation. ++// ++// SPDX-License-Identifier: BSD-2-Clause-Patent ++// ++ ++ ++#string STR_MODULE_ABSTRACT #language en-US "Instance of RNG Library" ++ ++#string STR_MODULE_DESCRIPTION #language en-US "BaseRng Library that uses the TimerLib to provide low-entropy random numbers" ++ +diff --git a/MdeModulePkg/Library/BaseRngLibTimerLib/RngLibTimer.c b/MdeModulePkg/Library/BaseRngLibTimerLib/RngLibTimer.c +new file mode 100644 +index 0000000000..980854d67b +--- /dev/null ++++ b/MdeModulePkg/Library/BaseRngLibTimerLib/RngLibTimer.c +@@ -0,0 +1,192 @@ ++/** @file ++ BaseRng Library that uses the TimerLib to provide reasonably random numbers. ++ Do not use this on a production system. ++ ++ Copyright (c) Microsoft Corporation. ++ SPDX-License-Identifier: BSD-2-Clause-Patent ++**/ ++ ++#include ++#include ++#include ++#include ++ ++#define DEFAULT_DELAY_TIME_IN_MICROSECONDS 10 ++ ++/** ++ Using the TimerLib GetPerformanceCounterProperties() we delay ++ for enough time for the PerformanceCounter to increment. ++ ++ If the return value from GetPerformanceCounterProperties (TimerLib) ++ is zero, this function will return 10 and attempt to assert. ++ **/ ++STATIC ++UINT32 ++CalculateMinimumDecentDelayInMicroseconds ( ++ VOID ++ ) ++{ ++ UINT64 CounterHz; ++ ++ // Get the counter properties ++ CounterHz = GetPerformanceCounterProperties (NULL, NULL); ++ // Make sure we won't divide by zero ++ if (CounterHz == 0) { ++ ASSERT (CounterHz != 0); // Assert so the developer knows something is wrong ++ return DEFAULT_DELAY_TIME_IN_MICROSECONDS; ++ } ++ ++ // Calculate the minimum delay based on 1.5 microseconds divided by the hertz. ++ // We calculate the length of a cycle (1/CounterHz) and multiply it by 1.5 microseconds ++ // This ensures that the performance counter has increased by at least one ++ return (UINT32)(MAX (DivU64x64Remainder (1500000, CounterHz, NULL), 1)); ++} ++ ++/** ++ Generates a 16-bit random number. ++ ++ if Rand is NULL, then ASSERT(). ++ ++ @param[out] Rand Buffer pointer to store the 16-bit random value. ++ ++ @retval TRUE Random number generated successfully. ++ @retval FALSE Failed to generate the random number. ++ ++**/ ++BOOLEAN ++EFIAPI ++GetRandomNumber16 ( ++ OUT UINT16 *Rand ++ ) ++{ ++ UINT32 Index; ++ UINT8 *RandPtr; ++ UINT32 DelayInMicroSeconds; ++ ++ ASSERT (Rand != NULL); ++ ++ if (Rand == NULL) { ++ return FALSE; ++ } ++ ++ DelayInMicroSeconds = CalculateMinimumDecentDelayInMicroseconds (); ++ RandPtr = (UINT8 *)Rand; ++ // Get 2 bytes of random ish data ++ for (Index = 0; Index < sizeof (UINT16); Index++) { ++ *RandPtr = (UINT8)(GetPerformanceCounter () & 0xFF); ++ // Delay to give the performance counter a chance to change ++ MicroSecondDelay (DelayInMicroSeconds); ++ RandPtr++; ++ } ++ ++ return TRUE; ++} ++ ++/** ++ Generates a 32-bit random number. ++ ++ if Rand is NULL, then ASSERT(). ++ ++ @param[out] Rand Buffer pointer to store the 32-bit random value. ++ ++ @retval TRUE Random number generated successfully. ++ @retval FALSE Failed to generate the random number. ++ ++**/ ++BOOLEAN ++EFIAPI ++GetRandomNumber32 ( ++ OUT UINT32 *Rand ++ ) ++{ ++ UINT32 Index; ++ UINT8 *RandPtr; ++ UINT32 DelayInMicroSeconds; ++ ++ ASSERT (Rand != NULL); ++ ++ if (NULL == Rand) { ++ return FALSE; ++ } ++ ++ RandPtr = (UINT8 *)Rand; ++ DelayInMicroSeconds = CalculateMinimumDecentDelayInMicroseconds (); ++ // Get 4 bytes of random ish data ++ for (Index = 0; Index < sizeof (UINT32); Index++) { ++ *RandPtr = (UINT8)(GetPerformanceCounter () & 0xFF); ++ // Delay to give the performance counter a chance to change ++ MicroSecondDelay (DelayInMicroSeconds); ++ RandPtr++; ++ } ++ ++ return TRUE; ++} ++ ++/** ++ Generates a 64-bit random number. ++ ++ if Rand is NULL, then ASSERT(). ++ ++ @param[out] Rand Buffer pointer to store the 64-bit random value. ++ ++ @retval TRUE Random number generated successfully. ++ @retval FALSE Failed to generate the random number. ++ ++**/ ++BOOLEAN ++EFIAPI ++GetRandomNumber64 ( ++ OUT UINT64 *Rand ++ ) ++{ ++ UINT32 Index; ++ UINT8 *RandPtr; ++ UINT32 DelayInMicroSeconds; ++ ++ ASSERT (Rand != NULL); ++ ++ if (NULL == Rand) { ++ return FALSE; ++ } ++ ++ RandPtr = (UINT8 *)Rand; ++ DelayInMicroSeconds = CalculateMinimumDecentDelayInMicroseconds (); ++ // Get 8 bytes of random ish data ++ for (Index = 0; Index < sizeof (UINT64); Index++) { ++ *RandPtr = (UINT8)(GetPerformanceCounter () & 0xFF); ++ // Delay to give the performance counter a chance to change ++ MicroSecondDelay (DelayInMicroSeconds); ++ RandPtr++; ++ } ++ ++ return TRUE; ++} ++ ++/** ++ Generates a 128-bit random number. ++ ++ if Rand is NULL, then ASSERT(). ++ ++ @param[out] Rand Buffer pointer to store the 128-bit random value. ++ ++ @retval TRUE Random number generated successfully. ++ @retval FALSE Failed to generate the random number. ++ ++**/ ++BOOLEAN ++EFIAPI ++GetRandomNumber128 ( ++ OUT UINT64 *Rand ++ ) ++{ ++ ASSERT (Rand != NULL); ++ // This should take around 80ms ++ ++ // Read first 64 bits ++ if (!GetRandomNumber64 (Rand)) { ++ return FALSE; ++ } ++ ++ // Read second 64 bits ++ return GetRandomNumber64 (++Rand); ++} +diff --git a/MdeModulePkg/MdeModulePkg.dsc b/MdeModulePkg/MdeModulePkg.dsc +index b1d8346186..a0f32431c2 100644 +--- a/MdeModulePkg/MdeModulePkg.dsc ++++ b/MdeModulePkg/MdeModulePkg.dsc +@@ -336,6 +336,7 @@ + MdeModulePkg/Library/BaseBmpSupportLib/BaseBmpSupportLib.inf + MdeModulePkg/Library/DisplayUpdateProgressLibGraphics/DisplayUpdateProgressLibGraphics.inf + MdeModulePkg/Library/DisplayUpdateProgressLibText/DisplayUpdateProgressLibText.inf ++ MdeModulePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf + + MdeModulePkg/Universal/BdsDxe/BdsDxe.inf + MdeModulePkg/Application/BootManagerMenuApp/BootManagerMenuApp.inf +diff --git a/NetworkPkg/NetworkPkg.dsc b/NetworkPkg/NetworkPkg.dsc +index 8691a0f5d0..8362aef07e 100644 +--- a/NetworkPkg/NetworkPkg.dsc ++++ b/NetworkPkg/NetworkPkg.dsc +@@ -80,10 +80,10 @@ + ArmSoftFloatLib|ArmPkg/Library/ArmSoftFloatLib/ArmSoftFloatLib.inf + + [LibraryClasses.ARM] +- RngLib|MdePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf ++ RngLib|MdeModulePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf + + [LibraryClasses.RISCV64] +- RngLib|MdePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf ++ RngLib|MdeModulePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf + + [PcdsFeatureFlag] + gEfiMdePkgTokenSpaceGuid.PcdComponentName2Disable|TRUE +diff --git a/OvmfPkg/AmdSev/AmdSevX64.dsc b/OvmfPkg/AmdSev/AmdSevX64.dsc +index ccdf9b8ce0..a1a6897bc2 100644 +--- a/OvmfPkg/AmdSev/AmdSevX64.dsc ++++ b/OvmfPkg/AmdSev/AmdSevX64.dsc +@@ -188,7 +188,7 @@ + + IntrinsicLib|CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf + OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf +- RngLib|MdePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf ++ RngLib|MdeModulePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf + + AuthVariableLib|MdeModulePkg/Library/AuthVariableLibNull/AuthVariableLibNull.inf + VarCheckLib|MdeModulePkg/Library/VarCheckLib/VarCheckLib.inf +diff --git a/OvmfPkg/Bhyve/BhyveX64.dsc b/OvmfPkg/Bhyve/BhyveX64.dsc +index d8fe607d1c..1f710a0a04 100644 +--- a/OvmfPkg/Bhyve/BhyveX64.dsc ++++ b/OvmfPkg/Bhyve/BhyveX64.dsc +@@ -192,7 +192,7 @@ + !else + OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf + !endif +- RngLib|MdePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf ++ RngLib|MdeModulePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf + + !if $(SECURE_BOOT_ENABLE) == TRUE + PlatformSecureLib|OvmfPkg/Bhyve/Library/PlatformSecureLib/PlatformSecureLib.inf +diff --git a/OvmfPkg/CloudHv/CloudHvX64.dsc b/OvmfPkg/CloudHv/CloudHvX64.dsc +new file mode 100644 +index 0000000000..d76da20784 +--- /dev/null ++++ b/OvmfPkg/CloudHv/CloudHvX64.dsc +@@ -0,0 +1,949 @@ ++## @file ++# EFI/Framework Open Virtual Machine Firmware (OVMF) platform ++# ++# Copyright (c) 2006 - 2022, Intel Corporation. All rights reserved.
++# (C) Copyright 2016 Hewlett Packard Enterprise Development LP
++# Copyright (c) Microsoft Corporation. ++# ++# SPDX-License-Identifier: BSD-2-Clause-Patent ++# ++## ++ ++################################################################################ ++# ++# Defines Section - statements that will be processed to create a Makefile. ++# ++################################################################################ ++[Defines] ++ PLATFORM_NAME = CloudHv ++ PLATFORM_GUID = 97bb49d2-9814-4bea-8311-f8b9ac231e11 ++ PLATFORM_VERSION = 0.1 ++ DSC_SPECIFICATION = 0x00010005 ++ OUTPUT_DIRECTORY = Build/CloudHvX64 ++ SUPPORTED_ARCHITECTURES = X64 ++ BUILD_TARGETS = NOOPT|DEBUG|RELEASE ++ SKUID_IDENTIFIER = DEFAULT ++ FLASH_DEFINITION = OvmfPkg/CloudHv/CloudHvX64.fdf ++ ++ # ++ # Defines for default states. These can be changed on the command line. ++ # -D FLAG=VALUE ++ # ++ DEFINE SECURE_BOOT_ENABLE = FALSE ++ DEFINE SMM_REQUIRE = FALSE ++ DEFINE SOURCE_DEBUG_ENABLE = FALSE ++ ++!include OvmfPkg/OvmfTpmDefines.dsc.inc ++ ++ # ++ # Network definition ++ # ++ DEFINE NETWORK_TLS_ENABLE = FALSE ++ DEFINE NETWORK_IP6_ENABLE = FALSE ++ DEFINE NETWORK_HTTP_BOOT_ENABLE = FALSE ++ DEFINE NETWORK_ALLOW_HTTP_CONNECTIONS = TRUE ++ DEFINE NETWORK_ISCSI_ENABLE = TRUE ++ ++!include NetworkPkg/NetworkDefines.dsc.inc ++ ++ # ++ # Device drivers ++ # ++ DEFINE PVSCSI_ENABLE = FALSE ++ DEFINE MPT_SCSI_ENABLE = FALSE ++ DEFINE LSI_SCSI_ENABLE = FALSE ++ ++ # ++ # Flash size selection. Setting FD_SIZE_IN_KB on the command line directly to ++ # one of the supported values, in place of any of the convenience macros, is ++ # permitted. ++ # ++!ifdef $(FD_SIZE_1MB) ++ DEFINE FD_SIZE_IN_KB = 1024 ++!else ++!ifdef $(FD_SIZE_2MB) ++ DEFINE FD_SIZE_IN_KB = 2048 ++!else ++!ifdef $(FD_SIZE_4MB) ++ DEFINE FD_SIZE_IN_KB = 4096 ++!else ++ DEFINE FD_SIZE_IN_KB = 4096 ++!endif ++!endif ++!endif ++ ++[BuildOptions] ++ GCC:RELEASE_*_*_CC_FLAGS = -DMDEPKG_NDEBUG ++ INTEL:RELEASE_*_*_CC_FLAGS = /D MDEPKG_NDEBUG ++ MSFT:RELEASE_*_*_CC_FLAGS = /D MDEPKG_NDEBUG ++!if $(TOOL_CHAIN_TAG) != "XCODE5" && $(TOOL_CHAIN_TAG) != "CLANGPDB" ++ GCC:*_*_*_CC_FLAGS = -mno-mmx -mno-sse ++!endif ++!if $(SOURCE_DEBUG_ENABLE) == TRUE ++ MSFT:*_*_X64_GENFW_FLAGS = --keepexceptiontable ++ GCC:*_*_X64_GENFW_FLAGS = --keepexceptiontable ++ INTEL:*_*_X64_GENFW_FLAGS = --keepexceptiontable ++!endif ++ RELEASE_*_*_GENFW_FLAGS = --zero ++ ++ # ++ # Disable deprecated APIs. ++ # ++ MSFT:*_*_*_CC_FLAGS = /D DISABLE_NEW_DEPRECATED_INTERFACES ++ INTEL:*_*_*_CC_FLAGS = /D DISABLE_NEW_DEPRECATED_INTERFACES ++ GCC:*_*_*_CC_FLAGS = -D DISABLE_NEW_DEPRECATED_INTERFACES ++ ++ # ++ # SECURE_BOOT_FEATURE_ENABLED ++ # ++!if $(SECURE_BOOT_ENABLE) == TRUE ++ MSFT:*_*_*_CC_FLAGS = /D SECURE_BOOT_FEATURE_ENABLED ++ INTEL:*_*_*_CC_FLAGS = /D SECURE_BOOT_FEATURE_ENABLED ++ GCC:*_*_*_CC_FLAGS = -D SECURE_BOOT_FEATURE_ENABLED ++!endif ++ ++!include NetworkPkg/NetworkBuildOptions.dsc.inc ++ ++[BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER] ++ GCC:*_*_*_DLINK_FLAGS = -z common-page-size=0x1000 ++ XCODE:*_*_*_DLINK_FLAGS = -seg1addr 0x1000 -segalign 0x1000 ++ XCODE:*_*_*_MTOC_FLAGS = -align 0x1000 ++ CLANGPDB:*_*_*_DLINK_FLAGS = /ALIGN:4096 ++ ++# Force PE/COFF sections to be aligned at 4KB boundaries to support page level ++# protection of DXE_SMM_DRIVER/SMM_CORE modules ++[BuildOptions.common.EDKII.DXE_SMM_DRIVER, BuildOptions.common.EDKII.SMM_CORE] ++ GCC:*_*_*_DLINK_FLAGS = -z common-page-size=0x1000 ++ XCODE:*_*_*_DLINK_FLAGS = -seg1addr 0x1000 -segalign 0x1000 ++ XCODE:*_*_*_MTOC_FLAGS = -align 0x1000 ++ CLANGPDB:*_*_*_DLINK_FLAGS = /ALIGN:4096 ++ ++################################################################################ ++# ++# SKU Identification section - list of all SKU IDs supported by this Platform. ++# ++################################################################################ ++[SkuIds] ++ 0|DEFAULT ++ ++################################################################################ ++# ++# Library Class section - list of all Library Classes needed by this Platform. ++# ++################################################################################ ++ ++!include MdePkg/MdeLibs.dsc.inc ++ ++[LibraryClasses] ++ PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf ++ TimerLib|OvmfPkg/Library/AcpiTimerLib/BaseAcpiTimerLib.inf ++ ResetSystemLib|OvmfPkg/Library/ResetSystemLib/BaseResetSystemLib.inf ++ PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf ++ BaseMemoryLib|MdePkg/Library/BaseMemoryLibRepStr/BaseMemoryLibRepStr.inf ++ BaseLib|MdePkg/Library/BaseLib/BaseLib.inf ++ SafeIntLib|MdePkg/Library/BaseSafeIntLib/BaseSafeIntLib.inf ++ TimeBaseLib|EmbeddedPkg/Library/TimeBaseLib/TimeBaseLib.inf ++ BmpSupportLib|MdeModulePkg/Library/BaseBmpSupportLib/BaseBmpSupportLib.inf ++ SynchronizationLib|MdePkg/Library/BaseSynchronizationLib/BaseSynchronizationLib.inf ++ CpuLib|MdePkg/Library/BaseCpuLib/BaseCpuLib.inf ++ PerformanceLib|MdePkg/Library/BasePerformanceLibNull/BasePerformanceLibNull.inf ++ PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf ++ CacheMaintenanceLib|MdePkg/Library/BaseCacheMaintenanceLib/BaseCacheMaintenanceLib.inf ++ UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf ++ UefiHiiServicesLib|MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.inf ++ HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf ++ SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf ++ UefiBootManagerLib|MdeModulePkg/Library/UefiBootManagerLib/UefiBootManagerLib.inf ++ BootLogoLib|MdeModulePkg/Library/BootLogoLib/BootLogoLib.inf ++ FileExplorerLib|MdeModulePkg/Library/FileExplorerLib/FileExplorerLib.inf ++ CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf ++ DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf ++ DxeServicesTableLib|MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf ++ PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf ++ PciCf8Lib|MdePkg/Library/BasePciCf8Lib/BasePciCf8Lib.inf ++ PciExpressLib|MdePkg/Library/BasePciExpressLib/BasePciExpressLib.inf ++ PciLib|MdePkg/Library/BasePciLibCf8/BasePciLibCf8.inf ++ PciSegmentLib|MdePkg/Library/BasePciSegmentLibPci/BasePciSegmentLibPci.inf ++ PciCapLib|OvmfPkg/Library/BasePciCapLib/BasePciCapLib.inf ++ PciCapPciSegmentLib|OvmfPkg/Library/BasePciCapPciSegmentLib/BasePciCapPciSegmentLib.inf ++ PciCapPciIoLib|OvmfPkg/Library/UefiPciCapPciIoLib/UefiPciCapPciIoLib.inf ++ CcProbeLib|MdePkg/Library/CcProbeLibNull/CcProbeLibNull.inf ++ IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsicSev.inf ++ OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf ++ SerialPortLib|PcAtChipsetPkg/Library/SerialIoLib/SerialIoLib.inf ++ MtrrLib|UefiCpuPkg/Library/MtrrLib/MtrrLib.inf ++ MicrocodeLib|UefiCpuPkg/Library/MicrocodeLib/MicrocodeLib.inf ++ UefiLib|MdePkg/Library/UefiLib/UefiLib.inf ++ UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf ++ UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf ++ UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf ++ UefiApplicationEntryPoint|MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf ++ DevicePathLib|MdePkg/Library/UefiDevicePathLibDevicePathProtocol/UefiDevicePathLibDevicePathProtocol.inf ++ NvVarsFileLib|OvmfPkg/Library/NvVarsFileLib/NvVarsFileLib.inf ++ FileHandleLib|MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf ++ UefiCpuLib|UefiCpuPkg/Library/BaseUefiCpuLib/BaseUefiCpuLib.inf ++ SecurityManagementLib|MdeModulePkg/Library/DxeSecurityManagementLib/DxeSecurityManagementLib.inf ++ SerializeVariablesLib|OvmfPkg/Library/SerializeVariablesLib/SerializeVariablesLib.inf ++ QemuFwCfgLib|OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgLibNull.inf ++ QemuFwCfgSimpleParserLib|OvmfPkg/Library/QemuFwCfgSimpleParserLib/QemuFwCfgSimpleParserLib.inf ++ VirtioLib|OvmfPkg/Library/VirtioLib/VirtioLib.inf ++ LoadLinuxLib|OvmfPkg/Library/LoadLinuxLib/LoadLinuxLib.inf ++ MemEncryptSevLib|OvmfPkg/Library/BaseMemEncryptSevLib/DxeMemEncryptSevLib.inf ++ PeiHardwareInfoLib|OvmfPkg/Library/HardwareInfoLib/PeiHardwareInfoLib.inf ++ DxeHardwareInfoLib|OvmfPkg/Library/HardwareInfoLib/DxeHardwareInfoLib.inf ++!if $(SMM_REQUIRE) == FALSE ++ LockBoxLib|OvmfPkg/Library/LockBoxLib/LockBoxBaseLib.inf ++!endif ++ CustomizedDisplayLib|MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLib.inf ++ FrameBufferBltLib|MdeModulePkg/Library/FrameBufferBltLib/FrameBufferBltLib.inf ++ MemEncryptTdxLib|OvmfPkg/Library/BaseMemEncryptTdxLib/BaseMemEncryptTdxLib.inf ++ ++!if $(SOURCE_DEBUG_ENABLE) == TRUE ++ PeCoffExtraActionLib|SourceLevelDebugPkg/Library/PeCoffExtraActionLibDebug/PeCoffExtraActionLibDebug.inf ++ DebugCommunicationLib|SourceLevelDebugPkg/Library/DebugCommunicationLibSerialPort/DebugCommunicationLibSerialPort.inf ++!else ++ PeCoffExtraActionLib|MdePkg/Library/BasePeCoffExtraActionLibNull/BasePeCoffExtraActionLibNull.inf ++ DebugAgentLib|MdeModulePkg/Library/DebugAgentLibNull/DebugAgentLibNull.inf ++!endif ++ ++ LocalApicLib|UefiCpuPkg/Library/BaseXApicX2ApicLib/BaseXApicX2ApicLib.inf ++ DebugPrintErrorLevelLib|MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib.inf ++ ++ IntrinsicLib|CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf ++!if $(NETWORK_TLS_ENABLE) == TRUE ++ OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLib.inf ++!else ++ OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf ++!endif ++ RngLib|MdeModulePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf ++ ++!if $(SECURE_BOOT_ENABLE) == TRUE ++ PlatformSecureLib|OvmfPkg/Library/PlatformSecureLib/PlatformSecureLib.inf ++ AuthVariableLib|SecurityPkg/Library/AuthVariableLib/AuthVariableLib.inf ++ SecureBootVariableLib|SecurityPkg/Library/SecureBootVariableLib/SecureBootVariableLib.inf ++ PlatformPKProtectionLib|SecurityPkg/Library/PlatformPKProtectionLibVarPolicy/PlatformPKProtectionLibVarPolicy.inf ++ SecureBootVariableProvisionLib|SecurityPkg/Library/SecureBootVariableProvisionLib/SecureBootVariableProvisionLib.inf ++!else ++ AuthVariableLib|MdeModulePkg/Library/AuthVariableLibNull/AuthVariableLibNull.inf ++!endif ++ VarCheckLib|MdeModulePkg/Library/VarCheckLib/VarCheckLib.inf ++ VariablePolicyLib|MdeModulePkg/Library/VariablePolicyLib/VariablePolicyLib.inf ++ VariablePolicyHelperLib|MdeModulePkg/Library/VariablePolicyHelperLib/VariablePolicyHelperLib.inf ++ VariableFlashInfoLib|MdeModulePkg/Library/BaseVariableFlashInfoLib/BaseVariableFlashInfoLib.inf ++ ++ ++ # ++ # Network libraries ++ # ++!include NetworkPkg/NetworkLibs.dsc.inc ++ ++!if $(NETWORK_TLS_ENABLE) == TRUE ++ TlsLib|CryptoPkg/Library/TlsLib/TlsLib.inf ++!endif ++ ++ ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf ++ ShellCEntryLib|ShellPkg/Library/UefiShellCEntryLib/UefiShellCEntryLib.inf ++ S3BootScriptLib|MdeModulePkg/Library/PiDxeS3BootScriptLib/DxeS3BootScriptLib.inf ++ SmbusLib|MdePkg/Library/BaseSmbusLibNull/BaseSmbusLibNull.inf ++ OrderedCollectionLib|MdePkg/Library/BaseOrderedCollectionRedBlackTreeLib/BaseOrderedCollectionRedBlackTreeLib.inf ++ ++!include OvmfPkg/OvmfTpmLibs.dsc.inc ++ ++[LibraryClasses.common] ++ BaseCryptLib|CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf ++ CcExitLib|OvmfPkg/Library/CcExitLib/CcExitLib.inf ++ TdxLib|MdePkg/Library/TdxLib/TdxLib.inf ++ ++[LibraryClasses.common.SEC] ++ TimerLib|OvmfPkg/Library/AcpiTimerLib/BaseRomAcpiTimerLib.inf ++!ifdef $(DEBUG_ON_SERIAL_PORT) ++ DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf ++!else ++ DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformRomDebugLibIoPort.inf ++!endif ++ ReportStatusCodeLib|MdeModulePkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf ++ ExtractGuidedSectionLib|MdePkg/Library/BaseExtractGuidedSectionLib/BaseExtractGuidedSectionLib.inf ++!if $(SOURCE_DEBUG_ENABLE) == TRUE ++ DebugAgentLib|SourceLevelDebugPkg/Library/DebugAgent/SecPeiDebugAgentLib.inf ++!endif ++ HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf ++ PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf ++ PeiServicesTablePointerLib|MdePkg/Library/PeiServicesTablePointerLibIdt/PeiServicesTablePointerLibIdt.inf ++ MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf ++!if $(TOOL_CHAIN_TAG) == "XCODE5" ++ CpuExceptionHandlerLib|UefiCpuPkg/Library/CpuExceptionHandlerLib/Xcode5SecPeiCpuExceptionHandlerLib.inf ++!else ++ CpuExceptionHandlerLib|UefiCpuPkg/Library/CpuExceptionHandlerLib/SecPeiCpuExceptionHandlerLib.inf ++!endif ++ CcExitLib|OvmfPkg/Library/CcExitLib/SecCcExitLib.inf ++ MemEncryptSevLib|OvmfPkg/Library/BaseMemEncryptSevLib/SecMemEncryptSevLib.inf ++ ++[LibraryClasses.common.PEI_CORE] ++ HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf ++ PeiServicesTablePointerLib|MdePkg/Library/PeiServicesTablePointerLibIdt/PeiServicesTablePointerLibIdt.inf ++ PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf ++ MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf ++ PeiCoreEntryPoint|MdePkg/Library/PeiCoreEntryPoint/PeiCoreEntryPoint.inf ++ ReportStatusCodeLib|MdeModulePkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf ++ OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf ++ PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf ++!ifdef $(DEBUG_ON_SERIAL_PORT) ++ DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf ++!else ++ DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort.inf ++!endif ++ PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf ++ ++[LibraryClasses.common.PEIM] ++ HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf ++ PeiServicesTablePointerLib|MdePkg/Library/PeiServicesTablePointerLibIdt/PeiServicesTablePointerLibIdt.inf ++ PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf ++ MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf ++ PeimEntryPoint|MdePkg/Library/PeimEntryPoint/PeimEntryPoint.inf ++ ReportStatusCodeLib|MdeModulePkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf ++ OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf ++ PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf ++!ifdef $(DEBUG_ON_SERIAL_PORT) ++ DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf ++!else ++ DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort.inf ++!endif ++ PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf ++ ResourcePublicationLib|MdePkg/Library/PeiResourcePublicationLib/PeiResourcePublicationLib.inf ++ ExtractGuidedSectionLib|MdePkg/Library/PeiExtractGuidedSectionLib/PeiExtractGuidedSectionLib.inf ++!if $(SOURCE_DEBUG_ENABLE) == TRUE ++ DebugAgentLib|SourceLevelDebugPkg/Library/DebugAgent/SecPeiDebugAgentLib.inf ++!endif ++ CpuExceptionHandlerLib|UefiCpuPkg/Library/CpuExceptionHandlerLib/PeiCpuExceptionHandlerLib.inf ++ MpInitLib|UefiCpuPkg/Library/MpInitLib/PeiMpInitLib.inf ++ QemuFwCfgS3Lib|OvmfPkg/Library/QemuFwCfgS3Lib/PeiQemuFwCfgS3LibFwCfg.inf ++ PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf ++ QemuFwCfgLib|OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgLibNull.inf ++ ++ MemEncryptSevLib|OvmfPkg/Library/BaseMemEncryptSevLib/PeiMemEncryptSevLib.inf ++ PlatformInitLib|OvmfPkg/Library/PlatformInitLib/PlatformInitLib.inf ++ ++[LibraryClasses.common.DXE_CORE] ++ HobLib|MdePkg/Library/DxeCoreHobLib/DxeCoreHobLib.inf ++ DxeCoreEntryPoint|MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.inf ++ MemoryAllocationLib|MdeModulePkg/Library/DxeCoreMemoryAllocationLib/DxeCoreMemoryAllocationLib.inf ++ ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf ++!ifdef $(DEBUG_ON_SERIAL_PORT) ++ DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf ++!else ++ DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort.inf ++!endif ++ ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf ++!if $(SOURCE_DEBUG_ENABLE) == TRUE ++ DebugAgentLib|SourceLevelDebugPkg/Library/DebugAgent/DxeDebugAgentLib.inf ++!endif ++ CpuExceptionHandlerLib|UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeCpuExceptionHandlerLib.inf ++ PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf ++ ++[LibraryClasses.common.DXE_RUNTIME_DRIVER] ++ PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf ++ TimerLib|OvmfPkg/Library/AcpiTimerLib/DxeAcpiTimerLib.inf ++ ResetSystemLib|OvmfPkg/Library/ResetSystemLib/DxeResetSystemLib.inf ++ HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf ++ DxeCoreEntryPoint|MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.inf ++ MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf ++ ReportStatusCodeLib|MdeModulePkg/Library/RuntimeDxeReportStatusCodeLib/RuntimeDxeReportStatusCodeLib.inf ++!ifdef $(DEBUG_ON_SERIAL_PORT) ++ DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf ++!else ++ DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort.inf ++!endif ++ UefiRuntimeLib|MdePkg/Library/UefiRuntimeLib/UefiRuntimeLib.inf ++ BaseCryptLib|CryptoPkg/Library/BaseCryptLib/RuntimeCryptLib.inf ++ PciLib|OvmfPkg/Library/DxePciLibI440FxQ35/DxePciLibI440FxQ35.inf ++ VariablePolicyLib|MdeModulePkg/Library/VariablePolicyLib/VariablePolicyLibRuntimeDxe.inf ++!if $(SMM_REQUIRE) == TRUE ++ MmUnblockMemoryLib|MdePkg/Library/MmUnblockMemoryLib/MmUnblockMemoryLibNull.inf ++!endif ++ ++[LibraryClasses.common.UEFI_DRIVER] ++ PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf ++ TimerLib|OvmfPkg/Library/AcpiTimerLib/DxeAcpiTimerLib.inf ++ ResetSystemLib|OvmfPkg/Library/ResetSystemLib/DxeResetSystemLib.inf ++ HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf ++ DxeCoreEntryPoint|MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.inf ++ MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf ++ ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf ++!ifdef $(DEBUG_ON_SERIAL_PORT) ++ DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf ++!else ++ DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort.inf ++!endif ++ UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf ++ PciLib|OvmfPkg/Library/DxePciLibI440FxQ35/DxePciLibI440FxQ35.inf ++ ++[LibraryClasses.common.DXE_DRIVER] ++ PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf ++ TimerLib|OvmfPkg/Library/AcpiTimerLib/DxeAcpiTimerLib.inf ++ ResetSystemLib|OvmfPkg/Library/ResetSystemLib/DxeResetSystemLib.inf ++ HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf ++ MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf ++ ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf ++ UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf ++!ifdef $(DEBUG_ON_SERIAL_PORT) ++ DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf ++!else ++ DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort.inf ++!endif ++ PlatformBootManagerLib|OvmfPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf ++ PlatformBmPrintScLib|OvmfPkg/Library/PlatformBmPrintScLib/PlatformBmPrintScLib.inf ++ QemuBootOrderLib|OvmfPkg/Library/QemuBootOrderLib/QemuBootOrderLib.inf ++ CpuExceptionHandlerLib|UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeCpuExceptionHandlerLib.inf ++!if $(SMM_REQUIRE) == TRUE ++ LockBoxLib|MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxDxeLib.inf ++!else ++ LockBoxLib|OvmfPkg/Library/LockBoxLib/LockBoxDxeLib.inf ++!endif ++!if $(SOURCE_DEBUG_ENABLE) == TRUE ++ DebugAgentLib|SourceLevelDebugPkg/Library/DebugAgent/DxeDebugAgentLib.inf ++!endif ++ PciLib|OvmfPkg/Library/DxePciLibI440FxQ35/DxePciLibI440FxQ35.inf ++ MpInitLib|UefiCpuPkg/Library/MpInitLib/DxeMpInitLib.inf ++ QemuFwCfgS3Lib|OvmfPkg/Library/QemuFwCfgS3Lib/DxeQemuFwCfgS3LibFwCfg.inf ++ QemuLoadImageLib|OvmfPkg/Library/X86QemuLoadImageLib/X86QemuLoadImageLib.inf ++ ++[LibraryClasses.common.UEFI_APPLICATION] ++ PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf ++ TimerLib|OvmfPkg/Library/AcpiTimerLib/DxeAcpiTimerLib.inf ++ ResetSystemLib|OvmfPkg/Library/ResetSystemLib/DxeResetSystemLib.inf ++ HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf ++ MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf ++ ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf ++!ifdef $(DEBUG_ON_SERIAL_PORT) ++ DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf ++!else ++ DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort.inf ++!endif ++ PciLib|OvmfPkg/Library/DxePciLibI440FxQ35/DxePciLibI440FxQ35.inf ++ ++[LibraryClasses.common.DXE_SMM_DRIVER] ++ PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf ++ TimerLib|OvmfPkg/Library/AcpiTimerLib/DxeAcpiTimerLib.inf ++ ResetSystemLib|OvmfPkg/Library/ResetSystemLib/DxeResetSystemLib.inf ++ MemoryAllocationLib|MdePkg/Library/SmmMemoryAllocationLib/SmmMemoryAllocationLib.inf ++ ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf ++ HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf ++ SmmMemLib|MdePkg/Library/SmmMemLib/SmmMemLib.inf ++ MmServicesTableLib|MdePkg/Library/MmServicesTableLib/MmServicesTableLib.inf ++ SmmServicesTableLib|MdePkg/Library/SmmServicesTableLib/SmmServicesTableLib.inf ++!ifdef $(DEBUG_ON_SERIAL_PORT) ++ DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf ++!else ++ DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort.inf ++!endif ++ CpuExceptionHandlerLib|UefiCpuPkg/Library/CpuExceptionHandlerLib/SmmCpuExceptionHandlerLib.inf ++!if $(SOURCE_DEBUG_ENABLE) == TRUE ++ DebugAgentLib|SourceLevelDebugPkg/Library/DebugAgent/SmmDebugAgentLib.inf ++!endif ++ BaseCryptLib|CryptoPkg/Library/BaseCryptLib/SmmCryptLib.inf ++ PciLib|OvmfPkg/Library/DxePciLibI440FxQ35/DxePciLibI440FxQ35.inf ++ SmmCpuRendezvousLib|UefiCpuPkg/Library/SmmCpuRendezvousLib/SmmCpuRendezvousLib.inf ++ ++[LibraryClasses.common.SMM_CORE] ++ PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf ++ TimerLib|OvmfPkg/Library/AcpiTimerLib/DxeAcpiTimerLib.inf ++ ResetSystemLib|OvmfPkg/Library/ResetSystemLib/DxeResetSystemLib.inf ++ SmmCorePlatformHookLib|MdeModulePkg/Library/SmmCorePlatformHookLibNull/SmmCorePlatformHookLibNull.inf ++ MemoryAllocationLib|MdeModulePkg/Library/PiSmmCoreMemoryAllocationLib/PiSmmCoreMemoryAllocationLib.inf ++ ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf ++ HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf ++ SmmMemLib|MdePkg/Library/SmmMemLib/SmmMemLib.inf ++ SmmServicesTableLib|MdeModulePkg/Library/PiSmmCoreSmmServicesTableLib/PiSmmCoreSmmServicesTableLib.inf ++!ifdef $(DEBUG_ON_SERIAL_PORT) ++ DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf ++!else ++ DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort.inf ++!endif ++ PciLib|OvmfPkg/Library/DxePciLibI440FxQ35/DxePciLibI440FxQ35.inf ++ ++################################################################################ ++# ++# Pcd Section - list of all EDK II PCD Entries defined by this Platform. ++# ++################################################################################ ++[PcdsFeatureFlag] ++ gEfiMdeModulePkgTokenSpaceGuid.PcdHiiOsRuntimeSupport|FALSE ++ gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSupportUefiDecompress|FALSE ++ gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode|FALSE ++ gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE ++ gEfiMdeModulePkgTokenSpaceGuid.PcdConOutUgaSupport|FALSE ++ gEfiMdeModulePkgTokenSpaceGuid.PcdInstallAcpiSdtProtocol|TRUE ++!if $(SMM_REQUIRE) == TRUE ++ gUefiOvmfPkgTokenSpaceGuid.PcdSmmSmramRequire|TRUE ++ gUefiCpuPkgTokenSpaceGuid.PcdCpuHotPlugSupport|TRUE ++ gEfiMdeModulePkgTokenSpaceGuid.PcdEnableVariableRuntimeCache|FALSE ++!endif ++ ++[PcdsFixedAtBuild] ++ gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeMemorySize|1 ++!if $(SMM_REQUIRE) == FALSE ++ gEfiMdeModulePkgTokenSpaceGuid.PcdResetOnMemoryTypeInformationChange|FALSE ++!endif ++ gEfiMdePkgTokenSpaceGuid.PcdMaximumGuidedExtractHandler|0x10 ++ gEfiMdePkgTokenSpaceGuid.PcdMaximumLinkedListLength|0 ++!if ($(FD_SIZE_IN_KB) == 1024) || ($(FD_SIZE_IN_KB) == 2048) ++ gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVariableSize|0x2000 ++ gEfiMdeModulePkgTokenSpaceGuid.PcdMaxAuthVariableSize|0x2800 ++!if $(NETWORK_TLS_ENABLE) == FALSE ++ # match PcdFlashNvStorageVariableSize purely for convenience ++ gEfiMdeModulePkgTokenSpaceGuid.PcdVariableStoreSize|0xe000 ++!endif ++!endif ++!if $(FD_SIZE_IN_KB) == 4096 ++ gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVariableSize|0x8400 ++ gEfiMdeModulePkgTokenSpaceGuid.PcdMaxAuthVariableSize|0x8400 ++!if $(NETWORK_TLS_ENABLE) == FALSE ++ # match PcdFlashNvStorageVariableSize purely for convenience ++ gEfiMdeModulePkgTokenSpaceGuid.PcdVariableStoreSize|0x40000 ++!endif ++!endif ++!if $(NETWORK_TLS_ENABLE) == TRUE ++ gEfiMdeModulePkgTokenSpaceGuid.PcdVariableStoreSize|0x80000 ++ gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVolatileVariableSize|0x40000 ++!endif ++ ++ gEfiMdeModulePkgTokenSpaceGuid.PcdVpdBaseAddress|0x0 ++ gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial|FALSE ++ gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseMemory|TRUE ++ ++ gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|0x07 ++ ++ # DEBUG_INIT 0x00000001 // Initialization ++ # DEBUG_WARN 0x00000002 // Warnings ++ # DEBUG_LOAD 0x00000004 // Load events ++ # DEBUG_FS 0x00000008 // EFI File system ++ # DEBUG_POOL 0x00000010 // Alloc & Free (pool) ++ # DEBUG_PAGE 0x00000020 // Alloc & Free (page) ++ # DEBUG_INFO 0x00000040 // Informational debug messages ++ # DEBUG_DISPATCH 0x00000080 // PEI/DXE/SMM Dispatchers ++ # DEBUG_VARIABLE 0x00000100 // Variable ++ # DEBUG_BM 0x00000400 // Boot Manager ++ # DEBUG_BLKIO 0x00001000 // BlkIo Driver ++ # DEBUG_NET 0x00004000 // SNP Driver ++ # DEBUG_UNDI 0x00010000 // UNDI Driver ++ # DEBUG_LOADFILE 0x00020000 // LoadFile ++ # DEBUG_EVENT 0x00080000 // Event messages ++ # DEBUG_GCD 0x00100000 // Global Coherency Database changes ++ # DEBUG_CACHE 0x00200000 // Memory range cachability changes ++ # DEBUG_VERBOSE 0x00400000 // Detailed debug messages that may ++ # // significantly impact boot performance ++ # DEBUG_ERROR 0x80000000 // Error ++ gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F ++ ++!if $(SOURCE_DEBUG_ENABLE) == TRUE ++ gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x17 ++!else ++ gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x2F ++!endif ++ ++!if $(SOURCE_DEBUG_ENABLE) == TRUE ++ gEfiSourceLevelDebugPkgTokenSpaceGuid.PcdDebugLoadImageMethod|0x2 ++!endif ++ ++ # ++ # The NumberOfPages values below are ad-hoc. They are updated sporadically at ++ # best (please refer to git-blame for past updates). The values capture a set ++ # of BIN hints that made sense at a particular time, for some (now likely ++ # unknown) workloads / boot paths. ++ # ++ gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIMemoryNVS|0x80 ++ gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIReclaimMemory|0x10 ++ gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiReservedMemoryType|0x80 ++ gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesCode|0x100 ++ gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesData|0x100 ++ ++ # ++ # Network Pcds ++ # ++!include NetworkPkg/NetworkPcds.dsc.inc ++ ++ gEfiShellPkgTokenSpaceGuid.PcdShellFileOperationSize|0x20000 ++ ++!if $(SMM_REQUIRE) == TRUE ++ gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmStackSize|0x4000 ++!endif ++ ++ # Point to the MdeModulePkg/Application/UiApp/UiApp.inf ++ gEfiMdeModulePkgTokenSpaceGuid.PcdBootManagerMenuFile|{ 0x21, 0xaa, 0x2c, 0x46, 0x14, 0x76, 0x03, 0x45, 0x83, 0x6e, 0x8a, 0xb6, 0xf4, 0x66, 0x23, 0x31 } ++ ++################################################################################ ++# ++# Pcd Dynamic Section - list of all EDK II PCD Entries defined by this Platform ++# ++################################################################################ ++ ++[PcdsDynamicDefault] ++ # only set when ++ # ($(SMM_REQUIRE) == FALSE) ++ gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved|0 ++ ++ gEfiMdeModulePkgTokenSpaceGuid.PcdResizeXterm|FALSE ++!if $(SMM_REQUIRE) == FALSE ++ gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64|0 ++ gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase64|0 ++ gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase64|0 ++ gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase|0 ++ gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase|0 ++!endif ++ gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiS3Enable|FALSE ++ gUefiOvmfPkgTokenSpaceGuid.PcdOvmfHostBridgePciDevId|0 ++ gUefiOvmfPkgTokenSpaceGuid.PcdPciIoBase|0x0 ++ gUefiOvmfPkgTokenSpaceGuid.PcdPciIoSize|0x0 ++ gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio32Base|0x0 ++ gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio32Size|0x0 ++ gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio64Base|0x0 ++ gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio64Size|0x800000000 ++ ++ gEfiMdePkgTokenSpaceGuid.PcdFSBClock|1000000000 ++ gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|0 ++ ++ gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosVersion|0x0208 ++ gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosDocRev|0x0 ++ gUefiOvmfPkgTokenSpaceGuid.PcdQemuSmbiosValidated|FALSE ++ ++ # Noexec settings for DXE. ++ gEfiMdeModulePkgTokenSpaceGuid.PcdSetNxForStack|FALSE ++ ++ # UefiCpuPkg PCDs related to initial AP bringup and general AP management. ++ gUefiCpuPkgTokenSpaceGuid.PcdCpuMaxLogicalProcessorNumber|64 ++ gUefiCpuPkgTokenSpaceGuid.PcdCpuBootLogicalProcessorNumber|0 ++ ++ # Set memory encryption mask ++ gEfiMdeModulePkgTokenSpaceGuid.PcdPteMemoryEncryptionAddressOrMask|0x0 ++ ++ # Set Tdx shared bit mask ++ gEfiMdeModulePkgTokenSpaceGuid.PcdTdxSharedBitMask|0x0 ++ ++ # Set SEV-ES defaults ++ gEfiMdeModulePkgTokenSpaceGuid.PcdGhcbBase|0 ++ gEfiMdeModulePkgTokenSpaceGuid.PcdGhcbSize|0 ++ gUefiCpuPkgTokenSpaceGuid.PcdSevEsIsEnabled|0 ++ ++!if $(SMM_REQUIRE) == TRUE ++ gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmSyncMode|0x01 ++ gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmApSyncTimeout|100000 ++!endif ++ ++ gEfiSecurityPkgTokenSpaceGuid.PcdOptionRomImageVerificationPolicy|0x00 ++ ++!include OvmfPkg/OvmfTpmPcds.dsc.inc ++ ++ # IPv4 and IPv6 PXE Boot support. ++ gEfiNetworkPkgTokenSpaceGuid.PcdIPv4PXESupport|0x01 ++ gEfiNetworkPkgTokenSpaceGuid.PcdIPv6PXESupport|0x01 ++ ++ # Set ConfidentialComputing defaults ++ gEfiMdePkgTokenSpaceGuid.PcdConfidentialComputingGuestAttr|0 ++ ++[PcdsDynamicHii] ++!include OvmfPkg/OvmfTpmPcdsHii.dsc.inc ++ ++################################################################################ ++# ++# Components Section - list of all EDK II Modules needed by this Platform. ++# ++################################################################################ ++[Components] ++ OvmfPkg/XenResetVector/XenResetVector.inf ++ ++ # ++ # SEC Phase modules ++ # ++ OvmfPkg/Sec/SecMain.inf { ++ ++ NULL|MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf ++ } ++ ++ # ++ # PEI Phase modules ++ # ++ MdeModulePkg/Core/Pei/PeiMain.inf ++ MdeModulePkg/Universal/PCD/Pei/Pcd.inf { ++ ++ PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf ++ } ++ MdeModulePkg/Universal/ReportStatusCodeRouter/Pei/ReportStatusCodeRouterPei.inf { ++ ++ PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf ++ } ++ MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.inf { ++ ++ PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf ++ } ++ MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf ++ ++ OvmfPkg/PlatformPei/PlatformPei.inf ++ UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume2Pei.inf { ++ ++!if $(SMM_REQUIRE) == TRUE ++ LockBoxLib|MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxPeiLib.inf ++!endif ++ } ++!if $(SMM_REQUIRE) == TRUE ++ MdeModulePkg/Universal/FaultTolerantWritePei/FaultTolerantWritePei.inf ++ MdeModulePkg/Universal/Variable/Pei/VariablePei.inf ++ OvmfPkg/SmmAccess/SmmAccessPei.inf ++!endif ++ UefiCpuPkg/CpuMpPei/CpuMpPei.inf ++ ++!include OvmfPkg/OvmfTpmComponentsPei.dsc.inc ++ ++ # ++ # DXE Phase modules ++ # ++ MdeModulePkg/Core/Dxe/DxeMain.inf { ++ ++ NULL|MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf ++ DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf ++ } ++ ++ MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportStatusCodeRouterRuntimeDxe.inf ++ MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.inf ++ MdeModulePkg/Universal/PCD/Dxe/Pcd.inf { ++ ++ PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf ++ } ++ ++ MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf ++ ++ MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf { ++ ++!if $(SECURE_BOOT_ENABLE) == TRUE ++ NULL|SecurityPkg/Library/DxeImageVerificationLib/DxeImageVerificationLib.inf ++!include OvmfPkg/OvmfTpmSecurityStub.dsc.inc ++!endif ++ } ++ ++ MdeModulePkg/Universal/EbcDxe/EbcDxe.inf ++ UefiCpuPkg/CpuIo2Dxe/CpuIo2Dxe.inf ++ UefiCpuPkg/CpuDxe/CpuDxe.inf ++ OvmfPkg/LocalApicTimerDxe/LocalApicTimerDxe.inf ++ OvmfPkg/IncompatiblePciDeviceSupportDxe/IncompatiblePciDeviceSupport.inf ++ OvmfPkg/PciHotPlugInitDxe/PciHotPlugInit.inf ++ MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciHostBridgeDxe.inf { ++ ++ PciHostBridgeLib|OvmfPkg/Library/PciHostBridgeLib/PciHostBridgeLib.inf ++ PciHostBridgeUtilityLib|OvmfPkg/Library/PciHostBridgeUtilityLib/PciHostBridgeUtilityLib.inf ++ NULL|OvmfPkg/Library/PlatformHasIoMmuLib/PlatformHasIoMmuLib.inf ++ } ++ MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf { ++ ++ PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf ++ } ++ MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf ++ MdeModulePkg/Universal/Metronome/Metronome.inf ++ PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcatRealTimeClockRuntimeDxe.inf ++ MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerDxe.inf ++ MdeModulePkg/Universal/BdsDxe/BdsDxe.inf { ++ ++ XenPlatformLib|OvmfPkg/Library/XenPlatformLib/XenPlatformLib.inf ++ } ++ MdeModulePkg/Logo/LogoDxe.inf ++ MdeModulePkg/Application/UiApp/UiApp.inf { ++ ++ NULL|MdeModulePkg/Library/DeviceManagerUiLib/DeviceManagerUiLib.inf ++ NULL|MdeModulePkg/Library/BootManagerUiLib/BootManagerUiLib.inf ++ NULL|MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManagerUiLib.inf ++ } ++ OvmfPkg/QemuKernelLoaderFsDxe/QemuKernelLoaderFsDxe.inf { ++ ++ NULL|OvmfPkg/Library/BlobVerifierLibNull/BlobVerifierLibNull.inf ++ } ++ OvmfPkg/VirtioPciDeviceDxe/VirtioPciDeviceDxe.inf ++ OvmfPkg/Virtio10Dxe/Virtio10.inf ++ OvmfPkg/VirtioBlkDxe/VirtioBlk.inf ++ OvmfPkg/VirtioScsiDxe/VirtioScsi.inf ++ OvmfPkg/VirtioRngDxe/VirtioRng.inf ++!if $(PVSCSI_ENABLE) == TRUE ++ OvmfPkg/PvScsiDxe/PvScsiDxe.inf ++!endif ++!if $(MPT_SCSI_ENABLE) == TRUE ++ OvmfPkg/MptScsiDxe/MptScsiDxe.inf ++!endif ++!if $(LSI_SCSI_ENABLE) == TRUE ++ OvmfPkg/LsiScsiDxe/LsiScsiDxe.inf ++!endif ++ MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf ++ MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf ++ MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf ++ MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf ++ MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf ++ MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf { ++ ++ PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf ++ } ++ MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf ++ MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf { ++ ++ DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf ++ PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf ++ } ++ MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf ++ MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf ++ MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskDxe.inf ++ MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf ++ FatPkg/EnhancedFatDxe/Fat.inf ++ MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf ++ OvmfPkg/VirtioFsDxe/VirtioFsDxe.inf ++ MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf ++ MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf ++ OvmfPkg/SataControllerDxe/SataControllerDxe.inf ++ MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf ++ MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf ++ MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressDxe.inf ++ MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf ++ MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf ++ MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf ++ MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTestDxe.inf ++ ++ # ++ # Serial Support ++ # ++ MdeModulePkg/Universal/SerialDxe/SerialDxe.inf ++ ++ # ++ # SMBIOS Support ++ # ++ MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf { ++ ++ NULL|OvmfPkg/Library/SmbiosVersionLib/DetectSmbiosVersionLib.inf ++ } ++ OvmfPkg/SmbiosPlatformDxe/SmbiosPlatformDxe.inf ++ ++ # ++ # ACPI Support ++ # ++ MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf ++ OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf ++ MdeModulePkg/Universal/Acpi/S3SaveStateDxe/S3SaveStateDxe.inf ++ MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/BootScriptExecutorDxe.inf ++ MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResourceTableDxe.inf ++ ++ # ++ # Network Support ++ # ++!include NetworkPkg/NetworkComponents.dsc.inc ++!include OvmfPkg/NetworkComponents.dsc.inc ++ ++ OvmfPkg/VirtioNetDxe/VirtioNet.inf ++ ++!if $(TOOL_CHAIN_TAG) != "XCODE5" ++ ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand.inf { ++ ++ gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE ++ } ++ ShellPkg/DynamicCommand/HttpDynamicCommand/HttpDynamicCommand.inf { ++ ++ gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE ++ } ++ OvmfPkg/LinuxInitrdDynamicShellCommand/LinuxInitrdDynamicShellCommand.inf { ++ ++ gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE ++ } ++!endif ++ ShellPkg/Application/Shell/Shell.inf { ++ ++ ShellCommandLib|ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.inf ++ NULL|ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2CommandsLib.inf ++ NULL|ShellPkg/Library/UefiShellLevel1CommandsLib/UefiShellLevel1CommandsLib.inf ++ NULL|ShellPkg/Library/UefiShellLevel3CommandsLib/UefiShellLevel3CommandsLib.inf ++ NULL|ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.inf ++ NULL|ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf ++ NULL|ShellPkg/Library/UefiShellInstall1CommandsLib/UefiShellInstall1CommandsLib.inf ++ NULL|ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.inf ++!if $(NETWORK_IP6_ENABLE) == TRUE ++ NULL|ShellPkg/Library/UefiShellNetwork2CommandsLib/UefiShellNetwork2CommandsLib.inf ++!endif ++ HandleParsingLib|ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.inf ++ PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf ++ BcfgCommandLib|ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.inf ++ ++ ++ gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0xFF ++ gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE ++ gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|8000 ++ } ++ ++!if $(SECURE_BOOT_ENABLE) == TRUE ++ SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigDxe.inf ++ OvmfPkg/EnrollDefaultKeys/EnrollDefaultKeys.inf ++!endif ++ ++ OvmfPkg/PlatformDxe/Platform.inf ++ OvmfPkg/AmdSevDxe/AmdSevDxe.inf { ++ ++ PciLib|MdePkg/Library/BasePciLibCf8/BasePciLibCf8.inf ++ } ++ OvmfPkg/IoMmuDxe/IoMmuDxe.inf ++ ++!if $(SMM_REQUIRE) == TRUE ++ OvmfPkg/SmmAccess/SmmAccess2Dxe.inf ++ OvmfPkg/SmmControl2Dxe/SmmControl2Dxe.inf ++ OvmfPkg/CpuS3DataDxe/CpuS3DataDxe.inf ++ ++ # ++ # SMM Initial Program Load (a DXE_RUNTIME_DRIVER) ++ # ++ MdeModulePkg/Core/PiSmmCore/PiSmmIpl.inf ++ ++ # ++ # SMM_CORE ++ # ++ MdeModulePkg/Core/PiSmmCore/PiSmmCore.inf ++ ++ # ++ # Privileged drivers (DXE_SMM_DRIVER modules) ++ # ++ OvmfPkg/CpuHotplugSmm/CpuHotplugSmm.inf ++ UefiCpuPkg/CpuIo2Smm/CpuIo2Smm.inf ++ MdeModulePkg/Universal/LockBox/SmmLockBox/SmmLockBox.inf { ++ ++ LockBoxLib|MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxSmmLib.inf ++ } ++ UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf { ++ ++ SmmCpuPlatformHookLib|OvmfPkg/Library/SmmCpuPlatformHookLibQemu/SmmCpuPlatformHookLibQemu.inf ++ SmmCpuFeaturesLib|OvmfPkg/Library/SmmCpuFeaturesLib/SmmCpuFeaturesLib.inf ++ } ++ ++ # ++ # Variable driver stack (SMM) ++ # ++ OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesSmm.inf { ++ ++ CcExitLib|UefiCpuPkg/Library/CcExitLibNull/CcExitLibNull.inf ++ } ++ MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmm.inf ++ MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmm.inf { ++ ++ NULL|MdeModulePkg/Library/VarCheckUefiLib/VarCheckUefiLib.inf ++ NULL|MdeModulePkg/Library/VarCheckPolicyLib/VarCheckPolicyLib.inf ++ } ++ MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmmRuntimeDxe.inf ++ ++!else ++ ++ # ++ # Variable driver stack (non-SMM) ++ # ++ OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesRuntimeDxe.inf ++ OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.inf { ++ ++ PlatformFvbLib|OvmfPkg/Library/EmuVariableFvbLib/EmuVariableFvbLib.inf ++ } ++ MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf ++ MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf { ++ ++ NULL|MdeModulePkg/Library/VarCheckUefiLib/VarCheckUefiLib.inf ++ } ++!endif ++ ++ # ++ # TPM support ++ # ++!include OvmfPkg/OvmfTpmComponentsDxe.dsc.inc +diff --git a/OvmfPkg/IntelTdx/IntelTdxX64.dsc b/OvmfPkg/IntelTdx/IntelTdxX64.dsc +new file mode 100644 +index 0000000000..d08b77ff25 +--- /dev/null ++++ b/OvmfPkg/IntelTdx/IntelTdxX64.dsc +@@ -0,0 +1,779 @@ ++## @file ++# EFI/Framework Open Virtual Machine Firmware (OVMF) platform ++# ++# Copyright (c) 2006 - 2021, Intel Corporation. All rights reserved.
++# (C) Copyright 2016 Hewlett Packard Enterprise Development LP
++# Copyright (c) Microsoft Corporation. ++# ++# SPDX-License-Identifier: BSD-2-Clause-Patent ++# ++## ++ ++################################################################################ ++# ++# Defines Section - statements that will be processed to create a Makefile. ++# ++################################################################################ ++[Defines] ++ PLATFORM_NAME = Ovmf ++ PLATFORM_GUID = 5a9e7754-d81b-49ea-85ad-69eaa7b1539b ++ PLATFORM_VERSION = 0.1 ++ DSC_SPECIFICATION = 0x00010005 ++ OUTPUT_DIRECTORY = Build/IntelTdx ++ SUPPORTED_ARCHITECTURES = X64 ++ BUILD_TARGETS = NOOPT|DEBUG|RELEASE ++ SKUID_IDENTIFIER = DEFAULT ++ FLASH_DEFINITION = OvmfPkg/IntelTdx/IntelTdxX64.fdf ++ ++ # ++ # Defines for default states. These can be changed on the command line. ++ # -D FLAG=VALUE ++ # ++ DEFINE SECURE_BOOT_ENABLE = FALSE ++ ++ # ++ # Device drivers ++ # ++ DEFINE PVSCSI_ENABLE = FALSE ++ DEFINE MPT_SCSI_ENABLE = FALSE ++ DEFINE LSI_SCSI_ENABLE = FALSE ++ ++ # ++ # Flash size selection. Setting FD_SIZE_IN_KB on the command line directly to ++ # one of the supported values, in place of any of the convenience macros, is ++ # permitted. ++ # ++!ifdef $(FD_SIZE_1MB) ++ DEFINE FD_SIZE_IN_KB = 1024 ++!else ++!ifdef $(FD_SIZE_2MB) ++ DEFINE FD_SIZE_IN_KB = 2048 ++!else ++!ifdef $(FD_SIZE_4MB) ++ DEFINE FD_SIZE_IN_KB = 4096 ++!else ++ DEFINE FD_SIZE_IN_KB = 4096 ++!endif ++!endif ++!endif ++ ++ # ++ # Define the FILE_GUID of CpuDxe for unique-processor version. ++ # ++ DEFINE UP_CPU_DXE_GUID = 6490f1c5-ebcc-4665-8892-0075b9bb49b7 ++ ++[BuildOptions] ++ GCC:RELEASE_*_*_CC_FLAGS = -DMDEPKG_NDEBUG ++ INTEL:RELEASE_*_*_CC_FLAGS = /D MDEPKG_NDEBUG ++ MSFT:RELEASE_*_*_CC_FLAGS = /D MDEPKG_NDEBUG ++!if $(TOOL_CHAIN_TAG) != "XCODE5" && $(TOOL_CHAIN_TAG) != "CLANGPDB" ++ GCC:*_*_*_CC_FLAGS = -mno-mmx -mno-sse ++!endif ++ RELEASE_*_*_GENFW_FLAGS = --zero ++ ++ # ++ # Disable deprecated APIs. ++ # ++ MSFT:*_*_*_CC_FLAGS = /D DISABLE_NEW_DEPRECATED_INTERFACES ++ INTEL:*_*_*_CC_FLAGS = /D DISABLE_NEW_DEPRECATED_INTERFACES ++ GCC:*_*_*_CC_FLAGS = -D DISABLE_NEW_DEPRECATED_INTERFACES ++ ++ # ++ # Add TDX_PEI_LESS_BOOT ++ # ++ MSFT:*_*_*_CC_FLAGS = /D TDX_PEI_LESS_BOOT ++ INTEL:*_*_*_CC_FLAGS = /D TDX_PEI_LESS_BOOT ++ GCC:*_*_*_CC_FLAGS = -D TDX_PEI_LESS_BOOT ++ ++ # ++ # SECURE_BOOT_FEATURE_ENABLED ++ # ++!if $(SECURE_BOOT_ENABLE) == TRUE ++ MSFT:*_*_*_CC_FLAGS = /D SECURE_BOOT_FEATURE_ENABLED ++ INTEL:*_*_*_CC_FLAGS = /D SECURE_BOOT_FEATURE_ENABLED ++ GCC:*_*_*_CC_FLAGS = -D SECURE_BOOT_FEATURE_ENABLED ++!endif ++ ++[BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER] ++ GCC:*_*_*_DLINK_FLAGS = -z common-page-size=0x1000 ++ XCODE:*_*_*_DLINK_FLAGS = -seg1addr 0x1000 -segalign 0x1000 ++ XCODE:*_*_*_MTOC_FLAGS = -align 0x1000 ++ CLANGPDB:*_*_*_DLINK_FLAGS = /ALIGN:4096 ++ ++################################################################################ ++# ++# SKU Identification section - list of all SKU IDs supported by this Platform. ++# ++################################################################################ ++[SkuIds] ++ 0|DEFAULT ++ ++################################################################################ ++# ++# Library Class section - list of all Library Classes needed by this Platform. ++# ++################################################################################ ++ ++!include MdePkg/MdeLibs.dsc.inc ++ ++[LibraryClasses] ++ PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf ++ TimerLib|OvmfPkg/Library/AcpiTimerLib/BaseAcpiTimerLib.inf ++ ResetSystemLib|OvmfPkg/Library/ResetSystemLib/BaseResetSystemLib.inf ++ PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf ++ BaseMemoryLib|MdePkg/Library/BaseMemoryLibRepStr/BaseMemoryLibRepStr.inf ++ BaseLib|MdePkg/Library/BaseLib/BaseLib.inf ++ SafeIntLib|MdePkg/Library/BaseSafeIntLib/BaseSafeIntLib.inf ++ TimeBaseLib|EmbeddedPkg/Library/TimeBaseLib/TimeBaseLib.inf ++ BmpSupportLib|MdeModulePkg/Library/BaseBmpSupportLib/BaseBmpSupportLib.inf ++ SynchronizationLib|MdePkg/Library/BaseSynchronizationLib/BaseSynchronizationLib.inf ++ CpuLib|MdePkg/Library/BaseCpuLib/BaseCpuLib.inf ++ PerformanceLib|MdePkg/Library/BasePerformanceLibNull/BasePerformanceLibNull.inf ++ PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf ++ CacheMaintenanceLib|MdePkg/Library/BaseCacheMaintenanceLib/BaseCacheMaintenanceLib.inf ++ UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf ++ UefiHiiServicesLib|MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.inf ++ HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf ++ SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf ++ UefiBootManagerLib|MdeModulePkg/Library/UefiBootManagerLib/UefiBootManagerLib.inf ++ BootLogoLib|MdeModulePkg/Library/BootLogoLib/BootLogoLib.inf ++ FileExplorerLib|MdeModulePkg/Library/FileExplorerLib/FileExplorerLib.inf ++ CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf ++ DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf ++ DxeServicesTableLib|MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf ++ PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf ++ PciCf8Lib|MdePkg/Library/BasePciCf8Lib/BasePciCf8Lib.inf ++ PciExpressLib|MdePkg/Library/BasePciExpressLib/BasePciExpressLib.inf ++ PciLib|MdePkg/Library/BasePciLibCf8/BasePciLibCf8.inf ++ PciSegmentLib|MdePkg/Library/BasePciSegmentLibPci/BasePciSegmentLibPci.inf ++ PciCapLib|OvmfPkg/Library/BasePciCapLib/BasePciCapLib.inf ++ PciCapPciSegmentLib|OvmfPkg/Library/BasePciCapPciSegmentLib/BasePciCapPciSegmentLib.inf ++ PciCapPciIoLib|OvmfPkg/Library/UefiPciCapPciIoLib/UefiPciCapPciIoLib.inf ++ CcProbeLib|OvmfPkg/Library/CcProbeLib/DxeCcProbeLib.inf ++ IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsicSev.inf ++ OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf ++ SerialPortLib|PcAtChipsetPkg/Library/SerialIoLib/SerialIoLib.inf ++ MtrrLib|UefiCpuPkg/Library/MtrrLib/MtrrLib.inf ++ MicrocodeLib|UefiCpuPkg/Library/MicrocodeLib/MicrocodeLib.inf ++ UefiLib|MdePkg/Library/UefiLib/UefiLib.inf ++ UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf ++ UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf ++ UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf ++ UefiApplicationEntryPoint|MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf ++ DevicePathLib|MdePkg/Library/UefiDevicePathLibDevicePathProtocol/UefiDevicePathLibDevicePathProtocol.inf ++ NvVarsFileLib|OvmfPkg/Library/NvVarsFileLib/NvVarsFileLib.inf ++ FileHandleLib|MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf ++ UefiCpuLib|UefiCpuPkg/Library/BaseUefiCpuLib/BaseUefiCpuLib.inf ++ SecurityManagementLib|MdeModulePkg/Library/DxeSecurityManagementLib/DxeSecurityManagementLib.inf ++ UefiUsbLib|MdePkg/Library/UefiUsbLib/UefiUsbLib.inf ++ SerializeVariablesLib|OvmfPkg/Library/SerializeVariablesLib/SerializeVariablesLib.inf ++ QemuFwCfgLib|OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgDxeLib.inf ++ QemuFwCfgSimpleParserLib|OvmfPkg/Library/QemuFwCfgSimpleParserLib/QemuFwCfgSimpleParserLib.inf ++ VirtioLib|OvmfPkg/Library/VirtioLib/VirtioLib.inf ++ LoadLinuxLib|OvmfPkg/Library/LoadLinuxLib/LoadLinuxLib.inf ++ MemEncryptSevLib|OvmfPkg/Library/BaseMemEncryptSevLib/DxeMemEncryptSevLib.inf ++ MemEncryptTdxLib|OvmfPkg/Library/BaseMemEncryptTdxLib/BaseMemEncryptTdxLib.inf ++ PeiHardwareInfoLib|OvmfPkg/Library/HardwareInfoLib/PeiHardwareInfoLib.inf ++ DxeHardwareInfoLib|OvmfPkg/Library/HardwareInfoLib/DxeHardwareInfoLib.inf ++ ++ LockBoxLib|OvmfPkg/Library/LockBoxLib/LockBoxBaseLib.inf ++ CustomizedDisplayLib|MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLib.inf ++ FrameBufferBltLib|MdeModulePkg/Library/FrameBufferBltLib/FrameBufferBltLib.inf ++ ++ PeCoffExtraActionLib|MdePkg/Library/BasePeCoffExtraActionLibNull/BasePeCoffExtraActionLibNull.inf ++ DebugAgentLib|MdeModulePkg/Library/DebugAgentLibNull/DebugAgentLibNull.inf ++ ++ LocalApicLib|UefiCpuPkg/Library/BaseXApicX2ApicLib/BaseXApicX2ApicLib.inf ++ DebugPrintErrorLevelLib|MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib.inf ++ ++ IntrinsicLib|CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf ++ OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf ++ RngLib|MdeModulePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf ++ ++!if $(SECURE_BOOT_ENABLE) == TRUE ++ PlatformSecureLib|OvmfPkg/Library/PlatformSecureLib/PlatformSecureLib.inf ++ AuthVariableLib|SecurityPkg/Library/AuthVariableLib/AuthVariableLib.inf ++ SecureBootVariableLib|SecurityPkg/Library/SecureBootVariableLib/SecureBootVariableLib.inf ++ PlatformPKProtectionLib|SecurityPkg/Library/PlatformPKProtectionLibVarPolicy/PlatformPKProtectionLibVarPolicy.inf ++ SecureBootVariableProvisionLib|SecurityPkg/Library/SecureBootVariableProvisionLib/SecureBootVariableProvisionLib.inf ++!else ++ AuthVariableLib|MdeModulePkg/Library/AuthVariableLibNull/AuthVariableLibNull.inf ++!endif ++ VarCheckLib|MdeModulePkg/Library/VarCheckLib/VarCheckLib.inf ++ VariablePolicyLib|MdeModulePkg/Library/VariablePolicyLib/VariablePolicyLib.inf ++ VariablePolicyHelperLib|MdeModulePkg/Library/VariablePolicyHelperLib/VariablePolicyHelperLib.inf ++ VariableFlashInfoLib|MdeModulePkg/Library/BaseVariableFlashInfoLib/BaseVariableFlashInfoLib.inf ++ ++ ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf ++ ShellCEntryLib|ShellPkg/Library/UefiShellCEntryLib/UefiShellCEntryLib.inf ++ S3BootScriptLib|MdeModulePkg/Library/PiDxeS3BootScriptLib/DxeS3BootScriptLib.inf ++ SmbusLib|MdePkg/Library/BaseSmbusLibNull/BaseSmbusLibNull.inf ++ OrderedCollectionLib|MdePkg/Library/BaseOrderedCollectionRedBlackTreeLib/BaseOrderedCollectionRedBlackTreeLib.inf ++ ++ Tcg2PhysicalPresenceLib|OvmfPkg/Library/Tcg2PhysicalPresenceLibNull/DxeTcg2PhysicalPresenceLib.inf ++ TpmMeasurementLib|SecurityPkg/Library/DxeTpmMeasurementLib/DxeTpmMeasurementLib.inf ++ ++[LibraryClasses.common] ++ BaseCryptLib|CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf ++ CcExitLib|OvmfPkg/Library/CcExitLib/CcExitLib.inf ++ TdxLib|MdePkg/Library/TdxLib/TdxLib.inf ++ TdxMailboxLib|OvmfPkg/Library/TdxMailboxLib/TdxMailboxLib.inf ++ PlatformInitLib|OvmfPkg/Library/PlatformInitLib/PlatformInitLib.inf ++ ++[LibraryClasses.common.SEC] ++ TimerLib|OvmfPkg/Library/AcpiTimerLib/BaseRomAcpiTimerLib.inf ++ QemuFwCfgLib|OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgSecLib.inf ++!ifdef $(DEBUG_ON_SERIAL_PORT) ++ DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf ++!else ++ DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformRomDebugLibIoPort.inf ++!endif ++ ReportStatusCodeLib|MdeModulePkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf ++ ExtractGuidedSectionLib|MdePkg/Library/BaseExtractGuidedSectionLib/BaseExtractGuidedSectionLib.inf ++ PeiServicesTablePointerLib|MdePkg/Library/PeiServicesTablePointerLibIdt/PeiServicesTablePointerLibIdt.inf ++ MemoryAllocationLib|EmbeddedPkg/Library/PrePiMemoryAllocationLib/PrePiMemoryAllocationLib.inf ++!if $(TOOL_CHAIN_TAG) == "XCODE5" ++ CpuExceptionHandlerLib|UefiCpuPkg/Library/CpuExceptionHandlerLib/Xcode5SecPeiCpuExceptionHandlerLib.inf ++!else ++ CpuExceptionHandlerLib|UefiCpuPkg/Library/CpuExceptionHandlerLib/SecPeiCpuExceptionHandlerLib.inf ++!endif ++ CcExitLib|OvmfPkg/Library/CcExitLib/SecCcExitLib.inf ++ MemEncryptSevLib|OvmfPkg/Library/BaseMemEncryptSevLib/SecMemEncryptSevLib.inf ++ PrePiHobListPointerLib|OvmfPkg/IntelTdx/PrePiHobListPointerLibTdx/PrePiHobListPointerLibTdx.inf ++ HobLib|EmbeddedPkg/Library/PrePiHobLib/PrePiHobLib.inf ++ PrePiLib|EmbeddedPkg/Library/PrePiLib/PrePiLib.inf ++ PeilessStartupLib|OvmfPkg/Library/PeilessStartupLib/PeilessStartupLib.inf ++ CcProbeLib|OvmfPkg/Library/CcProbeLib/SecPeiCcProbeLib.inf ++ ++[LibraryClasses.common.DXE_CORE] ++ HobLib|MdePkg/Library/DxeCoreHobLib/DxeCoreHobLib.inf ++ DxeCoreEntryPoint|MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.inf ++ MemoryAllocationLib|MdeModulePkg/Library/DxeCoreMemoryAllocationLib/DxeCoreMemoryAllocationLib.inf ++ ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf ++!ifdef $(DEBUG_ON_SERIAL_PORT) ++ DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf ++!else ++ DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort.inf ++!endif ++ ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf ++ CpuExceptionHandlerLib|UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeCpuExceptionHandlerLib.inf ++ PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf ++ ++[LibraryClasses.common.DXE_RUNTIME_DRIVER] ++ PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf ++ TimerLib|OvmfPkg/Library/AcpiTimerLib/DxeAcpiTimerLib.inf ++ ResetSystemLib|OvmfPkg/Library/ResetSystemLib/DxeResetSystemLib.inf ++ HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf ++ DxeCoreEntryPoint|MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.inf ++ MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf ++ ReportStatusCodeLib|MdeModulePkg/Library/RuntimeDxeReportStatusCodeLib/RuntimeDxeReportStatusCodeLib.inf ++!ifdef $(DEBUG_ON_SERIAL_PORT) ++ DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf ++!else ++ DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort.inf ++!endif ++ UefiRuntimeLib|MdePkg/Library/UefiRuntimeLib/UefiRuntimeLib.inf ++ BaseCryptLib|CryptoPkg/Library/BaseCryptLib/RuntimeCryptLib.inf ++ PciLib|OvmfPkg/Library/DxePciLibI440FxQ35/DxePciLibI440FxQ35.inf ++ QemuFwCfgS3Lib|OvmfPkg/Library/QemuFwCfgS3Lib/DxeQemuFwCfgS3LibFwCfg.inf ++ VariablePolicyLib|MdeModulePkg/Library/VariablePolicyLib/VariablePolicyLibRuntimeDxe.inf ++ ++[LibraryClasses.common.UEFI_DRIVER] ++ PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf ++ TimerLib|OvmfPkg/Library/AcpiTimerLib/DxeAcpiTimerLib.inf ++ ResetSystemLib|OvmfPkg/Library/ResetSystemLib/DxeResetSystemLib.inf ++ HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf ++ DxeCoreEntryPoint|MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.inf ++ MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf ++ ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf ++!ifdef $(DEBUG_ON_SERIAL_PORT) ++ DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf ++!else ++ DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort.inf ++!endif ++ UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf ++ PciLib|OvmfPkg/Library/DxePciLibI440FxQ35/DxePciLibI440FxQ35.inf ++ ++[LibraryClasses.common.DXE_DRIVER] ++ PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf ++ TimerLib|OvmfPkg/Library/AcpiTimerLib/DxeAcpiTimerLib.inf ++ ResetSystemLib|OvmfPkg/Library/ResetSystemLib/DxeResetSystemLib.inf ++ HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf ++ MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf ++ ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf ++ UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf ++!ifdef $(DEBUG_ON_SERIAL_PORT) ++ DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf ++!else ++ DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort.inf ++!endif ++ PlatformBootManagerLib|OvmfPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf ++ PlatformBmPrintScLib|OvmfPkg/Library/PlatformBmPrintScLib/PlatformBmPrintScLib.inf ++ QemuBootOrderLib|OvmfPkg/Library/QemuBootOrderLib/QemuBootOrderLib.inf ++ CpuExceptionHandlerLib|UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeCpuExceptionHandlerLib.inf ++ LockBoxLib|OvmfPkg/Library/LockBoxLib/LockBoxDxeLib.inf ++ PciLib|OvmfPkg/Library/DxePciLibI440FxQ35/DxePciLibI440FxQ35.inf ++ MpInitLib|UefiCpuPkg/Library/MpInitLib/DxeMpInitLib.inf ++ QemuFwCfgS3Lib|OvmfPkg/Library/QemuFwCfgS3Lib/DxeQemuFwCfgS3LibFwCfg.inf ++ QemuLoadImageLib|OvmfPkg/Library/X86QemuLoadImageLib/X86QemuLoadImageLib.inf ++ ++[LibraryClasses.common.UEFI_APPLICATION] ++ PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf ++ TimerLib|OvmfPkg/Library/AcpiTimerLib/DxeAcpiTimerLib.inf ++ ResetSystemLib|OvmfPkg/Library/ResetSystemLib/DxeResetSystemLib.inf ++ HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf ++ MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf ++ ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf ++!ifdef $(DEBUG_ON_SERIAL_PORT) ++ DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf ++!else ++ DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort.inf ++!endif ++ PciLib|OvmfPkg/Library/DxePciLibI440FxQ35/DxePciLibI440FxQ35.inf ++ ++[LibraryClasses.common.DXE_SMM_DRIVER] ++ PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf ++ TimerLib|OvmfPkg/Library/AcpiTimerLib/DxeAcpiTimerLib.inf ++ ResetSystemLib|OvmfPkg/Library/ResetSystemLib/DxeResetSystemLib.inf ++ MemoryAllocationLib|MdePkg/Library/SmmMemoryAllocationLib/SmmMemoryAllocationLib.inf ++ ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf ++ HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf ++ SmmMemLib|MdePkg/Library/SmmMemLib/SmmMemLib.inf ++ MmServicesTableLib|MdePkg/Library/MmServicesTableLib/MmServicesTableLib.inf ++ SmmServicesTableLib|MdePkg/Library/SmmServicesTableLib/SmmServicesTableLib.inf ++!ifdef $(DEBUG_ON_SERIAL_PORT) ++ DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf ++!else ++ DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort.inf ++!endif ++ CpuExceptionHandlerLib|UefiCpuPkg/Library/CpuExceptionHandlerLib/SmmCpuExceptionHandlerLib.inf ++ BaseCryptLib|CryptoPkg/Library/BaseCryptLib/SmmCryptLib.inf ++ PciLib|OvmfPkg/Library/DxePciLibI440FxQ35/DxePciLibI440FxQ35.inf ++ ++[LibraryClasses.common.SMM_CORE] ++ PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf ++ TimerLib|OvmfPkg/Library/AcpiTimerLib/DxeAcpiTimerLib.inf ++ ResetSystemLib|OvmfPkg/Library/ResetSystemLib/DxeResetSystemLib.inf ++ SmmCorePlatformHookLib|MdeModulePkg/Library/SmmCorePlatformHookLibNull/SmmCorePlatformHookLibNull.inf ++ MemoryAllocationLib|MdeModulePkg/Library/PiSmmCoreMemoryAllocationLib/PiSmmCoreMemoryAllocationLib.inf ++ ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf ++ HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf ++ SmmMemLib|MdePkg/Library/SmmMemLib/SmmMemLib.inf ++ SmmServicesTableLib|MdeModulePkg/Library/PiSmmCoreSmmServicesTableLib/PiSmmCoreSmmServicesTableLib.inf ++!ifdef $(DEBUG_ON_SERIAL_PORT) ++ DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf ++!else ++ DebugLib|OvmfPkg/Library/PlatformDebugLibIoPort/PlatformDebugLibIoPort.inf ++!endif ++ PciLib|OvmfPkg/Library/DxePciLibI440FxQ35/DxePciLibI440FxQ35.inf ++ ++################################################################################ ++# ++# Pcd Section - list of all EDK II PCD Entries defined by this Platform. ++# ++################################################################################ ++[PcdsFeatureFlag] ++ gEfiMdeModulePkgTokenSpaceGuid.PcdHiiOsRuntimeSupport|FALSE ++ gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSupportUefiDecompress|FALSE ++ gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode|FALSE ++ gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE ++ gEfiMdeModulePkgTokenSpaceGuid.PcdConOutUgaSupport|FALSE ++ gEfiMdeModulePkgTokenSpaceGuid.PcdInstallAcpiSdtProtocol|TRUE ++!ifdef $(CSM_ENABLE) ++ gUefiOvmfPkgTokenSpaceGuid.PcdCsmEnable|TRUE ++!endif ++ ++[PcdsFixedAtBuild] ++ gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeMemorySize|1 ++ gEfiMdeModulePkgTokenSpaceGuid.PcdResetOnMemoryTypeInformationChange|FALSE ++ gEfiMdePkgTokenSpaceGuid.PcdMaximumGuidedExtractHandler|0x10 ++ gEfiMdePkgTokenSpaceGuid.PcdMaximumLinkedListLength|0 ++!if ($(FD_SIZE_IN_KB) == 1024) || ($(FD_SIZE_IN_KB) == 2048) ++ gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVariableSize|0x2000 ++ gEfiMdeModulePkgTokenSpaceGuid.PcdMaxAuthVariableSize|0x2800 ++ # match PcdFlashNvStorageVariableSize purely for convenience ++ gEfiMdeModulePkgTokenSpaceGuid.PcdVariableStoreSize|0xe000 ++!endif ++!if $(FD_SIZE_IN_KB) == 4096 ++ gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVariableSize|0x8400 ++ gEfiMdeModulePkgTokenSpaceGuid.PcdMaxAuthVariableSize|0x8400 ++ # match PcdFlashNvStorageVariableSize purely for convenience ++ gEfiMdeModulePkgTokenSpaceGuid.PcdVariableStoreSize|0x40000 ++!endif ++ ++ gEfiMdeModulePkgTokenSpaceGuid.PcdVpdBaseAddress|0x0 ++ gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial|FALSE ++ gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseMemory|TRUE ++ ++ gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|0x07 ++ ++ # DEBUG_INIT 0x00000001 // Initialization ++ # DEBUG_WARN 0x00000002 // Warnings ++ # DEBUG_LOAD 0x00000004 // Load events ++ # DEBUG_FS 0x00000008 // EFI File system ++ # DEBUG_POOL 0x00000010 // Alloc & Free (pool) ++ # DEBUG_PAGE 0x00000020 // Alloc & Free (page) ++ # DEBUG_INFO 0x00000040 // Informational debug messages ++ # DEBUG_DISPATCH 0x00000080 // PEI/DXE/SMM Dispatchers ++ # DEBUG_VARIABLE 0x00000100 // Variable ++ # DEBUG_BM 0x00000400 // Boot Manager ++ # DEBUG_BLKIO 0x00001000 // BlkIo Driver ++ # DEBUG_NET 0x00004000 // SNP Driver ++ # DEBUG_UNDI 0x00010000 // UNDI Driver ++ # DEBUG_LOADFILE 0x00020000 // LoadFile ++ # DEBUG_EVENT 0x00080000 // Event messages ++ # DEBUG_GCD 0x00100000 // Global Coherency Database changes ++ # DEBUG_CACHE 0x00200000 // Memory range cachability changes ++ # DEBUG_VERBOSE 0x00400000 // Detailed debug messages that may ++ # // significantly impact boot performance ++ # DEBUG_ERROR 0x80000000 // Error ++ gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F ++ ++ gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x2F ++ ++ # This PCD is used to set the base address of the PCI express hierarchy. It ++ # is only consulted when OVMF runs on Q35. In that case it is programmed into ++ # the PCIEXBAR register. ++ # ++ # On Q35 machine types that QEMU intends to support in the long term, QEMU ++ # never lets the RAM below 4 GB exceed 2816 MB. ++ gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress|0xB0000000 ++ ++ # ++ # The NumberOfPages values below are ad-hoc. They are updated sporadically at ++ # best (please refer to git-blame for past updates). The values capture a set ++ # of BIN hints that made sense at a particular time, for some (now likely ++ # unknown) workloads / boot paths. ++ # ++ gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIMemoryNVS|0x80 ++ gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIReclaimMemory|0x10 ++ gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiReservedMemoryType|0x80 ++ gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesCode|0x100 ++ gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesData|0x100 ++ ++ # ++ # TDX need 1G PageTable support ++ gEfiMdeModulePkgTokenSpaceGuid.PcdUse1GPageTable|TRUE ++ ++ gEfiShellPkgTokenSpaceGuid.PcdShellFileOperationSize|0x20000 ++ ++ # IRQs 5, 9, 10, 11 are level-triggered ++ gUefiOvmfPkgTokenSpaceGuid.Pcd8259LegacyModeEdgeLevel|0x0E20 ++ ++ # Point to the MdeModulePkg/Application/UiApp/UiApp.inf ++ gEfiMdeModulePkgTokenSpaceGuid.PcdBootManagerMenuFile|{ 0x21, 0xaa, 0x2c, 0x46, 0x14, 0x76, 0x03, 0x45, 0x83, 0x6e, 0x8a, 0xb6, 0xf4, 0x66, 0x23, 0x31 } ++ ++################################################################################ ++# ++# Pcd Dynamic Section - list of all EDK II PCD Entries defined by this Platform ++# ++################################################################################ ++ ++[PcdsDynamicDefault] ++ # only set when ++ # ($(SMM_REQUIRE) == FALSE) ++ gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved|0 ++ ++ gEfiMdeModulePkgTokenSpaceGuid.PcdResizeXterm|FALSE ++ gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64|0 ++ gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase64|0 ++ gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase64|0 ++ gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase|0 ++ gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase|0 ++ ++ gEfiMdeModulePkgTokenSpaceGuid.PcdVideoHorizontalResolution|800 ++ gEfiMdeModulePkgTokenSpaceGuid.PcdVideoVerticalResolution|600 ++ gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiS3Enable|FALSE ++ gUefiOvmfPkgTokenSpaceGuid.PcdOvmfHostBridgePciDevId|0 ++ gUefiOvmfPkgTokenSpaceGuid.PcdPciIoBase|0x0 ++ gUefiOvmfPkgTokenSpaceGuid.PcdPciIoSize|0x0 ++ gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio32Base|0x0 ++ gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio32Size|0x0 ++ gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio64Base|0x0 ++ gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio64Size|0x800000000 ++ ++ gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|0 ++ ++ # Set video resolution for text setup. ++ gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoHorizontalResolution|640 ++ gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoVerticalResolution|480 ++ ++ gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosVersion|0x0208 ++ gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosDocRev|0x0 ++ gUefiOvmfPkgTokenSpaceGuid.PcdQemuSmbiosValidated|FALSE ++ ++ # Noexec settings for DXE. ++ gEfiMdeModulePkgTokenSpaceGuid.PcdSetNxForStack|TRUE ++ ++ # UefiCpuPkg PCDs related to initial AP bringup and general AP management. ++ gUefiCpuPkgTokenSpaceGuid.PcdCpuMaxLogicalProcessorNumber|64 ++ gUefiCpuPkgTokenSpaceGuid.PcdCpuBootLogicalProcessorNumber|0 ++ ++ # Set memory encryption mask ++ gEfiMdeModulePkgTokenSpaceGuid.PcdPteMemoryEncryptionAddressOrMask|0x0 ++ ++ # Set Tdx shared bit mask ++ gEfiMdeModulePkgTokenSpaceGuid.PcdTdxSharedBitMask|0x0 ++ ++ # Set SEV-ES defaults ++ gEfiMdeModulePkgTokenSpaceGuid.PcdGhcbBase|0 ++ gEfiMdeModulePkgTokenSpaceGuid.PcdGhcbSize|0 ++ gUefiCpuPkgTokenSpaceGuid.PcdSevEsIsEnabled|0 ++ ++ gEfiSecurityPkgTokenSpaceGuid.PcdOptionRomImageVerificationPolicy|0x00 ++ ++ # Set ConfidentialComputing defaults ++ gEfiMdePkgTokenSpaceGuid.PcdConfidentialComputingGuestAttr|0 ++ ++ gEfiMdePkgTokenSpaceGuid.PcdFSBClock|1000000000 ++ ++################################################################################ ++# ++# Components Section - list of all EDK II Modules needed by this Platform. ++# ++################################################################################ ++[Components] ++ OvmfPkg/ResetVector/ResetVector.inf ++ ++ # ++ # SEC Phase modules ++ # ++ OvmfPkg/IntelTdx/Sec/SecMain.inf { ++ ++ NULL|MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf ++ TpmMeasurementLib|SecurityPkg/Library/SecTpmMeasurementLib/SecTpmMeasurementLibTdx.inf ++ BaseCryptLib|CryptoPkg/Library/BaseCryptLib/SecCryptLib.inf ++ HashLib|SecurityPkg/Library/HashLibTdx/HashLibTdx.inf ++ NULL|SecurityPkg/Library/HashInstanceLibSha384/HashInstanceLibSha384.inf ++ } ++ ++ # ++ # DXE Phase modules ++ # ++ MdeModulePkg/Core/Dxe/DxeMain.inf { ++ ++ NULL|MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf ++ DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf ++ } ++ ++ MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportStatusCodeRouterRuntimeDxe.inf ++ MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.inf ++ MdeModulePkg/Universal/PCD/Dxe/Pcd.inf { ++ ++ PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf ++ } ++ ++ MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf ++ ++ MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf { ++ ++!if $(SECURE_BOOT_ENABLE) == TRUE ++ NULL|SecurityPkg/Library/DxeImageVerificationLib/DxeImageVerificationLib.inf ++!endif ++ NULL|SecurityPkg/Library/DxeTpm2MeasureBootLib/DxeTpm2MeasureBootLib.inf ++ } ++ ++ MdeModulePkg/Universal/EbcDxe/EbcDxe.inf ++ UefiCpuPkg/CpuIo2Dxe/CpuIo2Dxe.inf ++ ++ UefiCpuPkg/CpuDxe/CpuDxe.inf { ++ ++ # ++ # Directly use DxeMpInitLib. It depends on DxeMpInitLibMpDepLib which ++ # checks the Protocol of gEfiMpInitLibMpDepProtocolGuid. ++ # ++ MpInitLib|UefiCpuPkg/Library/MpInitLib/DxeMpInitLib.inf ++ NULL|OvmfPkg/Library/MpInitLibDepLib/DxeMpInitLibMpDepLib.inf ++ } ++ ++ UefiCpuPkg/CpuDxe/CpuDxe.inf { ++ ++ FILE_GUID = $(UP_CPU_DXE_GUID) ++ ++ ++ # ++ # Directly use MpInitLibUp. It depends on DxeMpInitLibUpDepLib which ++ # checks the Protocol of gEfiMpInitLibUpDepProtocolGuid. ++ # ++ MpInitLib|UefiCpuPkg/Library/MpInitLibUp/MpInitLibUp.inf ++ NULL|OvmfPkg/Library/MpInitLibDepLib/DxeMpInitLibUpDepLib.inf ++ } ++ ++ OvmfPkg/LocalApicTimerDxe/LocalApicTimerDxe.inf ++ OvmfPkg/IncompatiblePciDeviceSupportDxe/IncompatiblePciDeviceSupport.inf ++ OvmfPkg/PciHotPlugInitDxe/PciHotPlugInit.inf ++ MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciHostBridgeDxe.inf { ++ ++ PciHostBridgeLib|OvmfPkg/Library/PciHostBridgeLib/PciHostBridgeLib.inf ++ PciHostBridgeUtilityLib|OvmfPkg/Library/PciHostBridgeUtilityLib/PciHostBridgeUtilityLib.inf ++ NULL|OvmfPkg/Library/PlatformHasIoMmuLib/PlatformHasIoMmuLib.inf ++ } ++ MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf { ++ ++ PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf ++ } ++ MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf ++ MdeModulePkg/Universal/Metronome/Metronome.inf ++ PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcatRealTimeClockRuntimeDxe.inf ++ MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerDxe.inf ++ MdeModulePkg/Universal/BdsDxe/BdsDxe.inf { ++ ++ XenPlatformLib|OvmfPkg/Library/XenPlatformLib/XenPlatformLib.inf ++ } ++ MdeModulePkg/Logo/LogoDxe.inf ++ MdeModulePkg/Application/UiApp/UiApp.inf { ++ ++ NULL|MdeModulePkg/Library/DeviceManagerUiLib/DeviceManagerUiLib.inf ++ NULL|MdeModulePkg/Library/BootManagerUiLib/BootManagerUiLib.inf ++ NULL|MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManagerUiLib.inf ++ } ++ OvmfPkg/QemuKernelLoaderFsDxe/QemuKernelLoaderFsDxe.inf { ++ ++ NULL|OvmfPkg/Library/BlobVerifierLibNull/BlobVerifierLibNull.inf ++ } ++ OvmfPkg/VirtioPciDeviceDxe/VirtioPciDeviceDxe.inf ++ OvmfPkg/Virtio10Dxe/Virtio10.inf ++ OvmfPkg/VirtioBlkDxe/VirtioBlk.inf ++ OvmfPkg/VirtioScsiDxe/VirtioScsi.inf ++ OvmfPkg/VirtioRngDxe/VirtioRng.inf ++!if $(PVSCSI_ENABLE) == TRUE ++ OvmfPkg/PvScsiDxe/PvScsiDxe.inf ++!endif ++!if $(MPT_SCSI_ENABLE) == TRUE ++ OvmfPkg/MptScsiDxe/MptScsiDxe.inf ++!endif ++!if $(LSI_SCSI_ENABLE) == TRUE ++ OvmfPkg/LsiScsiDxe/LsiScsiDxe.inf ++!endif ++ MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf ++ MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf ++ MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf ++ MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf ++ MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf ++ MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf { ++ ++ PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf ++ } ++ MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf ++ MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf { ++ ++ DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf ++ PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf ++ } ++ ++ MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf ++ MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf ++ MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskDxe.inf ++ MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf ++ FatPkg/EnhancedFatDxe/Fat.inf ++ MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf ++ OvmfPkg/VirtioFsDxe/VirtioFsDxe.inf ++ MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf ++ MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf ++ OvmfPkg/SataControllerDxe/SataControllerDxe.inf ++ MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf ++ MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf ++ MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressDxe.inf ++ MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf ++ MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf ++ MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf ++ MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTestDxe.inf ++ ++!ifndef $(CSM_ENABLE) ++ OvmfPkg/QemuVideoDxe/QemuVideoDxe.inf ++!endif ++ OvmfPkg/QemuRamfbDxe/QemuRamfbDxe.inf ++ OvmfPkg/VirtioGpuDxe/VirtioGpu.inf ++ ++ # ++ # ISA Support ++ # ++ OvmfPkg/SioBusDxe/SioBusDxe.inf ++ MdeModulePkg/Bus/Pci/PciSioSerialDxe/PciSioSerialDxe.inf ++ MdeModulePkg/Bus/Isa/Ps2KeyboardDxe/Ps2KeyboardDxe.inf ++ ++ # ++ # SMBIOS Support ++ # ++ MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf { ++ ++ NULL|OvmfPkg/Library/SmbiosVersionLib/DetectSmbiosVersionLib.inf ++ } ++ OvmfPkg/SmbiosPlatformDxe/SmbiosPlatformDxe.inf ++ ++ # ++ # ACPI Support ++ # ++ MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf ++ OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf ++ MdeModulePkg/Universal/Acpi/S3SaveStateDxe/S3SaveStateDxe.inf ++ MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/BootScriptExecutorDxe.inf ++ MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResourceTableDxe.inf ++ ++ # ++ # Usb Support ++ # ++ MdeModulePkg/Bus/Pci/UhciDxe/UhciDxe.inf ++ MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf ++ MdeModulePkg/Bus/Pci/XhciDxe/XhciDxe.inf ++ MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf ++ MdeModulePkg/Bus/Usb/UsbKbDxe/UsbKbDxe.inf ++ MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf ++ ++!if $(TOOL_CHAIN_TAG) != "XCODE5" ++ OvmfPkg/LinuxInitrdDynamicShellCommand/LinuxInitrdDynamicShellCommand.inf { ++ ++ gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE ++ } ++!endif ++ ShellPkg/Application/Shell/Shell.inf { ++ ++ ShellCommandLib|ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.inf ++ NULL|ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2CommandsLib.inf ++ NULL|ShellPkg/Library/UefiShellLevel1CommandsLib/UefiShellLevel1CommandsLib.inf ++ NULL|ShellPkg/Library/UefiShellLevel3CommandsLib/UefiShellLevel3CommandsLib.inf ++ NULL|ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.inf ++ NULL|ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf ++ NULL|ShellPkg/Library/UefiShellInstall1CommandsLib/UefiShellInstall1CommandsLib.inf ++ HandleParsingLib|ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.inf ++ PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf ++ BcfgCommandLib|ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.inf ++ ++ ++ gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0xFF ++ gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE ++ gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|8000 ++ } ++ ++!if $(SECURE_BOOT_ENABLE) == TRUE ++ SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigDxe.inf ++ OvmfPkg/EnrollDefaultKeys/EnrollDefaultKeys.inf ++!endif ++ ++ OvmfPkg/PlatformDxe/Platform.inf ++ OvmfPkg/IoMmuDxe/IoMmuDxe.inf ++ ++ OvmfPkg/TdxDxe/TdxDxe.inf ++ ++ # ++ # Variable driver stack (non-SMM) ++ # ++ OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesRuntimeDxe.inf ++ OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.inf { ++ ++ PlatformFvbLib|OvmfPkg/Library/EmuVariableFvbLib/EmuVariableFvbLib.inf ++ } ++ MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf ++ MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf { ++ ++ NULL|MdeModulePkg/Library/VarCheckUefiLib/VarCheckUefiLib.inf ++ } ++ ++ # ++ # Cc Measurement Protocol for Td guest ++ # ++ OvmfPkg/IntelTdx/TdTcg2Dxe/TdTcg2Dxe.inf { ++ ++ HashLib|SecurityPkg/Library/HashLibTdx/HashLibTdx.inf ++ NULL|SecurityPkg/Library/HashInstanceLibSha384/HashInstanceLibSha384.inf ++ } +diff --git a/OvmfPkg/Microvm/MicrovmX64.dsc b/OvmfPkg/Microvm/MicrovmX64.dsc +index 617f925395..afd4bf3e98 100644 +--- a/OvmfPkg/Microvm/MicrovmX64.dsc ++++ b/OvmfPkg/Microvm/MicrovmX64.dsc +@@ -201,7 +201,7 @@ + !else + OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf + !endif +- RngLib|MdePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf ++ RngLib|MdeModulePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf + + AuthVariableLib|MdeModulePkg/Library/AuthVariableLibNull/AuthVariableLibNull.inf + VarCheckLib|MdeModulePkg/Library/VarCheckLib/VarCheckLib.inf +diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc +index a0666930d6..47426c5cd2 100644 +--- a/OvmfPkg/OvmfPkgIa32.dsc ++++ b/OvmfPkg/OvmfPkgIa32.dsc +@@ -199,7 +199,7 @@ + !else + OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf + !endif +- RngLib|MdePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf ++ RngLib|MdeModulePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf + + !if $(SECURE_BOOT_ENABLE) == TRUE + PlatformSecureLib|OvmfPkg/Library/PlatformSecureLib/PlatformSecureLib.inf +diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc +index 5efeb42bf3..d4b30e8133 100644 +--- a/OvmfPkg/OvmfPkgIa32X64.dsc ++++ b/OvmfPkg/OvmfPkgIa32X64.dsc +@@ -203,7 +203,7 @@ + !else + OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf + !endif +- RngLib|MdePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf ++ RngLib|MdeModulePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf + + !if $(SECURE_BOOT_ENABLE) == TRUE + PlatformSecureLib|OvmfPkg/Library/PlatformSecureLib/PlatformSecureLib.inf +diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc +index 10fb7d7069..5b0f6c8747 100644 +--- a/OvmfPkg/OvmfPkgX64.dsc ++++ b/OvmfPkg/OvmfPkgX64.dsc +@@ -203,7 +203,7 @@ + !else + OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf + !endif +- RngLib|MdePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf ++ RngLib|MdeModulePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf + + !if $(SECURE_BOOT_ENABLE) == TRUE + PlatformSecureLib|OvmfPkg/Library/PlatformSecureLib/PlatformSecureLib.inf +diff --git a/OvmfPkg/OvmfXen.dsc b/OvmfPkg/OvmfXen.dsc +index a31519e356..e7c36d1b80 100644 +--- a/OvmfPkg/OvmfXen.dsc ++++ b/OvmfPkg/OvmfXen.dsc +@@ -188,7 +188,7 @@ + !else + OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf + !endif +- RngLib|MdePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf ++ RngLib|MdeModulePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf + + AuthVariableLib|MdeModulePkg/Library/AuthVariableLibNull/AuthVariableLibNull.inf + VarCheckLib|MdeModulePkg/Library/VarCheckLib/VarCheckLib.inf +diff --git a/SecurityPkg/SecurityPkg.dsc b/SecurityPkg/SecurityPkg.dsc +index 36493f04ee..3daf9e5462 100644 +--- a/SecurityPkg/SecurityPkg.dsc ++++ b/SecurityPkg/SecurityPkg.dsc +@@ -91,10 +91,10 @@ + ArmTrngLib|MdePkg/Library/BaseArmTrngLibNull/BaseArmTrngLibNull.inf + + [LibraryClasses.ARM] +- RngLib|MdePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf ++ RngLib|MdeModulePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf + + [LibraryClasses.RISCV64] +- RngLib|MdePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf ++ RngLib|MdeModulePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf + + [LibraryClasses.common.PEIM] + PeimEntryPoint|MdePkg/Library/PeimEntryPoint/PeimEntryPoint.inf +diff --git a/SignedCapsulePkg/SignedCapsulePkg.dsc b/SignedCapsulePkg/SignedCapsulePkg.dsc +index 8a27207a6f..4c656666e9 100644 +--- a/SignedCapsulePkg/SignedCapsulePkg.dsc ++++ b/SignedCapsulePkg/SignedCapsulePkg.dsc +@@ -110,10 +110,10 @@ + NULL|MdePkg/Library/BaseStackCheckLib/BaseStackCheckLib.inf + + [LibraryClasses.ARM] +- RngLib|MdePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf ++ RngLib|MdeModulePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf + + [LibraryClasses.RISCV64] +- RngLib|MdePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf ++ RngLib|MdeModulePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf + + [LibraryClasses.common.PEI_CORE] + HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf +-- +2.39.3 + diff --git a/edk2-MdeModulePkg-Potential-UINT32-overflow-in-S3-ResumeC.patch b/edk2-MdeModulePkg-Potential-UINT32-overflow-in-S3-ResumeC.patch new file mode 100644 index 0000000..2729b1f --- /dev/null +++ b/edk2-MdeModulePkg-Potential-UINT32-overflow-in-S3-ResumeC.patch @@ -0,0 +1,66 @@ +From 2e4b2b8fce40cf93f35e052102f37fee07b2e64a Mon Sep 17 00:00:00 2001 +From: Jon Maloy +Date: Mon, 10 Jun 2024 18:13:29 -0400 +Subject: [PATCH 02/31] MdeModulePkg: Potential UINT32 overflow in S3 + ResumeCount + +RH-Author: Jon Maloy +RH-MergeRequest: 77: UINT32 overflow in S3 ResumeCount and Pixiefail fixes +RH-Jira: RHEL-21854 RHEL-21856 RHEL-40099 +RH-Acked-by: Gerd Hoffmann +RH-Commit: [2/31] a3592c3437041cbd33a6c11feb3d0999e122c8c0 + +JIRA: https://issues.redhat.com/browse/RHEL-40099 +CVE: CVE-2024-1298 +Upstream: Merged + +commit 284dbac43da752ee34825c8b3f6f9e8281cb5a19 +Author: Shanmugavel Pakkirisamy +Date: Mon May 6 17:53:09 2024 +0800 + + MdeModulePkg: Potential UINT32 overflow in S3 ResumeCount + + REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4677 + + Attacker able to modify physical memory and ResumeCount. + System will crash/DoS when ResumeCount reaches its MAX_UINT32. + + Cc: Zhiguang Liu + Cc: Dandan Bi + Cc: Liming Gao + + Signed-off-by: Pakkirisamy ShanmugavelX + Reviewed-by: Liming Gao + +Signed-off-by: Jon Maloy +--- + .../FirmwarePerformancePei.c | 12 ++++++++---- + 1 file changed, 8 insertions(+), 4 deletions(-) + +diff --git a/MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTablePei/FirmwarePerformancePei.c b/MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTablePei/FirmwarePerformancePei.c +index 6881466201..54b3bc3c54 100644 +--- a/MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTablePei/FirmwarePerformancePei.c ++++ b/MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTablePei/FirmwarePerformancePei.c +@@ -110,11 +110,15 @@ FpdtStatusCodeListenerPei ( + // + S3ResumeTotal = MultU64x32 (AcpiS3ResumeRecord->AverageResume, AcpiS3ResumeRecord->ResumeCount); + AcpiS3ResumeRecord->ResumeCount++; +- AcpiS3ResumeRecord->AverageResume = DivU64x32 (S3ResumeTotal + AcpiS3ResumeRecord->FullResume, AcpiS3ResumeRecord->ResumeCount); ++ if (AcpiS3ResumeRecord->ResumeCount > 0) { ++ AcpiS3ResumeRecord->AverageResume = DivU64x32 (S3ResumeTotal + AcpiS3ResumeRecord->FullResume, AcpiS3ResumeRecord->ResumeCount); ++ DEBUG ((DEBUG_INFO, "\nFPDT: S3 Resume Performance - AverageResume = 0x%x\n", AcpiS3ResumeRecord->AverageResume)); ++ } else { ++ DEBUG ((DEBUG_ERROR, "\nFPDT: S3 ResumeCount reaches the MAX_UINT32 value. S3 ResumeCount record reset to Zero.")); ++ } + +- DEBUG ((DEBUG_INFO, "FPDT: S3 Resume Performance - ResumeCount = %d\n", AcpiS3ResumeRecord->ResumeCount)); +- DEBUG ((DEBUG_INFO, "FPDT: S3 Resume Performance - FullResume = %ld\n", AcpiS3ResumeRecord->FullResume)); +- DEBUG ((DEBUG_INFO, "FPDT: S3 Resume Performance - AverageResume = %ld\n", AcpiS3ResumeRecord->AverageResume)); ++ DEBUG ((DEBUG_INFO, "FPDT: S3 Resume Performance - ResumeCount = 0x%x\n", AcpiS3ResumeRecord->ResumeCount)); ++ DEBUG ((DEBUG_INFO, "FPDT: S3 Resume Performance - FullResume = 0x%x\n", AcpiS3ResumeRecord->FullResume)); + + // + // Update S3 Suspend Performance Record. +-- +2.39.3 + diff --git a/edk2-MdeModulePkg-Rng-Add-GUID-to-describe-unsafe-Rng-alg.patch b/edk2-MdeModulePkg-Rng-Add-GUID-to-describe-unsafe-Rng-alg.patch new file mode 100644 index 0000000..9959d96 --- /dev/null +++ b/edk2-MdeModulePkg-Rng-Add-GUID-to-describe-unsafe-Rng-alg.patch @@ -0,0 +1,90 @@ +From 5ba444af245d59e3208260478aa710d4f143f259 Mon Sep 17 00:00:00 2001 +From: Jon Maloy +Date: Thu, 20 Jun 2024 16:06:25 -0400 +Subject: [PATCH 20/31] MdeModulePkg/Rng: Add GUID to describe unsafe Rng + algorithms + +RH-Author: Jon Maloy +RH-MergeRequest: 77: UINT32 overflow in S3 ResumeCount and Pixiefail fixes +RH-Jira: RHEL-21854 RHEL-21856 RHEL-40099 +RH-Acked-by: Gerd Hoffmann +RH-Commit: [20/31] d0e553560d60122f2fe5f33923b5b943c138a18d + +JIRA: https://issues.redhat.com/browse/RHEL-21856 +Upstream: Merged +CVE: CVE-2023-45237 + +commit 414c0f20896f3dec412135fa4260f8aad8bef246 +Author: Pierre Gondois +Date: Fri Aug 11 16:33:07 2023 +0200 + + MdeModulePkg/Rng: Add GUID to describe unsafe Rng algorithms + + BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=4441 + + The EFI_RNG_PROTOCOL can rely on the RngLib. The RngLib has multiple + implementations, some of them are unsafe (e.g. BaseRngLibTimerLib). + To allow the RngDxe to detect when such implementation is used, + a GetRngGuid() function is added in a following patch. + + Prepare GetRngGuid() return values and add a gEdkiiRngAlgorithmUnSafe + to describe an unsafe implementation, cf. the BaseRngLibTimerLib. + + Signed-off-by: Pierre Gondois + Reviewed-by: Sami Mujawar + Acked-by: Ard Biesheuvel + Tested-by: Kun Qin + +Signed-off-by: Jon Maloy +--- + MdeModulePkg/Include/Guid/RngAlgorithm.h | 23 +++++++++++++++++++++++ + MdeModulePkg/MdeModulePkg.dec | 3 +++ + 2 files changed, 26 insertions(+) + create mode 100644 MdeModulePkg/Include/Guid/RngAlgorithm.h + +diff --git a/MdeModulePkg/Include/Guid/RngAlgorithm.h b/MdeModulePkg/Include/Guid/RngAlgorithm.h +new file mode 100644 +index 0000000000..e2ac2ba3e5 +--- /dev/null ++++ b/MdeModulePkg/Include/Guid/RngAlgorithm.h +@@ -0,0 +1,23 @@ ++/** @file ++ Rng Algorithm ++ ++ Copyright (c) 2023, Arm Limited. All rights reserved.
++ SPDX-License-Identifier: BSD-2-Clause-Patent ++**/ ++ ++#ifndef RNG_ALGORITHM_GUID_H_ ++#define RNG_ALGORITHM_GUID_H_ ++ ++/// ++/// The implementation of a Random Number Generator might be unsafe, when using ++/// a dummy implementation for instance. Allow identifying such implementation ++/// with this GUID. ++/// ++#define EDKII_RNG_ALGORITHM_UNSAFE \ ++ { \ ++ 0x869f728c, 0x409d, 0x4ab4, {0xac, 0x03, 0x71, 0xd3, 0x09, 0xc1, 0xb3, 0xf4 } \ ++ } ++ ++extern EFI_GUID gEdkiiRngAlgorithmUnSafe; ++ ++#endif // #ifndef RNG_ALGORITHM_GUID_H_ +diff --git a/MdeModulePkg/MdeModulePkg.dec b/MdeModulePkg/MdeModulePkg.dec +index 08d59dfb3e..3513a9678a 100644 +--- a/MdeModulePkg/MdeModulePkg.dec ++++ b/MdeModulePkg/MdeModulePkg.dec +@@ -401,6 +401,9 @@ + ## Include/Guid/MigratedFvInfo.h + gEdkiiMigratedFvInfoGuid = { 0xc1ab12f7, 0x74aa, 0x408d, { 0xa2, 0xf4, 0xc6, 0xce, 0xfd, 0x17, 0x98, 0x71 } } + ++ ## Include/Guid/RngAlgorithm.h ++ gEdkiiRngAlgorithmUnSafe = { 0x869f728c, 0x409d, 0x4ab4, {0xac, 0x03, 0x71, 0xd3, 0x09, 0xc1, 0xb3, 0xf4 }} ++ + # + # GUID defined in UniversalPayload + # +-- +2.39.3 + diff --git a/edk2-MdePkg-Add-deprecated-warning-to-BaseRngLibTimer.patch b/edk2-MdePkg-Add-deprecated-warning-to-BaseRngLibTimer.patch new file mode 100644 index 0000000..925fcf1 --- /dev/null +++ b/edk2-MdePkg-Add-deprecated-warning-to-BaseRngLibTimer.patch @@ -0,0 +1,89 @@ +From 3800b9ee5d6d4c05c7e27f949c3b32c422c78f2d Mon Sep 17 00:00:00 2001 +From: Jon Maloy +Date: Thu, 20 Jun 2024 16:02:31 -0400 +Subject: [PATCH 16/31] MdePkg: Add deprecated warning to BaseRngLibTimer + +RH-Author: Jon Maloy +RH-MergeRequest: 77: UINT32 overflow in S3 ResumeCount and Pixiefail fixes +RH-Jira: RHEL-21854 RHEL-21856 RHEL-40099 +RH-Acked-by: Gerd Hoffmann +RH-Commit: [16/31] 6e199344d083e90f60cbe01dfb3c2a3719e3177d + +JIRA: https://issues.redhat.com/browse/RHEL-21856 +Upstream: Merged +CVE: CVE-2023-45237 + +commit e93468442b7da7bc80e00014e854c0c8a0a7184b +Author: Pierre Gondois +Date: Fri Aug 11 16:33:03 2023 +0200 + + MdePkg: Add deprecated warning to BaseRngLibTimer + + BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=4504 + + To keep the MdePkg self-contained and avoid dependencies on GUIDs + defined in other packages, the BaseRngLibTimer was moved to the + MdePkg. + Add a constructor to warn and request to use the MdeModulePkg + implementation. + + Signed-off-by: Pierre Gondois + Reviewed-by: Liming Gao + Reviewed-by: Sami Mujawar + Acked-by: Ard Biesheuvel + Tested-by: Kun Qin + +Signed-off-by: Jon Maloy +--- + .../BaseRngLibTimerLib/BaseRngLibTimerLib.inf | 1 + + .../Library/BaseRngLibTimerLib/RngLibTimer.c | 22 +++++++++++++++++++ + 2 files changed, 23 insertions(+) + +diff --git a/MdePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf b/MdePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf +index f857290e82..96c90db63f 100644 +--- a/MdePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf ++++ b/MdePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf +@@ -23,6 +23,7 @@ + MODULE_TYPE = BASE + VERSION_STRING = 1.0 + LIBRARY_CLASS = RngLib ++ CONSTRUCTOR = BaseRngLibTimerConstructor + + [Sources] + RngLibTimer.c +diff --git a/MdePkg/Library/BaseRngLibTimerLib/RngLibTimer.c b/MdePkg/Library/BaseRngLibTimerLib/RngLibTimer.c +index 54d29d96f3..6b8392162b 100644 +--- a/MdePkg/Library/BaseRngLibTimerLib/RngLibTimer.c ++++ b/MdePkg/Library/BaseRngLibTimerLib/RngLibTimer.c +@@ -13,6 +13,28 @@ + + #define DEFAULT_DELAY_TIME_IN_MICROSECONDS 10 + ++/** ++ This implementation is to be replaced by its MdeModulePkg copy. ++ The cause being that some GUIDs (gEdkiiRngAlgorithmUnSafe) cannot ++ be defined in the MdePkg. ++ ++ @retval EFI_SUCCESS The constructor always returns EFI_SUCCESS. ++**/ ++RETURN_STATUS ++EFIAPI ++BaseRngLibTimerConstructor ( ++ VOID ++ ) ++{ ++ DEBUG (( ++ DEBUG_WARN, ++ "Warning: This BaseRngTimerLib implementation will be deprecated. " ++ "Please use the MdeModulePkg implementation equivalent.\n" ++ )); ++ ++ return RETURN_SUCCESS; ++} ++ + /** + Using the TimerLib GetPerformanceCounterProperties() we delay + for enough time for the PerformanceCounter to increment. +-- +2.39.3 + diff --git a/edk2-MdePkg-Apply-uncrustify-changes.patch b/edk2-MdePkg-Apply-uncrustify-changes.patch new file mode 100644 index 0000000..e5409de --- /dev/null +++ b/edk2-MdePkg-Apply-uncrustify-changes.patch @@ -0,0 +1,94 @@ +From 1198bceefa4834c09e1edc1c558aeffe4930d1f5 Mon Sep 17 00:00:00 2001 +From: Jon Maloy +Date: Tue, 11 Jun 2024 21:32:26 -0400 +Subject: [PATCH 03/31] MdePkg: Apply uncrustify changes + +RH-Author: Jon Maloy +RH-MergeRequest: 77: UINT32 overflow in S3 ResumeCount and Pixiefail fixes +RH-Jira: RHEL-21854 RHEL-21856 RHEL-40099 +RH-Acked-by: Gerd Hoffmann +RH-Commit: [3/31] 422d94b837bf0e65164968272a358c2656f59838 + +JIRA: https://issues.redhat.com/browse/RHEL-21856 +Upstream: Merged +CVE: CVE-2023-45237 + +This is a subset of the whitespace changes in the corresponding upstream +commit. It is needed for the next commits in this series to apply with +less fewer conflicts. + +commit 2f88bd3a1296c522317f1c21377876de63de5be7 +Author: Michael Kubacki +Date: Sun Dec 5 14:54:05 2021 -0800 + + MdePkg: Apply uncrustify changes + + REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737 + + Apply uncrustify changes to .c/.h files in the MdePkg package + + Cc: Andrew Fish + Cc: Leif Lindholm + Cc: Michael D Kinney + Signed-off-by: Michael Kubacki + Reviewed-by: Liming Gao + +Signed-off-by: Jon Maloy +--- + MdePkg/Include/Protocol/Rng.h | 24 ++++++++++++------------ + 1 file changed, 12 insertions(+), 12 deletions(-) + +diff --git a/MdePkg/Include/Protocol/Rng.h b/MdePkg/Include/Protocol/Rng.h +index a0a05d1661..baf425587b 100644 +--- a/MdePkg/Include/Protocol/Rng.h ++++ b/MdePkg/Include/Protocol/Rng.h +@@ -93,7 +93,7 @@ typedef EFI_GUID EFI_RNG_ALGORITHM; + **/ + typedef + EFI_STATUS +-(EFIAPI *EFI_RNG_GET_INFO) ( ++(EFIAPI *EFI_RNG_GET_INFO)( + IN EFI_RNG_PROTOCOL *This, + IN OUT UINTN *RNGAlgorithmListSize, + OUT EFI_RNG_ALGORITHM *RNGAlgorithmList +@@ -123,9 +123,9 @@ EFI_STATUS + **/ + typedef + EFI_STATUS +-(EFIAPI *EFI_RNG_GET_RNG) ( ++(EFIAPI *EFI_RNG_GET_RNG)( + IN EFI_RNG_PROTOCOL *This, +- IN EFI_RNG_ALGORITHM *RNGAlgorithm, OPTIONAL ++ IN EFI_RNG_ALGORITHM *RNGAlgorithm OPTIONAL, + IN UINTN RNGValueLength, + OUT UINT8 *RNGValue + ); +@@ -135,16 +135,16 @@ EFI_STATUS + /// applications, or entropy for seeding other random number generators. + /// + struct _EFI_RNG_PROTOCOL { +- EFI_RNG_GET_INFO GetInfo; +- EFI_RNG_GET_RNG GetRNG; ++ EFI_RNG_GET_INFO GetInfo; ++ EFI_RNG_GET_RNG GetRNG; + }; + +-extern EFI_GUID gEfiRngProtocolGuid; +-extern EFI_GUID gEfiRngAlgorithmSp80090Hash256Guid; +-extern EFI_GUID gEfiRngAlgorithmSp80090Hmac256Guid; +-extern EFI_GUID gEfiRngAlgorithmSp80090Ctr256Guid; +-extern EFI_GUID gEfiRngAlgorithmX9313DesGuid; +-extern EFI_GUID gEfiRngAlgorithmX931AesGuid; +-extern EFI_GUID gEfiRngAlgorithmRaw; ++extern EFI_GUID gEfiRngProtocolGuid; ++extern EFI_GUID gEfiRngAlgorithmSp80090Hash256Guid; ++extern EFI_GUID gEfiRngAlgorithmSp80090Hmac256Guid; ++extern EFI_GUID gEfiRngAlgorithmSp80090Ctr256Guid; ++extern EFI_GUID gEfiRngAlgorithmX9313DesGuid; ++extern EFI_GUID gEfiRngAlgorithmX931AesGuid; ++extern EFI_GUID gEfiRngAlgorithmRaw; + + #endif +-- +2.39.3 + diff --git a/edk2-MdePkg-BaseRngLib-Add-a-smoketest-for-RDRAND-and-che.patch b/edk2-MdePkg-BaseRngLib-Add-a-smoketest-for-RDRAND-and-che.patch new file mode 100644 index 0000000..6067e74 --- /dev/null +++ b/edk2-MdePkg-BaseRngLib-Add-a-smoketest-for-RDRAND-and-che.patch @@ -0,0 +1,213 @@ +From 1d4b6d489cb919faa3ad67a3ae53fe26c4cd0a75 Mon Sep 17 00:00:00 2001 +From: Jon Maloy +Date: Thu, 20 Jun 2024 10:32:29 -0400 +Subject: [PATCH 25/31] MdePkg/BaseRngLib: Add a smoketest for RDRAND and check + CPUID + +RH-Author: Jon Maloy +RH-MergeRequest: 77: UINT32 overflow in S3 ResumeCount and Pixiefail fixes +RH-Jira: RHEL-21854 RHEL-21856 RHEL-40099 +RH-Acked-by: Gerd Hoffmann +RH-Commit: [25/31] 11804d6f86a644ae2c3dcad89c633ad63b794d3f + +JIRA: https://issues.redhat.com/browse/RHEL-21856 +Upstream: Merged +CVE: CVE-2023-45237 + +commit c3a8ca7b54a9fd17acdf16c6282a92cc989fa92a +Author: Pedro Falcato +Date: Tue Nov 22 22:31:03 2022 +0000 + + MdePkg/BaseRngLib: Add a smoketest for RDRAND and check CPUID + + RDRAND has notoriously been broken many times over its lifespan. + Add a smoketest to RDRAND, in order to better sniff out potential + security concerns. + + Also add a proper CPUID test in order to support older CPUs which may + not have it; it was previously being tested but then promptly ignored. + + Testing algorithm inspired by linux's arch/x86/kernel/cpu/rdrand.c + :x86_init_rdrand() per commit 049f9ae9.. + + Many thanks to Jason Donenfeld for relicensing his linux RDRAND detection + code to MIT and the public domain. + + >On Tue, Nov 22, 2022 at 2:21 PM Jason A. Donenfeld wrote: + <..> + > I (re)wrote that function in Linux. I hereby relicense it as MIT, and + > also place it into public domain. Do with it what you will now. + > + > Jason + + BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=4163 + + Signed-off-by: Pedro Falcato + Cc: Michael D Kinney + Cc: Liming Gao + Cc: Zhiguang Liu + Cc: Jason A. Donenfeld + +Signed-off-by: Jon Maloy +--- + MdePkg/Library/BaseRngLib/Rand/RdRand.c | 99 +++++++++++++++++++++++-- + 1 file changed, 91 insertions(+), 8 deletions(-) + +diff --git a/MdePkg/Library/BaseRngLib/Rand/RdRand.c b/MdePkg/Library/BaseRngLib/Rand/RdRand.c +index aee8ea04e8..7132ab0efd 100644 +--- a/MdePkg/Library/BaseRngLib/Rand/RdRand.c ++++ b/MdePkg/Library/BaseRngLib/Rand/RdRand.c +@@ -3,6 +3,7 @@ + to provide high-quality random numbers. + + Copyright (c) 2023, Arm Limited. All rights reserved.
++Copyright (c) 2022, Pedro Falcato. All rights reserved.
+ Copyright (c) 2021, NUVIA Inc. All rights reserved.
+ Copyright (c) 2015, Intel Corporation. All rights reserved.
+ +@@ -25,6 +26,88 @@ SPDX-License-Identifier: BSD-2-Clause-Patent + + STATIC BOOLEAN mRdRandSupported; + ++// ++// Intel SDM says 10 tries is good enough for reliable RDRAND usage. ++// ++#define RDRAND_RETRIES 10 ++ ++#define RDRAND_TEST_SAMPLES 8 ++ ++#define RDRAND_MIN_CHANGE 5 ++ ++// ++// Add a define for native-word RDRAND, just for the test. ++// ++#ifdef MDE_CPU_X64 ++#define ASM_RDRAND AsmRdRand64 ++#else ++#define ASM_RDRAND AsmRdRand32 ++#endif ++ ++/** ++ Tests RDRAND for broken implementations. ++ ++ @retval TRUE RDRAND is reliable (and hopefully safe). ++ @retval FALSE RDRAND is unreliable and should be disabled, despite CPUID. ++ ++**/ ++STATIC ++BOOLEAN ++TestRdRand ( ++ VOID ++ ) ++{ ++ // ++ // Test for notoriously broken rdrand implementations that always return the same ++ // value, like the Zen 3 uarch (all-1s) or other several AMD families on suspend/resume (also all-1s). ++ // Note that this should be expanded to extensively test for other sorts of possible errata. ++ // ++ ++ // ++ // Our algorithm samples rdrand $RDRAND_TEST_SAMPLES times and expects ++ // a different result $RDRAND_MIN_CHANGE times for reliable RDRAND usage. ++ // ++ UINTN Prev; ++ UINT8 Idx; ++ UINT8 TestIteration; ++ UINT32 Changed; ++ ++ Changed = 0; ++ ++ for (TestIteration = 0; TestIteration < RDRAND_TEST_SAMPLES; TestIteration++) { ++ UINTN Sample; ++ // ++ // Note: We use a retry loop for rdrand. Normal users get this in BaseRng.c ++ // Any failure to get a random number will assume RDRAND does not work. ++ // ++ for (Idx = 0; Idx < RDRAND_RETRIES; Idx++) { ++ if (ASM_RDRAND (&Sample)) { ++ break; ++ } ++ } ++ ++ if (Idx == RDRAND_RETRIES) { ++ DEBUG ((DEBUG_ERROR, "BaseRngLib/x86: CPU BUG: Failed to get an RDRAND random number - disabling\n")); ++ return FALSE; ++ } ++ ++ if (TestIteration != 0) { ++ Changed += Sample != Prev; ++ } ++ ++ Prev = Sample; ++ } ++ ++ if (Changed < RDRAND_MIN_CHANGE) { ++ DEBUG ((DEBUG_ERROR, "BaseRngLib/x86: CPU BUG: RDRAND not reliable - disabling\n")); ++ return FALSE; ++ } ++ ++ return TRUE; ++} ++ ++#undef ASM_RDRAND ++ + /** + The constructor function checks whether or not RDRAND instruction is supported + by the host hardware. +@@ -49,10 +132,13 @@ BaseRngLibConstructor ( + // CPUID. A value of 1 indicates that processor support RDRAND instruction. + // + AsmCpuid (1, 0, 0, &RegEcx, 0); +- ASSERT ((RegEcx & RDRAND_MASK) == RDRAND_MASK); + + mRdRandSupported = ((RegEcx & RDRAND_MASK) == RDRAND_MASK); + ++ if (mRdRandSupported) { ++ mRdRandSupported = TestRdRand (); ++ } ++ + return EFI_SUCCESS; + } + +@@ -71,6 +157,7 @@ ArchGetRandomNumber16 ( + OUT UINT16 *Rand + ) + { ++ ASSERT (mRdRandSupported); + return AsmRdRand16 (Rand); + } + +@@ -89,6 +176,7 @@ ArchGetRandomNumber32 ( + OUT UINT32 *Rand + ) + { ++ ASSERT (mRdRandSupported); + return AsmRdRand32 (Rand); + } + +@@ -107,6 +195,7 @@ ArchGetRandomNumber64 ( + OUT UINT64 *Rand + ) + { ++ ASSERT (mRdRandSupported); + return AsmRdRand64 (Rand); + } + +@@ -123,13 +212,7 @@ ArchIsRngSupported ( + VOID + ) + { +- /* +- Existing software depends on this always returning TRUE, so for +- now hard-code it. +- +- return mRdRandSupported; +- */ +- return TRUE; ++ return mRdRandSupported; + } + + /** +-- +2.39.3 + diff --git a/edk2-MdePkg-DxeRngLib-Request-raw-algorithm-instead-of-de.patch b/edk2-MdePkg-DxeRngLib-Request-raw-algorithm-instead-of-de.patch new file mode 100644 index 0000000..ca73c6b --- /dev/null +++ b/edk2-MdePkg-DxeRngLib-Request-raw-algorithm-instead-of-de.patch @@ -0,0 +1,66 @@ +From 3351bd0ba07cc490c344d2dc54b86833993ca5a2 Mon Sep 17 00:00:00 2001 +From: Jon Maloy +Date: Thu, 20 Jun 2024 15:58:58 -0400 +Subject: [PATCH 18/31] MdePkg/DxeRngLib: Request raw algorithm instead of + default + +RH-Author: Jon Maloy +RH-MergeRequest: 77: UINT32 overflow in S3 ResumeCount and Pixiefail fixes +RH-Jira: RHEL-21854 RHEL-21856 RHEL-40099 +RH-Acked-by: Gerd Hoffmann +RH-Commit: [18/31] fa2da700127ae713aa578638c2390673fc49522d + +JIRA: https://issues.redhat.com/browse/RHEL-21856 +Upstream: Merged +CVE: CVE-2023-45237 + +commit bd1f0eecc1dfe51ba20161bef8860d12392006bd +Author: Pierre Gondois +Date: Fri Aug 11 16:33:05 2023 +0200 + + MdePkg/DxeRngLib: Request raw algorithm instead of default + + The DxeRngLib tries to generate a random number using the 3 NIST + SP 800-90 compliant DRBG algorithms, i.e. 256-bits CTR, HASH and HMAC. + If none of the call is successful, the fallback option is the default + RNG algorithm of the EFI_RNG_PROTOCOL. This default algorithm might + be an unsafe implementation. + + Try requesting the Raw algorithm before requesting the default one. + + Signed-off-by: Pierre Gondois + Reviewed-by: Sami Mujawar + Reviewed-by: Liming Gao + Acked-by: Ard Biesheuvel + Tested-by: Kun Qin + +Signed-off-by: Jon Maloy +--- + MdePkg/Library/DxeRngLib/DxeRngLib.c | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +diff --git a/MdePkg/Library/DxeRngLib/DxeRngLib.c b/MdePkg/Library/DxeRngLib/DxeRngLib.c +index 9c3d67b5a6..4b2fc1cde5 100644 +--- a/MdePkg/Library/DxeRngLib/DxeRngLib.c ++++ b/MdePkg/Library/DxeRngLib/DxeRngLib.c +@@ -64,9 +64,16 @@ GenerateRandomNumberViaNist800Algorithm ( + if (!EFI_ERROR (Status)) { + return Status; + } ++ ++ Status = RngProtocol->GetRNG (RngProtocol, &gEfiRngAlgorithmRaw, BufferSize, Buffer); ++ DEBUG ((DEBUG_INFO, "%a: GetRNG algorithm Raw - Status = %r\n", __func__, Status)); ++ if (!EFI_ERROR (Status)) { ++ return Status; ++ } ++ + // If all the other methods have failed, use the default method from the RngProtocol + Status = RngProtocol->GetRNG (RngProtocol, NULL, BufferSize, Buffer); +- DEBUG((DEBUG_INFO, "%a: GetRNG algorithm Hash-256 - Status = %r\n", __FUNCTION__, Status)); ++ DEBUG ((DEBUG_INFO, "%a: GetRNG algorithm default - Status = %r\n", __func__, Status)); + if (!EFI_ERROR (Status)) { + return Status; + } +-- +2.39.3 + diff --git a/edk2-MdePkg-Rng-Add-GUID-to-describe-Arm-Rndr-Rng-algorit.patch b/edk2-MdePkg-Rng-Add-GUID-to-describe-Arm-Rndr-Rng-algorit.patch new file mode 100644 index 0000000..a2bbc6e --- /dev/null +++ b/edk2-MdePkg-Rng-Add-GUID-to-describe-Arm-Rndr-Rng-algorit.patch @@ -0,0 +1,91 @@ +From 2a01056c29542a10941cb32929032b80df091a17 Mon Sep 17 00:00:00 2001 +From: Jon Maloy +Date: Thu, 20 Jun 2024 16:04:48 -0400 +Subject: [PATCH 19/31] MdePkg/Rng: Add GUID to describe Arm Rndr Rng + algorithms + +RH-Author: Jon Maloy +RH-MergeRequest: 77: UINT32 overflow in S3 ResumeCount and Pixiefail fixes +RH-Jira: RHEL-21854 RHEL-21856 RHEL-40099 +RH-Acked-by: Gerd Hoffmann +RH-Commit: [19/31] 58b0f069c74b00eb6476427dd84a50a86aceb598 + +JIRA: https://issues.redhat.com/browse/RHEL-21856 +Upstream: Merged +CVE: CVE-2023-45237 + +commit cf07238e5fa4f8b1138ac1c9e80530b4d4e59f1c +Author: Pierre Gondois +Date: Fri Aug 11 16:33:06 2023 +0200 + + MdePkg/Rng: Add GUID to describe Arm Rndr Rng algorithms + + BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=4441 + + The EFI_RNG_PROTOCOL can rely on the RngLib. The RngLib has multiple + implementations, some of them are unsafe (e.g. BaseRngLibTimerLib). + To allow the RngDxe to detect when such implementation is used, + a GetRngGuid() function is added in a following patch. + + Prepare GetRngGuid() return values and add a gEfiRngAlgorithmArmRndr + to describe a Rng algorithm accessed through Arm's RNDR instruction. + [1] states that the implementation of this algorithm should be + compliant to NIST SP900-80. The compliance is not guaranteed. + + [1] Arm Architecture Reference Manual Armv8, for A-profile architecture + sK12.1 'Properties of the generated random number' + + Signed-off-by: Pierre Gondois + Reviewed-by: Sami Mujawar + Reviewed-by: Liming Gao + Acked-by: Ard Biesheuvel + Tested-by: Kun Qin + +Signed-off-by: Jon Maloy +--- + MdePkg/Include/Protocol/Rng.h | 10 ++++++++++ + MdePkg/MdePkg.dec | 1 + + 2 files changed, 11 insertions(+) + +diff --git a/MdePkg/Include/Protocol/Rng.h b/MdePkg/Include/Protocol/Rng.h +index baf425587b..38bde53240 100644 +--- a/MdePkg/Include/Protocol/Rng.h ++++ b/MdePkg/Include/Protocol/Rng.h +@@ -67,6 +67,15 @@ typedef EFI_GUID EFI_RNG_ALGORITHM; + { \ + 0xe43176d7, 0xb6e8, 0x4827, {0xb7, 0x84, 0x7f, 0xfd, 0xc4, 0xb6, 0x85, 0x61 } \ + } ++/// ++/// The Arm Architecture states the RNDR that the DRBG algorithm should be compliant ++/// with NIST SP800-90A, while not mandating a particular algorithm, so as to be ++/// inclusive of different geographies. ++/// ++#define EFI_RNG_ALGORITHM_ARM_RNDR \ ++ { \ ++ 0x43d2fde3, 0x9d4e, 0x4d79, {0x02, 0x96, 0xa8, 0x9b, 0xca, 0x78, 0x08, 0x41} \ ++ } + + /** + Returns information about the random number generation implementation. +@@ -146,5 +155,6 @@ extern EFI_GUID gEfiRngAlgorithmSp80090Ctr256Guid; + extern EFI_GUID gEfiRngAlgorithmX9313DesGuid; + extern EFI_GUID gEfiRngAlgorithmX931AesGuid; + extern EFI_GUID gEfiRngAlgorithmRaw; ++extern EFI_GUID gEfiRngAlgorithmArmRndr; + + #endif +diff --git a/MdePkg/MdePkg.dec b/MdePkg/MdePkg.dec +index 8f05e822ac..36501e8bb9 100644 +--- a/MdePkg/MdePkg.dec ++++ b/MdePkg/MdePkg.dec +@@ -594,6 +594,7 @@ + gEfiRngAlgorithmX9313DesGuid = { 0x63c4785a, 0xca34, 0x4012, {0xa3, 0xc8, 0x0b, 0x6a, 0x32, 0x4f, 0x55, 0x46 }} + gEfiRngAlgorithmX931AesGuid = { 0xacd03321, 0x777e, 0x4d3d, {0xb1, 0xc8, 0x20, 0xcf, 0xd8, 0x88, 0x20, 0xc9 }} + gEfiRngAlgorithmRaw = { 0xe43176d7, 0xb6e8, 0x4827, {0xb7, 0x84, 0x7f, 0xfd, 0xc4, 0xb6, 0x85, 0x61 }} ++ gEfiRngAlgorithmArmRndr = { 0x43d2fde3, 0x9d4e, 0x4d79, {0x02, 0x96, 0xa8, 0x9b, 0xca, 0x78, 0x08, 0x41 }} + + ## Include/Protocol/AdapterInformation.h + gEfiAdapterInfoMediaStateGuid = { 0xD7C74207, 0xA831, 0x4A26, {0xB1, 0xF5, 0xD1, 0x93, 0x06, 0x5C, 0xE8, 0xB6 }} +-- +2.39.3 + diff --git a/edk2-MdePkg-Rng-Add-GetRngGuid-to-RngLib.patch b/edk2-MdePkg-Rng-Add-GetRngGuid-to-RngLib.patch new file mode 100644 index 0000000..7369548 --- /dev/null +++ b/edk2-MdePkg-Rng-Add-GetRngGuid-to-RngLib.patch @@ -0,0 +1,409 @@ +From b466e2545e25ebb2004ae9b9f95c6c2f60d1f168 Mon Sep 17 00:00:00 2001 +From: Jon Maloy +Date: Thu, 20 Jun 2024 16:08:28 -0400 +Subject: [PATCH 21/31] MdePkg/Rng: Add GetRngGuid() to RngLib + +RH-Author: Jon Maloy +RH-MergeRequest: 77: UINT32 overflow in S3 ResumeCount and Pixiefail fixes +RH-Jira: RHEL-21854 RHEL-21856 RHEL-40099 +RH-Acked-by: Gerd Hoffmann +RH-Commit: [21/31] 54783ad88ba101c620240aa463c5d758fa416c31 + +JIRA: https://issues.redhat.com/browse/RHEL-21856 +Upstream: Merged +CVE: CVE-2023-45237 + +commit 5443c2dc310d2c8eb15fb8eefd5057342e78cd0d +Author: Pierre Gondois +Date: Fri Aug 11 16:33:08 2023 +0200 + + MdePkg/Rng: Add GetRngGuid() to RngLib + + The EFI_RNG_PROTOCOL can use the RngLib. The RngLib has multiple + implementations, some of them are unsafe (e.g. BaseRngLibTimerLib). + To allow the RngDxe to detect when such implementation is used, + add a GetRngGuid() function to the RngLib. + + Signed-off-by: Pierre Gondois + Reviewed-by: Liming Gao + Reviewed-by: Sami Mujawar + Acked-by: Ard Biesheuvel + Tested-by: Kun Qin + +Signed-off-by: Jon Maloy +--- + .../BaseRngLibTimerLib/BaseRngLibTimerLib.inf | 4 ++ + .../Library/BaseRngLibTimerLib/RngLibTimer.c | 28 +++++++++++++ + MdePkg/Include/Library/RngLib.h | 19 ++++++++- + MdePkg/Library/BaseRngLib/AArch64/Rndr.c | 42 +++++++++++++++++++ + MdePkg/Library/BaseRngLib/BaseRngLib.inf | 10 +++++ + MdePkg/Library/BaseRngLib/Rand/RdRand.c | 26 ++++++++++++ + .../Library/BaseRngLibNull/BaseRngLibNull.c | 22 ++++++++++ + .../Library/BaseRngLibTimerLib/RngLibTimer.c | 23 ++++++++++ + MdePkg/Library/DxeRngLib/DxeRngLib.c | 28 +++++++++++++ + 9 files changed, 201 insertions(+), 1 deletion(-) + +diff --git a/MdeModulePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf b/MdeModulePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf +index f729001060..8461260cc8 100644 +--- a/MdeModulePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf ++++ b/MdeModulePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf +@@ -29,6 +29,10 @@ + + [Packages] + MdePkg/MdePkg.dec ++ MdeModulePkg/MdeModulePkg.dec ++ ++[Guids] ++ gEdkiiRngAlgorithmUnSafe + + [LibraryClasses] + BaseLib +diff --git a/MdeModulePkg/Library/BaseRngLibTimerLib/RngLibTimer.c b/MdeModulePkg/Library/BaseRngLibTimerLib/RngLibTimer.c +index 980854d67b..28ff46c71f 100644 +--- a/MdeModulePkg/Library/BaseRngLibTimerLib/RngLibTimer.c ++++ b/MdeModulePkg/Library/BaseRngLibTimerLib/RngLibTimer.c +@@ -2,14 +2,18 @@ + BaseRng Library that uses the TimerLib to provide reasonably random numbers. + Do not use this on a production system. + ++ Copyright (c) 2023, Arm Limited. All rights reserved. + Copyright (c) Microsoft Corporation. + SPDX-License-Identifier: BSD-2-Clause-Patent + **/ + + #include ++#include + #include ++#include + #include + #include ++#include + + #define DEFAULT_DELAY_TIME_IN_MICROSECONDS 10 + +@@ -190,3 +194,27 @@ GetRandomNumber128 ( + // Read second 64 bits + return GetRandomNumber64 (++Rand); + } ++ ++/** ++ Get a GUID identifying the RNG algorithm implementation. ++ ++ @param [out] RngGuid If success, contains the GUID identifying ++ the RNG algorithm implementation. ++ ++ @retval EFI_SUCCESS Success. ++ @retval EFI_UNSUPPORTED Not supported. ++ @retval EFI_INVALID_PARAMETER Invalid parameter. ++**/ ++EFI_STATUS ++EFIAPI ++GetRngGuid ( ++ GUID *RngGuid ++ ) ++{ ++ if (RngGuid == NULL) { ++ return EFI_INVALID_PARAMETER; ++ } ++ ++ CopyMem (RngGuid, &gEdkiiRngAlgorithmUnSafe, sizeof (*RngGuid)); ++ return EFI_SUCCESS; ++} +diff --git a/MdePkg/Include/Library/RngLib.h b/MdePkg/Include/Library/RngLib.h +index 05e513022e..801aa6d5bd 100644 +--- a/MdePkg/Include/Library/RngLib.h ++++ b/MdePkg/Include/Library/RngLib.h +@@ -1,6 +1,7 @@ + /** @file + Provides random number generator services. + ++Copyright (c) 2023, Arm Limited. All rights reserved.
+ Copyright (c) 2015, Intel Corporation. All rights reserved.
+ SPDX-License-Identifier: BSD-2-Clause-Patent + +@@ -77,4 +78,20 @@ GetRandomNumber128 ( + OUT UINT64 *Rand + ); + +-#endif // __RNG_LIB_H__ ++/** ++ Get a GUID identifying the RNG algorithm implementation. ++ ++ @param [out] RngGuid If success, contains the GUID identifying ++ the RNG algorithm implementation. ++ ++ @retval EFI_SUCCESS Success. ++ @retval EFI_UNSUPPORTED Not supported. ++ @retval EFI_INVALID_PARAMETER Invalid parameter. ++**/ ++EFI_STATUS ++EFIAPI ++GetRngGuid ( ++ GUID *RngGuid ++ ); ++ ++#endif // __RNG_LIB_H__ +diff --git a/MdePkg/Library/BaseRngLib/AArch64/Rndr.c b/MdePkg/Library/BaseRngLib/AArch64/Rndr.c +index c9f8c813ed..7641314a54 100644 +--- a/MdePkg/Library/BaseRngLib/AArch64/Rndr.c ++++ b/MdePkg/Library/BaseRngLib/AArch64/Rndr.c +@@ -2,6 +2,7 @@ + Random number generator service that uses the RNDR instruction + to provide pseudorandom numbers. + ++ Copyright (c) 2023, Arm Limited. All rights reserved.
+ Copyright (c) 2021, NUVIA Inc. All rights reserved.
+ Copyright (c) 2015, Intel Corporation. All rights reserved.
+ +@@ -11,6 +12,7 @@ + + #include + #include ++#include + #include + #include + +@@ -137,3 +139,43 @@ ArchIsRngSupported ( + { + return mRndrSupported; + } ++ ++/** ++ Get a GUID identifying the RNG algorithm implementation. ++ ++ @param [out] RngGuid If success, contains the GUID identifying ++ the RNG algorithm implementation. ++ ++ @retval EFI_SUCCESS Success. ++ @retval EFI_UNSUPPORTED Not supported. ++ @retval EFI_INVALID_PARAMETER Invalid parameter. ++**/ ++EFI_STATUS ++EFIAPI ++GetRngGuid ( ++ GUID *RngGuid ++ ) ++{ ++ GUID *RngLibGuid; ++ ++ if (RngGuid == NULL) { ++ return EFI_INVALID_PARAMETER; ++ } ++ ++ if (!mRndrSupported) { ++ return EFI_UNSUPPORTED; ++ } ++ ++ // ++ // If the platform advertises the algorithm behind RNDR instruction, ++ // use it. Otherwise use gEfiRngAlgorithmArmRndr. ++ // ++ RngLibGuid = PcdGetPtr (PcdCpuRngSupportedAlgorithm); ++ if (!IsZeroGuid (RngLibGuid)) { ++ CopyMem (RngGuid, RngLibGuid, sizeof (*RngGuid)); ++ } else { ++ CopyMem (RngGuid, &gEfiRngAlgorithmArmRndr, sizeof (*RngGuid)); ++ } ++ ++ return EFI_SUCCESS; ++} +diff --git a/MdePkg/Library/BaseRngLib/BaseRngLib.inf b/MdePkg/Library/BaseRngLib/BaseRngLib.inf +index 1fcceb9414..49503b139b 100644 +--- a/MdePkg/Library/BaseRngLib/BaseRngLib.inf ++++ b/MdePkg/Library/BaseRngLib/BaseRngLib.inf +@@ -4,6 +4,7 @@ + # BaseRng Library that uses CPU RNG instructions (e.g. RdRand) to + # provide random numbers. + # ++# Copyright (c) 2023, Arm Limited. All rights reserved.
+ # Copyright (c) 2021, NUVIA Inc. All rights reserved.
+ # Copyright (c) 2015, Intel Corporation. All rights reserved.
+ # +@@ -43,9 +44,18 @@ + AArch64/ArmReadIdIsar0.asm | MSFT + AArch64/ArmRng.asm | MSFT + ++[Guids.AARCH64] ++ gEfiRngAlgorithmArmRndr ++ ++[Guids.Ia32, Guids.X64] ++ gEfiRngAlgorithmSp80090Ctr256Guid ++ + [Packages] + MdePkg/MdePkg.dec + ++[Pcd.AARCH64] ++ gEfiMdePkgTokenSpaceGuid.PcdCpuRngSupportedAlgorithm ++ + [LibraryClasses] + BaseLib + DebugLib +diff --git a/MdePkg/Library/BaseRngLib/Rand/RdRand.c b/MdePkg/Library/BaseRngLib/Rand/RdRand.c +index 09fb875ac3..aee8ea04e8 100644 +--- a/MdePkg/Library/BaseRngLib/Rand/RdRand.c ++++ b/MdePkg/Library/BaseRngLib/Rand/RdRand.c +@@ -2,6 +2,7 @@ + Random number generator services that uses RdRand instruction access + to provide high-quality random numbers. + ++Copyright (c) 2023, Arm Limited. All rights reserved.
+ Copyright (c) 2021, NUVIA Inc. All rights reserved.
+ Copyright (c) 2015, Intel Corporation. All rights reserved.
+ +@@ -11,6 +12,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent + + #include + #include ++#include + #include + + #include "BaseRngLibInternals.h" +@@ -129,3 +131,27 @@ ArchIsRngSupported ( + */ + return TRUE; + } ++ ++/** ++ Get a GUID identifying the RNG algorithm implementation. ++ ++ @param [out] RngGuid If success, contains the GUID identifying ++ the RNG algorithm implementation. ++ ++ @retval EFI_SUCCESS Success. ++ @retval EFI_UNSUPPORTED Not supported. ++ @retval EFI_INVALID_PARAMETER Invalid parameter. ++**/ ++EFI_STATUS ++EFIAPI ++GetRngGuid ( ++ GUID *RngGuid ++ ) ++{ ++ if (RngGuid == NULL) { ++ return EFI_INVALID_PARAMETER; ++ } ++ ++ CopyMem (RngGuid, &gEfiRngAlgorithmSp80090Ctr256Guid, sizeof (*RngGuid)); ++ return EFI_SUCCESS; ++} +diff --git a/MdePkg/Library/BaseRngLibNull/BaseRngLibNull.c b/MdePkg/Library/BaseRngLibNull/BaseRngLibNull.c +index cad30599ea..34a18e6a4d 100644 +--- a/MdePkg/Library/BaseRngLibNull/BaseRngLibNull.c ++++ b/MdePkg/Library/BaseRngLibNull/BaseRngLibNull.c +@@ -1,13 +1,16 @@ + /** @file + Null version of Random number generator services. + ++Copyright (c) 2023, Arm Limited. All rights reserved.
+ Copyright (c) 2019, Intel Corporation. All rights reserved.
+ SPDX-License-Identifier: BSD-2-Clause-Patent + + **/ + ++#include + #include + #include ++#include + + /** + Generates a 16-bit random number. +@@ -92,3 +95,22 @@ GetRandomNumber128 ( + ASSERT (FALSE); + return FALSE; + } ++ ++/** ++ Get a GUID identifying the RNG algorithm implementation. ++ ++ @param [out] RngGuid If success, contains the GUID identifying ++ the RNG algorithm implementation. ++ ++ @retval EFI_SUCCESS Success. ++ @retval EFI_UNSUPPORTED Not supported. ++ @retval EFI_INVALID_PARAMETER Invalid parameter. ++**/ ++EFI_STATUS ++EFIAPI ++GetRngGuid ( ++ GUID *RngGuid ++ ) ++{ ++ return EFI_UNSUPPORTED; ++} +diff --git a/MdePkg/Library/BaseRngLibTimerLib/RngLibTimer.c b/MdePkg/Library/BaseRngLibTimerLib/RngLibTimer.c +index 6b8392162b..7337500fec 100644 +--- a/MdePkg/Library/BaseRngLibTimerLib/RngLibTimer.c ++++ b/MdePkg/Library/BaseRngLibTimerLib/RngLibTimer.c +@@ -209,3 +209,26 @@ GetRandomNumber128 ( + // Read second 64 bits + return GetRandomNumber64 (++Rand); + } ++ ++/** ++ Get a GUID identifying the RNG algorithm implementation. ++ ++ @param [out] RngGuid If success, contains the GUID identifying ++ the RNG algorithm implementation. ++ ++ @retval EFI_SUCCESS Success. ++ @retval EFI_UNSUPPORTED Not supported. ++ @retval EFI_INVALID_PARAMETER Invalid parameter. ++**/ ++RETURN_STATUS ++EFIAPI ++GetRngGuid ( ++ GUID *RngGuid ++ ) ++{ ++ /* This implementation is to be replaced by its MdeModulePkg copy. ++ * The cause being that some GUIDs (gEdkiiRngAlgorithmUnSafe) cannot ++ * be defined in the MdePkg. ++ */ ++ return RETURN_UNSUPPORTED; ++} +diff --git a/MdePkg/Library/DxeRngLib/DxeRngLib.c b/MdePkg/Library/DxeRngLib/DxeRngLib.c +index 4b2fc1cde5..20248b4107 100644 +--- a/MdePkg/Library/DxeRngLib/DxeRngLib.c ++++ b/MdePkg/Library/DxeRngLib/DxeRngLib.c +@@ -1,6 +1,7 @@ + /** @file + Provides an implementation of the library class RngLib that uses the Rng protocol. + ++ Copyright (c) 2023, Arm Limited. All rights reserved. + Copyright (c) Microsoft Corporation. All rights reserved. + SPDX-License-Identifier: BSD-2-Clause-Patent + +@@ -204,3 +205,30 @@ GetRandomNumber128 ( + } + return TRUE; + } ++ ++/** ++ Get a GUID identifying the RNG algorithm implementation. ++ ++ @param [out] RngGuid If success, contains the GUID identifying ++ the RNG algorithm implementation. ++ ++ @retval EFI_SUCCESS Success. ++ @retval EFI_UNSUPPORTED Not supported. ++ @retval EFI_INVALID_PARAMETER Invalid parameter. ++**/ ++EFI_STATUS ++EFIAPI ++GetRngGuid ( ++ GUID *RngGuid ++ ) ++{ ++ /* It is not possible to know beforehand which Rng algorithm will ++ * be used by this library. ++ * This API is mainly used by RngDxe. RngDxe relies on the RngLib. ++ * The RngLib|DxeRngLib.inf implementation locates and uses an installed ++ * EFI_RNG_PROTOCOL. ++ * It is thus not possible to have both RngDxe and RngLib|DxeRngLib.inf. ++ * and it is ok not to support this API. ++ */ ++ return EFI_UNSUPPORTED; ++} +-- +2.39.3 + diff --git a/edk2-MdePkg-X86UnitTestHost-set-rdrand-cpuid-bit.patch b/edk2-MdePkg-X86UnitTestHost-set-rdrand-cpuid-bit.patch new file mode 100644 index 0000000..fffb448 --- /dev/null +++ b/edk2-MdePkg-X86UnitTestHost-set-rdrand-cpuid-bit.patch @@ -0,0 +1,63 @@ +From 634ee7a8cef2eac9f41cff4b42859d9d54b204bf Mon Sep 17 00:00:00 2001 +From: Jon Maloy +Date: Thu, 20 Jun 2024 10:35:27 -0400 +Subject: [PATCH 29/31] MdePkg/X86UnitTestHost: set rdrand cpuid bit + +RH-Author: Jon Maloy +RH-MergeRequest: 77: UINT32 overflow in S3 ResumeCount and Pixiefail fixes +RH-Jira: RHEL-21854 RHEL-21856 RHEL-40099 +RH-Acked-by: Gerd Hoffmann +RH-Commit: [29/31] 60851c6253df6f0114dc2c5598e0dde139d56c4c + +JIRA: https://issues.redhat.com/browse/RHEL-21856 +Upstream: Merged +CVE: CVE-2023-45237 + +commit 5e776299a2604b336a947e68593012ab2cc16eb4 +Author: Gerd Hoffmann +Date: Fri Jun 14 11:45:53 2024 +0200 + + MdePkg/X86UnitTestHost: set rdrand cpuid bit + + Set the rdrand feature bit when faking cpuid for host test cases. + Needed to make the CryptoPkg test cases work. + + Signed-off-by: Gerd Hoffmann + +Signed-off-by: Jon Maloy +--- + MdePkg/Library/BaseLib/X86UnitTestHost.c | 11 ++++++++++- + 1 file changed, 10 insertions(+), 1 deletion(-) + +diff --git a/MdePkg/Library/BaseLib/X86UnitTestHost.c b/MdePkg/Library/BaseLib/X86UnitTestHost.c +index d0e428457e..abc092a990 100644 +--- a/MdePkg/Library/BaseLib/X86UnitTestHost.c ++++ b/MdePkg/Library/BaseLib/X86UnitTestHost.c +@@ -66,6 +66,15 @@ UnitTestHostBaseLibAsmCpuid ( + OUT UINT32 *Edx OPTIONAL + ) + { ++ UINT32 RetEcx; ++ ++ RetEcx = 0; ++ switch (Index) { ++ case 1: ++ RetEcx |= BIT30; /* RdRand */ ++ break; ++ } ++ + if (Eax != NULL) { + *Eax = 0; + } +@@ -73,7 +82,7 @@ UnitTestHostBaseLibAsmCpuid ( + *Ebx = 0; + } + if (Ecx != NULL) { +- *Ecx = 0; ++ *Ecx = RetEcx; + } + if (Edx != NULL) { + *Edx = 0; +-- +2.39.3 + diff --git a/edk2-NetworkPkg-Apply-uncrustify-changes.p2.patch b/edk2-NetworkPkg-Apply-uncrustify-changes.p2.patch new file mode 100644 index 0000000..a7ca769 --- /dev/null +++ b/edk2-NetworkPkg-Apply-uncrustify-changes.p2.patch @@ -0,0 +1,16641 @@ +From 1a92cf063c3d77f3706a7d9d57fafa9364317554 Mon Sep 17 00:00:00 2001 +From: Jon Maloy +Date: Wed, 12 Jun 2024 18:16:26 -0400 +Subject: [PATCH 04/31] NetworkPkg: Apply uncrustify changes + +RH-Author: Jon Maloy +RH-MergeRequest: 77: UINT32 overflow in S3 ResumeCount and Pixiefail fixes +RH-Jira: RHEL-21854 RHEL-21856 RHEL-40099 +RH-Acked-by: Gerd Hoffmann +RH-Commit: [4/31] a42ad4b2dd705cb3492d99cbd00378581207ad65 + +JIRA: https://issues.redhat.com/browse/RHEL-21856 +CVE: CVE-2022-45237 +Upstream: Merged + +This upstream commit makes it very hard to backport more recent changes +from upstream, since it always causes numerous whitespace conflicts. In +order to make application of the next commits in this series cleaner, +and hopefully to save ourselves some future work, we apply parts of the +commit on some files which will be affected by the next commits. + +This commit only contains whitespace changes. + +commit d1050b9dff1cace252aff86630bfdb59dff5f507 +Author: Michael Kubacki +Date: Sun Dec 5 14:54:07 2021 -0800 + + NetworkPkg: Apply uncrustify changes + + REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737 + + Apply uncrustify changes to .c/.h files in the NetworkPkg package + + Cc: Andrew Fish + Cc: Leif Lindholm + Cc: Michael D Kinney + Signed-off-by: Michael Kubacki + Reviewed-by: Maciej Rabeda + +Signed-off-by: Jon Maloy +--- + NetworkPkg/Dhcp4Dxe/Dhcp4Driver.c | 175 ++- + NetworkPkg/Dhcp6Dxe/Dhcp6Driver.c | 149 +-- + NetworkPkg/DnsDxe/DnsDhcp.c | 187 ++- + NetworkPkg/DnsDxe/DnsImpl.c | 819 ++++++------ + NetworkPkg/HttpBootDxe/HttpBootDhcp6.c | 438 +++--- + NetworkPkg/IScsiDxe/IScsiCHAP.c | 634 ++++----- + NetworkPkg/IScsiDxe/IScsiMisc.c | 779 +++++------ + NetworkPkg/Include/Library/NetLib.h | 700 +++++----- + NetworkPkg/Ip4Dxe/Ip4Driver.c | 158 ++- + NetworkPkg/Ip6Dxe/Ip6If.c | 210 ++- + NetworkPkg/Ip6Dxe/Ip6Mld.c | 232 ++-- + NetworkPkg/Ip6Dxe/Ip6Nd.c | 1554 +++++++++++----------- + NetworkPkg/Library/DxeNetLib/DxeNetLib.c | 877 ++++++------ + NetworkPkg/TcpDxe/TcpDriver.c | 107 +- + NetworkPkg/TcpDxe/TcpMain.h | 150 +-- + NetworkPkg/TcpDxe/TcpMisc.c | 436 +++--- + NetworkPkg/Udp4Dxe/Udp4Driver.c | 52 +- + NetworkPkg/Udp6Dxe/Udp6Driver.c | 85 +- + NetworkPkg/UefiPxeBcDxe/PxeBcDhcp4.c | 46 +- + NetworkPkg/UefiPxeBcDxe/PxeBcDriver.c | 365 +++-- + 20 files changed, 4062 insertions(+), 4091 deletions(-) + +diff --git a/NetworkPkg/Dhcp4Dxe/Dhcp4Driver.c b/NetworkPkg/Dhcp4Dxe/Dhcp4Driver.c +index 970141abfe..8c37e93be3 100644 +--- a/NetworkPkg/Dhcp4Dxe/Dhcp4Driver.c ++++ b/NetworkPkg/Dhcp4Dxe/Dhcp4Driver.c +@@ -8,7 +8,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent + #include "Dhcp4Impl.h" + #include "Dhcp4Driver.h" + +-EFI_DRIVER_BINDING_PROTOCOL gDhcp4DriverBinding = { ++EFI_DRIVER_BINDING_PROTOCOL gDhcp4DriverBinding = { + Dhcp4DriverBindingSupported, + Dhcp4DriverBindingStart, + Dhcp4DriverBindingStop, +@@ -17,7 +17,7 @@ EFI_DRIVER_BINDING_PROTOCOL gDhcp4DriverBinding = { + NULL + }; + +-EFI_SERVICE_BINDING_PROTOCOL mDhcp4ServiceBindingTemplate = { ++EFI_SERVICE_BINDING_PROTOCOL mDhcp4ServiceBindingTemplate = { + Dhcp4ServiceBindingCreateChild, + Dhcp4ServiceBindingDestroyChild + }; +@@ -39,8 +39,8 @@ EFI_SERVICE_BINDING_PROTOCOL mDhcp4ServiceBindingTemplate = { + EFI_STATUS + EFIAPI + Dhcp4DriverEntryPoint ( +- IN EFI_HANDLE ImageHandle, +- IN EFI_SYSTEM_TABLE *SystemTable ++ IN EFI_HANDLE ImageHandle, ++ IN EFI_SYSTEM_TABLE *SystemTable + ) + { + return EfiLibInstallDriverBindingComponentName2 ( +@@ -53,7 +53,6 @@ Dhcp4DriverEntryPoint ( + ); + } + +- + /** + Test to see if this driver supports ControllerHandle. This service + is called by the EFI boot service ConnectController(). In +@@ -94,8 +93,6 @@ Dhcp4DriverBindingSupported ( + return Status; + } + +- +- + /** + Configure the default UDP child to receive all the DHCP traffics + on this network interface. +@@ -110,35 +107,33 @@ Dhcp4DriverBindingSupported ( + EFI_STATUS + EFIAPI + DhcpConfigUdpIo ( +- IN UDP_IO *UdpIo, +- IN VOID *Context ++ IN UDP_IO *UdpIo, ++ IN VOID *Context + ) + { +- EFI_UDP4_CONFIG_DATA UdpConfigData; +- +- UdpConfigData.AcceptBroadcast = TRUE; +- UdpConfigData.AcceptPromiscuous = FALSE; +- UdpConfigData.AcceptAnyPort = FALSE; +- UdpConfigData.AllowDuplicatePort = TRUE; +- UdpConfigData.TypeOfService = 0; +- UdpConfigData.TimeToLive = 64; +- UdpConfigData.DoNotFragment = FALSE; +- UdpConfigData.ReceiveTimeout = 0; +- UdpConfigData.TransmitTimeout = 0; +- +- UdpConfigData.UseDefaultAddress = FALSE; +- UdpConfigData.StationPort = DHCP_CLIENT_PORT; +- UdpConfigData.RemotePort = DHCP_SERVER_PORT; ++ EFI_UDP4_CONFIG_DATA UdpConfigData; ++ ++ UdpConfigData.AcceptBroadcast = TRUE; ++ UdpConfigData.AcceptPromiscuous = FALSE; ++ UdpConfigData.AcceptAnyPort = FALSE; ++ UdpConfigData.AllowDuplicatePort = TRUE; ++ UdpConfigData.TypeOfService = 0; ++ UdpConfigData.TimeToLive = 64; ++ UdpConfigData.DoNotFragment = FALSE; ++ UdpConfigData.ReceiveTimeout = 0; ++ UdpConfigData.TransmitTimeout = 0; ++ ++ UdpConfigData.UseDefaultAddress = FALSE; ++ UdpConfigData.StationPort = DHCP_CLIENT_PORT; ++ UdpConfigData.RemotePort = DHCP_SERVER_PORT; + + ZeroMem (&UdpConfigData.StationAddress, sizeof (EFI_IPv4_ADDRESS)); + ZeroMem (&UdpConfigData.SubnetMask, sizeof (EFI_IPv4_ADDRESS)); + ZeroMem (&UdpConfigData.RemoteAddress, sizeof (EFI_IPv4_ADDRESS)); + +- return UdpIo->Protocol.Udp4->Configure (UdpIo->Protocol.Udp4, &UdpConfigData);; ++ return UdpIo->Protocol.Udp4->Configure (UdpIo->Protocol.Udp4, &UdpConfigData); + } + +- +- + /** + Destroy the DHCP service. The Dhcp4 service may be partly initialized, + or partly destroyed. If a resource is destroyed, it is marked as so in +@@ -151,7 +146,7 @@ DhcpConfigUdpIo ( + **/ + EFI_STATUS + Dhcp4CloseService ( +- IN DHCP_SERVICE *DhcpSb ++ IN DHCP_SERVICE *DhcpSb + ) + { + DhcpCleanLease (DhcpSb); +@@ -171,8 +166,6 @@ Dhcp4CloseService ( + return EFI_SUCCESS; + } + +- +- + /** + Create a new DHCP service binding instance for the controller. + +@@ -189,28 +182,28 @@ Dhcp4CloseService ( + **/ + EFI_STATUS + Dhcp4CreateService ( +- IN EFI_HANDLE Controller, +- IN EFI_HANDLE ImageHandle, +- OUT DHCP_SERVICE **Service ++ IN EFI_HANDLE Controller, ++ IN EFI_HANDLE ImageHandle, ++ OUT DHCP_SERVICE **Service + ) + { +- DHCP_SERVICE *DhcpSb; +- EFI_STATUS Status; ++ DHCP_SERVICE *DhcpSb; ++ EFI_STATUS Status; + +- *Service = NULL; +- DhcpSb = AllocateZeroPool (sizeof (DHCP_SERVICE)); ++ *Service = NULL; ++ DhcpSb = AllocateZeroPool (sizeof (DHCP_SERVICE)); + + if (DhcpSb == NULL) { + return EFI_OUT_OF_RESOURCES; + } + +- DhcpSb->Signature = DHCP_SERVICE_SIGNATURE; +- DhcpSb->ServiceState = DHCP_UNCONFIGED; +- DhcpSb->Controller = Controller; +- DhcpSb->Image = ImageHandle; ++ DhcpSb->Signature = DHCP_SERVICE_SIGNATURE; ++ DhcpSb->ServiceState = DHCP_UNCONFIGED; ++ DhcpSb->Controller = Controller; ++ DhcpSb->Image = ImageHandle; + InitializeListHead (&DhcpSb->Children); +- DhcpSb->DhcpState = Dhcp4Stopped; +- DhcpSb->Xid = NET_RANDOM (NetRandomInitSeed ()); ++ DhcpSb->DhcpState = Dhcp4Stopped; ++ DhcpSb->Xid = NET_RANDOM (NetRandomInitSeed ()); + CopyMem ( + &DhcpSb->ServiceBinding, + &mDhcp4ServiceBindingTemplate, +@@ -244,11 +237,11 @@ Dhcp4CreateService ( + goto ON_ERROR; + } + +- DhcpSb->HwLen = (UINT8) DhcpSb->UdpIo->SnpMode.HwAddressSize; ++ DhcpSb->HwLen = (UINT8)DhcpSb->UdpIo->SnpMode.HwAddressSize; + DhcpSb->HwType = DhcpSb->UdpIo->SnpMode.IfType; + CopyMem (&DhcpSb->Mac, &DhcpSb->UdpIo->SnpMode.CurrentAddress, sizeof (DhcpSb->Mac)); + +- *Service = DhcpSb; ++ *Service = DhcpSb; + return EFI_SUCCESS; + + ON_ERROR: +@@ -258,7 +251,6 @@ ON_ERROR: + return Status; + } + +- + /** + Start this driver on ControllerHandle. This service is called by the + EFI boot service ConnectController(). In order to make +@@ -285,8 +277,8 @@ Dhcp4DriverBindingStart ( + IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL + ) + { +- DHCP_SERVICE *DhcpSb; +- EFI_STATUS Status; ++ DHCP_SERVICE *DhcpSb; ++ EFI_STATUS Status; + + // + // First: test for the DHCP4 Protocol +@@ -309,6 +301,7 @@ Dhcp4DriverBindingStart ( + if (EFI_ERROR (Status)) { + return Status; + } ++ + ASSERT (DhcpSb != NULL); + + // +@@ -319,6 +312,7 @@ Dhcp4DriverBindingStart ( + if (EFI_ERROR (Status)) { + goto ON_ERROR; + } ++ + Status = gBS->SetTimer (DhcpSb->Timer, TimerPeriodic, TICKS_PER_SECOND); + + if (EFI_ERROR (Status)) { +@@ -360,24 +354,23 @@ ON_ERROR: + EFI_STATUS + EFIAPI + Dhcp4DestroyChildEntry ( +- IN LIST_ENTRY *Entry, +- IN VOID *Context ++ IN LIST_ENTRY *Entry, ++ IN VOID *Context + ) + { +- DHCP_PROTOCOL *Instance; +- EFI_SERVICE_BINDING_PROTOCOL *ServiceBinding; ++ DHCP_PROTOCOL *Instance; ++ EFI_SERVICE_BINDING_PROTOCOL *ServiceBinding; + +- if (Entry == NULL || Context == NULL) { ++ if ((Entry == NULL) || (Context == NULL)) { + return EFI_INVALID_PARAMETER; + } + +- Instance = NET_LIST_USER_STRUCT_S (Entry, DHCP_PROTOCOL, Link, DHCP_PROTOCOL_SIGNATURE); +- ServiceBinding = (EFI_SERVICE_BINDING_PROTOCOL *) Context; ++ Instance = NET_LIST_USER_STRUCT_S (Entry, DHCP_PROTOCOL, Link, DHCP_PROTOCOL_SIGNATURE); ++ ServiceBinding = (EFI_SERVICE_BINDING_PROTOCOL *)Context; + + return ServiceBinding->DestroyChild (ServiceBinding, Instance->Handle); + } + +- + /** + Stop this driver on ControllerHandle. This service is called by the + EFI boot service DisconnectController(). In order to +@@ -422,10 +415,10 @@ Dhcp4DriverBindingStop ( + return EFI_SUCCESS; + } + +- Status = gBS->OpenProtocol ( ++ Status = gBS->OpenProtocol ( + NicHandle, + &gEfiDhcp4ServiceBindingProtocolGuid, +- (VOID **) &ServiceBinding, ++ (VOID **)&ServiceBinding, + This->DriverBindingHandle, + NicHandle, + EFI_OPEN_PROTOCOL_GET_PROTOCOL +@@ -440,23 +433,23 @@ Dhcp4DriverBindingStop ( + // + // Destroy all the children instances before destroy the service. + // +- List = &DhcpSb->Children; ++ List = &DhcpSb->Children; + Status = NetDestroyLinkList ( + List, + Dhcp4DestroyChildEntry, + ServiceBinding, + &ListLength + ); +- if (EFI_ERROR (Status) || ListLength != 0) { ++ if (EFI_ERROR (Status) || (ListLength != 0)) { + Status = EFI_DEVICE_ERROR; + } + } + +- if (NumberOfChildren == 0 && !IsListEmpty (&DhcpSb->Children)) { ++ if ((NumberOfChildren == 0) && !IsListEmpty (&DhcpSb->Children)) { + Status = EFI_DEVICE_ERROR; + } + +- if (NumberOfChildren == 0 && IsListEmpty (&DhcpSb->Children)) { ++ if ((NumberOfChildren == 0) && IsListEmpty (&DhcpSb->Children)) { + // + // Destroy the service itself if no child instance left. + // +@@ -474,6 +467,7 @@ Dhcp4DriverBindingStop ( + FreeUnicodeStringTable (gDhcpControllerNameTable); + gDhcpControllerNameTable = NULL; + } ++ + FreePool (DhcpSb); + + Status = EFI_SUCCESS; +@@ -482,7 +476,6 @@ Dhcp4DriverBindingStop ( + return Status; + } + +- + /** + Initialize a new DHCP instance. + +@@ -492,25 +485,24 @@ Dhcp4DriverBindingStop ( + **/ + VOID + DhcpInitProtocol ( +- IN DHCP_SERVICE *DhcpSb, +- IN OUT DHCP_PROTOCOL *Instance ++ IN DHCP_SERVICE *DhcpSb, ++ IN OUT DHCP_PROTOCOL *Instance + ) + { +- Instance->Signature = DHCP_PROTOCOL_SIGNATURE; ++ Instance->Signature = DHCP_PROTOCOL_SIGNATURE; + CopyMem (&Instance->Dhcp4Protocol, &mDhcp4ProtocolTemplate, sizeof (Instance->Dhcp4Protocol)); + InitializeListHead (&Instance->Link); +- Instance->Handle = NULL; +- Instance->Service = DhcpSb; +- Instance->InDestroy = FALSE; +- Instance->CompletionEvent = NULL; +- Instance->RenewRebindEvent = NULL; +- Instance->Token = NULL; +- Instance->UdpIo = NULL; +- Instance->ElaspedTime = 0; ++ Instance->Handle = NULL; ++ Instance->Service = DhcpSb; ++ Instance->InDestroy = FALSE; ++ Instance->CompletionEvent = NULL; ++ Instance->RenewRebindEvent = NULL; ++ Instance->Token = NULL; ++ Instance->UdpIo = NULL; ++ Instance->ElaspedTime = 0; + NetbufQueInit (&Instance->ResponseQueue); + } + +- + /** + Creates a child handle and installs a protocol. + +@@ -537,11 +529,11 @@ Dhcp4ServiceBindingCreateChild ( + IN EFI_HANDLE *ChildHandle + ) + { +- DHCP_SERVICE *DhcpSb; +- DHCP_PROTOCOL *Instance; +- EFI_STATUS Status; +- EFI_TPL OldTpl; +- VOID *Udp4; ++ DHCP_SERVICE *DhcpSb; ++ DHCP_PROTOCOL *Instance; ++ EFI_STATUS Status; ++ EFI_TPL OldTpl; ++ VOID *Udp4; + + if ((This == NULL) || (ChildHandle == NULL)) { + return EFI_INVALID_PARAMETER; +@@ -571,7 +563,7 @@ Dhcp4ServiceBindingCreateChild ( + return Status; + } + +- Instance->Handle = *ChildHandle; ++ Instance->Handle = *ChildHandle; + + // + // Open the Udp4 protocol BY_CHILD. +@@ -579,7 +571,7 @@ Dhcp4ServiceBindingCreateChild ( + Status = gBS->OpenProtocol ( + DhcpSb->UdpIo->UdpHandle, + &gEfiUdp4ProtocolGuid, +- (VOID **) &Udp4, ++ (VOID **)&Udp4, + gDhcp4DriverBinding.DriverBindingHandle, + Instance->Handle, + EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER +@@ -606,7 +598,6 @@ Dhcp4ServiceBindingCreateChild ( + return EFI_SUCCESS; + } + +- + /** + Destroys a child handle with a protocol installed on it. + +@@ -632,11 +623,11 @@ Dhcp4ServiceBindingDestroyChild ( + IN EFI_HANDLE ChildHandle + ) + { +- DHCP_SERVICE *DhcpSb; +- DHCP_PROTOCOL *Instance; +- EFI_DHCP4_PROTOCOL *Dhcp; +- EFI_TPL OldTpl; +- EFI_STATUS Status; ++ DHCP_SERVICE *DhcpSb; ++ DHCP_PROTOCOL *Instance; ++ EFI_DHCP4_PROTOCOL *Dhcp; ++ EFI_TPL OldTpl; ++ EFI_STATUS Status; + + if ((This == NULL) || (ChildHandle == NULL)) { + return EFI_INVALID_PARAMETER; +@@ -648,7 +639,7 @@ Dhcp4ServiceBindingDestroyChild ( + Status = gBS->OpenProtocol ( + ChildHandle, + &gEfiDhcp4ProtocolGuid, +- (VOID **) &Dhcp, ++ (VOID **)&Dhcp, + gDhcp4DriverBinding.DriverBindingHandle, + ChildHandle, + EFI_OPEN_PROTOCOL_GET_PROTOCOL +@@ -658,8 +649,8 @@ Dhcp4ServiceBindingDestroyChild ( + return EFI_UNSUPPORTED; + } + +- Instance = DHCP_INSTANCE_FROM_THIS (Dhcp); +- DhcpSb = DHCP_SERVICE_FROM_THIS (This); ++ Instance = DHCP_INSTANCE_FROM_THIS (Dhcp); ++ DhcpSb = DHCP_SERVICE_FROM_THIS (This); + + if (Instance->Service != DhcpSb) { + return EFI_INVALID_PARAMETER; +@@ -675,7 +666,7 @@ Dhcp4ServiceBindingDestroyChild ( + return EFI_SUCCESS; + } + +- OldTpl = gBS->RaiseTPL (TPL_CALLBACK); ++ OldTpl = gBS->RaiseTPL (TPL_CALLBACK); + Instance->InDestroy = TRUE; + + // +diff --git a/NetworkPkg/Dhcp6Dxe/Dhcp6Driver.c b/NetworkPkg/Dhcp6Dxe/Dhcp6Driver.c +index f0b236835f..b591a4605b 100644 +--- a/NetworkPkg/Dhcp6Dxe/Dhcp6Driver.c ++++ b/NetworkPkg/Dhcp6Dxe/Dhcp6Driver.c +@@ -10,8 +10,7 @@ + + #include "Dhcp6Impl.h" + +- +-EFI_DRIVER_BINDING_PROTOCOL gDhcp6DriverBinding = { ++EFI_DRIVER_BINDING_PROTOCOL gDhcp6DriverBinding = { + Dhcp6DriverBindingSupported, + Dhcp6DriverBindingStart, + Dhcp6DriverBindingStop, +@@ -20,7 +19,7 @@ EFI_DRIVER_BINDING_PROTOCOL gDhcp6DriverBinding = { + NULL + }; + +-EFI_SERVICE_BINDING_PROTOCOL gDhcp6ServiceBindingTemplate = { ++EFI_SERVICE_BINDING_PROTOCOL gDhcp6ServiceBindingTemplate = { + Dhcp6ServiceBindingCreateChild, + Dhcp6ServiceBindingDestroyChild + }; +@@ -39,12 +38,12 @@ EFI_SERVICE_BINDING_PROTOCOL gDhcp6ServiceBindingTemplate = { + EFI_STATUS + EFIAPI + Dhcp6ConfigureUdpIo ( +- IN UDP_IO *UdpIo, +- IN VOID *Context ++ IN UDP_IO *UdpIo, ++ IN VOID *Context + ) + { +- EFI_UDP6_PROTOCOL *Udp6; +- EFI_UDP6_CONFIG_DATA *Config; ++ EFI_UDP6_PROTOCOL *Udp6; ++ EFI_UDP6_CONFIG_DATA *Config; + + Udp6 = UdpIo->Protocol.Udp6; + Config = &(UdpIo->Config.Udp6); +@@ -67,13 +66,12 @@ Dhcp6ConfigureUdpIo ( + // will be overridden later. Note that we MUST not limit RemotePort. + // More details, refer to RFC 3315 section 5.2. + // +- Config->StationPort = DHCP6_PORT_CLIENT; +- Config->RemotePort = 0; ++ Config->StationPort = DHCP6_PORT_CLIENT; ++ Config->RemotePort = 0; + +- return Udp6->Configure (Udp6, Config);; ++ return Udp6->Configure (Udp6, Config); + } + +- + /** + Destroy the Dhcp6 service. The Dhcp6 service may be partly initialized, + or partly destroyed. If a resource is destroyed, it is marked as such in +@@ -84,7 +82,7 @@ Dhcp6ConfigureUdpIo ( + **/ + VOID + Dhcp6DestroyService ( +- IN OUT DHCP6_SERVICE *Service ++ IN OUT DHCP6_SERVICE *Service + ) + { + // +@@ -103,7 +101,6 @@ Dhcp6DestroyService ( + FreePool (Service); + } + +- + /** + Create a new Dhcp6 service for the Nic controller. + +@@ -119,13 +116,13 @@ Dhcp6DestroyService ( + **/ + EFI_STATUS + Dhcp6CreateService ( +- IN EFI_HANDLE Controller, +- IN EFI_HANDLE ImageHandle, +- OUT DHCP6_SERVICE **Service ++ IN EFI_HANDLE Controller, ++ IN EFI_HANDLE ImageHandle, ++ OUT DHCP6_SERVICE **Service + ) + { +- DHCP6_SERVICE *Dhcp6Srv; +- EFI_STATUS Status; ++ DHCP6_SERVICE *Dhcp6Srv; ++ EFI_STATUS Status; + + *Service = NULL; + Dhcp6Srv = AllocateZeroPool (sizeof (DHCP6_SERVICE)); +@@ -147,10 +144,10 @@ Dhcp6CreateService ( + // + // Initialize the fields of the new Dhcp6 service. + // +- Dhcp6Srv->Signature = DHCP6_SERVICE_SIGNATURE; +- Dhcp6Srv->Controller = Controller; +- Dhcp6Srv->Image = ImageHandle; +- Dhcp6Srv->Xid = (0xffffff & NET_RANDOM (NetRandomInitSeed ())); ++ Dhcp6Srv->Signature = DHCP6_SERVICE_SIGNATURE; ++ Dhcp6Srv->Controller = Controller; ++ Dhcp6Srv->Image = ImageHandle; ++ Dhcp6Srv->Xid = (0xffffff & NET_RANDOM (NetRandomInitSeed ())); + + CopyMem ( + &Dhcp6Srv->ServiceBinding, +@@ -164,7 +161,7 @@ Dhcp6CreateService ( + Status = gBS->HandleProtocol ( + Controller, + &gEfiIp6ConfigProtocolGuid, +- (VOID **) &Dhcp6Srv->Ip6Cfg ++ (VOID **)&Dhcp6Srv->Ip6Cfg + ); + if (EFI_ERROR (Status)) { + FreePool (Dhcp6Srv); +@@ -175,7 +172,7 @@ Dhcp6CreateService ( + // Generate client Duid: If SMBIOS system UUID is located, generate DUID in DUID-UUID format. + // Otherwise, in DUID-LLT format. + // +- Dhcp6Srv->ClientId = Dhcp6GenerateClientId (Dhcp6Srv->Snp->Mode); ++ Dhcp6Srv->ClientId = Dhcp6GenerateClientId (Dhcp6Srv->Snp->Mode); + + if (Dhcp6Srv->ClientId == NULL) { + FreePool (Dhcp6Srv); +@@ -206,7 +203,6 @@ Dhcp6CreateService ( + return EFI_SUCCESS; + } + +- + /** + Destroy the Dhcp6 instance and recycle the resources. + +@@ -215,7 +211,7 @@ Dhcp6CreateService ( + **/ + VOID + Dhcp6DestroyInstance ( +- IN OUT DHCP6_INSTANCE *Instance ++ IN OUT DHCP6_INSTANCE *Instance + ) + { + // +@@ -239,6 +235,7 @@ Dhcp6DestroyInstance ( + if (Instance->IaCb.Ia->ReplyPacket != NULL) { + FreePool (Instance->IaCb.Ia->ReplyPacket); + } ++ + FreePool (Instance->IaCb.Ia); + } + +@@ -253,7 +250,6 @@ Dhcp6DestroyInstance ( + FreePool (Instance); + } + +- + /** + Create the Dhcp6 instance and initialize it. + +@@ -266,12 +262,12 @@ Dhcp6DestroyInstance ( + **/ + EFI_STATUS + Dhcp6CreateInstance ( +- IN DHCP6_SERVICE *Service, +- OUT DHCP6_INSTANCE **Instance ++ IN DHCP6_SERVICE *Service, ++ OUT DHCP6_INSTANCE **Instance + ) + { +- EFI_STATUS Status; +- DHCP6_INSTANCE *Dhcp6Ins; ++ EFI_STATUS Status; ++ DHCP6_INSTANCE *Dhcp6Ins; + + *Instance = NULL; + Dhcp6Ins = AllocateZeroPool (sizeof (DHCP6_INSTANCE)); +@@ -283,11 +279,11 @@ Dhcp6CreateInstance ( + // + // Initialize the fields of the new Dhcp6 instance. + // +- Dhcp6Ins->Signature = DHCP6_INSTANCE_SIGNATURE; +- Dhcp6Ins->UdpSts = EFI_ALREADY_STARTED; +- Dhcp6Ins->Service = Service; +- Dhcp6Ins->InDestroy = FALSE; +- Dhcp6Ins->MediaPresent = TRUE; ++ Dhcp6Ins->Signature = DHCP6_INSTANCE_SIGNATURE; ++ Dhcp6Ins->UdpSts = EFI_ALREADY_STARTED; ++ Dhcp6Ins->Service = Service; ++ Dhcp6Ins->InDestroy = FALSE; ++ Dhcp6Ins->MediaPresent = TRUE; + + CopyMem ( + &Dhcp6Ins->Dhcp6, +@@ -333,24 +329,23 @@ Dhcp6CreateInstance ( + EFI_STATUS + EFIAPI + Dhcp6DestroyChildEntry ( +- IN LIST_ENTRY *Entry, +- IN VOID *Context ++ IN LIST_ENTRY *Entry, ++ IN VOID *Context + ) + { +- DHCP6_INSTANCE *Instance; +- EFI_SERVICE_BINDING_PROTOCOL *ServiceBinding; ++ DHCP6_INSTANCE *Instance; ++ EFI_SERVICE_BINDING_PROTOCOL *ServiceBinding; + +- if (Entry == NULL || Context == NULL) { ++ if ((Entry == NULL) || (Context == NULL)) { + return EFI_INVALID_PARAMETER; + } + +- Instance = NET_LIST_USER_STRUCT_S (Entry, DHCP6_INSTANCE, Link, DHCP6_INSTANCE_SIGNATURE); +- ServiceBinding = (EFI_SERVICE_BINDING_PROTOCOL *) Context; ++ Instance = NET_LIST_USER_STRUCT_S (Entry, DHCP6_INSTANCE, Link, DHCP6_INSTANCE_SIGNATURE); ++ ServiceBinding = (EFI_SERVICE_BINDING_PROTOCOL *)Context; + + return ServiceBinding->DestroyChild (ServiceBinding, Instance->Handle); + } + +- + /** + Entry point of the DHCP6 driver to install various protocols. + +@@ -364,8 +359,8 @@ Dhcp6DestroyChildEntry ( + EFI_STATUS + EFIAPI + Dhcp6DriverEntryPoint ( +- IN EFI_HANDLE ImageHandle, +- IN EFI_SYSTEM_TABLE *SystemTable ++ IN EFI_HANDLE ImageHandle, ++ IN EFI_SYSTEM_TABLE *SystemTable + ) + { + return EfiLibInstallDriverBindingComponentName2 ( +@@ -378,7 +373,6 @@ Dhcp6DriverEntryPoint ( + ); + } + +- + /** + Test to see if this driver supports ControllerHandle. This service + is called by the EFI boot service ConnectController(). In +@@ -414,7 +408,6 @@ Dhcp6DriverBindingSupported ( + ); + } + +- + /** + Start this driver on ControllerHandle. This service is called by the + EFI boot service ConnectController(). In order to make +@@ -441,8 +434,8 @@ Dhcp6DriverBindingStart ( + IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL + ) + { +- EFI_STATUS Status; +- DHCP6_SERVICE *Service; ++ EFI_STATUS Status; ++ DHCP6_SERVICE *Service; + + // + // Check the Dhcp6 service whether already started. +@@ -490,7 +483,6 @@ Dhcp6DriverBindingStart ( + return EFI_SUCCESS; + } + +- + /** + Stop this driver on ControllerHandle. This service is called by the + EFI boot service DisconnectController(). In order to +@@ -519,12 +511,12 @@ Dhcp6DriverBindingStop ( + IN EFI_HANDLE *ChildHandleBuffer OPTIONAL + ) + { +- EFI_STATUS Status; +- EFI_HANDLE NicHandle; +- EFI_SERVICE_BINDING_PROTOCOL *ServiceBinding; +- DHCP6_SERVICE *Service; +- LIST_ENTRY *List; +- UINTN ListLength; ++ EFI_STATUS Status; ++ EFI_HANDLE NicHandle; ++ EFI_SERVICE_BINDING_PROTOCOL *ServiceBinding; ++ DHCP6_SERVICE *Service; ++ LIST_ENTRY *List; ++ UINTN ListLength; + + // + // Find and check the Nic handle by the controller handle. +@@ -538,7 +530,7 @@ Dhcp6DriverBindingStop ( + Status = gBS->OpenProtocol ( + NicHandle, + &gEfiDhcp6ServiceBindingProtocolGuid, +- (VOID **) &ServiceBinding, ++ (VOID **)&ServiceBinding, + This->DriverBindingHandle, + NicHandle, + EFI_OPEN_PROTOCOL_GET_PROTOCOL +@@ -553,23 +545,23 @@ Dhcp6DriverBindingStop ( + // + // Destroy all the children instances before destroy the service. + // +- List = &Service->Child; ++ List = &Service->Child; + Status = NetDestroyLinkList ( + List, + Dhcp6DestroyChildEntry, + ServiceBinding, + &ListLength + ); +- if (EFI_ERROR (Status) || ListLength != 0) { ++ if (EFI_ERROR (Status) || (ListLength != 0)) { + Status = EFI_DEVICE_ERROR; + } + } + +- if (NumberOfChildren == 0 && !IsListEmpty (&Service->Child)) { ++ if ((NumberOfChildren == 0) && !IsListEmpty (&Service->Child)) { + Status = EFI_DEVICE_ERROR; + } + +- if (NumberOfChildren == 0 && IsListEmpty (&Service->Child)) { ++ if ((NumberOfChildren == 0) && IsListEmpty (&Service->Child)) { + // + // Destroy the service itself if no child instance left. + // +@@ -590,7 +582,6 @@ ON_EXIT: + return Status; + } + +- + /** + Creates a child handle and installs a protocol. + +@@ -615,19 +606,19 @@ Dhcp6ServiceBindingCreateChild ( + IN OUT EFI_HANDLE *ChildHandle + ) + { +- EFI_STATUS Status; +- EFI_TPL OldTpl; +- DHCP6_SERVICE *Service; +- DHCP6_INSTANCE *Instance; +- VOID *Udp6; ++ EFI_STATUS Status; ++ EFI_TPL OldTpl; ++ DHCP6_SERVICE *Service; ++ DHCP6_INSTANCE *Instance; ++ VOID *Udp6; + +- if (This == NULL || ChildHandle == NULL) { ++ if ((This == NULL) || (ChildHandle == NULL)) { + return EFI_INVALID_PARAMETER; + } + + Service = DHCP6_SERVICE_FROM_THIS (This); + +- Status = Dhcp6CreateInstance (Service, &Instance); ++ Status = Dhcp6CreateInstance (Service, &Instance); + + if (EFI_ERROR (Status)) { + return Status; +@@ -670,14 +661,13 @@ Dhcp6ServiceBindingCreateChild ( + Status = gBS->OpenProtocol ( + Service->UdpIo->UdpHandle, + &gEfiUdp6ProtocolGuid, +- (VOID **) &Udp6, ++ (VOID **)&Udp6, + gDhcp6DriverBinding.DriverBindingHandle, + Instance->Handle, + EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER + ); + + if (EFI_ERROR (Status)) { +- + gBS->UninstallMultipleProtocolInterfaces ( + Instance->Handle, + &gEfiDhcp6ProtocolGuid, +@@ -704,7 +694,6 @@ ON_ERROR: + return Status; + } + +- + /** + Destroys a child handle with a protocol installed on it. + +@@ -730,13 +719,13 @@ Dhcp6ServiceBindingDestroyChild ( + IN EFI_HANDLE ChildHandle + ) + { +- EFI_STATUS Status; +- EFI_TPL OldTpl; +- EFI_DHCP6_PROTOCOL *Dhcp6; +- DHCP6_SERVICE *Service; +- DHCP6_INSTANCE *Instance; ++ EFI_STATUS Status; ++ EFI_TPL OldTpl; ++ EFI_DHCP6_PROTOCOL *Dhcp6; ++ DHCP6_SERVICE *Service; ++ DHCP6_INSTANCE *Instance; + +- if (This == NULL || ChildHandle == NULL) { ++ if ((This == NULL) || (ChildHandle == NULL)) { + return EFI_INVALID_PARAMETER; + } + +@@ -746,7 +735,7 @@ Dhcp6ServiceBindingDestroyChild ( + Status = gBS->OpenProtocol ( + ChildHandle, + &gEfiDhcp6ProtocolGuid, +- (VOID **) &Dhcp6, ++ (VOID **)&Dhcp6, + gDhcp6DriverBinding.DriverBindingHandle, + ChildHandle, + EFI_OPEN_PROTOCOL_GET_PROTOCOL +diff --git a/NetworkPkg/DnsDxe/DnsDhcp.c b/NetworkPkg/DnsDxe/DnsDhcp.c +index 8f8b2aab1e..933565a32d 100644 +--- a/NetworkPkg/DnsDxe/DnsDhcp.c ++++ b/NetworkPkg/DnsDxe/DnsDhcp.c +@@ -19,22 +19,22 @@ SPDX-License-Identifier: BSD-2-Clause-Patent + **/ + VOID + DnsInitSeedPacket ( +- OUT EFI_DHCP4_PACKET *Seed, +- IN EFI_IP4_CONFIG2_INTERFACE_INFO *InterfaceInfo ++ OUT EFI_DHCP4_PACKET *Seed, ++ IN EFI_IP4_CONFIG2_INTERFACE_INFO *InterfaceInfo + ) + { +- EFI_DHCP4_HEADER *Header; ++ EFI_DHCP4_HEADER *Header; + + // + // Get IfType and HwAddressSize from SNP mode data. + // +- Seed->Size = sizeof (EFI_DHCP4_PACKET); +- Seed->Length = sizeof (Seed->Dhcp4); +- Header = &Seed->Dhcp4.Header; ++ Seed->Size = sizeof (EFI_DHCP4_PACKET); ++ Seed->Length = sizeof (Seed->Dhcp4); ++ Header = &Seed->Dhcp4.Header; + ZeroMem (Header, sizeof (EFI_DHCP4_HEADER)); +- Header->OpCode = DHCP4_OPCODE_REQUEST; +- Header->HwType = InterfaceInfo->IfType; +- Header->HwAddrLen = (UINT8) InterfaceInfo->HwAddressSize; ++ Header->OpCode = DHCP4_OPCODE_REQUEST; ++ Header->HwType = InterfaceInfo->IfType; ++ Header->HwAddrLen = (UINT8)InterfaceInfo->HwAddressSize; + CopyMem (Header->ClientHwAddr, &(InterfaceInfo->HwAddress), Header->HwAddrLen); + + Seed->Dhcp4.Magik = DHCP4_MAGIC; +@@ -56,10 +56,10 @@ DhcpCommonNotify ( + ) + { + if ((Event == NULL) || (Context == NULL)) { +- return ; ++ return; + } + +- *((BOOLEAN *) Context) = TRUE; ++ *((BOOLEAN *)Context) = TRUE; + } + + /** +@@ -77,26 +77,26 @@ DhcpCommonNotify ( + **/ + EFI_STATUS + ParseDhcp4Ack ( +- IN EFI_DHCP4_PROTOCOL *Dhcp4, +- IN EFI_DHCP4_PACKET *Packet, +- IN DNS4_SERVER_INFOR *DnsServerInfor ++ IN EFI_DHCP4_PROTOCOL *Dhcp4, ++ IN EFI_DHCP4_PACKET *Packet, ++ IN DNS4_SERVER_INFOR *DnsServerInfor + ) + { +- EFI_STATUS Status; +- UINT32 OptionCount; +- EFI_DHCP4_PACKET_OPTION **OptionList; +- UINT32 ServerCount; +- EFI_IPv4_ADDRESS *ServerList; +- UINT32 Index; +- UINT32 Count; ++ EFI_STATUS Status; ++ UINT32 OptionCount; ++ EFI_DHCP4_PACKET_OPTION **OptionList; ++ UINT32 ServerCount; ++ EFI_IPv4_ADDRESS *ServerList; ++ UINT32 Index; ++ UINT32 Count; + + ServerCount = 0; +- ServerList = NULL; ++ ServerList = NULL; + + OptionCount = 0; + OptionList = NULL; + +- Status = Dhcp4->Parse (Dhcp4, Packet, &OptionCount, OptionList); ++ Status = Dhcp4->Parse (Dhcp4, Packet, &OptionCount, OptionList); + if (Status != EFI_BUFFER_TOO_SMALL) { + return EFI_DEVICE_ERROR; + } +@@ -119,19 +119,18 @@ ParseDhcp4Ack ( + // Get DNS server addresses + // + if (OptionList[Index]->OpCode == DHCP4_TAG_DNS_SERVER) { +- + if (((OptionList[Index]->Length & 0x3) != 0) || (OptionList[Index]->Length == 0)) { + Status = EFI_DEVICE_ERROR; + break; + } + + ServerCount = OptionList[Index]->Length/4; +- ServerList = AllocatePool (ServerCount * sizeof (EFI_IPv4_ADDRESS)); ++ ServerList = AllocatePool (ServerCount * sizeof (EFI_IPv4_ADDRESS)); + if (ServerList == NULL) { + return EFI_OUT_OF_RESOURCES; + } + +- for (Count=0; Count < ServerCount; Count++) { ++ for (Count = 0; Count < ServerCount; Count++) { + CopyMem (ServerList + Count, &OptionList[Index]->Data[4 * Count], sizeof (EFI_IPv4_ADDRESS)); + } + +@@ -167,25 +166,25 @@ ParseDhcp4Ack ( + EFI_STATUS + EFIAPI + ParseDhcp6Ack ( +- IN EFI_DHCP6_PROTOCOL *This, +- IN VOID *Context, +- IN EFI_DHCP6_PACKET *Packet ++ IN EFI_DHCP6_PROTOCOL *This, ++ IN VOID *Context, ++ IN EFI_DHCP6_PACKET *Packet + ) + { +- EFI_STATUS Status; +- UINT32 OptionCount; +- EFI_DHCP6_PACKET_OPTION **OptionList; +- DNS6_SERVER_INFOR *DnsServerInfor; +- UINT32 ServerCount; +- EFI_IPv6_ADDRESS *ServerList; +- UINT32 Index; +- UINT32 Count; ++ EFI_STATUS Status; ++ UINT32 OptionCount; ++ EFI_DHCP6_PACKET_OPTION **OptionList; ++ DNS6_SERVER_INFOR *DnsServerInfor; ++ UINT32 ServerCount; ++ EFI_IPv6_ADDRESS *ServerList; ++ UINT32 Index; ++ UINT32 Count; + + OptionCount = 0; + ServerCount = 0; + ServerList = NULL; + +- Status = This->Parse (This, Packet, &OptionCount, NULL); ++ Status = This->Parse (This, Packet, &OptionCount, NULL); + if (Status != EFI_BUFFER_TOO_SMALL) { + return EFI_DEVICE_ERROR; + } +@@ -201,7 +200,7 @@ ParseDhcp6Ack ( + return EFI_DEVICE_ERROR; + } + +- DnsServerInfor = (DNS6_SERVER_INFOR *) Context; ++ DnsServerInfor = (DNS6_SERVER_INFOR *)Context; + + for (Index = 0; Index < OptionCount; Index++) { + OptionList[Index]->OpCode = NTOHS (OptionList[Index]->OpCode); +@@ -211,7 +210,6 @@ ParseDhcp6Ack ( + // Get DNS server addresses from this reply packet. + // + if (OptionList[Index]->OpCode == DHCP6_TAG_DNS_SERVER) { +- + if (((OptionList[Index]->OpLen & 0xf) != 0) || (OptionList[Index]->OpLen == 0)) { + Status = EFI_DEVICE_ERROR; + gBS->FreePool (OptionList); +@@ -219,13 +217,13 @@ ParseDhcp6Ack ( + } + + ServerCount = OptionList[Index]->OpLen/16; +- ServerList = AllocatePool (ServerCount * sizeof (EFI_IPv6_ADDRESS)); ++ ServerList = AllocatePool (ServerCount * sizeof (EFI_IPv6_ADDRESS)); + if (ServerList == NULL) { + gBS->FreePool (OptionList); + return EFI_OUT_OF_RESOURCES; + } + +- for (Count=0; Count < ServerCount; Count++) { ++ for (Count = 0; Count < ServerCount; Count++) { + CopyMem (ServerList + Count, &OptionList[Index]->Data[16 * Count], sizeof (EFI_IPv6_ADDRESS)); + } + +@@ -237,7 +235,6 @@ ParseDhcp6Ack ( + gBS->FreePool (OptionList); + + return Status; +- + } + + /** +@@ -255,47 +252,47 @@ ParseDhcp6Ack ( + **/ + EFI_STATUS + GetDns4ServerFromDhcp4 ( +- IN DNS_INSTANCE *Instance, +- OUT UINT32 *DnsServerCount, +- OUT EFI_IPv4_ADDRESS **DnsServerList ++ IN DNS_INSTANCE *Instance, ++ OUT UINT32 *DnsServerCount, ++ OUT EFI_IPv4_ADDRESS **DnsServerList + ) + { +- EFI_STATUS Status; +- EFI_HANDLE Image; +- EFI_HANDLE Controller; +- EFI_STATUS MediaStatus; +- EFI_HANDLE MnpChildHandle; +- EFI_MANAGED_NETWORK_PROTOCOL *Mnp; +- EFI_MANAGED_NETWORK_CONFIG_DATA MnpConfigData; +- EFI_HANDLE Dhcp4Handle; +- EFI_DHCP4_PROTOCOL *Dhcp4; +- EFI_IP4_CONFIG2_PROTOCOL *Ip4Config2; +- UINTN DataSize; +- VOID *Data; +- EFI_IP4_CONFIG2_INTERFACE_INFO *InterfaceInfo; +- EFI_DHCP4_PACKET SeedPacket; +- EFI_DHCP4_PACKET_OPTION *ParaList[2]; +- DNS4_SERVER_INFOR DnsServerInfor; +- +- EFI_DHCP4_TRANSMIT_RECEIVE_TOKEN Token; +- BOOLEAN IsDone; +- UINTN Index; +- +- Image = Instance->Service->ImageHandle; +- Controller = Instance->Service->ControllerHandle; +- +- MnpChildHandle = NULL; +- Mnp = NULL; +- +- Dhcp4Handle = NULL; +- Dhcp4 = NULL; +- +- Ip4Config2 = NULL; +- DataSize = 0; +- Data = NULL; +- InterfaceInfo = NULL; +- +- ZeroMem ((UINT8 *) ParaList, sizeof (ParaList)); ++ EFI_STATUS Status; ++ EFI_HANDLE Image; ++ EFI_HANDLE Controller; ++ EFI_STATUS MediaStatus; ++ EFI_HANDLE MnpChildHandle; ++ EFI_MANAGED_NETWORK_PROTOCOL *Mnp; ++ EFI_MANAGED_NETWORK_CONFIG_DATA MnpConfigData; ++ EFI_HANDLE Dhcp4Handle; ++ EFI_DHCP4_PROTOCOL *Dhcp4; ++ EFI_IP4_CONFIG2_PROTOCOL *Ip4Config2; ++ UINTN DataSize; ++ VOID *Data; ++ EFI_IP4_CONFIG2_INTERFACE_INFO *InterfaceInfo; ++ EFI_DHCP4_PACKET SeedPacket; ++ EFI_DHCP4_PACKET_OPTION *ParaList[2]; ++ DNS4_SERVER_INFOR DnsServerInfor; ++ ++ EFI_DHCP4_TRANSMIT_RECEIVE_TOKEN Token; ++ BOOLEAN IsDone; ++ UINTN Index; ++ ++ Image = Instance->Service->ImageHandle; ++ Controller = Instance->Service->ControllerHandle; ++ ++ MnpChildHandle = NULL; ++ Mnp = NULL; ++ ++ Dhcp4Handle = NULL; ++ Dhcp4 = NULL; ++ ++ Ip4Config2 = NULL; ++ DataSize = 0; ++ Data = NULL; ++ InterfaceInfo = NULL; ++ ++ ZeroMem ((UINT8 *)ParaList, sizeof (ParaList)); + + ZeroMem (&MnpConfigData, sizeof (EFI_MANAGED_NETWORK_CONFIG_DATA)); + +@@ -332,7 +329,7 @@ GetDns4ServerFromDhcp4 ( + Status = gBS->OpenProtocol ( + MnpChildHandle, + &gEfiManagedNetworkProtocolGuid, +- (VOID **) &Mnp, ++ (VOID **)&Mnp, + Image, + Controller, + EFI_OPEN_PROTOCOL_BY_DRIVER +@@ -352,7 +349,7 @@ GetDns4ServerFromDhcp4 ( + MnpConfigData.EnableReceiveTimestamps = FALSE; + MnpConfigData.DisableBackgroundPolling = FALSE; + +- Status = Mnp->Configure(Mnp, &MnpConfigData); ++ Status = Mnp->Configure (Mnp, &MnpConfigData); + if (EFI_ERROR (Status)) { + goto ON_EXIT; + } +@@ -373,7 +370,7 @@ GetDns4ServerFromDhcp4 ( + Status = gBS->OpenProtocol ( + Dhcp4Handle, + &gEfiDhcp4ProtocolGuid, +- (VOID **) &Dhcp4, ++ (VOID **)&Dhcp4, + Image, + Controller, + EFI_OPEN_PROTOCOL_BY_DRIVER +@@ -385,13 +382,13 @@ GetDns4ServerFromDhcp4 ( + // + // Get Ip4Config2 instance info. + // +- Status = gBS->HandleProtocol (Controller, &gEfiIp4Config2ProtocolGuid, (VOID **) &Ip4Config2); ++ Status = gBS->HandleProtocol (Controller, &gEfiIp4Config2ProtocolGuid, (VOID **)&Ip4Config2); + if (EFI_ERROR (Status)) { + goto ON_EXIT; + } + + Status = Ip4Config2->GetData (Ip4Config2, Ip4Config2DataTypeInterfaceInfo, &DataSize, Data); +- if (EFI_ERROR (Status) && Status != EFI_BUFFER_TOO_SMALL) { ++ if (EFI_ERROR (Status) && (Status != EFI_BUFFER_TOO_SMALL)) { + goto ON_EXIT; + } + +@@ -470,7 +467,7 @@ GetDns4ServerFromDhcp4 ( + + Status = Dhcp4->Build (Dhcp4, &SeedPacket, 0, NULL, 2, ParaList, &Token.Packet); + +- Token.Packet->Dhcp4.Header.Xid = HTONL(NET_RANDOM (NetRandomInitSeed ())); ++ Token.Packet->Dhcp4.Header.Xid = HTONL (NET_RANDOM (NetRandomInitSeed ())); + + Token.Packet->Dhcp4.Header.Reserved = HTONS ((UINT16)0x8000); + +@@ -601,10 +598,10 @@ ON_EXIT: + **/ + EFI_STATUS + GetDns6ServerFromDhcp6 ( +- IN EFI_HANDLE Image, +- IN EFI_HANDLE Controller, +- OUT UINT32 *DnsServerCount, +- OUT EFI_IPv6_ADDRESS **DnsServerList ++ IN EFI_HANDLE Image, ++ IN EFI_HANDLE Controller, ++ OUT UINT32 *DnsServerCount, ++ OUT EFI_IPv6_ADDRESS **DnsServerList + ) + { + EFI_HANDLE Dhcp6Handle; +@@ -651,7 +648,7 @@ GetDns6ServerFromDhcp6 ( + Status = gBS->OpenProtocol ( + Dhcp6Handle, + &gEfiDhcp6ProtocolGuid, +- (VOID **) &Dhcp6, ++ (VOID **)&Dhcp6, + Image, + Controller, + EFI_OPEN_PROTOCOL_BY_DRIVER +@@ -724,7 +721,7 @@ GetDns6ServerFromDhcp6 ( + } while (TimerStatus == EFI_NOT_READY); + } + +- *DnsServerList = DnsServerInfor.ServerList; ++ *DnsServerList = DnsServerInfor.ServerList; + + ON_EXIT: + +@@ -753,6 +750,4 @@ ON_EXIT: + ); + + return Status; +- + } +- +diff --git a/NetworkPkg/DnsDxe/DnsImpl.c b/NetworkPkg/DnsDxe/DnsImpl.c +index 78a56f2b56..d311812800 100644 +--- a/NetworkPkg/DnsDxe/DnsImpl.c ++++ b/NetworkPkg/DnsDxe/DnsImpl.c +@@ -20,8 +20,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent + **/ + EFI_STATUS + Dns4RemoveTokenEntry ( +- IN NET_MAP *TokenMap, +- IN DNS4_TOKEN_ENTRY *TokenEntry ++ IN NET_MAP *TokenMap, ++ IN DNS4_TOKEN_ENTRY *TokenEntry + ) + { + NET_MAP_ITEM *Item; +@@ -29,7 +29,7 @@ Dns4RemoveTokenEntry ( + // + // Find the TokenEntry first. + // +- Item = NetMapFindKey (TokenMap, (VOID *) TokenEntry); ++ Item = NetMapFindKey (TokenMap, (VOID *)TokenEntry); + + if (Item != NULL) { + // +@@ -55,8 +55,8 @@ Dns4RemoveTokenEntry ( + **/ + EFI_STATUS + Dns6RemoveTokenEntry ( +- IN NET_MAP *TokenMap, +- IN DNS6_TOKEN_ENTRY *TokenEntry ++ IN NET_MAP *TokenMap, ++ IN DNS6_TOKEN_ENTRY *TokenEntry + ) + { + NET_MAP_ITEM *Item; +@@ -64,7 +64,7 @@ Dns6RemoveTokenEntry ( + // + // Find the TokenEntry first. + // +- Item = NetMapFindKey (TokenMap, (VOID *) TokenEntry); ++ Item = NetMapFindKey (TokenMap, (VOID *)TokenEntry); + + if (Item != NULL) { + // +@@ -102,9 +102,9 @@ Dns4CancelTokens ( + IN VOID *Arg OPTIONAL + ) + { +- DNS4_TOKEN_ENTRY *TokenEntry; +- NET_BUF *Packet; +- UDP_IO *UdpIo; ++ DNS4_TOKEN_ENTRY *TokenEntry; ++ NET_BUF *Packet; ++ UDP_IO *UdpIo; + + if ((Arg != NULL) && (Item->Key != Arg)) { + return EFI_SUCCESS; +@@ -115,8 +115,8 @@ Dns4CancelTokens ( + // If the TokenEntry is a transmit TokenEntry, the corresponding Packet is recorded in + // Item->Value. + // +- Packet = (NET_BUF *) (Item->Value); +- UdpIo = (UDP_IO *) (*((UINTN *) &Packet->ProtoData[0])); ++ Packet = (NET_BUF *)(Item->Value); ++ UdpIo = (UDP_IO *)(*((UINTN *)&Packet->ProtoData[0])); + + UdpIoCancelSentDatagram (UdpIo, Packet); + } +@@ -124,7 +124,7 @@ Dns4CancelTokens ( + // + // Remove TokenEntry from Dns4TxTokens. + // +- TokenEntry = (DNS4_TOKEN_ENTRY *) Item->Key; ++ TokenEntry = (DNS4_TOKEN_ENTRY *)Item->Key; + if (Dns4RemoveTokenEntry (Map, TokenEntry) == EFI_SUCCESS) { + TokenEntry->Token->Status = EFI_ABORTED; + gBS->SignalEvent (TokenEntry->Token->Event); +@@ -162,9 +162,9 @@ Dns6CancelTokens ( + IN VOID *Arg OPTIONAL + ) + { +- DNS6_TOKEN_ENTRY *TokenEntry; +- NET_BUF *Packet; +- UDP_IO *UdpIo; ++ DNS6_TOKEN_ENTRY *TokenEntry; ++ NET_BUF *Packet; ++ UDP_IO *UdpIo; + + if ((Arg != NULL) && (Item->Key != Arg)) { + return EFI_SUCCESS; +@@ -175,8 +175,8 @@ Dns6CancelTokens ( + // If the TokenEntry is a transmit TokenEntry, the corresponding Packet is recorded in + // Item->Value. + // +- Packet = (NET_BUF *) (Item->Value); +- UdpIo = (UDP_IO *) (*((UINTN *) &Packet->ProtoData[0])); ++ Packet = (NET_BUF *)(Item->Value); ++ UdpIo = (UDP_IO *)(*((UINTN *)&Packet->ProtoData[0])); + + UdpIoCancelSentDatagram (UdpIo, Packet); + } +@@ -184,7 +184,7 @@ Dns6CancelTokens ( + // + // Remove TokenEntry from Dns6TxTokens. + // +- TokenEntry = (DNS6_TOKEN_ENTRY *) Item->Key; ++ TokenEntry = (DNS6_TOKEN_ENTRY *)Item->Key; + if (Dns6RemoveTokenEntry (Map, TokenEntry) == EFI_SUCCESS) { + TokenEntry->Token->Status = EFI_ABORTED; + gBS->SignalEvent (TokenEntry->Token->Event); +@@ -212,18 +212,18 @@ Dns6CancelTokens ( + EFI_STATUS + EFIAPI + GetDns4TokenEntry ( +- IN NET_MAP *TokensMap, +- IN EFI_DNS4_COMPLETION_TOKEN *Token, +- OUT DNS4_TOKEN_ENTRY **TokenEntry ++ IN NET_MAP *TokensMap, ++ IN EFI_DNS4_COMPLETION_TOKEN *Token, ++ OUT DNS4_TOKEN_ENTRY **TokenEntry + ) + { +- LIST_ENTRY *Entry; ++ LIST_ENTRY *Entry; + +- NET_MAP_ITEM *Item; ++ NET_MAP_ITEM *Item; + + NET_LIST_FOR_EACH (Entry, &TokensMap->Used) { +- Item = NET_LIST_USER_STRUCT (Entry, NET_MAP_ITEM, Link); +- *TokenEntry = (DNS4_TOKEN_ENTRY *) (Item->Key); ++ Item = NET_LIST_USER_STRUCT (Entry, NET_MAP_ITEM, Link); ++ *TokenEntry = (DNS4_TOKEN_ENTRY *)(Item->Key); + if ((*TokenEntry)->Token == Token) { + return EFI_SUCCESS; + } +@@ -248,24 +248,24 @@ GetDns4TokenEntry ( + EFI_STATUS + EFIAPI + GetDns6TokenEntry ( +- IN NET_MAP *TokensMap, +- IN EFI_DNS6_COMPLETION_TOKEN *Token, +- OUT DNS6_TOKEN_ENTRY **TokenEntry ++ IN NET_MAP *TokensMap, ++ IN EFI_DNS6_COMPLETION_TOKEN *Token, ++ OUT DNS6_TOKEN_ENTRY **TokenEntry + ) + { +- LIST_ENTRY *Entry; ++ LIST_ENTRY *Entry; + +- NET_MAP_ITEM *Item; ++ NET_MAP_ITEM *Item; + + NET_LIST_FOR_EACH (Entry, &TokensMap->Used) { +- Item = NET_LIST_USER_STRUCT (Entry, NET_MAP_ITEM, Link); +- *TokenEntry = (DNS6_TOKEN_ENTRY *) (Item->Key); ++ Item = NET_LIST_USER_STRUCT (Entry, NET_MAP_ITEM, Link); ++ *TokenEntry = (DNS6_TOKEN_ENTRY *)(Item->Key); + if ((*TokenEntry)->Token == Token) { + return EFI_SUCCESS; + } + } + +- *TokenEntry =NULL; ++ *TokenEntry = NULL; + + return EFI_NOT_FOUND; + } +@@ -293,7 +293,7 @@ Dns4InstanceCancelToken ( + + TokenEntry = NULL; + +- if(Token != NULL ) { ++ if (Token != NULL ) { + Status = GetDns4TokenEntry (&Instance->Dns4TxTokens, Token, &TokenEntry); + if (EFI_ERROR (Status)) { + return Status; +@@ -313,8 +313,9 @@ Dns4InstanceCancelToken ( + // the Dns4TxTokens and returns success. + // + if (NetMapIsEmpty (&Instance->Dns4TxTokens)) { +- Instance->UdpIo->Protocol.Udp4->Cancel (Instance->UdpIo->Protocol.Udp4, &Instance->UdpIo->RecvRequest->Token.Udp4); ++ Instance->UdpIo->Protocol.Udp4->Cancel (Instance->UdpIo->Protocol.Udp4, &Instance->UdpIo->RecvRequest->Token.Udp4); + } ++ + return EFI_SUCCESS; + } + +@@ -350,7 +351,7 @@ Dns6InstanceCancelToken ( + + TokenEntry = NULL; + +- if(Token != NULL ) { ++ if (Token != NULL ) { + Status = GetDns6TokenEntry (&Instance->Dns6TxTokens, Token, &TokenEntry); + if (EFI_ERROR (Status)) { + return Status; +@@ -370,8 +371,9 @@ Dns6InstanceCancelToken ( + // the Dns6TxTokens and returns success. + // + if (NetMapIsEmpty (&Instance->Dns6TxTokens)) { +- Instance->UdpIo->Protocol.Udp6->Cancel (Instance->UdpIo->Protocol.Udp6, &Instance->UdpIo->RecvRequest->Token.Udp6); ++ Instance->UdpIo->Protocol.Udp6->Cancel (Instance->UdpIo->Protocol.Udp6, &Instance->UdpIo->RecvRequest->Token.Udp6); + } ++ + return EFI_SUCCESS; + } + +@@ -437,8 +439,8 @@ Dns4CopyConfigure ( + IN EFI_DNS4_CONFIG_DATA *Src + ) + { +- UINTN Len; +- UINT32 Index; ++ UINTN Len; ++ UINT32 Index; + + CopyMem (Dst, Src, sizeof (*Dst)); + Dst->DnsServerList = NULL; +@@ -479,8 +481,8 @@ Dns6CopyConfigure ( + IN EFI_DNS6_CONFIG_DATA *Src + ) + { +- UINTN Len; +- UINT32 Index; ++ UINTN Len; ++ UINT32 Index; + + CopyMem (Dst, Src, sizeof (*Dst)); + Dst->DnsServerList = NULL; +@@ -513,7 +515,7 @@ Dns6CopyConfigure ( + VOID + EFIAPI + DnsDummyExtFree ( +- IN VOID *Arg ++ IN VOID *Arg + ) + { + } +@@ -535,15 +537,15 @@ DnsDummyExtFree ( + **/ + BOOLEAN + Dns4GetMapping ( +- IN DNS_INSTANCE *Instance, +- IN UDP_IO *UdpIo, +- IN EFI_UDP4_CONFIG_DATA *UdpCfgData ++ IN DNS_INSTANCE *Instance, ++ IN UDP_IO *UdpIo, ++ IN EFI_UDP4_CONFIG_DATA *UdpCfgData + ) + { +- DNS_SERVICE *Service; +- EFI_IP4_MODE_DATA Ip4Mode; +- EFI_UDP4_PROTOCOL *Udp; +- EFI_STATUS Status; ++ DNS_SERVICE *Service; ++ EFI_IP4_MODE_DATA Ip4Mode; ++ EFI_UDP4_PROTOCOL *Udp; ++ EFI_STATUS Status; + + ASSERT (Instance->Dns4CfgData.UseDefaultSetting); + +@@ -563,10 +565,10 @@ Dns4GetMapping ( + Udp->Poll (Udp); + + if (!EFI_ERROR (Udp->GetModeData (Udp, NULL, &Ip4Mode, NULL, NULL)) && +- Ip4Mode.IsConfigured) { +- ++ Ip4Mode.IsConfigured) ++ { + Udp->Configure (Udp, NULL); +- return (BOOLEAN) (Udp->Configure (Udp, UdpCfgData) == EFI_SUCCESS); ++ return (BOOLEAN)(Udp->Configure (Udp, UdpCfgData) == EFI_SUCCESS); + } + } + +@@ -587,15 +589,15 @@ Dns4GetMapping ( + **/ + BOOLEAN + Dns6GetMapping ( +- IN DNS_INSTANCE *Instance, +- IN UDP_IO *UdpIo, +- IN EFI_UDP6_CONFIG_DATA *UdpCfgData ++ IN DNS_INSTANCE *Instance, ++ IN UDP_IO *UdpIo, ++ IN EFI_UDP6_CONFIG_DATA *UdpCfgData + ) + { +- DNS_SERVICE *Service; +- EFI_IP6_MODE_DATA Ip6Mode; +- EFI_UDP6_PROTOCOL *Udp; +- EFI_STATUS Status; ++ DNS_SERVICE *Service; ++ EFI_IP6_MODE_DATA Ip6Mode; ++ EFI_UDP6_PROTOCOL *Udp; ++ EFI_STATUS Status; + + Service = Instance->Service; + Udp = UdpIo->Protocol.Udp6; +@@ -661,13 +663,13 @@ Dns6GetMapping ( + **/ + EFI_STATUS + Dns4ConfigUdp ( +- IN DNS_INSTANCE *Instance, +- IN UDP_IO *UdpIo ++ IN DNS_INSTANCE *Instance, ++ IN UDP_IO *UdpIo + ) + { +- EFI_DNS4_CONFIG_DATA *Config; +- EFI_UDP4_CONFIG_DATA UdpConfig; +- EFI_STATUS Status; ++ EFI_DNS4_CONFIG_DATA *Config; ++ EFI_UDP4_CONFIG_DATA UdpConfig; ++ EFI_STATUS Status; + + Config = &Instance->Dns4CfgData; + +@@ -709,13 +711,13 @@ Dns4ConfigUdp ( + **/ + EFI_STATUS + Dns6ConfigUdp ( +- IN DNS_INSTANCE *Instance, +- IN UDP_IO *UdpIo ++ IN DNS_INSTANCE *Instance, ++ IN UDP_IO *UdpIo + ) + { +- EFI_DNS6_CONFIG_DATA *Config; +- EFI_UDP6_CONFIG_DATA UdpConfig; +- EFI_STATUS Status; ++ EFI_DNS6_CONFIG_DATA *Config; ++ EFI_UDP6_CONFIG_DATA UdpConfig; ++ EFI_STATUS Status; + + Config = &Instance->Dns6CfgData; + +@@ -757,16 +759,16 @@ Dns6ConfigUdp ( + EFI_STATUS + EFIAPI + UpdateDns4Cache ( +- IN LIST_ENTRY *Dns4CacheList, +- IN BOOLEAN DeleteFlag, +- IN BOOLEAN Override, +- IN EFI_DNS4_CACHE_ENTRY DnsCacheEntry ++ IN LIST_ENTRY *Dns4CacheList, ++ IN BOOLEAN DeleteFlag, ++ IN BOOLEAN Override, ++ IN EFI_DNS4_CACHE_ENTRY DnsCacheEntry + ) + { +- DNS4_CACHE *NewDnsCache; +- DNS4_CACHE *Item; +- LIST_ENTRY *Entry; +- LIST_ENTRY *Next; ++ DNS4_CACHE *NewDnsCache; ++ DNS4_CACHE *Item; ++ LIST_ENTRY *Entry; ++ LIST_ENTRY *Next; + + NewDnsCache = NULL; + Item = NULL; +@@ -776,8 +778,9 @@ UpdateDns4Cache ( + // + NET_LIST_FOR_EACH_SAFE (Entry, Next, Dns4CacheList) { + Item = NET_LIST_USER_STRUCT (Entry, DNS4_CACHE, AllCacheLink); +- if (StrCmp (DnsCacheEntry.HostName, Item->DnsCache.HostName) == 0 && \ +- CompareMem (DnsCacheEntry.IpAddress, Item->DnsCache.IpAddress, sizeof (EFI_IPv4_ADDRESS)) == 0) { ++ if ((StrCmp (DnsCacheEntry.HostName, Item->DnsCache.HostName) == 0) && \ ++ (CompareMem (DnsCacheEntry.IpAddress, Item->DnsCache.IpAddress, sizeof (EFI_IPv4_ADDRESS)) == 0)) ++ { + // + // This is the Dns cache entry + // +@@ -855,16 +858,16 @@ UpdateDns4Cache ( + EFI_STATUS + EFIAPI + UpdateDns6Cache ( +- IN LIST_ENTRY *Dns6CacheList, +- IN BOOLEAN DeleteFlag, +- IN BOOLEAN Override, +- IN EFI_DNS6_CACHE_ENTRY DnsCacheEntry ++ IN LIST_ENTRY *Dns6CacheList, ++ IN BOOLEAN DeleteFlag, ++ IN BOOLEAN Override, ++ IN EFI_DNS6_CACHE_ENTRY DnsCacheEntry + ) + { +- DNS6_CACHE *NewDnsCache; +- DNS6_CACHE *Item; +- LIST_ENTRY *Entry; +- LIST_ENTRY *Next; ++ DNS6_CACHE *NewDnsCache; ++ DNS6_CACHE *Item; ++ LIST_ENTRY *Entry; ++ LIST_ENTRY *Next; + + NewDnsCache = NULL; + Item = NULL; +@@ -874,8 +877,9 @@ UpdateDns6Cache ( + // + NET_LIST_FOR_EACH_SAFE (Entry, Next, Dns6CacheList) { + Item = NET_LIST_USER_STRUCT (Entry, DNS6_CACHE, AllCacheLink); +- if (StrCmp (DnsCacheEntry.HostName, Item->DnsCache.HostName) == 0 && \ +- CompareMem (DnsCacheEntry.IpAddress, Item->DnsCache.IpAddress, sizeof (EFI_IPv6_ADDRESS)) == 0) { ++ if ((StrCmp (DnsCacheEntry.HostName, Item->DnsCache.HostName) == 0) && \ ++ (CompareMem (DnsCacheEntry.IpAddress, Item->DnsCache.IpAddress, sizeof (EFI_IPv6_ADDRESS)) == 0)) ++ { + // + // This is the Dns cache entry + // +@@ -950,14 +954,14 @@ UpdateDns6Cache ( + EFI_STATUS + EFIAPI + AddDns4ServerIp ( +- IN LIST_ENTRY *Dns4ServerList, +- IN EFI_IPv4_ADDRESS ServerIp ++ IN LIST_ENTRY *Dns4ServerList, ++ IN EFI_IPv4_ADDRESS ServerIp + ) + { +- DNS4_SERVER_IP *NewServerIp; +- DNS4_SERVER_IP *Item; +- LIST_ENTRY *Entry; +- LIST_ENTRY *Next; ++ DNS4_SERVER_IP *NewServerIp; ++ DNS4_SERVER_IP *Item; ++ LIST_ENTRY *Entry; ++ LIST_ENTRY *Next; + + NewServerIp = NULL; + Item = NULL; +@@ -1005,14 +1009,14 @@ AddDns4ServerIp ( + EFI_STATUS + EFIAPI + AddDns6ServerIp ( +- IN LIST_ENTRY *Dns6ServerList, +- IN EFI_IPv6_ADDRESS ServerIp ++ IN LIST_ENTRY *Dns6ServerList, ++ IN EFI_IPv6_ADDRESS ServerIp + ) + { +- DNS6_SERVER_IP *NewServerIp; +- DNS6_SERVER_IP *Item; +- LIST_ENTRY *Entry; +- LIST_ENTRY *Next; ++ DNS6_SERVER_IP *NewServerIp; ++ DNS6_SERVER_IP *Item; ++ LIST_ENTRY *Entry; ++ LIST_ENTRY *Next; + + NewServerIp = NULL; + Item = NULL; +@@ -1062,37 +1066,37 @@ AddDns6ServerIp ( + **/ + BOOLEAN + IsValidDnsResponse ( +- IN NET_MAP *TokensMap, +- IN UINT16 Identification, +- IN UINT16 Type, +- IN UINT16 Class, +- OUT NET_MAP_ITEM **Item ++ IN NET_MAP *TokensMap, ++ IN UINT16 Identification, ++ IN UINT16 Type, ++ IN UINT16 Class, ++ OUT NET_MAP_ITEM **Item + ) + { +- LIST_ENTRY *Entry; ++ LIST_ENTRY *Entry; + +- NET_BUF *Packet; +- UINT8 *TxString; +- DNS_HEADER *DnsHeader; +- CHAR8 *QueryName; +- DNS_QUERY_SECTION *QuerySection; ++ NET_BUF *Packet; ++ UINT8 *TxString; ++ DNS_HEADER *DnsHeader; ++ CHAR8 *QueryName; ++ DNS_QUERY_SECTION *QuerySection; + + NET_LIST_FOR_EACH (Entry, &TokensMap->Used) { +- *Item = NET_LIST_USER_STRUCT (Entry, NET_MAP_ITEM, Link); +- Packet = (NET_BUF *) ((*Item)->Value); ++ *Item = NET_LIST_USER_STRUCT (Entry, NET_MAP_ITEM, Link); ++ Packet = (NET_BUF *)((*Item)->Value); + if (Packet == NULL) { +- + continue; + } else { + TxString = NetbufGetByte (Packet, 0, NULL); + ASSERT (TxString != NULL); +- DnsHeader = (DNS_HEADER *) TxString; +- QueryName = (CHAR8 *) (TxString + sizeof (*DnsHeader)); +- QuerySection = (DNS_QUERY_SECTION *) (QueryName + AsciiStrLen (QueryName) + 1); +- +- if (NTOHS (DnsHeader->Identification) == Identification && +- NTOHS (QuerySection->Type) == Type && +- NTOHS (QuerySection->Class) == Class) { ++ DnsHeader = (DNS_HEADER *)TxString; ++ QueryName = (CHAR8 *)(TxString + sizeof (*DnsHeader)); ++ QuerySection = (DNS_QUERY_SECTION *)(QueryName + AsciiStrLen (QueryName) + 1); ++ ++ if ((NTOHS (DnsHeader->Identification) == Identification) && ++ (NTOHS (QuerySection->Type) == Type) && ++ (NTOHS (QuerySection->Class) == Class)) ++ { + return TRUE; + } + } +@@ -1117,33 +1121,33 @@ IsValidDnsResponse ( + **/ + EFI_STATUS + ParseDnsResponse ( +- IN OUT DNS_INSTANCE *Instance, +- IN UINT8 *RxString, +- IN UINT32 Length, +- OUT BOOLEAN *Completed ++ IN OUT DNS_INSTANCE *Instance, ++ IN UINT8 *RxString, ++ IN UINT32 Length, ++ OUT BOOLEAN *Completed + ) + { +- DNS_HEADER *DnsHeader; ++ DNS_HEADER *DnsHeader; + +- CHAR8 *QueryName; +- UINT32 QueryNameLen; +- DNS_QUERY_SECTION *QuerySection; ++ CHAR8 *QueryName; ++ UINT32 QueryNameLen; ++ DNS_QUERY_SECTION *QuerySection; + +- CHAR8 *AnswerName; +- DNS_ANSWER_SECTION *AnswerSection; +- UINT8 *AnswerData; ++ CHAR8 *AnswerName; ++ DNS_ANSWER_SECTION *AnswerSection; ++ UINT8 *AnswerData; + +- NET_MAP_ITEM *Item; +- DNS4_TOKEN_ENTRY *Dns4TokenEntry; +- DNS6_TOKEN_ENTRY *Dns6TokenEntry; ++ NET_MAP_ITEM *Item; ++ DNS4_TOKEN_ENTRY *Dns4TokenEntry; ++ DNS6_TOKEN_ENTRY *Dns6TokenEntry; + +- UINT32 IpCount; +- UINT32 RRCount; +- UINT32 AnswerSectionNum; +- UINT32 CNameTtl; ++ UINT32 IpCount; ++ UINT32 RRCount; ++ UINT32 AnswerSectionNum; ++ UINT32 CNameTtl; + +- EFI_IPv4_ADDRESS *HostAddr4; +- EFI_IPv6_ADDRESS *HostAddr6; ++ EFI_IPv4_ADDRESS *HostAddr4; ++ EFI_IPv6_ADDRESS *HostAddr6; + + EFI_DNS4_CACHE_ENTRY *Dns4CacheEntry; + EFI_DNS6_CACHE_ENTRY *Dns6CacheEntry; +@@ -1151,32 +1155,32 @@ ParseDnsResponse ( + DNS_RESOURCE_RECORD *Dns4RR; + DNS6_RESOURCE_RECORD *Dns6RR; + +- EFI_STATUS Status; +- UINT32 RemainingLength; ++ EFI_STATUS Status; ++ UINT32 RemainingLength; + +- EFI_TPL OldTpl; ++ EFI_TPL OldTpl; + +- Item = NULL; +- Dns4TokenEntry = NULL; +- Dns6TokenEntry = NULL; ++ Item = NULL; ++ Dns4TokenEntry = NULL; ++ Dns6TokenEntry = NULL; + + IpCount = 0; + RRCount = 0; + AnswerSectionNum = 0; + CNameTtl = 0; + +- HostAddr4 = NULL; +- HostAddr6 = NULL; ++ HostAddr4 = NULL; ++ HostAddr6 = NULL; + +- Dns4CacheEntry = NULL; +- Dns6CacheEntry = NULL; ++ Dns4CacheEntry = NULL; ++ Dns6CacheEntry = NULL; + +- Dns4RR = NULL; +- Dns6RR = NULL; ++ Dns4RR = NULL; ++ Dns6RR = NULL; + +- *Completed = TRUE; +- Status = EFI_SUCCESS; +- RemainingLength = Length; ++ *Completed = TRUE; ++ Status = EFI_SUCCESS; ++ RemainingLength = Length; + + // + // Check whether the remaining packet length is available or not. +@@ -1191,14 +1195,14 @@ ParseDnsResponse ( + // + // Get header + // +- DnsHeader = (DNS_HEADER *) RxString; ++ DnsHeader = (DNS_HEADER *)RxString; + + DnsHeader->Identification = NTOHS (DnsHeader->Identification); +- DnsHeader->Flags.Uint16 = NTOHS (DnsHeader->Flags.Uint16); +- DnsHeader->QuestionsNum = NTOHS (DnsHeader->QuestionsNum); +- DnsHeader->AnswersNum = NTOHS (DnsHeader->AnswersNum); +- DnsHeader->AuthorityNum = NTOHS (DnsHeader->AuthorityNum); +- DnsHeader->AditionalNum = NTOHS (DnsHeader->AditionalNum); ++ DnsHeader->Flags.Uint16 = NTOHS (DnsHeader->Flags.Uint16); ++ DnsHeader->QuestionsNum = NTOHS (DnsHeader->QuestionsNum); ++ DnsHeader->AnswersNum = NTOHS (DnsHeader->AnswersNum); ++ DnsHeader->AuthorityNum = NTOHS (DnsHeader->AuthorityNum); ++ DnsHeader->AditionalNum = NTOHS (DnsHeader->AditionalNum); + + // + // There is always one QuestionsNum in DNS message. The capability to handle more +@@ -1212,9 +1216,9 @@ ParseDnsResponse ( + // + // Get Query name + // +- QueryName = (CHAR8 *) (RxString + sizeof (*DnsHeader)); ++ QueryName = (CHAR8 *)(RxString + sizeof (*DnsHeader)); + +- QueryNameLen = (UINT32) AsciiStrLen (QueryName) + 1; ++ QueryNameLen = (UINT32)AsciiStrLen (QueryName) + 1; + + // + // Check whether the remaining packet length is available or not. +@@ -1229,8 +1233,8 @@ ParseDnsResponse ( + // + // Get query section + // +- QuerySection = (DNS_QUERY_SECTION *) (QueryName + QueryNameLen); +- QuerySection->Type = NTOHS (QuerySection->Type); ++ QuerySection = (DNS_QUERY_SECTION *)(QueryName + QueryNameLen); ++ QuerySection->Type = NTOHS (QuerySection->Type); + QuerySection->Class = NTOHS (QuerySection->Class); + + OldTpl = gBS->RaiseTPL (TPL_CALLBACK); +@@ -1245,13 +1249,15 @@ ParseDnsResponse ( + QuerySection->Type, + QuerySection->Class, + &Item +- )) { ++ )) ++ { + *Completed = FALSE; +- Status = EFI_ABORTED; ++ Status = EFI_ABORTED; + goto ON_EXIT; + } ++ + ASSERT (Item != NULL); +- Dns4TokenEntry = (DNS4_TOKEN_ENTRY *) (Item->Key); ++ Dns4TokenEntry = (DNS4_TOKEN_ENTRY *)(Item->Key); + } else { + if (!IsValidDnsResponse ( + &Instance->Dns6TxTokens, +@@ -1259,20 +1265,23 @@ ParseDnsResponse ( + QuerySection->Type, + QuerySection->Class, + &Item +- )) { ++ )) ++ { + *Completed = FALSE; +- Status = EFI_ABORTED; ++ Status = EFI_ABORTED; + goto ON_EXIT; + } ++ + ASSERT (Item != NULL); +- Dns6TokenEntry = (DNS6_TOKEN_ENTRY *) (Item->Key); ++ Dns6TokenEntry = (DNS6_TOKEN_ENTRY *)(Item->Key); + } + + // + // Continue Check Some Errors. + // +- if (DnsHeader->Flags.Bits.RCode != DNS_FLAGS_RCODE_NO_ERROR || DnsHeader->AnswersNum < 1 || \ +- DnsHeader->Flags.Bits.QR != DNS_FLAGS_QR_RESPONSE) { ++ if ((DnsHeader->Flags.Bits.RCode != DNS_FLAGS_RCODE_NO_ERROR) || (DnsHeader->AnswersNum < 1) || \ ++ (DnsHeader->Flags.Bits.QR != DNS_FLAGS_QR_RESPONSE)) ++ { + // + // The domain name referenced in the query does not exist. + // +@@ -1300,6 +1309,7 @@ ParseDnsResponse ( + Status = EFI_OUT_OF_RESOURCES; + goto ON_EXIT; + } ++ + Dns4TokenEntry->Token->RspData.GLookupData->RRList = AllocateZeroPool (DnsHeader->AnswersNum * sizeof (DNS_RESOURCE_RECORD)); + if (Dns4TokenEntry->Token->RspData.GLookupData->RRList == NULL) { + Status = EFI_OUT_OF_RESOURCES; +@@ -1315,6 +1325,7 @@ ParseDnsResponse ( + Status = EFI_OUT_OF_RESOURCES; + goto ON_EXIT; + } ++ + Dns4TokenEntry->Token->RspData.H2AData->IpList = AllocateZeroPool (DnsHeader->AnswersNum * sizeof (EFI_IPv4_ADDRESS)); + if (Dns4TokenEntry->Token->RspData.H2AData->IpList == NULL) { + Status = EFI_OUT_OF_RESOURCES; +@@ -1337,6 +1348,7 @@ ParseDnsResponse ( + Status = EFI_OUT_OF_RESOURCES; + goto ON_EXIT; + } ++ + Dns6TokenEntry->Token->RspData.GLookupData->RRList = AllocateZeroPool (DnsHeader->AnswersNum * sizeof (DNS_RESOURCE_RECORD)); + if (Dns6TokenEntry->Token->RspData.GLookupData->RRList == NULL) { + Status = EFI_OUT_OF_RESOURCES; +@@ -1352,6 +1364,7 @@ ParseDnsResponse ( + Status = EFI_OUT_OF_RESOURCES; + goto ON_EXIT; + } ++ + Dns6TokenEntry->Token->RspData.H2AData->IpList = AllocateZeroPool (DnsHeader->AnswersNum * sizeof (EFI_IPv6_ADDRESS)); + if (Dns6TokenEntry->Token->RspData.H2AData->IpList == NULL) { + Status = EFI_OUT_OF_RESOURCES; +@@ -1369,7 +1382,7 @@ ParseDnsResponse ( + // + // Get Answer name + // +- AnswerName = (CHAR8 *) QuerySection + sizeof (*QuerySection); ++ AnswerName = (CHAR8 *)QuerySection + sizeof (*QuerySection); + + // + // Processing AnswerSection. +@@ -1380,7 +1393,7 @@ ParseDnsResponse ( + // + if (RemainingLength <= sizeof (UINT16) + sizeof (DNS_ANSWER_SECTION)) { + *Completed = FALSE; +- Status = EFI_ABORTED; ++ Status = EFI_ABORTED; + goto ON_EXIT; + } else { + RemainingLength -= (sizeof (UINT16) + sizeof (DNS_ANSWER_SECTION)); +@@ -1389,7 +1402,7 @@ ParseDnsResponse ( + // + // Answer name should be PTR, else EFI_UNSUPPORTED returned. + // +- if ((*(UINT8 *) AnswerName & 0xC0) != 0xC0) { ++ if ((*(UINT8 *)AnswerName & 0xC0) != 0xC0) { + Status = EFI_UNSUPPORTED; + goto ON_EXIT; + } +@@ -1397,10 +1410,10 @@ ParseDnsResponse ( + // + // Get Answer section. + // +- AnswerSection = (DNS_ANSWER_SECTION *) (AnswerName + sizeof (UINT16)); +- AnswerSection->Type = NTOHS (AnswerSection->Type); +- AnswerSection->Class = NTOHS (AnswerSection->Class); +- AnswerSection->Ttl = NTOHL (AnswerSection->Ttl); ++ AnswerSection = (DNS_ANSWER_SECTION *)(AnswerName + sizeof (UINT16)); ++ AnswerSection->Type = NTOHS (AnswerSection->Type); ++ AnswerSection->Class = NTOHS (AnswerSection->Class); ++ AnswerSection->Ttl = NTOHL (AnswerSection->Ttl); + AnswerSection->DataLength = NTOHS (AnswerSection->DataLength); + + // +@@ -1408,7 +1421,7 @@ ParseDnsResponse ( + // + if (RemainingLength < AnswerSection->DataLength) { + *Completed = FALSE; +- Status = EFI_ABORTED; ++ Status = EFI_ABORTED; + goto ON_EXIT; + } else { + RemainingLength -= AnswerSection->DataLength; +@@ -1417,9 +1430,9 @@ ParseDnsResponse ( + // + // Check whether it's the GeneralLookUp querying. + // +- if (Instance->Service->IpVersion == IP_VERSION_4 && Dns4TokenEntry->GeneralLookUp) { +- Dns4RR = Dns4TokenEntry->Token->RspData.GLookupData->RRList; +- AnswerData = (UINT8 *) AnswerSection + sizeof (*AnswerSection); ++ if ((Instance->Service->IpVersion == IP_VERSION_4) && Dns4TokenEntry->GeneralLookUp) { ++ Dns4RR = Dns4TokenEntry->Token->RspData.GLookupData->RRList; ++ AnswerData = (UINT8 *)AnswerSection + sizeof (*AnswerSection); + + // + // Fill the ResourceRecord. +@@ -1429,23 +1442,25 @@ ParseDnsResponse ( + Status = EFI_OUT_OF_RESOURCES; + goto ON_EXIT; + } ++ + CopyMem (Dns4RR[RRCount].QName, QueryName, AsciiStrLen (QueryName)); +- Dns4RR[RRCount].QType = AnswerSection->Type; +- Dns4RR[RRCount].QClass = AnswerSection->Class; +- Dns4RR[RRCount].TTL = AnswerSection->Ttl; ++ Dns4RR[RRCount].QType = AnswerSection->Type; ++ Dns4RR[RRCount].QClass = AnswerSection->Class; ++ Dns4RR[RRCount].TTL = AnswerSection->Ttl; + Dns4RR[RRCount].DataLength = AnswerSection->DataLength; +- Dns4RR[RRCount].RData = AllocateZeroPool (Dns4RR[RRCount].DataLength); ++ Dns4RR[RRCount].RData = AllocateZeroPool (Dns4RR[RRCount].DataLength); + if (Dns4RR[RRCount].RData == NULL) { + Status = EFI_OUT_OF_RESOURCES; + goto ON_EXIT; + } ++ + CopyMem (Dns4RR[RRCount].RData, AnswerData, Dns4RR[RRCount].DataLength); + +- RRCount ++; ++ RRCount++; + Status = EFI_SUCCESS; +- } else if (Instance->Service->IpVersion == IP_VERSION_6 && Dns6TokenEntry->GeneralLookUp) { +- Dns6RR = Dns6TokenEntry->Token->RspData.GLookupData->RRList; +- AnswerData = (UINT8 *) AnswerSection + sizeof (*AnswerSection); ++ } else if ((Instance->Service->IpVersion == IP_VERSION_6) && Dns6TokenEntry->GeneralLookUp) { ++ Dns6RR = Dns6TokenEntry->Token->RspData.GLookupData->RRList; ++ AnswerData = (UINT8 *)AnswerSection + sizeof (*AnswerSection); + + // + // Fill the ResourceRecord. +@@ -1455,19 +1470,21 @@ ParseDnsResponse ( + Status = EFI_OUT_OF_RESOURCES; + goto ON_EXIT; + } ++ + CopyMem (Dns6RR[RRCount].QName, QueryName, AsciiStrLen (QueryName)); +- Dns6RR[RRCount].QType = AnswerSection->Type; +- Dns6RR[RRCount].QClass = AnswerSection->Class; +- Dns6RR[RRCount].TTL = AnswerSection->Ttl; ++ Dns6RR[RRCount].QType = AnswerSection->Type; ++ Dns6RR[RRCount].QClass = AnswerSection->Class; ++ Dns6RR[RRCount].TTL = AnswerSection->Ttl; + Dns6RR[RRCount].DataLength = AnswerSection->DataLength; +- Dns6RR[RRCount].RData = AllocateZeroPool (Dns6RR[RRCount].DataLength); ++ Dns6RR[RRCount].RData = AllocateZeroPool (Dns6RR[RRCount].DataLength); + if (Dns6RR[RRCount].RData == NULL) { + Status = EFI_OUT_OF_RESOURCES; + goto ON_EXIT; + } ++ + CopyMem (Dns6RR[RRCount].RData, AnswerData, Dns6RR[RRCount].DataLength); + +- RRCount ++; ++ RRCount++; + Status = EFI_SUCCESS; + } else { + // +@@ -1475,143 +1492,149 @@ ParseDnsResponse ( + // Check the Query type, parse the response packet. + // + switch (AnswerSection->Type) { +- case DNS_TYPE_A: +- // +- // This is address entry, get Data. +- // +- ASSERT (Dns4TokenEntry != NULL); ++ case DNS_TYPE_A: ++ // ++ // This is address entry, get Data. ++ // ++ ASSERT (Dns4TokenEntry != NULL); + +- if (AnswerSection->DataLength != 4) { +- Status = EFI_ABORTED; +- goto ON_EXIT; +- } ++ if (AnswerSection->DataLength != 4) { ++ Status = EFI_ABORTED; ++ goto ON_EXIT; ++ } + +- HostAddr4 = Dns4TokenEntry->Token->RspData.H2AData->IpList; +- AnswerData = (UINT8 *) AnswerSection + sizeof (*AnswerSection); +- CopyMem (&HostAddr4[IpCount], AnswerData, sizeof (EFI_IPv4_ADDRESS)); ++ HostAddr4 = Dns4TokenEntry->Token->RspData.H2AData->IpList; ++ AnswerData = (UINT8 *)AnswerSection + sizeof (*AnswerSection); ++ CopyMem (&HostAddr4[IpCount], AnswerData, sizeof (EFI_IPv4_ADDRESS)); + +- // +- // Allocate new CacheEntry pool to update DNS cache dynamically. +- // +- Dns4CacheEntry = AllocateZeroPool (sizeof (EFI_DNS4_CACHE_ENTRY)); +- if (Dns4CacheEntry == NULL) { +- Status = EFI_OUT_OF_RESOURCES; +- goto ON_EXIT; +- } +- Dns4CacheEntry->HostName = AllocateZeroPool (2 * (StrLen(Dns4TokenEntry->QueryHostName) + 1)); +- if (Dns4CacheEntry->HostName == NULL) { +- Status = EFI_OUT_OF_RESOURCES; +- goto ON_EXIT; +- } +- CopyMem (Dns4CacheEntry->HostName, Dns4TokenEntry->QueryHostName, 2 * (StrLen(Dns4TokenEntry->QueryHostName) + 1)); +- Dns4CacheEntry->IpAddress = AllocateZeroPool (sizeof (EFI_IPv4_ADDRESS)); +- if (Dns4CacheEntry->IpAddress == NULL) { +- Status = EFI_OUT_OF_RESOURCES; +- goto ON_EXIT; +- } +- CopyMem (Dns4CacheEntry->IpAddress, AnswerData, sizeof (EFI_IPv4_ADDRESS)); ++ // ++ // Allocate new CacheEntry pool to update DNS cache dynamically. ++ // ++ Dns4CacheEntry = AllocateZeroPool (sizeof (EFI_DNS4_CACHE_ENTRY)); ++ if (Dns4CacheEntry == NULL) { ++ Status = EFI_OUT_OF_RESOURCES; ++ goto ON_EXIT; ++ } + +- if (CNameTtl != 0 && AnswerSection->Ttl != 0) { +- Dns4CacheEntry->Timeout = MIN (CNameTtl, AnswerSection->Ttl); +- } else { +- Dns4CacheEntry->Timeout = MAX (CNameTtl, AnswerSection->Ttl); +- } ++ Dns4CacheEntry->HostName = AllocateZeroPool (2 * (StrLen (Dns4TokenEntry->QueryHostName) + 1)); ++ if (Dns4CacheEntry->HostName == NULL) { ++ Status = EFI_OUT_OF_RESOURCES; ++ goto ON_EXIT; ++ } + +- UpdateDns4Cache (&mDriverData->Dns4CacheList, FALSE, TRUE, *Dns4CacheEntry); ++ CopyMem (Dns4CacheEntry->HostName, Dns4TokenEntry->QueryHostName, 2 * (StrLen (Dns4TokenEntry->QueryHostName) + 1)); ++ Dns4CacheEntry->IpAddress = AllocateZeroPool (sizeof (EFI_IPv4_ADDRESS)); ++ if (Dns4CacheEntry->IpAddress == NULL) { ++ Status = EFI_OUT_OF_RESOURCES; ++ goto ON_EXIT; ++ } + +- // +- // Free allocated CacheEntry pool. +- // +- FreePool (Dns4CacheEntry->HostName); +- Dns4CacheEntry->HostName = NULL; ++ CopyMem (Dns4CacheEntry->IpAddress, AnswerData, sizeof (EFI_IPv4_ADDRESS)); + +- FreePool (Dns4CacheEntry->IpAddress); +- Dns4CacheEntry->IpAddress = NULL; ++ if ((CNameTtl != 0) && (AnswerSection->Ttl != 0)) { ++ Dns4CacheEntry->Timeout = MIN (CNameTtl, AnswerSection->Ttl); ++ } else { ++ Dns4CacheEntry->Timeout = MAX (CNameTtl, AnswerSection->Ttl); ++ } + +- FreePool (Dns4CacheEntry); +- Dns4CacheEntry = NULL; ++ UpdateDns4Cache (&mDriverData->Dns4CacheList, FALSE, TRUE, *Dns4CacheEntry); + +- IpCount ++; +- Status = EFI_SUCCESS; +- break; +- case DNS_TYPE_AAAA: +- // +- // This is address entry, get Data. +- // +- ASSERT (Dns6TokenEntry != NULL); ++ // ++ // Free allocated CacheEntry pool. ++ // ++ FreePool (Dns4CacheEntry->HostName); ++ Dns4CacheEntry->HostName = NULL; + +- if (AnswerSection->DataLength != 16) { +- Status = EFI_ABORTED; +- goto ON_EXIT; +- } ++ FreePool (Dns4CacheEntry->IpAddress); ++ Dns4CacheEntry->IpAddress = NULL; + +- HostAddr6 = Dns6TokenEntry->Token->RspData.H2AData->IpList; +- AnswerData = (UINT8 *) AnswerSection + sizeof (*AnswerSection); +- CopyMem (&HostAddr6[IpCount], AnswerData, sizeof (EFI_IPv6_ADDRESS)); ++ FreePool (Dns4CacheEntry); ++ Dns4CacheEntry = NULL; + +- // +- // Allocate new CacheEntry pool to update DNS cache dynamically. +- // +- Dns6CacheEntry = AllocateZeroPool (sizeof (EFI_DNS6_CACHE_ENTRY)); +- if (Dns6CacheEntry == NULL) { +- Status = EFI_OUT_OF_RESOURCES; +- goto ON_EXIT; +- } +- Dns6CacheEntry->HostName = AllocateZeroPool (2 * (StrLen(Dns6TokenEntry->QueryHostName) + 1)); +- if (Dns6CacheEntry->HostName == NULL) { +- Status = EFI_OUT_OF_RESOURCES; +- goto ON_EXIT; +- } +- CopyMem (Dns6CacheEntry->HostName, Dns6TokenEntry->QueryHostName, 2 * (StrLen(Dns6TokenEntry->QueryHostName) + 1)); +- Dns6CacheEntry->IpAddress = AllocateZeroPool (sizeof (EFI_IPv6_ADDRESS)); +- if (Dns6CacheEntry->IpAddress == NULL) { +- Status = EFI_OUT_OF_RESOURCES; +- goto ON_EXIT; +- } +- CopyMem (Dns6CacheEntry->IpAddress, AnswerData, sizeof (EFI_IPv6_ADDRESS)); ++ IpCount++; ++ Status = EFI_SUCCESS; ++ break; ++ case DNS_TYPE_AAAA: ++ // ++ // This is address entry, get Data. ++ // ++ ASSERT (Dns6TokenEntry != NULL); + +- if (CNameTtl != 0 && AnswerSection->Ttl != 0) { +- Dns6CacheEntry->Timeout = MIN (CNameTtl, AnswerSection->Ttl); +- } else { +- Dns6CacheEntry->Timeout = MAX (CNameTtl, AnswerSection->Ttl); +- } ++ if (AnswerSection->DataLength != 16) { ++ Status = EFI_ABORTED; ++ goto ON_EXIT; ++ } + +- UpdateDns6Cache (&mDriverData->Dns6CacheList, FALSE, TRUE, *Dns6CacheEntry); ++ HostAddr6 = Dns6TokenEntry->Token->RspData.H2AData->IpList; ++ AnswerData = (UINT8 *)AnswerSection + sizeof (*AnswerSection); ++ CopyMem (&HostAddr6[IpCount], AnswerData, sizeof (EFI_IPv6_ADDRESS)); + +- // +- // Free allocated CacheEntry pool. +- // +- FreePool (Dns6CacheEntry->HostName); +- Dns6CacheEntry->HostName = NULL; ++ // ++ // Allocate new CacheEntry pool to update DNS cache dynamically. ++ // ++ Dns6CacheEntry = AllocateZeroPool (sizeof (EFI_DNS6_CACHE_ENTRY)); ++ if (Dns6CacheEntry == NULL) { ++ Status = EFI_OUT_OF_RESOURCES; ++ goto ON_EXIT; ++ } + +- FreePool (Dns6CacheEntry->IpAddress); +- Dns6CacheEntry->IpAddress = NULL; ++ Dns6CacheEntry->HostName = AllocateZeroPool (2 * (StrLen (Dns6TokenEntry->QueryHostName) + 1)); ++ if (Dns6CacheEntry->HostName == NULL) { ++ Status = EFI_OUT_OF_RESOURCES; ++ goto ON_EXIT; ++ } + +- FreePool (Dns6CacheEntry); +- Dns6CacheEntry = NULL; ++ CopyMem (Dns6CacheEntry->HostName, Dns6TokenEntry->QueryHostName, 2 * (StrLen (Dns6TokenEntry->QueryHostName) + 1)); ++ Dns6CacheEntry->IpAddress = AllocateZeroPool (sizeof (EFI_IPv6_ADDRESS)); ++ if (Dns6CacheEntry->IpAddress == NULL) { ++ Status = EFI_OUT_OF_RESOURCES; ++ goto ON_EXIT; ++ } + +- IpCount ++; +- Status = EFI_SUCCESS; +- break; +- case DNS_TYPE_CNAME: +- // +- // According RFC 1034 - 3.6.2, if the query name is an alias, the name server will include the CNAME +- // record in the response and restart the query at the domain name specified in the data field of the +- // CNAME record. So, just record the TTL value of the CNAME, then skip to parse the next record. +- // +- CNameTtl = AnswerSection->Ttl; +- break; +- default: +- Status = EFI_UNSUPPORTED; +- goto ON_EXIT; ++ CopyMem (Dns6CacheEntry->IpAddress, AnswerData, sizeof (EFI_IPv6_ADDRESS)); ++ ++ if ((CNameTtl != 0) && (AnswerSection->Ttl != 0)) { ++ Dns6CacheEntry->Timeout = MIN (CNameTtl, AnswerSection->Ttl); ++ } else { ++ Dns6CacheEntry->Timeout = MAX (CNameTtl, AnswerSection->Ttl); ++ } ++ ++ UpdateDns6Cache (&mDriverData->Dns6CacheList, FALSE, TRUE, *Dns6CacheEntry); ++ ++ // ++ // Free allocated CacheEntry pool. ++ // ++ FreePool (Dns6CacheEntry->HostName); ++ Dns6CacheEntry->HostName = NULL; ++ ++ FreePool (Dns6CacheEntry->IpAddress); ++ Dns6CacheEntry->IpAddress = NULL; ++ ++ FreePool (Dns6CacheEntry); ++ Dns6CacheEntry = NULL; ++ ++ IpCount++; ++ Status = EFI_SUCCESS; ++ break; ++ case DNS_TYPE_CNAME: ++ // ++ // According RFC 1034 - 3.6.2, if the query name is an alias, the name server will include the CNAME ++ // record in the response and restart the query at the domain name specified in the data field of the ++ // CNAME record. So, just record the TTL value of the CNAME, then skip to parse the next record. ++ // ++ CNameTtl = AnswerSection->Ttl; ++ break; ++ default: ++ Status = EFI_UNSUPPORTED; ++ goto ON_EXIT; + } + } + + // + // Find next one + // +- AnswerName = (CHAR8 *) AnswerSection + sizeof (*AnswerSection) + AnswerSection->DataLength; +- AnswerSectionNum ++; ++ AnswerName = (CHAR8 *)AnswerSection + sizeof (*AnswerSection) + AnswerSection->DataLength; ++ AnswerSectionNum++; + } + + if (Instance->Service->IpVersion == IP_VERSION_4) { +@@ -1646,8 +1669,8 @@ ON_COMPLETE: + // + // Parsing is complete, free the sending packet and signal Event here. + // +- if (Item != NULL && Item->Value != NULL) { +- NetbufFree ((NET_BUF *) (Item->Value)); ++ if ((Item != NULL) && (Item->Value != NULL)) { ++ NetbufFree ((NET_BUF *)(Item->Value)); + } + + if (Instance->Service->IpVersion == IP_VERSION_4) { +@@ -1678,7 +1701,7 @@ ON_EXIT: + if (Dns4TokenEntry->Token->RspData.GLookupData != NULL) { + if (Dns4TokenEntry->Token->RspData.GLookupData->RRList != NULL) { + while (RRCount != 0) { +- RRCount --; ++ RRCount--; + if (Dns4TokenEntry->Token->RspData.GLookupData->RRList[RRCount].QName != NULL) { + FreePool (Dns4TokenEntry->Token->RspData.GLookupData->RRList[RRCount].QName); + } +@@ -1694,7 +1717,7 @@ ON_EXIT: + FreePool (Dns4TokenEntry->Token->RspData.GLookupData); + } + } else { +- if (QuerySection->Type == DNS_TYPE_A && Dns4TokenEntry->Token->RspData.H2AData != NULL) { ++ if ((QuerySection->Type == DNS_TYPE_A) && (Dns4TokenEntry->Token->RspData.H2AData != NULL)) { + if (Dns4TokenEntry->Token->RspData.H2AData->IpList != NULL) { + FreePool (Dns4TokenEntry->Token->RspData.H2AData->IpList); + } +@@ -1710,7 +1733,7 @@ ON_EXIT: + if (Dns6TokenEntry->Token->RspData.GLookupData != NULL) { + if (Dns6TokenEntry->Token->RspData.GLookupData->RRList != NULL) { + while (RRCount != 0) { +- RRCount --; ++ RRCount--; + if (Dns6TokenEntry->Token->RspData.GLookupData->RRList[RRCount].QName != NULL) { + FreePool (Dns6TokenEntry->Token->RspData.GLookupData->RRList[RRCount].QName); + } +@@ -1726,7 +1749,7 @@ ON_EXIT: + FreePool (Dns6TokenEntry->Token->RspData.GLookupData); + } + } else { +- if (QuerySection->Type == DNS_TYPE_AAAA && Dns6TokenEntry->Token->RspData.H2AData != NULL) { ++ if ((QuerySection->Type == DNS_TYPE_AAAA) && (Dns6TokenEntry->Token->RspData.H2AData != NULL)) { + if (Dns6TokenEntry->Token->RspData.H2AData->IpList != NULL) { + FreePool (Dns6TokenEntry->Token->RspData.H2AData->IpList); + } +@@ -1778,20 +1801,20 @@ ON_EXIT: + VOID + EFIAPI + DnsOnPacketReceived ( +- NET_BUF *Packet, +- UDP_END_POINT *EndPoint, +- EFI_STATUS IoStatus, +- VOID *Context ++ NET_BUF *Packet, ++ UDP_END_POINT *EndPoint, ++ EFI_STATUS IoStatus, ++ VOID *Context + ) + { +- DNS_INSTANCE *Instance; ++ DNS_INSTANCE *Instance; + +- UINT8 *RcvString; +- UINT32 Len; ++ UINT8 *RcvString; ++ UINT32 Len; + +- BOOLEAN Completed; ++ BOOLEAN Completed; + +- Instance = (DNS_INSTANCE *) Context; ++ Instance = (DNS_INSTANCE *)Context; + NET_CHECK_SIGNATURE (Instance, DNS_INSTANCE_SIGNATURE); + + RcvString = NULL; +@@ -1836,29 +1859,29 @@ ON_EXIT: + VOID + EFIAPI + DnsOnPacketSent ( +- NET_BUF *Packet, +- UDP_END_POINT *EndPoint, +- EFI_STATUS IoStatus, +- VOID *Context ++ NET_BUF *Packet, ++ UDP_END_POINT *EndPoint, ++ EFI_STATUS IoStatus, ++ VOID *Context + ) + { +- DNS_INSTANCE *Instance; +- LIST_ENTRY *Entry; +- NET_MAP_ITEM *Item; +- DNS4_TOKEN_ENTRY *Dns4TokenEntry; +- DNS6_TOKEN_ENTRY *Dns6TokenEntry; ++ DNS_INSTANCE *Instance; ++ LIST_ENTRY *Entry; ++ NET_MAP_ITEM *Item; ++ DNS4_TOKEN_ENTRY *Dns4TokenEntry; ++ DNS6_TOKEN_ENTRY *Dns6TokenEntry; + + Dns4TokenEntry = NULL; + Dns6TokenEntry = NULL; + +- Instance = (DNS_INSTANCE *) Context; ++ Instance = (DNS_INSTANCE *)Context; + NET_CHECK_SIGNATURE (Instance, DNS_INSTANCE_SIGNATURE); + + if (Instance->Service->IpVersion == IP_VERSION_4) { + NET_LIST_FOR_EACH (Entry, &Instance->Dns4TxTokens.Used) { + Item = NET_LIST_USER_STRUCT (Entry, NET_MAP_ITEM, Link); + if (Packet == (NET_BUF *)(Item->Value)) { +- Dns4TokenEntry = ((DNS4_TOKEN_ENTRY *)Item->Key); ++ Dns4TokenEntry = ((DNS4_TOKEN_ENTRY *)Item->Key); + Dns4TokenEntry->PacketToLive = Dns4TokenEntry->Token->RetryInterval; + break; + } +@@ -1867,7 +1890,7 @@ DnsOnPacketSent ( + NET_LIST_FOR_EACH (Entry, &Instance->Dns6TxTokens.Used) { + Item = NET_LIST_USER_STRUCT (Entry, NET_MAP_ITEM, Link); + if (Packet == (NET_BUF *)(Item->Value)) { +- Dns6TokenEntry = ((DNS6_TOKEN_ENTRY *)Item->Key); ++ Dns6TokenEntry = ((DNS6_TOKEN_ENTRY *)Item->Key); + Dns6TokenEntry->PacketToLive = Dns6TokenEntry->Token->RetryInterval; + break; + } +@@ -1889,11 +1912,11 @@ DnsOnPacketSent ( + **/ + EFI_STATUS + DoDnsQuery ( +- IN DNS_INSTANCE *Instance, +- IN NET_BUF *Packet ++ IN DNS_INSTANCE *Instance, ++ IN NET_BUF *Packet + ) + { +- EFI_STATUS Status; ++ EFI_STATUS Status; + + // + // Ready to receive the DNS response. +@@ -1930,16 +1953,16 @@ DoDnsQuery ( + **/ + EFI_STATUS + ConstructDNSQuery ( +- IN DNS_INSTANCE *Instance, +- IN CHAR8 *QueryName, +- IN UINT16 Type, +- IN UINT16 Class, +- OUT NET_BUF **Packet ++ IN DNS_INSTANCE *Instance, ++ IN CHAR8 *QueryName, ++ IN UINT16 Type, ++ IN UINT16 Class, ++ OUT NET_BUF **Packet + ) + { +- NET_FRAGMENT Frag; +- DNS_HEADER *DnsHeader; +- DNS_QUERY_SECTION *DnsQuery; ++ NET_FRAGMENT Frag; ++ DNS_HEADER *DnsHeader; ++ DNS_QUERY_SECTION *DnsQuery; + + // + // Messages carried by UDP are restricted to 512 bytes (not counting the IP +@@ -1953,23 +1976,23 @@ ConstructDNSQuery ( + // + // Fill header + // +- DnsHeader = (DNS_HEADER *) Frag.Bulk; +- DnsHeader->Identification = (UINT16)NET_RANDOM (NetRandomInitSeed()); +- DnsHeader->Flags.Uint16 = 0x0000; +- DnsHeader->Flags.Bits.RD = 1; ++ DnsHeader = (DNS_HEADER *)Frag.Bulk; ++ DnsHeader->Identification = (UINT16)NET_RANDOM (NetRandomInitSeed ()); ++ DnsHeader->Flags.Uint16 = 0x0000; ++ DnsHeader->Flags.Bits.RD = 1; + DnsHeader->Flags.Bits.OpCode = DNS_FLAGS_OPCODE_STANDARD; +- DnsHeader->Flags.Bits.QR = DNS_FLAGS_QR_QUERY; +- DnsHeader->QuestionsNum = 1; +- DnsHeader->AnswersNum = 0; +- DnsHeader->AuthorityNum = 0; +- DnsHeader->AditionalNum = 0; ++ DnsHeader->Flags.Bits.QR = DNS_FLAGS_QR_QUERY; ++ DnsHeader->QuestionsNum = 1; ++ DnsHeader->AnswersNum = 0; ++ DnsHeader->AuthorityNum = 0; ++ DnsHeader->AditionalNum = 0; + + DnsHeader->Identification = HTONS (DnsHeader->Identification); +- DnsHeader->Flags.Uint16 = HTONS (DnsHeader->Flags.Uint16); +- DnsHeader->QuestionsNum = HTONS (DnsHeader->QuestionsNum); +- DnsHeader->AnswersNum = HTONS (DnsHeader->AnswersNum); +- DnsHeader->AuthorityNum = HTONS (DnsHeader->AuthorityNum); +- DnsHeader->AditionalNum = HTONS (DnsHeader->AditionalNum); ++ DnsHeader->Flags.Uint16 = HTONS (DnsHeader->Flags.Uint16); ++ DnsHeader->QuestionsNum = HTONS (DnsHeader->QuestionsNum); ++ DnsHeader->AnswersNum = HTONS (DnsHeader->AnswersNum); ++ DnsHeader->AuthorityNum = HTONS (DnsHeader->AuthorityNum); ++ DnsHeader->AditionalNum = HTONS (DnsHeader->AditionalNum); + + Frag.Len = sizeof (*DnsHeader); + +@@ -1977,16 +2000,16 @@ ConstructDNSQuery ( + // Fill Query name + // + CopyMem (Frag.Bulk + Frag.Len, QueryName, AsciiStrLen (QueryName)); +- Frag.Len = (UINT32) (Frag.Len + AsciiStrLen (QueryName)); ++ Frag.Len = (UINT32)(Frag.Len + AsciiStrLen (QueryName)); + *(Frag.Bulk + Frag.Len) = 0; +- Frag.Len ++; ++ Frag.Len++; + + // + // Rest query section + // +- DnsQuery = (DNS_QUERY_SECTION *) (Frag.Bulk + Frag.Len); ++ DnsQuery = (DNS_QUERY_SECTION *)(Frag.Bulk + Frag.Len); + +- DnsQuery->Type = HTONS (Type); ++ DnsQuery->Type = HTONS (Type); + DnsQuery->Class = HTONS (Class); + + Frag.Len += sizeof (*DnsQuery); +@@ -2003,7 +2026,7 @@ ConstructDNSQuery ( + // + // Store the UdpIo in ProtoData. + // +- *((UINTN *) &((*Packet)->ProtoData[0])) = (UINTN) (Instance->UdpIo); ++ *((UINTN *)&((*Packet)->ProtoData[0])) = (UINTN)(Instance->UdpIo); + + return EFI_SUCCESS; + } +@@ -2020,13 +2043,13 @@ ConstructDNSQuery ( + **/ + EFI_STATUS + DnsRetransmit ( +- IN DNS_INSTANCE *Instance, +- IN NET_BUF *Packet ++ IN DNS_INSTANCE *Instance, ++ IN NET_BUF *Packet + ) + { +- EFI_STATUS Status; ++ EFI_STATUS Status; + +- UINT8 *Buffer; ++ UINT8 *Buffer; + + ASSERT (Packet != NULL); + +@@ -2064,26 +2087,25 @@ DnsRetransmit ( + VOID + EFIAPI + DnsOnTimerRetransmit ( +- IN EFI_EVENT Event, +- IN VOID *Context ++ IN EFI_EVENT Event, ++ IN VOID *Context + ) + { +- DNS_SERVICE *Service; ++ DNS_SERVICE *Service; + +- LIST_ENTRY *Entry; +- LIST_ENTRY *Next; ++ LIST_ENTRY *Entry; ++ LIST_ENTRY *Next; + +- DNS_INSTANCE *Instance; +- LIST_ENTRY *EntryNetMap; +- NET_MAP_ITEM *ItemNetMap; +- DNS4_TOKEN_ENTRY *Dns4TokenEntry; +- DNS6_TOKEN_ENTRY *Dns6TokenEntry; ++ DNS_INSTANCE *Instance; ++ LIST_ENTRY *EntryNetMap; ++ NET_MAP_ITEM *ItemNetMap; ++ DNS4_TOKEN_ENTRY *Dns4TokenEntry; ++ DNS6_TOKEN_ENTRY *Dns6TokenEntry; + + Dns4TokenEntry = NULL; + Dns6TokenEntry = NULL; + +- Service = (DNS_SERVICE *) Context; +- ++ Service = (DNS_SERVICE *)Context; + + if (Service->IpVersion == IP_VERSION_4) { + // +@@ -2095,9 +2117,9 @@ DnsOnTimerRetransmit ( + + EntryNetMap = Instance->Dns4TxTokens.Used.ForwardLink; + while (EntryNetMap != &Instance->Dns4TxTokens.Used) { +- ItemNetMap = NET_LIST_USER_STRUCT (EntryNetMap, NET_MAP_ITEM, Link); ++ ItemNetMap = NET_LIST_USER_STRUCT (EntryNetMap, NET_MAP_ITEM, Link); + Dns4TokenEntry = (DNS4_TOKEN_ENTRY *)(ItemNetMap->Key); +- if (Dns4TokenEntry->PacketToLive == 0 || (--Dns4TokenEntry->PacketToLive > 0)) { ++ if ((Dns4TokenEntry->PacketToLive == 0) || (--Dns4TokenEntry->PacketToLive > 0)) { + EntryNetMap = EntryNetMap->ForwardLink; + continue; + } +@@ -2139,9 +2161,9 @@ DnsOnTimerRetransmit ( + + EntryNetMap = Instance->Dns6TxTokens.Used.ForwardLink; + while (EntryNetMap != &Instance->Dns6TxTokens.Used) { +- ItemNetMap = NET_LIST_USER_STRUCT (EntryNetMap, NET_MAP_ITEM, Link); +- Dns6TokenEntry = (DNS6_TOKEN_ENTRY *) (ItemNetMap->Key); +- if (Dns6TokenEntry->PacketToLive == 0 || (--Dns6TokenEntry->PacketToLive > 0)) { ++ ItemNetMap = NET_LIST_USER_STRUCT (EntryNetMap, NET_MAP_ITEM, Link); ++ Dns6TokenEntry = (DNS6_TOKEN_ENTRY *)(ItemNetMap->Key); ++ if ((Dns6TokenEntry->PacketToLive == 0) || (--Dns6TokenEntry->PacketToLive > 0)) { + EntryNetMap = EntryNetMap->ForwardLink; + continue; + } +@@ -2151,7 +2173,7 @@ DnsOnTimerRetransmit ( + // otherwise exit the transfer. + // + if (++Dns6TokenEntry->RetryCounting <= Dns6TokenEntry->Token->RetryCount) { +- DnsRetransmit (Instance, (NET_BUF *) ItemNetMap->Value); ++ DnsRetransmit (Instance, (NET_BUF *)ItemNetMap->Value); + EntryNetMap = EntryNetMap->ForwardLink; + } else { + // +@@ -2166,7 +2188,7 @@ DnsOnTimerRetransmit ( + // Free the sending packet. + // + if (ItemNetMap->Value != NULL) { +- NetbufFree ((NET_BUF *) (ItemNetMap->Value)); ++ NetbufFree ((NET_BUF *)(ItemNetMap->Value)); + } + + EntryNetMap = Instance->Dns6TxTokens.Used.ForwardLink; +@@ -2186,14 +2208,14 @@ DnsOnTimerRetransmit ( + VOID + EFIAPI + DnsOnTimerUpdate ( +- IN EFI_EVENT Event, +- IN VOID *Context ++ IN EFI_EVENT Event, ++ IN VOID *Context + ) + { +- LIST_ENTRY *Entry; +- LIST_ENTRY *Next; +- DNS4_CACHE *Item4; +- DNS6_CACHE *Item6; ++ LIST_ENTRY *Entry; ++ LIST_ENTRY *Next; ++ DNS4_CACHE *Item4; ++ DNS6_CACHE *Item6; + + Item4 = NULL; + Item6 = NULL; +@@ -2242,4 +2264,3 @@ DnsOnTimerUpdate ( + } + } + } +- +diff --git a/NetworkPkg/HttpBootDxe/HttpBootDhcp6.c b/NetworkPkg/HttpBootDxe/HttpBootDhcp6.c +index 4905bca4ad..b22cef4ff5 100644 +--- a/NetworkPkg/HttpBootDxe/HttpBootDhcp6.c ++++ b/NetworkPkg/HttpBootDxe/HttpBootDhcp6.c +@@ -20,70 +20,70 @@ SPDX-License-Identifier: BSD-2-Clause-Patent + **/ + UINT32 + HttpBootBuildDhcp6Options ( +- IN HTTP_BOOT_PRIVATE_DATA *Private, +- OUT EFI_DHCP6_PACKET_OPTION **OptList, +- IN UINT8 *Buffer ++ IN HTTP_BOOT_PRIVATE_DATA *Private, ++ OUT EFI_DHCP6_PACKET_OPTION **OptList, ++ IN UINT8 *Buffer + ) + { +- HTTP_BOOT_DHCP6_OPTION_ENTRY OptEnt; +- UINT16 Value; +- UINT32 Index; ++ HTTP_BOOT_DHCP6_OPTION_ENTRY OptEnt; ++ UINT16 Value; ++ UINT32 Index; + + Index = 0; +- OptList[0] = (EFI_DHCP6_PACKET_OPTION *) Buffer; ++ OptList[0] = (EFI_DHCP6_PACKET_OPTION *)Buffer; + + // + // Append client option request option + // +- OptList[Index]->OpCode = HTONS (DHCP6_OPT_ORO); +- OptList[Index]->OpLen = HTONS (8); +- OptEnt.Oro = (HTTP_BOOT_DHCP6_OPTION_ORO *) OptList[Index]->Data; +- OptEnt.Oro->OpCode[0] = HTONS(DHCP6_OPT_BOOT_FILE_URL); +- OptEnt.Oro->OpCode[1] = HTONS(DHCP6_OPT_BOOT_FILE_PARAM); +- OptEnt.Oro->OpCode[2] = HTONS(DHCP6_OPT_DNS_SERVERS); +- OptEnt.Oro->OpCode[3] = HTONS(DHCP6_OPT_VENDOR_CLASS); ++ OptList[Index]->OpCode = HTONS (DHCP6_OPT_ORO); ++ OptList[Index]->OpLen = HTONS (8); ++ OptEnt.Oro = (HTTP_BOOT_DHCP6_OPTION_ORO *)OptList[Index]->Data; ++ OptEnt.Oro->OpCode[0] = HTONS (DHCP6_OPT_BOOT_FILE_URL); ++ OptEnt.Oro->OpCode[1] = HTONS (DHCP6_OPT_BOOT_FILE_PARAM); ++ OptEnt.Oro->OpCode[2] = HTONS (DHCP6_OPT_DNS_SERVERS); ++ OptEnt.Oro->OpCode[3] = HTONS (DHCP6_OPT_VENDOR_CLASS); + Index++; +- OptList[Index] = GET_NEXT_DHCP6_OPTION (OptList[Index - 1]); ++ OptList[Index] = GET_NEXT_DHCP6_OPTION (OptList[Index - 1]); + + // + // Append client network device interface option + // +- OptList[Index]->OpCode = HTONS (DHCP6_OPT_UNDI); +- OptList[Index]->OpLen = HTONS ((UINT16)3); +- OptEnt.Undi = (HTTP_BOOT_DHCP6_OPTION_UNDI *) OptList[Index]->Data; ++ OptList[Index]->OpCode = HTONS (DHCP6_OPT_UNDI); ++ OptList[Index]->OpLen = HTONS ((UINT16)3); ++ OptEnt.Undi = (HTTP_BOOT_DHCP6_OPTION_UNDI *)OptList[Index]->Data; + + if (Private->Nii != NULL) { +- OptEnt.Undi->Type = Private->Nii->Type; +- OptEnt.Undi->MajorVer = Private->Nii->MajorVer; +- OptEnt.Undi->MinorVer = Private->Nii->MinorVer; ++ OptEnt.Undi->Type = Private->Nii->Type; ++ OptEnt.Undi->MajorVer = Private->Nii->MajorVer; ++ OptEnt.Undi->MinorVer = Private->Nii->MinorVer; + } else { +- OptEnt.Undi->Type = DEFAULT_UNDI_TYPE; +- OptEnt.Undi->MajorVer = DEFAULT_UNDI_MAJOR; +- OptEnt.Undi->MinorVer = DEFAULT_UNDI_MINOR; ++ OptEnt.Undi->Type = DEFAULT_UNDI_TYPE; ++ OptEnt.Undi->MajorVer = DEFAULT_UNDI_MAJOR; ++ OptEnt.Undi->MinorVer = DEFAULT_UNDI_MINOR; + } + + Index++; +- OptList[Index] = GET_NEXT_DHCP6_OPTION (OptList[Index - 1]); ++ OptList[Index] = GET_NEXT_DHCP6_OPTION (OptList[Index - 1]); + + // + // Append client system architecture option + // +- OptList[Index]->OpCode = HTONS (DHCP6_OPT_ARCH); +- OptList[Index]->OpLen = HTONS ((UINT16) sizeof (HTTP_BOOT_DHCP6_OPTION_ARCH)); +- OptEnt.Arch = (HTTP_BOOT_DHCP6_OPTION_ARCH *) OptList[Index]->Data; +- Value = HTONS (EFI_HTTP_BOOT_CLIENT_SYSTEM_ARCHITECTURE); ++ OptList[Index]->OpCode = HTONS (DHCP6_OPT_ARCH); ++ OptList[Index]->OpLen = HTONS ((UINT16)sizeof (HTTP_BOOT_DHCP6_OPTION_ARCH)); ++ OptEnt.Arch = (HTTP_BOOT_DHCP6_OPTION_ARCH *)OptList[Index]->Data; ++ Value = HTONS (EFI_HTTP_BOOT_CLIENT_SYSTEM_ARCHITECTURE); + CopyMem (&OptEnt.Arch->Type, &Value, sizeof (UINT16)); + Index++; +- OptList[Index] = GET_NEXT_DHCP6_OPTION (OptList[Index - 1]); ++ OptList[Index] = GET_NEXT_DHCP6_OPTION (OptList[Index - 1]); + + // + // Append vendor class identify option. + // + OptList[Index]->OpCode = HTONS (DHCP6_OPT_VENDOR_CLASS); +- OptList[Index]->OpLen = HTONS ((UINT16) sizeof (HTTP_BOOT_DHCP6_OPTION_VENDOR_CLASS)); +- OptEnt.VendorClass = (HTTP_BOOT_DHCP6_OPTION_VENDOR_CLASS *) OptList[Index]->Data; ++ OptList[Index]->OpLen = HTONS ((UINT16)sizeof (HTTP_BOOT_DHCP6_OPTION_VENDOR_CLASS)); ++ OptEnt.VendorClass = (HTTP_BOOT_DHCP6_OPTION_VENDOR_CLASS *)OptList[Index]->Data; + OptEnt.VendorClass->Vendor = HTONL (HTTP_BOOT_DHCP6_ENTERPRISE_NUM); +- OptEnt.VendorClass->ClassLen = HTONS ((UINT16) sizeof (HTTP_BOOT_CLASS_ID)); ++ OptEnt.VendorClass->ClassLen = HTONS ((UINT16)sizeof (HTTP_BOOT_CLASS_ID)); + CopyMem ( + &OptEnt.VendorClass->ClassId, + DEFAULT_CLASS_ID_DATA, +@@ -131,33 +131,30 @@ HttpBootBuildDhcp6Options ( + **/ + EFI_DHCP6_PACKET_OPTION * + HttpBootParseDhcp6Options ( +- IN UINT8 *Buffer, +- IN UINT32 Length, +- IN UINT16 OptTag ++ IN UINT8 *Buffer, ++ IN UINT32 Length, ++ IN UINT16 OptTag + ) + { +- EFI_DHCP6_PACKET_OPTION *Option; +- UINT32 Offset; ++ EFI_DHCP6_PACKET_OPTION *Option; ++ UINT32 Offset; + +- Option = (EFI_DHCP6_PACKET_OPTION *) Buffer; +- Offset = 0; ++ Option = (EFI_DHCP6_PACKET_OPTION *)Buffer; ++ Offset = 0; + + // + // OpLen and OpCode here are both stored in network order. + // + while (Offset < Length) { +- + if (NTOHS (Option->OpCode) == OptTag) { +- + return Option; + } + +- Offset += (NTOHS(Option->OpLen) + 4); +- Option = (EFI_DHCP6_PACKET_OPTION *) (Buffer + Offset); ++ Offset += (NTOHS (Option->OpLen) + 4); ++ Option = (EFI_DHCP6_PACKET_OPTION *)(Buffer + Offset); + } + + return NULL; +- + } + + /** +@@ -171,40 +168,39 @@ HttpBootParseDhcp6Options ( + **/ + EFI_STATUS + HttpBootParseDhcp6Packet ( +- IN HTTP_BOOT_DHCP6_PACKET_CACHE *Cache6 ++ IN HTTP_BOOT_DHCP6_PACKET_CACHE *Cache6 + ) + { +- EFI_DHCP6_PACKET *Offer; +- EFI_DHCP6_PACKET_OPTION **Options; +- EFI_DHCP6_PACKET_OPTION *Option; +- HTTP_BOOT_OFFER_TYPE OfferType; +- EFI_IPv6_ADDRESS IpAddr; +- BOOLEAN IsProxyOffer; +- BOOLEAN IsHttpOffer; +- BOOLEAN IsDnsOffer; +- BOOLEAN IpExpressedUri; +- EFI_STATUS Status; +- UINT32 Offset; +- UINT32 Length; ++ EFI_DHCP6_PACKET *Offer; ++ EFI_DHCP6_PACKET_OPTION **Options; ++ EFI_DHCP6_PACKET_OPTION *Option; ++ HTTP_BOOT_OFFER_TYPE OfferType; ++ EFI_IPv6_ADDRESS IpAddr; ++ BOOLEAN IsProxyOffer; ++ BOOLEAN IsHttpOffer; ++ BOOLEAN IsDnsOffer; ++ BOOLEAN IpExpressedUri; ++ EFI_STATUS Status; ++ UINT32 Offset; ++ UINT32 Length; + + IsDnsOffer = FALSE; + IpExpressedUri = FALSE; + IsProxyOffer = TRUE; + IsHttpOffer = FALSE; +- Offer = &Cache6->Packet.Offer; +- Options = Cache6->OptList; ++ Offer = &Cache6->Packet.Offer; ++ Options = Cache6->OptList; + + ZeroMem (Cache6->OptList, sizeof (Cache6->OptList)); + +- Option = (EFI_DHCP6_PACKET_OPTION *) (Offer->Dhcp6.Option); +- Offset = 0; +- Length = GET_DHCP6_OPTION_SIZE (Offer); ++ Option = (EFI_DHCP6_PACKET_OPTION *)(Offer->Dhcp6.Option); ++ Offset = 0; ++ Length = GET_DHCP6_OPTION_SIZE (Offer); + + // + // OpLen and OpCode here are both stored in network order, since they are from original packet. + // + while (Offset < Length) { +- + if (NTOHS (Option->OpCode) == DHCP6_OPT_IA_NA) { + Options[HTTP_BOOT_DHCP6_IDX_IA_NA] = Option; + } else if (NTOHS (Option->OpCode) == DHCP6_OPT_BOOT_FILE_URL) { +@@ -221,8 +217,9 @@ HttpBootParseDhcp6Packet ( + } + + Offset += (NTOHS (Option->OpLen) + 4); +- Option = (EFI_DHCP6_PACKET_OPTION *) (Offer->Dhcp6.Option + Offset); ++ Option = (EFI_DHCP6_PACKET_OPTION *)(Offer->Dhcp6.Option + Offset); + } ++ + // + // The offer with assigned client address is NOT a proxy offer. + // An ia_na option, embedded with valid ia_addr option and a status_code of success. +@@ -234,7 +231,7 @@ HttpBootParseDhcp6Packet ( + NTOHS (Option->OpLen), + DHCP6_OPT_STATUS_CODE + ); +- if ((Option != NULL && Option->Data[0] == 0) || (Option == NULL)) { ++ if (((Option != NULL) && (Option->Data[0] == 0)) || (Option == NULL)) { + IsProxyOffer = FALSE; + } + } +@@ -244,10 +241,11 @@ HttpBootParseDhcp6Packet ( + // + Option = Options[HTTP_BOOT_DHCP6_IDX_VENDOR_CLASS]; + +- if (Option != NULL && +- NTOHS(Option->OpLen) >= 16 && +- CompareMem ((Option->Data + 6), DEFAULT_CLASS_ID_DATA, 10) == 0) { +- IsHttpOffer = TRUE; ++ if ((Option != NULL) && ++ (NTOHS (Option->OpLen) >= 16) && ++ (CompareMem ((Option->Data + 6), DEFAULT_CLASS_ID_DATA, 10) == 0)) ++ { ++ IsHttpOffer = TRUE; + } + + // +@@ -261,7 +259,7 @@ HttpBootParseDhcp6Packet ( + // + // Http offer must have a boot URI. + // +- if (IsHttpOffer && Options[HTTP_BOOT_DHCP6_IDX_BOOT_FILE_URL] == NULL) { ++ if (IsHttpOffer && (Options[HTTP_BOOT_DHCP6_IDX_BOOT_FILE_URL] == NULL)) { + return EFI_DEVICE_ERROR; + } + +@@ -270,8 +268,8 @@ HttpBootParseDhcp6Packet ( + // + if (IsHttpOffer) { + Status = HttpParseUrl ( +- (CHAR8*) Options[HTTP_BOOT_DHCP6_IDX_BOOT_FILE_URL]->Data, +- (UINT32) AsciiStrLen ((CHAR8*) Options[HTTP_BOOT_DHCP6_IDX_BOOT_FILE_URL]->Data), ++ (CHAR8 *)Options[HTTP_BOOT_DHCP6_IDX_BOOT_FILE_URL]->Data, ++ (UINT32)AsciiStrLen ((CHAR8 *)Options[HTTP_BOOT_DHCP6_IDX_BOOT_FILE_URL]->Data), + FALSE, + &Cache6->UriParser + ); +@@ -280,7 +278,7 @@ HttpBootParseDhcp6Packet ( + } + + Status = HttpUrlGetIp6 ( +- (CHAR8*) Options[HTTP_BOOT_DHCP6_IDX_BOOT_FILE_URL]->Data, ++ (CHAR8 *)Options[HTTP_BOOT_DHCP6_IDX_BOOT_FILE_URL]->Data, + Cache6->UriParser, + &IpAddr + ); +@@ -304,7 +302,6 @@ HttpBootParseDhcp6Packet ( + OfferType = HttpOfferTypeProxyNameUri; + } + } +- + } else { + if (!IsProxyOffer) { + OfferType = IsDnsOffer ? HttpOfferTypeDhcpDns : HttpOfferTypeDhcpOnly; +@@ -329,8 +326,8 @@ HttpBootParseDhcp6Packet ( + **/ + EFI_STATUS + HttpBootCacheDhcp6Packet ( +- IN EFI_DHCP6_PACKET *Dst, +- IN EFI_DHCP6_PACKET *Src ++ IN EFI_DHCP6_PACKET *Dst, ++ IN EFI_DHCP6_PACKET *Src + ) + { + if (Dst->Size < Src->Length) { +@@ -359,10 +356,10 @@ HttpBootCacheDhcp6Offer ( + IN EFI_DHCP6_PACKET *RcvdOffer + ) + { +- HTTP_BOOT_DHCP6_PACKET_CACHE *Cache6; +- EFI_DHCP6_PACKET *Offer; +- HTTP_BOOT_OFFER_TYPE OfferType; +- EFI_STATUS Status; ++ HTTP_BOOT_DHCP6_PACKET_CACHE *Cache6; ++ EFI_DHCP6_PACKET *Offer; ++ HTTP_BOOT_OFFER_TYPE OfferType; ++ EFI_STATUS Status; + + Cache6 = &Private->OfferBuffer[Private->OfferNum].Dhcp6; + Offer = &Cache6->Packet.Offer; +@@ -370,7 +367,7 @@ HttpBootCacheDhcp6Offer ( + // + // Cache the content of DHCPv6 packet firstly. + // +- Status = HttpBootCacheDhcp6Packet(Offer, RcvdOffer); ++ Status = HttpBootCacheDhcp6Packet (Offer, RcvdOffer); + if (EFI_ERROR (Status)) { + return Status; + } +@@ -417,86 +414,91 @@ HttpBootCacheDhcp6Offer ( + EFI_STATUS + EFIAPI + HttpBootDhcp6CallBack ( +- IN EFI_DHCP6_PROTOCOL *This, +- IN VOID *Context, +- IN EFI_DHCP6_STATE CurrentState, +- IN EFI_DHCP6_EVENT Dhcp6Event, +- IN EFI_DHCP6_PACKET *Packet, +- OUT EFI_DHCP6_PACKET **NewPacket OPTIONAL ++ IN EFI_DHCP6_PROTOCOL *This, ++ IN VOID *Context, ++ IN EFI_DHCP6_STATE CurrentState, ++ IN EFI_DHCP6_EVENT Dhcp6Event, ++ IN EFI_DHCP6_PACKET *Packet, ++ OUT EFI_DHCP6_PACKET **NewPacket OPTIONAL + ) + { +- HTTP_BOOT_PRIVATE_DATA *Private; +- EFI_DHCP6_PACKET *SelectAd; +- EFI_STATUS Status; +- BOOLEAN Received; ++ HTTP_BOOT_PRIVATE_DATA *Private; ++ EFI_DHCP6_PACKET *SelectAd; ++ EFI_STATUS Status; ++ BOOLEAN Received; + + if ((Dhcp6Event != Dhcp6SendSolicit) && +- (Dhcp6Event != Dhcp6RcvdAdvertise) && +- (Dhcp6Event != Dhcp6SendRequest) && +- (Dhcp6Event != Dhcp6RcvdReply) && +- (Dhcp6Event != Dhcp6SelectAdvertise)) { ++ (Dhcp6Event != Dhcp6RcvdAdvertise) && ++ (Dhcp6Event != Dhcp6SendRequest) && ++ (Dhcp6Event != Dhcp6RcvdReply) && ++ (Dhcp6Event != Dhcp6SelectAdvertise)) ++ { + return EFI_SUCCESS; + } + + ASSERT (Packet != NULL); + +- Private = (HTTP_BOOT_PRIVATE_DATA *) Context; +- Status = EFI_SUCCESS; +- if (Private->HttpBootCallback != NULL && Dhcp6Event != Dhcp6SelectAdvertise) { +- Received = (BOOLEAN) (Dhcp6Event == Dhcp6RcvdAdvertise || Dhcp6Event == Dhcp6RcvdReply); +- Status = Private->HttpBootCallback->Callback ( +- Private->HttpBootCallback, +- HttpBootDhcp6, +- Received, +- Packet->Length, +- &Packet->Dhcp6 +- ); ++ Private = (HTTP_BOOT_PRIVATE_DATA *)Context; ++ Status = EFI_SUCCESS; ++ if ((Private->HttpBootCallback != NULL) && (Dhcp6Event != Dhcp6SelectAdvertise)) { ++ Received = (BOOLEAN)(Dhcp6Event == Dhcp6RcvdAdvertise || Dhcp6Event == Dhcp6RcvdReply); ++ Status = Private->HttpBootCallback->Callback ( ++ Private->HttpBootCallback, ++ HttpBootDhcp6, ++ Received, ++ Packet->Length, ++ &Packet->Dhcp6 ++ ); + if (EFI_ERROR (Status)) { + return EFI_ABORTED; + } + } ++ + switch (Dhcp6Event) { ++ case Dhcp6RcvdAdvertise: ++ Status = EFI_NOT_READY; ++ if (Packet->Length > HTTP_BOOT_DHCP6_PACKET_MAX_SIZE) { ++ // ++ // Ignore the incoming packets which exceed the maximum length. ++ // ++ break; ++ } ++ ++ if (Private->OfferNum < HTTP_BOOT_OFFER_MAX_NUM) { ++ // ++ // Cache the dhcp offers to OfferBuffer[] for select later, and record ++ // the OfferIndex and OfferCount. ++ // If error happens, just ignore this packet and continue to wait more offer. ++ // ++ HttpBootCacheDhcp6Offer (Private, Packet); ++ } + +- case Dhcp6RcvdAdvertise: +- Status = EFI_NOT_READY; +- if (Packet->Length > HTTP_BOOT_DHCP6_PACKET_MAX_SIZE) { +- // +- // Ignore the incoming packets which exceed the maximum length. +- // + break; +- } +- if (Private->OfferNum < HTTP_BOOT_OFFER_MAX_NUM) { ++ ++ case Dhcp6SelectAdvertise: + // +- // Cache the dhcp offers to OfferBuffer[] for select later, and record +- // the OfferIndex and OfferCount. +- // If error happens, just ignore this packet and continue to wait more offer. ++ // Select offer by the default policy or by order, and record the SelectIndex ++ // and SelectProxyType. + // +- HttpBootCacheDhcp6Offer (Private, Packet); +- } +- break; +- +- case Dhcp6SelectAdvertise: +- // +- // Select offer by the default policy or by order, and record the SelectIndex +- // and SelectProxyType. +- // +- HttpBootSelectDhcpOffer (Private); ++ HttpBootSelectDhcpOffer (Private); + +- if (Private->SelectIndex == 0) { +- Status = EFI_ABORTED; +- } else { +- ASSERT (NewPacket != NULL); +- SelectAd = &Private->OfferBuffer[Private->SelectIndex - 1].Dhcp6.Packet.Offer; +- *NewPacket = AllocateZeroPool (SelectAd->Size); +- if (*NewPacket == NULL) { +- return EFI_OUT_OF_RESOURCES; ++ if (Private->SelectIndex == 0) { ++ Status = EFI_ABORTED; ++ } else { ++ ASSERT (NewPacket != NULL); ++ SelectAd = &Private->OfferBuffer[Private->SelectIndex - 1].Dhcp6.Packet.Offer; ++ *NewPacket = AllocateZeroPool (SelectAd->Size); ++ if (*NewPacket == NULL) { ++ return EFI_OUT_OF_RESOURCES; ++ } ++ ++ CopyMem (*NewPacket, SelectAd, SelectAd->Size); + } +- CopyMem (*NewPacket, SelectAd, SelectAd->Size); +- } +- break; + +- default: +- break; ++ break; ++ ++ default: ++ break; + } + + return Status; +@@ -519,18 +521,18 @@ HttpBootDhcp6CallBack ( + **/ + EFI_STATUS + HttpBootCheckRouteTable ( +- IN HTTP_BOOT_PRIVATE_DATA *Private, +- IN UINTN TimeOutInSecond, +- OUT EFI_IPv6_ADDRESS *GatewayAddr ++ IN HTTP_BOOT_PRIVATE_DATA *Private, ++ IN UINTN TimeOutInSecond, ++ OUT EFI_IPv6_ADDRESS *GatewayAddr + ) + { +- EFI_STATUS Status; +- EFI_IP6_PROTOCOL *Ip6; +- EFI_IP6_MODE_DATA Ip6ModeData; +- UINTN Index; +- EFI_EVENT TimeOutEvt; +- UINTN RetryCount; +- BOOLEAN GatewayIsFound; ++ EFI_STATUS Status; ++ EFI_IP6_PROTOCOL *Ip6; ++ EFI_IP6_MODE_DATA Ip6ModeData; ++ UINTN Index; ++ EFI_EVENT TimeOutEvt; ++ UINTN RetryCount; ++ BOOLEAN GatewayIsFound; + + ASSERT (GatewayAddr != NULL); + ASSERT (Private != NULL); +@@ -562,23 +564,28 @@ HttpBootCheckRouteTable ( + if (Ip6ModeData.AddressList != NULL) { + FreePool (Ip6ModeData.AddressList); + } ++ + if (Ip6ModeData.GroupTable != NULL) { + FreePool (Ip6ModeData.GroupTable); + } ++ + if (Ip6ModeData.RouteTable != NULL) { + FreePool (Ip6ModeData.RouteTable); + } ++ + if (Ip6ModeData.NeighborCache != NULL) { + FreePool (Ip6ModeData.NeighborCache); + } ++ + if (Ip6ModeData.PrefixTable != NULL) { + FreePool (Ip6ModeData.PrefixTable); + } ++ + if (Ip6ModeData.IcmpTypeList != NULL) { + FreePool (Ip6ModeData.IcmpTypeList); + } + +- if (GatewayIsFound || RetryCount == TimeOutInSecond) { ++ if (GatewayIsFound || (RetryCount == TimeOutInSecond)) { + break; + } + +@@ -604,6 +611,7 @@ HttpBootCheckRouteTable ( + if (EFI_ERROR (Status)) { + goto ON_EXIT; + } ++ + while (EFI_ERROR (gBS->CheckEvent (TimeOutEvt))) { + Ip6->Poll (Ip6); + } +@@ -634,16 +642,16 @@ ON_EXIT: + **/ + EFI_STATUS + HttpBootSetIp6Policy ( +- IN HTTP_BOOT_PRIVATE_DATA *Private ++ IN HTTP_BOOT_PRIVATE_DATA *Private + ) + { +- EFI_IP6_CONFIG_POLICY Policy; +- EFI_IP6_CONFIG_PROTOCOL *Ip6Config; +- EFI_STATUS Status; +- UINTN DataSize; ++ EFI_IP6_CONFIG_POLICY Policy; ++ EFI_IP6_CONFIG_PROTOCOL *Ip6Config; ++ EFI_STATUS Status; ++ UINTN DataSize; + +- Ip6Config = Private->Ip6Config; +- DataSize = sizeof (EFI_IP6_CONFIG_POLICY); ++ Ip6Config = Private->Ip6Config; ++ DataSize = sizeof (EFI_IP6_CONFIG_POLICY); + + // + // Get and store the current policy of IP6 driver. +@@ -663,13 +671,14 @@ HttpBootSetIp6Policy ( + Status = Ip6Config->SetData ( + Ip6Config, + Ip6ConfigDataTypePolicy, +- sizeof(EFI_IP6_CONFIG_POLICY), ++ sizeof (EFI_IP6_CONFIG_POLICY), + &Policy + ); + if (EFI_ERROR (Status)) { + return Status; + } + } ++ + return EFI_SUCCESS; + } + +@@ -687,12 +696,12 @@ HttpBootSetIp6Policy ( + **/ + EFI_STATUS + HttpBootSetIp6Dns ( +- IN HTTP_BOOT_PRIVATE_DATA *Private, +- IN UINTN DataLength, +- IN VOID *DnsServerData ++ IN HTTP_BOOT_PRIVATE_DATA *Private, ++ IN UINTN DataLength, ++ IN VOID *DnsServerData + ) + { +- EFI_IP6_CONFIG_PROTOCOL *Ip6Config; ++ EFI_IP6_CONFIG_PROTOCOL *Ip6Config; + + ASSERT (Private->UsingIpv6); + +@@ -717,11 +726,11 @@ HttpBootSetIp6Dns ( + **/ + EFI_STATUS + HttpBootSetIp6Gateway ( +- IN HTTP_BOOT_PRIVATE_DATA *Private ++ IN HTTP_BOOT_PRIVATE_DATA *Private + ) + { +- EFI_IP6_CONFIG_PROTOCOL *Ip6Config; +- EFI_STATUS Status; ++ EFI_IP6_CONFIG_PROTOCOL *Ip6Config; ++ EFI_STATUS Status; + + ASSERT (Private->UsingIpv6); + Ip6Config = Private->Ip6Config; +@@ -736,7 +745,7 @@ HttpBootSetIp6Gateway ( + sizeof (EFI_IPv6_ADDRESS), + &Private->GatewayIp.v6 + ); +- if (EFI_ERROR(Status)) { ++ if (EFI_ERROR (Status)) { + return Status; + } + } +@@ -755,21 +764,21 @@ HttpBootSetIp6Gateway ( + **/ + EFI_STATUS + HttpBootSetIp6Address ( +- IN HTTP_BOOT_PRIVATE_DATA *Private +-) ++ IN HTTP_BOOT_PRIVATE_DATA *Private ++ ) + { +- EFI_STATUS Status; +- EFI_IP6_PROTOCOL *Ip6; +- EFI_IP6_CONFIG_PROTOCOL *Ip6Cfg; +- EFI_IP6_CONFIG_POLICY Policy; +- EFI_IP6_CONFIG_MANUAL_ADDRESS CfgAddr; +- EFI_IPv6_ADDRESS *Ip6Addr; +- EFI_IPv6_ADDRESS GatewayAddr; +- EFI_IP6_CONFIG_DATA Ip6CfgData; +- EFI_EVENT MappedEvt; +- UINTN DataSize; +- BOOLEAN IsAddressOk; +- UINTN Index; ++ EFI_STATUS Status; ++ EFI_IP6_PROTOCOL *Ip6; ++ EFI_IP6_CONFIG_PROTOCOL *Ip6Cfg; ++ EFI_IP6_CONFIG_POLICY Policy; ++ EFI_IP6_CONFIG_MANUAL_ADDRESS CfgAddr; ++ EFI_IPv6_ADDRESS *Ip6Addr; ++ EFI_IPv6_ADDRESS GatewayAddr; ++ EFI_IP6_CONFIG_DATA Ip6CfgData; ++ EFI_EVENT MappedEvt; ++ UINTN DataSize; ++ BOOLEAN IsAddressOk; ++ UINTN Index; + + ASSERT (Private->UsingIpv6); + +@@ -783,11 +792,11 @@ HttpBootSetIp6Address ( + CopyMem (&CfgAddr, &Private->StationIp.v6, sizeof (EFI_IPv6_ADDRESS)); + ZeroMem (&Ip6CfgData, sizeof (EFI_IP6_CONFIG_DATA)); + +- Ip6CfgData.AcceptIcmpErrors = TRUE; +- Ip6CfgData.DefaultProtocol = IP6_ICMP; +- Ip6CfgData.HopLimit = HTTP_BOOT_DEFAULT_HOPLIMIT; +- Ip6CfgData.ReceiveTimeout = HTTP_BOOT_DEFAULT_LIFETIME; +- Ip6CfgData.TransmitTimeout = HTTP_BOOT_DEFAULT_LIFETIME; ++ Ip6CfgData.AcceptIcmpErrors = TRUE; ++ Ip6CfgData.DefaultProtocol = IP6_ICMP; ++ Ip6CfgData.HopLimit = HTTP_BOOT_DEFAULT_HOPLIMIT; ++ Ip6CfgData.ReceiveTimeout = HTTP_BOOT_DEFAULT_LIFETIME; ++ Ip6CfgData.TransmitTimeout = HTTP_BOOT_DEFAULT_LIFETIME; + + Status = Ip6->Configure (Ip6, &Ip6CfgData); + if (EFI_ERROR (Status)) { +@@ -811,7 +820,7 @@ HttpBootSetIp6Address ( + Status = Ip6Cfg->SetData ( + Ip6Cfg, + Ip6ConfigDataTypePolicy, +- sizeof(EFI_IP6_CONFIG_POLICY), ++ sizeof (EFI_IP6_CONFIG_POLICY), + &Policy + ); + if (EFI_ERROR (Status)) { +@@ -840,7 +849,7 @@ HttpBootSetIp6Address ( + Ip6ConfigDataTypeManualAddress, + MappedEvt + ); +- if (EFI_ERROR(Status)) { ++ if (EFI_ERROR (Status)) { + goto ON_EXIT; + } + +@@ -850,7 +859,7 @@ HttpBootSetIp6Address ( + sizeof (EFI_IP6_CONFIG_MANUAL_ADDRESS), + &CfgAddr + ); +- if (EFI_ERROR (Status) && Status != EFI_NOT_READY) { ++ if (EFI_ERROR (Status) && (Status != EFI_NOT_READY)) { + goto ON_EXIT; + } else if (Status == EFI_NOT_READY) { + // +@@ -859,17 +868,18 @@ HttpBootSetIp6Address ( + while (!IsAddressOk) { + Ip6->Poll (Ip6); + } ++ + // + // Check whether the Ip6 Address setting is successed. + // + DataSize = 0; +- Status = Ip6Cfg->GetData ( +- Ip6Cfg, +- Ip6ConfigDataTypeManualAddress, +- &DataSize, +- NULL +- ); +- if (Status != EFI_BUFFER_TOO_SMALL || DataSize == 0) { ++ Status = Ip6Cfg->GetData ( ++ Ip6Cfg, ++ Ip6ConfigDataTypeManualAddress, ++ &DataSize, ++ NULL ++ ); ++ if ((Status != EFI_BUFFER_TOO_SMALL) || (DataSize == 0)) { + Status = EFI_DEVICE_ERROR; + goto ON_EXIT; + } +@@ -878,22 +888,24 @@ HttpBootSetIp6Address ( + if (Ip6Addr == NULL) { + return EFI_OUT_OF_RESOURCES; + } ++ + Status = Ip6Cfg->GetData ( + Ip6Cfg, + Ip6ConfigDataTypeManualAddress, + &DataSize, +- (VOID *) Ip6Addr ++ (VOID *)Ip6Addr + ); + if (EFI_ERROR (Status)) { + Status = EFI_DEVICE_ERROR; + goto ON_EXIT; + } + +- for (Index = 0; Index < DataSize / sizeof (EFI_IPv6_ADDRESS); Index ++) { ++ for (Index = 0; Index < DataSize / sizeof (EFI_IPv6_ADDRESS); Index++) { + if (CompareMem (Ip6Addr + Index, &CfgAddr, sizeof (EFI_IPv6_ADDRESS)) == 0) { + break; + } + } ++ + if (Index == DataSize / sizeof (EFI_IPv6_ADDRESS)) { + Status = EFI_ABORTED; + goto ON_EXIT; +@@ -928,17 +940,17 @@ ON_EXIT: + **/ + EFI_STATUS + HttpBootDhcp6Sarr ( +- IN HTTP_BOOT_PRIVATE_DATA *Private ++ IN HTTP_BOOT_PRIVATE_DATA *Private + ) + { +- EFI_DHCP6_PROTOCOL *Dhcp6; +- EFI_DHCP6_CONFIG_DATA Config; +- EFI_DHCP6_MODE_DATA Mode; +- EFI_DHCP6_RETRANSMISSION *Retransmit; +- EFI_DHCP6_PACKET_OPTION *OptList[HTTP_BOOT_DHCP6_OPTION_MAX_NUM]; +- UINT32 OptCount; +- UINT8 Buffer[HTTP_BOOT_DHCP6_OPTION_MAX_SIZE]; +- EFI_STATUS Status; ++ EFI_DHCP6_PROTOCOL *Dhcp6; ++ EFI_DHCP6_CONFIG_DATA Config; ++ EFI_DHCP6_MODE_DATA Mode; ++ EFI_DHCP6_RETRANSMISSION *Retransmit; ++ EFI_DHCP6_PACKET_OPTION *OptList[HTTP_BOOT_DHCP6_OPTION_MAX_NUM]; ++ UINT32 OptCount; ++ UINT8 Buffer[HTTP_BOOT_DHCP6_OPTION_MAX_SIZE]; ++ EFI_STATUS Status; + + Dhcp6 = Private->Dhcp6; + ASSERT (Dhcp6 != NULL); +@@ -947,7 +959,7 @@ HttpBootDhcp6Sarr ( + // Build options list for the request packet. + // + OptCount = HttpBootBuildDhcp6Options (Private, OptList, Buffer); +- ASSERT (OptCount >0); ++ ASSERT (OptCount > 0); + + Retransmit = AllocateZeroPool (sizeof (EFI_DHCP6_RETRANSMISSION)); + if (Retransmit == NULL) { +@@ -980,11 +992,12 @@ HttpBootDhcp6Sarr ( + if (EFI_ERROR (Status)) { + goto ON_EXIT; + } ++ + // + // Initialize the record fields for DHCPv6 offer in private data. + // +- Private->OfferNum = 0; +- Private->SelectIndex = 0; ++ Private->OfferNum = 0; ++ Private->SelectIndex = 0; + ZeroMem (Private->OfferCount, sizeof (Private->OfferCount)); + ZeroMem (Private->OfferIndex, sizeof (Private->OfferIndex)); + +@@ -1021,12 +1034,11 @@ ON_EXIT: + if (Mode.ClientId != NULL) { + FreePool (Mode.ClientId); + } ++ + if (Mode.Ia != NULL) { + FreePool (Mode.Ia); + } + } + + return Status; +- + } +- +diff --git a/NetworkPkg/IScsiDxe/IScsiCHAP.c b/NetworkPkg/IScsiDxe/IScsiCHAP.c +index 0491ef42db..b507f11cd4 100644 +--- a/NetworkPkg/IScsiDxe/IScsiCHAP.c ++++ b/NetworkPkg/IScsiDxe/IScsiCHAP.c +@@ -14,7 +14,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent + // macros. CHAP_HASH structures at lower subscripts in the array are preferred + // by the initiator. + // +-STATIC CONST CHAP_HASH mChapHash[] = { ++STATIC CONST CHAP_HASH mChapHash[] = { + { + ISCSI_CHAP_ALGORITHM_SHA256, + SHA256_DIGEST_SIZE, +@@ -23,7 +23,7 @@ STATIC CONST CHAP_HASH mChapHash[] = { + Sha256Update, + Sha256Final + }, +-#ifdef ENABLE_MD5_DEPRECATED_INTERFACES ++ #ifdef ENABLE_MD5_DEPRECATED_INTERFACES + // + // Keep the deprecated MD5 entry at the end of the array (making MD5 the + // least preferred choice of the initiator). +@@ -36,7 +36,7 @@ STATIC CONST CHAP_HASH mChapHash[] = { + Md5Update, + Md5Final + }, +-#endif // ENABLE_MD5_DEPRECATED_INTERFACES ++ #endif // ENABLE_MD5_DEPRECATED_INTERFACES + }; + + // +@@ -44,17 +44,17 @@ STATIC CONST CHAP_HASH mChapHash[] = { + // CHAP_A= value string, by the IScsiCHAPInitHashList() function. It + // is sent by the initiator in ISCSI_CHAP_STEP_ONE. + // +-STATIC CHAR8 mChapHashListString[ +- 3 + // UINT8 identifier in +- // decimal +- (1 + 3) * (ARRAY_SIZE (mChapHash) - 1) + // comma prepended for +- // entries after the +- // first +- 1 + // extra character for +- // AsciiSPrint() +- // truncation check +- 1 // terminating NUL +- ]; ++STATIC CHAR8 mChapHashListString[ ++ 3 + // UINT8 identifier in ++ // decimal ++ (1 + 3) * (ARRAY_SIZE (mChapHash) - 1) + // comma prepended for ++ // entries after the ++ // first ++ 1 + // extra character for ++ // AsciiSPrint() ++ // truncation check ++ 1 // terminating NUL ++]; + + /** + Initiator calculates its own expected hash value. +@@ -82,13 +82,13 @@ STATIC CHAR8 mChapHashListString[ + **/ + EFI_STATUS + IScsiCHAPCalculateResponse ( +- IN UINT32 ChapIdentifier, +- IN CHAR8 *ChapSecret, +- IN UINT32 SecretLength, +- IN UINT8 *ChapChallenge, +- IN UINT32 ChallengeLength, +- IN CONST CHAP_HASH *Hash, +- OUT UINT8 *ChapResponse ++ IN UINT32 ChapIdentifier, ++ IN CHAR8 *ChapSecret, ++ IN UINT32 SecretLength, ++ IN UINT8 *ChapChallenge, ++ IN UINT32 ChallengeLength, ++ IN CONST CHAP_HASH *Hash, ++ OUT UINT8 *ChapResponse + ) + { + UINTN ContextSize; +@@ -103,7 +103,7 @@ IScsiCHAPCalculateResponse ( + ASSERT (Hash != NULL); + + ContextSize = Hash->GetContextSize (); +- Ctx = AllocatePool (ContextSize); ++ Ctx = AllocatePool (ContextSize); + if (Ctx == NULL) { + return EFI_OUT_OF_RESOURCES; + } +@@ -117,7 +117,7 @@ IScsiCHAPCalculateResponse ( + // + // Hash Identifier - Only calculate 1 byte data (RFC1994) + // +- IdByte[0] = (CHAR8) ChapIdentifier; ++ IdByte[0] = (CHAR8)ChapIdentifier; + if (!Hash->Update (Ctx, IdByte, 1)) { + goto Exit; + } +@@ -170,9 +170,9 @@ IScsiCHAPAuthTarget ( + UINT8 VerifyRsp[ISCSI_CHAP_MAX_DIGEST_SIZE]; + INTN Mismatch; + +- Status = EFI_SUCCESS; ++ Status = EFI_SUCCESS; + +- SecretSize = (UINT32) AsciiStrLen (AuthData->AuthConfig->ReverseCHAPSecret); ++ SecretSize = (UINT32)AsciiStrLen (AuthData->AuthConfig->ReverseCHAPSecret); + + ASSERT (AuthData->Hash != NULL); + +@@ -198,7 +198,6 @@ IScsiCHAPAuthTarget ( + return Status; + } + +- + /** + This function checks the received iSCSI Login Response during the security + negotiation stage. +@@ -216,33 +215,34 @@ IScsiCHAPOnRspReceived ( + IN ISCSI_CONNECTION *Conn + ) + { +- EFI_STATUS Status; +- ISCSI_SESSION *Session; +- ISCSI_CHAP_AUTH_DATA *AuthData; +- CHAR8 *Value; +- UINT8 *Data; +- UINT32 Len; +- LIST_ENTRY *KeyValueList; +- UINTN Algorithm; +- CHAR8 *Identifier; +- CHAR8 *Challenge; +- CHAR8 *Name; +- CHAR8 *Response; +- UINT8 TargetRsp[ISCSI_CHAP_MAX_DIGEST_SIZE]; +- UINT32 RspLen; +- UINTN Result; +- UINTN HashIndex; ++ EFI_STATUS Status; ++ ISCSI_SESSION *Session; ++ ISCSI_CHAP_AUTH_DATA *AuthData; ++ CHAR8 *Value; ++ UINT8 *Data; ++ UINT32 Len; ++ LIST_ENTRY *KeyValueList; ++ UINTN Algorithm; ++ CHAR8 *Identifier; ++ CHAR8 *Challenge; ++ CHAR8 *Name; ++ CHAR8 *Response; ++ UINT8 TargetRsp[ISCSI_CHAP_MAX_DIGEST_SIZE]; ++ UINT32 RspLen; ++ UINTN Result; ++ UINTN HashIndex; + + ASSERT (Conn->CurrentStage == ISCSI_SECURITY_NEGOTIATION); + ASSERT (Conn->RspQue.BufNum != 0); + +- Session = Conn->Session; +- AuthData = &Session->AuthData.CHAP; +- Len = Conn->RspQue.BufSize; +- Data = AllocateZeroPool (Len); ++ Session = Conn->Session; ++ AuthData = &Session->AuthData.CHAP; ++ Len = Conn->RspQue.BufSize; ++ Data = AllocateZeroPool (Len); + if (Data == NULL) { + return EFI_OUT_OF_RESOURCES; + } ++ + // + // Copy the data in case the data spans over multiple PDUs. + // +@@ -251,7 +251,7 @@ IScsiCHAPOnRspReceived ( + // + // Build the key-value list from the data segment of the Login Response. + // +- KeyValueList = IScsiBuildKeyValueList ((CHAR8 *) Data, Len); ++ KeyValueList = IScsiBuildKeyValueList ((CHAR8 *)Data, Len); + if (KeyValueList == NULL) { + Status = EFI_OUT_OF_RESOURCES; + goto ON_EXIT; +@@ -260,179 +260,184 @@ IScsiCHAPOnRspReceived ( + Status = EFI_PROTOCOL_ERROR; + + switch (Conn->AuthStep) { +- case ISCSI_AUTH_INITIAL: +- // +- // The first Login Response. +- // +- Value = IScsiGetValueByKeyFromList ( +- KeyValueList, +- ISCSI_KEY_TARGET_PORTAL_GROUP_TAG +- ); +- if (Value == NULL) { +- goto ON_EXIT; +- } +- +- Result = IScsiNetNtoi (Value); +- if (Result > 0xFFFF) { +- goto ON_EXIT; +- } +- +- Session->TargetPortalGroupTag = (UINT16) Result; +- +- Value = IScsiGetValueByKeyFromList ( +- KeyValueList, +- ISCSI_KEY_AUTH_METHOD +- ); +- if (Value == NULL) { +- goto ON_EXIT; +- } +- // +- // Initiator mandates CHAP authentication but target replies without +- // "CHAP", or initiator suggets "None" but target replies with some kind of +- // auth method. +- // +- if (Session->AuthType == ISCSI_AUTH_TYPE_NONE) { +- if (AsciiStrCmp (Value, ISCSI_KEY_VALUE_NONE) != 0) { ++ case ISCSI_AUTH_INITIAL: ++ // ++ // The first Login Response. ++ // ++ Value = IScsiGetValueByKeyFromList ( ++ KeyValueList, ++ ISCSI_KEY_TARGET_PORTAL_GROUP_TAG ++ ); ++ if (Value == NULL) { + goto ON_EXIT; + } +- } else if (Session->AuthType == ISCSI_AUTH_TYPE_CHAP) { +- if (AsciiStrCmp (Value, ISCSI_AUTH_METHOD_CHAP) != 0) { ++ ++ Result = IScsiNetNtoi (Value); ++ if (Result > 0xFFFF) { + goto ON_EXIT; + } +- } else { +- goto ON_EXIT; +- } + +- // +- // Transit to CHAP step one. +- // +- Conn->AuthStep = ISCSI_CHAP_STEP_ONE; +- Status = EFI_SUCCESS; +- break; ++ Session->TargetPortalGroupTag = (UINT16)Result; + +- case ISCSI_CHAP_STEP_TWO: +- // +- // The Target replies with CHAP_A= CHAP_I= CHAP_C= +- // +- Value = IScsiGetValueByKeyFromList ( +- KeyValueList, +- ISCSI_KEY_CHAP_ALGORITHM +- ); +- if (Value == NULL) { +- goto ON_EXIT; +- } +- +- Algorithm = IScsiNetNtoi (Value); +- for (HashIndex = 0; HashIndex < ARRAY_SIZE (mChapHash); HashIndex++) { +- if (Algorithm == mChapHash[HashIndex].Algorithm) { +- break; ++ Value = IScsiGetValueByKeyFromList ( ++ KeyValueList, ++ ISCSI_KEY_AUTH_METHOD ++ ); ++ if (Value == NULL) { ++ goto ON_EXIT; + } +- } +- if (HashIndex == ARRAY_SIZE (mChapHash)) { ++ + // +- // Unsupported algorithm is chosen by target. ++ // Initiator mandates CHAP authentication but target replies without ++ // "CHAP", or initiator suggets "None" but target replies with some kind of ++ // auth method. + // +- goto ON_EXIT; +- } +- // +- // Remember the target's chosen hash algorithm. +- // +- ASSERT (AuthData->Hash == NULL); +- AuthData->Hash = &mChapHash[HashIndex]; ++ if (Session->AuthType == ISCSI_AUTH_TYPE_NONE) { ++ if (AsciiStrCmp (Value, ISCSI_KEY_VALUE_NONE) != 0) { ++ goto ON_EXIT; ++ } ++ } else if (Session->AuthType == ISCSI_AUTH_TYPE_CHAP) { ++ if (AsciiStrCmp (Value, ISCSI_AUTH_METHOD_CHAP) != 0) { ++ goto ON_EXIT; ++ } ++ } else { ++ goto ON_EXIT; ++ } + +- Identifier = IScsiGetValueByKeyFromList ( +- KeyValueList, +- ISCSI_KEY_CHAP_IDENTIFIER +- ); +- if (Identifier == NULL) { +- goto ON_EXIT; +- } +- +- Challenge = IScsiGetValueByKeyFromList ( +- KeyValueList, +- ISCSI_KEY_CHAP_CHALLENGE +- ); +- if (Challenge == NULL) { +- goto ON_EXIT; +- } +- // +- // Process the CHAP identifier and CHAP Challenge from Target. +- // Calculate Response value. +- // +- Result = IScsiNetNtoi (Identifier); +- if (Result > 0xFF) { +- goto ON_EXIT; +- } +- +- AuthData->InIdentifier = (UINT32) Result; +- AuthData->InChallengeLength = (UINT32) sizeof (AuthData->InChallenge); +- Status = IScsiHexToBin ( +- (UINT8 *) AuthData->InChallenge, +- &AuthData->InChallengeLength, +- Challenge +- ); +- if (EFI_ERROR (Status)) { +- Status = EFI_PROTOCOL_ERROR; +- goto ON_EXIT; +- } +- Status = IScsiCHAPCalculateResponse ( +- AuthData->InIdentifier, +- AuthData->AuthConfig->CHAPSecret, +- (UINT32) AsciiStrLen (AuthData->AuthConfig->CHAPSecret), +- AuthData->InChallenge, +- AuthData->InChallengeLength, +- AuthData->Hash, +- AuthData->CHAPResponse +- ); ++ // ++ // Transit to CHAP step one. ++ // ++ Conn->AuthStep = ISCSI_CHAP_STEP_ONE; ++ Status = EFI_SUCCESS; ++ break; + +- // +- // Transit to next step. +- // +- Conn->AuthStep = ISCSI_CHAP_STEP_THREE; +- break; ++ case ISCSI_CHAP_STEP_TWO: ++ // ++ // The Target replies with CHAP_A= CHAP_I= CHAP_C= ++ // ++ Value = IScsiGetValueByKeyFromList ( ++ KeyValueList, ++ ISCSI_KEY_CHAP_ALGORITHM ++ ); ++ if (Value == NULL) { ++ goto ON_EXIT; ++ } + +- case ISCSI_CHAP_STEP_THREE: +- // +- // One way CHAP authentication and the target would like to +- // authenticate us. +- // +- Status = EFI_SUCCESS; +- break; ++ Algorithm = IScsiNetNtoi (Value); ++ for (HashIndex = 0; HashIndex < ARRAY_SIZE (mChapHash); HashIndex++) { ++ if (Algorithm == mChapHash[HashIndex].Algorithm) { ++ break; ++ } ++ } + +- case ISCSI_CHAP_STEP_FOUR: +- ASSERT (AuthData->AuthConfig->CHAPType == ISCSI_CHAP_MUTUAL); +- // +- // The forth step, CHAP_N= CHAP_R= is received from Target. +- // +- Name = IScsiGetValueByKeyFromList (KeyValueList, ISCSI_KEY_CHAP_NAME); +- if (Name == NULL) { +- goto ON_EXIT; +- } +- +- Response = IScsiGetValueByKeyFromList ( +- KeyValueList, +- ISCSI_KEY_CHAP_RESPONSE ++ if (HashIndex == ARRAY_SIZE (mChapHash)) { ++ // ++ // Unsupported algorithm is chosen by target. ++ // ++ goto ON_EXIT; ++ } ++ ++ // ++ // Remember the target's chosen hash algorithm. ++ // ++ ASSERT (AuthData->Hash == NULL); ++ AuthData->Hash = &mChapHash[HashIndex]; ++ ++ Identifier = IScsiGetValueByKeyFromList ( ++ KeyValueList, ++ ISCSI_KEY_CHAP_IDENTIFIER ++ ); ++ if (Identifier == NULL) { ++ goto ON_EXIT; ++ } ++ ++ Challenge = IScsiGetValueByKeyFromList ( ++ KeyValueList, ++ ISCSI_KEY_CHAP_CHALLENGE ++ ); ++ if (Challenge == NULL) { ++ goto ON_EXIT; ++ } ++ ++ // ++ // Process the CHAP identifier and CHAP Challenge from Target. ++ // Calculate Response value. ++ // ++ Result = IScsiNetNtoi (Identifier); ++ if (Result > 0xFF) { ++ goto ON_EXIT; ++ } ++ ++ AuthData->InIdentifier = (UINT32)Result; ++ AuthData->InChallengeLength = (UINT32)sizeof (AuthData->InChallenge); ++ Status = IScsiHexToBin ( ++ (UINT8 *)AuthData->InChallenge, ++ &AuthData->InChallengeLength, ++ Challenge ++ ); ++ if (EFI_ERROR (Status)) { ++ Status = EFI_PROTOCOL_ERROR; ++ goto ON_EXIT; ++ } ++ ++ Status = IScsiCHAPCalculateResponse ( ++ AuthData->InIdentifier, ++ AuthData->AuthConfig->CHAPSecret, ++ (UINT32)AsciiStrLen (AuthData->AuthConfig->CHAPSecret), ++ AuthData->InChallenge, ++ AuthData->InChallengeLength, ++ AuthData->Hash, ++ AuthData->CHAPResponse + ); +- if (Response == NULL) { +- goto ON_EXIT; +- } +- +- ASSERT (AuthData->Hash != NULL); +- RspLen = AuthData->Hash->DigestSize; +- Status = IScsiHexToBin (TargetRsp, &RspLen, Response); +- if (EFI_ERROR (Status) || RspLen != AuthData->Hash->DigestSize) { +- Status = EFI_PROTOCOL_ERROR; +- goto ON_EXIT; +- } + +- // +- // Check the CHAP Name and Response replied by Target. +- // +- Status = IScsiCHAPAuthTarget (AuthData, TargetRsp); +- break; ++ // ++ // Transit to next step. ++ // ++ Conn->AuthStep = ISCSI_CHAP_STEP_THREE; ++ break; ++ ++ case ISCSI_CHAP_STEP_THREE: ++ // ++ // One way CHAP authentication and the target would like to ++ // authenticate us. ++ // ++ Status = EFI_SUCCESS; ++ break; ++ ++ case ISCSI_CHAP_STEP_FOUR: ++ ASSERT (AuthData->AuthConfig->CHAPType == ISCSI_CHAP_MUTUAL); ++ // ++ // The forth step, CHAP_N= CHAP_R= is received from Target. ++ // ++ Name = IScsiGetValueByKeyFromList (KeyValueList, ISCSI_KEY_CHAP_NAME); ++ if (Name == NULL) { ++ goto ON_EXIT; ++ } ++ ++ Response = IScsiGetValueByKeyFromList ( ++ KeyValueList, ++ ISCSI_KEY_CHAP_RESPONSE ++ ); ++ if (Response == NULL) { ++ goto ON_EXIT; ++ } + +- default: +- break; ++ ASSERT (AuthData->Hash != NULL); ++ RspLen = AuthData->Hash->DigestSize; ++ Status = IScsiHexToBin (TargetRsp, &RspLen, Response); ++ if (EFI_ERROR (Status) || (RspLen != AuthData->Hash->DigestSize)) { ++ Status = EFI_PROTOCOL_ERROR; ++ goto ON_EXIT; ++ } ++ ++ // ++ // Check the CHAP Name and Response replied by Target. ++ // ++ Status = IScsiCHAPAuthTarget (AuthData, TargetRsp); ++ break; ++ ++ default: ++ break; + } + + ON_EXIT: +@@ -446,7 +451,6 @@ ON_EXIT: + return Status; + } + +- + /** + This function fills the CHAP authentication information into the login PDU + during the security negotiation stage in the iSCSI connection login. +@@ -467,140 +471,142 @@ IScsiCHAPToSendReq ( + IN OUT NET_BUF *Pdu + ) + { +- EFI_STATUS Status; +- ISCSI_SESSION *Session; +- ISCSI_LOGIN_REQUEST *LoginReq; +- ISCSI_CHAP_AUTH_DATA *AuthData; +- CHAR8 *Value; +- CHAR8 ValueStr[256]; +- CHAR8 *Response; +- UINT32 RspLen; +- CHAR8 *Challenge; +- UINT32 ChallengeLen; +- EFI_STATUS BinToHexStatus; ++ EFI_STATUS Status; ++ ISCSI_SESSION *Session; ++ ISCSI_LOGIN_REQUEST *LoginReq; ++ ISCSI_CHAP_AUTH_DATA *AuthData; ++ CHAR8 *Value; ++ CHAR8 ValueStr[256]; ++ CHAR8 *Response; ++ UINT32 RspLen; ++ CHAR8 *Challenge; ++ UINT32 ChallengeLen; ++ EFI_STATUS BinToHexStatus; + + ASSERT (Conn->CurrentStage == ISCSI_SECURITY_NEGOTIATION); + +- Session = Conn->Session; +- AuthData = &Session->AuthData.CHAP; +- LoginReq = (ISCSI_LOGIN_REQUEST *) NetbufGetByte (Pdu, 0, 0); ++ Session = Conn->Session; ++ AuthData = &Session->AuthData.CHAP; ++ LoginReq = (ISCSI_LOGIN_REQUEST *)NetbufGetByte (Pdu, 0, 0); + if (LoginReq == NULL) { + return EFI_PROTOCOL_ERROR; + } +- Status = EFI_SUCCESS; + +- RspLen = 2 * ISCSI_CHAP_MAX_DIGEST_SIZE + 3; +- Response = AllocateZeroPool (RspLen); ++ Status = EFI_SUCCESS; ++ ++ RspLen = 2 * ISCSI_CHAP_MAX_DIGEST_SIZE + 3; ++ Response = AllocateZeroPool (RspLen); + if (Response == NULL) { + return EFI_OUT_OF_RESOURCES; + } + +- ChallengeLen = 2 * ISCSI_CHAP_MAX_DIGEST_SIZE + 3; +- Challenge = AllocateZeroPool (ChallengeLen); ++ ChallengeLen = 2 * ISCSI_CHAP_MAX_DIGEST_SIZE + 3; ++ Challenge = AllocateZeroPool (ChallengeLen); + if (Challenge == NULL) { + FreePool (Response); + return EFI_OUT_OF_RESOURCES; + } + + switch (Conn->AuthStep) { +- case ISCSI_AUTH_INITIAL: +- // +- // It's the initial Login Request. Fill in the key=value pairs mandatory +- // for the initial Login Request. +- // +- IScsiAddKeyValuePair ( +- Pdu, +- ISCSI_KEY_INITIATOR_NAME, +- mPrivate->InitiatorName +- ); +- IScsiAddKeyValuePair (Pdu, ISCSI_KEY_SESSION_TYPE, "Normal"); +- IScsiAddKeyValuePair ( +- Pdu, +- ISCSI_KEY_TARGET_NAME, +- Session->ConfigData->SessionConfigData.TargetName +- ); +- +- if (Session->AuthType == ISCSI_AUTH_TYPE_NONE) { +- Value = ISCSI_KEY_VALUE_NONE; +- ISCSI_SET_FLAG (LoginReq, ISCSI_LOGIN_REQ_PDU_FLAG_TRANSIT); +- } else { +- Value = ISCSI_AUTH_METHOD_CHAP; +- } +- +- IScsiAddKeyValuePair (Pdu, ISCSI_KEY_AUTH_METHOD, Value); ++ case ISCSI_AUTH_INITIAL: ++ // ++ // It's the initial Login Request. Fill in the key=value pairs mandatory ++ // for the initial Login Request. ++ // ++ IScsiAddKeyValuePair ( ++ Pdu, ++ ISCSI_KEY_INITIATOR_NAME, ++ mPrivate->InitiatorName ++ ); ++ IScsiAddKeyValuePair (Pdu, ISCSI_KEY_SESSION_TYPE, "Normal"); ++ IScsiAddKeyValuePair ( ++ Pdu, ++ ISCSI_KEY_TARGET_NAME, ++ Session->ConfigData->SessionConfigData.TargetName ++ ); + +- break; ++ if (Session->AuthType == ISCSI_AUTH_TYPE_NONE) { ++ Value = ISCSI_KEY_VALUE_NONE; ++ ISCSI_SET_FLAG (LoginReq, ISCSI_LOGIN_REQ_PDU_FLAG_TRANSIT); ++ } else { ++ Value = ISCSI_AUTH_METHOD_CHAP; ++ } + +- case ISCSI_CHAP_STEP_ONE: +- // +- // First step, send the Login Request with CHAP_A= key-value +- // pair. +- // +- IScsiAddKeyValuePair (Pdu, ISCSI_KEY_CHAP_ALGORITHM, mChapHashListString); ++ IScsiAddKeyValuePair (Pdu, ISCSI_KEY_AUTH_METHOD, Value); + +- Conn->AuthStep = ISCSI_CHAP_STEP_TWO; +- break; ++ break; + +- case ISCSI_CHAP_STEP_THREE: +- // +- // Third step, send the Login Request with CHAP_N= CHAP_R= or +- // CHAP_N= CHAP_R= CHAP_I= CHAP_C= if target authentication is +- // required too. +- // +- // CHAP_N= +- // +- IScsiAddKeyValuePair ( +- Pdu, +- ISCSI_KEY_CHAP_NAME, +- (CHAR8 *) &AuthData->AuthConfig->CHAPName +- ); +- // +- // CHAP_R= +- // +- ASSERT (AuthData->Hash != NULL); +- BinToHexStatus = IScsiBinToHex ( +- (UINT8 *) AuthData->CHAPResponse, +- AuthData->Hash->DigestSize, +- Response, +- &RspLen +- ); +- ASSERT_EFI_ERROR (BinToHexStatus); +- IScsiAddKeyValuePair (Pdu, ISCSI_KEY_CHAP_RESPONSE, Response); +- +- if (AuthData->AuthConfig->CHAPType == ISCSI_CHAP_MUTUAL) { ++ case ISCSI_CHAP_STEP_ONE: + // +- // CHAP_I= ++ // First step, send the Login Request with CHAP_A= key-value ++ // pair. + // +- IScsiGenRandom ((UINT8 *) &AuthData->OutIdentifier, 1); +- AsciiSPrint (ValueStr, sizeof (ValueStr), "%d", AuthData->OutIdentifier); +- IScsiAddKeyValuePair (Pdu, ISCSI_KEY_CHAP_IDENTIFIER, ValueStr); ++ IScsiAddKeyValuePair (Pdu, ISCSI_KEY_CHAP_ALGORITHM, mChapHashListString); ++ ++ Conn->AuthStep = ISCSI_CHAP_STEP_TWO; ++ break; ++ ++ case ISCSI_CHAP_STEP_THREE: + // +- // CHAP_C= ++ // Third step, send the Login Request with CHAP_N= CHAP_R= or ++ // CHAP_N= CHAP_R= CHAP_I= CHAP_C= if target authentication is ++ // required too. + // +- IScsiGenRandom ( +- (UINT8 *) AuthData->OutChallenge, +- AuthData->Hash->DigestSize ++ // CHAP_N= ++ // ++ IScsiAddKeyValuePair ( ++ Pdu, ++ ISCSI_KEY_CHAP_NAME, ++ (CHAR8 *)&AuthData->AuthConfig->CHAPName + ); ++ // ++ // CHAP_R= ++ // ++ ASSERT (AuthData->Hash != NULL); + BinToHexStatus = IScsiBinToHex ( +- (UINT8 *) AuthData->OutChallenge, ++ (UINT8 *)AuthData->CHAPResponse, + AuthData->Hash->DigestSize, +- Challenge, +- &ChallengeLen ++ Response, ++ &RspLen + ); + ASSERT_EFI_ERROR (BinToHexStatus); +- IScsiAddKeyValuePair (Pdu, ISCSI_KEY_CHAP_CHALLENGE, Challenge); ++ IScsiAddKeyValuePair (Pdu, ISCSI_KEY_CHAP_RESPONSE, Response); ++ ++ if (AuthData->AuthConfig->CHAPType == ISCSI_CHAP_MUTUAL) { ++ // ++ // CHAP_I= ++ // ++ IScsiGenRandom ((UINT8 *)&AuthData->OutIdentifier, 1); ++ AsciiSPrint (ValueStr, sizeof (ValueStr), "%d", AuthData->OutIdentifier); ++ IScsiAddKeyValuePair (Pdu, ISCSI_KEY_CHAP_IDENTIFIER, ValueStr); ++ // ++ // CHAP_C= ++ // ++ IScsiGenRandom ( ++ (UINT8 *)AuthData->OutChallenge, ++ AuthData->Hash->DigestSize ++ ); ++ BinToHexStatus = IScsiBinToHex ( ++ (UINT8 *)AuthData->OutChallenge, ++ AuthData->Hash->DigestSize, ++ Challenge, ++ &ChallengeLen ++ ); ++ ASSERT_EFI_ERROR (BinToHexStatus); ++ IScsiAddKeyValuePair (Pdu, ISCSI_KEY_CHAP_CHALLENGE, Challenge); ++ ++ Conn->AuthStep = ISCSI_CHAP_STEP_FOUR; ++ } + +- Conn->AuthStep = ISCSI_CHAP_STEP_FOUR; +- } +- // +- // Set the stage transition flag. +- // +- ISCSI_SET_FLAG (LoginReq, ISCSI_LOGIN_REQ_PDU_FLAG_TRANSIT); +- break; ++ // ++ // Set the stage transition flag. ++ // ++ ISCSI_SET_FLAG (LoginReq, ISCSI_LOGIN_REQ_PDU_FLAG_TRANSIT); ++ break; + +- default: +- Status = EFI_PROTOCOL_ERROR; +- break; ++ default: ++ Status = EFI_PROTOCOL_ERROR; ++ break; + } + + FreePool (Response); +@@ -621,14 +627,14 @@ IScsiCHAPInitHashList ( + VOID + ) + { +- CHAR8 *Position; +- UINTN Left; +- UINTN HashIndex; +- CONST CHAP_HASH *Hash; +- UINTN Printed; ++ CHAR8 *Position; ++ UINTN Left; ++ UINTN HashIndex; ++ CONST CHAP_HASH *Hash; ++ UINTN Printed; + + Position = mChapHashListString; +- Left = sizeof (mChapHashListString); ++ Left = sizeof (mChapHashListString); + for (HashIndex = 0; HashIndex < ARRAY_SIZE (mChapHash); HashIndex++) { + Hash = &mChapHash[HashIndex]; + +@@ -657,7 +663,7 @@ IScsiCHAPInitHashList ( + ASSERT (Printed + 1 < Left); + + Position += Printed; +- Left -= Printed; ++ Left -= Printed; + + // + // Sanity-check the digest size for Hash. +diff --git a/NetworkPkg/IScsiDxe/IScsiMisc.c b/NetworkPkg/IScsiDxe/IScsiMisc.c +index 4069547867..b3ea90158f 100644 +--- a/NetworkPkg/IScsiDxe/IScsiMisc.c ++++ b/NetworkPkg/IScsiDxe/IScsiMisc.c +@@ -21,22 +21,21 @@ GLOBAL_REMOVE_IF_UNREFERENCED CONST CHAR8 IScsiHexString[] = "0123456789ABCDEFa + **/ + VOID + IScsiStrTrim ( +- IN OUT CHAR16 *Str, +- IN CHAR16 CharC ++ IN OUT CHAR16 *Str, ++ IN CHAR16 CharC + ) + { + CHAR16 *Pointer1; + CHAR16 *Pointer2; + + if (*Str == 0) { +- return ; ++ return; + } + + // + // Trim off the leading and trailing characters c + // + for (Pointer1 = Str; (*Pointer1 != 0) && (*Pointer1 == CharC); Pointer1++) { +- ; + } + + Pointer2 = Str; +@@ -47,18 +46,18 @@ IScsiStrTrim ( + } + } else { + while (*Pointer1 != 0) { +- *Pointer2 = *Pointer1; +- Pointer1++; +- Pointer2++; ++ *Pointer2 = *Pointer1; ++ Pointer1++; ++ Pointer2++; + } ++ + *Pointer2 = 0; + } + +- +- for (Pointer1 = Str + StrLen(Str) - 1; Pointer1 >= Str && *Pointer1 == CharC; Pointer1--) { +- ; ++ for (Pointer1 = Str + StrLen (Str) - 1; Pointer1 >= Str && *Pointer1 == CharC; Pointer1--) { + } +- if (Pointer1 != Str + StrLen(Str) - 1) { ++ ++ if (Pointer1 != Str + StrLen (Str) - 1) { + *(Pointer1 + 1) = 0; + } + } +@@ -101,10 +100,9 @@ IScsiGetSubnetMaskPrefixLength ( + Len++; + } + +- return (UINT8) (32 - Len); ++ return (UINT8)(32 - Len); + } + +- + /** + Convert the hexadecimal encoded LUN string into the 64-bit LUN. + +@@ -128,15 +126,15 @@ IScsiAsciiStrToLun ( + + ZeroMem (Lun, 8); + ZeroMem (TemStr, 2); +- ZeroMem ((UINT8 *) Value, sizeof (Value)); ++ ZeroMem ((UINT8 *)Value, sizeof (Value)); + SizeStr = AsciiStrLen (Str); + IndexValue = 0; + IndexNum = 0; + +- for (Index = 0; Index < SizeStr; Index ++) { ++ for (Index = 0; Index < SizeStr; Index++) { + TemStr[0] = Str[Index]; +- TemValue = (UINT8) AsciiStrHexToUint64 (TemStr); +- if (TemValue == 0 && TemStr[0] != '0') { ++ TemValue = (UINT8)AsciiStrHexToUint64 (TemStr); ++ if ((TemValue == 0) && (TemStr[0] != '0')) { + if ((TemStr[0] != '-') || (IndexNum == 0)) { + // + // Invalid Lun Char. +@@ -155,6 +153,7 @@ IScsiAsciiStrToLun ( + // + return EFI_INVALID_PARAMETER; + } ++ + // + // Restart str index for the next lun value. + // +@@ -172,11 +171,11 @@ IScsiAsciiStrToLun ( + // + // Combine UINT16 value. + // +- Value[IndexValue] = (UINT16) ((Value[IndexValue] << 4) + TemValue); ++ Value[IndexValue] = (UINT16)((Value[IndexValue] << 4) + TemValue); + } + +- for (Index = 0; Index <= IndexValue; Index ++) { +- *((UINT16 *) &Lun[Index * 2]) = HTONS (Value[Index]); ++ for (Index = 0; Index <= IndexValue; Index++) { ++ *((UINT16 *)&Lun[Index * 2]) = HTONS (Value[Index]); + } + + return EFI_SUCCESS; +@@ -201,26 +200,26 @@ IScsiLunToUnicodeStr ( + TempStr = Str; + + for (Index = 0; Index < 4; Index++) { +- + if ((Lun[2 * Index] | Lun[2 * Index + 1]) == 0) { + CopyMem (TempStr, L"0-", sizeof (L"0-")); + } else { +- TempStr[0] = (CHAR16) IScsiHexString[Lun[2 * Index] >> 4]; +- TempStr[1] = (CHAR16) IScsiHexString[Lun[2 * Index] & 0x0F]; +- TempStr[2] = (CHAR16) IScsiHexString[Lun[2 * Index + 1] >> 4]; +- TempStr[3] = (CHAR16) IScsiHexString[Lun[2 * Index + 1] & 0x0F]; +- TempStr[4] = L'-'; +- TempStr[5] = 0; ++ TempStr[0] = (CHAR16)IScsiHexString[Lun[2 * Index] >> 4]; ++ TempStr[1] = (CHAR16)IScsiHexString[Lun[2 * Index] & 0x0F]; ++ TempStr[2] = (CHAR16)IScsiHexString[Lun[2 * Index + 1] >> 4]; ++ TempStr[3] = (CHAR16)IScsiHexString[Lun[2 * Index + 1] & 0x0F]; ++ TempStr[4] = L'-'; ++ TempStr[5] = 0; + + IScsiStrTrim (TempStr, L'0'); + } + + TempStr += StrLen (TempStr); + } ++ + // + // Remove the last '-' + // +- ASSERT (StrLen(Str) >= 1); ++ ASSERT (StrLen (Str) >= 1); + Str[StrLen (Str) - 1] = 0; + + for (Index = StrLen (Str) - 1; Index > 1; Index = Index - 2) { +@@ -246,26 +245,24 @@ IScsiLunToUnicodeStr ( + **/ + EFI_STATUS + IScsiAsciiStrToIp ( +- IN CHAR8 *Str, +- IN UINT8 IpMode, +- OUT EFI_IP_ADDRESS *Ip ++ IN CHAR8 *Str, ++ IN UINT8 IpMode, ++ OUT EFI_IP_ADDRESS *Ip + ) + { +- EFI_STATUS Status; ++ EFI_STATUS Status; + +- if (IpMode == IP_MODE_IP4 || IpMode == IP_MODE_AUTOCONFIG_IP4) { ++ if ((IpMode == IP_MODE_IP4) || (IpMode == IP_MODE_AUTOCONFIG_IP4)) { + return NetLibAsciiStrToIp4 (Str, &Ip->v4); +- +- } else if (IpMode == IP_MODE_IP6 || IpMode == IP_MODE_AUTOCONFIG_IP6) { ++ } else if ((IpMode == IP_MODE_IP6) || (IpMode == IP_MODE_AUTOCONFIG_IP6)) { + return NetLibAsciiStrToIp6 (Str, &Ip->v6); +- + } else if (IpMode == IP_MODE_AUTOCONFIG) { + Status = NetLibAsciiStrToIp4 (Str, &Ip->v4); + if (!EFI_ERROR (Status)) { + return Status; + } +- return NetLibAsciiStrToIp6 (Str, &Ip->v6); + ++ return NetLibAsciiStrToIp6 (Str, &Ip->v6); + } + + return EFI_INVALID_PARAMETER; +@@ -292,14 +289,14 @@ IScsiMacAddrToStr ( + CHAR16 *String; + + for (Index = 0; Index < Len; Index++) { +- Str[3 * Index] = (CHAR16) IScsiHexString[(Mac->Addr[Index] >> 4) & 0x0F]; +- Str[3 * Index + 1] = (CHAR16) IScsiHexString[Mac->Addr[Index] & 0x0F]; +- Str[3 * Index + 2] = L':'; ++ Str[3 * Index] = (CHAR16)IScsiHexString[(Mac->Addr[Index] >> 4) & 0x0F]; ++ Str[3 * Index + 1] = (CHAR16)IScsiHexString[Mac->Addr[Index] & 0x0F]; ++ Str[3 * Index + 2] = L':'; + } + +- String = &Str[3 * Index - 1] ; ++ String = &Str[3 * Index - 1]; + if (VlanId != 0) { +- String += UnicodeSPrint (String, 6 * sizeof (CHAR16), L"\\%04x", (UINTN) VlanId); ++ String += UnicodeSPrint (String, 6 * sizeof (CHAR16), L"\\%04x", (UINTN)VlanId); + } + + *String = L'\0'; +@@ -322,15 +319,15 @@ IScsiMacAddrToStr ( + **/ + EFI_STATUS + IScsiBinToHex ( +- IN UINT8 *BinBuffer, +- IN UINT32 BinLength, +- IN OUT CHAR8 *HexStr, +- IN OUT UINT32 *HexLength ++ IN UINT8 *BinBuffer, ++ IN UINT32 BinLength, ++ IN OUT CHAR8 *HexStr, ++ IN OUT UINT32 *HexLength + ) + { +- UINT32 HexLengthMin; +- UINT32 HexLengthProvided; +- UINT32 Index; ++ UINT32 HexLengthMin; ++ UINT32 HexLengthProvided; ++ UINT32 Index; + + if ((HexStr == NULL) || (BinBuffer == NULL) || (BinLength == 0)) { + return EFI_INVALID_PARAMETER; +@@ -340,12 +337,13 @@ IScsiBinToHex ( + // Safely calculate: HexLengthMin := BinLength * 2 + 3. + // + if (RETURN_ERROR (SafeUint32Mult (BinLength, 2, &HexLengthMin)) || +- RETURN_ERROR (SafeUint32Add (HexLengthMin, 3, &HexLengthMin))) { ++ RETURN_ERROR (SafeUint32Add (HexLengthMin, 3, &HexLengthMin))) ++ { + return EFI_BAD_BUFFER_SIZE; + } + + HexLengthProvided = *HexLength; +- *HexLength = HexLengthMin; ++ *HexLength = HexLengthMin; + if (HexLengthProvided < HexLengthMin) { + return EFI_BUFFER_TOO_SMALL; + } +@@ -366,7 +364,6 @@ IScsiBinToHex ( + return EFI_SUCCESS; + } + +- + /** + Convert the hexadecimal string into a binary encoded buffer. + +@@ -385,9 +382,9 @@ IScsiBinToHex ( + **/ + EFI_STATUS + IScsiHexToBin ( +- IN OUT UINT8 *BinBuffer, +- IN OUT UINT32 *BinLength, +- IN CHAR8 *HexStr ++ IN OUT UINT8 *BinBuffer, ++ IN OUT UINT32 *BinLength, ++ IN CHAR8 *HexStr + ) + { + UINTN BinLengthMin; +@@ -411,9 +408,10 @@ IScsiHexToBin ( + // + // Reject an empty hex string; reject a stray nibble. + // +- if (Length == 0 || Length % 2 != 0) { ++ if ((Length == 0) || (Length % 2 != 0)) { + return EFI_INVALID_PARAMETER; + } ++ + // + // Check if the caller provides enough room for the decoded blob. + // +@@ -421,31 +419,33 @@ IScsiHexToBin ( + if (BinLengthMin > MAX_UINT32) { + return EFI_BAD_BUFFER_SIZE; + } ++ + BinLengthProvided = *BinLength; +- *BinLength = (UINT32)BinLengthMin; ++ *BinLength = (UINT32)BinLengthMin; + if (BinLengthProvided < BinLengthMin) { + return EFI_BUFFER_TOO_SMALL; + } + +- for (Index = 0; Index < Length; Index ++) { ++ for (Index = 0; Index < Length; Index++) { + TemStr[0] = HexStr[Index]; +- Digit = (UINT8) AsciiStrHexToUint64 (TemStr); +- if (Digit == 0 && TemStr[0] != '0') { ++ Digit = (UINT8)AsciiStrHexToUint64 (TemStr); ++ if ((Digit == 0) && (TemStr[0] != '0')) { + // + // Invalid Hex Char. + // + return EFI_INVALID_PARAMETER; + } ++ + if ((Index & 1) == 0) { +- BinBuffer [Index/2] = Digit; ++ BinBuffer[Index/2] = Digit; + } else { +- BinBuffer [Index/2] = (UINT8) ((BinBuffer [Index/2] << 4) + Digit); ++ BinBuffer[Index/2] = (UINT8)((BinBuffer[Index/2] << 4) + Digit); + } + } ++ + return EFI_SUCCESS; + } + +- + /** + Convert the decimal-constant string or hex-constant string into a numerical value. + +@@ -468,7 +468,6 @@ IScsiNetNtoi ( + return AsciiStrDecimalToUintn (Str); + } + +- + /** + Generate random numbers. + +@@ -486,12 +485,11 @@ IScsiGenRandom ( + + while (RandLength > 0) { + Random = NET_RANDOM (NetRandomInitSeed ()); +- *Rand++ = (UINT8) (Random); ++ *Rand++ = (UINT8)(Random); + RandLength--; + } + } + +- + /** + Check whether UNDI protocol supports IPv6. + +@@ -505,22 +503,22 @@ IScsiGenRandom ( + **/ + EFI_STATUS + IScsiCheckIpv6Support ( +- IN EFI_HANDLE ControllerHandle, +- IN EFI_HANDLE Image, +- OUT BOOLEAN *Ipv6Support ++ IN EFI_HANDLE ControllerHandle, ++ IN EFI_HANDLE Image, ++ OUT BOOLEAN *Ipv6Support + ) + { +- EFI_HANDLE Handle; +- EFI_ADAPTER_INFORMATION_PROTOCOL *Aip; +- EFI_STATUS Status; +- EFI_GUID *InfoTypesBuffer; +- UINTN InfoTypeBufferCount; +- UINTN TypeIndex; +- BOOLEAN Supported; +- VOID *InfoBlock; +- UINTN InfoBlockSize; +- +- EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL *Nii; ++ EFI_HANDLE Handle; ++ EFI_ADAPTER_INFORMATION_PROTOCOL *Aip; ++ EFI_STATUS Status; ++ EFI_GUID *InfoTypesBuffer; ++ UINTN InfoTypeBufferCount; ++ UINTN TypeIndex; ++ BOOLEAN Supported; ++ VOID *InfoBlock; ++ UINTN InfoBlockSize; ++ ++ EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL *Nii; + + ASSERT (Ipv6Support != NULL); + +@@ -530,7 +528,7 @@ IScsiCheckIpv6Support ( + Status = gBS->OpenProtocol ( + ControllerHandle, + &gEfiNetworkInterfaceIdentifierProtocolGuid_31, +- (VOID **) &Nii, ++ (VOID **)&Nii, + Image, + ControllerHandle, + EFI_OPEN_PROTOCOL_GET_PROTOCOL +@@ -552,16 +550,16 @@ IScsiCheckIpv6Support ( + Status = gBS->HandleProtocol ( + Handle, + &gEfiAdapterInformationProtocolGuid, +- (VOID *) &Aip ++ (VOID *)&Aip + ); +- if (EFI_ERROR (Status) || Aip == NULL) { ++ if (EFI_ERROR (Status) || (Aip == NULL)) { + return EFI_NOT_FOUND; + } + + InfoTypesBuffer = NULL; + InfoTypeBufferCount = 0; +- Status = Aip->GetSupportedTypes (Aip, &InfoTypesBuffer, &InfoTypeBufferCount); +- if (EFI_ERROR (Status) || InfoTypesBuffer == NULL) { ++ Status = Aip->GetSupportedTypes (Aip, &InfoTypesBuffer, &InfoTypeBufferCount); ++ if (EFI_ERROR (Status) || (InfoTypesBuffer == NULL)) { + FreePool (InfoTypesBuffer); + return EFI_NOT_FOUND; + } +@@ -584,13 +582,13 @@ IScsiCheckIpv6Support ( + // + InfoBlock = NULL; + InfoBlockSize = 0; +- Status = Aip->GetInformation (Aip, &gEfiAdapterInfoUndiIpv6SupportGuid, &InfoBlock, &InfoBlockSize); +- if (EFI_ERROR (Status) || InfoBlock == NULL) { ++ Status = Aip->GetInformation (Aip, &gEfiAdapterInfoUndiIpv6SupportGuid, &InfoBlock, &InfoBlockSize); ++ if (EFI_ERROR (Status) || (InfoBlock == NULL)) { + FreePool (InfoBlock); + return EFI_NOT_FOUND; + } + +- *Ipv6Support = ((EFI_ADAPTER_INFO_UNDI_IPV6_SUPPORT *) InfoBlock)->Ipv6Support; ++ *Ipv6Support = ((EFI_ADAPTER_INFO_UNDI_IPV6_SUPPORT *)InfoBlock)->Ipv6Support; + FreePool (InfoBlock); + + return EFI_SUCCESS; +@@ -613,12 +611,12 @@ IScsiAddNic ( + IN EFI_HANDLE Image + ) + { +- EFI_STATUS Status; +- ISCSI_NIC_INFO *NicInfo; +- LIST_ENTRY *Entry; +- EFI_MAC_ADDRESS MacAddr; +- UINTN HwAddressSize; +- UINT16 VlanId; ++ EFI_STATUS Status; ++ ISCSI_NIC_INFO *NicInfo; ++ LIST_ENTRY *Entry; ++ EFI_MAC_ADDRESS MacAddr; ++ UINTN HwAddressSize; ++ UINT16 VlanId; + + // + // Get MAC address of this network device. +@@ -638,9 +636,10 @@ IScsiAddNic ( + // + NET_LIST_FOR_EACH (Entry, &mPrivate->NicInfoList) { + NicInfo = NET_LIST_USER_STRUCT (Entry, ISCSI_NIC_INFO, Link); +- if (NicInfo->HwAddressSize == HwAddressSize && +- CompareMem (&NicInfo->PermanentAddress, MacAddr.Addr, HwAddressSize) == 0 && +- NicInfo->VlanId == VlanId) { ++ if ((NicInfo->HwAddressSize == HwAddressSize) && ++ (CompareMem (&NicInfo->PermanentAddress, MacAddr.Addr, HwAddressSize) == 0) && ++ (NicInfo->VlanId == VlanId)) ++ { + mPrivate->CurrentNic = NicInfo->NicIndex; + + // +@@ -672,10 +671,10 @@ IScsiAddNic ( + } + + CopyMem (&NicInfo->PermanentAddress, MacAddr.Addr, HwAddressSize); +- NicInfo->HwAddressSize = (UINT32) HwAddressSize; +- NicInfo->VlanId = VlanId; +- NicInfo->NicIndex = (UINT8) (mPrivate->MaxNic + 1); +- mPrivate->MaxNic = NicInfo->NicIndex; ++ NicInfo->HwAddressSize = (UINT32)HwAddressSize; ++ NicInfo->VlanId = VlanId; ++ NicInfo->NicIndex = (UINT8)(mPrivate->MaxNic + 1); ++ mPrivate->MaxNic = NicInfo->NicIndex; + + // + // Set IPv6 available flag. +@@ -706,7 +705,6 @@ IScsiAddNic ( + return EFI_SUCCESS; + } + +- + /** + Delete the recorded NIC info from global structure. Also delete corresponding + attempts. +@@ -722,15 +720,15 @@ IScsiRemoveNic ( + IN EFI_HANDLE Controller + ) + { +- EFI_STATUS Status; +- ISCSI_NIC_INFO *NicInfo; +- LIST_ENTRY *Entry; +- LIST_ENTRY *NextEntry; +- ISCSI_ATTEMPT_CONFIG_NVDATA *AttemptConfigData; +- ISCSI_NIC_INFO *ThisNic; +- EFI_MAC_ADDRESS MacAddr; +- UINTN HwAddressSize; +- UINT16 VlanId; ++ EFI_STATUS Status; ++ ISCSI_NIC_INFO *NicInfo; ++ LIST_ENTRY *Entry; ++ LIST_ENTRY *NextEntry; ++ ISCSI_ATTEMPT_CONFIG_NVDATA *AttemptConfigData; ++ ISCSI_NIC_INFO *ThisNic; ++ EFI_MAC_ADDRESS MacAddr; ++ UINTN HwAddressSize; ++ UINT16 VlanId; + + // + // Get MAC address of this network device. +@@ -752,10 +750,10 @@ IScsiRemoveNic ( + + NET_LIST_FOR_EACH (Entry, &mPrivate->NicInfoList) { + NicInfo = NET_LIST_USER_STRUCT (Entry, ISCSI_NIC_INFO, Link); +- if (NicInfo->HwAddressSize == HwAddressSize && +- CompareMem (&NicInfo->PermanentAddress, MacAddr.Addr, HwAddressSize) == 0 && +- NicInfo->VlanId == VlanId) { +- ++ if ((NicInfo->HwAddressSize == HwAddressSize) && ++ (CompareMem (&NicInfo->PermanentAddress, MacAddr.Addr, HwAddressSize) == 0) && ++ (NicInfo->VlanId == VlanId)) ++ { + ThisNic = NicInfo; + break; + } +@@ -780,16 +778,15 @@ IScsiRemoveNic ( + RemoveEntryList (&AttemptConfigData->Link); + mPrivate->AttemptCount--; + +- if (AttemptConfigData->SessionConfigData.Enabled == ISCSI_ENABLED_FOR_MPIO && mPrivate->MpioCount > 0) { ++ if ((AttemptConfigData->SessionConfigData.Enabled == ISCSI_ENABLED_FOR_MPIO) && (mPrivate->MpioCount > 0)) { + if (--mPrivate->MpioCount == 0) { + mPrivate->EnableMpio = FALSE; + } + +- if (AttemptConfigData->AuthenticationType == ISCSI_AUTH_TYPE_KRB && mPrivate->Krb5MpioCount > 0) { ++ if ((AttemptConfigData->AuthenticationType == ISCSI_AUTH_TYPE_KRB) && (mPrivate->Krb5MpioCount > 0)) { + mPrivate->Krb5MpioCount--; + } +- +- } else if (AttemptConfigData->SessionConfigData.Enabled == ISCSI_ENABLED && mPrivate->SinglePathCount > 0) { ++ } else if ((AttemptConfigData->SessionConfigData.Enabled == ISCSI_ENABLED) && (mPrivate->SinglePathCount > 0)) { + mPrivate->SinglePathCount--; + + if (mPrivate->ValidSinglePathCount > 0) { +@@ -815,19 +812,19 @@ IScsiRemoveNic ( + **/ + EFI_STATUS + IScsiCreateAttempts ( +- IN UINTN AttemptNum +-) ++ IN UINTN AttemptNum ++ ) + { +- ISCSI_ATTEMPT_CONFIG_NVDATA *AttemptConfigData; +- ISCSI_SESSION_CONFIG_NVDATA *ConfigData; +- UINT8 *AttemptConfigOrder; +- UINTN AttemptConfigOrderSize; +- UINT8 *AttemptOrderTmp; +- UINTN TotalNumber; +- UINT8 Index; +- EFI_STATUS Status; ++ ISCSI_ATTEMPT_CONFIG_NVDATA *AttemptConfigData; ++ ISCSI_SESSION_CONFIG_NVDATA *ConfigData; ++ UINT8 *AttemptConfigOrder; ++ UINTN AttemptConfigOrderSize; ++ UINT8 *AttemptOrderTmp; ++ UINTN TotalNumber; ++ UINT8 Index; ++ EFI_STATUS Status; + +- for (Index = 1; Index <= AttemptNum; Index ++) { ++ for (Index = 1; Index <= AttemptNum; Index++) { + // + // Get the initialized attempt order. This is used to essure creating attempts by order. + // +@@ -841,6 +838,7 @@ IScsiCreateAttempts ( + Status = EFI_SUCCESS; + break; + } ++ + TotalNumber++; + + // +@@ -851,6 +849,7 @@ IScsiCreateAttempts ( + if (AttemptConfigOrder != NULL) { + FreePool (AttemptConfigOrder); + } ++ + return EFI_OUT_OF_RESOURCES; + } + +@@ -872,10 +871,14 @@ IScsiCreateAttempts ( + ); + FreePool (AttemptConfigOrder); + if (EFI_ERROR (Status)) { +- DEBUG ((DEBUG_ERROR, ++ DEBUG (( ++ DEBUG_ERROR, + "%a: Failed to set 'InitialAttemptOrder' with Guid (%g): " + "%r\n", +- __FUNCTION__, &gIScsiConfigGuid, Status)); ++ __FUNCTION__, ++ &gIScsiConfigGuid, ++ Status ++ )); + return Status; + } + +@@ -886,6 +889,7 @@ IScsiCreateAttempts ( + if (AttemptConfigData == NULL) { + return EFI_OUT_OF_RESOURCES; + } ++ + ConfigData = &AttemptConfigData->SessionConfigData; + ConfigData->TargetPort = ISCSI_WELL_KNOWN_PORT; + ConfigData->ConnectTimeout = CONNECT_DEFAULT_TIMEOUT; +@@ -903,9 +907,9 @@ IScsiCreateAttempts ( + // + UnicodeSPrint ( + mPrivate->PortString, +- (UINTN) ISCSI_NAME_IFR_MAX_SIZE, ++ (UINTN)ISCSI_NAME_IFR_MAX_SIZE, + L"Attempt %d", +- (UINTN) AttemptConfigData->AttemptConfigIndex ++ (UINTN)AttemptConfigData->AttemptConfigIndex + ); + UnicodeStrToAsciiStrS (mPrivate->PortString, AttemptConfigData->AttemptName, ATTEMPT_NAME_SIZE); + +@@ -918,10 +922,14 @@ IScsiCreateAttempts ( + ); + FreePool (AttemptConfigData); + if (EFI_ERROR (Status)) { +- DEBUG ((DEBUG_ERROR, +- "%a: Failed to set variable (mPrivate->PortString) with Guid (%g): " +- "%r\n", +- __FUNCTION__, &gEfiIScsiInitiatorNameProtocolGuid, Status)); ++ DEBUG (( ++ DEBUG_ERROR, ++ "%a: Failed to set variable (mPrivate->PortString) with Guid (%g): " ++ "%r\n", ++ __FUNCTION__, ++ &gEfiIScsiInitiatorNameProtocolGuid, ++ Status ++ )); + return Status; + } + } +@@ -941,18 +949,18 @@ IScsiCreateAttempts ( + **/ + EFI_STATUS + IScsiCreateKeywords ( +- IN UINTN KeywordNum +-) ++ IN UINTN KeywordNum ++ ) + { +- VOID *StartOpCodeHandle; +- EFI_IFR_GUID_LABEL *StartLabel; +- VOID *EndOpCodeHandle; +- EFI_IFR_GUID_LABEL *EndLabel; +- UINTN Index; +- EFI_STRING_ID StringToken; +- CHAR16 StringId[64]; +- CHAR16 KeywordId[32]; +- EFI_STATUS Status; ++ VOID *StartOpCodeHandle; ++ EFI_IFR_GUID_LABEL *StartLabel; ++ VOID *EndOpCodeHandle; ++ EFI_IFR_GUID_LABEL *EndLabel; ++ UINTN Index; ++ EFI_STRING_ID StringToken; ++ CHAR16 StringId[64]; ++ CHAR16 KeywordId[32]; ++ EFI_STATUS Status; + + Status = IScsiCreateOpCode ( + KEYWORD_ENTRY_LABEL, +@@ -965,7 +973,7 @@ IScsiCreateKeywords ( + return EFI_OUT_OF_RESOURCES; + } + +- for (Index = 1; Index <= KeywordNum; Index ++) { ++ for (Index = 1; Index <= KeywordNum; Index++) { + // + // Create iSCSIAttemptName Keyword. + // +@@ -980,9 +988,9 @@ IScsiCreateKeywords ( + HiiSetString (mCallbackInfo->RegisteredHandle, StringToken, KeywordId, "x-UEFI-ns"); + HiiCreateStringOpCode ( + StartOpCodeHandle, +- (EFI_QUESTION_ID) (ATTEMPT_ATTEMPT_NAME_QUESTION_ID + (Index - 1)), ++ (EFI_QUESTION_ID)(ATTEMPT_ATTEMPT_NAME_QUESTION_ID + (Index - 1)), + CONFIGURATION_VARSTORE_ID, +- (UINT16) (ATTEMPT_ATTEMPT_NAME_VAR_OFFSET + ATTEMPT_NAME_SIZE * (Index - 1) * sizeof (CHAR16)), ++ (UINT16)(ATTEMPT_ATTEMPT_NAME_VAR_OFFSET + ATTEMPT_NAME_SIZE * (Index - 1) * sizeof (CHAR16)), + StringToken, + StringToken, + EFI_IFR_FLAG_READ_ONLY, +@@ -1006,9 +1014,9 @@ IScsiCreateKeywords ( + HiiSetString (mCallbackInfo->RegisteredHandle, StringToken, KeywordId, "x-UEFI-ns"); + HiiCreateNumericOpCode ( + StartOpCodeHandle, +- (EFI_QUESTION_ID) (ATTEMPT_BOOTENABLE_QUESTION_ID + (Index - 1)), ++ (EFI_QUESTION_ID)(ATTEMPT_BOOTENABLE_QUESTION_ID + (Index - 1)), + CONFIGURATION_VARSTORE_ID, +- (UINT16) (ATTEMPT_BOOTENABLE_VAR_OFFSET + (Index - 1)), ++ (UINT16)(ATTEMPT_BOOTENABLE_VAR_OFFSET + (Index - 1)), + StringToken, + StringToken, + 0, +@@ -1033,9 +1041,9 @@ IScsiCreateKeywords ( + HiiSetString (mCallbackInfo->RegisteredHandle, StringToken, KeywordId, "x-UEFI-ns"); + HiiCreateNumericOpCode ( + StartOpCodeHandle, +- (EFI_QUESTION_ID) (ATTEMPT_ADDRESS_TYPE_QUESTION_ID + (Index - 1)), ++ (EFI_QUESTION_ID)(ATTEMPT_ADDRESS_TYPE_QUESTION_ID + (Index - 1)), + CONFIGURATION_VARSTORE_ID, +- (UINT16) (ATTEMPT_ADDRESS_TYPE_VAR_OFFSET + (Index - 1)), ++ (UINT16)(ATTEMPT_ADDRESS_TYPE_VAR_OFFSET + (Index - 1)), + StringToken, + StringToken, + 0, +@@ -1060,9 +1068,9 @@ IScsiCreateKeywords ( + HiiSetString (mCallbackInfo->RegisteredHandle, StringToken, KeywordId, "x-UEFI-ns"); + HiiCreateNumericOpCode ( + StartOpCodeHandle, +- (EFI_QUESTION_ID) (ATTEMPT_CONNECT_RETRY_QUESTION_ID + (Index - 1)), ++ (EFI_QUESTION_ID)(ATTEMPT_CONNECT_RETRY_QUESTION_ID + (Index - 1)), + CONFIGURATION_VARSTORE_ID, +- (UINT16) (ATTEMPT_CONNECT_RETRY_VAR_OFFSET + (Index - 1)), ++ (UINT16)(ATTEMPT_CONNECT_RETRY_VAR_OFFSET + (Index - 1)), + StringToken, + StringToken, + 0, +@@ -1087,9 +1095,9 @@ IScsiCreateKeywords ( + HiiSetString (mCallbackInfo->RegisteredHandle, StringToken, KeywordId, "x-UEFI-ns"); + HiiCreateNumericOpCode ( + StartOpCodeHandle, +- (EFI_QUESTION_ID) (ATTEMPT_CONNECT_TIMEOUT_QUESTION_ID + (Index - 1)), ++ (EFI_QUESTION_ID)(ATTEMPT_CONNECT_TIMEOUT_QUESTION_ID + (Index - 1)), + CONFIGURATION_VARSTORE_ID, +- (UINT16) (ATTEMPT_CONNECT_TIMEOUT_VAR_OFFSET + 2 * (Index - 1)), ++ (UINT16)(ATTEMPT_CONNECT_TIMEOUT_VAR_OFFSET + 2 * (Index - 1)), + StringToken, + StringToken, + 0, +@@ -1114,9 +1122,9 @@ IScsiCreateKeywords ( + HiiSetString (mCallbackInfo->RegisteredHandle, StringToken, KeywordId, "x-UEFI-ns"); + HiiCreateStringOpCode ( + StartOpCodeHandle, +- (EFI_QUESTION_ID) (ATTEMPT_ISID_QUESTION_ID + (Index - 1)), ++ (EFI_QUESTION_ID)(ATTEMPT_ISID_QUESTION_ID + (Index - 1)), + CONFIGURATION_VARSTORE_ID, +- (UINT16) (ATTEMPT_ISID_VAR_OFFSET + sizeof (KEYWORD_STR) * (Index - 1)), ++ (UINT16)(ATTEMPT_ISID_VAR_OFFSET + sizeof (KEYWORD_STR) * (Index - 1)), + StringToken, + STRING_TOKEN (STR_ISCSI_ISID_HELP), + 0, +@@ -1139,19 +1147,19 @@ IScsiCreateKeywords ( + UnicodeSPrint (KeywordId, sizeof (KeywordId), L"iSCSIInitiatorInfoViaDHCP:%d", Index); + HiiSetString (mCallbackInfo->RegisteredHandle, StringToken, KeywordId, "x-UEFI-ns"); + HiiCreateNumericOpCode ( +- StartOpCodeHandle, +- (EFI_QUESTION_ID) (ATTEMPT_INITIATOR_VIA_DHCP_QUESTION_ID + (Index - 1)), +- CONFIGURATION_VARSTORE_ID, +- (UINT16) (ATTEMPT_INITIATOR_VIA_DHCP_VAR_OFFSET + (Index - 1)), +- StringToken, +- StringToken, +- 0, +- 0, +- 0, +- 1, +- 0, +- NULL +- ); ++ StartOpCodeHandle, ++ (EFI_QUESTION_ID)(ATTEMPT_INITIATOR_VIA_DHCP_QUESTION_ID + (Index - 1)), ++ CONFIGURATION_VARSTORE_ID, ++ (UINT16)(ATTEMPT_INITIATOR_VIA_DHCP_VAR_OFFSET + (Index - 1)), ++ StringToken, ++ StringToken, ++ 0, ++ 0, ++ 0, ++ 1, ++ 0, ++ NULL ++ ); + + // + // Create iSCSIInitiatorIpAddress Keyword. +@@ -1167,9 +1175,9 @@ IScsiCreateKeywords ( + HiiSetString (mCallbackInfo->RegisteredHandle, StringToken, KeywordId, "x-UEFI-ns"); + HiiCreateStringOpCode ( + StartOpCodeHandle, +- (EFI_QUESTION_ID) (ATTEMPT_INITIATOR_IP_ADDRESS_QUESTION_ID + (Index - 1)), ++ (EFI_QUESTION_ID)(ATTEMPT_INITIATOR_IP_ADDRESS_QUESTION_ID + (Index - 1)), + CONFIGURATION_VARSTORE_ID, +- (UINT16) (ATTEMPT_INITIATOR_IP_ADDRESS_VAR_OFFSET + sizeof (KEYWORD_STR) * (Index - 1)), ++ (UINT16)(ATTEMPT_INITIATOR_IP_ADDRESS_VAR_OFFSET + sizeof (KEYWORD_STR) * (Index - 1)), + StringToken, + StringToken, + 0, +@@ -1193,9 +1201,9 @@ IScsiCreateKeywords ( + HiiSetString (mCallbackInfo->RegisteredHandle, StringToken, KeywordId, "x-UEFI-ns"); + HiiCreateStringOpCode ( + StartOpCodeHandle, +- (EFI_QUESTION_ID) (ATTEMPT_INITIATOR_NET_MASK_QUESTION_ID + (Index - 1)), ++ (EFI_QUESTION_ID)(ATTEMPT_INITIATOR_NET_MASK_QUESTION_ID + (Index - 1)), + CONFIGURATION_VARSTORE_ID, +- (UINT16) (ATTEMPT_INITIATOR_NET_MASK_VAR_OFFSET + sizeof (KEYWORD_STR) * (Index - 1)), ++ (UINT16)(ATTEMPT_INITIATOR_NET_MASK_VAR_OFFSET + sizeof (KEYWORD_STR) * (Index - 1)), + StringToken, + StringToken, + 0, +@@ -1219,9 +1227,9 @@ IScsiCreateKeywords ( + HiiSetString (mCallbackInfo->RegisteredHandle, StringToken, KeywordId, "x-UEFI-ns"); + HiiCreateStringOpCode ( + StartOpCodeHandle, +- (EFI_QUESTION_ID) (ATTEMPT_INITIATOR_GATE_WAY_QUESTION_ID + (Index - 1)), ++ (EFI_QUESTION_ID)(ATTEMPT_INITIATOR_GATE_WAY_QUESTION_ID + (Index - 1)), + CONFIGURATION_VARSTORE_ID, +- (UINT16) (ATTEMPT_INITIATOR_GATE_WAY_VAR_OFFSET + sizeof (KEYWORD_STR) * (Index - 1)), ++ (UINT16)(ATTEMPT_INITIATOR_GATE_WAY_VAR_OFFSET + sizeof (KEYWORD_STR) * (Index - 1)), + StringToken, + StringToken, + 0, +@@ -1244,19 +1252,19 @@ IScsiCreateKeywords ( + UnicodeSPrint (KeywordId, sizeof (KeywordId), L"iSCSITargetInfoViaDHCP:%d", Index); + HiiSetString (mCallbackInfo->RegisteredHandle, StringToken, KeywordId, "x-UEFI-ns"); + HiiCreateNumericOpCode ( +- StartOpCodeHandle, +- (EFI_QUESTION_ID) (ATTEMPT_TARGET_VIA_DHCP_QUESTION_ID + (Index - 1)), +- CONFIGURATION_VARSTORE_ID, +- (UINT16) (ATTEMPT_TARGET_VIA_DHCP_VAR_OFFSET + (Index - 1)), +- StringToken, +- StringToken, +- 0, +- 0, +- 0, +- 1, +- 0, +- NULL +- ); ++ StartOpCodeHandle, ++ (EFI_QUESTION_ID)(ATTEMPT_TARGET_VIA_DHCP_QUESTION_ID + (Index - 1)), ++ CONFIGURATION_VARSTORE_ID, ++ (UINT16)(ATTEMPT_TARGET_VIA_DHCP_VAR_OFFSET + (Index - 1)), ++ StringToken, ++ StringToken, ++ 0, ++ 0, ++ 0, ++ 1, ++ 0, ++ NULL ++ ); + + // + // Create iSCSITargetTcpPort Keyword. +@@ -1272,9 +1280,9 @@ IScsiCreateKeywords ( + HiiSetString (mCallbackInfo->RegisteredHandle, StringToken, KeywordId, "x-UEFI-ns"); + HiiCreateNumericOpCode ( + StartOpCodeHandle, +- (EFI_QUESTION_ID) (ATTEMPT_TARGET_TCP_PORT_QUESTION_ID + (Index - 1)), ++ (EFI_QUESTION_ID)(ATTEMPT_TARGET_TCP_PORT_QUESTION_ID + (Index - 1)), + CONFIGURATION_VARSTORE_ID, +- (UINT16) (ATTEMPT_TARGET_TCP_PORT_VAR_OFFSET + 2 * (Index - 1)), ++ (UINT16)(ATTEMPT_TARGET_TCP_PORT_VAR_OFFSET + 2 * (Index - 1)), + StringToken, + StringToken, + 0, +@@ -1299,9 +1307,9 @@ IScsiCreateKeywords ( + HiiSetString (mCallbackInfo->RegisteredHandle, StringToken, KeywordId, "x-UEFI-ns"); + HiiCreateStringOpCode ( + StartOpCodeHandle, +- (EFI_QUESTION_ID) (ATTEMPT_TARGET_NAME_QUESTION_ID + (Index - 1)), ++ (EFI_QUESTION_ID)(ATTEMPT_TARGET_NAME_QUESTION_ID + (Index - 1)), + CONFIGURATION_VARSTORE_ID, +- (UINT16) (ATTEMPT_TARGET_NAME_VAR_OFFSET + sizeof (KEYWORD_STR) * (Index - 1)), ++ (UINT16)(ATTEMPT_TARGET_NAME_VAR_OFFSET + sizeof (KEYWORD_STR) * (Index - 1)), + StringToken, + StringToken, + 0, +@@ -1325,9 +1333,9 @@ IScsiCreateKeywords ( + HiiSetString (mCallbackInfo->RegisteredHandle, StringToken, KeywordId, "x-UEFI-ns"); + HiiCreateStringOpCode ( + StartOpCodeHandle, +- (EFI_QUESTION_ID) (ATTEMPT_TARGET_IP_ADDRESS_QUESTION_ID + (Index - 1)), ++ (EFI_QUESTION_ID)(ATTEMPT_TARGET_IP_ADDRESS_QUESTION_ID + (Index - 1)), + CONFIGURATION_VARSTORE_ID, +- (UINT16) (ATTEMPT_TARGET_IP_ADDRESS_VAR_OFFSET + sizeof (KEYWORD_STR) * (Index - 1)), ++ (UINT16)(ATTEMPT_TARGET_IP_ADDRESS_VAR_OFFSET + sizeof (KEYWORD_STR) * (Index - 1)), + StringToken, + StringToken, + 0, +@@ -1351,9 +1359,9 @@ IScsiCreateKeywords ( + HiiSetString (mCallbackInfo->RegisteredHandle, StringToken, KeywordId, "x-UEFI-ns"); + HiiCreateStringOpCode ( + StartOpCodeHandle, +- (EFI_QUESTION_ID) (ATTEMPT_LUN_QUESTION_ID + (Index - 1)), ++ (EFI_QUESTION_ID)(ATTEMPT_LUN_QUESTION_ID + (Index - 1)), + CONFIGURATION_VARSTORE_ID, +- (UINT16) (ATTEMPT_LUN_VAR_OFFSET + sizeof (KEYWORD_STR) * (Index - 1)), ++ (UINT16)(ATTEMPT_LUN_VAR_OFFSET + sizeof (KEYWORD_STR) * (Index - 1)), + StringToken, + StringToken, + 0, +@@ -1376,19 +1384,19 @@ IScsiCreateKeywords ( + UnicodeSPrint (KeywordId, sizeof (KeywordId), L"iSCSIAuthenticationMethod:%d", Index); + HiiSetString (mCallbackInfo->RegisteredHandle, StringToken, KeywordId, "x-UEFI-ns"); + HiiCreateNumericOpCode ( +- StartOpCodeHandle, +- (EFI_QUESTION_ID) (ATTEMPT_AUTHENTICATION_METHOD_QUESTION_ID + (Index - 1)), +- CONFIGURATION_VARSTORE_ID, +- (UINT16) (ATTEMPT_AUTHENTICATION_METHOD_VAR_OFFSET + (Index - 1)), +- StringToken, +- StringToken, +- 0, +- 0, +- 0, +- 1, +- 0, +- NULL +- ); ++ StartOpCodeHandle, ++ (EFI_QUESTION_ID)(ATTEMPT_AUTHENTICATION_METHOD_QUESTION_ID + (Index - 1)), ++ CONFIGURATION_VARSTORE_ID, ++ (UINT16)(ATTEMPT_AUTHENTICATION_METHOD_VAR_OFFSET + (Index - 1)), ++ StringToken, ++ StringToken, ++ 0, ++ 0, ++ 0, ++ 1, ++ 0, ++ NULL ++ ); + + // + // Create iSCSIChapType Keyword. +@@ -1403,19 +1411,19 @@ IScsiCreateKeywords ( + UnicodeSPrint (KeywordId, sizeof (KeywordId), L"iSCSIChapType:%d", Index); + HiiSetString (mCallbackInfo->RegisteredHandle, StringToken, KeywordId, "x-UEFI-ns"); + HiiCreateNumericOpCode ( +- StartOpCodeHandle, +- (EFI_QUESTION_ID) (ATTEMPT_CHARTYPE_QUESTION_ID + (Index - 1)), +- CONFIGURATION_VARSTORE_ID, +- (UINT16) (ATTEMPT_CHARTYPE_VAR_OFFSET + (Index - 1)), +- StringToken, +- StringToken, +- 0, +- 0, +- 0, +- 1, +- 0, +- NULL +- ); ++ StartOpCodeHandle, ++ (EFI_QUESTION_ID)(ATTEMPT_CHARTYPE_QUESTION_ID + (Index - 1)), ++ CONFIGURATION_VARSTORE_ID, ++ (UINT16)(ATTEMPT_CHARTYPE_VAR_OFFSET + (Index - 1)), ++ StringToken, ++ StringToken, ++ 0, ++ 0, ++ 0, ++ 1, ++ 0, ++ NULL ++ ); + + // + // Create iSCSIChapUsername Keyword. +@@ -1431,9 +1439,9 @@ IScsiCreateKeywords ( + HiiSetString (mCallbackInfo->RegisteredHandle, StringToken, KeywordId, "x-UEFI-ns"); + HiiCreateStringOpCode ( + StartOpCodeHandle, +- (EFI_QUESTION_ID) (ATTEMPT_CHAR_USER_NAME_QUESTION_ID + (Index - 1)), ++ (EFI_QUESTION_ID)(ATTEMPT_CHAR_USER_NAME_QUESTION_ID + (Index - 1)), + CONFIGURATION_VARSTORE_ID, +- (UINT16) (ATTEMPT_CHAR_USER_NAME_VAR_OFFSET + sizeof (KEYWORD_STR) * (Index - 1)), ++ (UINT16)(ATTEMPT_CHAR_USER_NAME_VAR_OFFSET + sizeof (KEYWORD_STR) * (Index - 1)), + StringToken, + StringToken, + 0, +@@ -1457,9 +1465,9 @@ IScsiCreateKeywords ( + HiiSetString (mCallbackInfo->RegisteredHandle, StringToken, KeywordId, "x-UEFI-ns"); + HiiCreateStringOpCode ( + StartOpCodeHandle, +- (EFI_QUESTION_ID) (ATTEMPT_CHAR_SECRET_QUESTION_ID + (Index - 1)), ++ (EFI_QUESTION_ID)(ATTEMPT_CHAR_SECRET_QUESTION_ID + (Index - 1)), + CONFIGURATION_VARSTORE_ID, +- (UINT16) (ATTEMPT_CHAR_SECRET_VAR_OFFSET + sizeof (KEYWORD_STR) * (Index - 1)), ++ (UINT16)(ATTEMPT_CHAR_SECRET_VAR_OFFSET + sizeof (KEYWORD_STR) * (Index - 1)), + StringToken, + StringToken, + 0, +@@ -1483,9 +1491,9 @@ IScsiCreateKeywords ( + HiiSetString (mCallbackInfo->RegisteredHandle, StringToken, KeywordId, "x-UEFI-ns"); + HiiCreateStringOpCode ( + StartOpCodeHandle, +- (EFI_QUESTION_ID) (ATTEMPT_CHAR_REVERSE_USER_NAME_QUESTION_ID + (Index - 1)), ++ (EFI_QUESTION_ID)(ATTEMPT_CHAR_REVERSE_USER_NAME_QUESTION_ID + (Index - 1)), + CONFIGURATION_VARSTORE_ID, +- (UINT16) (ATTEMPT_CHAR_REVERSE_USER_NAME_VAR_OFFSET + sizeof (KEYWORD_STR) * (Index - 1)), ++ (UINT16)(ATTEMPT_CHAR_REVERSE_USER_NAME_VAR_OFFSET + sizeof (KEYWORD_STR) * (Index - 1)), + StringToken, + StringToken, + 0, +@@ -1509,9 +1517,9 @@ IScsiCreateKeywords ( + HiiSetString (mCallbackInfo->RegisteredHandle, StringToken, KeywordId, "x-UEFI-ns"); + HiiCreateStringOpCode ( + StartOpCodeHandle, +- (EFI_QUESTION_ID) (ATTEMPT_CHAR_REVERSE_SECRET_QUESTION_ID + (Index - 1)), ++ (EFI_QUESTION_ID)(ATTEMPT_CHAR_REVERSE_SECRET_QUESTION_ID + (Index - 1)), + CONFIGURATION_VARSTORE_ID, +- (UINT16) (ATTEMPT_CHAR_REVERSE_SECRET_VAR_OFFSET + sizeof (KEYWORD_STR) * (Index - 1)), ++ (UINT16)(ATTEMPT_CHAR_REVERSE_SECRET_VAR_OFFSET + sizeof (KEYWORD_STR) * (Index - 1)), + StringToken, + StringToken, + 0, +@@ -1544,12 +1552,12 @@ IScsiCreateKeywords ( + VOID + IScsiCleanAttemptVariable ( + IN VOID +-) ++ ) + { +- ISCSI_ATTEMPT_CONFIG_NVDATA *AttemptConfigData; +- UINT8 *AttemptConfigOrder; +- UINTN AttemptConfigOrderSize; +- UINTN Index; ++ ISCSI_ATTEMPT_CONFIG_NVDATA *AttemptConfigData; ++ UINT8 *AttemptConfigOrder; ++ UINTN AttemptConfigOrderSize; ++ UINTN Index; + + // + // Get the initialized attempt order. +@@ -1559,14 +1567,14 @@ IScsiCleanAttemptVariable ( + &gIScsiConfigGuid, + &AttemptConfigOrderSize + ); +- if (AttemptConfigOrder == NULL || AttemptConfigOrderSize == 0) { ++ if ((AttemptConfigOrder == NULL) || (AttemptConfigOrderSize == 0)) { + return; + } + + for (Index = 1; Index < AttemptConfigOrderSize / sizeof (UINT8); Index++) { + UnicodeSPrint ( + mPrivate->PortString, +- (UINTN) ISCSI_NAME_IFR_MAX_SIZE, ++ (UINTN)ISCSI_NAME_IFR_MAX_SIZE, + L"Attempt %d", + Index + ); +@@ -1574,7 +1582,7 @@ IScsiCleanAttemptVariable ( + GetVariable2 ( + mPrivate->PortString, + &gEfiIScsiInitiatorNameProtocolGuid, +- (VOID**)&AttemptConfigData, ++ (VOID **)&AttemptConfigData, + NULL + ); + +@@ -1588,6 +1596,7 @@ IScsiCleanAttemptVariable ( + ); + } + } ++ + return; + } + +@@ -1601,11 +1610,11 @@ IScsiCleanAttemptVariable ( + **/ + ISCSI_NIC_INFO * + IScsiGetNicInfoByIndex ( +- IN UINT8 NicIndex ++ IN UINT8 NicIndex + ) + { +- LIST_ENTRY *Entry; +- ISCSI_NIC_INFO *NicInfo; ++ LIST_ENTRY *Entry; ++ ISCSI_NIC_INFO *NicInfo; + + NET_LIST_FOR_EACH (Entry, &mPrivate->NicInfoList) { + NicInfo = NET_LIST_USER_STRUCT (Entry, ISCSI_NIC_INFO, Link); +@@ -1617,7 +1626,6 @@ IScsiGetNicInfoByIndex ( + return NULL; + } + +- + /** + Get the NIC's PCI location and return it according to the composited + format defined in iSCSI Boot Firmware Table. +@@ -1647,7 +1655,7 @@ IScsiGetNICPciLocation ( + Status = gBS->HandleProtocol ( + Controller, + &gEfiDevicePathProtocolGuid, +- (VOID **) &DevicePath ++ (VOID **)&DevicePath + ); + if (EFI_ERROR (Status)) { + return 0; +@@ -1662,7 +1670,7 @@ IScsiGetNICPciLocation ( + return 0; + } + +- Status = gBS->HandleProtocol (PciIoHandle, &gEfiPciIoProtocolGuid, (VOID **) &PciIo); ++ Status = gBS->HandleProtocol (PciIoHandle, &gEfiPciIoProtocolGuid, (VOID **)&PciIo); + if (EFI_ERROR (Status)) { + return 0; + } +@@ -1672,10 +1680,9 @@ IScsiGetNICPciLocation ( + return 0; + } + +- return (UINT16) ((*Bus << 8) | (*Device << 3) | *Function); ++ return (UINT16)((*Bus << 8) | (*Device << 3) | *Function); + } + +- + /** + Read the EFI variable (VendorGuid/Name) and return a dynamically allocated + buffer, and the size of the buffer. If failure, return NULL. +@@ -1691,9 +1698,9 @@ IScsiGetNICPciLocation ( + **/ + VOID * + IScsiGetVariableAndSize ( +- IN CHAR16 *Name, +- IN EFI_GUID *VendorGuid, +- OUT UINTN *VariableSize ++ IN CHAR16 *Name, ++ IN EFI_GUID *VendorGuid, ++ OUT UINTN *VariableSize + ) + { + EFI_STATUS Status; +@@ -1705,8 +1712,8 @@ IScsiGetVariableAndSize ( + // + // Pass in a zero size buffer to find the required buffer size. + // +- BufferSize = 0; +- Status = gRT->GetVariable (Name, VendorGuid, NULL, &BufferSize, Buffer); ++ BufferSize = 0; ++ Status = gRT->GetVariable (Name, VendorGuid, NULL, &BufferSize, Buffer); + if (Status == EFI_BUFFER_TOO_SMALL) { + // + // Allocate the buffer to return +@@ -1715,6 +1722,7 @@ IScsiGetVariableAndSize ( + if (Buffer == NULL) { + return NULL; + } ++ + // + // Read variable into the allocated buffer. + // +@@ -1728,7 +1736,6 @@ IScsiGetVariableAndSize ( + return Buffer; + } + +- + /** + Create the iSCSI driver data. + +@@ -1745,8 +1752,8 @@ IScsiCreateDriverData ( + IN EFI_HANDLE Controller + ) + { +- ISCSI_DRIVER_DATA *Private; +- EFI_STATUS Status; ++ ISCSI_DRIVER_DATA *Private; ++ EFI_STATUS Status; + + Private = AllocateZeroPool (sizeof (ISCSI_DRIVER_DATA)); + if (Private == NULL) { +@@ -1776,7 +1783,7 @@ IScsiCreateDriverData ( + } + + Private->ExtScsiPassThruHandle = NULL; +- CopyMem(&Private->IScsiExtScsiPassThru, &gIScsiExtScsiPassThruProtocolTemplate, sizeof(EFI_EXT_SCSI_PASS_THRU_PROTOCOL)); ++ CopyMem (&Private->IScsiExtScsiPassThru, &gIScsiExtScsiPassThruProtocolTemplate, sizeof (EFI_EXT_SCSI_PASS_THRU_PROTOCOL)); + + // + // 0 is designated to the TargetId, so use another value for the AdapterId. +@@ -1789,7 +1796,6 @@ IScsiCreateDriverData ( + return Private; + } + +- + /** + Clean the iSCSI driver data. + +@@ -1804,7 +1810,7 @@ IScsiCleanDriverData ( + IN ISCSI_DRIVER_DATA *Private + ) + { +- EFI_STATUS Status; ++ EFI_STATUS Status; + + Status = EFI_SUCCESS; + +@@ -1859,24 +1865,24 @@ IScsiDhcpIsConfigured ( + IN UINT8 IpVersion + ) + { +- ISCSI_ATTEMPT_CONFIG_NVDATA *AttemptTmp; +- UINT8 *AttemptConfigOrder; +- UINTN AttemptConfigOrderSize; +- UINTN Index; +- EFI_STATUS Status; +- EFI_MAC_ADDRESS MacAddr; +- UINTN HwAddressSize; +- UINT16 VlanId; +- CHAR16 MacString[ISCSI_MAX_MAC_STRING_LEN]; +- CHAR16 AttemptMacString[ISCSI_MAX_MAC_STRING_LEN]; +- CHAR16 AttemptName[ISCSI_NAME_IFR_MAX_SIZE]; ++ ISCSI_ATTEMPT_CONFIG_NVDATA *AttemptTmp; ++ UINT8 *AttemptConfigOrder; ++ UINTN AttemptConfigOrderSize; ++ UINTN Index; ++ EFI_STATUS Status; ++ EFI_MAC_ADDRESS MacAddr; ++ UINTN HwAddressSize; ++ UINT16 VlanId; ++ CHAR16 MacString[ISCSI_MAX_MAC_STRING_LEN]; ++ CHAR16 AttemptMacString[ISCSI_MAX_MAC_STRING_LEN]; ++ CHAR16 AttemptName[ISCSI_NAME_IFR_MAX_SIZE]; + + AttemptConfigOrder = IScsiGetVariableAndSize ( + L"AttemptOrder", + &gIScsiConfigGuid, + &AttemptConfigOrderSize + ); +- if (AttemptConfigOrder == NULL || AttemptConfigOrderSize == 0) { ++ if ((AttemptConfigOrder == NULL) || (AttemptConfigOrderSize == 0)) { + return FALSE; + } + +@@ -1884,29 +1890,30 @@ IScsiDhcpIsConfigured ( + // Get MAC address of this network device. + // + Status = NetLibGetMacAddress (Controller, &MacAddr, &HwAddressSize); +- if(EFI_ERROR (Status)) { ++ if (EFI_ERROR (Status)) { + return FALSE; + } ++ + // + // Get VLAN ID of this network device. + // + VlanId = NetLibGetVlanId (Controller); +- IScsiMacAddrToStr (&MacAddr, (UINT32) HwAddressSize, VlanId, MacString); ++ IScsiMacAddrToStr (&MacAddr, (UINT32)HwAddressSize, VlanId, MacString); + + for (Index = 0; Index < AttemptConfigOrderSize / sizeof (UINT8); Index++) { + UnicodeSPrint ( + AttemptName, +- (UINTN) 128, ++ (UINTN)128, + L"Attempt %d", +- (UINTN) AttemptConfigOrder[Index] ++ (UINTN)AttemptConfigOrder[Index] + ); + Status = GetVariable2 ( + AttemptName, + &gEfiIScsiInitiatorNameProtocolGuid, +- (VOID**)&AttemptTmp, ++ (VOID **)&AttemptTmp, + NULL + ); +- if(AttemptTmp == NULL || EFI_ERROR (Status)) { ++ if ((AttemptTmp == NULL) || EFI_ERROR (Status)) { + continue; + } + +@@ -1917,21 +1924,23 @@ IScsiDhcpIsConfigured ( + continue; + } + +- if (AttemptTmp->SessionConfigData.IpMode != IP_MODE_AUTOCONFIG && +- AttemptTmp->SessionConfigData.IpMode != ((IpVersion == IP_VERSION_4) ? IP_MODE_IP4 : IP_MODE_IP6)) { ++ if ((AttemptTmp->SessionConfigData.IpMode != IP_MODE_AUTOCONFIG) && ++ (AttemptTmp->SessionConfigData.IpMode != ((IpVersion == IP_VERSION_4) ? IP_MODE_IP4 : IP_MODE_IP6))) ++ { + FreePool (AttemptTmp); + continue; + } + + AsciiStrToUnicodeStrS (AttemptTmp->MacString, AttemptMacString, sizeof (AttemptMacString) / sizeof (AttemptMacString[0])); + +- if (AttemptTmp->Actived == ISCSI_ACTIVE_DISABLED || StrCmp (MacString, AttemptMacString)) { ++ if ((AttemptTmp->Actived == ISCSI_ACTIVE_DISABLED) || StrCmp (MacString, AttemptMacString)) { + continue; + } + +- if(AttemptTmp->SessionConfigData.IpMode == IP_MODE_AUTOCONFIG || +- AttemptTmp->SessionConfigData.InitiatorInfoFromDhcp == TRUE || +- AttemptTmp->SessionConfigData.TargetInfoFromDhcp == TRUE) { ++ if ((AttemptTmp->SessionConfigData.IpMode == IP_MODE_AUTOCONFIG) || ++ (AttemptTmp->SessionConfigData.InitiatorInfoFromDhcp == TRUE) || ++ (AttemptTmp->SessionConfigData.TargetInfoFromDhcp == TRUE)) ++ { + FreePool (AttemptTmp); + FreePool (AttemptConfigOrder); + return TRUE; +@@ -1958,24 +1967,24 @@ IScsiDnsIsConfigured ( + IN EFI_HANDLE Controller + ) + { +- ISCSI_ATTEMPT_CONFIG_NVDATA *AttemptTmp; +- UINT8 *AttemptConfigOrder; +- UINTN AttemptConfigOrderSize; +- UINTN Index; +- EFI_STATUS Status; +- EFI_MAC_ADDRESS MacAddr; +- UINTN HwAddressSize; +- UINT16 VlanId; +- CHAR16 AttemptMacString[ISCSI_MAX_MAC_STRING_LEN]; +- CHAR16 MacString[ISCSI_MAX_MAC_STRING_LEN]; +- CHAR16 AttemptName[ISCSI_NAME_IFR_MAX_SIZE]; ++ ISCSI_ATTEMPT_CONFIG_NVDATA *AttemptTmp; ++ UINT8 *AttemptConfigOrder; ++ UINTN AttemptConfigOrderSize; ++ UINTN Index; ++ EFI_STATUS Status; ++ EFI_MAC_ADDRESS MacAddr; ++ UINTN HwAddressSize; ++ UINT16 VlanId; ++ CHAR16 AttemptMacString[ISCSI_MAX_MAC_STRING_LEN]; ++ CHAR16 MacString[ISCSI_MAX_MAC_STRING_LEN]; ++ CHAR16 AttemptName[ISCSI_NAME_IFR_MAX_SIZE]; + + AttemptConfigOrder = IScsiGetVariableAndSize ( + L"AttemptOrder", + &gIScsiConfigGuid, + &AttemptConfigOrderSize + ); +- if (AttemptConfigOrder == NULL || AttemptConfigOrderSize == 0) { ++ if ((AttemptConfigOrder == NULL) || (AttemptConfigOrderSize == 0)) { + return FALSE; + } + +@@ -1983,30 +1992,31 @@ IScsiDnsIsConfigured ( + // Get MAC address of this network device. + // + Status = NetLibGetMacAddress (Controller, &MacAddr, &HwAddressSize); +- if(EFI_ERROR (Status)) { ++ if (EFI_ERROR (Status)) { + return FALSE; + } ++ + // + // Get VLAN ID of this network device. + // + VlanId = NetLibGetVlanId (Controller); +- IScsiMacAddrToStr (&MacAddr, (UINT32) HwAddressSize, VlanId, MacString); ++ IScsiMacAddrToStr (&MacAddr, (UINT32)HwAddressSize, VlanId, MacString); + + for (Index = 0; Index < AttemptConfigOrderSize / sizeof (UINT8); Index++) { + UnicodeSPrint ( + AttemptName, +- (UINTN) 128, ++ (UINTN)128, + L"Attempt %d", +- (UINTN) AttemptConfigOrder[Index] ++ (UINTN)AttemptConfigOrder[Index] + ); + + Status = GetVariable2 ( + AttemptName, + &gEfiIScsiInitiatorNameProtocolGuid, +- (VOID**)&AttemptTmp, ++ (VOID **)&AttemptTmp, + NULL + ); +- if(AttemptTmp == NULL || EFI_ERROR (Status)) { ++ if ((AttemptTmp == NULL) || EFI_ERROR (Status)) { + continue; + } + +@@ -2014,7 +2024,7 @@ IScsiDnsIsConfigured ( + + AsciiStrToUnicodeStrS (AttemptTmp->MacString, AttemptMacString, sizeof (AttemptMacString) / sizeof (AttemptMacString[0])); + +- if (AttemptTmp->SessionConfigData.Enabled == ISCSI_DISABLED || StrCmp (MacString, AttemptMacString)) { ++ if ((AttemptTmp->SessionConfigData.Enabled == ISCSI_DISABLED) || StrCmp (MacString, AttemptMacString)) { + FreePool (AttemptTmp); + continue; + } +@@ -2027,12 +2037,10 @@ IScsiDnsIsConfigured ( + FreePool (AttemptTmp); + continue; + } +- + } + + FreePool (AttemptConfigOrder); + return FALSE; +- + } + + /** +@@ -2050,17 +2058,17 @@ IScsiGetConfigData ( + IN ISCSI_DRIVER_DATA *Private + ) + { +- EFI_STATUS Status; +- CHAR16 MacString[ISCSI_MAX_MAC_STRING_LEN]; +- CHAR16 AttemptMacString[ISCSI_MAX_MAC_STRING_LEN]; +- UINTN Index; +- ISCSI_NIC_INFO *NicInfo; +- ISCSI_ATTEMPT_CONFIG_NVDATA *AttemptConfigData; +- ISCSI_ATTEMPT_CONFIG_NVDATA *AttemptTmp; +- UINT8 *AttemptConfigOrder; +- UINTN AttemptConfigOrderSize; +- CHAR16 IScsiMode[64]; +- CHAR16 IpMode[64]; ++ EFI_STATUS Status; ++ CHAR16 MacString[ISCSI_MAX_MAC_STRING_LEN]; ++ CHAR16 AttemptMacString[ISCSI_MAX_MAC_STRING_LEN]; ++ UINTN Index; ++ ISCSI_NIC_INFO *NicInfo; ++ ISCSI_ATTEMPT_CONFIG_NVDATA *AttemptConfigData; ++ ISCSI_ATTEMPT_CONFIG_NVDATA *AttemptTmp; ++ UINT8 *AttemptConfigOrder; ++ UINTN AttemptConfigOrderSize; ++ CHAR16 IScsiMode[64]; ++ CHAR16 IpMode[64]; + + // + // There should be at least one attempt configured. +@@ -2070,19 +2078,19 @@ IScsiGetConfigData ( + &gIScsiConfigGuid, + &AttemptConfigOrderSize + ); +- if (AttemptConfigOrder == NULL || AttemptConfigOrderSize == 0) { ++ if ((AttemptConfigOrder == NULL) || (AttemptConfigOrderSize == 0)) { + return EFI_NOT_FOUND; + } + + // + // Get the iSCSI Initiator Name. + // +- mPrivate->InitiatorNameLength = ISCSI_NAME_MAX_SIZE; +- Status = gIScsiInitiatorName.Get ( +- &gIScsiInitiatorName, +- &mPrivate->InitiatorNameLength, +- mPrivate->InitiatorName +- ); ++ mPrivate->InitiatorNameLength = ISCSI_NAME_MAX_SIZE; ++ Status = gIScsiInitiatorName.Get ( ++ &gIScsiInitiatorName, ++ &mPrivate->InitiatorNameLength, ++ mPrivate->InitiatorName ++ ); + if (EFI_ERROR (Status)) { + return Status; + } +@@ -2091,27 +2099,29 @@ IScsiGetConfigData ( + // Get the normal configuration. + // + for (Index = 0; Index < AttemptConfigOrderSize / sizeof (UINT8); Index++) { +- + // + // Check whether the attempt exists in AttemptConfig. + // + AttemptTmp = IScsiConfigGetAttemptByConfigIndex (AttemptConfigOrder[Index]); +- if (AttemptTmp != NULL && AttemptTmp->SessionConfigData.Enabled == ISCSI_DISABLED) { ++ if ((AttemptTmp != NULL) && (AttemptTmp->SessionConfigData.Enabled == ISCSI_DISABLED)) { + continue; +- } else if (AttemptTmp != NULL && AttemptTmp->SessionConfigData.Enabled != ISCSI_DISABLED) { ++ } else if ((AttemptTmp != NULL) && (AttemptTmp->SessionConfigData.Enabled != ISCSI_DISABLED)) { + // + // Check the autoconfig path to see whether it should be retried. + // +- if (AttemptTmp->SessionConfigData.IpMode == IP_MODE_AUTOCONFIG && +- !AttemptTmp->AutoConfigureSuccess) { ++ if ((AttemptTmp->SessionConfigData.IpMode == IP_MODE_AUTOCONFIG) && ++ !AttemptTmp->AutoConfigureSuccess) ++ { + if (mPrivate->Ipv6Flag && +- AttemptTmp->AutoConfigureMode == IP_MODE_AUTOCONFIG_IP6) { ++ (AttemptTmp->AutoConfigureMode == IP_MODE_AUTOCONFIG_IP6)) ++ { + // + // Autoconfigure for IP6 already attempted but failed. Do not try again. + // + continue; + } else if (!mPrivate->Ipv6Flag && +- AttemptTmp->AutoConfigureMode == IP_MODE_AUTOCONFIG_IP4) { ++ (AttemptTmp->AutoConfigureMode == IP_MODE_AUTOCONFIG_IP4)) ++ { + // + // Autoconfigure for IP4 already attempted but failed. Do not try again. + // +@@ -2121,7 +2131,7 @@ IScsiGetConfigData ( + // Try another approach for this autoconfigure path. + // + AttemptTmp->AutoConfigureMode = +- (UINT8) (mPrivate->Ipv6Flag ? IP_MODE_AUTOCONFIG_IP6 : IP_MODE_AUTOCONFIG_IP4); ++ (UINT8)(mPrivate->Ipv6Flag ? IP_MODE_AUTOCONFIG_IP6 : IP_MODE_AUTOCONFIG_IP4); + AttemptTmp->SessionConfigData.InitiatorInfoFromDhcp = TRUE; + AttemptTmp->SessionConfigData.TargetInfoFromDhcp = TRUE; + AttemptTmp->DhcpSuccess = FALSE; +@@ -2146,9 +2156,9 @@ IScsiGetConfigData ( + // + UnicodeSPrint ( + mPrivate->PortString, +- (UINTN) ISCSI_NAME_IFR_MAX_SIZE, ++ (UINTN)ISCSI_NAME_IFR_MAX_SIZE, + L"Attempt %d", +- (UINTN) AttemptTmp->AttemptConfigIndex ++ (UINTN)AttemptTmp->AttemptConfigIndex + ); + + gRT->SetVariable ( +@@ -2163,7 +2173,8 @@ IScsiGetConfigData ( + } + } else if (AttemptTmp->SessionConfigData.InitiatorInfoFromDhcp && + !AttemptTmp->ValidPath && +- AttemptTmp->NicIndex == mPrivate->CurrentNic) { ++ (AttemptTmp->NicIndex == mPrivate->CurrentNic)) ++ { + // + // If the attempt associates with the current NIC, we can + // get DHCP information for already added, but failed, attempt. +@@ -2186,9 +2197,9 @@ IScsiGetConfigData ( + // + UnicodeSPrint ( + mPrivate->PortString, +- (UINTN) ISCSI_NAME_IFR_MAX_SIZE, ++ (UINTN)ISCSI_NAME_IFR_MAX_SIZE, + L"Attempt %d", +- (UINTN) AttemptTmp->AttemptConfigIndex ++ (UINTN)AttemptTmp->AttemptConfigIndex + ); + + gRT->SetVariable ( +@@ -2200,7 +2211,6 @@ IScsiGetConfigData ( + ); + + continue; +- + } else { + continue; + } +@@ -2215,21 +2225,22 @@ IScsiGetConfigData ( + IScsiMacAddrToStr (&NicInfo->PermanentAddress, NicInfo->HwAddressSize, NicInfo->VlanId, MacString); + UnicodeSPrint ( + mPrivate->PortString, +- (UINTN) ISCSI_NAME_IFR_MAX_SIZE, ++ (UINTN)ISCSI_NAME_IFR_MAX_SIZE, + L"Attempt %d", +- (UINTN) AttemptConfigOrder[Index] ++ (UINTN)AttemptConfigOrder[Index] + ); + + GetVariable2 ( + mPrivate->PortString, + &gEfiIScsiInitiatorNameProtocolGuid, +- (VOID**)&AttemptConfigData, ++ (VOID **)&AttemptConfigData, + NULL + ); + AsciiStrToUnicodeStrS (AttemptConfigData->MacString, AttemptMacString, sizeof (AttemptMacString) / sizeof (AttemptMacString[0])); + +- if (AttemptConfigData == NULL || AttemptConfigData->Actived == ISCSI_ACTIVE_DISABLED || +- StrCmp (MacString, AttemptMacString)) { ++ if ((AttemptConfigData == NULL) || (AttemptConfigData->Actived == ISCSI_ACTIVE_DISABLED) || ++ StrCmp (MacString, AttemptMacString)) ++ { + continue; + } + +@@ -2237,7 +2248,7 @@ IScsiGetConfigData ( + + AttemptConfigData->NicIndex = NicInfo->NicIndex; + AttemptConfigData->DhcpSuccess = FALSE; +- AttemptConfigData->ValidiBFTPath = (BOOLEAN) (mPrivate->EnableMpio ? TRUE : FALSE); ++ AttemptConfigData->ValidiBFTPath = (BOOLEAN)(mPrivate->EnableMpio ? TRUE : FALSE); + AttemptConfigData->ValidPath = FALSE; + + if (AttemptConfigData->SessionConfigData.IpMode == IP_MODE_AUTOCONFIG) { +@@ -2245,26 +2256,28 @@ IScsiGetConfigData ( + AttemptConfigData->SessionConfigData.TargetInfoFromDhcp = TRUE; + + AttemptConfigData->AutoConfigureMode = +- (UINT8) (mPrivate->Ipv6Flag ? IP_MODE_AUTOCONFIG_IP6 : IP_MODE_AUTOCONFIG_IP4); ++ (UINT8)(mPrivate->Ipv6Flag ? IP_MODE_AUTOCONFIG_IP6 : IP_MODE_AUTOCONFIG_IP4); + AttemptConfigData->AutoConfigureSuccess = FALSE; + } + + // + // Get some information from dhcp server. + // +- if (AttemptConfigData->SessionConfigData.Enabled != ISCSI_DISABLED && +- AttemptConfigData->SessionConfigData.InitiatorInfoFromDhcp) { +- ++ if ((AttemptConfigData->SessionConfigData.Enabled != ISCSI_DISABLED) && ++ AttemptConfigData->SessionConfigData.InitiatorInfoFromDhcp) ++ { + if (!mPrivate->Ipv6Flag && +- (AttemptConfigData->SessionConfigData.IpMode == IP_MODE_IP4 || +- AttemptConfigData->AutoConfigureMode == IP_MODE_AUTOCONFIG_IP4)) { ++ ((AttemptConfigData->SessionConfigData.IpMode == IP_MODE_IP4) || ++ (AttemptConfigData->AutoConfigureMode == IP_MODE_AUTOCONFIG_IP4))) ++ { + Status = IScsiDoDhcp (Private->Image, Private->Controller, AttemptConfigData); + if (!EFI_ERROR (Status)) { + AttemptConfigData->DhcpSuccess = TRUE; + } + } else if (mPrivate->Ipv6Flag && +- (AttemptConfigData->SessionConfigData.IpMode == IP_MODE_IP6 || +- AttemptConfigData->AutoConfigureMode == IP_MODE_AUTOCONFIG_IP6)) { ++ ((AttemptConfigData->SessionConfigData.IpMode == IP_MODE_IP6) || ++ (AttemptConfigData->AutoConfigureMode == IP_MODE_AUTOCONFIG_IP6))) ++ { + Status = IScsiDoDhcp6 (Private->Image, Private->Controller, AttemptConfigData); + if (!EFI_ERROR (Status)) { + AttemptConfigData->DhcpSuccess = TRUE; +@@ -2276,9 +2289,9 @@ IScsiGetConfigData ( + // + UnicodeSPrint ( + mPrivate->PortString, +- (UINTN) ISCSI_NAME_IFR_MAX_SIZE, ++ (UINTN)ISCSI_NAME_IFR_MAX_SIZE, + L"Attempt %d", +- (UINTN) AttemptConfigData->AttemptConfigIndex ++ (UINTN)AttemptConfigData->AttemptConfigIndex + ); + + gRT->SetVariable ( +@@ -2312,7 +2325,7 @@ IScsiGetConfigData ( + + UnicodeSPrint ( + mPrivate->PortString, +- (UINTN) ISCSI_NAME_IFR_MAX_SIZE, ++ (UINTN)ISCSI_NAME_IFR_MAX_SIZE, + L"MAC: %s, PFA: Bus %d | Dev %d | Func %d, iSCSI mode: %s, IP version: %s", + MacString, + NicInfo->BusNumber, +@@ -2377,13 +2390,13 @@ IScsiGetConfigData ( + if (mPrivate->SinglePathCount == 0) { + return EFI_NOT_FOUND; + } ++ + mPrivate->ValidSinglePathCount = mPrivate->SinglePathCount; + } + + return EFI_SUCCESS; + } + +- + /** + Get the device path of the iSCSI tcp connection and update it. + +@@ -2395,7 +2408,7 @@ IScsiGetConfigData ( + **/ + EFI_DEVICE_PATH_PROTOCOL * + IScsiGetTcpConnDevicePath ( +- IN ISCSI_SESSION *Session ++ IN ISCSI_SESSION *Session + ) + { + ISCSI_CONNECTION *Conn; +@@ -2418,28 +2431,29 @@ IScsiGetTcpConnDevicePath ( + Status = gBS->HandleProtocol ( + Conn->TcpIo.Handle, + &gEfiDevicePathProtocolGuid, +- (VOID **) &DevicePath ++ (VOID **)&DevicePath + ); + if (EFI_ERROR (Status)) { + return NULL; + } ++ + // + // Duplicate it. + // +- DevicePath = DuplicateDevicePath (DevicePath); ++ DevicePath = DuplicateDevicePath (DevicePath); + if (DevicePath == NULL) { + return NULL; + } + +- DPathNode = (EFI_DEV_PATH *) DevicePath; ++ DPathNode = (EFI_DEV_PATH *)DevicePath; + + while (!IsDevicePathEnd (&DPathNode->DevPath)) { + if (DevicePathType (&DPathNode->DevPath) == MESSAGING_DEVICE_PATH) { +- if (!Conn->Ipv6Flag && DevicePathSubType (&DPathNode->DevPath) == MSG_IPv4_DP) { +- DPathNode->Ipv4.LocalPort = 0; ++ if (!Conn->Ipv6Flag && (DevicePathSubType (&DPathNode->DevPath) == MSG_IPv4_DP)) { ++ DPathNode->Ipv4.LocalPort = 0; + + DPathNode->Ipv4.StaticIpAddress = +- (BOOLEAN) (!Session->ConfigData->SessionConfigData.InitiatorInfoFromDhcp); ++ (BOOLEAN)(!Session->ConfigData->SessionConfigData.InitiatorInfoFromDhcp); + + // + // Add a judgement here to support previous versions of IPv4_DEVICE_PATH. +@@ -2451,7 +2465,6 @@ IScsiGetTcpConnDevicePath ( + PathLen = DevicePathNodeLength (&DPathNode->Ipv4); + + if (PathLen == IP4_NODE_LEN_NEW_VERSIONS) { +- + IP4_COPY_ADDRESS ( + &DPathNode->Ipv4.GatewayIpAddress, + &Session->ConfigData->SessionConfigData.Gateway +@@ -2464,8 +2477,8 @@ IScsiGetTcpConnDevicePath ( + } + + break; +- } else if (Conn->Ipv6Flag && DevicePathSubType (&DPathNode->DevPath) == MSG_IPv6_DP) { +- DPathNode->Ipv6.LocalPort = 0; ++ } else if (Conn->Ipv6Flag && (DevicePathSubType (&DPathNode->DevPath) == MSG_IPv6_DP)) { ++ DPathNode->Ipv6.LocalPort = 0; + + // + // Add a judgement here to support previous versions of IPv6_DEVICE_PATH. +@@ -2478,32 +2491,28 @@ IScsiGetTcpConnDevicePath ( + PathLen = DevicePathNodeLength (&DPathNode->Ipv6); + + if (PathLen == IP6_NODE_LEN_NEW_VERSIONS ) { +- + DPathNode->Ipv6.IpAddressOrigin = 0; + DPathNode->Ipv6.PrefixLength = IP6_PREFIX_LENGTH; + ZeroMem (&DPathNode->Ipv6.GatewayIpAddress, sizeof (EFI_IPv6_ADDRESS)); +- } +- else if (PathLen == IP6_NODE_LEN_OLD_VERSIONS) { +- ++ } else if (PathLen == IP6_NODE_LEN_OLD_VERSIONS) { + // + // StaticIPAddress is a field in old versions of IPv6_DEVICE_PATH, while ignored in new + // version. Set StaticIPAddress through its' offset in old IPv6_DEVICE_PATH. + // + *((UINT8 *)(&DPathNode->Ipv6) + IP6_OLD_IPADDRESS_OFFSET) = +- (BOOLEAN) (!Session->ConfigData->SessionConfigData.InitiatorInfoFromDhcp); ++ (BOOLEAN)(!Session->ConfigData->SessionConfigData.InitiatorInfoFromDhcp); + } + + break; + } + } + +- DPathNode = (EFI_DEV_PATH *) NextDevicePathNode (&DPathNode->DevPath); ++ DPathNode = (EFI_DEV_PATH *)NextDevicePathNode (&DPathNode->DevPath); + } + + return DevicePath; + } + +- + /** + Abort the session when the transition from BS to RT is initiated. + +@@ -2518,9 +2527,9 @@ IScsiOnExitBootService ( + IN VOID *Context + ) + { +- ISCSI_DRIVER_DATA *Private; ++ ISCSI_DRIVER_DATA *Private; + +- Private = (ISCSI_DRIVER_DATA *) Context; ++ Private = (ISCSI_DRIVER_DATA *)Context; + + gBS->CloseEvent (Private->ExitBootServiceEvent); + Private->ExitBootServiceEvent = NULL; +@@ -2556,14 +2565,14 @@ IScsiOnExitBootService ( + EFI_STATUS + EFIAPI + IScsiTestManagedDevice ( +- IN EFI_HANDLE ControllerHandle, +- IN EFI_HANDLE DriverBindingHandle, +- IN EFI_GUID *ProtocolGuid ++ IN EFI_HANDLE ControllerHandle, ++ IN EFI_HANDLE DriverBindingHandle, ++ IN EFI_GUID *ProtocolGuid + ) + { +- EFI_STATUS Status; +- VOID *ManagedInterface; +- EFI_HANDLE NicControllerHandle; ++ EFI_STATUS Status; ++ VOID *ManagedInterface; ++ EFI_HANDLE NicControllerHandle; + + ASSERT (ProtocolGuid != NULL); + +@@ -2574,7 +2583,7 @@ IScsiTestManagedDevice ( + + Status = gBS->OpenProtocol ( + ControllerHandle, +- (EFI_GUID *) ProtocolGuid, ++ (EFI_GUID *)ProtocolGuid, + &ManagedInterface, + DriverBindingHandle, + NicControllerHandle, +@@ -2583,7 +2592,7 @@ IScsiTestManagedDevice ( + if (!EFI_ERROR (Status)) { + gBS->CloseProtocol ( + ControllerHandle, +- (EFI_GUID *) ProtocolGuid, ++ (EFI_GUID *)ProtocolGuid, + DriverBindingHandle, + NicControllerHandle + ); +diff --git a/NetworkPkg/Include/Library/NetLib.h b/NetworkPkg/Include/Library/NetLib.h +index 6c09248631..53495aa494 100644 +--- a/NetworkPkg/Include/Library/NetLib.h ++++ b/NetworkPkg/Include/Library/NetLib.h +@@ -15,16 +15,15 @@ SPDX-License-Identifier: BSD-2-Clause-Patent + #include + #include + +-typedef UINT32 IP4_ADDR; +-typedef UINT32 TCP_SEQNO; +-typedef UINT16 TCP_PORTNO; ++typedef UINT32 IP4_ADDR; ++typedef UINT32 TCP_SEQNO; ++typedef UINT16 TCP_PORTNO; + ++#define NET_ETHER_ADDR_LEN 6 ++#define NET_IFTYPE_ETHERNET 0x01 + +-#define NET_ETHER_ADDR_LEN 6 +-#define NET_IFTYPE_ETHERNET 0x01 +- +-#define NET_VLAN_TAG_LEN 4 +-#define ETHER_TYPE_VLAN 0x8100 ++#define NET_VLAN_TAG_LEN 4 ++#define ETHER_TYPE_VLAN 0x8100 + + #define EFI_IP_PROTO_UDP 0x11 + #define EFI_IP_PROTO_TCP 0x06 +@@ -37,73 +36,72 @@ typedef UINT16 TCP_PORTNO; + // + // The address classification + // +-#define IP4_ADDR_CLASSA 1 // Deprecated +-#define IP4_ADDR_CLASSB 2 // Deprecated +-#define IP4_ADDR_CLASSC 3 // Deprecated +-#define IP4_ADDR_CLASSD 4 +-#define IP4_ADDR_CLASSE 5 ++#define IP4_ADDR_CLASSA 1 // Deprecated ++#define IP4_ADDR_CLASSB 2 // Deprecated ++#define IP4_ADDR_CLASSC 3 // Deprecated ++#define IP4_ADDR_CLASSD 4 ++#define IP4_ADDR_CLASSE 5 + +-#define IP4_MASK_NUM 33 +-#define IP6_PREFIX_NUM 129 ++#define IP4_MASK_NUM 33 ++#define IP6_PREFIX_NUM 129 + +-#define IP4_MASK_MAX 32 +-#define IP6_PREFIX_MAX 128 ++#define IP4_MASK_MAX 32 ++#define IP6_PREFIX_MAX 128 + +-#define IP6_HOP_BY_HOP 0 +-#define IP6_DESTINATION 60 +-#define IP6_ROUTING 43 +-#define IP6_FRAGMENT 44 +-#define IP6_AH 51 +-#define IP6_ESP 50 +-#define IP6_NO_NEXT_HEADER 59 ++#define IP6_HOP_BY_HOP 0 ++#define IP6_DESTINATION 60 ++#define IP6_ROUTING 43 ++#define IP6_FRAGMENT 44 ++#define IP6_AH 51 ++#define IP6_ESP 50 ++#define IP6_NO_NEXT_HEADER 59 + +-#define IP_VERSION_4 4 +-#define IP_VERSION_6 6 ++#define IP_VERSION_4 4 ++#define IP_VERSION_6 6 + +-#define IP6_PREFIX_LENGTH 64 ++#define IP6_PREFIX_LENGTH 64 + + // + // DNS QTYPE values + // +-#define DNS_TYPE_A 1 +-#define DNS_TYPE_NS 2 +-#define DNS_TYPE_CNAME 5 +-#define DNS_TYPE_SOA 6 +-#define DNS_TYPE_WKS 11 +-#define DNS_TYPE_PTR 12 +-#define DNS_TYPE_HINFO 13 +-#define DNS_TYPE_MINFO 14 +-#define DNS_TYPE_MX 15 +-#define DNS_TYPE_TXT 16 +-#define DNS_TYPE_AAAA 28 +-#define DNS_TYPE_SRV_RR 33 +-#define DNS_TYPE_AXFR 252 +-#define DNS_TYPE_MAILB 253 +-#define DNS_TYPE_ANY 255 ++#define DNS_TYPE_A 1 ++#define DNS_TYPE_NS 2 ++#define DNS_TYPE_CNAME 5 ++#define DNS_TYPE_SOA 6 ++#define DNS_TYPE_WKS 11 ++#define DNS_TYPE_PTR 12 ++#define DNS_TYPE_HINFO 13 ++#define DNS_TYPE_MINFO 14 ++#define DNS_TYPE_MX 15 ++#define DNS_TYPE_TXT 16 ++#define DNS_TYPE_AAAA 28 ++#define DNS_TYPE_SRV_RR 33 ++#define DNS_TYPE_AXFR 252 ++#define DNS_TYPE_MAILB 253 ++#define DNS_TYPE_ANY 255 + + // + // DNS QCLASS values + // +-#define DNS_CLASS_INET 1 +-#define DNS_CLASS_CH 3 +-#define DNS_CLASS_HS 4 +-#define DNS_CLASS_ANY 255 ++#define DNS_CLASS_INET 1 ++#define DNS_CLASS_CH 3 ++#define DNS_CLASS_HS 4 ++#define DNS_CLASS_ANY 255 + + // + // Number of 100ns units time Interval for network media state detect + // + #define MEDIA_STATE_DETECT_TIME_INTERVAL 1000000U + +- + #pragma pack(1) + + // + // Ethernet head definition + // + typedef struct { +- UINT8 DstMac [NET_ETHER_ADDR_LEN]; +- UINT8 SrcMac [NET_ETHER_ADDR_LEN]; +- UINT16 EtherType; ++ UINT8 DstMac[NET_ETHER_ADDR_LEN]; ++ UINT8 SrcMac[NET_ETHER_ADDR_LEN]; ++ UINT16 EtherType; + } ETHER_HEAD; + + // +@@ -111,11 +109,11 @@ typedef struct { + // + typedef union { + struct { +- UINT16 Vid : 12; // Unique VLAN identifier (0 to 4094) +- UINT16 Cfi : 1; // Canonical Format Indicator +- UINT16 Priority : 3; // 802.1Q priority level (0 to 7) ++ UINT16 Vid : 12; // Unique VLAN identifier (0 to 4094) ++ UINT16 Cfi : 1; // Canonical Format Indicator ++ UINT16 Priority : 3; // 802.1Q priority level (0 to 7) + } Bits; +- UINT16 Uint16; ++ UINT16 Uint16; + } VLAN_TCI; + + #define VLAN_TCI_CFI_CANONICAL_MAC 0 +@@ -128,83 +126,82 @@ typedef union { + // directly. This is why there is an internal representation. + // + typedef struct { +- UINT8 HeadLen : 4; +- UINT8 Ver : 4; +- UINT8 Tos; +- UINT16 TotalLen; +- UINT16 Id; +- UINT16 Fragment; +- UINT8 Ttl; +- UINT8 Protocol; +- UINT16 Checksum; +- IP4_ADDR Src; +- IP4_ADDR Dst; ++ UINT8 HeadLen : 4; ++ UINT8 Ver : 4; ++ UINT8 Tos; ++ UINT16 TotalLen; ++ UINT16 Id; ++ UINT16 Fragment; ++ UINT8 Ttl; ++ UINT8 Protocol; ++ UINT16 Checksum; ++ IP4_ADDR Src; ++ IP4_ADDR Dst; + } IP4_HEAD; + +- + // + // ICMP head definition. Each ICMP message is categorized as either an error + // message or query message. Two message types have their own head format. + // + typedef struct { +- UINT8 Type; +- UINT8 Code; +- UINT16 Checksum; ++ UINT8 Type; ++ UINT8 Code; ++ UINT16 Checksum; + } IP4_ICMP_HEAD; + + typedef struct { +- IP4_ICMP_HEAD Head; +- UINT32 Fourth; // 4th filed of the head, it depends on Type. +- IP4_HEAD IpHead; ++ IP4_ICMP_HEAD Head; ++ UINT32 Fourth; // 4th filed of the head, it depends on Type. ++ IP4_HEAD IpHead; + } IP4_ICMP_ERROR_HEAD; + + typedef struct { +- IP4_ICMP_HEAD Head; +- UINT16 Id; +- UINT16 Seq; ++ IP4_ICMP_HEAD Head; ++ UINT16 Id; ++ UINT16 Seq; + } IP4_ICMP_QUERY_HEAD; + + typedef struct { +- UINT8 Type; +- UINT8 Code; +- UINT16 Checksum; ++ UINT8 Type; ++ UINT8 Code; ++ UINT16 Checksum; + } IP6_ICMP_HEAD; + + typedef struct { +- IP6_ICMP_HEAD Head; +- UINT32 Fourth; +- EFI_IP6_HEADER IpHead; ++ IP6_ICMP_HEAD Head; ++ UINT32 Fourth; ++ EFI_IP6_HEADER IpHead; + } IP6_ICMP_ERROR_HEAD; + + typedef struct { +- IP6_ICMP_HEAD Head; +- UINT32 Fourth; ++ IP6_ICMP_HEAD Head; ++ UINT32 Fourth; + } IP6_ICMP_INFORMATION_HEAD; + + // + // UDP header definition + // + typedef struct { +- UINT16 SrcPort; +- UINT16 DstPort; +- UINT16 Length; +- UINT16 Checksum; ++ UINT16 SrcPort; ++ UINT16 DstPort; ++ UINT16 Length; ++ UINT16 Checksum; + } EFI_UDP_HEADER; + + // + // TCP header definition + // + typedef struct { +- TCP_PORTNO SrcPort; +- TCP_PORTNO DstPort; +- TCP_SEQNO Seq; +- TCP_SEQNO Ack; +- UINT8 Res : 4; +- UINT8 HeadLen : 4; +- UINT8 Flag; +- UINT16 Wnd; +- UINT16 Checksum; +- UINT16 Urg; ++ TCP_PORTNO SrcPort; ++ TCP_PORTNO DstPort; ++ TCP_SEQNO Seq; ++ TCP_SEQNO Ack; ++ UINT8 Res : 4; ++ UINT8 HeadLen : 4; ++ UINT8 Flag; ++ UINT16 Wnd; ++ UINT16 Checksum; ++ UINT16 Urg; + } TCP_HEAD; + + #pragma pack() +@@ -221,11 +218,11 @@ typedef struct { + + #define NTOHS(x) SwapBytes16 (x) + +-#define HTONS(x) NTOHS(x) +-#define NTOHLL(x) SwapBytes64 (x) +-#define HTONLL(x) NTOHLL(x) +-#define NTOHLLL(x) Ip6Swap128 (x) +-#define HTONLLL(x) NTOHLLL(x) ++#define HTONS(x) NTOHS(x) ++#define NTOHLL(x) SwapBytes64 (x) ++#define HTONLL(x) NTOHLL(x) ++#define NTOHLLL(x) Ip6Swap128 (x) ++#define HTONLLL(x) NTOHLLL(x) + + // + // Test the IP's attribute, All the IPs are in host byte order. +@@ -236,7 +233,7 @@ typedef struct { + #define IP4_NET_EQUAL(Ip1, Ip2, NetMask) (((Ip1) & (NetMask)) == ((Ip2) & (NetMask))) + #define IP4_IS_VALID_NETMASK(Ip) (NetGetMaskLength (Ip) != (IP4_MASK_MAX + 1)) + +-#define IP6_IS_MULTICAST(Ip6) (((Ip6)->Addr[0]) == 0xFF) ++#define IP6_IS_MULTICAST(Ip6) (((Ip6)->Addr[0]) == 0xFF) + + // + // Convert the EFI_IP4_ADDRESS to plain UINT32 IP4 address. +@@ -247,17 +244,17 @@ typedef struct { + + #define EFI_IP6_EQUAL(Ip1, Ip2) (CompareMem ((Ip1), (Ip2), sizeof (EFI_IPv6_ADDRESS)) == 0) + +-#define IP4_COPY_ADDRESS(Dest, Src) (CopyMem ((Dest), (Src), sizeof (EFI_IPv4_ADDRESS))) +-#define IP6_COPY_ADDRESS(Dest, Src) (CopyMem ((Dest), (Src), sizeof (EFI_IPv6_ADDRESS))) +-#define IP6_COPY_LINK_ADDRESS(Mac1, Mac2) (CopyMem ((Mac1), (Mac2), sizeof (EFI_MAC_ADDRESS))) ++#define IP4_COPY_ADDRESS(Dest, Src) (CopyMem ((Dest), (Src), sizeof (EFI_IPv4_ADDRESS))) ++#define IP6_COPY_ADDRESS(Dest, Src) (CopyMem ((Dest), (Src), sizeof (EFI_IPv6_ADDRESS))) ++#define IP6_COPY_LINK_ADDRESS(Mac1, Mac2) (CopyMem ((Mac1), (Mac2), sizeof (EFI_MAC_ADDRESS))) + + // + // The debug level definition. This value is also used as the + // syslog's severity level. Don't change it. + // +-#define NETDEBUG_LEVEL_TRACE 5 +-#define NETDEBUG_LEVEL_WARNING 4 +-#define NETDEBUG_LEVEL_ERROR 3 ++#define NETDEBUG_LEVEL_TRACE 5 ++#define NETDEBUG_LEVEL_WARNING 4 ++#define NETDEBUG_LEVEL_ERROR 3 + + // + // Network debug message is sent out as syslog packet. +@@ -326,7 +323,7 @@ typedef struct { + CHAR8 * + EFIAPI + NetDebugASPrint ( +- IN CHAR8 *Format, ++ IN CHAR8 *Format, + ... + ); + +@@ -350,14 +347,13 @@ NetDebugASPrint ( + EFI_STATUS + EFIAPI + NetDebugOutput ( +- IN UINT32 Level, +- IN UINT8 *Module, +- IN UINT8 *File, +- IN UINT32 Line, +- IN UINT8 *Message ++ IN UINT32 Level, ++ IN UINT8 *Module, ++ IN UINT8 *File, ++ IN UINT32 Line, ++ IN UINT8 *Message + ); + +- + /** + Return the length of the mask. + +@@ -373,7 +369,7 @@ NetDebugOutput ( + INTN + EFIAPI + NetGetMaskLength ( +- IN IP4_ADDR NetMask ++ IN IP4_ADDR NetMask + ); + + /** +@@ -405,7 +401,7 @@ NetGetMaskLength ( + INTN + EFIAPI + NetGetIpClass ( +- IN IP4_ADDR Addr ++ IN IP4_ADDR Addr + ); + + /** +@@ -428,8 +424,8 @@ NetGetIpClass ( + BOOLEAN + EFIAPI + NetIp4IsUnicast ( +- IN IP4_ADDR Ip, +- IN IP4_ADDR NetMask ++ IN IP4_ADDR Ip, ++ IN IP4_ADDR NetMask + ); + + /** +@@ -451,10 +447,9 @@ NetIp4IsUnicast ( + BOOLEAN + EFIAPI + NetIp6IsValidUnicast ( +- IN EFI_IPv6_ADDRESS *Ip6 ++ IN EFI_IPv6_ADDRESS *Ip6 + ); + +- + /** + Check whether the incoming Ipv6 address is the unspecified address or not. + +@@ -469,7 +464,7 @@ NetIp6IsValidUnicast ( + BOOLEAN + EFIAPI + NetIp6IsUnspecifiedAddr ( +- IN EFI_IPv6_ADDRESS *Ip6 ++ IN EFI_IPv6_ADDRESS *Ip6 + ); + + /** +@@ -486,7 +481,7 @@ NetIp6IsUnspecifiedAddr ( + BOOLEAN + EFIAPI + NetIp6IsLinkLocalAddr ( +- IN EFI_IPv6_ADDRESS *Ip6 ++ IN EFI_IPv6_ADDRESS *Ip6 + ); + + /** +@@ -506,9 +501,9 @@ NetIp6IsLinkLocalAddr ( + BOOLEAN + EFIAPI + NetIp6IsNetEqual ( +- EFI_IPv6_ADDRESS *Ip1, +- EFI_IPv6_ADDRESS *Ip2, +- UINT8 PrefixLength ++ EFI_IPv6_ADDRESS *Ip1, ++ EFI_IPv6_ADDRESS *Ip2, ++ UINT8 PrefixLength + ); + + /** +@@ -528,11 +523,10 @@ NetIp6IsNetEqual ( + EFI_IPv6_ADDRESS * + EFIAPI + Ip6Swap128 ( +- EFI_IPv6_ADDRESS *Ip6 ++ EFI_IPv6_ADDRESS *Ip6 + ); + +-extern IP4_ADDR gIp4AllMasks[IP4_MASK_NUM]; +- ++extern IP4_ADDR gIp4AllMasks[IP4_MASK_NUM]; + + extern EFI_IPv4_ADDRESS mZeroIp4Addr; + +@@ -542,10 +536,10 @@ extern EFI_IPv4_ADDRESS mZeroIp4Addr; + #define NET_IS_LOWER_CASE_CHAR(Ch) (('a' <= (Ch)) && ((Ch) <= 'z')) + #define NET_IS_UPPER_CASE_CHAR(Ch) (('A' <= (Ch)) && ((Ch) <= 'Z')) + +-#define TICKS_PER_MS 10000U +-#define TICKS_PER_SECOND 10000000U ++#define TICKS_PER_MS 10000U ++#define TICKS_PER_SECOND 10000000U + +-#define NET_RANDOM(Seed) ((UINT32) ((UINT32) (Seed) * 1103515245UL + 12345) % 4294967295UL) ++#define NET_RANDOM(Seed) ((UINT32) ((UINT32) (Seed) * 1103515245UL + 12345) % 4294967295UL) + + /** + Extract a UINT32 from a byte stream. +@@ -563,7 +557,7 @@ extern EFI_IPv4_ADDRESS mZeroIp4Addr; + UINT32 + EFIAPI + NetGetUint32 ( +- IN UINT8 *Buf ++ IN UINT8 *Buf + ); + + /** +@@ -581,8 +575,8 @@ NetGetUint32 ( + VOID + EFIAPI + NetPutUint32 ( +- IN OUT UINT8 *Buf, +- IN UINT32 Data ++ IN OUT UINT8 *Buf, ++ IN UINT32 Data + ); + + /** +@@ -601,7 +595,6 @@ NetRandomInitSeed ( + VOID + ); + +- + #define NET_LIST_USER_STRUCT(Entry, Type, Field) \ + BASE_CR(Entry, Type, Field) + +@@ -635,7 +628,6 @@ NetRandomInitSeed ( + #define NET_LIST_TAIL(ListHead, Type, Field) \ + NET_LIST_USER_STRUCT((ListHead)->BackLink, Type, Field) + +- + /** + Remove the first node entry on the list, and return the removed node entry. + +@@ -657,7 +649,7 @@ NetRandomInitSeed ( + LIST_ENTRY * + EFIAPI + NetListRemoveHead ( +- IN OUT LIST_ENTRY *Head ++ IN OUT LIST_ENTRY *Head + ); + + /** +@@ -681,7 +673,7 @@ NetListRemoveHead ( + LIST_ENTRY * + EFIAPI + NetListRemoveTail ( +- IN OUT LIST_ENTRY *Head ++ IN OUT LIST_ENTRY *Head + ); + + /** +@@ -699,8 +691,8 @@ NetListRemoveTail ( + VOID + EFIAPI + NetListInsertAfter ( +- IN OUT LIST_ENTRY *PrevEntry, +- IN OUT LIST_ENTRY *NewEntry ++ IN OUT LIST_ENTRY *PrevEntry, ++ IN OUT LIST_ENTRY *NewEntry + ); + + /** +@@ -718,8 +710,8 @@ NetListInsertAfter ( + VOID + EFIAPI + NetListInsertBefore ( +- IN OUT LIST_ENTRY *PostEntry, +- IN OUT LIST_ENTRY *NewEntry ++ IN OUT LIST_ENTRY *PostEntry, ++ IN OUT LIST_ENTRY *NewEntry + ); + + /** +@@ -734,7 +726,7 @@ NetListInsertBefore ( + **/ + typedef + EFI_STATUS +-(EFIAPI *NET_DESTROY_LINK_LIST_CALLBACK) ( ++(EFIAPI *NET_DESTROY_LINK_LIST_CALLBACK)( + IN LIST_ENTRY *Entry, + IN VOID *Context OPTIONAL + ); +@@ -785,9 +777,9 @@ NetDestroyLinkList ( + BOOLEAN + EFIAPI + NetIsInHandleBuffer ( +- IN EFI_HANDLE Handle, +- IN UINTN NumberOfChildren, +- IN EFI_HANDLE *ChildHandleBuffer OPTIONAL ++ IN EFI_HANDLE Handle, ++ IN UINTN NumberOfChildren, ++ IN EFI_HANDLE *ChildHandleBuffer OPTIONAL + ); + + // +@@ -795,15 +787,15 @@ NetIsInHandleBuffer ( + // tokens. The drivers can share code to manage those objects. + // + typedef struct { +- LIST_ENTRY Link; +- VOID *Key; +- VOID *Value; ++ LIST_ENTRY Link; ++ VOID *Key; ++ VOID *Value; + } NET_MAP_ITEM; + + typedef struct { +- LIST_ENTRY Used; +- LIST_ENTRY Recycled; +- UINTN Count; ++ LIST_ENTRY Used; ++ LIST_ENTRY Recycled; ++ UINTN Count; + } NET_MAP; + + #define NET_MAP_INCREAMENT 64 +@@ -825,7 +817,7 @@ typedef struct { + VOID + EFIAPI + NetMapInit ( +- IN OUT NET_MAP *Map ++ IN OUT NET_MAP *Map + ); + + /** +@@ -843,7 +835,7 @@ NetMapInit ( + VOID + EFIAPI + NetMapClean ( +- IN OUT NET_MAP *Map ++ IN OUT NET_MAP *Map + ); + + /** +@@ -861,7 +853,7 @@ NetMapClean ( + BOOLEAN + EFIAPI + NetMapIsEmpty ( +- IN NET_MAP *Map ++ IN NET_MAP *Map + ); + + /** +@@ -877,7 +869,7 @@ NetMapIsEmpty ( + UINTN + EFIAPI + NetMapGetCount ( +- IN NET_MAP *Map ++ IN NET_MAP *Map + ); + + /** +@@ -901,9 +893,9 @@ NetMapGetCount ( + EFI_STATUS + EFIAPI + NetMapInsertHead ( +- IN OUT NET_MAP *Map, +- IN VOID *Key, +- IN VOID *Value OPTIONAL ++ IN OUT NET_MAP *Map, ++ IN VOID *Key, ++ IN VOID *Value OPTIONAL + ); + + /** +@@ -927,9 +919,9 @@ NetMapInsertHead ( + EFI_STATUS + EFIAPI + NetMapInsertTail ( +- IN OUT NET_MAP *Map, +- IN VOID *Key, +- IN VOID *Value OPTIONAL ++ IN OUT NET_MAP *Map, ++ IN VOID *Key, ++ IN VOID *Value OPTIONAL + ); + + /** +@@ -950,8 +942,8 @@ NetMapInsertTail ( + NET_MAP_ITEM * + EFIAPI + NetMapFindKey ( +- IN NET_MAP *Map, +- IN VOID *Key ++ IN NET_MAP *Map, ++ IN VOID *Key + ); + + /** +@@ -976,9 +968,9 @@ NetMapFindKey ( + VOID * + EFIAPI + NetMapRemoveItem ( +- IN OUT NET_MAP *Map, +- IN OUT NET_MAP_ITEM *Item, +- OUT VOID **Value OPTIONAL ++ IN OUT NET_MAP *Map, ++ IN OUT NET_MAP_ITEM *Item, ++ OUT VOID **Value OPTIONAL + ); + + /** +@@ -1001,8 +993,8 @@ NetMapRemoveItem ( + VOID * + EFIAPI + NetMapRemoveHead ( +- IN OUT NET_MAP *Map, +- OUT VOID **Value OPTIONAL ++ IN OUT NET_MAP *Map, ++ OUT VOID **Value OPTIONAL + ); + + /** +@@ -1025,13 +1017,13 @@ NetMapRemoveHead ( + VOID * + EFIAPI + NetMapRemoveTail ( +- IN OUT NET_MAP *Map, +- OUT VOID **Value OPTIONAL ++ IN OUT NET_MAP *Map, ++ OUT VOID **Value OPTIONAL + ); + + typedef + EFI_STATUS +-(EFIAPI *NET_MAP_CALLBACK) ( ++(EFIAPI *NET_MAP_CALLBACK)( + IN NET_MAP *Map, + IN NET_MAP_ITEM *Item, + IN VOID *Arg +@@ -1059,15 +1051,15 @@ EFI_STATUS + EFI_STATUS + EFIAPI + NetMapIterate ( +- IN NET_MAP *Map, +- IN NET_MAP_CALLBACK CallBack, +- IN VOID *Arg OPTIONAL ++ IN NET_MAP *Map, ++ IN NET_MAP_CALLBACK CallBack, ++ IN VOID *Arg OPTIONAL + ); + +- + // + // Helper functions to implement driver binding and service binding protocols. + // ++ + /** + Create a child of the service that is identified by ServiceBindingGuid. + +@@ -1088,10 +1080,10 @@ NetMapIterate ( + EFI_STATUS + EFIAPI + NetLibCreateServiceChild ( +- IN EFI_HANDLE Controller, +- IN EFI_HANDLE Image, +- IN EFI_GUID *ServiceBindingGuid, +- IN OUT EFI_HANDLE *ChildHandle ++ IN EFI_HANDLE Controller, ++ IN EFI_HANDLE Image, ++ IN EFI_GUID *ServiceBindingGuid, ++ IN OUT EFI_HANDLE *ChildHandle + ); + + /** +@@ -1113,10 +1105,10 @@ NetLibCreateServiceChild ( + EFI_STATUS + EFIAPI + NetLibDestroyServiceChild ( +- IN EFI_HANDLE Controller, +- IN EFI_HANDLE Image, +- IN EFI_GUID *ServiceBindingGuid, +- IN EFI_HANDLE ChildHandle ++ IN EFI_HANDLE Controller, ++ IN EFI_HANDLE Image, ++ IN EFI_GUID *ServiceBindingGuid, ++ IN EFI_HANDLE ChildHandle + ); + + /** +@@ -1138,8 +1130,8 @@ NetLibDestroyServiceChild ( + EFI_HANDLE + EFIAPI + NetLibGetSnpHandle ( +- IN EFI_HANDLE ServiceHandle, +- OUT EFI_SIMPLE_NETWORK_PROTOCOL **Snp OPTIONAL ++ IN EFI_HANDLE ServiceHandle, ++ OUT EFI_SIMPLE_NETWORK_PROTOCOL **Snp OPTIONAL + ); + + /** +@@ -1158,7 +1150,7 @@ NetLibGetSnpHandle ( + UINT16 + EFIAPI + NetLibGetVlanId ( +- IN EFI_HANDLE ServiceHandle ++ IN EFI_HANDLE ServiceHandle + ); + + /** +@@ -1178,8 +1170,8 @@ NetLibGetVlanId ( + EFI_HANDLE + EFIAPI + NetLibGetVlanHandle ( +- IN EFI_HANDLE ControllerHandle, +- IN UINT16 VlanId ++ IN EFI_HANDLE ControllerHandle, ++ IN UINT16 VlanId + ); + + /** +@@ -1204,9 +1196,9 @@ NetLibGetVlanHandle ( + EFI_STATUS + EFIAPI + NetLibGetMacAddress ( +- IN EFI_HANDLE ServiceHandle, +- OUT EFI_MAC_ADDRESS *MacAddress, +- OUT UINTN *AddressSize ++ IN EFI_HANDLE ServiceHandle, ++ OUT EFI_MAC_ADDRESS *MacAddress, ++ OUT UINTN *AddressSize + ); + + /** +@@ -1274,8 +1266,8 @@ NetLibGetMacString ( + EFI_STATUS + EFIAPI + NetLibDetectMedia ( +- IN EFI_HANDLE ServiceHandle, +- OUT BOOLEAN *MediaPresent ++ IN EFI_HANDLE ServiceHandle, ++ OUT BOOLEAN *MediaPresent + ); + + /** +@@ -1305,12 +1297,11 @@ NetLibDetectMedia ( + EFI_STATUS + EFIAPI + NetLibDetectMediaWaitTimeout ( +- IN EFI_HANDLE ServiceHandle, +- IN UINT64 Timeout, +- OUT EFI_STATUS *MediaState ++ IN EFI_HANDLE ServiceHandle, ++ IN UINT64 Timeout, ++ OUT EFI_STATUS *MediaState + ); + +- + /** + Create an IPv4 device path node. + +@@ -1377,7 +1368,6 @@ NetLibCreateIPv6DPathNode ( + IN UINT16 Protocol + ); + +- + /** + Find the UNDI/SNP handle from controller and protocol GUID. + +@@ -1400,8 +1390,8 @@ NetLibCreateIPv6DPathNode ( + EFI_HANDLE + EFIAPI + NetLibGetNicHandle ( +- IN EFI_HANDLE Controller, +- IN EFI_GUID *ProtocolGuid ++ IN EFI_HANDLE Controller, ++ IN EFI_GUID *ProtocolGuid + ); + + /** +@@ -1419,7 +1409,7 @@ NetLibGetNicHandle ( + EFI_STATUS + EFIAPI + NetLibDefaultUnload ( +- IN EFI_HANDLE ImageHandle ++ IN EFI_HANDLE ImageHandle + ); + + /** +@@ -1435,8 +1425,8 @@ NetLibDefaultUnload ( + EFI_STATUS + EFIAPI + NetLibAsciiStrToIp4 ( +- IN CONST CHAR8 *String, +- OUT EFI_IPv4_ADDRESS *Ip4Address ++ IN CONST CHAR8 *String, ++ OUT EFI_IPv4_ADDRESS *Ip4Address + ); + + /** +@@ -1453,8 +1443,8 @@ NetLibAsciiStrToIp4 ( + EFI_STATUS + EFIAPI + NetLibAsciiStrToIp6 ( +- IN CONST CHAR8 *String, +- OUT EFI_IPv6_ADDRESS *Ip6Address ++ IN CONST CHAR8 *String, ++ OUT EFI_IPv6_ADDRESS *Ip6Address + ); + + /** +@@ -1470,8 +1460,8 @@ NetLibAsciiStrToIp6 ( + EFI_STATUS + EFIAPI + NetLibStrToIp4 ( +- IN CONST CHAR16 *String, +- OUT EFI_IPv4_ADDRESS *Ip4Address ++ IN CONST CHAR16 *String, ++ OUT EFI_IPv4_ADDRESS *Ip4Address + ); + + /** +@@ -1488,8 +1478,8 @@ NetLibStrToIp4 ( + EFI_STATUS + EFIAPI + NetLibStrToIp6 ( +- IN CONST CHAR16 *String, +- OUT EFI_IPv6_ADDRESS *Ip6Address ++ IN CONST CHAR16 *String, ++ OUT EFI_IPv6_ADDRESS *Ip6Address + ); + + /** +@@ -1508,9 +1498,9 @@ NetLibStrToIp6 ( + EFI_STATUS + EFIAPI + NetLibStrToIp6andPrefix ( +- IN CONST CHAR16 *String, +- OUT EFI_IPv6_ADDRESS *Ip6Address, +- OUT UINT8 *PrefixLength ++ IN CONST CHAR16 *String, ++ OUT EFI_IPv6_ADDRESS *Ip6Address, ++ OUT UINT8 *PrefixLength + ); + + /** +@@ -1530,23 +1520,22 @@ NetLibStrToIp6andPrefix ( + EFI_STATUS + EFIAPI + NetLibIp6ToStr ( +- IN EFI_IPv6_ADDRESS *Ip6Address, +- OUT CHAR16 *String, +- IN UINTN StringSize ++ IN EFI_IPv6_ADDRESS *Ip6Address, ++ OUT CHAR16 *String, ++ IN UINTN StringSize + ); + + // + // Various signatures + // +-#define NET_BUF_SIGNATURE SIGNATURE_32 ('n', 'b', 'u', 'f') +-#define NET_VECTOR_SIGNATURE SIGNATURE_32 ('n', 'v', 'e', 'c') +-#define NET_QUE_SIGNATURE SIGNATURE_32 ('n', 'b', 'q', 'u') +- ++#define NET_BUF_SIGNATURE SIGNATURE_32 ('n', 'b', 'u', 'f') ++#define NET_VECTOR_SIGNATURE SIGNATURE_32 ('n', 'v', 'e', 'c') ++#define NET_QUE_SIGNATURE SIGNATURE_32 ('n', 'b', 'q', 'u') + +-#define NET_PROTO_DATA 64 // Opaque buffer for protocols +-#define NET_BUF_HEAD 1 // Trim or allocate space from head +-#define NET_BUF_TAIL 0 // Trim or allocate space from tail +-#define NET_VECTOR_OWN_FIRST 0x01 // We allocated the 1st block in the vector ++#define NET_PROTO_DATA 64 // Opaque buffer for protocols ++#define NET_BUF_HEAD 1 // Trim or allocate space from head ++#define NET_BUF_TAIL 0 // Trim or allocate space from tail ++#define NET_VECTOR_OWN_FIRST 0x01 // We allocated the 1st block in the vector + + #define NET_CHECK_SIGNATURE(PData, SIGNATURE) \ + ASSERT (((PData) != NULL) && ((PData)->Signature == (SIGNATURE))) +@@ -1555,39 +1544,39 @@ NetLibIp6ToStr ( + // Single memory block in the vector. + // + typedef struct { +- UINT32 Len; // The block's length +- UINT8 *Bulk; // The block's Data ++ UINT32 Len; // The block's length ++ UINT8 *Bulk; // The block's Data + } NET_BLOCK; + +-typedef VOID (EFIAPI *NET_VECTOR_EXT_FREE) (VOID *Arg); ++typedef VOID (EFIAPI *NET_VECTOR_EXT_FREE)(VOID *Arg); + + // +-//NET_VECTOR contains several blocks to hold all packet's +-//fragments and other house-keeping stuff for sharing. It +-//doesn't specify the where actual packet fragment begins. ++// NET_VECTOR contains several blocks to hold all packet's ++// fragments and other house-keeping stuff for sharing. It ++// doesn't specify the where actual packet fragment begins. + // + typedef struct { +- UINT32 Signature; +- INTN RefCnt; // Reference count to share NET_VECTOR. +- NET_VECTOR_EXT_FREE Free; // external function to free NET_VECTOR +- VOID *Arg; // opaque argument to Free +- UINT32 Flag; // Flags, NET_VECTOR_OWN_FIRST +- UINT32 Len; // Total length of the associated BLOCKs +- +- UINT32 BlockNum; +- NET_BLOCK Block[1]; ++ UINT32 Signature; ++ INTN RefCnt; // Reference count to share NET_VECTOR. ++ NET_VECTOR_EXT_FREE Free; // external function to free NET_VECTOR ++ VOID *Arg; // opaque argument to Free ++ UINT32 Flag; // Flags, NET_VECTOR_OWN_FIRST ++ UINT32 Len; // Total length of the associated BLOCKs ++ ++ UINT32 BlockNum; ++ NET_BLOCK Block[1]; + } NET_VECTOR; + + // +-//NET_BLOCK_OP operates on the NET_BLOCK. It specifies +-//where the actual fragment begins and ends ++// NET_BLOCK_OP operates on the NET_BLOCK. It specifies ++// where the actual fragment begins and ends + // + typedef struct { +- UINT8 *BlockHead; // Block's head, or the smallest valid Head +- UINT8 *BlockTail; // Block's tail. BlockTail-BlockHead=block length +- UINT8 *Head; // 1st byte of the data in the block +- UINT8 *Tail; // Tail of the data in the block, Tail-Head=Size +- UINT32 Size; // The size of the data ++ UINT8 *BlockHead; // Block's head, or the smallest valid Head ++ UINT8 *BlockTail; // Block's tail. BlockTail-BlockHead=block length ++ UINT8 *Head; // 1st byte of the data in the block ++ UINT8 *Tail; // Tail of the data in the block, Tail-Head=Size ++ UINT32 Size; // The size of the data + } NET_BLOCK_OP; + + typedef union { +@@ -1596,44 +1585,44 @@ typedef union { + } NET_IP_HEAD; + + // +-//NET_BUF is the buffer manage structure used by the +-//network stack. Every network packet may be fragmented. The Vector points to +-//memory blocks used by each fragment, and BlockOp +-//specifies where each fragment begins and ends. ++// NET_BUF is the buffer manage structure used by the ++// network stack. Every network packet may be fragmented. The Vector points to ++// memory blocks used by each fragment, and BlockOp ++// specifies where each fragment begins and ends. + // +-//It also contains an opaque area for the protocol to store +-//per-packet information. Protocol must be careful not +-//to overwrite the members after that. ++// It also contains an opaque area for the protocol to store ++// per-packet information. Protocol must be careful not ++// to overwrite the members after that. + // + typedef struct { +- UINT32 Signature; +- INTN RefCnt; +- LIST_ENTRY List; // The List this NET_BUF is on ++ UINT32 Signature; ++ INTN RefCnt; ++ LIST_ENTRY List; // The List this NET_BUF is on + +- NET_IP_HEAD Ip; // Network layer header, for fast access +- TCP_HEAD *Tcp; // Transport layer header, for fast access +- EFI_UDP_HEADER *Udp; // User Datagram Protocol header +- UINT8 ProtoData [NET_PROTO_DATA]; //Protocol specific data ++ NET_IP_HEAD Ip; // Network layer header, for fast access ++ TCP_HEAD *Tcp; // Transport layer header, for fast access ++ EFI_UDP_HEADER *Udp; // User Datagram Protocol header ++ UINT8 ProtoData[NET_PROTO_DATA]; // Protocol specific data + +- NET_VECTOR *Vector; // The vector containing the packet ++ NET_VECTOR *Vector; // The vector containing the packet + +- UINT32 BlockOpNum; // Total number of BlockOp in the buffer +- UINT32 TotalSize; // Total size of the actual packet +- NET_BLOCK_OP BlockOp[1]; // Specify the position of actual packet ++ UINT32 BlockOpNum; // Total number of BlockOp in the buffer ++ UINT32 TotalSize; // Total size of the actual packet ++ NET_BLOCK_OP BlockOp[1]; // Specify the position of actual packet + } NET_BUF; + + // +-//A queue of NET_BUFs. It is a thin extension of +-//NET_BUF functions. ++// A queue of NET_BUFs. It is a thin extension of ++// NET_BUF functions. + // + typedef struct { +- UINT32 Signature; +- INTN RefCnt; +- LIST_ENTRY List; // The List this buffer queue is on ++ UINT32 Signature; ++ INTN RefCnt; ++ LIST_ENTRY List; // The List this buffer queue is on + +- LIST_ENTRY BufList; // list of queued buffers +- UINT32 BufSize; // total length of DATA in the buffers +- UINT32 BufNum; // total number of buffers on the chain ++ LIST_ENTRY BufList; // list of queued buffers ++ UINT32 BufSize; // total length of DATA in the buffers ++ UINT32 BufNum; // total number of buffers on the chain + } NET_BUF_QUEUE; + + // +@@ -1641,19 +1630,19 @@ typedef struct { + // + #pragma pack(1) + typedef struct { +- IP4_ADDR SrcIp; +- IP4_ADDR DstIp; +- UINT8 Reserved; +- UINT8 Protocol; +- UINT16 Len; ++ IP4_ADDR SrcIp; ++ IP4_ADDR DstIp; ++ UINT8 Reserved; ++ UINT8 Protocol; ++ UINT16 Len; + } NET_PSEUDO_HDR; + + typedef struct { + EFI_IPv6_ADDRESS SrcIp; + EFI_IPv6_ADDRESS DstIp; + UINT32 Len; +- UINT32 Reserved:24; +- UINT32 NextHeader:8; ++ UINT32 Reserved : 24; ++ UINT32 NextHeader : 8; + } NET_IP6_PSEUDO_HDR; + #pragma pack() + +@@ -1663,13 +1652,13 @@ typedef struct { + // the two in case that NET_BLOCK be enhanced later. + // + typedef struct { +- UINT32 Len; +- UINT8 *Bulk; ++ UINT32 Len; ++ UINT8 *Bulk; + } NET_FRAGMENT; + +-#define NET_GET_REF(PData) ((PData)->RefCnt++) +-#define NET_PUT_REF(PData) ((PData)->RefCnt--) +-#define NETBUF_FROM_PROTODATA(Info) BASE_CR((Info), NET_BUF, ProtoData) ++#define NET_GET_REF(PData) ((PData)->RefCnt++) ++#define NET_PUT_REF(PData) ((PData)->RefCnt--) ++#define NETBUF_FROM_PROTODATA(Info) BASE_CR((Info), NET_BUF, ProtoData) + + #define NET_BUF_SHARED(Buf) \ + (((Buf)->RefCnt > 1) || ((Buf)->Vector->RefCnt > 1)) +@@ -1699,7 +1688,7 @@ typedef struct { + NET_BUF * + EFIAPI + NetbufAlloc ( +- IN UINT32 Len ++ IN UINT32 Len + ); + + /** +@@ -1717,7 +1706,7 @@ NetbufAlloc ( + VOID + EFIAPI + NetbufFree ( +- IN NET_BUF *Nbuf ++ IN NET_BUF *Nbuf + ); + + /** +@@ -1740,9 +1729,9 @@ NetbufFree ( + UINT8 * + EFIAPI + NetbufGetByte ( +- IN NET_BUF *Nbuf, +- IN UINT32 Offset, +- OUT UINT32 *Index OPTIONAL ++ IN NET_BUF *Nbuf, ++ IN UINT32 Offset, ++ OUT UINT32 *Index OPTIONAL + ); + + /** +@@ -1760,7 +1749,7 @@ NetbufGetByte ( + NET_BUF * + EFIAPI + NetbufClone ( +- IN NET_BUF *Nbuf ++ IN NET_BUF *Nbuf + ); + + /** +@@ -1782,9 +1771,9 @@ NetbufClone ( + NET_BUF * + EFIAPI + NetbufDuplicate ( +- IN NET_BUF *Nbuf, +- IN OUT NET_BUF *Duplicate OPTIONAL, +- IN UINT32 HeadSpace ++ IN NET_BUF *Nbuf, ++ IN OUT NET_BUF *Duplicate OPTIONAL, ++ IN UINT32 HeadSpace + ); + + /** +@@ -1807,10 +1796,10 @@ NetbufDuplicate ( + NET_BUF * + EFIAPI + NetbufGetFragment ( +- IN NET_BUF *Nbuf, +- IN UINT32 Offset, +- IN UINT32 Len, +- IN UINT32 HeadSpace ++ IN NET_BUF *Nbuf, ++ IN UINT32 Offset, ++ IN UINT32 Len, ++ IN UINT32 HeadSpace + ); + + /** +@@ -1828,8 +1817,8 @@ NetbufGetFragment ( + VOID + EFIAPI + NetbufReserve ( +- IN OUT NET_BUF *Nbuf, +- IN UINT32 Len ++ IN OUT NET_BUF *Nbuf, ++ IN UINT32 Len + ); + + /** +@@ -1844,12 +1833,12 @@ NetbufReserve ( + or NULL, if there is no sufficient space. + + **/ +-UINT8* ++UINT8 * + EFIAPI + NetbufAllocSpace ( +- IN OUT NET_BUF *Nbuf, +- IN UINT32 Len, +- IN BOOLEAN FromHead ++ IN OUT NET_BUF *Nbuf, ++ IN UINT32 Len, ++ IN BOOLEAN FromHead + ); + + /** +@@ -1867,9 +1856,9 @@ NetbufAllocSpace ( + UINT32 + EFIAPI + NetbufTrim ( +- IN OUT NET_BUF *Nbuf, +- IN UINT32 Len, +- IN BOOLEAN FromHead ++ IN OUT NET_BUF *Nbuf, ++ IN UINT32 Len, ++ IN BOOLEAN FromHead + ); + + /** +@@ -1890,10 +1879,10 @@ NetbufTrim ( + UINT32 + EFIAPI + NetbufCopy ( +- IN NET_BUF *Nbuf, +- IN UINT32 Offset, +- IN UINT32 Len, +- IN UINT8 *Dest ++ IN NET_BUF *Nbuf, ++ IN UINT32 Offset, ++ IN UINT32 Len, ++ IN UINT8 *Dest + ); + + /** +@@ -1921,12 +1910,12 @@ NetbufCopy ( + NET_BUF * + EFIAPI + NetbufFromExt ( +- IN NET_FRAGMENT *ExtFragment, +- IN UINT32 ExtNum, +- IN UINT32 HeadSpace, +- IN UINT32 HeadLen, +- IN NET_VECTOR_EXT_FREE ExtFree, +- IN VOID *Arg OPTIONAL ++ IN NET_FRAGMENT *ExtFragment, ++ IN UINT32 ExtNum, ++ IN UINT32 HeadSpace, ++ IN UINT32 HeadLen, ++ IN NET_VECTOR_EXT_FREE ExtFree, ++ IN VOID *Arg OPTIONAL + ); + + /** +@@ -1945,9 +1934,9 @@ NetbufFromExt ( + EFI_STATUS + EFIAPI + NetbufBuildExt ( +- IN NET_BUF *Nbuf, +- IN OUT NET_FRAGMENT *ExtFragment, +- IN OUT UINT32 *ExtNum ++ IN NET_BUF *Nbuf, ++ IN OUT NET_FRAGMENT *ExtFragment, ++ IN OUT UINT32 *ExtNum + ); + + /** +@@ -1970,11 +1959,11 @@ NetbufBuildExt ( + NET_BUF * + EFIAPI + NetbufFromBufList ( +- IN LIST_ENTRY *BufList, +- IN UINT32 HeadSpace, +- IN UINT32 HeaderLen, +- IN NET_VECTOR_EXT_FREE ExtFree, +- IN VOID *Arg OPTIONAL ++ IN LIST_ENTRY *BufList, ++ IN UINT32 HeadSpace, ++ IN UINT32 HeaderLen, ++ IN NET_VECTOR_EXT_FREE ExtFree, ++ IN VOID *Arg OPTIONAL + ); + + /** +@@ -1986,7 +1975,7 @@ NetbufFromBufList ( + VOID + EFIAPI + NetbufFreeList ( +- IN OUT LIST_ENTRY *Head ++ IN OUT LIST_ENTRY *Head + ); + + /** +@@ -1998,7 +1987,7 @@ NetbufFreeList ( + VOID + EFIAPI + NetbufQueInit ( +- IN OUT NET_BUF_QUEUE *NbufQue ++ IN OUT NET_BUF_QUEUE *NbufQue + ); + + /** +@@ -2027,7 +2016,7 @@ NetbufQueAlloc ( + VOID + EFIAPI + NetbufQueFree ( +- IN NET_BUF_QUEUE *NbufQue ++ IN NET_BUF_QUEUE *NbufQue + ); + + /** +@@ -2042,7 +2031,7 @@ NetbufQueFree ( + NET_BUF * + EFIAPI + NetbufQueRemove ( +- IN OUT NET_BUF_QUEUE *NbufQue ++ IN OUT NET_BUF_QUEUE *NbufQue + ); + + /** +@@ -2055,8 +2044,8 @@ NetbufQueRemove ( + VOID + EFIAPI + NetbufQueAppend ( +- IN OUT NET_BUF_QUEUE *NbufQue, +- IN OUT NET_BUF *Nbuf ++ IN OUT NET_BUF_QUEUE *NbufQue, ++ IN OUT NET_BUF *Nbuf + ); + + /** +@@ -2078,10 +2067,10 @@ NetbufQueAppend ( + UINT32 + EFIAPI + NetbufQueCopy ( +- IN NET_BUF_QUEUE *NbufQue, +- IN UINT32 Offset, +- IN UINT32 Len, +- OUT UINT8 *Dest ++ IN NET_BUF_QUEUE *NbufQue, ++ IN UINT32 Offset, ++ IN UINT32 Len, ++ OUT UINT8 *Dest + ); + + /** +@@ -2100,11 +2089,10 @@ NetbufQueCopy ( + UINT32 + EFIAPI + NetbufQueTrim ( +- IN OUT NET_BUF_QUEUE *NbufQue, +- IN UINT32 Len ++ IN OUT NET_BUF_QUEUE *NbufQue, ++ IN UINT32 Len + ); + +- + /** + Flush the net buffer queue. + +@@ -2114,7 +2102,7 @@ NetbufQueTrim ( + VOID + EFIAPI + NetbufQueFlush ( +- IN OUT NET_BUF_QUEUE *NbufQue ++ IN OUT NET_BUF_QUEUE *NbufQue + ); + + /** +@@ -2129,8 +2117,8 @@ NetbufQueFlush ( + UINT16 + EFIAPI + NetblockChecksum ( +- IN UINT8 *Bulk, +- IN UINT32 Len ++ IN UINT8 *Bulk, ++ IN UINT32 Len + ); + + /** +@@ -2145,8 +2133,8 @@ NetblockChecksum ( + UINT16 + EFIAPI + NetAddChecksum ( +- IN UINT16 Checksum1, +- IN UINT16 Checksum2 ++ IN UINT16 Checksum1, ++ IN UINT16 Checksum2 + ); + + /** +@@ -2160,7 +2148,7 @@ NetAddChecksum ( + UINT16 + EFIAPI + NetbufChecksum ( +- IN NET_BUF *Nbuf ++ IN NET_BUF *Nbuf + ); + + /** +@@ -2179,10 +2167,10 @@ NetbufChecksum ( + UINT16 + EFIAPI + NetPseudoHeadChecksum ( +- IN IP4_ADDR Src, +- IN IP4_ADDR Dst, +- IN UINT8 Proto, +- IN UINT16 Len ++ IN IP4_ADDR Src, ++ IN IP4_ADDR Dst, ++ IN UINT8 Proto, ++ IN UINT16 Len + ); + + /** +@@ -2201,10 +2189,10 @@ NetPseudoHeadChecksum ( + UINT16 + EFIAPI + NetIp6PseudoHeadChecksum ( +- IN EFI_IPv6_ADDRESS *Src, +- IN EFI_IPv6_ADDRESS *Dst, +- IN UINT8 NextHeader, +- IN UINT32 Len ++ IN EFI_IPv6_ADDRESS *Src, ++ IN EFI_IPv6_ADDRESS *Dst, ++ IN UINT8 NextHeader, ++ IN UINT32 Len + ); + + /** +@@ -2220,7 +2208,7 @@ NetIp6PseudoHeadChecksum ( + **/ + VOID + NetIpSecNetbufFree ( +- NET_BUF *Nbuf ++ NET_BUF *Nbuf + ); + + /** +@@ -2237,7 +2225,7 @@ NetIpSecNetbufFree ( + EFI_STATUS + EFIAPI + NetLibGetSystemGuid ( +- OUT EFI_GUID *SystemGuid ++ OUT EFI_GUID *SystemGuid + ); + + /** +@@ -2260,7 +2248,7 @@ NetLibGetSystemGuid ( + CHAR8 * + EFIAPI + NetLibCreateDnsQName ( +- IN CHAR16 *DomainName ++ IN CHAR16 *DomainName + ); + + #endif +diff --git a/NetworkPkg/Ip4Dxe/Ip4Driver.c b/NetworkPkg/Ip4Dxe/Ip4Driver.c +index 7fed659ca1..ec483ff01f 100644 +--- a/NetworkPkg/Ip4Dxe/Ip4Driver.c ++++ b/NetworkPkg/Ip4Dxe/Ip4Driver.c +@@ -10,7 +10,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent + + #include "Ip4Impl.h" + +-EFI_DRIVER_BINDING_PROTOCOL gIp4DriverBinding = { ++EFI_DRIVER_BINDING_PROTOCOL gIp4DriverBinding = { + Ip4DriverBindingSupported, + Ip4DriverBindingStart, + Ip4DriverBindingStop, +@@ -35,13 +35,14 @@ IpSec2InstalledCallback ( + IN VOID *Context + ) + { +- EFI_STATUS Status; ++ EFI_STATUS Status; ++ + // + // Test if protocol was even found. + // Notification function will be called at least once. + // + Status = gBS->LocateProtocol (&gEfiIpSec2ProtocolGuid, NULL, (VOID **)&mIpSec); +- if (Status == EFI_SUCCESS && mIpSec != NULL) { ++ if ((Status == EFI_SUCCESS) && (mIpSec != NULL)) { + // + // Close the event so it does not get called again. + // +@@ -69,11 +70,11 @@ IpSec2InstalledCallback ( + EFI_STATUS + EFIAPI + Ip4DriverEntryPoint ( +- IN EFI_HANDLE ImageHandle, +- IN EFI_SYSTEM_TABLE *SystemTable ++ IN EFI_HANDLE ImageHandle, ++ IN EFI_SYSTEM_TABLE *SystemTable + ) + { +- VOID *Registration; ++ VOID *Registration; + + EfiCreateProtocolNotifyEvent ( + &gEfiIpSec2ProtocolGuid, +@@ -114,12 +115,12 @@ Ip4DriverEntryPoint ( + EFI_STATUS + EFIAPI + Ip4DriverBindingSupported ( +- IN EFI_DRIVER_BINDING_PROTOCOL * This, ++ IN EFI_DRIVER_BINDING_PROTOCOL *This, + IN EFI_HANDLE ControllerHandle, +- IN EFI_DEVICE_PATH_PROTOCOL * RemainingDevicePath OPTIONAL ++ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL + ) + { +- EFI_STATUS Status; ++ EFI_STATUS Status; + + // + // Test for the MNP service binding Protocol +@@ -167,10 +168,9 @@ Ip4DriverBindingSupported ( + **/ + EFI_STATUS + Ip4CleanService ( +- IN IP4_SERVICE *IpSb ++ IN IP4_SERVICE *IpSb + ); + +- + /** + Create a new IP4 driver service binding private instance. + +@@ -187,13 +187,13 @@ Ip4CleanService ( + **/ + EFI_STATUS + Ip4CreateService ( +- IN EFI_HANDLE Controller, +- IN EFI_HANDLE ImageHandle, +- OUT IP4_SERVICE **Service ++ IN EFI_HANDLE Controller, ++ IN EFI_HANDLE ImageHandle, ++ OUT IP4_SERVICE **Service + ) + { +- IP4_SERVICE *IpSb; +- EFI_STATUS Status; ++ IP4_SERVICE *IpSb; ++ EFI_STATUS Status; + + ASSERT (Service != NULL); + +@@ -215,23 +215,23 @@ Ip4CreateService ( + IpSb->ServiceBinding.DestroyChild = Ip4ServiceBindingDestroyChild; + IpSb->State = IP4_SERVICE_UNSTARTED; + +- IpSb->NumChildren = 0; ++ IpSb->NumChildren = 0; + InitializeListHead (&IpSb->Children); + + InitializeListHead (&IpSb->Interfaces); +- IpSb->DefaultInterface = NULL; +- IpSb->DefaultRouteTable = NULL; ++ IpSb->DefaultInterface = NULL; ++ IpSb->DefaultRouteTable = NULL; + + Ip4InitAssembleTable (&IpSb->Assemble); + +- IpSb->IgmpCtrl.Igmpv1QuerySeen = 0; ++ IpSb->IgmpCtrl.Igmpv1QuerySeen = 0; + InitializeListHead (&IpSb->IgmpCtrl.Groups); + +- IpSb->Image = ImageHandle; +- IpSb->Controller = Controller; ++ IpSb->Image = ImageHandle; ++ IpSb->Controller = Controller; + +- IpSb->MnpChildHandle = NULL; +- IpSb->Mnp = NULL; ++ IpSb->MnpChildHandle = NULL; ++ IpSb->Mnp = NULL; + + IpSb->MnpConfigData.ReceivedQueueTimeoutValue = 0; + IpSb->MnpConfigData.TransmitQueueTimeoutValue = 0; +@@ -246,7 +246,7 @@ Ip4CreateService ( + + ZeroMem (&IpSb->SnpMode, sizeof (EFI_SIMPLE_NETWORK_MODE)); + +- IpSb->Timer = NULL; ++ IpSb->Timer = NULL; + IpSb->ReconfigCheckTimer = NULL; + + IpSb->ReconfigEvent = NULL; +@@ -316,7 +316,7 @@ Ip4CreateService ( + Status = gBS->OpenProtocol ( + IpSb->MnpChildHandle, + &gEfiManagedNetworkProtocolGuid, +- (VOID **) &IpSb->Mnp, ++ (VOID **)&IpSb->Mnp, + ImageHandle, + Controller, + EFI_OPEN_PROTOCOL_BY_DRIVER +@@ -345,7 +345,7 @@ Ip4CreateService ( + } + + IpSb->MacString = NULL; +- Status = NetLibGetMacString (IpSb->Controller, IpSb->Image, &IpSb->MacString); ++ Status = NetLibGetMacString (IpSb->Controller, IpSb->Image, &IpSb->MacString); + + if (EFI_ERROR (Status)) { + goto ON_ERROR; +@@ -375,8 +375,9 @@ Ip4CreateService ( + // + IpSb->MaxPacketSize -= NET_VLAN_TAG_LEN; + } ++ + IpSb->OldMaxPacketSize = IpSb->MaxPacketSize; +- *Service = IpSb; ++ *Service = IpSb; + + return EFI_SUCCESS; + +@@ -387,7 +388,6 @@ ON_ERROR: + return Status; + } + +- + /** + Clean up a IP4 service binding instance. It will release all + the resource allocated by the instance. The instance may be +@@ -403,12 +403,12 @@ ON_ERROR: + **/ + EFI_STATUS + Ip4CleanService ( +- IN IP4_SERVICE *IpSb ++ IN IP4_SERVICE *IpSb + ) + { +- EFI_STATUS Status; ++ EFI_STATUS Status; + +- IpSb->State = IP4_SERVICE_DESTROY; ++ IpSb->State = IP4_SERVICE_DESTROY; + + if (IpSb->Timer != NULL) { + gBS->SetTimer (IpSb->Timer, TimerCancel, 0); +@@ -493,8 +493,8 @@ Ip4CleanService ( + EFI_STATUS + EFIAPI + Ip4DestroyChildEntryInHandleBuffer ( +- IN LIST_ENTRY *Entry, +- IN VOID *Context ++ IN LIST_ENTRY *Entry, ++ IN VOID *Context + ) + { + IP4_PROTOCOL *IpInstance; +@@ -502,14 +502,14 @@ Ip4DestroyChildEntryInHandleBuffer ( + UINTN NumberOfChildren; + EFI_HANDLE *ChildHandleBuffer; + +- if (Entry == NULL || Context == NULL) { ++ if ((Entry == NULL) || (Context == NULL)) { + return EFI_INVALID_PARAMETER; + } + +- IpInstance = NET_LIST_USER_STRUCT_S (Entry, IP4_PROTOCOL, Link, IP4_PROTOCOL_SIGNATURE); +- ServiceBinding = ((IP4_DESTROY_CHILD_IN_HANDLE_BUF_CONTEXT *) Context)->ServiceBinding; +- NumberOfChildren = ((IP4_DESTROY_CHILD_IN_HANDLE_BUF_CONTEXT *) Context)->NumberOfChildren; +- ChildHandleBuffer = ((IP4_DESTROY_CHILD_IN_HANDLE_BUF_CONTEXT *) Context)->ChildHandleBuffer; ++ IpInstance = NET_LIST_USER_STRUCT_S (Entry, IP4_PROTOCOL, Link, IP4_PROTOCOL_SIGNATURE); ++ ServiceBinding = ((IP4_DESTROY_CHILD_IN_HANDLE_BUF_CONTEXT *)Context)->ServiceBinding; ++ NumberOfChildren = ((IP4_DESTROY_CHILD_IN_HANDLE_BUF_CONTEXT *)Context)->NumberOfChildren; ++ ChildHandleBuffer = ((IP4_DESTROY_CHILD_IN_HANDLE_BUF_CONTEXT *)Context)->ChildHandleBuffer; + + if (!NetIsInHandleBuffer (IpInstance->Handle, NumberOfChildren, ChildHandleBuffer)) { + return EFI_SUCCESS; +@@ -544,11 +544,11 @@ Ip4DriverBindingStart ( + IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL + ) + { +- EFI_STATUS Status; +- IP4_SERVICE *IpSb; +- EFI_IP4_CONFIG2_PROTOCOL *Ip4Cfg2; +- UINTN Index; +- IP4_CONFIG2_DATA_ITEM *DataItem; ++ EFI_STATUS Status; ++ IP4_SERVICE *IpSb; ++ EFI_IP4_CONFIG2_PROTOCOL *Ip4Cfg2; ++ UINTN Index; ++ IP4_CONFIG2_DATA_ITEM *DataItem; + + IpSb = NULL; + Ip4Cfg2 = NULL; +@@ -578,7 +578,7 @@ Ip4DriverBindingStart ( + + ASSERT (IpSb != NULL); + +- Ip4Cfg2 = &IpSb->Ip4Config2Instance.Ip4Config2; ++ Ip4Cfg2 = &IpSb->Ip4Config2Instance.Ip4Config2; + + // + // Install the Ip4ServiceBinding Protocol onto ControllerHandle +@@ -617,11 +617,11 @@ Ip4DriverBindingStart ( + DataItem->DataSize, + DataItem->Data.Ptr + ); +- if (EFI_ERROR(Status)) { ++ if (EFI_ERROR (Status)) { + goto UNINSTALL_PROTOCOL; + } + +- if (Index == Ip4Config2DataTypePolicy && (*(DataItem->Data.Policy) == Ip4Config2PolicyDhcp)) { ++ if ((Index == Ip4Config2DataTypePolicy) && (*(DataItem->Data.Policy) == Ip4Config2PolicyDhcp)) { + break; + } + } +@@ -634,7 +634,7 @@ Ip4DriverBindingStart ( + // + Status = Ip4ReceiveFrame (IpSb->DefaultInterface, NULL, Ip4AccpetFrame, IpSb); + +- if (EFI_ERROR (Status) && Status != EFI_ALREADY_STARTED) { ++ if (EFI_ERROR (Status) && (Status != EFI_ALREADY_STARTED)) { + goto UNINSTALL_PROTOCOL; + } + +@@ -673,7 +673,6 @@ FREE_SERVICE: + return Status; + } + +- + /** + Stop this driver on ControllerHandle. This service is called by the + EFI boot service DisconnectController(). In order to +@@ -711,9 +710,9 @@ Ip4DriverBindingStop ( + IP4_INTERFACE *IpIf; + IP4_ROUTE_TABLE *RouteTable; + +- BOOLEAN IsDhcp4; ++ BOOLEAN IsDhcp4; + +- IsDhcp4 = FALSE; ++ IsDhcp4 = FALSE; + + NicHandle = NetLibGetNicHandle (ControllerHandle, &gEfiManagedNetworkProtocolGuid); + if (NicHandle == NULL) { +@@ -731,7 +730,7 @@ Ip4DriverBindingStop ( + Status = gBS->OpenProtocol ( + NicHandle, + &gEfiIp4ServiceBindingProtocolGuid, +- (VOID **) &ServiceBinding, ++ (VOID **)&ServiceBinding, + This->DriverBindingHandle, + NicHandle, + EFI_OPEN_PROTOCOL_GET_PROTOCOL +@@ -747,18 +746,17 @@ Ip4DriverBindingStop ( + gBS->CloseEvent (IpSb->Ip4Config2Instance.Dhcp4Event); + IpSb->Ip4Config2Instance.Dhcp4Event = NULL; + } else if (NumberOfChildren != 0) { +- List = &IpSb->Children; ++ List = &IpSb->Children; + Context.ServiceBinding = ServiceBinding; + Context.NumberOfChildren = NumberOfChildren; + Context.ChildHandleBuffer = ChildHandleBuffer; +- Status = NetDestroyLinkList ( +- List, +- Ip4DestroyChildEntryInHandleBuffer, +- &Context, +- NULL +- ); ++ Status = NetDestroyLinkList ( ++ List, ++ Ip4DestroyChildEntryInHandleBuffer, ++ &Context, ++ NULL ++ ); + } else if (IpSb->DefaultInterface->ArpHandle == ControllerHandle) { +- + // + // The ARP protocol for the default interface is being uninstalled and all + // its IP child handles should have been destroyed before. So, release the +@@ -772,21 +770,21 @@ Ip4DriverBindingStop ( + if (IpIf == NULL) { + goto ON_ERROR; + } ++ + RouteTable = Ip4CreateRouteTable (); + if (RouteTable == NULL) { + Ip4FreeInterface (IpIf, NULL); +- goto ON_ERROR;; ++ goto ON_ERROR; + } + +- IpSb->DefaultInterface = IpIf; ++ IpSb->DefaultInterface = IpIf; + InsertHeadList (&IpSb->Interfaces, &IpIf->Link); + IpSb->DefaultRouteTable = RouteTable; + Ip4ReceiveFrame (IpIf, NULL, Ip4AccpetFrame, IpSb); + + IpSb->State = IP4_SERVICE_UNSTARTED; +- + } else if (IsListEmpty (&IpSb->Children)) { +- State = IpSb->State; ++ State = IpSb->State; + // + // OK, clean other resources then uninstall the service binding protocol. + // +@@ -809,6 +807,7 @@ Ip4DriverBindingStop ( + FreeUnicodeStringTable (gIp4ControllerNameTable); + gIp4ControllerNameTable = NULL; + } ++ + FreePool (IpSb); + } + +@@ -816,7 +815,6 @@ ON_ERROR: + return Status; + } + +- + /** + Creates a child handle and installs a protocol. + +@@ -843,11 +841,11 @@ Ip4ServiceBindingCreateChild ( + IN OUT EFI_HANDLE *ChildHandle + ) + { +- IP4_SERVICE *IpSb; +- IP4_PROTOCOL *IpInstance; +- EFI_TPL OldTpl; +- EFI_STATUS Status; +- VOID *Mnp; ++ IP4_SERVICE *IpSb; ++ IP4_PROTOCOL *IpInstance; ++ EFI_TPL OldTpl; ++ EFI_STATUS Status; ++ VOID *Mnp; + + if ((This == NULL) || (ChildHandle == NULL)) { + return EFI_INVALID_PARAMETER; +@@ -884,7 +882,7 @@ Ip4ServiceBindingCreateChild ( + Status = gBS->OpenProtocol ( + IpSb->MnpChildHandle, + &gEfiManagedNetworkProtocolGuid, +- (VOID **) &Mnp, ++ (VOID **)&Mnp, + gIp4DriverBinding.DriverBindingHandle, + IpInstance->Handle, + EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER +@@ -913,7 +911,6 @@ Ip4ServiceBindingCreateChild ( + ON_ERROR: + + if (EFI_ERROR (Status)) { +- + Ip4CleanProtocol (IpInstance); + + FreePool (IpInstance); +@@ -922,7 +919,6 @@ ON_ERROR: + return Status; + } + +- + /** + Destroys a child handle with a protocol installed on it. + +@@ -948,11 +944,11 @@ Ip4ServiceBindingDestroyChild ( + IN EFI_HANDLE ChildHandle + ) + { +- EFI_STATUS Status; +- IP4_SERVICE *IpSb; +- IP4_PROTOCOL *IpInstance; +- EFI_IP4_PROTOCOL *Ip4; +- EFI_TPL OldTpl; ++ EFI_STATUS Status; ++ IP4_SERVICE *IpSb; ++ IP4_PROTOCOL *IpInstance; ++ EFI_IP4_PROTOCOL *Ip4; ++ EFI_TPL OldTpl; + + if ((This == NULL) || (ChildHandle == NULL)) { + return EFI_INVALID_PARAMETER; +@@ -961,12 +957,12 @@ Ip4ServiceBindingDestroyChild ( + // + // Retrieve the private context data structures + // +- IpSb = IP4_SERVICE_FROM_PROTOCOL (This); ++ IpSb = IP4_SERVICE_FROM_PROTOCOL (This); + + Status = gBS->OpenProtocol ( + ChildHandle, + &gEfiIp4ProtocolGuid, +- (VOID **) &Ip4, ++ (VOID **)&Ip4, + gIp4DriverBinding.DriverBindingHandle, + ChildHandle, + EFI_OPEN_PROTOCOL_GET_PROTOCOL +@@ -1007,7 +1003,7 @@ Ip4ServiceBindingDestroyChild ( + ChildHandle + ); + +- if (IpInstance->Interface != NULL && IpInstance->Interface->Arp != NULL) { ++ if ((IpInstance->Interface != NULL) && (IpInstance->Interface->Arp != NULL)) { + gBS->CloseProtocol ( + IpInstance->Interface->ArpHandle, + &gEfiArpProtocolGuid, +diff --git a/NetworkPkg/Ip6Dxe/Ip6If.c b/NetworkPkg/Ip6Dxe/Ip6If.c +index 5b46971057..4629c05f25 100644 +--- a/NetworkPkg/Ip6Dxe/Ip6If.c ++++ b/NetworkPkg/Ip6Dxe/Ip6If.c +@@ -19,8 +19,8 @@ + VOID + EFIAPI + Ip6OnFrameSent ( +- IN EFI_EVENT Event, +- IN VOID *Context ++ IN EFI_EVENT Event, ++ IN VOID *Context + ); + + /** +@@ -37,11 +37,11 @@ Ip6OnFrameSent ( + **/ + BOOLEAN + Ip6CancelInstanceFrame ( +- IN IP6_LINK_TX_TOKEN *Frame, +- IN VOID *Context ++ IN IP6_LINK_TX_TOKEN *Frame, ++ IN VOID *Context + ) + { +- if (Frame->IpInstance == (IP6_PROTOCOL *) Context) { ++ if (Frame->IpInstance == (IP6_PROTOCOL *)Context) { + return TRUE; + } + +@@ -73,14 +73,14 @@ Ip6CancelInstanceFrame ( + **/ + EFI_STATUS + Ip6SetAddress ( +- IN IP6_INTERFACE *Interface, +- IN EFI_IPv6_ADDRESS *Ip6Addr, +- IN BOOLEAN IsAnycast, +- IN UINT8 PrefixLength, +- IN UINT32 ValidLifetime, +- IN UINT32 PreferredLifetime, +- IN IP6_DAD_CALLBACK DadCallback OPTIONAL, +- IN VOID *Context OPTIONAL ++ IN IP6_INTERFACE *Interface, ++ IN EFI_IPv6_ADDRESS *Ip6Addr, ++ IN BOOLEAN IsAnycast, ++ IN UINT8 PrefixLength, ++ IN UINT32 ValidLifetime, ++ IN UINT32 PreferredLifetime, ++ IN IP6_DAD_CALLBACK DadCallback OPTIONAL, ++ IN VOID *Context OPTIONAL + ) + { + IP6_SERVICE *IpSb; +@@ -109,12 +109,12 @@ Ip6SetAddress ( + return EFI_SUCCESS; + } + +- AddressInfo = (IP6_ADDRESS_INFO *) AllocatePool (sizeof (IP6_ADDRESS_INFO)); ++ AddressInfo = (IP6_ADDRESS_INFO *)AllocatePool (sizeof (IP6_ADDRESS_INFO)); + if (AddressInfo == NULL) { + return EFI_OUT_OF_RESOURCES; + } + +- AddressInfo->Signature = IP6_ADDR_INFO_SIGNATURE; ++ AddressInfo->Signature = IP6_ADDR_INFO_SIGNATURE; + IP6_COPY_ADDRESS (&AddressInfo->Address, Ip6Addr); + AddressInfo->IsAnycast = IsAnycast; + AddressInfo->PrefixLength = PrefixLength; +@@ -158,24 +158,23 @@ Ip6SetAddress ( + AddressInfo->PrefixLength = IP6_LINK_LOCAL_PREFIX_LENGTH; + } + +- + // + // Node should delay joining the solicited-node multicast address by a random delay + // between 0 and MAX_RTR_SOLICITATION_DELAY (1 second). + // Thus queue the address to be processed in Duplicate Address Detection module + // after the delay time (in milliseconds). + // +- Delay = (UINT64) NET_RANDOM (NetRandomInitSeed ()); ++ Delay = (UINT64)NET_RANDOM (NetRandomInitSeed ()); + Delay = MultU64x32 (Delay, IP6_ONE_SECOND_IN_MS); + Delay = RShiftU64 (Delay, 32); + +- DelayNode = (IP6_DELAY_JOIN_LIST *) AllocatePool (sizeof (IP6_DELAY_JOIN_LIST)); ++ DelayNode = (IP6_DELAY_JOIN_LIST *)AllocatePool (sizeof (IP6_DELAY_JOIN_LIST)); + if (DelayNode == NULL) { + FreePool (AddressInfo); + return EFI_OUT_OF_RESOURCES; + } + +- DelayNode->DelayTime = (UINT32) (DivU64x32 (Delay, IP6_TIMER_INTERVAL_IN_MS)); ++ DelayNode->DelayTime = (UINT32)(DivU64x32 (Delay, IP6_TIMER_INTERVAL_IN_MS)); + DelayNode->Interface = Interface; + DelayNode->AddressInfo = AddressInfo; + DelayNode->DadCallback = DadCallback; +@@ -197,13 +196,13 @@ Ip6SetAddress ( + **/ + IP6_INTERFACE * + Ip6CreateInterface ( +- IN IP6_SERVICE *IpSb, +- IN BOOLEAN LinkLocal ++ IN IP6_SERVICE *IpSb, ++ IN BOOLEAN LinkLocal + ) + { +- EFI_STATUS Status; +- IP6_INTERFACE *Interface; +- EFI_IPv6_ADDRESS *Ip6Addr; ++ EFI_STATUS Status; ++ IP6_INTERFACE *Interface; ++ EFI_IPv6_ADDRESS *Ip6Addr; + + NET_CHECK_SIGNATURE (IpSb, IP6_SERVICE_SIGNATURE); + +@@ -212,27 +211,27 @@ Ip6CreateInterface ( + return NULL; + } + +- Interface->Signature = IP6_INTERFACE_SIGNATURE; +- Interface->RefCnt = 1; ++ Interface->Signature = IP6_INTERFACE_SIGNATURE; ++ Interface->RefCnt = 1; + + InitializeListHead (&Interface->AddressList); +- Interface->AddressCount = 0; +- Interface->Configured = FALSE; ++ Interface->AddressCount = 0; ++ Interface->Configured = FALSE; + +- Interface->Service = IpSb; +- Interface->Controller = IpSb->Controller; +- Interface->Image = IpSb->Image; ++ Interface->Service = IpSb; ++ Interface->Controller = IpSb->Controller; ++ Interface->Image = IpSb->Image; + + InitializeListHead (&Interface->ArpQues); + InitializeListHead (&Interface->SentFrames); + +- Interface->DupAddrDetect = IpSb->Ip6ConfigInstance.DadXmits.DupAddrDetectTransmits; ++ Interface->DupAddrDetect = IpSb->Ip6ConfigInstance.DadXmits.DupAddrDetectTransmits; + InitializeListHead (&Interface->DupAddrDetectList); + + InitializeListHead (&Interface->DelayJoinList); + + InitializeListHead (&Interface->IpInstances); +- Interface->PromiscRecv = FALSE; ++ Interface->PromiscRecv = FALSE; + + if (!LinkLocal) { + return Interface; +@@ -254,8 +253,8 @@ Ip6CreateInterface ( + Ip6Addr, + FALSE, + IP6_LINK_LOCAL_PREFIX_LENGTH, +- (UINT32) IP6_INFINIT_LIFETIME, +- (UINT32) IP6_INFINIT_LIFETIME, ++ (UINT32)IP6_INFINIT_LIFETIME, ++ (UINT32)IP6_INFINIT_LIFETIME, + NULL, + NULL + ); +@@ -288,12 +287,12 @@ ON_ERROR: + **/ + VOID + Ip6CleanInterface ( +- IN IP6_INTERFACE *Interface, +- IN IP6_PROTOCOL *IpInstance OPTIONAL ++ IN IP6_INTERFACE *Interface, ++ IN IP6_PROTOCOL *IpInstance OPTIONAL + ) + { +- IP6_DAD_ENTRY *Duplicate; +- IP6_DELAY_JOIN_LIST *Delay; ++ IP6_DAD_ENTRY *Duplicate; ++ IP6_DELAY_JOIN_LIST *Delay; + + NET_CHECK_SIGNATURE (Interface, IP6_INTERFACE_SIGNATURE); + ASSERT (Interface->RefCnt > 0); +@@ -352,11 +351,11 @@ Ip6CleanInterface ( + **/ + IP6_LINK_TX_TOKEN * + Ip6CreateLinkTxToken ( +- IN IP6_INTERFACE *Interface, +- IN IP6_PROTOCOL *IpInstance OPTIONAL, +- IN NET_BUF *Packet, +- IN IP6_FRAME_CALLBACK CallBack, +- IN VOID *Context ++ IN IP6_INTERFACE *Interface, ++ IN IP6_PROTOCOL *IpInstance OPTIONAL, ++ IN NET_BUF *Packet, ++ IN IP6_FRAME_CALLBACK CallBack, ++ IN VOID *Context + ) + { + EFI_MANAGED_NETWORK_COMPLETION_TOKEN *MnpToken; +@@ -381,8 +380,8 @@ Ip6CreateLinkTxToken ( + ZeroMem (&Token->DstMac, sizeof (EFI_MAC_ADDRESS)); + IP6_COPY_LINK_ADDRESS (&Token->SrcMac, &Interface->Service->SnpMode.CurrentAddress); + +- MnpToken = &(Token->MnpToken); +- MnpToken->Status = EFI_NOT_READY; ++ MnpToken = &(Token->MnpToken); ++ MnpToken->Status = EFI_NOT_READY; + + Status = gBS->CreateEvent ( + EVT_NOTIFY_SIGNAL, +@@ -397,8 +396,8 @@ Ip6CreateLinkTxToken ( + return NULL; + } + +- MnpTxData = &Token->MnpTxData; +- MnpToken->Packet.TxData = MnpTxData; ++ MnpTxData = &Token->MnpTxData; ++ MnpToken->Packet.TxData = MnpTxData; + + MnpTxData->DestinationAddress = &Token->DstMac; + MnpTxData->SourceAddress = &Token->SrcMac; +@@ -406,10 +405,10 @@ Ip6CreateLinkTxToken ( + MnpTxData->DataLength = Packet->TotalSize; + MnpTxData->HeaderLength = 0; + +- Count = Packet->BlockOpNum; ++ Count = Packet->BlockOpNum; + +- NetbufBuildExt (Packet, (NET_FRAGMENT *) MnpTxData->FragmentTable, &Count); +- MnpTxData->FragmentCount = (UINT16)Count; ++ NetbufBuildExt (Packet, (NET_FRAGMENT *)MnpTxData->FragmentTable, &Count); ++ MnpTxData->FragmentCount = (UINT16)Count; + + return Token; + } +@@ -423,7 +422,7 @@ Ip6CreateLinkTxToken ( + **/ + VOID + Ip6FreeLinkTxToken ( +- IN IP6_LINK_TX_TOKEN *Token ++ IN IP6_LINK_TX_TOKEN *Token + ) + { + NET_CHECK_SIGNATURE (Token, IP6_LINK_TX_SIGNATURE); +@@ -442,12 +441,12 @@ Ip6FreeLinkTxToken ( + VOID + EFIAPI + Ip6RecycleFrame ( +- IN VOID *Context ++ IN VOID *Context + ) + { + EFI_MANAGED_NETWORK_RECEIVE_DATA *RxData; + +- RxData = (EFI_MANAGED_NETWORK_RECEIVE_DATA *) Context; ++ RxData = (EFI_MANAGED_NETWORK_RECEIVE_DATA *)Context; + + gBS->SignalEvent (RxData->RecycleEvent); + } +@@ -466,7 +465,7 @@ Ip6RecycleFrame ( + VOID + EFIAPI + Ip6OnFrameReceivedDpc ( +- IN VOID *Context ++ IN VOID *Context + ) + { + EFI_MANAGED_NETWORK_COMPLETION_TOKEN *MnpToken; +@@ -477,23 +476,22 @@ Ip6OnFrameReceivedDpc ( + UINT32 Flag; + IP6_SERVICE *IpSb; + +- Token = (IP6_LINK_RX_TOKEN *) Context; ++ Token = (IP6_LINK_RX_TOKEN *)Context; + NET_CHECK_SIGNATURE (Token, IP6_LINK_RX_SIGNATURE); + + // + // First clear the interface's receive request in case the + // caller wants to call Ip6ReceiveFrame in the callback. + // +- IpSb = (IP6_SERVICE *) Token->Context; ++ IpSb = (IP6_SERVICE *)Token->Context; + NET_CHECK_SIGNATURE (IpSb, IP6_SERVICE_SIGNATURE); + +- + MnpToken = &Token->MnpToken; + MnpRxData = MnpToken->Packet.RxData; + + if (EFI_ERROR (MnpToken->Status) || (MnpRxData == NULL)) { + Token->CallBack (NULL, MnpToken->Status, 0, Token->Context); +- return ; ++ return; + } + + // +@@ -510,7 +508,7 @@ Ip6OnFrameReceivedDpc ( + + Token->CallBack (NULL, EFI_OUT_OF_RESOURCES, 0, Token->Context); + +- return ; ++ return; + } + + Flag = (MnpRxData->BroadcastFlag ? IP6_LINK_BROADCAST : 0); +@@ -530,8 +528,8 @@ Ip6OnFrameReceivedDpc ( + VOID + EFIAPI + Ip6OnFrameReceived ( +- IN EFI_EVENT Event, +- IN VOID *Context ++ IN EFI_EVENT Event, ++ IN VOID *Context + ) + { + // +@@ -553,18 +551,18 @@ Ip6OnFrameReceived ( + **/ + EFI_STATUS + Ip6ReceiveFrame ( +- IN IP6_FRAME_CALLBACK CallBack, +- IN IP6_SERVICE *IpSb ++ IN IP6_FRAME_CALLBACK CallBack, ++ IN IP6_SERVICE *IpSb + ) + { +- EFI_STATUS Status; +- IP6_LINK_RX_TOKEN *Token; ++ EFI_STATUS Status; ++ IP6_LINK_RX_TOKEN *Token; + + NET_CHECK_SIGNATURE (IpSb, IP6_SERVICE_SIGNATURE); + + Token = &IpSb->RecvRequest; + Token->CallBack = CallBack; +- Token->Context = (VOID *) IpSb; ++ Token->Context = (VOID *)IpSb; + + Status = IpSb->Mnp->Receive (IpSb->Mnp, &Token->MnpToken); + if (EFI_ERROR (Status)) { +@@ -584,22 +582,22 @@ Ip6ReceiveFrame ( + VOID + EFIAPI + Ip6OnFrameSentDpc ( +- IN VOID *Context ++ IN VOID *Context + ) + { +- IP6_LINK_TX_TOKEN *Token; ++ IP6_LINK_TX_TOKEN *Token; + +- Token = (IP6_LINK_TX_TOKEN *) Context; ++ Token = (IP6_LINK_TX_TOKEN *)Context; + NET_CHECK_SIGNATURE (Token, IP6_LINK_TX_SIGNATURE); + + RemoveEntryList (&Token->Link); + + Token->CallBack ( +- Token->Packet, +- Token->MnpToken.Status, +- 0, +- Token->Context +- ); ++ Token->Packet, ++ Token->MnpToken.Status, ++ 0, ++ Token->Context ++ ); + + Ip6FreeLinkTxToken (Token); + } +@@ -614,8 +612,8 @@ Ip6OnFrameSentDpc ( + VOID + EFIAPI + Ip6OnFrameSent ( +- IN EFI_EVENT Event, +- IN VOID *Context ++ IN EFI_EVENT Event, ++ IN VOID *Context + ) + { + // +@@ -646,20 +644,20 @@ Ip6OnFrameSent ( + **/ + EFI_STATUS + Ip6SendFrame ( +- IN IP6_INTERFACE *Interface, +- IN IP6_PROTOCOL *IpInstance OPTIONAL, +- IN NET_BUF *Packet, +- IN EFI_IPv6_ADDRESS *NextHop, +- IN IP6_FRAME_CALLBACK CallBack, +- IN VOID *Context ++ IN IP6_INTERFACE *Interface, ++ IN IP6_PROTOCOL *IpInstance OPTIONAL, ++ IN NET_BUF *Packet, ++ IN EFI_IPv6_ADDRESS *NextHop, ++ IN IP6_FRAME_CALLBACK CallBack, ++ IN VOID *Context + ) + { +- IP6_SERVICE *IpSb; +- IP6_LINK_TX_TOKEN *Token; +- EFI_STATUS Status; +- IP6_NEIGHBOR_ENTRY *NeighborCache; +- LIST_ENTRY *Entry; +- IP6_NEIGHBOR_ENTRY *ArpQue; ++ IP6_SERVICE *IpSb; ++ IP6_LINK_TX_TOKEN *Token; ++ EFI_STATUS Status; ++ IP6_NEIGHBOR_ENTRY *NeighborCache; ++ LIST_ENTRY *Entry; ++ IP6_NEIGHBOR_ENTRY *ArpQue; + + IpSb = Interface->Service; + NET_CHECK_SIGNATURE (IpSb, IP6_SERVICE_SIGNATURE); +@@ -706,21 +704,21 @@ Ip6SendFrame ( + } + + switch (NeighborCache->State) { +- case EfiNeighborStale: +- NeighborCache->State = EfiNeighborDelay; +- NeighborCache->Ticks = (UINT32) IP6_GET_TICKS (IP6_DELAY_FIRST_PROBE_TIME); ++ case EfiNeighborStale: ++ NeighborCache->State = EfiNeighborDelay; ++ NeighborCache->Ticks = (UINT32)IP6_GET_TICKS (IP6_DELAY_FIRST_PROBE_TIME); + // + // Fall through + // +- case EfiNeighborReachable: +- case EfiNeighborDelay: +- case EfiNeighborProbe: +- IP6_COPY_LINK_ADDRESS (&Token->DstMac, &NeighborCache->LinkAddress); +- goto SendNow; +- break; +- +- default: +- break; ++ case EfiNeighborReachable: ++ case EfiNeighborDelay: ++ case EfiNeighborProbe: ++ IP6_COPY_LINK_ADDRESS (&Token->DstMac, &NeighborCache->LinkAddress); ++ goto SendNow; ++ break; ++ ++ default: ++ break; + } + + // +@@ -747,7 +745,7 @@ Ip6SendFrame ( + return EFI_SUCCESS; + + SendNow: +- // ++ // + // Insert the tx token into the SentFrames list before calling Mnp->Transmit. + // Remove it if the returned status is not EFI_SUCCESS. + // +@@ -777,13 +775,13 @@ Error: + VOID + EFIAPI + Ip6TimerTicking ( +- IN EFI_EVENT Event, +- IN VOID *Context ++ IN EFI_EVENT Event, ++ IN VOID *Context + ) + { +- IP6_SERVICE *IpSb; ++ IP6_SERVICE *IpSb; + +- IpSb = (IP6_SERVICE *) Context; ++ IpSb = (IP6_SERVICE *)Context; + NET_CHECK_SIGNATURE (IpSb, IP6_SERVICE_SIGNATURE); + + Ip6PacketTimerTicking (IpSb); +diff --git a/NetworkPkg/Ip6Dxe/Ip6Mld.c b/NetworkPkg/Ip6Dxe/Ip6Mld.c +index ba12089dee..e6b2b653e2 100644 +--- a/NetworkPkg/Ip6Dxe/Ip6Mld.c ++++ b/NetworkPkg/Ip6Dxe/Ip6Mld.c +@@ -21,12 +21,12 @@ + **/ + IP6_MLD_GROUP * + Ip6CreateMldEntry ( +- IN OUT IP6_SERVICE *IpSb, +- IN EFI_IPv6_ADDRESS *MulticastAddr, +- IN UINT32 DelayTimer ++ IN OUT IP6_SERVICE *IpSb, ++ IN EFI_IPv6_ADDRESS *MulticastAddr, ++ IN UINT32 DelayTimer + ) + { +- IP6_MLD_GROUP *Entry; ++ IP6_MLD_GROUP *Entry; + + NET_CHECK_SIGNATURE (IpSb, IP6_SERVICE_SIGNATURE); + ASSERT (MulticastAddr != NULL && IP6_IS_MULTICAST (MulticastAddr)); +@@ -54,12 +54,12 @@ Ip6CreateMldEntry ( + **/ + IP6_MLD_GROUP * + Ip6FindMldEntry ( +- IN IP6_SERVICE *IpSb, +- IN EFI_IPv6_ADDRESS *MulticastAddr ++ IN IP6_SERVICE *IpSb, ++ IN EFI_IPv6_ADDRESS *MulticastAddr + ) + { +- LIST_ENTRY *Entry; +- IP6_MLD_GROUP *Group; ++ LIST_ENTRY *Entry; ++ IP6_MLD_GROUP *Group; + + NET_CHECK_SIGNATURE (IpSb, IP6_SERVICE_SIGNATURE); + ASSERT (MulticastAddr != NULL && IP6_IS_MULTICAST (MulticastAddr)); +@@ -88,13 +88,13 @@ Ip6FindMldEntry ( + **/ + INTN + Ip6FindMac ( +- IN IP6_MLD_SERVICE_DATA *MldCtrl, +- IN EFI_MAC_ADDRESS *Mac ++ IN IP6_MLD_SERVICE_DATA *MldCtrl, ++ IN EFI_MAC_ADDRESS *Mac + ) + { +- LIST_ENTRY *Entry; +- IP6_MLD_GROUP *Group; +- INTN Count; ++ LIST_ENTRY *Entry; ++ IP6_MLD_GROUP *Group; ++ INTN Count; + + Count = 0; + +@@ -125,20 +125,20 @@ Ip6FindMac ( + **/ + EFI_STATUS + Ip6SendMldReport ( +- IN IP6_SERVICE *IpSb, +- IN IP6_INTERFACE *Interface OPTIONAL, +- IN EFI_IPv6_ADDRESS *MulticastAddr ++ IN IP6_SERVICE *IpSb, ++ IN IP6_INTERFACE *Interface OPTIONAL, ++ IN EFI_IPv6_ADDRESS *MulticastAddr + ) + { +- IP6_MLD_HEAD *MldHead; +- NET_BUF *Packet; +- EFI_IP6_HEADER Head; +- UINT16 PayloadLen; +- UINTN OptionLen; +- UINT8 *Options; +- EFI_STATUS Status; +- UINT16 HeadChecksum; +- UINT16 PseudoChecksum; ++ IP6_MLD_HEAD *MldHead; ++ NET_BUF *Packet; ++ EFI_IP6_HEADER Head; ++ UINT16 PayloadLen; ++ UINTN OptionLen; ++ UINT8 *Options; ++ EFI_STATUS Status; ++ UINT16 HeadChecksum; ++ UINT16 PseudoChecksum; + + NET_CHECK_SIGNATURE (IpSb, IP6_SERVICE_SIGNATURE); + ASSERT (MulticastAddr != NULL && IP6_IS_MULTICAST (MulticastAddr)); +@@ -149,11 +149,11 @@ Ip6SendMldReport ( + // + + OptionLen = 0; +- Status = Ip6FillHopByHop (NULL, &OptionLen, IP6_ICMP); ++ Status = Ip6FillHopByHop (NULL, &OptionLen, IP6_ICMP); + ASSERT (Status == EFI_BUFFER_TOO_SMALL); + +- PayloadLen = (UINT16) (OptionLen + sizeof (IP6_MLD_HEAD)); +- Packet = NetbufAlloc (sizeof (EFI_IP6_HEADER) + (UINT32) PayloadLen); ++ PayloadLen = (UINT16)(OptionLen + sizeof (IP6_MLD_HEAD)); ++ Packet = NetbufAlloc (sizeof (EFI_IP6_HEADER) + (UINT32)PayloadLen); + if (Packet == NULL) { + return EFI_OUT_OF_RESOURCES; + } +@@ -163,11 +163,11 @@ Ip6SendMldReport ( + // RFC3590: Use link-local address as source address if it is available, + // otherwise use the unspecified address. + // +- Head.FlowLabelL = 0; +- Head.FlowLabelH = 0; +- Head.PayloadLength = HTONS (PayloadLen); +- Head.NextHeader = IP6_HOP_BY_HOP; +- Head.HopLimit = 1; ++ Head.FlowLabelL = 0; ++ Head.FlowLabelH = 0; ++ Head.PayloadLength = HTONS (PayloadLen); ++ Head.NextHeader = IP6_HOP_BY_HOP; ++ Head.HopLimit = 1; + IP6_COPY_ADDRESS (&Head.DestinationAddress, MulticastAddr); + + // +@@ -180,7 +180,7 @@ Ip6SendMldReport ( + // + // Fill a IPv6 Router Alert option in a Hop-by-Hop Options Header + // +- Options = NetbufAllocSpace (Packet, (UINT32) OptionLen, FALSE); ++ Options = NetbufAllocSpace (Packet, (UINT32)OptionLen, FALSE); + ASSERT (Options != NULL); + Status = Ip6FillHopByHop (Options, &OptionLen, IP6_ICMP); + if (EFI_ERROR (Status)) { +@@ -192,14 +192,14 @@ Ip6SendMldReport ( + // + // Fill in MLD message - Report + // +- MldHead = (IP6_MLD_HEAD *) NetbufAllocSpace (Packet, sizeof (IP6_MLD_HEAD), FALSE); ++ MldHead = (IP6_MLD_HEAD *)NetbufAllocSpace (Packet, sizeof (IP6_MLD_HEAD), FALSE); + ASSERT (MldHead != NULL); + ZeroMem (MldHead, sizeof (IP6_MLD_HEAD)); + MldHead->Head.Type = ICMP_V6_LISTENER_REPORT; + MldHead->Head.Code = 0; + IP6_COPY_ADDRESS (&MldHead->Group, MulticastAddr); + +- HeadChecksum = NetblockChecksum ((UINT8 *) MldHead, sizeof (IP6_MLD_HEAD)); ++ HeadChecksum = NetblockChecksum ((UINT8 *)MldHead, sizeof (IP6_MLD_HEAD)); + PseudoChecksum = NetIp6PseudoHeadChecksum ( + &Head.SourceAddress, + &Head.DestinationAddress, +@@ -229,20 +229,20 @@ Ip6SendMldReport ( + **/ + EFI_STATUS + Ip6SendMldDone ( +- IN IP6_SERVICE *IpSb, +- IN EFI_IPv6_ADDRESS *MulticastAddr ++ IN IP6_SERVICE *IpSb, ++ IN EFI_IPv6_ADDRESS *MulticastAddr + ) + { +- IP6_MLD_HEAD *MldHead; +- NET_BUF *Packet; +- EFI_IP6_HEADER Head; +- UINT16 PayloadLen; +- UINTN OptionLen; +- UINT8 *Options; +- EFI_STATUS Status; +- EFI_IPv6_ADDRESS Destination; +- UINT16 HeadChecksum; +- UINT16 PseudoChecksum; ++ IP6_MLD_HEAD *MldHead; ++ NET_BUF *Packet; ++ EFI_IP6_HEADER Head; ++ UINT16 PayloadLen; ++ UINTN OptionLen; ++ UINT8 *Options; ++ EFI_STATUS Status; ++ EFI_IPv6_ADDRESS Destination; ++ UINT16 HeadChecksum; ++ UINT16 PseudoChecksum; + + NET_CHECK_SIGNATURE (IpSb, IP6_SERVICE_SIGNATURE); + ASSERT (MulticastAddr != NULL && IP6_IS_MULTICAST (MulticastAddr)); +@@ -253,11 +253,11 @@ Ip6SendMldDone ( + // + + OptionLen = 0; +- Status = Ip6FillHopByHop (NULL, &OptionLen, IP6_ICMP); ++ Status = Ip6FillHopByHop (NULL, &OptionLen, IP6_ICMP); + ASSERT (Status == EFI_BUFFER_TOO_SMALL); + +- PayloadLen = (UINT16) (OptionLen + sizeof (IP6_MLD_HEAD)); +- Packet = NetbufAlloc (sizeof (EFI_IP6_HEADER) + (UINT32) PayloadLen); ++ PayloadLen = (UINT16)(OptionLen + sizeof (IP6_MLD_HEAD)); ++ Packet = NetbufAlloc (sizeof (EFI_IP6_HEADER) + (UINT32)PayloadLen); + if (Packet == NULL) { + return EFI_OUT_OF_RESOURCES; + } +@@ -265,11 +265,11 @@ Ip6SendMldDone ( + // + // Create the basic IPv6 header. + // +- Head.FlowLabelL = 0; +- Head.FlowLabelH = 0; +- Head.PayloadLength = HTONS (PayloadLen); +- Head.NextHeader = IP6_HOP_BY_HOP; +- Head.HopLimit = 1; ++ Head.FlowLabelL = 0; ++ Head.FlowLabelH = 0; ++ Head.PayloadLength = HTONS (PayloadLen); ++ Head.NextHeader = IP6_HOP_BY_HOP; ++ Head.HopLimit = 1; + + // + // If Link-Local address is not ready, we use unspecified address. +@@ -284,7 +284,7 @@ Ip6SendMldDone ( + // + // Fill a IPv6 Router Alert option in a Hop-by-Hop Options Header + // +- Options = NetbufAllocSpace (Packet, (UINT32) OptionLen, FALSE); ++ Options = NetbufAllocSpace (Packet, (UINT32)OptionLen, FALSE); + ASSERT (Options != NULL); + Status = Ip6FillHopByHop (Options, &OptionLen, IP6_ICMP); + if (EFI_ERROR (Status)) { +@@ -296,14 +296,14 @@ Ip6SendMldDone ( + // + // Fill in MLD message - Done + // +- MldHead = (IP6_MLD_HEAD *) NetbufAllocSpace (Packet, sizeof (IP6_MLD_HEAD), FALSE); ++ MldHead = (IP6_MLD_HEAD *)NetbufAllocSpace (Packet, sizeof (IP6_MLD_HEAD), FALSE); + ASSERT (MldHead != NULL); + ZeroMem (MldHead, sizeof (IP6_MLD_HEAD)); + MldHead->Head.Type = ICMP_V6_LISTENER_DONE; + MldHead->Head.Code = 0; + IP6_COPY_ADDRESS (&MldHead->Group, MulticastAddr); + +- HeadChecksum = NetblockChecksum ((UINT8 *) MldHead, sizeof (IP6_MLD_HEAD)); ++ HeadChecksum = NetblockChecksum ((UINT8 *)MldHead, sizeof (IP6_MLD_HEAD)); + PseudoChecksum = NetIp6PseudoHeadChecksum ( + &Head.SourceAddress, + &Head.DestinationAddress, +@@ -332,12 +332,12 @@ Ip6SendMldDone ( + **/ + EFI_STATUS + Ip6InitMld ( +- IN IP6_SERVICE *IpSb ++ IN IP6_SERVICE *IpSb + ) + { +- EFI_IPv6_ADDRESS AllNodes; +- IP6_MLD_GROUP *Group; +- EFI_STATUS Status; ++ EFI_IPv6_ADDRESS AllNodes; ++ IP6_MLD_GROUP *Group; ++ EFI_STATUS Status; + + // + // Join the link-scope all-nodes multicast address (FF02::1). +@@ -347,7 +347,7 @@ Ip6InitMld ( + + Ip6SetToAllNodeMulticast (FALSE, IP6_LINK_LOCAL_SCOPE, &AllNodes); + +- Group = Ip6CreateMldEntry (IpSb, &AllNodes, (UINT32) IP6_INFINIT_LIFETIME); ++ Group = Ip6CreateMldEntry (IpSb, &AllNodes, (UINT32)IP6_INFINIT_LIFETIME); + if (Group == NULL) { + return EFI_OUT_OF_RESOURCES; + } +@@ -388,11 +388,11 @@ ERROR: + **/ + EFI_STATUS + Ip6CombineGroups ( +- IN OUT IP6_PROTOCOL *IpInstance, +- IN EFI_IPv6_ADDRESS *Group ++ IN OUT IP6_PROTOCOL *IpInstance, ++ IN EFI_IPv6_ADDRESS *Group + ) + { +- EFI_IPv6_ADDRESS *GroupList; ++ EFI_IPv6_ADDRESS *GroupList; + + NET_CHECK_SIGNATURE (IpInstance, IP6_PROTOCOL_SIGNATURE); + ASSERT (Group != NULL && IP6_IS_MULTICAST (Group)); +@@ -437,12 +437,12 @@ Ip6CombineGroups ( + **/ + EFI_STATUS + Ip6RemoveGroup ( +- IN OUT IP6_PROTOCOL *IpInstance, +- IN EFI_IPv6_ADDRESS *Group ++ IN OUT IP6_PROTOCOL *IpInstance, ++ IN EFI_IPv6_ADDRESS *Group + ) + { +- UINT32 Index; +- UINT32 Count; ++ UINT32 Index; ++ UINT32 Count; + + Count = IpInstance->GroupCount; + +@@ -481,13 +481,13 @@ Ip6RemoveGroup ( + **/ + EFI_STATUS + Ip6JoinGroup ( +- IN IP6_SERVICE *IpSb, +- IN IP6_INTERFACE *Interface, +- IN EFI_IPv6_ADDRESS *Address ++ IN IP6_SERVICE *IpSb, ++ IN IP6_INTERFACE *Interface, ++ IN EFI_IPv6_ADDRESS *Address + ) + { +- IP6_MLD_GROUP *Group; +- EFI_STATUS Status; ++ IP6_MLD_GROUP *Group; ++ EFI_STATUS Status; + + Group = Ip6FindMldEntry (IpSb, Address); + if (Group != NULL) { +@@ -545,12 +545,12 @@ ERROR: + **/ + EFI_STATUS + Ip6LeaveGroup ( +- IN IP6_SERVICE *IpSb, +- IN EFI_IPv6_ADDRESS *Address ++ IN IP6_SERVICE *IpSb, ++ IN EFI_IPv6_ADDRESS *Address + ) + { +- IP6_MLD_GROUP *Group; +- EFI_STATUS Status; ++ IP6_MLD_GROUP *Group; ++ EFI_STATUS Status; + + Group = Ip6FindMldEntry (IpSb, Address); + if (Group == NULL) { +@@ -611,15 +611,15 @@ Ip6LeaveGroup ( + **/ + EFI_STATUS + Ip6Groups ( +- IN IP6_PROTOCOL *IpInstance, +- IN BOOLEAN JoinFlag, +- IN EFI_IPv6_ADDRESS *GroupAddress OPTIONAL ++ IN IP6_PROTOCOL *IpInstance, ++ IN BOOLEAN JoinFlag, ++ IN EFI_IPv6_ADDRESS *GroupAddress OPTIONAL + ) + { +- EFI_STATUS Status; +- IP6_SERVICE *IpSb; +- UINT32 Index; +- EFI_IPv6_ADDRESS *Group; ++ EFI_STATUS Status; ++ IP6_SERVICE *IpSb; ++ UINT32 Index; ++ EFI_IPv6_ADDRESS *Group; + + IpSb = IpInstance->Service; + +@@ -690,13 +690,13 @@ Ip6Groups ( + **/ + EFI_STATUS + Ip6UpdateDelayTimer ( +- IN IP6_SERVICE *IpSb, +- IN UINT16 MaxRespDelay, +- IN EFI_IPv6_ADDRESS *MulticastAddr, +- IN OUT IP6_MLD_GROUP *Group ++ IN IP6_SERVICE *IpSb, ++ IN UINT16 MaxRespDelay, ++ IN EFI_IPv6_ADDRESS *MulticastAddr, ++ IN OUT IP6_MLD_GROUP *Group + ) + { +- UINT32 Delay; ++ UINT32 Delay; + + // + // If the Query packet specifies a Maximum Response Delay of zero, perform timer +@@ -707,14 +707,14 @@ Ip6UpdateDelayTimer ( + return Ip6SendMldReport (IpSb, NULL, MulticastAddr); + } + +- Delay = (UINT32) (MaxRespDelay / 1000); ++ Delay = (UINT32)(MaxRespDelay / 1000); + + // + // Sets a delay timer to a random value selected from the range [0, Maximum Response Delay] + // If a timer is already running, resets it if the request Maximum Response Delay + // is less than the remaining value of the running timer. + // +- if (Group->DelayTimer == 0 || Delay < Group->DelayTimer) { ++ if ((Group->DelayTimer == 0) || (Delay < Group->DelayTimer)) { + Group->DelayTimer = Delay / 4294967295UL * NET_RANDOM (NetRandomInitSeed ()); + } + +@@ -736,16 +736,16 @@ Ip6UpdateDelayTimer ( + **/ + EFI_STATUS + Ip6ProcessMldQuery ( +- IN IP6_SERVICE *IpSb, +- IN EFI_IP6_HEADER *Head, +- IN NET_BUF *Packet ++ IN IP6_SERVICE *IpSb, ++ IN EFI_IP6_HEADER *Head, ++ IN NET_BUF *Packet + ) + { +- EFI_IPv6_ADDRESS AllNodes; +- IP6_MLD_GROUP *Group; +- IP6_MLD_HEAD MldPacket; +- LIST_ENTRY *Entry; +- EFI_STATUS Status; ++ EFI_IPv6_ADDRESS AllNodes; ++ IP6_MLD_GROUP *Group; ++ IP6_MLD_HEAD MldPacket; ++ LIST_ENTRY *Entry; ++ EFI_STATUS Status; + + Status = EFI_INVALID_PARAMETER; + +@@ -756,14 +756,14 @@ Ip6ProcessMldQuery ( + goto Exit; + } + +- if (Head->HopLimit != 1 || !IP6_IS_MULTICAST (&Head->DestinationAddress)) { ++ if ((Head->HopLimit != 1) || !IP6_IS_MULTICAST (&Head->DestinationAddress)) { + goto Exit; + } + + // + // The Packet points to MLD report raw data without Hop-By-Hop option. + // +- NetbufCopy (Packet, 0, sizeof (IP6_MLD_HEAD), (UINT8 *) &MldPacket); ++ NetbufCopy (Packet, 0, sizeof (IP6_MLD_HEAD), (UINT8 *)&MldPacket); + MldPacket.MaxRespDelay = NTOHS (MldPacket.MaxRespDelay); + + Ip6SetToAllNodeMulticast (FALSE, IP6_LINK_LOCAL_SCOPE, &AllNodes); +@@ -774,6 +774,7 @@ Ip6ProcessMldQuery ( + if (!EFI_IP6_EQUAL (&Head->DestinationAddress, &MldPacket.Group)) { + goto Exit; + } ++ + // + // The node is not listening but it receives the specific query. Just return. + // +@@ -824,14 +825,14 @@ Exit: + **/ + EFI_STATUS + Ip6ProcessMldReport ( +- IN IP6_SERVICE *IpSb, +- IN EFI_IP6_HEADER *Head, +- IN NET_BUF *Packet ++ IN IP6_SERVICE *IpSb, ++ IN EFI_IP6_HEADER *Head, ++ IN NET_BUF *Packet + ) + { +- IP6_MLD_HEAD MldPacket; +- IP6_MLD_GROUP *Group; +- EFI_STATUS Status; ++ IP6_MLD_HEAD MldPacket; ++ IP6_MLD_GROUP *Group; ++ EFI_STATUS Status; + + Status = EFI_INVALID_PARAMETER; + +@@ -842,14 +843,14 @@ Ip6ProcessMldReport ( + goto Exit; + } + +- if (Head->HopLimit != 1 || !IP6_IS_MULTICAST (&Head->DestinationAddress)) { ++ if ((Head->HopLimit != 1) || !IP6_IS_MULTICAST (&Head->DestinationAddress)) { + goto Exit; + } + + // + // The Packet points to MLD report raw data without Hop-By-Hop option. + // +- NetbufCopy (Packet, 0, sizeof (IP6_MLD_HEAD), (UINT8 *) &MldPacket); ++ NetbufCopy (Packet, 0, sizeof (IP6_MLD_HEAD), (UINT8 *)&MldPacket); + if (!EFI_IP6_EQUAL (&Head->DestinationAddress, &MldPacket.Group)) { + goto Exit; + } +@@ -883,11 +884,11 @@ Exit: + **/ + VOID + Ip6MldTimerTicking ( +- IN IP6_SERVICE *IpSb ++ IN IP6_SERVICE *IpSb + ) + { +- IP6_MLD_GROUP *Group; +- LIST_ENTRY *Entry; ++ IP6_MLD_GROUP *Group; ++ LIST_ENTRY *Entry; + + // + // Send solicited report when timer expires +@@ -899,4 +900,3 @@ Ip6MldTimerTicking ( + } + } + } +- +diff --git a/NetworkPkg/Ip6Dxe/Ip6Nd.c b/NetworkPkg/Ip6Dxe/Ip6Nd.c +index 0780a98cb3..c10c7017f8 100644 +--- a/NetworkPkg/Ip6Dxe/Ip6Nd.c ++++ b/NetworkPkg/Ip6Dxe/Ip6Nd.c +@@ -9,7 +9,7 @@ + + #include "Ip6Impl.h" + +-EFI_MAC_ADDRESS mZeroMacAddress; ++EFI_MAC_ADDRESS mZeroMacAddress; + + /** + Update the ReachableTime in IP6 service binding instance data, in milliseconds. +@@ -22,10 +22,10 @@ Ip6UpdateReachableTime ( + IN OUT IP6_SERVICE *IpSb + ) + { +- UINT32 Random; ++ UINT32 Random; + +- Random = (NetRandomInitSeed () / 4294967295UL) * IP6_RANDOM_FACTOR_SCALE; +- Random = Random + IP6_MIN_RANDOM_FACTOR_SCALED; ++ Random = (NetRandomInitSeed () / 4294967295UL) * IP6_RANDOM_FACTOR_SCALE; ++ Random = Random + IP6_MIN_RANDOM_FACTOR_SCALED; + IpSb->ReachableTime = (IpSb->BaseReachableTime * Random) / IP6_RANDOM_FACTOR_SCALE; + } + +@@ -43,17 +43,17 @@ Ip6UpdateReachableTime ( + **/ + EFI_STATUS + Ip6BuildEfiNeighborCache ( +- IN IP6_PROTOCOL *IpInstance, +- OUT UINT32 *NeighborCount, +- OUT EFI_IP6_NEIGHBOR_CACHE **NeighborCache ++ IN IP6_PROTOCOL *IpInstance, ++ OUT UINT32 *NeighborCount, ++ OUT EFI_IP6_NEIGHBOR_CACHE **NeighborCache + ) + { +- IP6_NEIGHBOR_ENTRY *Neighbor; +- LIST_ENTRY *Entry; +- IP6_SERVICE *IpSb; +- UINT32 Count; +- EFI_IP6_NEIGHBOR_CACHE *EfiNeighborCache; +- EFI_IP6_NEIGHBOR_CACHE *NeighborCacheTmp; ++ IP6_NEIGHBOR_ENTRY *Neighbor; ++ LIST_ENTRY *Entry; ++ IP6_SERVICE *IpSb; ++ UINT32 Count; ++ EFI_IP6_NEIGHBOR_CACHE *EfiNeighborCache; ++ EFI_IP6_NEIGHBOR_CACHE *NeighborCacheTmp; + + NET_CHECK_SIGNATURE (IpInstance, IP6_PROTOCOL_SIGNATURE); + ASSERT (NeighborCount != NULL && NeighborCache != NULL); +@@ -82,7 +82,7 @@ Ip6BuildEfiNeighborCache ( + + EfiNeighborCache = NeighborCacheTmp + Count; + +- EfiNeighborCache->State = Neighbor->State; ++ EfiNeighborCache->State = Neighbor->State; + IP6_COPY_ADDRESS (&EfiNeighborCache->Neighbor, &Neighbor->Neighbor); + IP6_COPY_LINK_ADDRESS (&EfiNeighborCache->LinkAddress, &Neighbor->LinkAddress); + +@@ -114,12 +114,12 @@ Ip6BuildPrefixTable ( + OUT EFI_IP6_ADDRESS_INFO **PrefixTable + ) + { +- LIST_ENTRY *Entry; +- IP6_SERVICE *IpSb; +- UINT32 Count; +- IP6_PREFIX_LIST_ENTRY *PrefixList; +- EFI_IP6_ADDRESS_INFO *EfiPrefix; +- EFI_IP6_ADDRESS_INFO *PrefixTableTmp; ++ LIST_ENTRY *Entry; ++ IP6_SERVICE *IpSb; ++ UINT32 Count; ++ IP6_PREFIX_LIST_ENTRY *PrefixList; ++ EFI_IP6_ADDRESS_INFO *EfiPrefix; ++ EFI_IP6_ADDRESS_INFO *PrefixTableTmp; + + NET_CHECK_SIGNATURE (IpInstance, IP6_PROTOCOL_SIGNATURE); + ASSERT (PrefixCount != NULL && PrefixTable != NULL); +@@ -178,21 +178,21 @@ Ip6BuildPrefixTable ( + **/ + IP6_PREFIX_LIST_ENTRY * + Ip6CreatePrefixListEntry ( +- IN IP6_SERVICE *IpSb, +- IN BOOLEAN OnLinkOrAuto, +- IN UINT32 ValidLifetime, +- IN UINT32 PreferredLifetime, +- IN UINT8 PrefixLength, +- IN EFI_IPv6_ADDRESS *Prefix ++ IN IP6_SERVICE *IpSb, ++ IN BOOLEAN OnLinkOrAuto, ++ IN UINT32 ValidLifetime, ++ IN UINT32 PreferredLifetime, ++ IN UINT8 PrefixLength, ++ IN EFI_IPv6_ADDRESS *Prefix + ) + { +- IP6_PREFIX_LIST_ENTRY *PrefixEntry; +- IP6_ROUTE_ENTRY *RtEntry; +- LIST_ENTRY *ListHead; +- LIST_ENTRY *Entry; +- IP6_PREFIX_LIST_ENTRY *TmpPrefixEntry; ++ IP6_PREFIX_LIST_ENTRY *PrefixEntry; ++ IP6_ROUTE_ENTRY *RtEntry; ++ LIST_ENTRY *ListHead; ++ LIST_ENTRY *Entry; ++ IP6_PREFIX_LIST_ENTRY *TmpPrefixEntry; + +- if (Prefix == NULL || PreferredLifetime > ValidLifetime || PrefixLength > IP6_PREFIX_MAX) { ++ if ((Prefix == NULL) || (PreferredLifetime > ValidLifetime) || (PrefixLength > IP6_PREFIX_MAX)) { + return NULL; + } + +@@ -205,7 +205,7 @@ Ip6CreatePrefixListEntry ( + Prefix + ); + if (PrefixEntry != NULL) { +- PrefixEntry->RefCnt ++; ++ PrefixEntry->RefCnt++; + return PrefixEntry; + } + +@@ -242,7 +242,7 @@ Ip6CreatePrefixListEntry ( + // is put ahead in the list. + // + NET_LIST_FOR_EACH (Entry, ListHead) { +- TmpPrefixEntry = NET_LIST_USER_STRUCT(Entry, IP6_PREFIX_LIST_ENTRY, Link); ++ TmpPrefixEntry = NET_LIST_USER_STRUCT (Entry, IP6_PREFIX_LIST_ENTRY, Link); + + if (TmpPrefixEntry->PrefixLength < PrefixEntry->PrefixLength) { + break; +@@ -274,26 +274,26 @@ Ip6DestroyPrefixListEntry ( + IN BOOLEAN ImmediateDelete + ) + { +- LIST_ENTRY *Entry; +- IP6_INTERFACE *IpIf; +- EFI_STATUS Status; ++ LIST_ENTRY *Entry; ++ IP6_INTERFACE *IpIf; ++ EFI_STATUS Status; + + if ((!ImmediateDelete) && (PrefixEntry->RefCnt > 0) && ((--PrefixEntry->RefCnt) > 0)) { +- return ; ++ return; + } + + if (OnLinkOrAuto) { +- // +- // Remove the direct route for onlink prefix from route table. +- // +- do { +- Status = Ip6DelRoute ( +- IpSb->RouteTable, +- &PrefixEntry->Prefix, +- PrefixEntry->PrefixLength, +- NULL +- ); +- } while (Status != EFI_NOT_FOUND); ++ // ++ // Remove the direct route for onlink prefix from route table. ++ // ++ do { ++ Status = Ip6DelRoute ( ++ IpSb->RouteTable, ++ &PrefixEntry->Prefix, ++ PrefixEntry->PrefixLength, ++ NULL ++ ); ++ } while (Status != EFI_NOT_FOUND); + } else { + // + // Remove the corresponding addresses generated from this autonomous prefix. +@@ -324,15 +324,15 @@ Ip6DestroyPrefixListEntry ( + **/ + IP6_PREFIX_LIST_ENTRY * + Ip6FindPrefixListEntry ( +- IN IP6_SERVICE *IpSb, +- IN BOOLEAN OnLinkOrAuto, +- IN UINT8 PrefixLength, +- IN EFI_IPv6_ADDRESS *Prefix ++ IN IP6_SERVICE *IpSb, ++ IN BOOLEAN OnLinkOrAuto, ++ IN UINT8 PrefixLength, ++ IN EFI_IPv6_ADDRESS *Prefix + ) + { +- IP6_PREFIX_LIST_ENTRY *PrefixList; +- LIST_ENTRY *Entry; +- LIST_ENTRY *ListHead; ++ IP6_PREFIX_LIST_ENTRY *PrefixList; ++ LIST_ENTRY *Entry; ++ LIST_ENTRY *ListHead; + + NET_CHECK_SIGNATURE (IpSb, IP6_SERVICE_SIGNATURE); + ASSERT (Prefix != NULL); +@@ -349,8 +349,9 @@ Ip6FindPrefixListEntry ( + // + // Perform exactly prefix match. + // +- if (PrefixList->PrefixLength == PrefixLength && +- NetIp6IsNetEqual (&PrefixList->Prefix, Prefix, PrefixLength)) { ++ if ((PrefixList->PrefixLength == PrefixLength) && ++ NetIp6IsNetEqual (&PrefixList->Prefix, Prefix, PrefixLength)) ++ { + return PrefixList; + } + } else { +@@ -377,14 +378,14 @@ Ip6FindPrefixListEntry ( + **/ + VOID + Ip6CleanPrefixListTable ( +- IN IP6_SERVICE *IpSb, +- IN LIST_ENTRY *ListHead ++ IN IP6_SERVICE *IpSb, ++ IN LIST_ENTRY *ListHead + ) + { +- IP6_PREFIX_LIST_ENTRY *PrefixList; +- BOOLEAN OnLink; ++ IP6_PREFIX_LIST_ENTRY *PrefixList; ++ BOOLEAN OnLink; + +- OnLink = (BOOLEAN) (ListHead == &IpSb->OnlinkPrefix); ++ OnLink = (BOOLEAN)(ListHead == &IpSb->OnlinkPrefix); + + while (!IsListEmpty (ListHead)) { + PrefixList = NET_LIST_HEAD (ListHead, IP6_PREFIX_LIST_ENTRY, Link); +@@ -402,25 +403,25 @@ Ip6CleanPrefixListTable ( + **/ + VOID + Ip6OnArpResolved ( +- IN VOID *Context ++ IN VOID *Context + ) + { +- LIST_ENTRY *Entry; +- LIST_ENTRY *Next; +- IP6_NEIGHBOR_ENTRY *ArpQue; +- IP6_SERVICE *IpSb; +- IP6_LINK_TX_TOKEN *Token; +- EFI_STATUS Status; +- BOOLEAN Sent; +- +- ArpQue = (IP6_NEIGHBOR_ENTRY *) Context; ++ LIST_ENTRY *Entry; ++ LIST_ENTRY *Next; ++ IP6_NEIGHBOR_ENTRY *ArpQue; ++ IP6_SERVICE *IpSb; ++ IP6_LINK_TX_TOKEN *Token; ++ EFI_STATUS Status; ++ BOOLEAN Sent; ++ ++ ArpQue = (IP6_NEIGHBOR_ENTRY *)Context; + if ((ArpQue == NULL) || (ArpQue->Interface == NULL)) { +- return ; ++ return; + } + +- IpSb = ArpQue->Interface->Service; ++ IpSb = ArpQue->Interface->Service; + if ((IpSb == NULL) || (IpSb->Signature != IP6_SERVICE_SIGNATURE)) { +- return ; ++ return; + } + + // +@@ -430,7 +431,7 @@ Ip6OnArpResolved ( + // + if (NET_MAC_EQUAL (&ArpQue->LinkAddress, &mZeroMacAddress, IpSb->SnpMode.HwAddressSize)) { + Ip6FreeNeighborEntry (IpSb, ArpQue, FALSE, TRUE, EFI_NO_MAPPING, NULL, NULL); +- return ; ++ return; + } + + // +@@ -471,7 +472,7 @@ Ip6OnArpResolved ( + + if (Sent && (ArpQue->State == EfiNeighborStale)) { + ArpQue->State = EfiNeighborDelay; +- ArpQue->Ticks = (UINT32) IP6_GET_TICKS (IP6_DELAY_FIRST_PROBE_TIME); ++ ArpQue->Ticks = (UINT32)IP6_GET_TICKS (IP6_DELAY_FIRST_PROBE_TIME); + } + } + +@@ -491,17 +492,17 @@ Ip6OnArpResolved ( + **/ + IP6_NEIGHBOR_ENTRY * + Ip6CreateNeighborEntry ( +- IN IP6_SERVICE *IpSb, +- IN IP6_ARP_CALLBACK CallBack, +- IN EFI_IPv6_ADDRESS *Ip6Address, +- IN EFI_MAC_ADDRESS *LinkAddress OPTIONAL ++ IN IP6_SERVICE *IpSb, ++ IN IP6_ARP_CALLBACK CallBack, ++ IN EFI_IPv6_ADDRESS *Ip6Address, ++ IN EFI_MAC_ADDRESS *LinkAddress OPTIONAL + ) + { +- IP6_NEIGHBOR_ENTRY *Entry; +- IP6_DEFAULT_ROUTER *DefaultRouter; ++ IP6_NEIGHBOR_ENTRY *Entry; ++ IP6_DEFAULT_ROUTER *DefaultRouter; + + NET_CHECK_SIGNATURE (IpSb, IP6_SERVICE_SIGNATURE); +- ASSERT (Ip6Address!= NULL); ++ ASSERT (Ip6Address != NULL); + + Entry = AllocateZeroPool (sizeof (IP6_NEIGHBOR_ENTRY)); + if (Entry == NULL) { +@@ -552,13 +553,13 @@ Ip6CreateNeighborEntry ( + **/ + IP6_NEIGHBOR_ENTRY * + Ip6FindNeighborEntry ( +- IN IP6_SERVICE *IpSb, +- IN EFI_IPv6_ADDRESS *Ip6Address ++ IN IP6_SERVICE *IpSb, ++ IN EFI_IPv6_ADDRESS *Ip6Address + ) + { +- LIST_ENTRY *Entry; +- LIST_ENTRY *Next; +- IP6_NEIGHBOR_ENTRY *Neighbor; ++ LIST_ENTRY *Entry; ++ LIST_ENTRY *Next; ++ IP6_NEIGHBOR_ENTRY *Neighbor; + + NET_CHECK_SIGNATURE (IpSb, IP6_SERVICE_SIGNATURE); + ASSERT (Ip6Address != NULL); +@@ -599,25 +600,25 @@ Ip6FindNeighborEntry ( + **/ + EFI_STATUS + Ip6FreeNeighborEntry ( +- IN IP6_SERVICE *IpSb, +- IN IP6_NEIGHBOR_ENTRY *NeighborCache, +- IN BOOLEAN SendIcmpError, +- IN BOOLEAN FullFree, +- IN EFI_STATUS IoStatus, +- IN IP6_FRAME_TO_CANCEL FrameToCancel OPTIONAL, +- IN VOID *Context OPTIONAL ++ IN IP6_SERVICE *IpSb, ++ IN IP6_NEIGHBOR_ENTRY *NeighborCache, ++ IN BOOLEAN SendIcmpError, ++ IN BOOLEAN FullFree, ++ IN EFI_STATUS IoStatus, ++ IN IP6_FRAME_TO_CANCEL FrameToCancel OPTIONAL, ++ IN VOID *Context OPTIONAL + ) + { +- IP6_LINK_TX_TOKEN *TxToken; +- LIST_ENTRY *Entry; +- LIST_ENTRY *Next; +- IP6_DEFAULT_ROUTER *DefaultRouter; ++ IP6_LINK_TX_TOKEN *TxToken; ++ LIST_ENTRY *Entry; ++ LIST_ENTRY *Next; ++ IP6_DEFAULT_ROUTER *DefaultRouter; + + // + // If FrameToCancel fails, the token will not be released. + // To avoid the memory leak, stop this usage model. + // +- if (FullFree && FrameToCancel != NULL) { ++ if (FullFree && (FrameToCancel != NULL)) { + return EFI_INVALID_PARAMETER; + } + +@@ -677,13 +678,13 @@ Ip6FreeNeighborEntry ( + **/ + IP6_DEFAULT_ROUTER * + Ip6CreateDefaultRouter ( +- IN IP6_SERVICE *IpSb, +- IN EFI_IPv6_ADDRESS *Ip6Address, +- IN UINT16 RouterLifetime ++ IN IP6_SERVICE *IpSb, ++ IN EFI_IPv6_ADDRESS *Ip6Address, ++ IN UINT16 RouterLifetime + ) + { +- IP6_DEFAULT_ROUTER *Entry; +- IP6_ROUTE_ENTRY *RtEntry; ++ IP6_DEFAULT_ROUTER *Entry; ++ IP6_ROUTE_ENTRY *RtEntry; + + NET_CHECK_SIGNATURE (IpSb, IP6_SERVICE_SIGNATURE); + ASSERT (Ip6Address != NULL); +@@ -724,11 +725,11 @@ Ip6CreateDefaultRouter ( + **/ + VOID + Ip6DestroyDefaultRouter ( +- IN IP6_SERVICE *IpSb, +- IN IP6_DEFAULT_ROUTER *DefaultRouter ++ IN IP6_SERVICE *IpSb, ++ IN IP6_DEFAULT_ROUTER *DefaultRouter + ) + { +- EFI_STATUS Status; ++ EFI_STATUS Status; + + RemoveEntryList (&DefaultRouter->Link); + +@@ -751,10 +752,10 @@ Ip6DestroyDefaultRouter ( + **/ + VOID + Ip6CleanDefaultRouterList ( +- IN IP6_SERVICE *IpSb ++ IN IP6_SERVICE *IpSb + ) + { +- IP6_DEFAULT_ROUTER *DefaultRouter; ++ IP6_DEFAULT_ROUTER *DefaultRouter; + + while (!IsListEmpty (&IpSb->DefaultRouterList)) { + DefaultRouter = NET_LIST_HEAD (&IpSb->DefaultRouterList, IP6_DEFAULT_ROUTER, Link); +@@ -774,12 +775,12 @@ Ip6CleanDefaultRouterList ( + **/ + IP6_DEFAULT_ROUTER * + Ip6FindDefaultRouter ( +- IN IP6_SERVICE *IpSb, +- IN EFI_IPv6_ADDRESS *Ip6Address ++ IN IP6_SERVICE *IpSb, ++ IN EFI_IPv6_ADDRESS *Ip6Address + ) + { +- LIST_ENTRY *Entry; +- IP6_DEFAULT_ROUTER *DefaultRouter; ++ LIST_ENTRY *Entry; ++ IP6_DEFAULT_ROUTER *DefaultRouter; + + NET_CHECK_SIGNATURE (IpSb, IP6_SERVICE_SIGNATURE); + ASSERT (Ip6Address != NULL); +@@ -846,10 +847,10 @@ Ip6OnDADFinished ( + // Set the exta options to send. Here we only want the option request option + // with DNS SERVERS. + // +- Oro = (EFI_DHCP6_PACKET_OPTION *) OptBuf; +- Oro->OpCode = HTONS (DHCP6_OPT_ORO); +- Oro->OpLen = HTONS (2); +- *((UINT16 *) &Oro->Data[0]) = HTONS (DHCP6_OPT_DNS_SERVERS); ++ Oro = (EFI_DHCP6_PACKET_OPTION *)OptBuf; ++ Oro->OpCode = HTONS (DHCP6_OPT_ORO); ++ Oro->OpLen = HTONS (2); ++ *((UINT16 *)&Oro->Data[0]) = HTONS (DHCP6_OPT_DNS_SERVERS); + + InfoReqReXmit.Irt = 4; + InfoReqReXmit.Mrc = 64; +@@ -875,12 +876,11 @@ Ip6OnDADFinished ( + Ip6CreatePrefixListEntry ( + IpSb, + TRUE, +- (UINT32) IP6_INFINIT_LIFETIME, +- (UINT32) IP6_INFINIT_LIFETIME, ++ (UINT32)IP6_INFINIT_LIFETIME, ++ (UINT32)IP6_INFINIT_LIFETIME, + IP6_LINK_LOCAL_PREFIX_LENGTH, + &IpSb->LinkLocalAddr + ); +- + } else { + // + // Global scope unicast address. +@@ -928,7 +928,7 @@ Ip6OnDADFinished ( + IpSb->Mnp->Configure (IpSb->Mnp, NULL); + gBS->SetTimer (IpSb->Timer, TimerCancel, 0); + gBS->SetTimer (IpSb->FasterTimer, TimerCancel, 0); +- return ; ++ return; + } + + if (!IsDadPassed || NetIp6IsLinkLocalAddr (&AddrInfo->Address)) { +@@ -961,10 +961,10 @@ Ip6OnDADFinished ( + **/ + EFI_STATUS + Ip6InitDADProcess ( +- IN IP6_INTERFACE *IpIf, +- IN IP6_ADDRESS_INFO *AddressInfo, +- IN IP6_DAD_CALLBACK Callback OPTIONAL, +- IN VOID *Context OPTIONAL ++ IN IP6_INTERFACE *IpIf, ++ IN IP6_ADDRESS_INFO *AddressInfo, ++ IN IP6_DAD_CALLBACK Callback OPTIONAL, ++ IN VOID *Context OPTIONAL + ) + { + IP6_DAD_ENTRY *Entry; +@@ -1009,15 +1009,15 @@ Ip6InitDADProcess ( + return Status; + } + +- Entry->Signature = IP6_DAD_ENTRY_SIGNATURE; +- Entry->MaxTransmit = DadXmits->DupAddrDetectTransmits; +- Entry->Transmit = 0; +- Entry->Receive = 0; +- MaxDelayTick = IP6_MAX_RTR_SOLICITATION_DELAY / IP6_TIMER_INTERVAL_IN_MS; +- Entry->RetransTick = (MaxDelayTick * ((NET_RANDOM (NetRandomInitSeed ()) % 5) + 1)) / 5; +- Entry->AddressInfo = AddressInfo; +- Entry->Callback = Callback; +- Entry->Context = Context; ++ Entry->Signature = IP6_DAD_ENTRY_SIGNATURE; ++ Entry->MaxTransmit = DadXmits->DupAddrDetectTransmits; ++ Entry->Transmit = 0; ++ Entry->Receive = 0; ++ MaxDelayTick = IP6_MAX_RTR_SOLICITATION_DELAY / IP6_TIMER_INTERVAL_IN_MS; ++ Entry->RetransTick = (MaxDelayTick * ((NET_RANDOM (NetRandomInitSeed ()) % 5) + 1)) / 5; ++ Entry->AddressInfo = AddressInfo; ++ Entry->Callback = Callback; ++ Entry->Context = Context; + InsertTailList (&IpIf->DupAddrDetectList, &Entry->Link); + + if (Entry->MaxTransmit == 0) { +@@ -1044,16 +1044,16 @@ Ip6InitDADProcess ( + **/ + IP6_DAD_ENTRY * + Ip6FindDADEntry ( +- IN IP6_SERVICE *IpSb, +- IN EFI_IPv6_ADDRESS *Target, +- OUT IP6_INTERFACE **Interface OPTIONAL ++ IN IP6_SERVICE *IpSb, ++ IN EFI_IPv6_ADDRESS *Target, ++ OUT IP6_INTERFACE **Interface OPTIONAL + ) + { +- LIST_ENTRY *Entry; +- LIST_ENTRY *Entry2; +- IP6_INTERFACE *IpIf; +- IP6_DAD_ENTRY *DupAddrDetect; +- IP6_ADDRESS_INFO *AddrInfo; ++ LIST_ENTRY *Entry; ++ LIST_ENTRY *Entry2; ++ IP6_INTERFACE *IpIf; ++ IP6_DAD_ENTRY *DupAddrDetect; ++ IP6_ADDRESS_INFO *AddrInfo; + + NET_LIST_FOR_EACH (Entry, &IpSb->Interfaces) { + IpIf = NET_LIST_USER_STRUCT (Entry, IP6_INTERFACE, Link); +@@ -1065,6 +1065,7 @@ Ip6FindDADEntry ( + if (Interface != NULL) { + *Interface = IpIf; + } ++ + return DupAddrDetect; + } + } +@@ -1093,24 +1094,24 @@ Ip6FindDADEntry ( + **/ + EFI_STATUS + Ip6SendRouterSolicit ( +- IN IP6_SERVICE *IpSb, +- IN IP6_INTERFACE *Interface OPTIONAL, +- IN EFI_IPv6_ADDRESS *SourceAddress OPTIONAL, +- IN EFI_IPv6_ADDRESS *DestinationAddress OPTIONAL, +- IN EFI_MAC_ADDRESS *SourceLinkAddress OPTIONAL ++ IN IP6_SERVICE *IpSb, ++ IN IP6_INTERFACE *Interface OPTIONAL, ++ IN EFI_IPv6_ADDRESS *SourceAddress OPTIONAL, ++ IN EFI_IPv6_ADDRESS *DestinationAddress OPTIONAL, ++ IN EFI_MAC_ADDRESS *SourceLinkAddress OPTIONAL + ) + { +- NET_BUF *Packet; +- EFI_IP6_HEADER Head; +- IP6_ICMP_INFORMATION_HEAD *IcmpHead; +- IP6_ETHER_ADDR_OPTION *LinkLayerOption; +- UINT16 PayloadLen; +- IP6_INTERFACE *IpIf; ++ NET_BUF *Packet; ++ EFI_IP6_HEADER Head; ++ IP6_ICMP_INFORMATION_HEAD *IcmpHead; ++ IP6_ETHER_ADDR_OPTION *LinkLayerOption; ++ UINT16 PayloadLen; ++ IP6_INTERFACE *IpIf; + + NET_CHECK_SIGNATURE (IpSb, IP6_SERVICE_SIGNATURE); + + IpIf = Interface; +- if (IpIf == NULL && IpSb->DefaultInterface != NULL) { ++ if ((IpIf == NULL) && (IpSb->DefaultInterface != NULL)) { + IpIf = IpSb->DefaultInterface; + } + +@@ -1118,12 +1119,12 @@ Ip6SendRouterSolicit ( + // Generate the packet to be sent + // + +- PayloadLen = (UINT16) sizeof (IP6_ICMP_INFORMATION_HEAD); ++ PayloadLen = (UINT16)sizeof (IP6_ICMP_INFORMATION_HEAD); + if (SourceLinkAddress != NULL) { + PayloadLen += sizeof (IP6_ETHER_ADDR_OPTION); + } + +- Packet = NetbufAlloc (sizeof (EFI_IP6_HEADER) + (UINT32) PayloadLen); ++ Packet = NetbufAlloc (sizeof (EFI_IP6_HEADER) + (UINT32)PayloadLen); + if (Packet == NULL) { + return EFI_OUT_OF_RESOURCES; + } +@@ -1131,11 +1132,11 @@ Ip6SendRouterSolicit ( + // + // Create the basic IPv6 header. + // +- Head.FlowLabelL = 0; +- Head.FlowLabelH = 0; +- Head.PayloadLength = HTONS (PayloadLen); +- Head.NextHeader = IP6_ICMP; +- Head.HopLimit = IP6_HOP_LIMIT; ++ Head.FlowLabelL = 0; ++ Head.FlowLabelH = 0; ++ Head.PayloadLength = HTONS (PayloadLen); ++ Head.NextHeader = IP6_ICMP; ++ Head.HopLimit = IP6_HOP_LIMIT; + + if (SourceAddress != NULL) { + IP6_COPY_ADDRESS (&Head.SourceAddress, SourceAddress); +@@ -1143,7 +1144,6 @@ Ip6SendRouterSolicit ( + ZeroMem (&Head.SourceAddress, sizeof (EFI_IPv6_ADDRESS)); + } + +- + if (DestinationAddress != NULL) { + IP6_COPY_ADDRESS (&Head.DestinationAddress, DestinationAddress); + } else { +@@ -1156,7 +1156,7 @@ Ip6SendRouterSolicit ( + // Fill in the ICMP header, and Source link-layer address if contained. + // + +- IcmpHead = (IP6_ICMP_INFORMATION_HEAD *) NetbufAllocSpace (Packet, sizeof (IP6_ICMP_INFORMATION_HEAD), FALSE); ++ IcmpHead = (IP6_ICMP_INFORMATION_HEAD *)NetbufAllocSpace (Packet, sizeof (IP6_ICMP_INFORMATION_HEAD), FALSE); + ASSERT (IcmpHead != NULL); + ZeroMem (IcmpHead, sizeof (IP6_ICMP_INFORMATION_HEAD)); + IcmpHead->Head.Type = ICMP_V6_ROUTER_SOLICIT; +@@ -1164,14 +1164,14 @@ Ip6SendRouterSolicit ( + + LinkLayerOption = NULL; + if (SourceLinkAddress != NULL) { +- LinkLayerOption = (IP6_ETHER_ADDR_OPTION *) NetbufAllocSpace ( +- Packet, +- sizeof (IP6_ETHER_ADDR_OPTION), +- FALSE +- ); ++ LinkLayerOption = (IP6_ETHER_ADDR_OPTION *)NetbufAllocSpace ( ++ Packet, ++ sizeof (IP6_ETHER_ADDR_OPTION), ++ FALSE ++ ); + ASSERT (LinkLayerOption != NULL); + LinkLayerOption->Type = Ip6OptionEtherSource; +- LinkLayerOption->Length = (UINT8) sizeof (IP6_ETHER_ADDR_OPTION); ++ LinkLayerOption->Length = (UINT8)sizeof (IP6_ETHER_ADDR_OPTION); + CopyMem (LinkLayerOption->EtherAddr, SourceLinkAddress, 6); + } + +@@ -1205,22 +1205,22 @@ Ip6SendRouterSolicit ( + **/ + EFI_STATUS + Ip6SendNeighborAdvertise ( +- IN IP6_SERVICE *IpSb, +- IN EFI_IPv6_ADDRESS *SourceAddress, +- IN EFI_IPv6_ADDRESS *DestinationAddress, +- IN EFI_IPv6_ADDRESS *TargetIp6Address, +- IN EFI_MAC_ADDRESS *TargetLinkAddress, +- IN BOOLEAN IsRouter, +- IN BOOLEAN Override, +- IN BOOLEAN Solicited ++ IN IP6_SERVICE *IpSb, ++ IN EFI_IPv6_ADDRESS *SourceAddress, ++ IN EFI_IPv6_ADDRESS *DestinationAddress, ++ IN EFI_IPv6_ADDRESS *TargetIp6Address, ++ IN EFI_MAC_ADDRESS *TargetLinkAddress, ++ IN BOOLEAN IsRouter, ++ IN BOOLEAN Override, ++ IN BOOLEAN Solicited + ) + { +- NET_BUF *Packet; +- EFI_IP6_HEADER Head; +- IP6_ICMP_INFORMATION_HEAD *IcmpHead; +- IP6_ETHER_ADDR_OPTION *LinkLayerOption; +- EFI_IPv6_ADDRESS *Target; +- UINT16 PayloadLen; ++ NET_BUF *Packet; ++ EFI_IP6_HEADER Head; ++ IP6_ICMP_INFORMATION_HEAD *IcmpHead; ++ IP6_ETHER_ADDR_OPTION *LinkLayerOption; ++ EFI_IPv6_ADDRESS *Target; ++ UINT16 PayloadLen; + + NET_CHECK_SIGNATURE (IpSb, IP6_SERVICE_SIGNATURE); + +@@ -1232,13 +1232,13 @@ Ip6SendNeighborAdvertise ( + // + ASSERT (DestinationAddress != NULL && TargetIp6Address != NULL && TargetLinkAddress != NULL); + +- PayloadLen = (UINT16) (sizeof (IP6_ICMP_INFORMATION_HEAD) + sizeof (EFI_IPv6_ADDRESS) + sizeof (IP6_ETHER_ADDR_OPTION)); ++ PayloadLen = (UINT16)(sizeof (IP6_ICMP_INFORMATION_HEAD) + sizeof (EFI_IPv6_ADDRESS) + sizeof (IP6_ETHER_ADDR_OPTION)); + + // + // Generate the packet to be sent + // + +- Packet = NetbufAlloc (sizeof (EFI_IP6_HEADER) + (UINT32) PayloadLen); ++ Packet = NetbufAlloc (sizeof (EFI_IP6_HEADER) + (UINT32)PayloadLen); + if (Packet == NULL) { + return EFI_OUT_OF_RESOURCES; + } +@@ -1246,11 +1246,11 @@ Ip6SendNeighborAdvertise ( + // + // Create the basic IPv6 header. + // +- Head.FlowLabelL = 0; +- Head.FlowLabelH = 0; +- Head.PayloadLength = HTONS (PayloadLen); +- Head.NextHeader = IP6_ICMP; +- Head.HopLimit = IP6_HOP_LIMIT; ++ Head.FlowLabelL = 0; ++ Head.FlowLabelH = 0; ++ Head.PayloadLength = HTONS (PayloadLen); ++ Head.NextHeader = IP6_ICMP; ++ Head.HopLimit = IP6_HOP_LIMIT; + + IP6_COPY_ADDRESS (&Head.SourceAddress, SourceAddress); + IP6_COPY_ADDRESS (&Head.DestinationAddress, DestinationAddress); +@@ -1262,7 +1262,7 @@ Ip6SendNeighborAdvertise ( + // Set the Router flag, Solicited flag and Override flag. + // + +- IcmpHead = (IP6_ICMP_INFORMATION_HEAD *) NetbufAllocSpace (Packet, sizeof (IP6_ICMP_INFORMATION_HEAD), FALSE); ++ IcmpHead = (IP6_ICMP_INFORMATION_HEAD *)NetbufAllocSpace (Packet, sizeof (IP6_ICMP_INFORMATION_HEAD), FALSE); + ASSERT (IcmpHead != NULL); + ZeroMem (IcmpHead, sizeof (IP6_ICMP_INFORMATION_HEAD)); + IcmpHead->Head.Type = ICMP_V6_NEIGHBOR_ADVERTISE; +@@ -1280,15 +1280,15 @@ Ip6SendNeighborAdvertise ( + IcmpHead->Fourth |= IP6_OVERRIDE_FLAG; + } + +- Target = (EFI_IPv6_ADDRESS *) NetbufAllocSpace (Packet, sizeof (EFI_IPv6_ADDRESS), FALSE); ++ Target = (EFI_IPv6_ADDRESS *)NetbufAllocSpace (Packet, sizeof (EFI_IPv6_ADDRESS), FALSE); + ASSERT (Target != NULL); + IP6_COPY_ADDRESS (Target, TargetIp6Address); + +- LinkLayerOption = (IP6_ETHER_ADDR_OPTION *) NetbufAllocSpace ( +- Packet, +- sizeof (IP6_ETHER_ADDR_OPTION), +- FALSE +- ); ++ LinkLayerOption = (IP6_ETHER_ADDR_OPTION *)NetbufAllocSpace ( ++ Packet, ++ sizeof (IP6_ETHER_ADDR_OPTION), ++ FALSE ++ ); + ASSERT (LinkLayerOption != NULL); + LinkLayerOption->Type = Ip6OptionEtherTarget; + LinkLayerOption->Length = 1; +@@ -1320,33 +1320,33 @@ Ip6SendNeighborAdvertise ( + **/ + EFI_STATUS + Ip6SendNeighborSolicit ( +- IN IP6_SERVICE *IpSb, +- IN EFI_IPv6_ADDRESS *SourceAddress, +- IN EFI_IPv6_ADDRESS *DestinationAddress, +- IN EFI_IPv6_ADDRESS *TargetIp6Address, +- IN EFI_MAC_ADDRESS *SourceLinkAddress OPTIONAL ++ IN IP6_SERVICE *IpSb, ++ IN EFI_IPv6_ADDRESS *SourceAddress, ++ IN EFI_IPv6_ADDRESS *DestinationAddress, ++ IN EFI_IPv6_ADDRESS *TargetIp6Address, ++ IN EFI_MAC_ADDRESS *SourceLinkAddress OPTIONAL + ) + { +- NET_BUF *Packet; +- EFI_IP6_HEADER Head; +- IP6_ICMP_INFORMATION_HEAD *IcmpHead; +- IP6_ETHER_ADDR_OPTION *LinkLayerOption; +- EFI_IPv6_ADDRESS *Target; +- BOOLEAN IsDAD; +- UINT16 PayloadLen; +- IP6_NEIGHBOR_ENTRY *Neighbor; ++ NET_BUF *Packet; ++ EFI_IP6_HEADER Head; ++ IP6_ICMP_INFORMATION_HEAD *IcmpHead; ++ IP6_ETHER_ADDR_OPTION *LinkLayerOption; ++ EFI_IPv6_ADDRESS *Target; ++ BOOLEAN IsDAD; ++ UINT16 PayloadLen; ++ IP6_NEIGHBOR_ENTRY *Neighbor; + + // + // Check input parameters + // + NET_CHECK_SIGNATURE (IpSb, IP6_SERVICE_SIGNATURE); +- if (DestinationAddress == NULL || TargetIp6Address == NULL) { ++ if ((DestinationAddress == NULL) || (TargetIp6Address == NULL)) { + return EFI_INVALID_PARAMETER; + } + + IsDAD = FALSE; + +- if (SourceAddress == NULL || (SourceAddress != NULL && NetIp6IsUnspecifiedAddr (SourceAddress))) { ++ if ((SourceAddress == NULL) || ((SourceAddress != NULL) && NetIp6IsUnspecifiedAddr (SourceAddress))) { + IsDAD = TRUE; + } + +@@ -1355,21 +1355,21 @@ Ip6SendNeighborSolicit ( + // if the solicitation is not sent by performing DAD - Duplicate Address Detection. + // Otherwise must not include it. + // +- PayloadLen = (UINT16) (sizeof (IP6_ICMP_INFORMATION_HEAD) + sizeof (EFI_IPv6_ADDRESS)); ++ PayloadLen = (UINT16)(sizeof (IP6_ICMP_INFORMATION_HEAD) + sizeof (EFI_IPv6_ADDRESS)); + + if (!IsDAD) { + if (SourceLinkAddress == NULL) { + return EFI_INVALID_PARAMETER; + } + +- PayloadLen = (UINT16) (PayloadLen + sizeof (IP6_ETHER_ADDR_OPTION)); ++ PayloadLen = (UINT16)(PayloadLen + sizeof (IP6_ETHER_ADDR_OPTION)); + } + + // + // Generate the packet to be sent + // + +- Packet = NetbufAlloc (sizeof (EFI_IP6_HEADER) + (UINT32) PayloadLen); ++ Packet = NetbufAlloc (sizeof (EFI_IP6_HEADER) + (UINT32)PayloadLen); + if (Packet == NULL) { + return EFI_OUT_OF_RESOURCES; + } +@@ -1377,11 +1377,11 @@ Ip6SendNeighborSolicit ( + // + // Create the basic IPv6 header + // +- Head.FlowLabelL = 0; +- Head.FlowLabelH = 0; +- Head.PayloadLength = HTONS (PayloadLen); +- Head.NextHeader = IP6_ICMP; +- Head.HopLimit = IP6_HOP_LIMIT; ++ Head.FlowLabelL = 0; ++ Head.FlowLabelH = 0; ++ Head.PayloadLength = HTONS (PayloadLen); ++ Head.NextHeader = IP6_ICMP; ++ Head.HopLimit = IP6_HOP_LIMIT; + + if (SourceAddress != NULL) { + IP6_COPY_ADDRESS (&Head.SourceAddress, SourceAddress); +@@ -1396,27 +1396,26 @@ Ip6SendNeighborSolicit ( + // + // Fill in the ICMP header, Target address, and Source link-layer address. + // +- IcmpHead = (IP6_ICMP_INFORMATION_HEAD *) NetbufAllocSpace (Packet, sizeof (IP6_ICMP_INFORMATION_HEAD), FALSE); ++ IcmpHead = (IP6_ICMP_INFORMATION_HEAD *)NetbufAllocSpace (Packet, sizeof (IP6_ICMP_INFORMATION_HEAD), FALSE); + ASSERT (IcmpHead != NULL); + ZeroMem (IcmpHead, sizeof (IP6_ICMP_INFORMATION_HEAD)); + IcmpHead->Head.Type = ICMP_V6_NEIGHBOR_SOLICIT; + IcmpHead->Head.Code = 0; + +- Target = (EFI_IPv6_ADDRESS *) NetbufAllocSpace (Packet, sizeof (EFI_IPv6_ADDRESS), FALSE); ++ Target = (EFI_IPv6_ADDRESS *)NetbufAllocSpace (Packet, sizeof (EFI_IPv6_ADDRESS), FALSE); + ASSERT (Target != NULL); + IP6_COPY_ADDRESS (Target, TargetIp6Address); + + LinkLayerOption = NULL; + if (!IsDAD) { +- + // + // Fill in the source link-layer address option + // +- LinkLayerOption = (IP6_ETHER_ADDR_OPTION *) NetbufAllocSpace ( +- Packet, +- sizeof (IP6_ETHER_ADDR_OPTION), +- FALSE +- ); ++ LinkLayerOption = (IP6_ETHER_ADDR_OPTION *)NetbufAllocSpace ( ++ Packet, ++ sizeof (IP6_ETHER_ADDR_OPTION), ++ FALSE ++ ); + ASSERT (LinkLayerOption != NULL); + LinkLayerOption->Type = Ip6OptionEtherSource; + LinkLayerOption->Length = 1; +@@ -1457,30 +1456,30 @@ Ip6SendNeighborSolicit ( + **/ + EFI_STATUS + Ip6ProcessNeighborSolicit ( +- IN IP6_SERVICE *IpSb, +- IN EFI_IP6_HEADER *Head, +- IN NET_BUF *Packet ++ IN IP6_SERVICE *IpSb, ++ IN EFI_IP6_HEADER *Head, ++ IN NET_BUF *Packet + ) + { +- IP6_ICMP_INFORMATION_HEAD Icmp; +- EFI_IPv6_ADDRESS Target; +- IP6_ETHER_ADDR_OPTION LinkLayerOption; +- BOOLEAN IsDAD; +- BOOLEAN IsUnicast; +- BOOLEAN IsMaintained; +- IP6_DAD_ENTRY *DupAddrDetect; +- IP6_INTERFACE *IpIf; +- IP6_NEIGHBOR_ENTRY *Neighbor; +- BOOLEAN Solicited; +- BOOLEAN UpdateCache; +- EFI_IPv6_ADDRESS Dest; +- UINT16 OptionLen; +- UINT8 *Option; +- BOOLEAN Provided; +- EFI_STATUS Status; +- VOID *MacAddress; +- +- NetbufCopy (Packet, 0, sizeof (Icmp), (UINT8 *) &Icmp); ++ IP6_ICMP_INFORMATION_HEAD Icmp; ++ EFI_IPv6_ADDRESS Target; ++ IP6_ETHER_ADDR_OPTION LinkLayerOption; ++ BOOLEAN IsDAD; ++ BOOLEAN IsUnicast; ++ BOOLEAN IsMaintained; ++ IP6_DAD_ENTRY *DupAddrDetect; ++ IP6_INTERFACE *IpIf; ++ IP6_NEIGHBOR_ENTRY *Neighbor; ++ BOOLEAN Solicited; ++ BOOLEAN UpdateCache; ++ EFI_IPv6_ADDRESS Dest; ++ UINT16 OptionLen; ++ UINT8 *Option; ++ BOOLEAN Provided; ++ EFI_STATUS Status; ++ VOID *MacAddress; ++ ++ NetbufCopy (Packet, 0, sizeof (Icmp), (UINT8 *)&Icmp); + NetbufCopy (Packet, sizeof (Icmp), sizeof (Target), Target.Addr); + + // +@@ -1492,7 +1491,7 @@ Ip6ProcessNeighborSolicit ( + // + Status = EFI_INVALID_PARAMETER; + +- if (Head->HopLimit != IP6_HOP_LIMIT || Icmp.Head.Code != 0 || !NetIp6IsValidUnicast (&Target)) { ++ if ((Head->HopLimit != IP6_HOP_LIMIT) || (Icmp.Head.Code != 0) || !NetIp6IsValidUnicast (&Target)) { + goto Exit; + } + +@@ -1503,9 +1502,9 @@ Ip6ProcessNeighborSolicit ( + if (Head->PayloadLength < IP6_ND_LENGTH) { + goto Exit; + } else { +- OptionLen = (UINT16) (Head->PayloadLength - IP6_ND_LENGTH); ++ OptionLen = (UINT16)(Head->PayloadLength - IP6_ND_LENGTH); + if (OptionLen != 0) { +- Option = NetbufGetByte (Packet, IP6_ND_LENGTH, NULL); ++ Option = NetbufGetByte (Packet, IP6_ND_LENGTH, NULL); + ASSERT (Option != NULL); + + // +@@ -1527,7 +1526,7 @@ Ip6ProcessNeighborSolicit ( + Packet, + IP6_ND_LENGTH, + sizeof (IP6_ETHER_ADDR_OPTION), +- (UINT8 *) &LinkLayerOption ++ (UINT8 *)&LinkLayerOption + ); + // + // The solicitation for neighbor discovery should include a source link-layer +@@ -1591,7 +1590,8 @@ Ip6ProcessNeighborSolicit ( + MacAddress, + &IpSb->SnpMode.CurrentAddress, + IpSb->SnpMode.HwAddressSize +- ) != 0) { ++ ) != 0) ++ { + // + // The NS is from another node to performing DAD on the same address. + // Fail DAD for the tentative address. +@@ -1607,6 +1607,7 @@ Ip6ProcessNeighborSolicit ( + } + } + } ++ + goto Exit; + } + +@@ -1624,6 +1625,7 @@ Ip6ProcessNeighborSolicit ( + Status = EFI_OUT_OF_RESOURCES; + goto Exit; + } ++ + UpdateCache = TRUE; + } else { + if (CompareMem (Neighbor->LinkAddress.Addr, LinkLayerOption.EtherAddr, 6) != 0) { +@@ -1633,12 +1635,12 @@ Ip6ProcessNeighborSolicit ( + + if (UpdateCache) { + Neighbor->State = EfiNeighborStale; +- Neighbor->Ticks = (UINT32) IP6_INFINIT_LIFETIME; ++ Neighbor->Ticks = (UINT32)IP6_INFINIT_LIFETIME; + CopyMem (Neighbor->LinkAddress.Addr, LinkLayerOption.EtherAddr, 6); + // + // Send queued packets if exist. + // +- Neighbor->CallBack ((VOID *) Neighbor); ++ Neighbor->CallBack ((VOID *)Neighbor); + } + } + +@@ -1686,28 +1688,28 @@ Exit: + **/ + EFI_STATUS + Ip6ProcessNeighborAdvertise ( +- IN IP6_SERVICE *IpSb, +- IN EFI_IP6_HEADER *Head, +- IN NET_BUF *Packet ++ IN IP6_SERVICE *IpSb, ++ IN EFI_IP6_HEADER *Head, ++ IN NET_BUF *Packet + ) + { +- IP6_ICMP_INFORMATION_HEAD Icmp; +- EFI_IPv6_ADDRESS Target; +- IP6_ETHER_ADDR_OPTION LinkLayerOption; +- BOOLEAN Provided; +- INTN Compare; +- IP6_NEIGHBOR_ENTRY *Neighbor; +- IP6_DEFAULT_ROUTER *DefaultRouter; +- BOOLEAN Solicited; +- BOOLEAN IsRouter; +- BOOLEAN Override; +- IP6_DAD_ENTRY *DupAddrDetect; +- IP6_INTERFACE *IpIf; +- UINT16 OptionLen; +- UINT8 *Option; +- EFI_STATUS Status; +- +- NetbufCopy (Packet, 0, sizeof (Icmp), (UINT8 *) &Icmp); ++ IP6_ICMP_INFORMATION_HEAD Icmp; ++ EFI_IPv6_ADDRESS Target; ++ IP6_ETHER_ADDR_OPTION LinkLayerOption; ++ BOOLEAN Provided; ++ INTN Compare; ++ IP6_NEIGHBOR_ENTRY *Neighbor; ++ IP6_DEFAULT_ROUTER *DefaultRouter; ++ BOOLEAN Solicited; ++ BOOLEAN IsRouter; ++ BOOLEAN Override; ++ IP6_DAD_ENTRY *DupAddrDetect; ++ IP6_INTERFACE *IpIf; ++ UINT16 OptionLen; ++ UINT8 *Option; ++ EFI_STATUS Status; ++ ++ NetbufCopy (Packet, 0, sizeof (Icmp), (UINT8 *)&Icmp); + NetbufCopy (Packet, sizeof (Icmp), sizeof (Target), Target.Addr); + + // +@@ -1720,7 +1722,7 @@ Ip6ProcessNeighborAdvertise ( + // ICMP Code is 0. + // Target Address is not a multicast address. + // +- if (Head->HopLimit != IP6_HOP_LIMIT || Icmp.Head.Code != 0 || !NetIp6IsValidUnicast (&Target)) { ++ if ((Head->HopLimit != IP6_HOP_LIMIT) || (Icmp.Head.Code != 0) || !NetIp6IsValidUnicast (&Target)) { + goto Exit; + } + +@@ -1732,9 +1734,9 @@ Ip6ProcessNeighborAdvertise ( + if (Head->PayloadLength < IP6_ND_LENGTH) { + goto Exit; + } else { +- OptionLen = (UINT16) (Head->PayloadLength - IP6_ND_LENGTH); ++ OptionLen = (UINT16)(Head->PayloadLength - IP6_ND_LENGTH); + if (OptionLen != 0) { +- Option = NetbufGetByte (Packet, IP6_ND_LENGTH, NULL); ++ Option = NetbufGetByte (Packet, IP6_ND_LENGTH, NULL); + ASSERT (Option != NULL); + + // +@@ -1753,6 +1755,7 @@ Ip6ProcessNeighborAdvertise ( + if ((Icmp.Fourth & IP6_SOLICITED_FLAG) == IP6_SOLICITED_FLAG) { + Solicited = TRUE; + } ++ + if (IP6_IS_MULTICAST (&Head->DestinationAddress) && Solicited) { + goto Exit; + } +@@ -1787,6 +1790,7 @@ Ip6ProcessNeighborAdvertise ( + if ((Icmp.Fourth & IP6_IS_ROUTER_FLAG) == IP6_IS_ROUTER_FLAG) { + IsRouter = TRUE; + } ++ + if ((Icmp.Fourth & IP6_OVERRIDE_FLAG) == IP6_OVERRIDE_FLAG) { + Override = TRUE; + } +@@ -1799,7 +1803,7 @@ Ip6ProcessNeighborAdvertise ( + Packet, + IP6_ND_LENGTH, + sizeof (IP6_ETHER_ADDR_OPTION), +- (UINT8 *) &LinkLayerOption ++ (UINT8 *)&LinkLayerOption + ); + + if (LinkLayerOption.Type == Ip6OptionEtherTarget) { +@@ -1828,6 +1832,7 @@ Ip6ProcessNeighborAdvertise ( + if (!Provided) { + goto Exit; + } ++ + // + // Update the Neighbor Cache + // +@@ -1837,17 +1842,16 @@ Ip6ProcessNeighborAdvertise ( + Neighbor->Ticks = IP6_GET_TICKS (IpSb->ReachableTime); + } else { + Neighbor->State = EfiNeighborStale; +- Neighbor->Ticks = (UINT32) IP6_INFINIT_LIFETIME; ++ Neighbor->Ticks = (UINT32)IP6_INFINIT_LIFETIME; + // + // Send any packets queued for the neighbor awaiting address resolution. + // +- Neighbor->CallBack ((VOID *) Neighbor); ++ Neighbor->CallBack ((VOID *)Neighbor); + } + + Neighbor->IsRouter = IsRouter; +- + } else { +- if (!Override && Compare != 0) { ++ if (!Override && (Compare != 0)) { + // + // When the Override Flag is clear and supplied link-layer address differs from + // that in the cache, if the state of the entry is not REACHABLE, ignore the +@@ -1856,12 +1860,13 @@ Ip6ProcessNeighborAdvertise ( + // + if (Neighbor->State == EfiNeighborReachable) { + Neighbor->State = EfiNeighborStale; +- Neighbor->Ticks = (UINT32) IP6_INFINIT_LIFETIME; ++ Neighbor->Ticks = (UINT32)IP6_INFINIT_LIFETIME; + } + } else { + if (Compare != 0) { + CopyMem (Neighbor->LinkAddress.Addr, LinkLayerOption.EtherAddr, 6); + } ++ + // + // Update the entry's state + // +@@ -1871,7 +1876,7 @@ Ip6ProcessNeighborAdvertise ( + } else { + if (Compare != 0) { + Neighbor->State = EfiNeighborStale; +- Neighbor->Ticks = (UINT32) IP6_INFINIT_LIFETIME; ++ Neighbor->Ticks = (UINT32)IP6_INFINIT_LIFETIME; + } + } + +@@ -1892,7 +1897,7 @@ Ip6ProcessNeighborAdvertise ( + } + + if (Neighbor->State == EfiNeighborReachable) { +- Neighbor->CallBack ((VOID *) Neighbor); ++ Neighbor->CallBack ((VOID *)Neighbor); + } + + Status = EFI_SUCCESS; +@@ -1918,36 +1923,36 @@ Exit: + **/ + EFI_STATUS + Ip6ProcessRouterAdvertise ( +- IN IP6_SERVICE *IpSb, +- IN EFI_IP6_HEADER *Head, +- IN NET_BUF *Packet ++ IN IP6_SERVICE *IpSb, ++ IN EFI_IP6_HEADER *Head, ++ IN NET_BUF *Packet + ) + { +- IP6_ICMP_INFORMATION_HEAD Icmp; +- UINT32 ReachableTime; +- UINT32 RetransTimer; +- UINT16 RouterLifetime; +- UINT32 Offset; +- UINT8 Type; +- UINT8 Length; +- IP6_ETHER_ADDR_OPTION LinkLayerOption; +- UINT32 Fourth; +- UINT8 CurHopLimit; +- BOOLEAN Mflag; +- BOOLEAN Oflag; +- IP6_DEFAULT_ROUTER *DefaultRouter; +- IP6_NEIGHBOR_ENTRY *NeighborCache; +- EFI_MAC_ADDRESS LinkLayerAddress; +- IP6_MTU_OPTION MTUOption; +- IP6_PREFIX_INFO_OPTION PrefixOption; +- IP6_PREFIX_LIST_ENTRY *PrefixList; +- BOOLEAN OnLink; +- BOOLEAN Autonomous; +- EFI_IPv6_ADDRESS StatelessAddress; +- EFI_STATUS Status; +- UINT16 OptionLen; +- UINT8 *Option; +- INTN Result; ++ IP6_ICMP_INFORMATION_HEAD Icmp; ++ UINT32 ReachableTime; ++ UINT32 RetransTimer; ++ UINT16 RouterLifetime; ++ UINT32 Offset; ++ UINT8 Type; ++ UINT8 Length; ++ IP6_ETHER_ADDR_OPTION LinkLayerOption; ++ UINT32 Fourth; ++ UINT8 CurHopLimit; ++ BOOLEAN Mflag; ++ BOOLEAN Oflag; ++ IP6_DEFAULT_ROUTER *DefaultRouter; ++ IP6_NEIGHBOR_ENTRY *NeighborCache; ++ EFI_MAC_ADDRESS LinkLayerAddress; ++ IP6_MTU_OPTION MTUOption; ++ IP6_PREFIX_INFO_OPTION PrefixOption; ++ IP6_PREFIX_LIST_ENTRY *PrefixList; ++ BOOLEAN OnLink; ++ BOOLEAN Autonomous; ++ EFI_IPv6_ADDRESS StatelessAddress; ++ EFI_STATUS Status; ++ UINT16 OptionLen; ++ UINT8 *Option; ++ INTN Result; + + Status = EFI_INVALID_PARAMETER; + +@@ -1958,7 +1963,7 @@ Ip6ProcessRouterAdvertise ( + goto Exit; + } + +- NetbufCopy (Packet, 0, sizeof (Icmp), (UINT8 *) &Icmp); ++ NetbufCopy (Packet, 0, sizeof (Icmp), (UINT8 *)&Icmp); + + // + // Validate the incoming Router Advertisement +@@ -1970,23 +1975,25 @@ Ip6ProcessRouterAdvertise ( + if (!NetIp6IsLinkLocalAddr (&Head->SourceAddress)) { + goto Exit; + } ++ + // + // The IP Hop Limit field has a value of 255, i.e. the packet + // could not possibly have been forwarded by a router. + // ICMP Code is 0. + // ICMP length (derived from the IP length) is 16 or more octets. + // +- if (Head->HopLimit != IP6_HOP_LIMIT || Icmp.Head.Code != 0 || +- Head->PayloadLength < IP6_RA_LENGTH) { ++ if ((Head->HopLimit != IP6_HOP_LIMIT) || (Icmp.Head.Code != 0) || ++ (Head->PayloadLength < IP6_RA_LENGTH)) ++ { + goto Exit; + } + + // + // All included options have a length that is greater than zero. + // +- OptionLen = (UINT16) (Head->PayloadLength - IP6_RA_LENGTH); ++ OptionLen = (UINT16)(Head->PayloadLength - IP6_RA_LENGTH); + if (OptionLen != 0) { +- Option = NetbufGetByte (Packet, IP6_RA_LENGTH, NULL); ++ Option = NetbufGetByte (Packet, IP6_RA_LENGTH, NULL); + ASSERT (Option != NULL); + + if (!Ip6IsNDOptionValid (Option, OptionLen)) { +@@ -2035,17 +2042,17 @@ Ip6ProcessRouterAdvertise ( + } + } + +- CurHopLimit = *((UINT8 *) &Fourth + 3); ++ CurHopLimit = *((UINT8 *)&Fourth + 3); + if (CurHopLimit != 0) { + IpSb->CurHopLimit = CurHopLimit; + } + + Mflag = FALSE; + Oflag = FALSE; +- if ((*((UINT8 *) &Fourth + 2) & IP6_M_ADDR_CONFIG_FLAG) == IP6_M_ADDR_CONFIG_FLAG) { ++ if ((*((UINT8 *)&Fourth + 2) & IP6_M_ADDR_CONFIG_FLAG) == IP6_M_ADDR_CONFIG_FLAG) { + Mflag = TRUE; + } else { +- if ((*((UINT8 *) &Fourth + 2) & IP6_O_CONFIG_FLAG) == IP6_O_CONFIG_FLAG) { ++ if ((*((UINT8 *)&Fourth + 2) & IP6_O_CONFIG_FLAG) == IP6_O_CONFIG_FLAG) { + Oflag = TRUE; + } + } +@@ -2060,12 +2067,12 @@ Ip6ProcessRouterAdvertise ( + // + // Process Reachable Time and Retrans Timer fields. + // +- NetbufCopy (Packet, sizeof (Icmp), sizeof (UINT32), (UINT8 *) &ReachableTime); +- NetbufCopy (Packet, sizeof (Icmp) + sizeof (UINT32), sizeof (UINT32), (UINT8 *) &RetransTimer); ++ NetbufCopy (Packet, sizeof (Icmp), sizeof (UINT32), (UINT8 *)&ReachableTime); ++ NetbufCopy (Packet, sizeof (Icmp) + sizeof (UINT32), sizeof (UINT32), (UINT8 *)&RetransTimer); + ReachableTime = NTOHL (ReachableTime); + RetransTimer = NTOHL (RetransTimer); + +- if (ReachableTime != 0 && ReachableTime != IpSb->BaseReachableTime) { ++ if ((ReachableTime != 0) && (ReachableTime != IpSb->BaseReachableTime)) { + // + // If new value is not unspecified and differs from the previous one, record it + // in BaseReachableTime and recompute a ReachableTime. +@@ -2098,262 +2105,266 @@ Ip6ProcessRouterAdvertise ( + // fit within the input packet. + // + Offset = 16; +- while (Offset < (UINT32) Head->PayloadLength) { ++ while (Offset < (UINT32)Head->PayloadLength) { + NetbufCopy (Packet, Offset, sizeof (UINT8), &Type); + switch (Type) { +- case Ip6OptionEtherSource: +- // +- // Update the neighbor cache +- // +- NetbufCopy (Packet, Offset, sizeof (IP6_ETHER_ADDR_OPTION), (UINT8 *) &LinkLayerOption); ++ case Ip6OptionEtherSource: ++ // ++ // Update the neighbor cache ++ // ++ NetbufCopy (Packet, Offset, sizeof (IP6_ETHER_ADDR_OPTION), (UINT8 *)&LinkLayerOption); + +- // +- // Option size validity ensured by Ip6IsNDOptionValid(). +- // +- ASSERT (LinkLayerOption.Length != 0); +- ASSERT (Offset + (UINT32) LinkLayerOption.Length * 8 <= (UINT32) Head->PayloadLength); ++ // ++ // Option size validity ensured by Ip6IsNDOptionValid(). ++ // ++ ASSERT (LinkLayerOption.Length != 0); ++ ASSERT (Offset + (UINT32)LinkLayerOption.Length * 8 <= (UINT32)Head->PayloadLength); + +- ZeroMem (&LinkLayerAddress, sizeof (EFI_MAC_ADDRESS)); +- CopyMem (&LinkLayerAddress, LinkLayerOption.EtherAddr, 6); ++ ZeroMem (&LinkLayerAddress, sizeof (EFI_MAC_ADDRESS)); ++ CopyMem (&LinkLayerAddress, LinkLayerOption.EtherAddr, 6); + +- if (NeighborCache == NULL) { +- NeighborCache = Ip6CreateNeighborEntry ( +- IpSb, +- Ip6OnArpResolved, +- &Head->SourceAddress, +- &LinkLayerAddress +- ); + if (NeighborCache == NULL) { +- Status = EFI_OUT_OF_RESOURCES; +- goto Exit; ++ NeighborCache = Ip6CreateNeighborEntry ( ++ IpSb, ++ Ip6OnArpResolved, ++ &Head->SourceAddress, ++ &LinkLayerAddress ++ ); ++ if (NeighborCache == NULL) { ++ Status = EFI_OUT_OF_RESOURCES; ++ goto Exit; ++ } ++ ++ NeighborCache->IsRouter = TRUE; ++ NeighborCache->State = EfiNeighborStale; ++ NeighborCache->Ticks = (UINT32)IP6_INFINIT_LIFETIME; ++ } else { ++ Result = CompareMem (&LinkLayerAddress, &NeighborCache->LinkAddress, 6); ++ ++ // ++ // If the link-local address is the same as that already in the cache, ++ // the cache entry's state remains unchanged. Otherwise update the ++ // reachability state to STALE. ++ // ++ if ((NeighborCache->State == EfiNeighborInComplete) || (Result != 0)) { ++ CopyMem (&NeighborCache->LinkAddress, &LinkLayerAddress, 6); ++ ++ NeighborCache->Ticks = (UINT32)IP6_INFINIT_LIFETIME; ++ ++ if (NeighborCache->State == EfiNeighborInComplete) { ++ // ++ // Send queued packets if exist. ++ // ++ NeighborCache->State = EfiNeighborStale; ++ NeighborCache->CallBack ((VOID *)NeighborCache); ++ } else { ++ NeighborCache->State = EfiNeighborStale; ++ } ++ } + } +- NeighborCache->IsRouter = TRUE; +- NeighborCache->State = EfiNeighborStale; +- NeighborCache->Ticks = (UINT32) IP6_INFINIT_LIFETIME; +- } else { +- Result = CompareMem (&LinkLayerAddress, &NeighborCache->LinkAddress, 6); ++ ++ Offset += (UINT32)LinkLayerOption.Length * 8; ++ break; ++ case Ip6OptionPrefixInfo: ++ NetbufCopy (Packet, Offset, sizeof (IP6_PREFIX_INFO_OPTION), (UINT8 *)&PrefixOption); + + // +- // If the link-local address is the same as that already in the cache, +- // the cache entry's state remains unchanged. Otherwise update the +- // reachability state to STALE. ++ // Option size validity ensured by Ip6IsNDOptionValid(). + // +- if ((NeighborCache->State == EfiNeighborInComplete) || (Result != 0)) { +- CopyMem (&NeighborCache->LinkAddress, &LinkLayerAddress, 6); ++ ASSERT (PrefixOption.Length == 4); ++ ASSERT (Offset + (UINT32)PrefixOption.Length * 8 <= (UINT32)Head->PayloadLength); + +- NeighborCache->Ticks = (UINT32) IP6_INFINIT_LIFETIME; ++ PrefixOption.ValidLifetime = NTOHL (PrefixOption.ValidLifetime); ++ PrefixOption.PreferredLifetime = NTOHL (PrefixOption.PreferredLifetime); + +- if (NeighborCache->State == EfiNeighborInComplete) { +- // +- // Send queued packets if exist. +- // +- NeighborCache->State = EfiNeighborStale; +- NeighborCache->CallBack ((VOID *) NeighborCache); +- } else { +- NeighborCache->State = EfiNeighborStale; +- } ++ // ++ // Get L and A flag, recorded in the lower 2 bits of Reserved1 ++ // ++ OnLink = FALSE; ++ if ((PrefixOption.Reserved1 & IP6_ON_LINK_FLAG) == IP6_ON_LINK_FLAG) { ++ OnLink = TRUE; + } +- } +- +- Offset += (UINT32) LinkLayerOption.Length * 8; +- break; +- case Ip6OptionPrefixInfo: +- NetbufCopy (Packet, Offset, sizeof (IP6_PREFIX_INFO_OPTION), (UINT8 *) &PrefixOption); + +- // +- // Option size validity ensured by Ip6IsNDOptionValid(). +- // +- ASSERT (PrefixOption.Length == 4); +- ASSERT (Offset + (UINT32) PrefixOption.Length * 8 <= (UINT32) Head->PayloadLength); +- +- PrefixOption.ValidLifetime = NTOHL (PrefixOption.ValidLifetime); +- PrefixOption.PreferredLifetime = NTOHL (PrefixOption.PreferredLifetime); ++ Autonomous = FALSE; ++ if ((PrefixOption.Reserved1 & IP6_AUTO_CONFIG_FLAG) == IP6_AUTO_CONFIG_FLAG) { ++ Autonomous = TRUE; ++ } + +- // +- // Get L and A flag, recorded in the lower 2 bits of Reserved1 +- // +- OnLink = FALSE; +- if ((PrefixOption.Reserved1 & IP6_ON_LINK_FLAG) == IP6_ON_LINK_FLAG) { +- OnLink = TRUE; +- } +- Autonomous = FALSE; +- if ((PrefixOption.Reserved1 & IP6_AUTO_CONFIG_FLAG) == IP6_AUTO_CONFIG_FLAG) { +- Autonomous = TRUE; +- } ++ // ++ // If the prefix is the link-local prefix, silently ignore the prefix option. ++ // ++ if ((PrefixOption.PrefixLength == IP6_LINK_LOCAL_PREFIX_LENGTH) && ++ NetIp6IsLinkLocalAddr (&PrefixOption.Prefix) ++ ) ++ { ++ Offset += sizeof (IP6_PREFIX_INFO_OPTION); ++ break; ++ } + +- // +- // If the prefix is the link-local prefix, silently ignore the prefix option. +- // +- if (PrefixOption.PrefixLength == IP6_LINK_LOCAL_PREFIX_LENGTH && +- NetIp6IsLinkLocalAddr (&PrefixOption.Prefix) +- ) { +- Offset += sizeof (IP6_PREFIX_INFO_OPTION); +- break; +- } +- // +- // Do following if on-link flag is set according to RFC4861. +- // +- if (OnLink) { +- PrefixList = Ip6FindPrefixListEntry ( +- IpSb, +- TRUE, +- PrefixOption.PrefixLength, +- &PrefixOption.Prefix +- ); + // +- // Create a new entry for the prefix, if the ValidLifetime is zero, +- // silently ignore the prefix option. ++ // Do following if on-link flag is set according to RFC4861. + // +- if (PrefixList == NULL && PrefixOption.ValidLifetime != 0) { +- PrefixList = Ip6CreatePrefixListEntry ( ++ if (OnLink) { ++ PrefixList = Ip6FindPrefixListEntry ( + IpSb, + TRUE, +- PrefixOption.ValidLifetime, +- PrefixOption.PreferredLifetime, + PrefixOption.PrefixLength, + &PrefixOption.Prefix + ); +- if (PrefixList == NULL) { +- Status = EFI_OUT_OF_RESOURCES; +- goto Exit; +- } +- } else if (PrefixList != NULL) { +- if (PrefixOption.ValidLifetime != 0) { +- PrefixList->ValidLifetime = PrefixOption.ValidLifetime; +- } else { +- // +- // If the prefix exists and incoming ValidLifetime is zero, immediately +- // remove the prefix. +- Ip6DestroyPrefixListEntry (IpSb, PrefixList, OnLink, TRUE); +- } +- } +- } +- +- // +- // Do following if Autonomous flag is set according to RFC4862. +- // +- if (Autonomous && PrefixOption.PreferredLifetime <= PrefixOption.ValidLifetime) { +- PrefixList = Ip6FindPrefixListEntry ( +- IpSb, +- FALSE, +- PrefixOption.PrefixLength, +- &PrefixOption.Prefix +- ); +- // +- // Create a new entry for the prefix, and form an address by prefix + interface id +- // If the sum of the prefix length and interface identifier length +- // does not equal 128 bits, the Prefix Information option MUST be ignored. +- // +- if (PrefixList == NULL && +- PrefixOption.ValidLifetime != 0 && +- PrefixOption.PrefixLength + IpSb->InterfaceIdLen * 8 == 128 +- ) { + // +- // Form the address in network order. ++ // Create a new entry for the prefix, if the ValidLifetime is zero, ++ // silently ignore the prefix option. + // +- CopyMem (&StatelessAddress, &PrefixOption.Prefix, sizeof (UINT64)); +- CopyMem (&StatelessAddress.Addr[8], IpSb->InterfaceId, sizeof (UINT64)); +- +- // +- // If the address is not yet in the assigned address list, adds it into. +- // +- if (!Ip6IsOneOfSetAddress (IpSb, &StatelessAddress, NULL, NULL)) { +- // +- // And also not in the DAD process, check its uniqueness firstly. +- // +- if (Ip6FindDADEntry (IpSb, &StatelessAddress, NULL) == NULL) { +- Status = Ip6SetAddress ( +- IpSb->DefaultInterface, +- &StatelessAddress, +- FALSE, +- PrefixOption.PrefixLength, +- PrefixOption.ValidLifetime, +- PrefixOption.PreferredLifetime, +- NULL, +- NULL +- ); +- if (EFI_ERROR (Status)) { +- goto Exit; +- } ++ if ((PrefixList == NULL) && (PrefixOption.ValidLifetime != 0)) { ++ PrefixList = Ip6CreatePrefixListEntry ( ++ IpSb, ++ TRUE, ++ PrefixOption.ValidLifetime, ++ PrefixOption.PreferredLifetime, ++ PrefixOption.PrefixLength, ++ &PrefixOption.Prefix ++ ); ++ if (PrefixList == NULL) { ++ Status = EFI_OUT_OF_RESOURCES; ++ goto Exit; ++ } ++ } else if (PrefixList != NULL) { ++ if (PrefixOption.ValidLifetime != 0) { ++ PrefixList->ValidLifetime = PrefixOption.ValidLifetime; ++ } else { ++ // ++ // If the prefix exists and incoming ValidLifetime is zero, immediately ++ // remove the prefix. ++ Ip6DestroyPrefixListEntry (IpSb, PrefixList, OnLink, TRUE); + } + } ++ } + +- // +- // Adds the prefix option to stateless prefix option list. +- // +- PrefixList = Ip6CreatePrefixListEntry ( ++ // ++ // Do following if Autonomous flag is set according to RFC4862. ++ // ++ if (Autonomous && (PrefixOption.PreferredLifetime <= PrefixOption.ValidLifetime)) { ++ PrefixList = Ip6FindPrefixListEntry ( + IpSb, + FALSE, +- PrefixOption.ValidLifetime, +- PrefixOption.PreferredLifetime, + PrefixOption.PrefixLength, + &PrefixOption.Prefix + ); +- if (PrefixList == NULL) { +- Status = EFI_OUT_OF_RESOURCES; +- goto Exit; +- } +- } else if (PrefixList != NULL) { +- + // +- // Reset the preferred lifetime of the address if the advertised prefix exists. +- // Perform specific action to valid lifetime together. ++ // Create a new entry for the prefix, and form an address by prefix + interface id ++ // If the sum of the prefix length and interface identifier length ++ // does not equal 128 bits, the Prefix Information option MUST be ignored. + // +- PrefixList->PreferredLifetime = PrefixOption.PreferredLifetime; +- if ((PrefixOption.ValidLifetime > 7200) || +- (PrefixOption.ValidLifetime > PrefixList->ValidLifetime)) { ++ if ((PrefixList == NULL) && ++ (PrefixOption.ValidLifetime != 0) && ++ (PrefixOption.PrefixLength + IpSb->InterfaceIdLen * 8 == 128) ++ ) ++ { + // +- // If the received Valid Lifetime is greater than 2 hours or +- // greater than RemainingLifetime, set the valid lifetime of the +- // corresponding address to the advertised Valid Lifetime. ++ // Form the address in network order. + // +- PrefixList->ValidLifetime = PrefixOption.ValidLifetime; ++ CopyMem (&StatelessAddress, &PrefixOption.Prefix, sizeof (UINT64)); ++ CopyMem (&StatelessAddress.Addr[8], IpSb->InterfaceId, sizeof (UINT64)); + +- } else if (PrefixList->ValidLifetime <= 7200) { + // +- // If RemainingLifetime is less than or equals to 2 hours, ignore the +- // Prefix Information option with regards to the valid lifetime. +- // TODO: If this option has been authenticated, set the valid lifetime. ++ // If the address is not yet in the assigned address list, adds it into. + // +- } else { ++ if (!Ip6IsOneOfSetAddress (IpSb, &StatelessAddress, NULL, NULL)) { ++ // ++ // And also not in the DAD process, check its uniqueness firstly. ++ // ++ if (Ip6FindDADEntry (IpSb, &StatelessAddress, NULL) == NULL) { ++ Status = Ip6SetAddress ( ++ IpSb->DefaultInterface, ++ &StatelessAddress, ++ FALSE, ++ PrefixOption.PrefixLength, ++ PrefixOption.ValidLifetime, ++ PrefixOption.PreferredLifetime, ++ NULL, ++ NULL ++ ); ++ if (EFI_ERROR (Status)) { ++ goto Exit; ++ } ++ } ++ } ++ + // +- // Otherwise, reset the valid lifetime of the corresponding +- // address to 2 hours. ++ // Adds the prefix option to stateless prefix option list. ++ // ++ PrefixList = Ip6CreatePrefixListEntry ( ++ IpSb, ++ FALSE, ++ PrefixOption.ValidLifetime, ++ PrefixOption.PreferredLifetime, ++ PrefixOption.PrefixLength, ++ &PrefixOption.Prefix ++ ); ++ if (PrefixList == NULL) { ++ Status = EFI_OUT_OF_RESOURCES; ++ goto Exit; ++ } ++ } else if (PrefixList != NULL) { + // +- PrefixList->ValidLifetime = 7200; ++ // Reset the preferred lifetime of the address if the advertised prefix exists. ++ // Perform specific action to valid lifetime together. ++ // ++ PrefixList->PreferredLifetime = PrefixOption.PreferredLifetime; ++ if ((PrefixOption.ValidLifetime > 7200) || ++ (PrefixOption.ValidLifetime > PrefixList->ValidLifetime)) ++ { ++ // ++ // If the received Valid Lifetime is greater than 2 hours or ++ // greater than RemainingLifetime, set the valid lifetime of the ++ // corresponding address to the advertised Valid Lifetime. ++ // ++ PrefixList->ValidLifetime = PrefixOption.ValidLifetime; ++ } else if (PrefixList->ValidLifetime <= 7200) { ++ // ++ // If RemainingLifetime is less than or equals to 2 hours, ignore the ++ // Prefix Information option with regards to the valid lifetime. ++ // TODO: If this option has been authenticated, set the valid lifetime. ++ // ++ } else { ++ // ++ // Otherwise, reset the valid lifetime of the corresponding ++ // address to 2 hours. ++ // ++ PrefixList->ValidLifetime = 7200; ++ } + } + } +- } + +- Offset += sizeof (IP6_PREFIX_INFO_OPTION); +- break; +- case Ip6OptionMtu: +- NetbufCopy (Packet, Offset, sizeof (IP6_MTU_OPTION), (UINT8 *) &MTUOption); ++ Offset += sizeof (IP6_PREFIX_INFO_OPTION); ++ break; ++ case Ip6OptionMtu: ++ NetbufCopy (Packet, Offset, sizeof (IP6_MTU_OPTION), (UINT8 *)&MTUOption); + +- // +- // Option size validity ensured by Ip6IsNDOptionValid(). +- // +- ASSERT (MTUOption.Length == 1); +- ASSERT (Offset + (UINT32) MTUOption.Length * 8 <= (UINT32) Head->PayloadLength); ++ // ++ // Option size validity ensured by Ip6IsNDOptionValid(). ++ // ++ ASSERT (MTUOption.Length == 1); ++ ASSERT (Offset + (UINT32)MTUOption.Length * 8 <= (UINT32)Head->PayloadLength); + +- // +- // Use IPv6 minimum link MTU 1280 bytes as the maximum packet size in order +- // to omit implementation of Path MTU Discovery. Thus ignore the MTU option +- // in Router Advertisement. +- // ++ // ++ // Use IPv6 minimum link MTU 1280 bytes as the maximum packet size in order ++ // to omit implementation of Path MTU Discovery. Thus ignore the MTU option ++ // in Router Advertisement. ++ // + +- Offset += sizeof (IP6_MTU_OPTION); +- break; +- default: +- // +- // Silently ignore unrecognized options +- // +- NetbufCopy (Packet, Offset + sizeof (UINT8), sizeof (UINT8), &Length); ++ Offset += sizeof (IP6_MTU_OPTION); ++ break; ++ default: ++ // ++ // Silently ignore unrecognized options ++ // ++ NetbufCopy (Packet, Offset + sizeof (UINT8), sizeof (UINT8), &Length); + +- ASSERT (Length != 0); ++ ASSERT (Length != 0); + +- Offset += (UINT32) Length * 8; +- break; ++ Offset += (UINT32)Length * 8; ++ break; + } + } + +@@ -2382,31 +2393,31 @@ Exit: + **/ + EFI_STATUS + Ip6ProcessRedirect ( +- IN IP6_SERVICE *IpSb, +- IN EFI_IP6_HEADER *Head, +- IN NET_BUF *Packet ++ IN IP6_SERVICE *IpSb, ++ IN EFI_IP6_HEADER *Head, ++ IN NET_BUF *Packet + ) + { +- IP6_ICMP_INFORMATION_HEAD *Icmp; +- EFI_IPv6_ADDRESS *Target; +- EFI_IPv6_ADDRESS *IcmpDest; +- UINT8 *Option; +- UINT16 OptionLen; +- IP6_ROUTE_ENTRY *RouteEntry; +- IP6_ROUTE_CACHE_ENTRY *RouteCache; +- IP6_NEIGHBOR_ENTRY *NeighborCache; +- INT32 Length; +- UINT8 OptLen; +- IP6_ETHER_ADDR_OPTION *LinkLayerOption; +- EFI_MAC_ADDRESS Mac; +- UINT32 Index; +- BOOLEAN IsRouter; +- EFI_STATUS Status; +- INTN Result; ++ IP6_ICMP_INFORMATION_HEAD *Icmp; ++ EFI_IPv6_ADDRESS *Target; ++ EFI_IPv6_ADDRESS *IcmpDest; ++ UINT8 *Option; ++ UINT16 OptionLen; ++ IP6_ROUTE_ENTRY *RouteEntry; ++ IP6_ROUTE_CACHE_ENTRY *RouteCache; ++ IP6_NEIGHBOR_ENTRY *NeighborCache; ++ INT32 Length; ++ UINT8 OptLen; ++ IP6_ETHER_ADDR_OPTION *LinkLayerOption; ++ EFI_MAC_ADDRESS Mac; ++ UINT32 Index; ++ BOOLEAN IsRouter; ++ EFI_STATUS Status; ++ INTN Result; + + Status = EFI_INVALID_PARAMETER; + +- Icmp = (IP6_ICMP_INFORMATION_HEAD *) NetbufGetByte (Packet, 0, NULL); ++ Icmp = (IP6_ICMP_INFORMATION_HEAD *)NetbufGetByte (Packet, 0, NULL); + if (Icmp == NULL) { + goto Exit; + } +@@ -2421,8 +2432,9 @@ Ip6ProcessRedirect ( + // ICMP Code is 0. + // ICMP length (derived from the IP length) is 40 or more octets. + // +- if (Head->HopLimit != IP6_HOP_LIMIT || Icmp->Head.Code != 0 || +- Head->PayloadLength < IP6_REDITECT_LENGTH) { ++ if ((Head->HopLimit != IP6_HOP_LIMIT) || (Icmp->Head.Code != 0) || ++ (Head->PayloadLength < IP6_REDITECT_LENGTH)) ++ { + goto Exit; + } + +@@ -2443,9 +2455,9 @@ Ip6ProcessRedirect ( + // + // All included options have a length that is greater than zero. + // +- OptionLen = (UINT16) (Head->PayloadLength - IP6_REDITECT_LENGTH); ++ OptionLen = (UINT16)(Head->PayloadLength - IP6_REDITECT_LENGTH); + if (OptionLen != 0) { +- Option = NetbufGetByte (Packet, IP6_REDITECT_LENGTH, NULL); ++ Option = NetbufGetByte (Packet, IP6_REDITECT_LENGTH, NULL); + ASSERT (Option != NULL); + + if (!Ip6IsNDOptionValid (Option, OptionLen)) { +@@ -2453,7 +2465,7 @@ Ip6ProcessRedirect ( + } + } + +- Target = (EFI_IPv6_ADDRESS *) (Icmp + 1); ++ Target = (EFI_IPv6_ADDRESS *)(Icmp + 1); + IcmpDest = Target + 1; + + // +@@ -2479,32 +2491,34 @@ Ip6ProcessRedirect ( + // address option. + // + Length = Packet->TotalSize - 40; +- Option = (UINT8 *) (IcmpDest + 1); ++ Option = (UINT8 *)(IcmpDest + 1); + LinkLayerOption = NULL; + while (Length > 0) { + switch (*Option) { +- case Ip6OptionEtherTarget: ++ case Ip6OptionEtherTarget: + +- LinkLayerOption = (IP6_ETHER_ADDR_OPTION *) Option; +- OptLen = LinkLayerOption->Length; +- if (OptLen != 1) { +- // +- // For ethernet, the length must be 1. +- // +- goto Exit; +- } +- break; ++ LinkLayerOption = (IP6_ETHER_ADDR_OPTION *)Option; ++ OptLen = LinkLayerOption->Length; ++ if (OptLen != 1) { ++ // ++ // For ethernet, the length must be 1. ++ // ++ goto Exit; ++ } + +- default: ++ break; + +- OptLen = *(Option + 1); +- if (OptLen == 0) { +- // +- // A length of 0 is invalid. +- // +- goto Exit; +- } +- break; ++ default: ++ ++ OptLen = *(Option + 1); ++ if (OptLen == 0) { ++ // ++ // A length of 0 is invalid. ++ // ++ goto Exit; ++ } ++ ++ break; + } + + Length -= 8 * OptLen; +@@ -2535,10 +2549,9 @@ Ip6ProcessRedirect ( + IP6_COPY_ADDRESS (&RouteCache->NextHop, Target); + + if (!IsRouter) { +- RouteEntry = (IP6_ROUTE_ENTRY *) RouteCache->Tag; ++ RouteEntry = (IP6_ROUTE_ENTRY *)RouteCache->Tag; + RouteEntry->Flag = RouteEntry->Flag | IP6_DIRECT_ROUTE; + } +- + } else { + // + // Get the Route Entry. +@@ -2563,7 +2576,7 @@ Ip6ProcessRedirect ( + IcmpDest, + &Head->DestinationAddress, + Target, +- (UINTN) RouteEntry ++ (UINTN)RouteEntry + ); + if (RouteCache == NULL) { + Status = EFI_OUT_OF_RESOURCES; +@@ -2600,7 +2613,7 @@ Ip6ProcessRedirect ( + } + + NeighborCache->State = EfiNeighborStale; +- NeighborCache->Ticks = (UINT32) IP6_INFINIT_LIFETIME; ++ NeighborCache->Ticks = (UINT32)IP6_INFINIT_LIFETIME; + } else { + Result = CompareMem (LinkLayerOption->EtherAddr, &NeighborCache->LinkAddress, 6); + +@@ -2612,14 +2625,14 @@ Ip6ProcessRedirect ( + if ((NeighborCache->State == EfiNeighborInComplete) || (Result != 0)) { + CopyMem (&NeighborCache->LinkAddress, LinkLayerOption->EtherAddr, 6); + +- NeighborCache->Ticks = (UINT32) IP6_INFINIT_LIFETIME; ++ NeighborCache->Ticks = (UINT32)IP6_INFINIT_LIFETIME; + + if (NeighborCache->State == EfiNeighborInComplete) { + // + // Send queued packets if exist. + // + NeighborCache->State = EfiNeighborStale; +- NeighborCache->CallBack ((VOID *) NeighborCache); ++ NeighborCache->CallBack ((VOID *)NeighborCache); + } else { + NeighborCache->State = EfiNeighborStale; + } +@@ -2627,7 +2640,7 @@ Ip6ProcessRedirect ( + } + } + +- if (NeighborCache != NULL && IsRouter) { ++ if ((NeighborCache != NULL) && IsRouter) { + // + // The Target is a router, set IsRouter to TRUE. + // +@@ -2667,14 +2680,14 @@ Exit: + **/ + EFI_STATUS + Ip6AddNeighbor ( +- IN IP6_SERVICE *IpSb, +- IN EFI_IPv6_ADDRESS *TargetIp6Address, +- IN EFI_MAC_ADDRESS *TargetLinkAddress OPTIONAL, +- IN UINT32 Timeout, +- IN BOOLEAN Override ++ IN IP6_SERVICE *IpSb, ++ IN EFI_IPv6_ADDRESS *TargetIp6Address, ++ IN EFI_MAC_ADDRESS *TargetLinkAddress OPTIONAL, ++ IN UINT32 Timeout, ++ IN BOOLEAN Override + ) + { +- IP6_NEIGHBOR_ENTRY *Neighbor; ++ IP6_NEIGHBOR_ENTRY *Neighbor; + + Neighbor = Ip6FindNeighborEntry (IpSb, TargetIp6Address); + if (Neighbor != NULL) { +@@ -2702,7 +2715,7 @@ Ip6AddNeighbor ( + Neighbor->Ticks = IP6_GET_TICKS (Timeout / TICKS_PER_MS); + Neighbor->Dynamic = TRUE; + } else { +- Neighbor->Ticks = (UINT32) IP6_INFINIT_LIFETIME; ++ Neighbor->Ticks = (UINT32)IP6_INFINIT_LIFETIME; + } + + return EFI_SUCCESS; +@@ -2729,14 +2742,14 @@ Ip6AddNeighbor ( + **/ + EFI_STATUS + Ip6DelNeighbor ( +- IN IP6_SERVICE *IpSb, +- IN EFI_IPv6_ADDRESS *TargetIp6Address, +- IN EFI_MAC_ADDRESS *TargetLinkAddress OPTIONAL, +- IN UINT32 Timeout, +- IN BOOLEAN Override ++ IN IP6_SERVICE *IpSb, ++ IN EFI_IPv6_ADDRESS *TargetIp6Address, ++ IN EFI_MAC_ADDRESS *TargetLinkAddress OPTIONAL, ++ IN UINT32 Timeout, ++ IN BOOLEAN Override + ) + { +- IP6_NEIGHBOR_ENTRY *Neighbor; ++ IP6_NEIGHBOR_ENTRY *Neighbor; + + Neighbor = Ip6FindNeighborEntry (IpSb, TargetIp6Address); + if (Neighbor == NULL) { +@@ -2761,24 +2774,24 @@ Ip6DelNeighbor ( + VOID + EFIAPI + Ip6NdFasterTimerTicking ( +- IN EFI_EVENT Event, +- IN VOID *Context ++ IN EFI_EVENT Event, ++ IN VOID *Context + ) + { +- LIST_ENTRY *Entry; +- LIST_ENTRY *Next; +- LIST_ENTRY *Entry2; +- IP6_INTERFACE *IpIf; +- IP6_DELAY_JOIN_LIST *DelayNode; +- EFI_IPv6_ADDRESS Source; +- IP6_DAD_ENTRY *DupAddrDetect; +- EFI_STATUS Status; +- IP6_NEIGHBOR_ENTRY *NeighborCache; +- EFI_IPv6_ADDRESS Destination; +- IP6_SERVICE *IpSb; +- BOOLEAN Flag; +- +- IpSb = (IP6_SERVICE *) Context; ++ LIST_ENTRY *Entry; ++ LIST_ENTRY *Next; ++ LIST_ENTRY *Entry2; ++ IP6_INTERFACE *IpIf; ++ IP6_DELAY_JOIN_LIST *DelayNode; ++ EFI_IPv6_ADDRESS Source; ++ IP6_DAD_ENTRY *DupAddrDetect; ++ EFI_STATUS Status; ++ IP6_NEIGHBOR_ENTRY *NeighborCache; ++ EFI_IPv6_ADDRESS Destination; ++ IP6_SERVICE *IpSb; ++ BOOLEAN Flag; ++ ++ IpSb = (IP6_SERVICE *)Context; + NET_CHECK_SIGNATURE (IpSb, IP6_SERVICE_SIGNATURE); + + ZeroMem (&Source, sizeof (EFI_IPv6_ADDRESS)); +@@ -2790,13 +2803,14 @@ Ip6NdFasterTimerTicking ( + // + if ((IpSb->Ip6ConfigInstance.Policy == Ip6ConfigPolicyAutomatic) && + !IpSb->RouterAdvertiseReceived && +- IpSb->SolicitTimer > 0 +- ) { ++ (IpSb->SolicitTimer > 0) ++ ) ++ { + if ((IpSb->Ticks == 0) || (--IpSb->Ticks == 0)) { + Status = Ip6SendRouterSolicit (IpSb, NULL, NULL, NULL, NULL); + if (!EFI_ERROR (Status)) { + IpSb->SolicitTimer--; +- IpSb->Ticks = (UINT32) IP6_GET_TICKS (IP6_RTR_SOLICITATION_INTERVAL); ++ IpSb->Ticks = (UINT32)IP6_GET_TICKS (IP6_RTR_SOLICITATION_INTERVAL); + } + } + } +@@ -2864,7 +2878,8 @@ Ip6NdFasterTimerTicking ( + // + Flag = FALSE; + if ((DupAddrDetect->Receive == 0) || +- (DupAddrDetect->Transmit <= DupAddrDetect->Receive)) { ++ (DupAddrDetect->Transmit <= DupAddrDetect->Receive)) ++ { + Flag = TRUE; + } + +@@ -2881,149 +2896,111 @@ Ip6NdFasterTimerTicking ( + NeighborCache = NET_LIST_USER_STRUCT (Entry, IP6_NEIGHBOR_ENTRY, Link); + + switch (NeighborCache->State) { +- case EfiNeighborInComplete: +- if (NeighborCache->Ticks > 0) { +- --NeighborCache->Ticks; +- } +- +- // +- // Retransmit Neighbor Solicitation messages approximately every +- // RetransTimer milliseconds while awaiting a response. +- // +- if (NeighborCache->Ticks == 0) { +- if (NeighborCache->Transmit > 1) { +- // +- // Send out multicast neighbor solicitation for address resolution. +- // After last neighbor solicitation message has been sent out, wait +- // for RetransTimer and then remove entry if no response is received. +- // +- Ip6CreateSNMulticastAddr (&NeighborCache->Neighbor, &Destination); +- Status = Ip6SelectSourceAddress (IpSb, &NeighborCache->Neighbor, &Source); +- if (EFI_ERROR (Status)) { +- return; +- } +- +- Status = Ip6SendNeighborSolicit ( +- IpSb, +- &Source, +- &Destination, +- &NeighborCache->Neighbor, +- &IpSb->SnpMode.CurrentAddress +- ); +- if (EFI_ERROR (Status)) { +- return; +- } ++ case EfiNeighborInComplete: ++ if (NeighborCache->Ticks > 0) { ++ --NeighborCache->Ticks; + } + + // +- // Update the retransmit times. ++ // Retransmit Neighbor Solicitation messages approximately every ++ // RetransTimer milliseconds while awaiting a response. + // +- if (NeighborCache->Transmit > 0) { +- --NeighborCache->Transmit; +- NeighborCache->Ticks = IP6_GET_TICKS (IpSb->RetransTimer); +- } +- } +- +- if (NeighborCache->Transmit == 0) { +- // +- // Timeout, send ICMP destination unreachable packet and then remove entry +- // +- Status = Ip6FreeNeighborEntry ( +- IpSb, +- NeighborCache, +- TRUE, +- TRUE, +- EFI_ICMP_ERROR, +- NULL, +- NULL +- ); +- if (EFI_ERROR (Status)) { +- return; +- } +- } ++ if (NeighborCache->Ticks == 0) { ++ if (NeighborCache->Transmit > 1) { ++ // ++ // Send out multicast neighbor solicitation for address resolution. ++ // After last neighbor solicitation message has been sent out, wait ++ // for RetransTimer and then remove entry if no response is received. ++ // ++ Ip6CreateSNMulticastAddr (&NeighborCache->Neighbor, &Destination); ++ Status = Ip6SelectSourceAddress (IpSb, &NeighborCache->Neighbor, &Source); ++ if (EFI_ERROR (Status)) { ++ return; ++ } + +- break; ++ Status = Ip6SendNeighborSolicit ( ++ IpSb, ++ &Source, ++ &Destination, ++ &NeighborCache->Neighbor, ++ &IpSb->SnpMode.CurrentAddress ++ ); ++ if (EFI_ERROR (Status)) { ++ return; ++ } ++ } + +- case EfiNeighborReachable: +- // +- // This entry is inserted by EfiIp6Neighbors() as static entry +- // and will not timeout. +- // +- if (!NeighborCache->Dynamic && (NeighborCache->Ticks == IP6_INFINIT_LIFETIME)) { +- break; +- } ++ // ++ // Update the retransmit times. ++ // ++ if (NeighborCache->Transmit > 0) { ++ --NeighborCache->Transmit; ++ NeighborCache->Ticks = IP6_GET_TICKS (IpSb->RetransTimer); ++ } ++ } + +- if ((NeighborCache->Ticks == 0) || (--NeighborCache->Ticks == 0)) { +- if (NeighborCache->Dynamic) { ++ if (NeighborCache->Transmit == 0) { + // +- // This entry is inserted by EfiIp6Neighbors() as dynamic entry +- // and will be deleted after timeout. ++ // Timeout, send ICMP destination unreachable packet and then remove entry + // + Status = Ip6FreeNeighborEntry ( + IpSb, + NeighborCache, +- FALSE, + TRUE, +- EFI_TIMEOUT, ++ TRUE, ++ EFI_ICMP_ERROR, + NULL, + NULL + ); + if (EFI_ERROR (Status)) { + return; + } +- } else { +- NeighborCache->State = EfiNeighborStale; +- NeighborCache->Ticks = (UINT32) IP6_INFINIT_LIFETIME; + } +- } + +- break; +- +- case EfiNeighborDelay: +- if ((NeighborCache->Ticks == 0) || (--NeighborCache->Ticks == 0)) { ++ break; + +- NeighborCache->State = EfiNeighborProbe; +- NeighborCache->Ticks = IP6_GET_TICKS (IpSb->RetransTimer); +- NeighborCache->Transmit = IP6_MAX_UNICAST_SOLICIT + 1; ++ case EfiNeighborReachable: + // +- // Send out unicast neighbor solicitation for Neighbor Unreachability Detection ++ // This entry is inserted by EfiIp6Neighbors() as static entry ++ // and will not timeout. + // +- Status = Ip6SelectSourceAddress (IpSb, &NeighborCache->Neighbor, &Source); +- if (EFI_ERROR (Status)) { +- return; ++ if (!NeighborCache->Dynamic && (NeighborCache->Ticks == IP6_INFINIT_LIFETIME)) { ++ break; + } + +- Status = Ip6SendNeighborSolicit ( +- IpSb, +- &Source, +- &NeighborCache->Neighbor, +- &NeighborCache->Neighbor, +- &IpSb->SnpMode.CurrentAddress +- ); +- if (EFI_ERROR (Status)) { +- return; ++ if ((NeighborCache->Ticks == 0) || (--NeighborCache->Ticks == 0)) { ++ if (NeighborCache->Dynamic) { ++ // ++ // This entry is inserted by EfiIp6Neighbors() as dynamic entry ++ // and will be deleted after timeout. ++ // ++ Status = Ip6FreeNeighborEntry ( ++ IpSb, ++ NeighborCache, ++ FALSE, ++ TRUE, ++ EFI_TIMEOUT, ++ NULL, ++ NULL ++ ); ++ if (EFI_ERROR (Status)) { ++ return; ++ } ++ } else { ++ NeighborCache->State = EfiNeighborStale; ++ NeighborCache->Ticks = (UINT32)IP6_INFINIT_LIFETIME; ++ } + } + +- NeighborCache->Transmit--; +- } +- +- break; +- +- case EfiNeighborProbe: +- if (NeighborCache->Ticks > 0) { +- --NeighborCache->Ticks; +- } ++ break; + +- // +- // Retransmit Neighbor Solicitation messages approximately every +- // RetransTimer milliseconds while awaiting a response. +- // +- if (NeighborCache->Ticks == 0) { +- if (NeighborCache->Transmit > 1) { ++ case EfiNeighborDelay: ++ if ((NeighborCache->Ticks == 0) || (--NeighborCache->Ticks == 0)) { ++ NeighborCache->State = EfiNeighborProbe; ++ NeighborCache->Ticks = IP6_GET_TICKS (IpSb->RetransTimer); ++ NeighborCache->Transmit = IP6_MAX_UNICAST_SOLICIT + 1; + // +- // Send out unicast neighbor solicitation for Neighbor Unreachability +- // Detection. After last neighbor solicitation message has been sent out, +- // wait for RetransTimer and then remove entry if no response is received. ++ // Send out unicast neighbor solicitation for Neighbor Unreachability Detection + // + Status = Ip6SelectSourceAddress (IpSb, &NeighborCache->Neighbor, &Source); + if (EFI_ERROR (Status)) { +@@ -3040,39 +3017,76 @@ Ip6NdFasterTimerTicking ( + if (EFI_ERROR (Status)) { + return; + } ++ ++ NeighborCache->Transmit--; + } + +- // +- // Update the retransmit times. +- // +- if (NeighborCache->Transmit > 0) { +- --NeighborCache->Transmit; +- NeighborCache->Ticks = IP6_GET_TICKS (IpSb->RetransTimer); ++ break; ++ ++ case EfiNeighborProbe: ++ if (NeighborCache->Ticks > 0) { ++ --NeighborCache->Ticks; + } +- } + +- if (NeighborCache->Transmit == 0) { + // +- // Delete the neighbor entry. ++ // Retransmit Neighbor Solicitation messages approximately every ++ // RetransTimer milliseconds while awaiting a response. + // +- Status = Ip6FreeNeighborEntry ( +- IpSb, +- NeighborCache, +- FALSE, +- TRUE, +- EFI_TIMEOUT, +- NULL, +- NULL +- ); +- if (EFI_ERROR (Status)) { +- return; ++ if (NeighborCache->Ticks == 0) { ++ if (NeighborCache->Transmit > 1) { ++ // ++ // Send out unicast neighbor solicitation for Neighbor Unreachability ++ // Detection. After last neighbor solicitation message has been sent out, ++ // wait for RetransTimer and then remove entry if no response is received. ++ // ++ Status = Ip6SelectSourceAddress (IpSb, &NeighborCache->Neighbor, &Source); ++ if (EFI_ERROR (Status)) { ++ return; ++ } ++ ++ Status = Ip6SendNeighborSolicit ( ++ IpSb, ++ &Source, ++ &NeighborCache->Neighbor, ++ &NeighborCache->Neighbor, ++ &IpSb->SnpMode.CurrentAddress ++ ); ++ if (EFI_ERROR (Status)) { ++ return; ++ } ++ } ++ ++ // ++ // Update the retransmit times. ++ // ++ if (NeighborCache->Transmit > 0) { ++ --NeighborCache->Transmit; ++ NeighborCache->Ticks = IP6_GET_TICKS (IpSb->RetransTimer); ++ } + } +- } + +- break; ++ if (NeighborCache->Transmit == 0) { ++ // ++ // Delete the neighbor entry. ++ // ++ Status = Ip6FreeNeighborEntry ( ++ IpSb, ++ NeighborCache, ++ FALSE, ++ TRUE, ++ EFI_TIMEOUT, ++ NULL, ++ NULL ++ ); ++ if (EFI_ERROR (Status)) { ++ return; ++ } ++ } + +- default: +- break; ++ break; ++ ++ default: ++ break; + } + } + } +@@ -3087,15 +3101,15 @@ Ip6NdFasterTimerTicking ( + **/ + VOID + Ip6NdTimerTicking ( +- IN IP6_SERVICE *IpSb ++ IN IP6_SERVICE *IpSb + ) + { +- LIST_ENTRY *Entry; +- LIST_ENTRY *Next; +- IP6_DEFAULT_ROUTER *DefaultRouter; +- IP6_PREFIX_LIST_ENTRY *PrefixOption; +- UINT8 Index; +- IP6_ROUTE_CACHE_ENTRY *RouteCache; ++ LIST_ENTRY *Entry; ++ LIST_ENTRY *Next; ++ IP6_DEFAULT_ROUTER *DefaultRouter; ++ IP6_PREFIX_LIST_ENTRY *PrefixOption; ++ UINT8 Index; ++ IP6_ROUTE_CACHE_ENTRY *RouteCache; + + // + // Decrease the lifetime of default router, if expires remove it from default router list. +@@ -3114,11 +3128,12 @@ Ip6NdTimerTicking ( + // + NET_LIST_FOR_EACH_SAFE (Entry, Next, &IpSb->AutonomousPrefix) { + PrefixOption = NET_LIST_USER_STRUCT (Entry, IP6_PREFIX_LIST_ENTRY, Link); +- if (PrefixOption->ValidLifetime != (UINT32) IP6_INFINIT_LIFETIME) { ++ if (PrefixOption->ValidLifetime != (UINT32)IP6_INFINIT_LIFETIME) { + if ((PrefixOption->ValidLifetime > 0) && (--PrefixOption->ValidLifetime > 0)) { +- if ((PrefixOption->PreferredLifetime != (UINT32) IP6_INFINIT_LIFETIME) && ++ if ((PrefixOption->PreferredLifetime != (UINT32)IP6_INFINIT_LIFETIME) && + (PrefixOption->PreferredLifetime > 0) +- ) { ++ ) ++ { + --PrefixOption->PreferredLifetime; + } + } else { +@@ -3129,7 +3144,7 @@ Ip6NdTimerTicking ( + + NET_LIST_FOR_EACH_SAFE (Entry, Next, &IpSb->OnlinkPrefix) { + PrefixOption = NET_LIST_USER_STRUCT (Entry, IP6_PREFIX_LIST_ENTRY, Link); +- if (PrefixOption->ValidLifetime != (UINT32) IP6_INFINIT_LIFETIME) { ++ if (PrefixOption->ValidLifetime != (UINT32)IP6_INFINIT_LIFETIME) { + if ((PrefixOption->ValidLifetime == 0) || (--PrefixOption->ValidLifetime == 0)) { + Ip6DestroyPrefixListEntry (IpSb, PrefixOption, TRUE, TRUE); + } +@@ -3156,4 +3171,3 @@ Ip6NdTimerTicking ( + } + } + } +- +diff --git a/NetworkPkg/Library/DxeNetLib/DxeNetLib.c b/NetworkPkg/Library/DxeNetLib/DxeNetLib.c +index 0f95ce4b71..0428abdda0 100644 +--- a/NetworkPkg/Library/DxeNetLib/DxeNetLib.c ++++ b/NetworkPkg/Library/DxeNetLib/DxeNetLib.c +@@ -32,8 +32,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent + #include + #include + +-#define NIC_ITEM_CONFIG_SIZE (sizeof (NIC_IP4_CONFIG_INFO) + sizeof (EFI_IP4_ROUTE_TABLE) * MAX_IP4_CONFIG_IN_VARIABLE) +-#define DEFAULT_ZERO_START ((UINTN) ~0) ++#define NIC_ITEM_CONFIG_SIZE (sizeof (NIC_IP4_CONFIG_INFO) + sizeof (EFI_IP4_ROUTE_TABLE) * MAX_IP4_CONFIG_IN_VARIABLE) ++#define DEFAULT_ZERO_START ((UINTN) ~0) + + // + // All the supported IP4 masks in host byte order. +@@ -77,25 +77,27 @@ GLOBAL_REMOVE_IF_UNREFERENCED IP4_ADDR gIp4AllMasks[IP4_MASK_NUM] = { + 0xFFFFFFFF, + }; + +-GLOBAL_REMOVE_IF_UNREFERENCED EFI_IPv4_ADDRESS mZeroIp4Addr = {{0, 0, 0, 0}}; ++GLOBAL_REMOVE_IF_UNREFERENCED EFI_IPv4_ADDRESS mZeroIp4Addr = { ++ { 0, 0, 0, 0 } ++}; + + // + // Any error level digitally larger than mNetDebugLevelMax + // will be silently discarded. + // +-GLOBAL_REMOVE_IF_UNREFERENCED UINTN mNetDebugLevelMax = NETDEBUG_LEVEL_ERROR; +-GLOBAL_REMOVE_IF_UNREFERENCED UINT32 mSyslogPacketSeq = 0xDEADBEEF; ++GLOBAL_REMOVE_IF_UNREFERENCED UINTN mNetDebugLevelMax = NETDEBUG_LEVEL_ERROR; ++GLOBAL_REMOVE_IF_UNREFERENCED UINT32 mSyslogPacketSeq = 0xDEADBEEF; + + // + // You can change mSyslogDstMac mSyslogDstIp and mSyslogSrcIp + // here to direct the syslog packets to the syslog deamon. The + // default is broadcast to both the ethernet and IP. + // +-GLOBAL_REMOVE_IF_UNREFERENCED UINT8 mSyslogDstMac[NET_ETHER_ADDR_LEN] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; +-GLOBAL_REMOVE_IF_UNREFERENCED UINT32 mSyslogDstIp = 0xffffffff; +-GLOBAL_REMOVE_IF_UNREFERENCED UINT32 mSyslogSrcIp = 0; ++GLOBAL_REMOVE_IF_UNREFERENCED UINT8 mSyslogDstMac[NET_ETHER_ADDR_LEN] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; ++GLOBAL_REMOVE_IF_UNREFERENCED UINT32 mSyslogDstIp = 0xffffffff; ++GLOBAL_REMOVE_IF_UNREFERENCED UINT32 mSyslogSrcIp = 0; + +-GLOBAL_REMOVE_IF_UNREFERENCED CHAR8 *mMonthName[] = { ++GLOBAL_REMOVE_IF_UNREFERENCED CHAR8 *mMonthName[] = { + "Jan", + "Feb", + "Mar", +@@ -113,13 +115,13 @@ GLOBAL_REMOVE_IF_UNREFERENCED CHAR8 *mMonthName[] = { + // + // VLAN device path node template + // +-GLOBAL_REMOVE_IF_UNREFERENCED VLAN_DEVICE_PATH mNetVlanDevicePathTemplate = { ++GLOBAL_REMOVE_IF_UNREFERENCED VLAN_DEVICE_PATH mNetVlanDevicePathTemplate = { + { + MESSAGING_DEVICE_PATH, + MSG_VLAN_DP, + { +- (UINT8) (sizeof (VLAN_DEVICE_PATH)), +- (UINT8) ((sizeof (VLAN_DEVICE_PATH)) >> 8) ++ (UINT8)(sizeof (VLAN_DEVICE_PATH)), ++ (UINT8)((sizeof (VLAN_DEVICE_PATH)) >> 8) + } + }, + 0 +@@ -138,11 +140,11 @@ SyslogLocateSnp ( + VOID + ) + { +- EFI_SIMPLE_NETWORK_PROTOCOL *Snp; +- EFI_STATUS Status; +- EFI_HANDLE *Handles; +- UINTN HandleCount; +- UINTN Index; ++ EFI_SIMPLE_NETWORK_PROTOCOL *Snp; ++ EFI_STATUS Status; ++ EFI_HANDLE *Handles; ++ UINTN HandleCount; ++ UINTN Index; + + // + // Locate the handles which has SNP installed. +@@ -169,13 +171,13 @@ SyslogLocateSnp ( + Status = gBS->HandleProtocol ( + Handles[Index], + &gEfiSimpleNetworkProtocolGuid, +- (VOID **) &Snp ++ (VOID **)&Snp + ); + + if ((Status == EFI_SUCCESS) && (Snp != NULL) && + (Snp->Mode->IfType == NET_IFTYPE_ETHERNET) && +- (Snp->Mode->MaxPacketSize >= NET_SYSLOG_PACKET_LEN)) { +- ++ (Snp->Mode->MaxPacketSize >= NET_SYSLOG_PACKET_LEN)) ++ { + break; + } + +@@ -204,15 +206,15 @@ SyslogLocateSnp ( + **/ + EFI_STATUS + SyslogSendPacket ( +- IN CHAR8 *Packet, +- IN UINT32 Length ++ IN CHAR8 *Packet, ++ IN UINT32 Length + ) + { +- EFI_SIMPLE_NETWORK_PROTOCOL *Snp; +- ETHER_HEAD *Ether; +- EFI_STATUS Status; +- EFI_EVENT TimeoutEvent; +- UINT8 *TxBuf; ++ EFI_SIMPLE_NETWORK_PROTOCOL *Snp; ++ ETHER_HEAD *Ether; ++ EFI_STATUS Status; ++ EFI_EVENT TimeoutEvent; ++ UINT8 *TxBuf; + + ASSERT (Packet != NULL); + +@@ -222,7 +224,7 @@ SyslogSendPacket ( + return EFI_DEVICE_ERROR; + } + +- Ether = (ETHER_HEAD *) Packet; ++ Ether = (ETHER_HEAD *)Packet; + CopyMem (Ether->SrcMac, Snp->Mode->CurrentAddress.Addr, NET_ETHER_ADDR_LEN); + + // +@@ -246,7 +248,7 @@ SyslogSendPacket ( + goto ON_EXIT; + } + +- for (;;) { ++ for ( ; ;) { + // + // Transmit the packet through SNP. + // +@@ -268,13 +270,12 @@ SyslogSendPacket ( + // + // Get the recycled transmit buffer status. + // +- Snp->GetStatus (Snp, NULL, (VOID **) &TxBuf); ++ Snp->GetStatus (Snp, NULL, (VOID **)&TxBuf); + + if (!EFI_ERROR (gBS->CheckEvent (TimeoutEvent))) { + Status = EFI_TIMEOUT; + break; + } +- + } while (TxBuf == NULL); + + if ((Status == EFI_SUCCESS) || (Status == EFI_TIMEOUT)) { +@@ -312,71 +313,71 @@ ON_EXIT: + **/ + UINT32 + SyslogBuildPacket ( +- IN UINT32 Level, +- IN UINT8 *Module, +- IN UINT8 *File, +- IN UINT32 Line, +- IN UINT8 *Message, +- IN UINT32 BufLen, +- OUT CHAR8 *Buf ++ IN UINT32 Level, ++ IN UINT8 *Module, ++ IN UINT8 *File, ++ IN UINT32 Line, ++ IN UINT8 *Message, ++ IN UINT32 BufLen, ++ OUT CHAR8 *Buf + ) + { +- EFI_STATUS Status; +- ETHER_HEAD *Ether; +- IP4_HEAD *Ip4; +- EFI_UDP_HEADER *Udp4; +- EFI_TIME Time; +- UINT32 Pri; +- UINT32 Len; ++ EFI_STATUS Status; ++ ETHER_HEAD *Ether; ++ IP4_HEAD *Ip4; ++ EFI_UDP_HEADER *Udp4; ++ EFI_TIME Time; ++ UINT32 Pri; ++ UINT32 Len; + + // + // Fill in the Ethernet header. Leave alone the source MAC. + // SyslogSendPacket will fill in the address for us. + // +- Ether = (ETHER_HEAD *) Buf; ++ Ether = (ETHER_HEAD *)Buf; + CopyMem (Ether->DstMac, mSyslogDstMac, NET_ETHER_ADDR_LEN); + ZeroMem (Ether->SrcMac, NET_ETHER_ADDR_LEN); + + Ether->EtherType = HTONS (0x0800); // IPv4 protocol + +- Buf += sizeof (ETHER_HEAD); +- BufLen -= sizeof (ETHER_HEAD); ++ Buf += sizeof (ETHER_HEAD); ++ BufLen -= sizeof (ETHER_HEAD); + + // + // Fill in the IP header + // +- Ip4 = (IP4_HEAD *) Buf; +- Ip4->HeadLen = 5; +- Ip4->Ver = 4; +- Ip4->Tos = 0; +- Ip4->TotalLen = 0; +- Ip4->Id = (UINT16) mSyslogPacketSeq; +- Ip4->Fragment = 0; +- Ip4->Ttl = 16; +- Ip4->Protocol = 0x11; +- Ip4->Checksum = 0; +- Ip4->Src = mSyslogSrcIp; +- Ip4->Dst = mSyslogDstIp; ++ Ip4 = (IP4_HEAD *)Buf; ++ Ip4->HeadLen = 5; ++ Ip4->Ver = 4; ++ Ip4->Tos = 0; ++ Ip4->TotalLen = 0; ++ Ip4->Id = (UINT16)mSyslogPacketSeq; ++ Ip4->Fragment = 0; ++ Ip4->Ttl = 16; ++ Ip4->Protocol = 0x11; ++ Ip4->Checksum = 0; ++ Ip4->Src = mSyslogSrcIp; ++ Ip4->Dst = mSyslogDstIp; + +- Buf += sizeof (IP4_HEAD); +- BufLen -= sizeof (IP4_HEAD); ++ Buf += sizeof (IP4_HEAD); ++ BufLen -= sizeof (IP4_HEAD); + + // + // Fill in the UDP header, Udp checksum is optional. Leave it zero. + // +- Udp4 = (EFI_UDP_HEADER *) Buf; +- Udp4->SrcPort = HTONS (514); +- Udp4->DstPort = HTONS (514); +- Udp4->Length = 0; +- Udp4->Checksum = 0; ++ Udp4 = (EFI_UDP_HEADER *)Buf; ++ Udp4->SrcPort = HTONS (514); ++ Udp4->DstPort = HTONS (514); ++ Udp4->Length = 0; ++ Udp4->Checksum = 0; + +- Buf += sizeof (EFI_UDP_HEADER); +- BufLen -= sizeof (EFI_UDP_HEADER); ++ Buf += sizeof (EFI_UDP_HEADER); ++ BufLen -= sizeof (EFI_UDP_HEADER); + + // + // Build the syslog message body with Timestamp machine module Message + // +- Pri = ((NET_SYSLOG_FACILITY & 31) << 3) | (Level & 7); ++ Pri = ((NET_SYSLOG_FACILITY & 31) << 3) | (Level & 7); + Status = gRT->GetTime (&Time, NULL); + if (EFI_ERROR (Status)) { + return 0; +@@ -386,38 +387,38 @@ SyslogBuildPacket ( + // Use %a to format the ASCII strings, %s to format UNICODE strings + // + Len = 0; +- Len += (UINT32) AsciiSPrint ( +- Buf, +- BufLen, +- "<%d> %a %d %d:%d:%d ", +- Pri, +- mMonthName [Time.Month-1], +- Time.Day, +- Time.Hour, +- Time.Minute, +- Time.Second +- ); ++ Len += (UINT32)AsciiSPrint ( ++ Buf, ++ BufLen, ++ "<%d> %a %d %d:%d:%d ", ++ Pri, ++ mMonthName[Time.Month-1], ++ Time.Day, ++ Time.Hour, ++ Time.Minute, ++ Time.Second ++ ); + +- Len += (UINT32) AsciiSPrint ( +- Buf + Len, +- BufLen - Len, +- "Tiano %a: %a (Line: %d File: %a)", +- Module, +- Message, +- Line, +- File +- ); +- Len ++; ++ Len += (UINT32)AsciiSPrint ( ++ Buf + Len, ++ BufLen - Len, ++ "Tiano %a: %a (Line: %d File: %a)", ++ Module, ++ Message, ++ Line, ++ File ++ ); ++ Len++; + + // + // OK, patch the IP length/checksum and UDP length fields. + // +- Len += sizeof (EFI_UDP_HEADER); +- Udp4->Length = HTONS ((UINT16) Len); ++ Len += sizeof (EFI_UDP_HEADER); ++ Udp4->Length = HTONS ((UINT16)Len); + +- Len += sizeof (IP4_HEAD); +- Ip4->TotalLen = HTONS ((UINT16) Len); +- Ip4->Checksum = (UINT16) (~NetblockChecksum ((UINT8 *) Ip4, sizeof (IP4_HEAD))); ++ Len += sizeof (IP4_HEAD); ++ Ip4->TotalLen = HTONS ((UINT16)Len); ++ Ip4->Checksum = (UINT16)(~NetblockChecksum ((UINT8 *)Ip4, sizeof (IP4_HEAD))); + + return Len + sizeof (ETHER_HEAD); + } +@@ -451,16 +452,16 @@ SyslogBuildPacket ( + CHAR8 * + EFIAPI + NetDebugASPrint ( +- IN CHAR8 *Format, ++ IN CHAR8 *Format, + ... + ) + { +- VA_LIST Marker; +- CHAR8 *Buf; ++ VA_LIST Marker; ++ CHAR8 *Buf; + + ASSERT (Format != NULL); + +- Buf = (CHAR8 *) AllocatePool (NET_DEBUG_MSG_LEN); ++ Buf = (CHAR8 *)AllocatePool (NET_DEBUG_MSG_LEN); + + if (Buf == NULL) { + return NULL; +@@ -494,21 +495,21 @@ NetDebugASPrint ( + EFI_STATUS + EFIAPI + NetDebugOutput ( +- IN UINT32 Level, +- IN UINT8 *Module, +- IN UINT8 *File, +- IN UINT32 Line, +- IN UINT8 *Message ++ IN UINT32 Level, ++ IN UINT8 *Module, ++ IN UINT8 *File, ++ IN UINT32 Line, ++ IN UINT8 *Message + ) + { +- CHAR8 *Packet; +- UINT32 Len; +- EFI_STATUS Status; ++ CHAR8 *Packet; ++ UINT32 Len; ++ EFI_STATUS Status; + + // + // Check whether the message should be sent out + // +- if (Message == NULL || File == NULL || Module == NULL) { ++ if ((Message == NULL) || (File == NULL) || (Module == NULL)) { + return EFI_INVALID_PARAMETER; + } + +@@ -522,7 +523,7 @@ NetDebugOutput ( + // that the message plus the ethernet/ip/udp header is shorter + // than this + // +- Packet = (CHAR8 *) AllocatePool (NET_SYSLOG_PACKET_LEN); ++ Packet = (CHAR8 *)AllocatePool (NET_SYSLOG_PACKET_LEN); + + if (Packet == NULL) { + Status = EFI_OUT_OF_RESOURCES; +@@ -554,6 +555,7 @@ ON_EXIT: + FreePool (Message); + return Status; + } ++ + /** + Return the length of the mask. + +@@ -569,10 +571,10 @@ ON_EXIT: + INTN + EFIAPI + NetGetMaskLength ( +- IN IP4_ADDR NetMask ++ IN IP4_ADDR NetMask + ) + { +- INTN Index; ++ INTN Index; + + for (Index = 0; Index <= IP4_MASK_MAX; Index++) { + if (NetMask == gIp4AllMasks[Index]) { +@@ -583,8 +585,6 @@ NetGetMaskLength ( + return Index; + } + +- +- + /** + Return the class of the IP address, such as class A, B, C. + Addr is in host byte order. +@@ -614,32 +614,26 @@ NetGetMaskLength ( + INTN + EFIAPI + NetGetIpClass ( +- IN IP4_ADDR Addr ++ IN IP4_ADDR Addr + ) + { +- UINT8 ByteOne; ++ UINT8 ByteOne; + +- ByteOne = (UINT8) (Addr >> 24); ++ ByteOne = (UINT8)(Addr >> 24); + + if ((ByteOne & 0x80) == 0) { + return IP4_ADDR_CLASSA; +- + } else if ((ByteOne & 0xC0) == 0x80) { + return IP4_ADDR_CLASSB; +- + } else if ((ByteOne & 0xE0) == 0xC0) { + return IP4_ADDR_CLASSC; +- + } else if ((ByteOne & 0xF0) == 0xE0) { + return IP4_ADDR_CLASSD; +- + } else { + return IP4_ADDR_CLASSE; +- + } + } + +- + /** + Check whether the IP is a valid unicast address according to + the netmask. +@@ -660,15 +654,15 @@ NetGetIpClass ( + BOOLEAN + EFIAPI + NetIp4IsUnicast ( +- IN IP4_ADDR Ip, +- IN IP4_ADDR NetMask ++ IN IP4_ADDR Ip, ++ IN IP4_ADDR NetMask + ) + { +- INTN MaskLength; ++ INTN MaskLength; + + ASSERT (NetMask != 0); + +- if (Ip == 0 || IP4_IS_LOCAL_BROADCAST (Ip)) { ++ if ((Ip == 0) || IP4_IS_LOCAL_BROADCAST (Ip)) { + return FALSE; + } + +@@ -702,11 +696,11 @@ NetIp4IsUnicast ( + BOOLEAN + EFIAPI + NetIp6IsValidUnicast ( +- IN EFI_IPv6_ADDRESS *Ip6 ++ IN EFI_IPv6_ADDRESS *Ip6 + ) + { +- UINT8 Byte; +- UINT8 Index; ++ UINT8 Byte; ++ UINT8 Index; + + ASSERT (Ip6 != NULL); + +@@ -722,7 +716,7 @@ NetIp6IsValidUnicast ( + + Byte = Ip6->Addr[Index]; + +- if (Byte == 0x0 || Byte == 0x1) { ++ if ((Byte == 0x0) || (Byte == 0x1)) { + return FALSE; + } + +@@ -743,10 +737,10 @@ NetIp6IsValidUnicast ( + BOOLEAN + EFIAPI + NetIp6IsUnspecifiedAddr ( +- IN EFI_IPv6_ADDRESS *Ip6 ++ IN EFI_IPv6_ADDRESS *Ip6 + ) + { +- UINT8 Index; ++ UINT8 Index; + + ASSERT (Ip6 != NULL); + +@@ -773,10 +767,10 @@ NetIp6IsUnspecifiedAddr ( + BOOLEAN + EFIAPI + NetIp6IsLinkLocalAddr ( +- IN EFI_IPv6_ADDRESS *Ip6 ++ IN EFI_IPv6_ADDRESS *Ip6 + ) + { +- UINT8 Index; ++ UINT8 Index; + + ASSERT (Ip6 != NULL); + +@@ -814,14 +808,14 @@ NetIp6IsLinkLocalAddr ( + BOOLEAN + EFIAPI + NetIp6IsNetEqual ( +- EFI_IPv6_ADDRESS *Ip1, +- EFI_IPv6_ADDRESS *Ip2, +- UINT8 PrefixLength ++ EFI_IPv6_ADDRESS *Ip1, ++ EFI_IPv6_ADDRESS *Ip2, ++ UINT8 PrefixLength + ) + { +- UINT8 Byte; +- UINT8 Bit; +- UINT8 Mask; ++ UINT8 Byte; ++ UINT8 Bit; ++ UINT8 Mask; + + ASSERT ((Ip1 != NULL) && (Ip2 != NULL) && (PrefixLength < IP6_PREFIX_MAX)); + +@@ -829,20 +823,21 @@ NetIp6IsNetEqual ( + return TRUE; + } + +- Byte = (UINT8) (PrefixLength / 8); +- Bit = (UINT8) (PrefixLength % 8); ++ Byte = (UINT8)(PrefixLength / 8); ++ Bit = (UINT8)(PrefixLength % 8); + + if (CompareMem (Ip1, Ip2, Byte) != 0) { + return FALSE; + } + + if (Bit > 0) { +- Mask = (UINT8) (0xFF << (8 - Bit)); ++ Mask = (UINT8)(0xFF << (8 - Bit)); + + ASSERT (Byte < 16); + if (Byte >= 16) { + return FALSE; + } ++ + if ((Ip1->Addr[Byte] & Mask) != (Ip2->Addr[Byte] & Mask)) { + return FALSE; + } +@@ -851,7 +846,6 @@ NetIp6IsNetEqual ( + return TRUE; + } + +- + /** + Switches the endianess of an IPv6 address + +@@ -869,11 +863,11 @@ NetIp6IsNetEqual ( + EFI_IPv6_ADDRESS * + EFIAPI + Ip6Swap128 ( +- EFI_IPv6_ADDRESS *Ip6 ++ EFI_IPv6_ADDRESS *Ip6 + ) + { +- UINT64 High; +- UINT64 Low; ++ UINT64 High; ++ UINT64 Low; + + ASSERT (Ip6 != NULL); + +@@ -905,22 +899,21 @@ NetRandomInitSeed ( + VOID + ) + { +- EFI_TIME Time; +- UINT32 Seed; +- UINT64 MonotonicCount; ++ EFI_TIME Time; ++ UINT32 Seed; ++ UINT64 MonotonicCount; + + gRT->GetTime (&Time, NULL); +- Seed = (Time.Hour << 24 | Time.Day << 16 | Time.Minute << 8 | Time.Second); ++ Seed = (Time.Hour << 24 | Time.Day << 16 | Time.Minute << 8 | Time.Second); + Seed ^= Time.Nanosecond; + Seed ^= Time.Year << 7; + + gBS->GetNextMonotonicCount (&MonotonicCount); +- Seed += (UINT32) MonotonicCount; ++ Seed += (UINT32)MonotonicCount; + + return Seed; + } + +- + /** + Extract a UINT32 from a byte stream. + +@@ -937,10 +930,10 @@ NetRandomInitSeed ( + UINT32 + EFIAPI + NetGetUint32 ( +- IN UINT8 *Buf ++ IN UINT8 *Buf + ) + { +- UINT32 Value; ++ UINT32 Value; + + ASSERT (Buf != NULL); + +@@ -948,7 +941,6 @@ NetGetUint32 ( + return NTOHL (Value); + } + +- + /** + Put a UINT32 to the byte stream in network byte order. + +@@ -964,8 +956,8 @@ NetGetUint32 ( + VOID + EFIAPI + NetPutUint32 ( +- IN OUT UINT8 *Buf, +- IN UINT32 Data ++ IN OUT UINT8 *Buf, ++ IN UINT32 Data + ) + { + ASSERT (Buf != NULL); +@@ -974,7 +966,6 @@ NetPutUint32 ( + CopyMem (Buf, &Data, sizeof (UINT32)); + } + +- + /** + Remove the first node entry on the list, and return the removed node entry. + +@@ -996,10 +987,10 @@ NetPutUint32 ( + LIST_ENTRY * + EFIAPI + NetListRemoveHead ( +- IN OUT LIST_ENTRY *Head ++ IN OUT LIST_ENTRY *Head + ) + { +- LIST_ENTRY *First; ++ LIST_ENTRY *First; + + ASSERT (Head != NULL); + +@@ -1007,19 +998,18 @@ NetListRemoveHead ( + return NULL; + } + +- First = Head->ForwardLink; +- Head->ForwardLink = First->ForwardLink; +- First->ForwardLink->BackLink = Head; ++ First = Head->ForwardLink; ++ Head->ForwardLink = First->ForwardLink; ++ First->ForwardLink->BackLink = Head; + + DEBUG_CODE ( +- First->ForwardLink = (LIST_ENTRY *) NULL; +- First->BackLink = (LIST_ENTRY *) NULL; +- ); ++ First->ForwardLink = (LIST_ENTRY *)NULL; ++ First->BackLink = (LIST_ENTRY *)NULL; ++ ); + + return First; + } + +- + /** + Remove the last node entry on the list and and return the removed node entry. + +@@ -1041,10 +1031,10 @@ NetListRemoveHead ( + LIST_ENTRY * + EFIAPI + NetListRemoveTail ( +- IN OUT LIST_ENTRY *Head ++ IN OUT LIST_ENTRY *Head + ) + { +- LIST_ENTRY *Last; ++ LIST_ENTRY *Last; + + ASSERT (Head != NULL); + +@@ -1057,14 +1047,13 @@ NetListRemoveTail ( + Last->BackLink->ForwardLink = Head; + + DEBUG_CODE ( +- Last->ForwardLink = (LIST_ENTRY *) NULL; +- Last->BackLink = (LIST_ENTRY *) NULL; +- ); ++ Last->ForwardLink = (LIST_ENTRY *)NULL; ++ Last->BackLink = (LIST_ENTRY *)NULL; ++ ); + + return Last; + } + +- + /** + Insert a new node entry after a designated node entry of a doubly linked list. + +@@ -1080,19 +1069,18 @@ NetListRemoveTail ( + VOID + EFIAPI + NetListInsertAfter ( +- IN OUT LIST_ENTRY *PrevEntry, +- IN OUT LIST_ENTRY *NewEntry ++ IN OUT LIST_ENTRY *PrevEntry, ++ IN OUT LIST_ENTRY *NewEntry + ) + { + ASSERT (PrevEntry != NULL && NewEntry != NULL); + +- NewEntry->BackLink = PrevEntry; +- NewEntry->ForwardLink = PrevEntry->ForwardLink; +- PrevEntry->ForwardLink->BackLink = NewEntry; +- PrevEntry->ForwardLink = NewEntry; ++ NewEntry->BackLink = PrevEntry; ++ NewEntry->ForwardLink = PrevEntry->ForwardLink; ++ PrevEntry->ForwardLink->BackLink = NewEntry; ++ PrevEntry->ForwardLink = NewEntry; + } + +- + /** + Insert a new node entry before a designated node entry of a doubly linked list. + +@@ -1108,16 +1096,16 @@ NetListInsertAfter ( + VOID + EFIAPI + NetListInsertBefore ( +- IN OUT LIST_ENTRY *PostEntry, +- IN OUT LIST_ENTRY *NewEntry ++ IN OUT LIST_ENTRY *PostEntry, ++ IN OUT LIST_ENTRY *NewEntry + ) + { + ASSERT (PostEntry != NULL && NewEntry != NULL); + +- NewEntry->ForwardLink = PostEntry; +- NewEntry->BackLink = PostEntry->BackLink; +- PostEntry->BackLink->ForwardLink = NewEntry; +- PostEntry->BackLink = NewEntry; ++ NewEntry->ForwardLink = PostEntry; ++ NewEntry->BackLink = PostEntry->BackLink; ++ PostEntry->BackLink->ForwardLink = NewEntry; ++ PostEntry->BackLink = NewEntry; + } + + /** +@@ -1151,25 +1139,26 @@ NetDestroyLinkList ( + OUT UINTN *ListLength OPTIONAL + ) + { +- UINTN PreviousLength; +- LIST_ENTRY *Entry; +- LIST_ENTRY *Ptr; +- UINTN Length; +- EFI_STATUS Status; ++ UINTN PreviousLength; ++ LIST_ENTRY *Entry; ++ LIST_ENTRY *Ptr; ++ UINTN Length; ++ EFI_STATUS Status; + +- if (List == NULL || CallBack == NULL) { ++ if ((List == NULL) || (CallBack == NULL)) { + return EFI_INVALID_PARAMETER; + } + + Length = 0; + do { + PreviousLength = Length; +- Entry = GetFirstNode (List); ++ Entry = GetFirstNode (List); + while (!IsNull (List, Entry)) { + Status = CallBack (Entry, Context); + if (EFI_ERROR (Status)) { + return Status; + } ++ + // + // Walk through the list to see whether the Entry has been removed or not. + // If the Entry still exists, just try to destroy the next one. +@@ -1180,18 +1169,22 @@ NetDestroyLinkList ( + break; + } + } ++ + if (Ptr == Entry) { + Entry = GetNextNode (List, Entry); + } else { + Entry = GetFirstNode (List); + } + } +- for (Length = 0, Ptr = List->ForwardLink; Ptr != List; Length++, Ptr = Ptr->ForwardLink); ++ ++ for (Length = 0, Ptr = List->ForwardLink; Ptr != List; Length++, Ptr = Ptr->ForwardLink) { ++ } + } while (Length != PreviousLength); + + if (ListLength != NULL) { + *ListLength = Length; + } ++ + return EFI_SUCCESS; + } + +@@ -1210,14 +1203,14 @@ NetDestroyLinkList ( + BOOLEAN + EFIAPI + NetIsInHandleBuffer ( +- IN EFI_HANDLE Handle, +- IN UINTN NumberOfChildren, +- IN EFI_HANDLE *ChildHandleBuffer OPTIONAL ++ IN EFI_HANDLE Handle, ++ IN UINTN NumberOfChildren, ++ IN EFI_HANDLE *ChildHandleBuffer OPTIONAL + ) + { +- UINTN Index; ++ UINTN Index; + +- if (NumberOfChildren == 0 || ChildHandleBuffer == NULL) { ++ if ((NumberOfChildren == 0) || (ChildHandleBuffer == NULL)) { + return FALSE; + } + +@@ -1230,7 +1223,6 @@ NetIsInHandleBuffer ( + return FALSE; + } + +- + /** + Initialize the netmap. Netmap is a reposity to keep the pairs. + +@@ -1248,7 +1240,7 @@ NetIsInHandleBuffer ( + VOID + EFIAPI + NetMapInit ( +- IN OUT NET_MAP *Map ++ IN OUT NET_MAP *Map + ) + { + ASSERT (Map != NULL); +@@ -1258,7 +1250,6 @@ NetMapInit ( + Map->Count = 0; + } + +- + /** + To clean up the netmap, that is, release allocated memories. + +@@ -1274,12 +1265,12 @@ NetMapInit ( + VOID + EFIAPI + NetMapClean ( +- IN OUT NET_MAP *Map ++ IN OUT NET_MAP *Map + ) + { +- NET_MAP_ITEM *Item; +- LIST_ENTRY *Entry; +- LIST_ENTRY *Next; ++ NET_MAP_ITEM *Item; ++ LIST_ENTRY *Entry; ++ LIST_ENTRY *Next; + + ASSERT (Map != NULL); + +@@ -1304,7 +1295,6 @@ NetMapClean ( + ASSERT (IsListEmpty (&Map->Recycled)); + } + +- + /** + Test whether the netmap is empty and return true if it is. + +@@ -1320,14 +1310,13 @@ NetMapClean ( + BOOLEAN + EFIAPI + NetMapIsEmpty ( +- IN NET_MAP *Map ++ IN NET_MAP *Map + ) + { + ASSERT (Map != NULL); +- return (BOOLEAN) (Map->Count == 0); ++ return (BOOLEAN)(Map->Count == 0); + } + +- + /** + Return the number of the pairs in the netmap. + +@@ -1341,14 +1330,13 @@ NetMapIsEmpty ( + UINTN + EFIAPI + NetMapGetCount ( +- IN NET_MAP *Map ++ IN NET_MAP *Map + ) + { + ASSERT (Map != NULL); + return Map->Count; + } + +- + /** + Return one allocated item. + +@@ -1367,12 +1355,12 @@ NetMapGetCount ( + **/ + NET_MAP_ITEM * + NetMapAllocItem ( +- IN OUT NET_MAP *Map ++ IN OUT NET_MAP *Map + ) + { +- NET_MAP_ITEM *Item; +- LIST_ENTRY *Head; +- UINTN Index; ++ NET_MAP_ITEM *Item; ++ LIST_ENTRY *Head; ++ UINTN Index; + + ASSERT (Map != NULL); + +@@ -1400,7 +1388,6 @@ NetMapAllocItem ( + return Item; + } + +- + /** + Allocate an item to save the pair to the head of the netmap. + +@@ -1422,12 +1409,12 @@ NetMapAllocItem ( + EFI_STATUS + EFIAPI + NetMapInsertHead ( +- IN OUT NET_MAP *Map, +- IN VOID *Key, +- IN VOID *Value OPTIONAL ++ IN OUT NET_MAP *Map, ++ IN VOID *Key, ++ IN VOID *Value OPTIONAL + ) + { +- NET_MAP_ITEM *Item; ++ NET_MAP_ITEM *Item; + + ASSERT (Map != NULL && Key != NULL); + +@@ -1445,7 +1432,6 @@ NetMapInsertHead ( + return EFI_SUCCESS; + } + +- + /** + Allocate an item to save the pair to the tail of the netmap. + +@@ -1467,12 +1453,12 @@ NetMapInsertHead ( + EFI_STATUS + EFIAPI + NetMapInsertTail ( +- IN OUT NET_MAP *Map, +- IN VOID *Key, +- IN VOID *Value OPTIONAL ++ IN OUT NET_MAP *Map, ++ IN VOID *Key, ++ IN VOID *Value OPTIONAL + ) + { +- NET_MAP_ITEM *Item; ++ NET_MAP_ITEM *Item; + + ASSERT (Map != NULL && Key != NULL); + +@@ -1491,7 +1477,6 @@ NetMapInsertTail ( + return EFI_SUCCESS; + } + +- + /** + Check whether the item is in the Map and return TRUE if it is. + +@@ -1506,11 +1491,11 @@ NetMapInsertTail ( + **/ + BOOLEAN + NetItemInMap ( +- IN NET_MAP *Map, +- IN NET_MAP_ITEM *Item ++ IN NET_MAP *Map, ++ IN NET_MAP_ITEM *Item + ) + { +- LIST_ENTRY *ListEntry; ++ LIST_ENTRY *ListEntry; + + ASSERT (Map != NULL && Item != NULL); + +@@ -1523,7 +1508,6 @@ NetItemInMap ( + return FALSE; + } + +- + /** + Find the key in the netmap and returns the point to the item contains the Key. + +@@ -1542,12 +1526,12 @@ NetItemInMap ( + NET_MAP_ITEM * + EFIAPI + NetMapFindKey ( +- IN NET_MAP *Map, +- IN VOID *Key ++ IN NET_MAP *Map, ++ IN VOID *Key + ) + { +- LIST_ENTRY *Entry; +- NET_MAP_ITEM *Item; ++ LIST_ENTRY *Entry; ++ NET_MAP_ITEM *Item; + + ASSERT (Map != NULL && Key != NULL); + +@@ -1562,7 +1546,6 @@ NetMapFindKey ( + return NULL; + } + +- + /** + Remove the node entry of the item from the netmap and return the key of the removed item. + +@@ -1585,9 +1568,9 @@ NetMapFindKey ( + VOID * + EFIAPI + NetMapRemoveItem ( +- IN OUT NET_MAP *Map, +- IN OUT NET_MAP_ITEM *Item, +- OUT VOID **Value OPTIONAL ++ IN OUT NET_MAP *Map, ++ IN OUT NET_MAP_ITEM *Item, ++ OUT VOID **Value OPTIONAL + ) + { + ASSERT ((Map != NULL) && (Item != NULL)); +@@ -1604,7 +1587,6 @@ NetMapRemoveItem ( + return Item->Key; + } + +- + /** + Remove the first node entry on the netmap and return the key of the removed item. + +@@ -1625,8 +1607,8 @@ NetMapRemoveItem ( + VOID * + EFIAPI + NetMapRemoveHead ( +- IN OUT NET_MAP *Map, +- OUT VOID **Value OPTIONAL ++ IN OUT NET_MAP *Map, ++ OUT VOID **Value OPTIONAL + ) + { + NET_MAP_ITEM *Item; +@@ -1649,7 +1631,6 @@ NetMapRemoveHead ( + return Item->Key; + } + +- + /** + Remove the last node entry on the netmap and return the key of the removed item. + +@@ -1670,11 +1651,11 @@ NetMapRemoveHead ( + VOID * + EFIAPI + NetMapRemoveTail ( +- IN OUT NET_MAP *Map, +- OUT VOID **Value OPTIONAL ++ IN OUT NET_MAP *Map, ++ OUT VOID **Value OPTIONAL + ) + { +- NET_MAP_ITEM *Item; ++ NET_MAP_ITEM *Item; + + // + // Often, it indicates a programming error to remove +@@ -1694,7 +1675,6 @@ NetMapRemoveTail ( + return Item->Key; + } + +- + /** + Iterate through the netmap and call CallBack for each item. + +@@ -1717,17 +1697,16 @@ NetMapRemoveTail ( + EFI_STATUS + EFIAPI + NetMapIterate ( +- IN NET_MAP *Map, +- IN NET_MAP_CALLBACK CallBack, +- IN VOID *Arg OPTIONAL ++ IN NET_MAP *Map, ++ IN NET_MAP_CALLBACK CallBack, ++ IN VOID *Arg OPTIONAL + ) + { +- +- LIST_ENTRY *Entry; +- LIST_ENTRY *Next; +- LIST_ENTRY *Head; +- NET_MAP_ITEM *Item; +- EFI_STATUS Result; ++ LIST_ENTRY *Entry; ++ LIST_ENTRY *Next; ++ LIST_ENTRY *Head; ++ NET_MAP_ITEM *Item; ++ EFI_STATUS Result; + + ASSERT ((Map != NULL) && (CallBack != NULL)); + +@@ -1749,7 +1728,6 @@ NetMapIterate ( + return EFI_SUCCESS; + } + +- + /** + This is the default unload handle for all the network drivers. + +@@ -1765,17 +1743,17 @@ NetMapIterate ( + EFI_STATUS + EFIAPI + NetLibDefaultUnload ( +- IN EFI_HANDLE ImageHandle ++ IN EFI_HANDLE ImageHandle + ) + { +- EFI_STATUS Status; +- EFI_HANDLE *DeviceHandleBuffer; +- UINTN DeviceHandleCount; +- UINTN Index; +- UINTN Index2; +- EFI_DRIVER_BINDING_PROTOCOL *DriverBinding; +- EFI_COMPONENT_NAME_PROTOCOL *ComponentName; +- EFI_COMPONENT_NAME2_PROTOCOL *ComponentName2; ++ EFI_STATUS Status; ++ EFI_HANDLE *DeviceHandleBuffer; ++ UINTN DeviceHandleCount; ++ UINTN Index; ++ UINTN Index2; ++ EFI_DRIVER_BINDING_PROTOCOL *DriverBinding; ++ EFI_COMPONENT_NAME_PROTOCOL *ComponentName; ++ EFI_COMPONENT_NAME2_PROTOCOL *ComponentName2; + + // + // Get the list of all the handles in the handle database. +@@ -1798,7 +1776,7 @@ NetLibDefaultUnload ( + Status = gBS->HandleProtocol ( + DeviceHandleBuffer[Index], + &gEfiDriverBindingProtocolGuid, +- (VOID **) &DriverBinding ++ (VOID **)&DriverBinding + ); + if (EFI_ERROR (Status)) { + continue; +@@ -1824,15 +1802,15 @@ NetLibDefaultUnload ( + // Uninstall all the protocols installed in the driver entry point + // + gBS->UninstallProtocolInterface ( +- DriverBinding->DriverBindingHandle, +- &gEfiDriverBindingProtocolGuid, +- DriverBinding +- ); ++ DriverBinding->DriverBindingHandle, ++ &gEfiDriverBindingProtocolGuid, ++ DriverBinding ++ ); + + Status = gBS->HandleProtocol ( + DeviceHandleBuffer[Index], + &gEfiComponentNameProtocolGuid, +- (VOID **) &ComponentName ++ (VOID **)&ComponentName + ); + if (!EFI_ERROR (Status)) { + gBS->UninstallProtocolInterface ( +@@ -1845,7 +1823,7 @@ NetLibDefaultUnload ( + Status = gBS->HandleProtocol ( + DeviceHandleBuffer[Index], + &gEfiComponentName2ProtocolGuid, +- (VOID **) &ComponentName2 ++ (VOID **)&ComponentName2 + ); + if (!EFI_ERROR (Status)) { + gBS->UninstallProtocolInterface ( +@@ -1866,8 +1844,6 @@ NetLibDefaultUnload ( + return EFI_SUCCESS; + } + +- +- + /** + Create a child of the service that is identified by ServiceBindingGuid. + +@@ -1888,16 +1864,15 @@ NetLibDefaultUnload ( + EFI_STATUS + EFIAPI + NetLibCreateServiceChild ( +- IN EFI_HANDLE Controller, +- IN EFI_HANDLE Image, +- IN EFI_GUID *ServiceBindingGuid, +- IN OUT EFI_HANDLE *ChildHandle ++ IN EFI_HANDLE Controller, ++ IN EFI_HANDLE Image, ++ IN EFI_GUID *ServiceBindingGuid, ++ IN OUT EFI_HANDLE *ChildHandle + ) + { + EFI_STATUS Status; + EFI_SERVICE_BINDING_PROTOCOL *Service; + +- + ASSERT ((ServiceBindingGuid != NULL) && (ChildHandle != NULL)); + + // +@@ -1906,7 +1881,7 @@ NetLibCreateServiceChild ( + Status = gBS->OpenProtocol ( + Controller, + ServiceBindingGuid, +- (VOID **) &Service, ++ (VOID **)&Service, + Image, + Controller, + EFI_OPEN_PROTOCOL_GET_PROTOCOL +@@ -1923,7 +1898,6 @@ NetLibCreateServiceChild ( + return Status; + } + +- + /** + Destroy a child of the service that is identified by ServiceBindingGuid. + +@@ -1943,10 +1917,10 @@ NetLibCreateServiceChild ( + EFI_STATUS + EFIAPI + NetLibDestroyServiceChild ( +- IN EFI_HANDLE Controller, +- IN EFI_HANDLE Image, +- IN EFI_GUID *ServiceBindingGuid, +- IN EFI_HANDLE ChildHandle ++ IN EFI_HANDLE Controller, ++ IN EFI_HANDLE Image, ++ IN EFI_GUID *ServiceBindingGuid, ++ IN EFI_HANDLE ChildHandle + ) + { + EFI_STATUS Status; +@@ -1960,7 +1934,7 @@ NetLibDestroyServiceChild ( + Status = gBS->OpenProtocol ( + Controller, + ServiceBindingGuid, +- (VOID **) &Service, ++ (VOID **)&Service, + Image, + Controller, + EFI_OPEN_PROTOCOL_GET_PROTOCOL +@@ -1996,8 +1970,8 @@ NetLibDestroyServiceChild ( + EFI_HANDLE + EFIAPI + NetLibGetSnpHandle ( +- IN EFI_HANDLE ServiceHandle, +- OUT EFI_SIMPLE_NETWORK_PROTOCOL **Snp OPTIONAL ++ IN EFI_HANDLE ServiceHandle, ++ OUT EFI_SIMPLE_NETWORK_PROTOCOL **Snp OPTIONAL + ) + { + EFI_STATUS Status; +@@ -2009,11 +1983,12 @@ NetLibGetSnpHandle ( + // Try to open SNP from ServiceHandle + // + SnpInstance = NULL; +- Status = gBS->HandleProtocol (ServiceHandle, &gEfiSimpleNetworkProtocolGuid, (VOID **) &SnpInstance); ++ Status = gBS->HandleProtocol (ServiceHandle, &gEfiSimpleNetworkProtocolGuid, (VOID **)&SnpInstance); + if (!EFI_ERROR (Status)) { + if (Snp != NULL) { + *Snp = SnpInstance; + } ++ + return ServiceHandle; + } + +@@ -2026,7 +2001,7 @@ NetLibGetSnpHandle ( + } + + SnpHandle = NULL; +- Status = gBS->LocateDevicePath (&gEfiSimpleNetworkProtocolGuid, &DevicePath, &SnpHandle); ++ Status = gBS->LocateDevicePath (&gEfiSimpleNetworkProtocolGuid, &DevicePath, &SnpHandle); + if (EFI_ERROR (Status)) { + // + // Failed to find SNP handle +@@ -2034,11 +2009,12 @@ NetLibGetSnpHandle ( + return NULL; + } + +- Status = gBS->HandleProtocol (SnpHandle, &gEfiSimpleNetworkProtocolGuid, (VOID **) &SnpInstance); ++ Status = gBS->HandleProtocol (SnpHandle, &gEfiSimpleNetworkProtocolGuid, (VOID **)&SnpInstance); + if (!EFI_ERROR (Status)) { + if (Snp != NULL) { + *Snp = SnpInstance; + } ++ + return SnpHandle; + } + +@@ -2061,7 +2037,7 @@ NetLibGetSnpHandle ( + UINT16 + EFIAPI + NetLibGetVlanId ( +- IN EFI_HANDLE ServiceHandle ++ IN EFI_HANDLE ServiceHandle + ) + { + EFI_DEVICE_PATH_PROTOCOL *DevicePath; +@@ -2074,9 +2050,10 @@ NetLibGetVlanId ( + + Node = DevicePath; + while (!IsDevicePathEnd (Node)) { +- if (Node->Type == MESSAGING_DEVICE_PATH && Node->SubType == MSG_VLAN_DP) { +- return ((VLAN_DEVICE_PATH *) Node)->VlanId; ++ if ((Node->Type == MESSAGING_DEVICE_PATH) && (Node->SubType == MSG_VLAN_DP)) { ++ return ((VLAN_DEVICE_PATH *)Node)->VlanId; + } ++ + Node = NextDevicePathNode (Node); + } + +@@ -2100,8 +2077,8 @@ NetLibGetVlanId ( + EFI_HANDLE + EFIAPI + NetLibGetVlanHandle ( +- IN EFI_HANDLE ControllerHandle, +- IN UINT16 VlanId ++ IN EFI_HANDLE ControllerHandle, ++ IN UINT16 VlanId + ) + { + EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath; +@@ -2120,10 +2097,10 @@ NetLibGetVlanHandle ( + // + CopyMem (&VlanNode, &mNetVlanDevicePathTemplate, sizeof (VLAN_DEVICE_PATH)); + VlanNode.VlanId = VlanId; +- VlanDevicePath = AppendDevicePathNode ( +- ParentDevicePath, +- (EFI_DEVICE_PATH_PROTOCOL *) &VlanNode +- ); ++ VlanDevicePath = AppendDevicePathNode ( ++ ParentDevicePath, ++ (EFI_DEVICE_PATH_PROTOCOL *)&VlanNode ++ ); + if (VlanDevicePath == NULL) { + return NULL; + } +@@ -2131,7 +2108,7 @@ NetLibGetVlanHandle ( + // + // Find VLAN device handle + // +- Handle = NULL; ++ Handle = NULL; + DevicePath = VlanDevicePath; + gBS->LocateDevicePath ( + &gEfiDevicePathProtocolGuid, +@@ -2171,19 +2148,19 @@ NetLibGetVlanHandle ( + EFI_STATUS + EFIAPI + NetLibGetMacAddress ( +- IN EFI_HANDLE ServiceHandle, +- OUT EFI_MAC_ADDRESS *MacAddress, +- OUT UINTN *AddressSize ++ IN EFI_HANDLE ServiceHandle, ++ OUT EFI_MAC_ADDRESS *MacAddress, ++ OUT UINTN *AddressSize + ) + { +- EFI_STATUS Status; +- EFI_SIMPLE_NETWORK_PROTOCOL *Snp; +- EFI_SIMPLE_NETWORK_MODE *SnpMode; +- EFI_SIMPLE_NETWORK_MODE SnpModeData; +- EFI_MANAGED_NETWORK_PROTOCOL *Mnp; +- EFI_SERVICE_BINDING_PROTOCOL *MnpSb; +- EFI_HANDLE SnpHandle; +- EFI_HANDLE MnpChildHandle; ++ EFI_STATUS Status; ++ EFI_SIMPLE_NETWORK_PROTOCOL *Snp; ++ EFI_SIMPLE_NETWORK_MODE *SnpMode; ++ EFI_SIMPLE_NETWORK_MODE SnpModeData; ++ EFI_MANAGED_NETWORK_PROTOCOL *Mnp; ++ EFI_SERVICE_BINDING_PROTOCOL *MnpSb; ++ EFI_HANDLE SnpHandle; ++ EFI_HANDLE MnpChildHandle; + + ASSERT (MacAddress != NULL); + ASSERT (AddressSize != NULL); +@@ -2191,7 +2168,7 @@ NetLibGetMacAddress ( + // + // Try to get SNP handle + // +- Snp = NULL; ++ Snp = NULL; + SnpHandle = NetLibGetSnpHandle (ServiceHandle, &Snp); + if (SnpHandle != NULL) { + // +@@ -2203,11 +2180,11 @@ NetLibGetMacAddress ( + // Failed to get SNP handle, try to get MAC address from MNP + // + MnpChildHandle = NULL; +- Status = gBS->HandleProtocol ( +- ServiceHandle, +- &gEfiManagedNetworkServiceBindingProtocolGuid, +- (VOID **) &MnpSb +- ); ++ Status = gBS->HandleProtocol ( ++ ServiceHandle, ++ &gEfiManagedNetworkServiceBindingProtocolGuid, ++ (VOID **)&MnpSb ++ ); + if (EFI_ERROR (Status)) { + return Status; + } +@@ -2226,7 +2203,7 @@ NetLibGetMacAddress ( + Status = gBS->HandleProtocol ( + MnpChildHandle, + &gEfiManagedNetworkProtocolGuid, +- (VOID **) &Mnp ++ (VOID **)&Mnp + ); + if (EFI_ERROR (Status)) { + MnpSb->DestroyChild (MnpSb, MnpChildHandle); +@@ -2241,6 +2218,7 @@ NetLibGetMacAddress ( + MnpSb->DestroyChild (MnpSb, MnpChildHandle); + return Status; + } ++ + SnpMode = &SnpModeData; + + // +@@ -2287,14 +2265,14 @@ NetLibGetMacString ( + OUT CHAR16 **MacString + ) + { +- EFI_STATUS Status; +- EFI_MAC_ADDRESS MacAddress; +- UINT8 *HwAddress; +- UINTN HwAddressSize; +- UINT16 VlanId; +- CHAR16 *String; +- UINTN Index; +- UINTN BufferSize; ++ EFI_STATUS Status; ++ EFI_MAC_ADDRESS MacAddress; ++ UINT8 *HwAddress; ++ UINTN HwAddressSize; ++ UINT16 VlanId; ++ CHAR16 *String; ++ UINTN Index; ++ UINTN BufferSize; + + ASSERT (MacString != NULL); + +@@ -2312,10 +2290,11 @@ NetLibGetMacString ( + // Plus one unicode character for the null-terminator. + // + BufferSize = (2 * HwAddressSize + 5 + 1) * sizeof (CHAR16); +- String = AllocateZeroPool (BufferSize); ++ String = AllocateZeroPool (BufferSize); + if (String == NULL) { + return EFI_OUT_OF_RESOURCES; + } ++ + *MacString = String; + + // +@@ -2390,8 +2369,8 @@ NetLibGetMacString ( + EFI_STATUS + EFIAPI + NetLibDetectMedia ( +- IN EFI_HANDLE ServiceHandle, +- OUT BOOLEAN *MediaPresent ++ IN EFI_HANDLE ServiceHandle, ++ OUT BOOLEAN *MediaPresent + ) + { + EFI_STATUS Status; +@@ -2410,7 +2389,7 @@ NetLibDetectMedia ( + // + // Get SNP handle + // +- Snp = NULL; ++ Snp = NULL; + SnpHandle = NetLibGetSnpHandle (ServiceHandle, &Snp); + if (SnpHandle == NULL) { + return EFI_INVALID_PARAMETER; +@@ -2485,6 +2464,7 @@ NetLibDetectMedia ( + if (!EFI_ERROR (Status)) { + Status = Snp->Stop (Snp); + } ++ + if (EFI_ERROR (Status)) { + goto Exit; + } +@@ -2496,6 +2476,7 @@ NetLibDetectMedia ( + if (!EFI_ERROR (Status)) { + Status = Snp->Initialize (Snp, 0, 0); + } ++ + if (EFI_ERROR (Status)) { + goto Exit; + } +@@ -2599,9 +2580,9 @@ Exit: + EFI_STATUS + EFIAPI + NetLibDetectMediaWaitTimeout ( +- IN EFI_HANDLE ServiceHandle, +- IN UINT64 Timeout, +- OUT EFI_STATUS *MediaState ++ IN EFI_HANDLE ServiceHandle, ++ IN UINT64 Timeout, ++ OUT EFI_STATUS *MediaState + ) + { + EFI_STATUS Status; +@@ -2618,13 +2599,14 @@ NetLibDetectMediaWaitTimeout ( + if (MediaState == NULL) { + return EFI_INVALID_PARAMETER; + } ++ + *MediaState = EFI_SUCCESS; + MediaInfo = NULL; + + // + // Get SNP handle + // +- Snp = NULL; ++ Snp = NULL; + SnpHandle = NetLibGetSnpHandle (ServiceHandle, &Snp); + if (SnpHandle == NULL) { + return EFI_INVALID_PARAMETER; +@@ -2633,12 +2615,11 @@ NetLibDetectMediaWaitTimeout ( + Status = gBS->HandleProtocol ( + SnpHandle, + &gEfiAdapterInformationProtocolGuid, +- (VOID *) &Aip ++ (VOID *)&Aip + ); + if (EFI_ERROR (Status)) { +- + MediaPresent = TRUE; +- Status = NetLibDetectMedia (ServiceHandle, &MediaPresent); ++ Status = NetLibDetectMedia (ServiceHandle, &MediaPresent); + if (!EFI_ERROR (Status)) { + if (MediaPresent) { + *MediaState = EFI_SUCCESS; +@@ -2656,30 +2637,26 @@ NetLibDetectMediaWaitTimeout ( + Status = Aip->GetInformation ( + Aip, + &gEfiAdapterInfoMediaStateGuid, +- (VOID **) &MediaInfo, ++ (VOID **)&MediaInfo, + &DataSize + ); + if (!EFI_ERROR (Status)) { +- + *MediaState = MediaInfo->MediaState; + FreePool (MediaInfo); +- if (*MediaState != EFI_NOT_READY || Timeout < MEDIA_STATE_DETECT_TIME_INTERVAL) { +- ++ if ((*MediaState != EFI_NOT_READY) || (Timeout < MEDIA_STATE_DETECT_TIME_INTERVAL)) { + return EFI_SUCCESS; + } + } else { +- + if (MediaInfo != NULL) { + FreePool (MediaInfo); + } + + if (Status == EFI_UNSUPPORTED) { +- + // + // If gEfiAdapterInfoMediaStateGuid is not supported, call NetLibDetectMedia to get media state! + // + MediaPresent = TRUE; +- Status = NetLibDetectMedia (ServiceHandle, &MediaPresent); ++ Status = NetLibDetectMedia (ServiceHandle, &MediaPresent); + if (!EFI_ERROR (Status)) { + if (MediaPresent) { + *MediaState = EFI_SUCCESS; +@@ -2687,6 +2664,7 @@ NetLibDetectMediaWaitTimeout ( + *MediaState = EFI_NO_MEDIA; + } + } ++ + return Status; + } + +@@ -2699,7 +2677,7 @@ NetLibDetectMediaWaitTimeout ( + + Timer = NULL; + TimeRemained = Timeout; +- Status = gBS->CreateEvent (EVT_TIMER, TPL_CALLBACK, NULL, NULL, &Timer); ++ Status = gBS->CreateEvent (EVT_TIMER, TPL_CALLBACK, NULL, NULL, &Timer); + if (EFI_ERROR (Status)) { + return EFI_DEVICE_ERROR; + } +@@ -2711,39 +2689,37 @@ NetLibDetectMediaWaitTimeout ( + MEDIA_STATE_DETECT_TIME_INTERVAL + ); + if (EFI_ERROR (Status)) { +- gBS->CloseEvent(Timer); ++ gBS->CloseEvent (Timer); + return EFI_DEVICE_ERROR; + } + + do { + TimerStatus = gBS->CheckEvent (Timer); + if (!EFI_ERROR (TimerStatus)) { +- + TimeRemained -= MEDIA_STATE_DETECT_TIME_INTERVAL; +- Status = Aip->GetInformation ( +- Aip, +- &gEfiAdapterInfoMediaStateGuid, +- (VOID **) &MediaInfo, +- &DataSize +- ); ++ Status = Aip->GetInformation ( ++ Aip, ++ &gEfiAdapterInfoMediaStateGuid, ++ (VOID **)&MediaInfo, ++ &DataSize ++ ); + if (!EFI_ERROR (Status)) { +- + *MediaState = MediaInfo->MediaState; + FreePool (MediaInfo); + } else { +- + if (MediaInfo != NULL) { + FreePool (MediaInfo); + } +- gBS->CloseEvent(Timer); ++ ++ gBS->CloseEvent (Timer); + return Status; + } + } + } while (TimerStatus == EFI_NOT_READY); + } while (*MediaState == EFI_NOT_READY && TimeRemained >= MEDIA_STATE_DETECT_TIME_INTERVAL); + +- gBS->CloseEvent(Timer); +- if (*MediaState == EFI_NOT_READY && TimeRemained < MEDIA_STATE_DETECT_TIME_INTERVAL) { ++ gBS->CloseEvent (Timer); ++ if ((*MediaState == EFI_NOT_READY) && (TimeRemained < MEDIA_STATE_DETECT_TIME_INTERVAL)) { + return EFI_TIMEOUT; + } else { + return EFI_SUCCESS; +@@ -2770,22 +2746,22 @@ NetLibDefaultAddressIsStatic ( + IN EFI_HANDLE Controller + ) + { +- EFI_STATUS Status; +- EFI_IP4_CONFIG2_PROTOCOL *Ip4Config2; +- UINTN DataSize; +- EFI_IP4_CONFIG2_POLICY Policy; +- BOOLEAN IsStatic; ++ EFI_STATUS Status; ++ EFI_IP4_CONFIG2_PROTOCOL *Ip4Config2; ++ UINTN DataSize; ++ EFI_IP4_CONFIG2_POLICY Policy; ++ BOOLEAN IsStatic; + + Ip4Config2 = NULL; + + DataSize = sizeof (EFI_IP4_CONFIG2_POLICY); + +- IsStatic = TRUE; ++ IsStatic = TRUE; + + // + // Get Ip4Config2 policy. + // +- Status = gBS->HandleProtocol (Controller, &gEfiIp4Config2ProtocolGuid, (VOID **) &Ip4Config2); ++ Status = gBS->HandleProtocol (Controller, &gEfiIp4Config2ProtocolGuid, (VOID **)&Ip4Config2); + if (EFI_ERROR (Status)) { + goto ON_EXIT; + } +@@ -2795,7 +2771,7 @@ NetLibDefaultAddressIsStatic ( + goto ON_EXIT; + } + +- IsStatic = (BOOLEAN) (Policy == Ip4Config2PolicyStatic); ++ IsStatic = (BOOLEAN)(Policy == Ip4Config2PolicyStatic); + + ON_EXIT: + +@@ -2907,7 +2883,7 @@ NetLibCreateIPv6DPathNode ( + Node->LocalPort = LocalPort; + Node->RemotePort = RemotePort; + +- Node->Protocol = Protocol; ++ Node->Protocol = Protocol; + + // + // Set default value to IPAddressOrigin, PrefixLength. +@@ -2940,15 +2916,15 @@ NetLibCreateIPv6DPathNode ( + EFI_HANDLE + EFIAPI + NetLibGetNicHandle ( +- IN EFI_HANDLE Controller, +- IN EFI_GUID *ProtocolGuid ++ IN EFI_HANDLE Controller, ++ IN EFI_GUID *ProtocolGuid + ) + { +- EFI_OPEN_PROTOCOL_INFORMATION_ENTRY *OpenBuffer; +- EFI_HANDLE Handle; +- EFI_STATUS Status; +- UINTN OpenCount; +- UINTN Index; ++ EFI_OPEN_PROTOCOL_INFORMATION_ENTRY *OpenBuffer; ++ EFI_HANDLE Handle; ++ EFI_STATUS Status; ++ UINTN OpenCount; ++ UINTN Index; + + ASSERT (ProtocolGuid != NULL); + +@@ -2989,12 +2965,12 @@ NetLibGetNicHandle ( + EFI_STATUS + EFIAPI + NetLibAsciiStrToIp4 ( +- IN CONST CHAR8 *String, +- OUT EFI_IPv4_ADDRESS *Ip4Address ++ IN CONST CHAR8 *String, ++ OUT EFI_IPv4_ADDRESS *Ip4Address + ) + { +- RETURN_STATUS Status; +- CHAR8 *EndPointer; ++ RETURN_STATUS Status; ++ CHAR8 *EndPointer; + + Status = AsciiStrToIpv4Address (String, &EndPointer, Ip4Address, NULL); + if (RETURN_ERROR (Status) || (*EndPointer != '\0')) { +@@ -3004,7 +2980,6 @@ NetLibAsciiStrToIp4 ( + } + } + +- + /** + Convert one Null-terminated ASCII string to EFI_IPv6_ADDRESS. The format of the + string is defined in RFC 4291 - Text Representation of Addresses. +@@ -3019,12 +2994,12 @@ NetLibAsciiStrToIp4 ( + EFI_STATUS + EFIAPI + NetLibAsciiStrToIp6 ( +- IN CONST CHAR8 *String, +- OUT EFI_IPv6_ADDRESS *Ip6Address ++ IN CONST CHAR8 *String, ++ OUT EFI_IPv6_ADDRESS *Ip6Address + ) + { +- RETURN_STATUS Status; +- CHAR8 *EndPointer; ++ RETURN_STATUS Status; ++ CHAR8 *EndPointer; + + Status = AsciiStrToIpv6Address (String, &EndPointer, Ip6Address, NULL); + if (RETURN_ERROR (Status) || (*EndPointer != '\0')) { +@@ -3034,7 +3009,6 @@ NetLibAsciiStrToIp6 ( + } + } + +- + /** + Convert one Null-terminated Unicode string (decimal dotted) to EFI_IPv4_ADDRESS. + +@@ -3048,12 +3022,12 @@ NetLibAsciiStrToIp6 ( + EFI_STATUS + EFIAPI + NetLibStrToIp4 ( +- IN CONST CHAR16 *String, +- OUT EFI_IPv4_ADDRESS *Ip4Address ++ IN CONST CHAR16 *String, ++ OUT EFI_IPv4_ADDRESS *Ip4Address + ) + { +- RETURN_STATUS Status; +- CHAR16 *EndPointer; ++ RETURN_STATUS Status; ++ CHAR16 *EndPointer; + + Status = StrToIpv4Address (String, &EndPointer, Ip4Address, NULL); + if (RETURN_ERROR (Status) || (*EndPointer != L'\0')) { +@@ -3063,7 +3037,6 @@ NetLibStrToIp4 ( + } + } + +- + /** + Convert one Null-terminated Unicode string to EFI_IPv6_ADDRESS. The format of + the string is defined in RFC 4291 - Text Representation of Addresses. +@@ -3078,12 +3051,12 @@ NetLibStrToIp4 ( + EFI_STATUS + EFIAPI + NetLibStrToIp6 ( +- IN CONST CHAR16 *String, +- OUT EFI_IPv6_ADDRESS *Ip6Address ++ IN CONST CHAR16 *String, ++ OUT EFI_IPv6_ADDRESS *Ip6Address + ) + { +- RETURN_STATUS Status; +- CHAR16 *EndPointer; ++ RETURN_STATUS Status; ++ CHAR16 *EndPointer; + + Status = StrToIpv6Address (String, &EndPointer, Ip6Address, NULL); + if (RETURN_ERROR (Status) || (*EndPointer != L'\0')) { +@@ -3109,13 +3082,13 @@ NetLibStrToIp6 ( + EFI_STATUS + EFIAPI + NetLibStrToIp6andPrefix ( +- IN CONST CHAR16 *String, +- OUT EFI_IPv6_ADDRESS *Ip6Address, +- OUT UINT8 *PrefixLength ++ IN CONST CHAR16 *String, ++ OUT EFI_IPv6_ADDRESS *Ip6Address, ++ OUT UINT8 *PrefixLength + ) + { +- RETURN_STATUS Status; +- CHAR16 *EndPointer; ++ RETURN_STATUS Status; ++ CHAR16 *EndPointer; + + Status = StrToIpv6Address (String, &EndPointer, Ip6Address, PrefixLength); + if (RETURN_ERROR (Status) || (*EndPointer != L'\0')) { +@@ -3142,21 +3115,21 @@ NetLibStrToIp6andPrefix ( + EFI_STATUS + EFIAPI + NetLibIp6ToStr ( +- IN EFI_IPv6_ADDRESS *Ip6Address, +- OUT CHAR16 *String, +- IN UINTN StringSize ++ IN EFI_IPv6_ADDRESS *Ip6Address, ++ OUT CHAR16 *String, ++ IN UINTN StringSize + ) + { +- UINT16 Ip6Addr[8]; +- UINTN Index; +- UINTN LongestZerosStart; +- UINTN LongestZerosLength; +- UINTN CurrentZerosStart; +- UINTN CurrentZerosLength; +- CHAR16 Buffer[sizeof"ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff"]; +- CHAR16 *Ptr; +- +- if (Ip6Address == NULL || String == NULL || StringSize == 0) { ++ UINT16 Ip6Addr[8]; ++ UINTN Index; ++ UINTN LongestZerosStart; ++ UINTN LongestZerosLength; ++ UINTN CurrentZerosStart; ++ UINTN CurrentZerosLength; ++ CHAR16 Buffer[sizeof "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff"]; ++ CHAR16 *Ptr; ++ ++ if ((Ip6Address == NULL) || (String == NULL) || (StringSize == 0)) { + return EFI_INVALID_PARAMETER; + } + +@@ -3178,25 +3151,26 @@ NetLibIp6ToStr ( + for (Index = 0; Index < 8; Index++) { + if (Ip6Addr[Index] == 0) { + if (CurrentZerosStart == DEFAULT_ZERO_START) { +- CurrentZerosStart = Index; ++ CurrentZerosStart = Index; + CurrentZerosLength = 1; + } else { + CurrentZerosLength++; + } + } else { + if (CurrentZerosStart != DEFAULT_ZERO_START) { +- if (CurrentZerosLength > 2 && (LongestZerosStart == (DEFAULT_ZERO_START) || CurrentZerosLength > LongestZerosLength)) { ++ if ((CurrentZerosLength > 2) && ((LongestZerosStart == (DEFAULT_ZERO_START)) || (CurrentZerosLength > LongestZerosLength))) { + LongestZerosStart = CurrentZerosStart; + LongestZerosLength = CurrentZerosLength; + } ++ + CurrentZerosStart = DEFAULT_ZERO_START; + CurrentZerosLength = 0; + } + } + } + +- if (CurrentZerosStart != DEFAULT_ZERO_START && CurrentZerosLength > 2) { +- if (LongestZerosStart == DEFAULT_ZERO_START || LongestZerosLength < CurrentZerosLength) { ++ if ((CurrentZerosStart != DEFAULT_ZERO_START) && (CurrentZerosLength > 2)) { ++ if ((LongestZerosStart == DEFAULT_ZERO_START) || (LongestZerosLength < CurrentZerosLength)) { + LongestZerosStart = CurrentZerosStart; + LongestZerosLength = CurrentZerosLength; + } +@@ -3204,21 +3178,25 @@ NetLibIp6ToStr ( + + Ptr = Buffer; + for (Index = 0; Index < 8; Index++) { +- if (LongestZerosStart != DEFAULT_ZERO_START && Index >= LongestZerosStart && Index < LongestZerosStart + LongestZerosLength) { ++ if ((LongestZerosStart != DEFAULT_ZERO_START) && (Index >= LongestZerosStart) && (Index < LongestZerosStart + LongestZerosLength)) { + if (Index == LongestZerosStart) { + *Ptr++ = L':'; + } ++ + continue; + } ++ + if (Index != 0) { + *Ptr++ = L':'; + } +- Ptr += UnicodeSPrint(Ptr, 10, L"%x", Ip6Addr[Index]); ++ ++ Ptr += UnicodeSPrint (Ptr, 10, L"%x", Ip6Addr[Index]); + } + +- if (LongestZerosStart != DEFAULT_ZERO_START && LongestZerosStart + LongestZerosLength == 8) { ++ if ((LongestZerosStart != DEFAULT_ZERO_START) && (LongestZerosStart + LongestZerosLength == 8)) { + *Ptr++ = L':'; + } ++ + *Ptr = L'\0'; + + if ((UINTN)Ptr - (UINTN)Buffer > StringSize) { +@@ -3244,7 +3222,7 @@ NetLibIp6ToStr ( + EFI_STATUS + EFIAPI + NetLibGetSystemGuid ( +- OUT EFI_GUID *SystemGuid ++ OUT EFI_GUID *SystemGuid + ) + { + EFI_STATUS Status; +@@ -3257,17 +3235,18 @@ NetLibGetSystemGuid ( + ASSERT (SystemGuid != NULL); + + SmbiosTable = NULL; +- Status = EfiGetSystemConfigurationTable (&gEfiSmbios3TableGuid, (VOID **) &Smbios30Table); +- if (!(EFI_ERROR (Status) || Smbios30Table == NULL)) { +- Smbios.Hdr = (SMBIOS_STRUCTURE *) (UINTN) Smbios30Table->TableAddress; +- SmbiosEnd.Raw = (UINT8 *) (UINTN) (Smbios30Table->TableAddress + Smbios30Table->TableMaximumSize); ++ Status = EfiGetSystemConfigurationTable (&gEfiSmbios3TableGuid, (VOID **)&Smbios30Table); ++ if (!(EFI_ERROR (Status) || (Smbios30Table == NULL))) { ++ Smbios.Hdr = (SMBIOS_STRUCTURE *)(UINTN)Smbios30Table->TableAddress; ++ SmbiosEnd.Raw = (UINT8 *)(UINTN)(Smbios30Table->TableAddress + Smbios30Table->TableMaximumSize); + } else { +- Status = EfiGetSystemConfigurationTable (&gEfiSmbiosTableGuid, (VOID **) &SmbiosTable); +- if (EFI_ERROR (Status) || SmbiosTable == NULL) { ++ Status = EfiGetSystemConfigurationTable (&gEfiSmbiosTableGuid, (VOID **)&SmbiosTable); ++ if (EFI_ERROR (Status) || (SmbiosTable == NULL)) { + return EFI_NOT_FOUND; + } +- Smbios.Hdr = (SMBIOS_STRUCTURE *) (UINTN) SmbiosTable->TableAddress; +- SmbiosEnd.Raw = (UINT8 *) ((UINTN) SmbiosTable->TableAddress + SmbiosTable->TableLength); ++ ++ Smbios.Hdr = (SMBIOS_STRUCTURE *)(UINTN)SmbiosTable->TableAddress; ++ SmbiosEnd.Raw = (UINT8 *)((UINTN)SmbiosTable->TableAddress + SmbiosTable->TableLength); + } + + do { +@@ -3296,7 +3275,7 @@ NetLibGetSystemGuid ( + // + // Step 1: Skip over formatted section. + // +- String = (CHAR8 *) (Smbios.Raw + Smbios.Hdr->Length); ++ String = (CHAR8 *)(Smbios.Raw + Smbios.Hdr->Length); + + // + // Step 2: Skip over unformatted string section. +@@ -3309,7 +3288,7 @@ NetLibGetSystemGuid ( + for ( ; *String != 0; String++) { + } + +- if (*(UINT8*)++String == 0) { ++ if (*(UINT8 *)++String == 0) { + // + // Pointer to the next SMBIOS structure. + // +@@ -3318,6 +3297,7 @@ NetLibGetSystemGuid ( + } + } while (TRUE); + } while (Smbios.Raw < SmbiosEnd.Raw); ++ + return EFI_NOT_FOUND; + } + +@@ -3341,15 +3321,15 @@ NetLibGetSystemGuid ( + CHAR8 * + EFIAPI + NetLibCreateDnsQName ( +- IN CHAR16 *DomainName ++ IN CHAR16 *DomainName + ) + { +- CHAR8 *QueryName; +- UINTN QueryNameSize; +- CHAR8 *Header; +- CHAR8 *Tail; +- UINTN Len; +- UINTN Index; ++ CHAR8 *QueryName; ++ UINTN QueryNameSize; ++ CHAR8 *Header; ++ CHAR8 *Tail; ++ UINTN Len; ++ UINTN Index; + + ASSERT (DomainName != NULL); + +@@ -3373,22 +3353,23 @@ NetLibCreateDnsQName ( + } + + Header = QueryName; +- Tail = Header + 1; +- Len = 0; ++ Tail = Header + 1; ++ Len = 0; + for (Index = 0; DomainName[Index] != 0; Index++) { +- *Tail = (CHAR8) DomainName[Index]; ++ *Tail = (CHAR8)DomainName[Index]; + if (*Tail == '.') { +- *Header = (CHAR8) Len; +- Header = Tail; +- Tail ++; ++ *Header = (CHAR8)Len; ++ Header = Tail; ++ Tail++; + Len = 0; + } else { + Tail++; + Len++; + } + } +- *Header = (CHAR8) Len; +- *Tail = 0; ++ ++ *Header = (CHAR8)Len; ++ *Tail = 0; + + return QueryName; + } +diff --git a/NetworkPkg/TcpDxe/TcpDriver.c b/NetworkPkg/TcpDxe/TcpDriver.c +index c4dcb5e193..8a75b4b55b 100644 +--- a/NetworkPkg/TcpDxe/TcpDriver.c ++++ b/NetworkPkg/TcpDxe/TcpDriver.c +@@ -9,15 +9,15 @@ + + #include "TcpMain.h" + +-UINT16 mTcp4RandomPort; +-UINT16 mTcp6RandomPort; ++UINT16 mTcp4RandomPort; ++UINT16 mTcp6RandomPort; + +-TCP_HEARTBEAT_TIMER mTcpTimer = { ++TCP_HEARTBEAT_TIMER mTcpTimer = { + NULL, + 0 + }; + +-EFI_TCP4_PROTOCOL gTcp4ProtocolTemplate = { ++EFI_TCP4_PROTOCOL gTcp4ProtocolTemplate = { + Tcp4GetModeData, + Tcp4Configure, + Tcp4Routes, +@@ -30,7 +30,7 @@ EFI_TCP4_PROTOCOL gTcp4ProtocolTemplate = { + Tcp4Poll + }; + +-EFI_TCP6_PROTOCOL gTcp6ProtocolTemplate = { ++EFI_TCP6_PROTOCOL gTcp6ProtocolTemplate = { + Tcp6GetModeData, + Tcp6Configure, + Tcp6Connect, +@@ -42,7 +42,7 @@ EFI_TCP6_PROTOCOL gTcp6ProtocolTemplate = { + Tcp6Poll + }; + +-SOCK_INIT_DATA mTcpDefaultSockData = { ++SOCK_INIT_DATA mTcpDefaultSockData = { + SockStream, + SO_CLOSED, + NULL, +@@ -60,7 +60,7 @@ SOCK_INIT_DATA mTcpDefaultSockData = { + NULL, + }; + +-EFI_DRIVER_BINDING_PROTOCOL gTcp4DriverBinding = { ++EFI_DRIVER_BINDING_PROTOCOL gTcp4DriverBinding = { + Tcp4DriverBindingSupported, + Tcp4DriverBindingStart, + Tcp4DriverBindingStop, +@@ -69,7 +69,7 @@ EFI_DRIVER_BINDING_PROTOCOL gTcp4DriverBinding = { + NULL + }; + +-EFI_DRIVER_BINDING_PROTOCOL gTcp6DriverBinding = { ++EFI_DRIVER_BINDING_PROTOCOL gTcp6DriverBinding = { + Tcp6DriverBindingSupported, + Tcp6DriverBindingStart, + Tcp6DriverBindingStop, +@@ -83,7 +83,6 @@ EFI_SERVICE_BINDING_PROTOCOL gTcpServiceBinding = { + TcpServiceBindingDestroyChild + }; + +- + /** + Create and start the heartbeat timer for the TCP driver. + +@@ -101,7 +100,6 @@ TcpCreateTimer ( + Status = EFI_SUCCESS; + + if (mTcpTimer.RefCnt == 0) { +- + Status = gBS->CreateEvent ( + EVT_TIMER | EVT_NOTIFY_SIGNAL, + TPL_NOTIFY, +@@ -110,17 +108,15 @@ TcpCreateTimer ( + &mTcpTimer.TimerEvent + ); + if (!EFI_ERROR (Status)) { +- + Status = gBS->SetTimer ( + mTcpTimer.TimerEvent, + TimerPeriodic, +- (UINT64) (TICKS_PER_SECOND / TCP_TICK_HZ) ++ (UINT64)(TICKS_PER_SECOND / TCP_TICK_HZ) + ); + } + } + + if (!EFI_ERROR (Status)) { +- + mTcpTimer.RefCnt++; + } + +@@ -209,7 +205,7 @@ TcpDriverEntryPoint ( + // + Seed = NetRandomInitSeed (); + mTcpGlobalIss = NET_RANDOM (Seed) % mTcpGlobalIss; +- mTcp4RandomPort = (UINT16) (TCP_PORT_KNOWN + (NET_RANDOM (Seed) % TCP_PORT_KNOWN)); ++ mTcp4RandomPort = (UINT16)(TCP_PORT_KNOWN + (NET_RANDOM (Seed) % TCP_PORT_KNOWN)); + mTcp6RandomPort = mTcp4RandomPort; + + return EFI_SUCCESS; +@@ -233,11 +229,11 @@ TcpCreateService ( + IN UINT8 IpVersion + ) + { +- EFI_STATUS Status; +- EFI_GUID *IpServiceBindingGuid; +- EFI_GUID *TcpServiceBindingGuid; +- TCP_SERVICE_DATA *TcpServiceData; +- IP_IO_OPEN_DATA OpenData; ++ EFI_STATUS Status; ++ EFI_GUID *IpServiceBindingGuid; ++ EFI_GUID *TcpServiceBindingGuid; ++ TCP_SERVICE_DATA *TcpServiceData; ++ IP_IO_OPEN_DATA OpenData; + + if (IpVersion == IP_VERSION_4) { + IpServiceBindingGuid = &gEfiIp4ServiceBindingProtocolGuid; +@@ -279,10 +275,10 @@ TcpCreateService ( + return EFI_OUT_OF_RESOURCES; + } + +- TcpServiceData->Signature = TCP_DRIVER_SIGNATURE; +- TcpServiceData->ControllerHandle = Controller; +- TcpServiceData->DriverBindingHandle = Image; +- TcpServiceData->IpVersion = IpVersion; ++ TcpServiceData->Signature = TCP_DRIVER_SIGNATURE; ++ TcpServiceData->ControllerHandle = Controller; ++ TcpServiceData->DriverBindingHandle = Image; ++ TcpServiceData->IpVersion = IpVersion; + CopyMem ( + &TcpServiceData->ServiceBinding, + &gTcpServiceBinding, +@@ -295,7 +291,6 @@ TcpCreateService ( + goto ON_ERROR; + } + +- + InitializeListHead (&TcpServiceData->SocketList); + ZeroMem (&OpenData, sizeof (IP_IO_OPEN_DATA)); + +@@ -315,8 +310,8 @@ TcpCreateService ( + OpenData.IpConfigData.Ip6CfgData.DefaultProtocol = EFI_IP_PROTO_TCP; + } + +- OpenData.PktRcvdNotify = TcpRxCallback; +- Status = IpIoOpen (TcpServiceData->IpIo, &OpenData); ++ OpenData.PktRcvdNotify = TcpRxCallback; ++ Status = IpIoOpen (TcpServiceData->IpIo, &OpenData); + if (EFI_ERROR (Status)) { + goto ON_ERROR; + } +@@ -365,8 +360,8 @@ ON_ERROR: + EFI_STATUS + EFIAPI + TcpDestroyChildEntryInHandleBuffer ( +- IN LIST_ENTRY *Entry, +- IN VOID *Context ++ IN LIST_ENTRY *Entry, ++ IN VOID *Context + ) + { + SOCKET *Sock; +@@ -374,14 +369,14 @@ TcpDestroyChildEntryInHandleBuffer ( + UINTN NumberOfChildren; + EFI_HANDLE *ChildHandleBuffer; + +- if (Entry == NULL || Context == NULL) { ++ if ((Entry == NULL) || (Context == NULL)) { + return EFI_INVALID_PARAMETER; + } + +- Sock = NET_LIST_USER_STRUCT_S (Entry, SOCKET, Link, SOCK_SIGNATURE); +- ServiceBinding = ((TCP_DESTROY_CHILD_IN_HANDLE_BUF_CONTEXT *) Context)->ServiceBinding; +- NumberOfChildren = ((TCP_DESTROY_CHILD_IN_HANDLE_BUF_CONTEXT *) Context)->NumberOfChildren; +- ChildHandleBuffer = ((TCP_DESTROY_CHILD_IN_HANDLE_BUF_CONTEXT *) Context)->ChildHandleBuffer; ++ Sock = NET_LIST_USER_STRUCT_S (Entry, SOCKET, Link, SOCK_SIGNATURE); ++ ServiceBinding = ((TCP_DESTROY_CHILD_IN_HANDLE_BUF_CONTEXT *)Context)->ServiceBinding; ++ NumberOfChildren = ((TCP_DESTROY_CHILD_IN_HANDLE_BUF_CONTEXT *)Context)->NumberOfChildren; ++ ChildHandleBuffer = ((TCP_DESTROY_CHILD_IN_HANDLE_BUF_CONTEXT *)Context)->ChildHandleBuffer; + + if (!NetIsInHandleBuffer (Sock->SockHandle, NumberOfChildren, ChildHandleBuffer)) { + return EFI_SUCCESS; +@@ -415,13 +410,13 @@ TcpDestroyService ( + IN UINT8 IpVersion + ) + { +- EFI_HANDLE NicHandle; +- EFI_GUID *IpProtocolGuid; +- EFI_GUID *ServiceBindingGuid; +- EFI_SERVICE_BINDING_PROTOCOL *ServiceBinding; +- TCP_SERVICE_DATA *TcpServiceData; +- EFI_STATUS Status; +- LIST_ENTRY *List; ++ EFI_HANDLE NicHandle; ++ EFI_GUID *IpProtocolGuid; ++ EFI_GUID *ServiceBindingGuid; ++ EFI_SERVICE_BINDING_PROTOCOL *ServiceBinding; ++ TCP_SERVICE_DATA *TcpServiceData; ++ EFI_STATUS Status; ++ LIST_ENTRY *List; + TCP_DESTROY_CHILD_IN_HANDLE_BUF_CONTEXT Context; + + ASSERT ((IpVersion == IP_VERSION_4) || (IpVersion == IP_VERSION_6)); +@@ -442,7 +437,7 @@ TcpDestroyService ( + Status = gBS->OpenProtocol ( + NicHandle, + ServiceBindingGuid, +- (VOID **) &ServiceBinding, ++ (VOID **)&ServiceBinding, + ImageHandle, + Controller, + EFI_OPEN_PROTOCOL_GET_PROTOCOL +@@ -454,16 +449,16 @@ TcpDestroyService ( + TcpServiceData = TCP_SERVICE_FROM_THIS (ServiceBinding); + + if (NumberOfChildren != 0) { +- List = &TcpServiceData->SocketList; +- Context.ServiceBinding = ServiceBinding; +- Context.NumberOfChildren = NumberOfChildren; ++ List = &TcpServiceData->SocketList; ++ Context.ServiceBinding = ServiceBinding; ++ Context.NumberOfChildren = NumberOfChildren; + Context.ChildHandleBuffer = ChildHandleBuffer; +- Status = NetDestroyLinkList ( +- List, +- TcpDestroyChildEntryInHandleBuffer, +- &Context, +- NULL +- ); ++ Status = NetDestroyLinkList ( ++ List, ++ TcpDestroyChildEntryInHandleBuffer, ++ &Context, ++ NULL ++ ); + } else if (IsListEmpty (&TcpServiceData->SocketList)) { + // + // Uninstall TCP servicebinding protocol +@@ -758,7 +753,7 @@ TcpCreateSocketCallback ( + IpProtocolGuid = &gEfiIp6ProtocolGuid; + } + +- TcpServiceData = ((TCP_PROTO_DATA *) This->ProtoReserved)->TcpService; ++ TcpServiceData = ((TCP_PROTO_DATA *)This->ProtoReserved)->TcpService; + + // + // Open the default IP protocol of IP_IO BY_DRIVER. +@@ -781,7 +776,7 @@ TcpCreateSocketCallback ( + Status = gBS->OpenProtocol ( + TcpServiceData->ControllerHandle, + &gEfiDevicePathProtocolGuid, +- (VOID **) &This->ParentDevicePath, ++ (VOID **)&This->ParentDevicePath, + TcpServiceData->DriverBindingHandle, + This->SockHandle, + EFI_OPEN_PROTOCOL_GET_PROTOCOL +@@ -825,7 +820,7 @@ TcpDestroySocketCallback ( + IpProtocolGuid = &gEfiIp6ProtocolGuid; + } + +- TcpServiceData = ((TCP_PROTO_DATA *) This->ProtoReserved)->TcpService; ++ TcpServiceData = ((TCP_PROTO_DATA *)This->ProtoReserved)->TcpService; + + // + // Remove this node from the list. +@@ -876,7 +871,7 @@ TcpServiceBindingCreateChild ( + EFI_STATUS Status; + EFI_TPL OldTpl; + +- if (NULL == This || NULL == ChildHandle) { ++ if ((NULL == This) || (NULL == ChildHandle)) { + return EFI_INVALID_PARAMETER; + } + +@@ -914,7 +909,7 @@ TcpServiceBindingCreateChild ( + *ChildHandle = Sock->SockHandle; + } + +- mTcpDefaultSockData.ProtoData = NULL; ++ mTcpDefaultSockData.ProtoData = NULL; + + gBS->RestoreTPL (OldTpl); + return Status; +@@ -949,7 +944,7 @@ TcpServiceBindingDestroyChild ( + VOID *Tcp; + SOCKET *Sock; + +- if (NULL == This || NULL == ChildHandle) { ++ if ((NULL == This) || (NULL == ChildHandle)) { + return EFI_INVALID_PARAMETER; + } + +diff --git a/NetworkPkg/TcpDxe/TcpMain.h b/NetworkPkg/TcpDxe/TcpMain.h +index 35f12a16a8..0709298bbf 100644 +--- a/NetworkPkg/TcpDxe/TcpMain.h ++++ b/NetworkPkg/TcpDxe/TcpMain.h +@@ -3,7 +3,6 @@ + It is the common head file for all Tcp*.c in TCP driver. + + Copyright (c) 2009 - 2016, Intel Corporation. All rights reserved.
+- + SPDX-License-Identifier: BSD-2-Clause-Patent + + **/ +@@ -29,19 +28,19 @@ extern EFI_COMPONENT_NAME_PROTOCOL gTcpComponentName; + extern EFI_COMPONENT_NAME2_PROTOCOL gTcpComponentName2; + extern EFI_UNICODE_STRING_TABLE *gTcpControllerNameTable; + +-extern LIST_ENTRY mTcpRunQue; +-extern LIST_ENTRY mTcpListenQue; +-extern TCP_SEQNO mTcpGlobalIss; +-extern UINT32 mTcpTick; ++extern LIST_ENTRY mTcpRunQue; ++extern LIST_ENTRY mTcpListenQue; ++extern TCP_SEQNO mTcpGlobalIss; ++extern UINT32 mTcpTick; + + /// + /// 30 seconds. + /// +-#define TCP6_KEEP_NEIGHBOR_TIME 30 ++#define TCP6_KEEP_NEIGHBOR_TIME 30 + /// + /// 5 seconds, since 1 tick equals 200ms. + /// +-#define TCP6_REFRESH_NEIGHBOR_TICK 25 ++#define TCP6_REFRESH_NEIGHBOR_TICK 25 + + #define TCP_EXPIRE_TIME 65535 + +@@ -53,43 +52,44 @@ extern UINT32 mTcpTick; + #define TCP_ISS_INCREMENT_1 2048 + #define TCP_ISS_INCREMENT_2 100 + ++ + typedef union { +- EFI_TCP4_CONFIG_DATA Tcp4CfgData; +- EFI_TCP6_CONFIG_DATA Tcp6CfgData; ++ EFI_TCP4_CONFIG_DATA Tcp4CfgData; ++ EFI_TCP6_CONFIG_DATA Tcp6CfgData; + } TCP_CONFIG_DATA; + + typedef union { +- EFI_TCP4_ACCESS_POINT Tcp4Ap; +- EFI_TCP6_ACCESS_POINT Tcp6Ap; ++ EFI_TCP4_ACCESS_POINT Tcp4Ap; ++ EFI_TCP6_ACCESS_POINT Tcp6Ap; + } TCP_ACCESS_POINT; + + typedef struct _TCP4_MODE_DATA { +- EFI_TCP4_CONNECTION_STATE *Tcp4State; +- EFI_TCP4_CONFIG_DATA *Tcp4ConfigData; +- EFI_IP4_MODE_DATA *Ip4ModeData; +- EFI_MANAGED_NETWORK_CONFIG_DATA *MnpConfigData; +- EFI_SIMPLE_NETWORK_MODE *SnpModeData; ++ EFI_TCP4_CONNECTION_STATE *Tcp4State; ++ EFI_TCP4_CONFIG_DATA *Tcp4ConfigData; ++ EFI_IP4_MODE_DATA *Ip4ModeData; ++ EFI_MANAGED_NETWORK_CONFIG_DATA *MnpConfigData; ++ EFI_SIMPLE_NETWORK_MODE *SnpModeData; + } TCP4_MODE_DATA; + + typedef struct _TCP6_MODE_DATA { +- EFI_TCP6_CONNECTION_STATE *Tcp6State; +- EFI_TCP6_CONFIG_DATA *Tcp6ConfigData; +- EFI_IP6_MODE_DATA *Ip6ModeData; +- EFI_MANAGED_NETWORK_CONFIG_DATA *MnpConfigData; +- EFI_SIMPLE_NETWORK_MODE *SnpModeData; ++ EFI_TCP6_CONNECTION_STATE *Tcp6State; ++ EFI_TCP6_CONFIG_DATA *Tcp6ConfigData; ++ EFI_IP6_MODE_DATA *Ip6ModeData; ++ EFI_MANAGED_NETWORK_CONFIG_DATA *MnpConfigData; ++ EFI_SIMPLE_NETWORK_MODE *SnpModeData; + } TCP6_MODE_DATA; + + typedef struct _TCP4_ROUTE_INFO { +- BOOLEAN DeleteRoute; +- EFI_IPv4_ADDRESS *SubnetAddress; +- EFI_IPv4_ADDRESS *SubnetMask; +- EFI_IPv4_ADDRESS *GatewayAddress; ++ BOOLEAN DeleteRoute; ++ EFI_IPv4_ADDRESS *SubnetAddress; ++ EFI_IPv4_ADDRESS *SubnetMask; ++ EFI_IPv4_ADDRESS *GatewayAddress; + } TCP4_ROUTE_INFO; + + typedef struct { +- EFI_SERVICE_BINDING_PROTOCOL *ServiceBinding; +- UINTN NumberOfChildren; +- EFI_HANDLE *ChildHandleBuffer; ++ EFI_SERVICE_BINDING_PROTOCOL *ServiceBinding; ++ UINTN NumberOfChildren; ++ EFI_HANDLE *ChildHandleBuffer; + } TCP_DESTROY_CHILD_IN_HANDLE_BUF_CONTEXT; + + // +@@ -122,12 +122,12 @@ typedef struct { + EFI_STATUS + EFIAPI + Tcp4GetModeData ( +- IN EFI_TCP4_PROTOCOL *This, +- OUT EFI_TCP4_CONNECTION_STATE *Tcp4State OPTIONAL, +- OUT EFI_TCP4_CONFIG_DATA *Tcp4ConfigData OPTIONAL, +- OUT EFI_IP4_MODE_DATA *Ip4ModeData OPTIONAL, +- OUT EFI_MANAGED_NETWORK_CONFIG_DATA *MnpConfigData OPTIONAL, +- OUT EFI_SIMPLE_NETWORK_MODE *SnpModeData OPTIONAL ++ IN EFI_TCP4_PROTOCOL *This, ++ OUT EFI_TCP4_CONNECTION_STATE *Tcp4State OPTIONAL, ++ OUT EFI_TCP4_CONFIG_DATA *Tcp4ConfigData OPTIONAL, ++ OUT EFI_IP4_MODE_DATA *Ip4ModeData OPTIONAL, ++ OUT EFI_MANAGED_NETWORK_CONFIG_DATA *MnpConfigData OPTIONAL, ++ OUT EFI_SIMPLE_NETWORK_MODE *SnpModeData OPTIONAL + ); + + /** +@@ -155,8 +155,8 @@ Tcp4GetModeData ( + EFI_STATUS + EFIAPI + Tcp4Configure ( +- IN EFI_TCP4_PROTOCOL * This, +- IN EFI_TCP4_CONFIG_DATA * TcpConfigData OPTIONAL ++ IN EFI_TCP4_PROTOCOL *This, ++ IN EFI_TCP4_CONFIG_DATA *TcpConfigData OPTIONAL + ); + + /** +@@ -187,11 +187,11 @@ Tcp4Configure ( + EFI_STATUS + EFIAPI + Tcp4Routes ( +- IN EFI_TCP4_PROTOCOL *This, +- IN BOOLEAN DeleteRoute, +- IN EFI_IPv4_ADDRESS *SubnetAddress, +- IN EFI_IPv4_ADDRESS *SubnetMask, +- IN EFI_IPv4_ADDRESS *GatewayAddress ++ IN EFI_TCP4_PROTOCOL *This, ++ IN BOOLEAN DeleteRoute, ++ IN EFI_IPv4_ADDRESS *SubnetAddress, ++ IN EFI_IPv4_ADDRESS *SubnetMask, ++ IN EFI_IPv4_ADDRESS *GatewayAddress + ); + + /** +@@ -216,8 +216,8 @@ Tcp4Routes ( + EFI_STATUS + EFIAPI + Tcp4Connect ( +- IN EFI_TCP4_PROTOCOL *This, +- IN EFI_TCP4_CONNECTION_TOKEN *ConnectionToken ++ IN EFI_TCP4_PROTOCOL *This, ++ IN EFI_TCP4_CONNECTION_TOKEN *ConnectionToken + ); + + /** +@@ -243,8 +243,8 @@ Tcp4Connect ( + EFI_STATUS + EFIAPI + Tcp4Accept ( +- IN EFI_TCP4_PROTOCOL *This, +- IN EFI_TCP4_LISTEN_TOKEN *ListenToken ++ IN EFI_TCP4_PROTOCOL *This, ++ IN EFI_TCP4_LISTEN_TOKEN *ListenToken + ); + + /** +@@ -279,8 +279,8 @@ Tcp4Accept ( + EFI_STATUS + EFIAPI + Tcp4Transmit ( +- IN EFI_TCP4_PROTOCOL *This, +- IN EFI_TCP4_IO_TOKEN *Token ++ IN EFI_TCP4_PROTOCOL *This, ++ IN EFI_TCP4_IO_TOKEN *Token + ); + + /** +@@ -317,8 +317,8 @@ Tcp4Transmit ( + EFI_STATUS + EFIAPI + Tcp4Receive ( +- IN EFI_TCP4_PROTOCOL *This, +- IN EFI_TCP4_IO_TOKEN *Token ++ IN EFI_TCP4_PROTOCOL *This, ++ IN EFI_TCP4_IO_TOKEN *Token + ); + + /** +@@ -346,8 +346,8 @@ Tcp4Receive ( + EFI_STATUS + EFIAPI + Tcp4Close ( +- IN EFI_TCP4_PROTOCOL *This, +- IN EFI_TCP4_CLOSE_TOKEN *CloseToken ++ IN EFI_TCP4_PROTOCOL *This, ++ IN EFI_TCP4_CLOSE_TOKEN *CloseToken + ); + + /** +@@ -377,8 +377,8 @@ Tcp4Close ( + EFI_STATUS + EFIAPI + Tcp4Cancel ( +- IN EFI_TCP4_PROTOCOL *This, +- IN EFI_TCP4_COMPLETION_TOKEN *Token OPTIONAL ++ IN EFI_TCP4_PROTOCOL *This, ++ IN EFI_TCP4_COMPLETION_TOKEN *Token OPTIONAL + ); + + /** +@@ -398,7 +398,7 @@ Tcp4Cancel ( + EFI_STATUS + EFIAPI + Tcp4Poll ( +- IN EFI_TCP4_PROTOCOL *This ++ IN EFI_TCP4_PROTOCOL *This + ); + + // +@@ -436,12 +436,12 @@ Tcp4Poll ( + EFI_STATUS + EFIAPI + Tcp6GetModeData ( +- IN EFI_TCP6_PROTOCOL *This, +- OUT EFI_TCP6_CONNECTION_STATE *Tcp6State OPTIONAL, +- OUT EFI_TCP6_CONFIG_DATA *Tcp6ConfigData OPTIONAL, +- OUT EFI_IP6_MODE_DATA *Ip6ModeData OPTIONAL, +- OUT EFI_MANAGED_NETWORK_CONFIG_DATA *MnpConfigData OPTIONAL, +- OUT EFI_SIMPLE_NETWORK_MODE *SnpModeData OPTIONAL ++ IN EFI_TCP6_PROTOCOL *This, ++ OUT EFI_TCP6_CONNECTION_STATE *Tcp6State OPTIONAL, ++ OUT EFI_TCP6_CONFIG_DATA *Tcp6ConfigData OPTIONAL, ++ OUT EFI_IP6_MODE_DATA *Ip6ModeData OPTIONAL, ++ OUT EFI_MANAGED_NETWORK_CONFIG_DATA *MnpConfigData OPTIONAL, ++ OUT EFI_SIMPLE_NETWORK_MODE *SnpModeData OPTIONAL + ); + + /** +@@ -494,8 +494,8 @@ Tcp6GetModeData ( + EFI_STATUS + EFIAPI + Tcp6Configure ( +- IN EFI_TCP6_PROTOCOL *This, +- IN EFI_TCP6_CONFIG_DATA *Tcp6ConfigData OPTIONAL ++ IN EFI_TCP6_PROTOCOL *This, ++ IN EFI_TCP6_CONFIG_DATA *Tcp6ConfigData OPTIONAL + ); + + /** +@@ -531,8 +531,8 @@ Tcp6Configure ( + EFI_STATUS + EFIAPI + Tcp6Connect ( +- IN EFI_TCP6_PROTOCOL *This, +- IN EFI_TCP6_CONNECTION_TOKEN *ConnectionToken ++ IN EFI_TCP6_PROTOCOL *This, ++ IN EFI_TCP6_CONNECTION_TOKEN *ConnectionToken + ); + + /** +@@ -574,8 +574,8 @@ Tcp6Connect ( + EFI_STATUS + EFIAPI + Tcp6Accept ( +- IN EFI_TCP6_PROTOCOL *This, +- IN EFI_TCP6_LISTEN_TOKEN *ListenToken ++ IN EFI_TCP6_PROTOCOL *This, ++ IN EFI_TCP6_LISTEN_TOKEN *ListenToken + ); + + /** +@@ -618,8 +618,8 @@ Tcp6Accept ( + EFI_STATUS + EFIAPI + Tcp6Transmit ( +- IN EFI_TCP6_PROTOCOL *This, +- IN EFI_TCP6_IO_TOKEN *Token ++ IN EFI_TCP6_PROTOCOL *This, ++ IN EFI_TCP6_IO_TOKEN *Token + ); + + /** +@@ -671,8 +671,8 @@ Tcp6Transmit ( + EFI_STATUS + EFIAPI + Tcp6Receive ( +- IN EFI_TCP6_PROTOCOL *This, +- IN EFI_TCP6_IO_TOKEN *Token ++ IN EFI_TCP6_PROTOCOL *This, ++ IN EFI_TCP6_IO_TOKEN *Token + ); + + /** +@@ -705,8 +705,8 @@ Tcp6Receive ( + EFI_STATUS + EFIAPI + Tcp6Close ( +- IN EFI_TCP6_PROTOCOL *This, +- IN EFI_TCP6_CLOSE_TOKEN *CloseToken ++ IN EFI_TCP6_PROTOCOL *This, ++ IN EFI_TCP6_CLOSE_TOKEN *CloseToken + ); + + /** +@@ -747,8 +747,8 @@ Tcp6Close ( + EFI_STATUS + EFIAPI + Tcp6Cancel ( +- IN EFI_TCP6_PROTOCOL *This, +- IN EFI_TCP6_COMPLETION_TOKEN *Token OPTIONAL ++ IN EFI_TCP6_PROTOCOL *This, ++ IN EFI_TCP6_COMPLETION_TOKEN *Token OPTIONAL + ); + + /** +@@ -771,7 +771,7 @@ Tcp6Cancel ( + EFI_STATUS + EFIAPI + Tcp6Poll ( +- IN EFI_TCP6_PROTOCOL *This ++ IN EFI_TCP6_PROTOCOL *This + ); + + #endif +diff --git a/NetworkPkg/TcpDxe/TcpMisc.c b/NetworkPkg/TcpDxe/TcpMisc.c +index 73ed33de85..3fa9d90d9f 100644 +--- a/NetworkPkg/TcpDxe/TcpMisc.c ++++ b/NetworkPkg/TcpDxe/TcpMisc.c +@@ -3,26 +3,25 @@ + + (C) Copyright 2014 Hewlett-Packard Development Company, L.P.
+ Copyright (c) 2009 - 2017, Intel Corporation. All rights reserved.
+- + SPDX-License-Identifier: BSD-2-Clause-Patent + + **/ + + #include "TcpMain.h" + +-LIST_ENTRY mTcpRunQue = { ++LIST_ENTRY mTcpRunQue = { + &mTcpRunQue, + &mTcpRunQue + }; + +-LIST_ENTRY mTcpListenQue = { ++LIST_ENTRY mTcpListenQue = { + &mTcpListenQue, + &mTcpListenQue + }; + + TCP_SEQNO mTcpGlobalIss = TCP_BASE_ISS; + +-CHAR16 *mTcpStateName[] = { ++CHAR16 *mTcpStateName[] = { + L"TCP_CLOSED", + L"TCP_LISTEN", + L"TCP_SYN_SENT", +@@ -36,7 +35,6 @@ CHAR16 *mTcpStateName[] = { + L"TCP_LAST_ACK" + }; + +- + /** + Initialize the Tcb local related members. + +@@ -53,18 +51,18 @@ TcpInitTcbLocal ( + // + if (Tcb->Sk->IpVersion == IP_VERSION_4) { + Tcb->HeadSum = NetPseudoHeadChecksum ( +- Tcb->LocalEnd.Ip.Addr[0], +- Tcb->RemoteEnd.Ip.Addr[0], +- 0x06, +- 0 +- ); ++ Tcb->LocalEnd.Ip.Addr[0], ++ Tcb->RemoteEnd.Ip.Addr[0], ++ 0x06, ++ 0 ++ ); + } else { + Tcb->HeadSum = NetIp6PseudoHeadChecksum ( +- &Tcb->LocalEnd.Ip.v6, +- &Tcb->RemoteEnd.Ip.v6, +- 0x06, +- 0 +- ); ++ &Tcb->LocalEnd.Ip.v6, ++ &Tcb->RemoteEnd.Ip.v6, ++ 0x06, ++ 0 ++ ); + } + + Tcb->Iss = TcpGetIss (); +@@ -79,7 +77,7 @@ TcpInitTcbLocal ( + // + // First window size is never scaled + // +- Tcb->RcvWndScale = 0; ++ Tcb->RcvWndScale = 0; + Tcb->RetxmitSeqMax = 0; + + Tcb->ProbeTimerOn = FALSE; +@@ -95,9 +93,9 @@ TcpInitTcbLocal ( + **/ + VOID + TcpInitTcbPeer ( +- IN OUT TCP_CB *Tcb, +- IN TCP_SEG *Seg, +- IN TCP_OPTION *Opt ++ IN OUT TCP_CB *Tcb, ++ IN TCP_SEG *Seg, ++ IN TCP_OPTION *Opt + ) + { + UINT16 RcvMss; +@@ -105,9 +103,9 @@ TcpInitTcbPeer ( + ASSERT ((Tcb != NULL) && (Seg != NULL) && (Opt != NULL)); + ASSERT (TCP_FLG_ON (Seg->Flag, TCP_FLG_SYN)); + +- Tcb->SndWnd = Seg->Wnd; +- Tcb->SndWndMax = Tcb->SndWnd; +- Tcb->SndWl1 = Seg->Seq; ++ Tcb->SndWnd = Seg->Wnd; ++ Tcb->SndWndMax = Tcb->SndWnd; ++ Tcb->SndWl1 = Seg->Seq; + + if (TCP_FLG_ON (Seg->Flag, TCP_FLG_ACK)) { + Tcb->SndWl2 = Seg->Ack; +@@ -116,13 +114,12 @@ TcpInitTcbPeer ( + } + + if (TCP_FLG_ON (Opt->Flag, TCP_OPTION_RCVD_MSS)) { +- Tcb->SndMss = (UINT16) MAX (64, Opt->Mss); ++ Tcb->SndMss = (UINT16)MAX (64, Opt->Mss); + +- RcvMss = TcpGetRcvMss (Tcb->Sk); ++ RcvMss = TcpGetRcvMss (Tcb->Sk); + if (Tcb->SndMss > RcvMss) { + Tcb->SndMss = RcvMss; + } +- + } else { + // + // One end doesn't support MSS option, use default. +@@ -130,7 +127,7 @@ TcpInitTcbPeer ( + Tcb->RcvMss = 536; + } + +- Tcb->CWnd = Tcb->SndMss; ++ Tcb->CWnd = Tcb->SndMss; + + Tcb->Irs = Seg->Seq; + Tcb->RcvNxt = Tcb->Irs + 1; +@@ -138,12 +135,10 @@ TcpInitTcbPeer ( + Tcb->RcvWl2 = Tcb->RcvNxt; + + if (TCP_FLG_ON (Opt->Flag, TCP_OPTION_RCVD_WS) && !TCP_FLG_ON (Tcb->CtrlFlag, TCP_CTRL_NO_WS)) { ++ Tcb->SndWndScale = Opt->WndScale; + +- Tcb->SndWndScale = Opt->WndScale; +- +- Tcb->RcvWndScale = TcpComputeScale (Tcb); ++ Tcb->RcvWndScale = TcpComputeScale (Tcb); + TCP_SET_FLG (Tcb->CtrlFlag, TCP_CTRL_RCVD_WS); +- + } else { + // + // One end doesn't support window scale option. use zero. +@@ -152,7 +147,6 @@ TcpInitTcbPeer ( + } + + if (TCP_FLG_ON (Opt->Flag, TCP_OPTION_RCVD_TS) && !TCP_FLG_ON (Tcb->CtrlFlag, TCP_CTRL_NO_TS)) { +- + TCP_SET_FLG (Tcb->CtrlFlag, TCP_CTRL_SND_TS); + TCP_SET_FLG (Tcb->CtrlFlag, TCP_CTRL_RCVD_TS); + +@@ -189,9 +183,9 @@ TcpIsIpEqual ( + ASSERT ((Version == IP_VERSION_4) || (Version == IP_VERSION_6)); + + if (Version == IP_VERSION_4) { +- return (BOOLEAN) (Ip1->Addr[0] == Ip2->Addr[0]); ++ return (BOOLEAN)(Ip1->Addr[0] == Ip2->Addr[0]); + } else { +- return (BOOLEAN) EFI_IP6_EQUAL (&Ip1->v6, &Ip2->v6); ++ return (BOOLEAN)EFI_IP6_EQUAL (&Ip1->v6, &Ip2->v6); + } + } + +@@ -208,17 +202,17 @@ TcpIsIpEqual ( + **/ + BOOLEAN + TcpIsIpZero ( +- IN EFI_IP_ADDRESS *Ip, +- IN UINT8 Version ++ IN EFI_IP_ADDRESS *Ip, ++ IN UINT8 Version + ) + { + ASSERT ((Version == IP_VERSION_4) || (Version == IP_VERSION_6)); + + if (Version == IP_VERSION_4) { +- return (BOOLEAN) (Ip->Addr[0] == 0); ++ return (BOOLEAN)(Ip->Addr[0] == 0); + } else { +- return (BOOLEAN) ((Ip->Addr[0] == 0) && (Ip->Addr[1] == 0) && +- (Ip->Addr[2] == 0) && (Ip->Addr[3] == 0)); ++ return (BOOLEAN)((Ip->Addr[0] == 0) && (Ip->Addr[1] == 0) && ++ (Ip->Addr[2] == 0) && (Ip->Addr[3] == 0)); + } + } + +@@ -236,16 +230,16 @@ TcpIsIpZero ( + **/ + TCP_CB * + TcpLocateListenTcb ( +- IN TCP_PEER *Local, +- IN TCP_PEER *Remote, +- IN UINT8 Version ++ IN TCP_PEER *Local, ++ IN TCP_PEER *Remote, ++ IN UINT8 Version + ) + { +- LIST_ENTRY *Entry; +- TCP_CB *Node; +- TCP_CB *Match; +- INTN Last; +- INTN Cur; ++ LIST_ENTRY *Entry; ++ TCP_CB *Node; ++ TCP_CB *Match; ++ INTN Last; ++ INTN Cur; + + Last = 4; + Match = NULL; +@@ -257,8 +251,8 @@ TcpLocateListenTcb ( + (Local->Port != Node->LocalEnd.Port) || + !TCP_PEER_MATCH (Remote, &Node->RemoteEnd, Version) || + !TCP_PEER_MATCH (Local, &Node->LocalEnd, Version) +- ) { +- ++ ) ++ { + continue; + } + +@@ -311,9 +305,9 @@ TcpFindTcbByPeer ( + IN UINT8 Version + ) + { +- TCP_PORTNO LocalPort; +- LIST_ENTRY *Entry; +- TCP_CB *Tcb; ++ TCP_PORTNO LocalPort; ++ LIST_ENTRY *Entry; ++ TCP_CB *Tcb; + + ASSERT ((Addr != NULL) && (Port != 0)); + +@@ -323,10 +317,10 @@ TcpFindTcbByPeer ( + Tcb = NET_LIST_USER_STRUCT (Entry, TCP_CB, List); + + if ((Version == Tcb->Sk->IpVersion) && +- TcpIsIpEqual (Addr, &Tcb->LocalEnd.Ip, Version) && ++ TcpIsIpEqual (Addr, &Tcb->LocalEnd.Ip, Version) && + (LocalPort == Tcb->LocalEnd.Port) +- ) { +- ++ ) ++ { + return TRUE; + } + } +@@ -335,10 +329,10 @@ TcpFindTcbByPeer ( + Tcb = NET_LIST_USER_STRUCT (Entry, TCP_CB, List); + + if ((Version == Tcb->Sk->IpVersion) && +- TcpIsIpEqual (Addr, &Tcb->LocalEnd.Ip, Version) && ++ TcpIsIpEqual (Addr, &Tcb->LocalEnd.Ip, Version) && + (LocalPort == Tcb->LocalEnd.Port) +- ) { +- ++ ) ++ { + return TRUE; + } + } +@@ -370,10 +364,10 @@ TcpLocateTcb ( + IN BOOLEAN Syn + ) + { +- TCP_PEER Local; +- TCP_PEER Remote; +- LIST_ENTRY *Entry; +- TCP_CB *Tcb; ++ TCP_PEER Local; ++ TCP_PEER Remote; ++ LIST_ENTRY *Entry; ++ TCP_CB *Tcb; + + Local.Port = LocalPort; + Remote.Port = RemotePort; +@@ -390,8 +384,8 @@ TcpLocateTcb ( + if ((Version == Tcb->Sk->IpVersion) && + TCP_PEER_EQUAL (&Remote, &Tcb->RemoteEnd, Version) && + TCP_PEER_EQUAL (&Local, &Tcb->LocalEnd, Version) +- ) { +- ++ ) ++ { + RemoveEntryList (&Tcb->List); + InsertHeadList (&mTcpRunQue, &Tcb->List); + +@@ -420,20 +414,20 @@ TcpLocateTcb ( + **/ + INTN + TcpInsertTcb ( +- IN TCP_CB *Tcb ++ IN TCP_CB *Tcb + ) + { +- LIST_ENTRY *Entry; +- LIST_ENTRY *Head; +- TCP_CB *Node; ++ LIST_ENTRY *Entry; ++ LIST_ENTRY *Head; ++ TCP_CB *Node; + + ASSERT ( + (Tcb != NULL) && + ( +- (Tcb->State == TCP_LISTEN) || +- (Tcb->State == TCP_SYN_SENT) || +- (Tcb->State == TCP_SYN_RCVD) || +- (Tcb->State == TCP_CLOSED) ++ (Tcb->State == TCP_LISTEN) || ++ (Tcb->State == TCP_SYN_SENT) || ++ (Tcb->State == TCP_SYN_RCVD) || ++ (Tcb->State == TCP_CLOSED) + ) + ); + +@@ -455,15 +449,14 @@ TcpInsertTcb ( + + if (TCP_PEER_EQUAL (&Tcb->LocalEnd, &Node->LocalEnd, Tcb->Sk->IpVersion) && + TCP_PEER_EQUAL (&Tcb->RemoteEnd, &Node->RemoteEnd, Tcb->Sk->IpVersion) +- ) { +- ++ ) ++ { + return -1; + } + } + + InsertHeadList (Head, &Tcb->List); + +- + return 0; + } + +@@ -477,10 +470,10 @@ TcpInsertTcb ( + **/ + TCP_CB * + TcpCloneTcb ( +- IN TCP_CB *Tcb ++ IN TCP_CB *Tcb + ) + { +- TCP_CB *Clone; ++ TCP_CB *Clone; + + Clone = AllocateZeroPool (sizeof (TCP_CB)); + +@@ -506,7 +499,7 @@ TcpCloneTcb ( + return NULL; + } + +- ((TCP_PROTO_DATA *) (Clone->Sk->ProtoReserved))->TcpPcb = Clone; ++ ((TCP_PROTO_DATA *)(Clone->Sk->ProtoReserved))->TcpPcb = Clone; + + return Clone; + } +@@ -539,25 +532,25 @@ TcpGetRcvMss ( + IN SOCKET *Sock + ) + { +- EFI_IP4_MODE_DATA Ip4Mode; +- EFI_IP6_MODE_DATA Ip6Mode; +- EFI_IP4_PROTOCOL *Ip4; +- EFI_IP6_PROTOCOL *Ip6; +- TCP_PROTO_DATA *TcpProto; ++ EFI_IP4_MODE_DATA Ip4Mode; ++ EFI_IP6_MODE_DATA Ip6Mode; ++ EFI_IP4_PROTOCOL *Ip4; ++ EFI_IP6_PROTOCOL *Ip6; ++ TCP_PROTO_DATA *TcpProto; + + ASSERT (Sock != NULL); + + ZeroMem (&Ip4Mode, sizeof (EFI_IP4_MODE_DATA)); + ZeroMem (&Ip6Mode, sizeof (EFI_IP6_MODE_DATA)); + +- TcpProto = (TCP_PROTO_DATA *) Sock->ProtoReserved; ++ TcpProto = (TCP_PROTO_DATA *)Sock->ProtoReserved; + + if (Sock->IpVersion == IP_VERSION_4) { + Ip4 = TcpProto->TcpService->IpIo->Ip.Ip4; + ASSERT (Ip4 != NULL); + Ip4->GetModeData (Ip4, &Ip4Mode, NULL, NULL); + +- return (UINT16) (Ip4Mode.MaxPacketSize - sizeof (TCP_HEAD)); ++ return (UINT16)(Ip4Mode.MaxPacketSize - sizeof (TCP_HEAD)); + } else { + Ip6 = TcpProto->TcpService->IpIo->Ip.Ip6; + ASSERT (Ip6 != NULL); +@@ -587,7 +580,7 @@ TcpGetRcvMss ( + } + } + +- return (UINT16) (Ip6Mode.MaxPacketSize - sizeof (TCP_HEAD)); ++ return (UINT16)(Ip6Mode.MaxPacketSize - sizeof (TCP_HEAD)); + } + } + +@@ -600,8 +593,8 @@ TcpGetRcvMss ( + **/ + VOID + TcpSetState ( +- IN TCP_CB *Tcb, +- IN UINT8 State ++ IN TCP_CB *Tcb, ++ IN UINT8 State + ) + { + ASSERT (Tcb->State < (sizeof (mTcpStateName) / sizeof (CHAR16 *))); +@@ -609,36 +602,36 @@ TcpSetState ( + + DEBUG ( + (EFI_D_NET, +- "Tcb (%p) state %s --> %s\n", +- Tcb, +- mTcpStateName[Tcb->State], +- mTcpStateName[State]) ++ "Tcb (%p) state %s --> %s\n", ++ Tcb, ++ mTcpStateName[Tcb->State], ++ mTcpStateName[State]) + ); + + Tcb->State = State; + + switch (State) { +- case TCP_ESTABLISHED: ++ case TCP_ESTABLISHED: + +- SockConnEstablished (Tcb->Sk); ++ SockConnEstablished (Tcb->Sk); + +- if (Tcb->Parent != NULL) { +- // +- // A new connection is accepted by a listening socket. Install +- // the device path. +- // +- TcpInstallDevicePath (Tcb->Sk); +- } ++ if (Tcb->Parent != NULL) { ++ // ++ // A new connection is accepted by a listening socket. Install ++ // the device path. ++ // ++ TcpInstallDevicePath (Tcb->Sk); ++ } + +- break; ++ break; + +- case TCP_CLOSED: ++ case TCP_CLOSED: + +- SockConnClosed (Tcb->Sk); ++ SockConnClosed (Tcb->Sk); + +- break; +- default: +- break; ++ break; ++ default: ++ break; + } + } + +@@ -653,21 +646,21 @@ TcpSetState ( + **/ + UINT16 + TcpChecksum ( +- IN NET_BUF *Nbuf, +- IN UINT16 HeadSum ++ IN NET_BUF *Nbuf, ++ IN UINT16 HeadSum + ) + { + UINT16 Checksum; + +- Checksum = NetbufChecksum (Nbuf); +- Checksum = NetAddChecksum (Checksum, HeadSum); ++ Checksum = NetbufChecksum (Nbuf); ++ Checksum = NetAddChecksum (Checksum, HeadSum); + + Checksum = NetAddChecksum ( +- Checksum, +- HTONS ((UINT16) Nbuf->TotalSize) +- ); ++ Checksum, ++ HTONS ((UINT16)Nbuf->TotalSize) ++ ); + +- return (UINT16) (~Checksum); ++ return (UINT16)(~Checksum); + } + + /** +@@ -682,22 +675,22 @@ TcpChecksum ( + **/ + TCP_SEG * + TcpFormatNetbuf ( +- IN TCP_CB *Tcb, +- IN OUT NET_BUF *Nbuf ++ IN TCP_CB *Tcb, ++ IN OUT NET_BUF *Nbuf + ) + { + TCP_SEG *Seg; + TCP_HEAD *Head; + +- Seg = TCPSEG_NETBUF (Nbuf); +- Head = (TCP_HEAD *) NetbufGetByte (Nbuf, 0, NULL); ++ Seg = TCPSEG_NETBUF (Nbuf); ++ Head = (TCP_HEAD *)NetbufGetByte (Nbuf, 0, NULL); + ASSERT (Head != NULL); + + Nbuf->Tcp = Head; + +- Seg->Seq = NTOHL (Head->Seq); +- Seg->Ack = NTOHL (Head->Ack); +- Seg->End = Seg->Seq + (Nbuf->TotalSize - (Head->HeadLen << 2)); ++ Seg->Seq = NTOHL (Head->Seq); ++ Seg->Ack = NTOHL (Head->Ack); ++ Seg->End = Seg->Seq + (Nbuf->TotalSize - (Head->HeadLen << 2)); + + Seg->Urg = NTOHS (Head->Urg); + Seg->Wnd = (NTOHS (Head->Wnd) << Tcb->SndWndScale); +@@ -726,7 +719,6 @@ TcpFormatNetbuf ( + + @param[in, out] Tcb Pointer to the TCP_CB that wants to initiate a + connection. +- + **/ + VOID + TcpOnAppConnect ( +@@ -749,17 +741,16 @@ TcpOnAppConnect ( + **/ + VOID + TcpOnAppClose ( +- IN OUT TCP_CB *Tcb ++ IN OUT TCP_CB *Tcb + ) + { + ASSERT (Tcb != NULL); + +- if (!IsListEmpty (&Tcb->RcvQue) || GET_RCV_DATASIZE (Tcb->Sk) != 0) { +- ++ if (!IsListEmpty (&Tcb->RcvQue) || (GET_RCV_DATASIZE (Tcb->Sk) != 0)) { + DEBUG ( + (EFI_D_WARN, +- "TcpOnAppClose: connection reset because data is lost for TCB %p\n", +- Tcb) ++ "TcpOnAppClose: connection reset because data is lost for TCB %p\n", ++ Tcb) + ); + + TcpResetConnection (Tcb); +@@ -768,22 +759,22 @@ TcpOnAppClose ( + } + + switch (Tcb->State) { +- case TCP_CLOSED: +- case TCP_LISTEN: +- case TCP_SYN_SENT: +- TcpSetState (Tcb, TCP_CLOSED); +- break; +- +- case TCP_SYN_RCVD: +- case TCP_ESTABLISHED: +- TcpSetState (Tcb, TCP_FIN_WAIT_1); +- break; +- +- case TCP_CLOSE_WAIT: +- TcpSetState (Tcb, TCP_LAST_ACK); +- break; +- default: +- break; ++ case TCP_CLOSED: ++ case TCP_LISTEN: ++ case TCP_SYN_SENT: ++ TcpSetState (Tcb, TCP_CLOSED); ++ break; ++ ++ case TCP_SYN_RCVD: ++ case TCP_ESTABLISHED: ++ TcpSetState (Tcb, TCP_FIN_WAIT_1); ++ break; ++ ++ case TCP_CLOSE_WAIT: ++ TcpSetState (Tcb, TCP_LAST_ACK); ++ break; ++ default: ++ break; + } + + TcpToSendData (Tcb, 1); +@@ -801,35 +792,34 @@ TcpOnAppClose ( + **/ + INTN + TcpOnAppSend ( +- IN OUT TCP_CB *Tcb ++ IN OUT TCP_CB *Tcb + ) + { +- + switch (Tcb->State) { +- case TCP_CLOSED: +- return -1; ++ case TCP_CLOSED: ++ return -1; + +- case TCP_LISTEN: +- return -1; ++ case TCP_LISTEN: ++ return -1; + +- case TCP_SYN_SENT: +- case TCP_SYN_RCVD: +- return 0; ++ case TCP_SYN_SENT: ++ case TCP_SYN_RCVD: ++ return 0; + +- case TCP_ESTABLISHED: +- case TCP_CLOSE_WAIT: +- TcpToSendData (Tcb, 0); +- return 0; ++ case TCP_ESTABLISHED: ++ case TCP_CLOSE_WAIT: ++ TcpToSendData (Tcb, 0); ++ return 0; + +- case TCP_FIN_WAIT_1: +- case TCP_FIN_WAIT_2: +- case TCP_CLOSING: +- case TCP_LAST_ACK: +- case TCP_TIME_WAIT: +- return -1; ++ case TCP_FIN_WAIT_1: ++ case TCP_FIN_WAIT_2: ++ case TCP_CLOSING: ++ case TCP_LAST_ACK: ++ case TCP_TIME_WAIT: ++ return -1; + +- default: +- break; ++ default: ++ break; + } + + return 0; +@@ -844,41 +834,38 @@ TcpOnAppSend ( + **/ + VOID + TcpOnAppConsume ( +- IN TCP_CB *Tcb ++ IN TCP_CB *Tcb + ) + { +- UINT32 TcpOld; ++ UINT32 TcpOld; + + switch (Tcb->State) { +- case TCP_ESTABLISHED: +- TcpOld = TcpRcvWinOld (Tcb); +- if (TcpRcvWinNow (Tcb) > TcpOld) { +- +- if (TcpOld < Tcb->RcvMss) { +- +- DEBUG ( +- (EFI_D_NET, +- "TcpOnAppConsume: send a window update for a window closed Tcb %p\n", +- Tcb) +- ); +- +- TcpSendAck (Tcb); +- } else if (Tcb->DelayedAck == 0) { +- +- DEBUG ( +- (EFI_D_NET, +- "TcpOnAppConsume: scheduled a delayed ACK to update window for Tcb %p\n", +- Tcb) +- ); +- +- Tcb->DelayedAck = 1; ++ case TCP_ESTABLISHED: ++ TcpOld = TcpRcvWinOld (Tcb); ++ if (TcpRcvWinNow (Tcb) > TcpOld) { ++ if (TcpOld < Tcb->RcvMss) { ++ DEBUG ( ++ (EFI_D_NET, ++ "TcpOnAppConsume: send a window update for a window closed Tcb %p\n", ++ Tcb) ++ ); ++ ++ TcpSendAck (Tcb); ++ } else if (Tcb->DelayedAck == 0) { ++ DEBUG ( ++ (EFI_D_NET, ++ "TcpOnAppConsume: scheduled a delayed ACK to update window for Tcb %p\n", ++ Tcb) ++ ); ++ ++ Tcb->DelayedAck = 1; ++ } + } +- } + +- break; ++ break; + +- default: +- break; ++ default: ++ break; + } + } + +@@ -891,25 +878,25 @@ TcpOnAppConsume ( + **/ + VOID + TcpOnAppAbort ( +- IN TCP_CB *Tcb ++ IN TCP_CB *Tcb + ) + { + DEBUG ( + (EFI_D_WARN, +- "TcpOnAppAbort: connection reset issued by application for TCB %p\n", +- Tcb) ++ "TcpOnAppAbort: connection reset issued by application for TCB %p\n", ++ Tcb) + ); + + switch (Tcb->State) { +- case TCP_SYN_RCVD: +- case TCP_ESTABLISHED: +- case TCP_FIN_WAIT_1: +- case TCP_FIN_WAIT_2: +- case TCP_CLOSE_WAIT: +- TcpResetConnection (Tcb); +- break; +- default: +- break; ++ case TCP_SYN_RCVD: ++ case TCP_ESTABLISHED: ++ case TCP_FIN_WAIT_1: ++ case TCP_FIN_WAIT_2: ++ case TCP_CLOSE_WAIT: ++ TcpResetConnection (Tcb); ++ break; ++ default: ++ break; + } + + TcpSetState (Tcb, TCP_CLOSED); +@@ -923,7 +910,7 @@ TcpOnAppAbort ( + **/ + VOID + TcpResetConnection ( +- IN TCP_CB *Tcb ++ IN TCP_CB *Tcb + ) + { + NET_BUF *Nbuf; +@@ -932,10 +919,10 @@ TcpResetConnection ( + Nbuf = NetbufAlloc (TCP_MAX_HEAD); + + if (Nbuf == NULL) { +- return ; ++ return; + } + +- Nhead = (TCP_HEAD *) NetbufAllocSpace ( ++ Nhead = (TCP_HEAD *)NetbufAllocSpace ( + Nbuf, + sizeof (TCP_HEAD), + NET_BUF_TAIL +@@ -943,14 +930,14 @@ TcpResetConnection ( + + ASSERT (Nhead != NULL); + +- Nbuf->Tcp = Nhead; ++ Nbuf->Tcp = Nhead; + + Nhead->Flag = TCP_FLG_RST; + Nhead->Seq = HTONL (Tcb->SndNxt); + Nhead->Ack = HTONL (Tcb->RcvNxt); + Nhead->SrcPort = Tcb->LocalEnd.Port; + Nhead->DstPort = Tcb->RemoteEnd.Port; +- Nhead->HeadLen = (UINT8) (sizeof (TCP_HEAD) >> 2); ++ Nhead->HeadLen = (UINT8)(sizeof (TCP_HEAD) >> 2); + Nhead->Res = 0; + Nhead->Wnd = HTONS (0xFFFF); + Nhead->Checksum = 0; +@@ -973,24 +960,24 @@ TcpResetConnection ( + **/ + EFI_STATUS + TcpInstallDevicePath ( +- IN SOCKET *Sock ++ IN SOCKET *Sock + ) + { +- TCP_PROTO_DATA *TcpProto; +- TCP_SERVICE_DATA *TcpService; +- TCP_CB *Tcb; +- IPv4_DEVICE_PATH Ip4DPathNode; +- IPv6_DEVICE_PATH Ip6DPathNode; +- EFI_DEVICE_PATH_PROTOCOL *DevicePath; +- EFI_STATUS Status; +- TCP_PORTNO LocalPort; +- TCP_PORTNO RemotePort; +- +- TcpProto = (TCP_PROTO_DATA *) Sock->ProtoReserved; ++ TCP_PROTO_DATA *TcpProto; ++ TCP_SERVICE_DATA *TcpService; ++ TCP_CB *Tcb; ++ IPv4_DEVICE_PATH Ip4DPathNode; ++ IPv6_DEVICE_PATH Ip6DPathNode; ++ EFI_DEVICE_PATH_PROTOCOL *DevicePath; ++ EFI_STATUS Status; ++ TCP_PORTNO LocalPort; ++ TCP_PORTNO RemotePort; ++ ++ TcpProto = (TCP_PROTO_DATA *)Sock->ProtoReserved; + TcpService = TcpProto->TcpService; + Tcb = TcpProto->TcpPcb; + +- LocalPort = NTOHS (Tcb->LocalEnd.Port); ++ LocalPort = NTOHS (Tcb->LocalEnd.Port); + RemotePort = NTOHS (Tcb->RemoteEnd.Port); + if (Sock->IpVersion == IP_VERSION_4) { + NetLibCreateIPv4DPathNode ( +@@ -1006,7 +993,7 @@ TcpInstallDevicePath ( + + IP4_COPY_ADDRESS (&Ip4DPathNode.SubnetMask, &Tcb->SubnetMask); + +- DevicePath = (EFI_DEVICE_PATH_PROTOCOL *) &Ip4DPathNode; ++ DevicePath = (EFI_DEVICE_PATH_PROTOCOL *)&Ip4DPathNode; + } else { + NetLibCreateIPv6DPathNode ( + &Ip6DPathNode, +@@ -1018,7 +1005,7 @@ TcpInstallDevicePath ( + EFI_IP_PROTO_TCP + ); + +- DevicePath = (EFI_DEVICE_PATH_PROTOCOL *) &Ip6DPathNode; ++ DevicePath = (EFI_DEVICE_PATH_PROTOCOL *)&Ip6DPathNode; + } + + Sock->DevicePath = AppendDevicePathNode (Sock->ParentDevicePath, DevicePath); +@@ -1039,4 +1026,3 @@ TcpInstallDevicePath ( + + return Status; + } +- +diff --git a/NetworkPkg/Udp4Dxe/Udp4Driver.c b/NetworkPkg/Udp4Dxe/Udp4Driver.c +index 44032682e2..cb917fcfc9 100644 +--- a/NetworkPkg/Udp4Dxe/Udp4Driver.c ++++ b/NetworkPkg/Udp4Dxe/Udp4Driver.c +@@ -5,10 +5,9 @@ SPDX-License-Identifier: BSD-2-Clause-Patent + + **/ + +- + #include "Udp4Impl.h" + +-EFI_DRIVER_BINDING_PROTOCOL gUdp4DriverBinding = { ++EFI_DRIVER_BINDING_PROTOCOL gUdp4DriverBinding = { + Udp4DriverBindingSupported, + Udp4DriverBindingStart, + Udp4DriverBindingStop, +@@ -17,7 +16,7 @@ EFI_DRIVER_BINDING_PROTOCOL gUdp4DriverBinding = { + NULL + }; + +-EFI_SERVICE_BINDING_PROTOCOL mUdp4ServiceBinding = { ++EFI_SERVICE_BINDING_PROTOCOL mUdp4ServiceBinding = { + Udp4ServiceBindingCreateChild, + Udp4ServiceBindingDestroyChild + }; +@@ -35,8 +34,8 @@ EFI_SERVICE_BINDING_PROTOCOL mUdp4ServiceBinding = { + EFI_STATUS + EFIAPI + Udp4DestroyChildEntryInHandleBuffer ( +- IN LIST_ENTRY *Entry, +- IN VOID *Context ++ IN LIST_ENTRY *Entry, ++ IN VOID *Context + ) + { + UDP4_INSTANCE_DATA *Instance; +@@ -44,14 +43,14 @@ Udp4DestroyChildEntryInHandleBuffer ( + UINTN NumberOfChildren; + EFI_HANDLE *ChildHandleBuffer; + +- if (Entry == NULL || Context == NULL) { ++ if ((Entry == NULL) || (Context == NULL)) { + return EFI_INVALID_PARAMETER; + } + +- Instance = NET_LIST_USER_STRUCT_S (Entry, UDP4_INSTANCE_DATA, Link, UDP4_INSTANCE_DATA_SIGNATURE); +- ServiceBinding = ((UDP4_DESTROY_CHILD_IN_HANDLE_BUF_CONTEXT *) Context)->ServiceBinding; +- NumberOfChildren = ((UDP4_DESTROY_CHILD_IN_HANDLE_BUF_CONTEXT *) Context)->NumberOfChildren; +- ChildHandleBuffer = ((UDP4_DESTROY_CHILD_IN_HANDLE_BUF_CONTEXT *) Context)->ChildHandleBuffer; ++ Instance = NET_LIST_USER_STRUCT_S (Entry, UDP4_INSTANCE_DATA, Link, UDP4_INSTANCE_DATA_SIGNATURE); ++ ServiceBinding = ((UDP4_DESTROY_CHILD_IN_HANDLE_BUF_CONTEXT *)Context)->ServiceBinding; ++ NumberOfChildren = ((UDP4_DESTROY_CHILD_IN_HANDLE_BUF_CONTEXT *)Context)->NumberOfChildren; ++ ChildHandleBuffer = ((UDP4_DESTROY_CHILD_IN_HANDLE_BUF_CONTEXT *)Context)->ChildHandleBuffer; + + if (!NetIsInHandleBuffer (Instance->ChildHandle, NumberOfChildren, ChildHandleBuffer)) { + return EFI_SUCCESS; +@@ -60,7 +59,6 @@ Udp4DestroyChildEntryInHandleBuffer ( + return ServiceBinding->DestroyChild (ServiceBinding, Instance->ChildHandle); + } + +- + /** + Test to see if this driver supports ControllerHandle. This service + is called by the EFI boot service ConnectController(). In +@@ -119,7 +117,6 @@ Udp4DriverBindingSupported ( + return Status; + } + +- + /** + Start this driver on ControllerHandle. This service is called by the + EFI boot service ConnectController(). In order to make +@@ -180,7 +177,6 @@ Udp4DriverBindingStart ( + return Status; + } + +- + /** + Stop this driver on ControllerHandle. This service is called by the + EFI boot service DisconnectController(). In order to +@@ -229,7 +225,7 @@ Udp4DriverBindingStop ( + Status = gBS->OpenProtocol ( + NicHandle, + &gEfiUdp4ServiceBindingProtocolGuid, +- (VOID **) &ServiceBinding, ++ (VOID **)&ServiceBinding, + This->DriverBindingHandle, + NicHandle, + EFI_OPEN_PROTOCOL_GET_PROTOCOL +@@ -243,16 +239,16 @@ Udp4DriverBindingStop ( + // + // NumberOfChildren is not zero, destroy the children instances in ChildHandleBuffer. + // +- List = &Udp4Service->ChildrenList; ++ List = &Udp4Service->ChildrenList; + Context.ServiceBinding = ServiceBinding; + Context.NumberOfChildren = NumberOfChildren; + Context.ChildHandleBuffer = ChildHandleBuffer; +- Status = NetDestroyLinkList ( +- List, +- Udp4DestroyChildEntryInHandleBuffer, +- &Context, +- NULL +- ); ++ Status = NetDestroyLinkList ( ++ List, ++ Udp4DestroyChildEntryInHandleBuffer, ++ &Context, ++ NULL ++ ); + } else { + gBS->UninstallMultipleProtocolInterfaces ( + NicHandle, +@@ -267,13 +263,13 @@ Udp4DriverBindingStop ( + FreeUnicodeStringTable (gUdpControllerNameTable); + gUdpControllerNameTable = NULL; + } ++ + FreePool (Udp4Service); + } + + return Status; + } + +- + /** + Creates a child handle and installs a protocol. + +@@ -352,7 +348,7 @@ Udp4ServiceBindingCreateChild ( + Status = gBS->OpenProtocol ( + Udp4Service->IpIo->ChildHandle, + &gEfiIp4ProtocolGuid, +- (VOID **) &Ip4, ++ (VOID **)&Ip4, + gUdp4DriverBinding.DriverBindingHandle, + Instance->ChildHandle, + EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER +@@ -367,7 +363,7 @@ Udp4ServiceBindingCreateChild ( + Status = gBS->OpenProtocol ( + Instance->IpInfo->ChildHandle, + &gEfiIp4ProtocolGuid, +- (VOID **) &Ip4, ++ (VOID **)&Ip4, + gUdp4DriverBinding.DriverBindingHandle, + Instance->ChildHandle, + EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER +@@ -410,7 +406,6 @@ ON_ERROR: + return Status; + } + +- + /** + Destroys a child handle with a protocol installed on it. + +@@ -454,7 +449,7 @@ Udp4ServiceBindingDestroyChild ( + Status = gBS->OpenProtocol ( + ChildHandle, + &gEfiUdp4ProtocolGuid, +- (VOID **) &Udp4Proto, ++ (VOID **)&Udp4Proto, + gUdp4DriverBinding.DriverBindingHandle, + ChildHandle, + EFI_OPEN_PROTOCOL_GET_PROTOCOL +@@ -499,7 +494,7 @@ Udp4ServiceBindingDestroyChild ( + Status = gBS->UninstallMultipleProtocolInterfaces ( + ChildHandle, + &gEfiUdp4ProtocolGuid, +- (VOID *) &Instance->Udp4Proto, ++ (VOID *)&Instance->Udp4Proto, + NULL + ); + if (EFI_ERROR (Status)) { +@@ -576,9 +571,8 @@ Udp4DriverEntryPoint ( + // + // Initialize the UDP random port. + // +- mUdp4RandomPort = (UINT16) (((UINT16) NetRandomInitSeed ()) % UDP4_PORT_KNOWN + UDP4_PORT_KNOWN); ++ mUdp4RandomPort = (UINT16)(((UINT16)NetRandomInitSeed ()) % UDP4_PORT_KNOWN + UDP4_PORT_KNOWN); + } + + return Status; + } +- +diff --git a/NetworkPkg/Udp6Dxe/Udp6Driver.c b/NetworkPkg/Udp6Dxe/Udp6Driver.c +index 6021bb3699..ae96fb9966 100644 +--- a/NetworkPkg/Udp6Dxe/Udp6Driver.c ++++ b/NetworkPkg/Udp6Dxe/Udp6Driver.c +@@ -9,7 +9,7 @@ + + #include "Udp6Impl.h" + +-EFI_DRIVER_BINDING_PROTOCOL gUdp6DriverBinding = { ++EFI_DRIVER_BINDING_PROTOCOL gUdp6DriverBinding = { + Udp6DriverBindingSupported, + Udp6DriverBindingStart, + Udp6DriverBindingStop, +@@ -18,7 +18,7 @@ EFI_DRIVER_BINDING_PROTOCOL gUdp6DriverBinding = { + NULL + }; + +-EFI_SERVICE_BINDING_PROTOCOL mUdp6ServiceBinding = { ++EFI_SERVICE_BINDING_PROTOCOL mUdp6ServiceBinding = { + Udp6ServiceBindingCreateChild, + Udp6ServiceBindingDestroyChild + }; +@@ -74,6 +74,7 @@ Udp6DriverBindingSupported ( + ) + { + EFI_STATUS Status; ++ + // + // Test for the Udp6ServiceBinding Protocol + // +@@ -88,6 +89,7 @@ Udp6DriverBindingSupported ( + if (!EFI_ERROR (Status)) { + return EFI_ALREADY_STARTED; + } ++ + // + // Test for the Ip6ServiceBinding Protocol + // +@@ -166,6 +168,7 @@ EXIT: + FreePool (Udp6Service); + } + } ++ + return Status; + } + +@@ -183,8 +186,8 @@ EXIT: + EFI_STATUS + EFIAPI + Udp6DestroyChildEntryInHandleBuffer ( +- IN LIST_ENTRY *Entry, +- IN VOID *Context ++ IN LIST_ENTRY *Entry, ++ IN VOID *Context + ) + { + UDP6_INSTANCE_DATA *Instance; +@@ -192,14 +195,14 @@ Udp6DestroyChildEntryInHandleBuffer ( + UINTN NumberOfChildren; + EFI_HANDLE *ChildHandleBuffer; + +- if (Entry == NULL || Context == NULL) { ++ if ((Entry == NULL) || (Context == NULL)) { + return EFI_INVALID_PARAMETER; + } + +- Instance = NET_LIST_USER_STRUCT_S (Entry, UDP6_INSTANCE_DATA, Link, UDP6_INSTANCE_DATA_SIGNATURE); +- ServiceBinding = ((UDP6_DESTROY_CHILD_IN_HANDLE_BUF_CONTEXT *) Context)->ServiceBinding; +- NumberOfChildren = ((UDP6_DESTROY_CHILD_IN_HANDLE_BUF_CONTEXT *) Context)->NumberOfChildren; +- ChildHandleBuffer = ((UDP6_DESTROY_CHILD_IN_HANDLE_BUF_CONTEXT *) Context)->ChildHandleBuffer; ++ Instance = NET_LIST_USER_STRUCT_S (Entry, UDP6_INSTANCE_DATA, Link, UDP6_INSTANCE_DATA_SIGNATURE); ++ ServiceBinding = ((UDP6_DESTROY_CHILD_IN_HANDLE_BUF_CONTEXT *)Context)->ServiceBinding; ++ NumberOfChildren = ((UDP6_DESTROY_CHILD_IN_HANDLE_BUF_CONTEXT *)Context)->NumberOfChildren; ++ ChildHandleBuffer = ((UDP6_DESTROY_CHILD_IN_HANDLE_BUF_CONTEXT *)Context)->ChildHandleBuffer; + + if (!NetIsInHandleBuffer (Instance->ChildHandle, NumberOfChildren, ChildHandleBuffer)) { + return EFI_SUCCESS; +@@ -258,7 +261,7 @@ Udp6DriverBindingStop ( + Status = gBS->OpenProtocol ( + NicHandle, + &gEfiUdp6ServiceBindingProtocolGuid, +- (VOID **) &ServiceBinding, ++ (VOID **)&ServiceBinding, + This->DriverBindingHandle, + NicHandle, + EFI_OPEN_PROTOCOL_GET_PROTOCOL +@@ -273,23 +276,23 @@ Udp6DriverBindingStop ( + // + // NumberOfChildren is not zero, destroy the children instances in ChildHandleBuffer. + // +- List = &Udp6Service->ChildrenList; ++ List = &Udp6Service->ChildrenList; + Context.ServiceBinding = ServiceBinding; + Context.NumberOfChildren = NumberOfChildren; + Context.ChildHandleBuffer = ChildHandleBuffer; +- Status = NetDestroyLinkList ( +- List, +- Udp6DestroyChildEntryInHandleBuffer, +- &Context, +- NULL +- ); ++ Status = NetDestroyLinkList ( ++ List, ++ Udp6DestroyChildEntryInHandleBuffer, ++ &Context, ++ NULL ++ ); + } else if (IsListEmpty (&Udp6Service->ChildrenList)) { + Status = gBS->UninstallMultipleProtocolInterfaces ( +- NicHandle, +- &gEfiUdp6ServiceBindingProtocolGuid, +- &Udp6Service->ServiceBinding, +- NULL +- ); ++ NicHandle, ++ &gEfiUdp6ServiceBindingProtocolGuid, ++ &Udp6Service->ServiceBinding, ++ NULL ++ ); + + Udp6CleanService (Udp6Service); + FreePool (Udp6Service); +@@ -376,7 +379,7 @@ Udp6ServiceBindingCreateChild ( + Status = gBS->OpenProtocol ( + Udp6Service->IpIo->ChildHandle, + &gEfiIp6ProtocolGuid, +- (VOID **) &Ip6, ++ (VOID **)&Ip6, + gUdp6DriverBinding.DriverBindingHandle, + Instance->ChildHandle, + EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER +@@ -391,7 +394,7 @@ Udp6ServiceBindingCreateChild ( + Status = gBS->OpenProtocol ( + Instance->IpInfo->ChildHandle, + &gEfiIp6ProtocolGuid, +- (VOID **) &Ip6, ++ (VOID **)&Ip6, + gUdp6DriverBinding.DriverBindingHandle, + Instance->ChildHandle, + EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER +@@ -478,7 +481,7 @@ Udp6ServiceBindingDestroyChild ( + Status = gBS->OpenProtocol ( + ChildHandle, + &gEfiUdp6ProtocolGuid, +- (VOID **) &Udp6Proto, ++ (VOID **)&Udp6Proto, + gUdp6DriverBinding.DriverBindingHandle, + ChildHandle, + EFI_OPEN_PROTOCOL_GET_PROTOCOL +@@ -502,11 +505,11 @@ Udp6ServiceBindingDestroyChild ( + // Close the Ip6 protocol on the default IpIo. + // + Status = gBS->CloseProtocol ( +- Udp6Service->IpIo->ChildHandle, +- &gEfiIp6ProtocolGuid, +- gUdp6DriverBinding.DriverBindingHandle, +- Instance->ChildHandle +- ); ++ Udp6Service->IpIo->ChildHandle, ++ &gEfiIp6ProtocolGuid, ++ gUdp6DriverBinding.DriverBindingHandle, ++ Instance->ChildHandle ++ ); + if (EFI_ERROR (Status)) { + Instance->InDestroy = FALSE; + return Status; +@@ -516,11 +519,11 @@ Udp6ServiceBindingDestroyChild ( + // Close the Ip6 protocol on this instance's IpInfo. + // + Status = gBS->CloseProtocol ( +- Instance->IpInfo->ChildHandle, +- &gEfiIp6ProtocolGuid, +- gUdp6DriverBinding.DriverBindingHandle, +- Instance->ChildHandle +- ); ++ Instance->IpInfo->ChildHandle, ++ &gEfiIp6ProtocolGuid, ++ gUdp6DriverBinding.DriverBindingHandle, ++ Instance->ChildHandle ++ ); + if (EFI_ERROR (Status)) { + Instance->InDestroy = FALSE; + return Status; +@@ -532,7 +535,7 @@ Udp6ServiceBindingDestroyChild ( + Status = gBS->UninstallMultipleProtocolInterfaces ( + ChildHandle, + &gEfiUdp6ProtocolGuid, +- (VOID *) &Instance->Udp6Proto, ++ (VOID *)&Instance->Udp6Proto, + NULL + ); + if (EFI_ERROR (Status)) { +@@ -611,13 +614,11 @@ Udp6DriverEntryPoint ( + // Initialize the UDP random port. + // + mUdp6RandomPort = (UINT16)( +- ((UINT16) NetRandomInitSeed ()) % +- UDP6_PORT_KNOWN + +- UDP6_PORT_KNOWN +- ); ++ ((UINT16)NetRandomInitSeed ()) % ++ UDP6_PORT_KNOWN + ++ UDP6_PORT_KNOWN ++ ); + } + + return Status; + } +- +- +diff --git a/NetworkPkg/UefiPxeBcDxe/PxeBcDhcp4.c b/NetworkPkg/UefiPxeBcDxe/PxeBcDhcp4.c +index fb63cf61a9..874fc2c37b 100644 +--- a/NetworkPkg/UefiPxeBcDxe/PxeBcDhcp4.c ++++ b/NetworkPkg/UefiPxeBcDxe/PxeBcDhcp4.c +@@ -27,7 +27,6 @@ UINT8 mInterestedDhcp4Tags[PXEBC_DHCP4_TAG_INDEX_MAX] = { + // + UINT32 mPxeDhcpTimeout[4] = {4, 8, 16, 32}; + +- + /** + Parse a certain dhcp4 option by OptTag in Buffer, and return with start pointer. + +@@ -53,7 +52,6 @@ PxeBcParseDhcp4Options ( + Offset = 0; + + while (Offset < Length && Option->OpCode != DHCP4_TAG_EOP) { +- + if (Option->OpCode == OptTag) { + // + // Found the required option. +@@ -76,7 +74,6 @@ PxeBcParseDhcp4Options ( + return NULL; + } + +- + /** + Parse the PXE vendor options and extract the information from them. + +@@ -107,7 +104,6 @@ PxeBcParseVendorOptions ( + // Parse all the interesting PXE vendor options one by one. + // + switch (PxeOption->OpCode) { +- + case PXEBC_VENDOR_TAG_MTFTP_IP: + + CopyMem (&VendorOption->MtftpIp, PxeOption->Data, sizeof (EFI_IPv4_ADDRESS)); +@@ -205,7 +201,6 @@ PxeBcParseVendorOptions ( + } + } + +- + /** + Build the options buffer for the DHCPv4 request packet. + +@@ -377,7 +372,6 @@ PxeBcBuildDhcp4Options ( + return Index; + } + +- + /** + Create a template DHCPv4 packet as a seed. + +@@ -412,7 +406,6 @@ PxeBcSeedDhcp4Packet ( + Seed->Dhcp4.Option[0] = DHCP4_TAG_EOP; + } + +- + /** + Cache the DHCPv4 packet. + +@@ -439,7 +432,6 @@ PxeBcCacheDhcp4Packet ( + return EFI_SUCCESS; + } + +- + /** + Parse the cached DHCPv4 packet, including all the options. + +@@ -485,6 +477,7 @@ PxeBcParseDhcp4Packet ( + mInterestedDhcp4Tags[Index] + ); + } ++ + // + // Second, Check if bootfilename and serverhostname is overloaded to carry DHCP options refers to rfc-2132. + // If yes, try to parse options from the BootFileName field, then ServerName field. +@@ -503,6 +496,7 @@ PxeBcParseDhcp4Packet ( + } + } + } ++ + if ((Option->Data[0] & PXEBC_DHCP4_OVERLOAD_SERVER_NAME) != 0) { + for (Index = 0; Index < PXEBC_DHCP4_TAG_INDEX_MAX; Index++) { + if (Options[Index] == NULL) { +@@ -528,7 +522,8 @@ PxeBcParseDhcp4Packet ( + // + Option = Options[PXEBC_DHCP4_TAG_INDEX_CLASS_ID]; + if ((Option != NULL) && (Option->Length >= 9) && +- (CompareMem (Option->Data, DEFAULT_CLASS_ID_DATA, 9) == 0)) { ++ (CompareMem (Option->Data, DEFAULT_CLASS_ID_DATA, 9) == 0)) ++ { + IsPxeOffer = TRUE; + } + +@@ -563,7 +558,6 @@ PxeBcParseDhcp4Packet ( + Options[PXEBC_DHCP4_TAG_INDEX_BOOTFILE] = (EFI_DHCP4_PACKET_OPTION *) + (&Offer->Dhcp4.Header.BootFileName[0] - + OFFSET_OF (EFI_DHCP4_PACKET_OPTION, Data[0])); +- + } + + // +@@ -584,7 +578,6 @@ PxeBcParseDhcp4Packet ( + return EFI_DEVICE_ERROR; + } + } else { +- + if (IS_VALID_DISCOVER_VENDOR_OPTION (Cache4->VendorOpt.BitMap)) { + // + // It's a PXE10 offer with PXEClient and discover vendor option. +@@ -614,7 +607,6 @@ PxeBcParseDhcp4Packet ( + return EFI_SUCCESS; + } + +- + /** + Cache the DHCPv4 ack packet, and parse it on demand. + +@@ -655,7 +647,6 @@ PxeBcCopyDhcp4Ack ( + return EFI_SUCCESS; + } + +- + /** + Cache the DHCPv4 proxy offer packet according to the received order. + +@@ -701,7 +692,6 @@ PxeBcCopyProxyOffer ( + return EFI_SUCCESS; + } + +- + /** + Retry to request bootfile name by the BINL offer. + +@@ -725,8 +715,10 @@ PxeBcRetryBinlOffer ( + EFI_DHCP4_PACKET *Reply; + + ASSERT (Index < PXEBC_OFFER_MAX_NUM); +- ASSERT (Private->OfferBuffer[Index].Dhcp4.OfferType == PxeOfferTypeDhcpBinl || +- Private->OfferBuffer[Index].Dhcp4.OfferType == PxeOfferTypeProxyBinl); ++ ASSERT ( ++ Private->OfferBuffer[Index].Dhcp4.OfferType == PxeOfferTypeDhcpBinl || ++ Private->OfferBuffer[Index].Dhcp4.OfferType == PxeOfferTypeProxyBinl ++ ); + + Offer = &Private->OfferBuffer[Index].Dhcp4.Packet.Offer; + +@@ -866,7 +858,8 @@ PxeBcCacheDhcp4Offer ( + Private->OfferIndex[OfferType][Private->OfferCount[OfferType]] = Private->OfferNum; + Private->OfferCount[OfferType]++; + } else if ((OfferType == PxeOfferTypeProxyPxe10 || OfferType == PxeOfferTypeProxyWfm11a) && +- Private->OfferCount[OfferType] < 1) { ++ Private->OfferCount[OfferType] < 1) ++ { + // + // Only cache the first PXE10/WFM11a offer, and discard the others. + // +@@ -889,7 +882,6 @@ PxeBcCacheDhcp4Offer ( + return EFI_SUCCESS; + } + +- + /** + Select an DHCPv4 offer, and record SelectIndex and SelectProxyType. + +@@ -916,15 +908,14 @@ PxeBcSelectDhcp4Offer ( + // 1. DhcpPxe10 offer + // + Private->SelectIndex = Private->OfferIndex[PxeOfferTypeDhcpPxe10][0] + 1; +- + } else if (Private->OfferCount[PxeOfferTypeDhcpWfm11a] > 0) { + // + // 2. DhcpWfm11a offer + // + Private->SelectIndex = Private->OfferIndex[PxeOfferTypeDhcpWfm11a][0] + 1; +- + } else if (Private->OfferCount[PxeOfferTypeDhcpOnly] > 0 && +- Private->OfferCount[PxeOfferTypeProxyPxe10] > 0) { ++ Private->OfferCount[PxeOfferTypeProxyPxe10] > 0) ++ { + // + // 3. DhcpOnly offer and ProxyPxe10 offer. + // +@@ -1007,7 +998,6 @@ PxeBcSelectDhcp4Offer ( + } + } + +- + /** + Handle the DHCPv4 offer packet. + +@@ -1280,8 +1270,10 @@ PxeBcDhcp4CallBack ( + DEBUG ((EFI_D_WARN, "PXE: Failed to read system GUID from the smbios table!\n")); + ZeroMem (Packet->Dhcp4.Header.ClientHwAddr, sizeof (EFI_GUID)); + } ++ + Packet->Dhcp4.Header.HwAddrLen = (UINT8) sizeof (EFI_GUID); + } ++ + break; + + case Dhcp4RcvdOffer: +@@ -1292,6 +1284,7 @@ PxeBcDhcp4CallBack ( + // + break; + } ++ + if (Private->OfferNum < PXEBC_OFFER_MAX_NUM) { + // + // Cache the DHCPv4 offers to OfferBuffer[] for select later, and record +@@ -1300,6 +1293,7 @@ PxeBcDhcp4CallBack ( + // + PxeBcCacheDhcp4Offer (Private, Packet); + } ++ + break; + + case Dhcp4SelectOffer: +@@ -1316,6 +1310,7 @@ PxeBcDhcp4CallBack ( + } else { + *NewPacket = &Private->OfferBuffer[Private->SelectIndex - 1].Dhcp4.Packet.Offer; + } ++ + break; + + case Dhcp4RcvdAck: +@@ -1520,7 +1515,6 @@ PxeBcDhcp4Discover ( + } + + if (!EFI_ERROR (Status)) { +- + RepIndex = 0; + SrvIndex = 0; + Response = Token.ResponseList; +@@ -1539,10 +1533,13 @@ PxeBcDhcp4Discover ( + if (SrvList[SrvIndex].AcceptAnyResponse) { + break; + } ++ + if ((SrvList[SrvIndex].Type == Type) && +- EFI_IP4_EQUAL (&Response->Dhcp4.Header.ServerAddr, &SrvList[SrvIndex].IpAddr)) { ++ EFI_IP4_EQUAL (&Response->Dhcp4.Header.ServerAddr, &SrvList[SrvIndex].IpAddr)) ++ { + break; + } ++ + SrvIndex++; + } + +@@ -1565,6 +1562,7 @@ PxeBcDhcp4Discover ( + if (EFI_ERROR(Status)) { + goto ON_EXIT; + } ++ + CopyMem (&Mode->PxeDiscover, &Token.Packet->Dhcp4, Token.Packet->Length); + } else { + Status = PxeBcCacheDhcp4Packet (&Private->ProxyOffer.Dhcp4.Packet.Offer, Response); +diff --git a/NetworkPkg/UefiPxeBcDxe/PxeBcDriver.c b/NetworkPkg/UefiPxeBcDxe/PxeBcDriver.c +index 0e2675be3c..d84aca7e85 100644 +--- a/NetworkPkg/UefiPxeBcDxe/PxeBcDriver.c ++++ b/NetworkPkg/UefiPxeBcDxe/PxeBcDriver.c +@@ -10,8 +10,7 @@ + + #include "PxeBcImpl.h" + +- +-EFI_DRIVER_BINDING_PROTOCOL gPxeBcIp4DriverBinding = { ++EFI_DRIVER_BINDING_PROTOCOL gPxeBcIp4DriverBinding = { + PxeBcIp4DriverBindingSupported, + PxeBcIp4DriverBindingStart, + PxeBcIp4DriverBindingStop, +@@ -20,7 +19,7 @@ EFI_DRIVER_BINDING_PROTOCOL gPxeBcIp4DriverBinding = { + NULL + }; + +-EFI_DRIVER_BINDING_PROTOCOL gPxeBcIp6DriverBinding = { ++EFI_DRIVER_BINDING_PROTOCOL gPxeBcIp6DriverBinding = { + PxeBcIp6DriverBindingSupported, + PxeBcIp6DriverBindingStart, + PxeBcIp6DriverBindingStop, +@@ -39,10 +38,10 @@ EFI_DRIVER_BINDING_PROTOCOL gPxeBcIp6DriverBinding = { + **/ + EFI_HANDLE + PxeBcGetNicByIp4Children ( +- IN EFI_HANDLE ControllerHandle ++ IN EFI_HANDLE ControllerHandle + ) + { +- EFI_HANDLE NicHandle; ++ EFI_HANDLE NicHandle; + + NicHandle = NetLibGetNicHandle (ControllerHandle, &gEfiArpProtocolGuid); + if (NicHandle == NULL) { +@@ -64,7 +63,6 @@ PxeBcGetNicByIp4Children ( + return NicHandle; + } + +- + /** + Get the Nic handle using any child handle in the IPv6 stack. + +@@ -75,10 +73,10 @@ PxeBcGetNicByIp4Children ( + **/ + EFI_HANDLE + PxeBcGetNicByIp6Children ( +- IN EFI_HANDLE ControllerHandle ++ IN EFI_HANDLE ControllerHandle + ) + { +- EFI_HANDLE NicHandle; ++ EFI_HANDLE NicHandle; + + NicHandle = NetLibGetNicHandle (ControllerHandle, &gEfiIp6ProtocolGuid); + if (NicHandle == NULL) { +@@ -97,7 +95,6 @@ PxeBcGetNicByIp6Children ( + return NicHandle; + } + +- + /** + Destroy the opened instances based on IPv4. + +@@ -111,7 +108,7 @@ PxeBcDestroyIp4Children ( + IN PXEBC_PRIVATE_DATA *Private + ) + { +- ASSERT(Private != NULL); ++ ASSERT (Private != NULL); + + if (Private->ArpChild != NULL) { + // +@@ -175,11 +172,11 @@ PxeBcDestroyIp4Children ( + // Close Udp4 for PxeBc->UdpRead and destroy the instance. + // + gBS->CloseProtocol ( +- Private->Udp4ReadChild, +- &gEfiUdp4ProtocolGuid, +- This->DriverBindingHandle, +- Private->Controller +- ); ++ Private->Udp4ReadChild, ++ &gEfiUdp4ProtocolGuid, ++ This->DriverBindingHandle, ++ Private->Controller ++ ); + + NetLibDestroyServiceChild ( + Private->Controller, +@@ -194,11 +191,11 @@ PxeBcDestroyIp4Children ( + // Close Mtftp4 for PxeBc->Mtftp4 and destroy the instance. + // + gBS->CloseProtocol ( +- Private->Mtftp4Child, +- &gEfiMtftp4ProtocolGuid, +- This->DriverBindingHandle, +- Private->Controller +- ); ++ Private->Mtftp4Child, ++ &gEfiMtftp4ProtocolGuid, ++ This->DriverBindingHandle, ++ Private->Controller ++ ); + + NetLibDestroyServiceChild ( + Private->Controller, +@@ -213,11 +210,11 @@ PxeBcDestroyIp4Children ( + // Close Dhcp4 for PxeBc->Dhcp4 and destroy the instance. + // + gBS->CloseProtocol ( +- Private->Dhcp4Child, +- &gEfiDhcp4ProtocolGuid, +- This->DriverBindingHandle, +- Private->Controller +- ); ++ Private->Dhcp4Child, ++ &gEfiDhcp4ProtocolGuid, ++ This->DriverBindingHandle, ++ Private->Controller ++ ); + + NetLibDestroyServiceChild ( + Private->Controller, +@@ -267,19 +264,19 @@ PxeBcDestroyIp4Children ( + Private->Snp + ); + } ++ + FreePool (Private->Ip4Nic); + } + +- Private->ArpChild = NULL; +- Private->Ip4Child = NULL; +- Private->Udp4WriteChild = NULL; +- Private->Udp4ReadChild = NULL; +- Private->Mtftp4Child = NULL; +- Private->Dhcp4Child = NULL; +- Private->Ip4Nic = NULL; ++ Private->ArpChild = NULL; ++ Private->Ip4Child = NULL; ++ Private->Udp4WriteChild = NULL; ++ Private->Udp4ReadChild = NULL; ++ Private->Mtftp4Child = NULL; ++ Private->Dhcp4Child = NULL; ++ Private->Ip4Nic = NULL; + } + +- + /** + Destroy the opened instances based on IPv6. + +@@ -293,18 +290,18 @@ PxeBcDestroyIp6Children ( + IN PXEBC_PRIVATE_DATA *Private + ) + { +- ASSERT(Private != NULL); ++ ASSERT (Private != NULL); + + if (Private->Ip6Child != NULL) { + // + // Close Ip6 for Ip6->Ip6Config and destroy the instance. + // + gBS->CloseProtocol ( +- Private->Ip6Child, +- &gEfiIp6ProtocolGuid, +- This->DriverBindingHandle, +- Private->Controller +- ); ++ Private->Ip6Child, ++ &gEfiIp6ProtocolGuid, ++ This->DriverBindingHandle, ++ Private->Controller ++ ); + + NetLibDestroyServiceChild ( + Private->Controller, +@@ -337,11 +334,11 @@ PxeBcDestroyIp6Children ( + // Close Udp6 for PxeBc->UdpRead and destroy the instance. + // + gBS->CloseProtocol ( +- Private->Udp6ReadChild, +- &gEfiUdp6ProtocolGuid, +- This->DriverBindingHandle, +- Private->Controller +- ); ++ Private->Udp6ReadChild, ++ &gEfiUdp6ProtocolGuid, ++ This->DriverBindingHandle, ++ Private->Controller ++ ); + NetLibDestroyServiceChild ( + Private->Controller, + This->DriverBindingHandle, +@@ -355,11 +352,11 @@ PxeBcDestroyIp6Children ( + // Close Mtftp6 for PxeBc->Mtftp and destroy the instance. + // + gBS->CloseProtocol ( +- Private->Mtftp6Child, +- &gEfiMtftp6ProtocolGuid, +- This->DriverBindingHandle, +- Private->Controller +- ); ++ Private->Mtftp6Child, ++ &gEfiMtftp6ProtocolGuid, ++ This->DriverBindingHandle, ++ Private->Controller ++ ); + + NetLibDestroyServiceChild ( + Private->Controller, +@@ -374,11 +371,11 @@ PxeBcDestroyIp6Children ( + // Close Dhcp6 for PxeBc->Dhcp and destroy the instance. + // + gBS->CloseProtocol ( +- Private->Dhcp6Child, +- &gEfiDhcp6ProtocolGuid, +- This->DriverBindingHandle, +- Private->Controller +- ); ++ Private->Dhcp6Child, ++ &gEfiDhcp6ProtocolGuid, ++ This->DriverBindingHandle, ++ Private->Controller ++ ); + + NetLibDestroyServiceChild ( + Private->Controller, +@@ -427,6 +424,7 @@ PxeBcDestroyIp6Children ( + Private->Snp + ); + } ++ + FreePool (Private->Ip6Nic); + } + +@@ -452,20 +450,20 @@ PxeBcDestroyIp6Children ( + **/ + EFI_STATUS + PxeBcCheckIpv6Support ( +- IN EFI_HANDLE ControllerHandle, +- IN PXEBC_PRIVATE_DATA *Private, +- OUT BOOLEAN *Ipv6Support ++ IN EFI_HANDLE ControllerHandle, ++ IN PXEBC_PRIVATE_DATA *Private, ++ OUT BOOLEAN *Ipv6Support + ) + { +- EFI_HANDLE Handle; +- EFI_ADAPTER_INFORMATION_PROTOCOL *Aip; +- EFI_STATUS Status; +- EFI_GUID *InfoTypesBuffer; +- UINTN InfoTypeBufferCount; +- UINTN TypeIndex; +- BOOLEAN Supported; +- VOID *InfoBlock; +- UINTN InfoBlockSize; ++ EFI_HANDLE Handle; ++ EFI_ADAPTER_INFORMATION_PROTOCOL *Aip; ++ EFI_STATUS Status; ++ EFI_GUID *InfoTypesBuffer; ++ UINTN InfoTypeBufferCount; ++ UINTN TypeIndex; ++ BOOLEAN Supported; ++ VOID *InfoBlock; ++ UINTN InfoBlockSize; + + ASSERT (Private != NULL && Ipv6Support != NULL); + +@@ -493,16 +491,16 @@ PxeBcCheckIpv6Support ( + Status = gBS->HandleProtocol ( + Handle, + &gEfiAdapterInformationProtocolGuid, +- (VOID *) &Aip ++ (VOID *)&Aip + ); +- if (EFI_ERROR (Status) || Aip == NULL) { ++ if (EFI_ERROR (Status) || (Aip == NULL)) { + return EFI_NOT_FOUND; + } + + InfoTypesBuffer = NULL; + InfoTypeBufferCount = 0; +- Status = Aip->GetSupportedTypes (Aip, &InfoTypesBuffer, &InfoTypeBufferCount); +- if (EFI_ERROR (Status) || InfoTypesBuffer == NULL) { ++ Status = Aip->GetSupportedTypes (Aip, &InfoTypesBuffer, &InfoTypeBufferCount); ++ if (EFI_ERROR (Status) || (InfoTypesBuffer == NULL)) { + FreePool (InfoTypesBuffer); + return EFI_NOT_FOUND; + } +@@ -525,16 +523,15 @@ PxeBcCheckIpv6Support ( + // + InfoBlock = NULL; + InfoBlockSize = 0; +- Status = Aip->GetInformation (Aip, &gEfiAdapterInfoUndiIpv6SupportGuid, &InfoBlock, &InfoBlockSize); +- if (EFI_ERROR (Status) || InfoBlock == NULL) { ++ Status = Aip->GetInformation (Aip, &gEfiAdapterInfoUndiIpv6SupportGuid, &InfoBlock, &InfoBlockSize); ++ if (EFI_ERROR (Status) || (InfoBlock == NULL)) { + FreePool (InfoBlock); + return EFI_NOT_FOUND; + } + +- *Ipv6Support = ((EFI_ADAPTER_INFO_UNDI_IPV6_SUPPORT *) InfoBlock)->Ipv6Support; ++ *Ipv6Support = ((EFI_ADAPTER_INFO_UNDI_IPV6_SUPPORT *)InfoBlock)->Ipv6Support; + FreePool (InfoBlock); + return EFI_SUCCESS; +- + } + + /** +@@ -555,14 +552,14 @@ PxeBcCreateIp4Children ( + IN PXEBC_PRIVATE_DATA *Private + ) + { +- EFI_STATUS Status; +- IPv4_DEVICE_PATH Ip4Node; +- EFI_PXE_BASE_CODE_MODE *Mode; +- EFI_UDP4_CONFIG_DATA *Udp4CfgData; +- EFI_IP4_CONFIG_DATA *Ip4CfgData; +- EFI_IP4_MODE_DATA Ip4ModeData; +- PXEBC_PRIVATE_PROTOCOL *Id; +- EFI_SIMPLE_NETWORK_PROTOCOL *Snp; ++ EFI_STATUS Status; ++ IPv4_DEVICE_PATH Ip4Node; ++ EFI_PXE_BASE_CODE_MODE *Mode; ++ EFI_UDP4_CONFIG_DATA *Udp4CfgData; ++ EFI_IP4_CONFIG_DATA *Ip4CfgData; ++ EFI_IP4_MODE_DATA Ip4ModeData; ++ PXEBC_PRIVATE_PROTOCOL *Id; ++ EFI_SIMPLE_NETWORK_PROTOCOL *Snp; + + if (Private->Ip4Nic != NULL) { + // +@@ -587,7 +584,7 @@ PxeBcCreateIp4Children ( + Status = gBS->OpenProtocol ( + Private->Dhcp4Child, + &gEfiDhcp4ProtocolGuid, +- (VOID **) &Private->Dhcp4, ++ (VOID **)&Private->Dhcp4, + This->DriverBindingHandle, + ControllerHandle, + EFI_OPEN_PROTOCOL_BY_DRIVER +@@ -612,7 +609,7 @@ PxeBcCreateIp4Children ( + Status = gBS->OpenProtocol ( + Private->Mtftp4Child, + &gEfiMtftp4ProtocolGuid, +- (VOID **) &Private->Mtftp4, ++ (VOID **)&Private->Mtftp4, + This->DriverBindingHandle, + ControllerHandle, + EFI_OPEN_PROTOCOL_BY_DRIVER +@@ -637,7 +634,7 @@ PxeBcCreateIp4Children ( + Status = gBS->OpenProtocol ( + Private->Udp4ReadChild, + &gEfiUdp4ProtocolGuid, +- (VOID **) &Private->Udp4Read, ++ (VOID **)&Private->Udp4Read, + This->DriverBindingHandle, + ControllerHandle, + EFI_OPEN_PROTOCOL_BY_DRIVER +@@ -662,7 +659,7 @@ PxeBcCreateIp4Children ( + Status = gBS->OpenProtocol ( + Private->Udp4WriteChild, + &gEfiUdp4ProtocolGuid, +- (VOID **) &Private->Udp4Write, ++ (VOID **)&Private->Udp4Write, + This->DriverBindingHandle, + ControllerHandle, + EFI_OPEN_PROTOCOL_BY_DRIVER +@@ -687,7 +684,7 @@ PxeBcCreateIp4Children ( + Status = gBS->OpenProtocol ( + Private->ArpChild, + &gEfiArpProtocolGuid, +- (VOID **) &Private->Arp, ++ (VOID **)&Private->Arp, + This->DriverBindingHandle, + ControllerHandle, + EFI_OPEN_PROTOCOL_BY_DRIVER +@@ -712,7 +709,7 @@ PxeBcCreateIp4Children ( + Status = gBS->OpenProtocol ( + Private->Ip4Child, + &gEfiIp4ProtocolGuid, +- (VOID **) &Private->Ip4, ++ (VOID **)&Private->Ip4, + This->DriverBindingHandle, + ControllerHandle, + EFI_OPEN_PROTOCOL_BY_DRIVER +@@ -739,13 +736,13 @@ PxeBcCreateIp4Children ( + Private->Ip4Nic->Private = Private; + Private->Ip4Nic->Signature = PXEBC_VIRTUAL_NIC_SIGNATURE; + +- // ++ // + // Locate Ip4->Ip4Config2 and store it for set IPv4 Policy. + // + Status = gBS->HandleProtocol ( + ControllerHandle, + &gEfiIp4Config2ProtocolGuid, +- (VOID **) &Private->Ip4Config2 ++ (VOID **)&Private->Ip4Config2 + ); + if (EFI_ERROR (Status)) { + goto ON_ERROR; +@@ -814,7 +811,7 @@ PxeBcCreateIp4Children ( + Status = gBS->OpenProtocol ( + Private->Ip4Nic->Controller, + &gEfiSimpleNetworkProtocolGuid, +- (VOID **) &Snp, ++ (VOID **)&Snp, + This->DriverBindingHandle, + Private->Ip4Nic->Controller, + EFI_OPEN_PROTOCOL_BY_DRIVER|EFI_OPEN_PROTOCOL_EXCLUSIVE +@@ -831,7 +828,7 @@ PxeBcCreateIp4Children ( + Status = gBS->OpenProtocol ( + ControllerHandle, + &gEfiCallerIdGuid, +- (VOID **) &Id, ++ (VOID **)&Id, + This->DriverBindingHandle, + Private->Ip4Nic->Controller, + EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER +@@ -843,9 +840,9 @@ PxeBcCreateIp4Children ( + // + // Set default configure data for Udp4Read and Ip4 instance. + // +- Mode = Private->PxeBc.Mode; +- Udp4CfgData = &Private->Udp4CfgData; +- Ip4CfgData = &Private->Ip4CfgData; ++ Mode = Private->PxeBc.Mode; ++ Udp4CfgData = &Private->Udp4CfgData; ++ Ip4CfgData = &Private->Ip4CfgData; + + Udp4CfgData->AcceptBroadcast = FALSE; + Udp4CfgData->AcceptAnyPort = TRUE; +@@ -855,12 +852,12 @@ PxeBcCreateIp4Children ( + Udp4CfgData->ReceiveTimeout = PXEBC_DEFAULT_LIFETIME; + Udp4CfgData->TransmitTimeout = PXEBC_DEFAULT_LIFETIME; + +- Ip4CfgData->AcceptIcmpErrors = TRUE; +- Ip4CfgData->DefaultProtocol = EFI_IP_PROTO_ICMP; +- Ip4CfgData->TypeOfService = Mode->ToS; +- Ip4CfgData->TimeToLive = Mode->TTL; +- Ip4CfgData->ReceiveTimeout = PXEBC_DEFAULT_LIFETIME; +- Ip4CfgData->TransmitTimeout = PXEBC_DEFAULT_LIFETIME; ++ Ip4CfgData->AcceptIcmpErrors = TRUE; ++ Ip4CfgData->DefaultProtocol = EFI_IP_PROTO_ICMP; ++ Ip4CfgData->TypeOfService = Mode->ToS; ++ Ip4CfgData->TimeToLive = Mode->TTL; ++ Ip4CfgData->ReceiveTimeout = PXEBC_DEFAULT_LIFETIME; ++ Ip4CfgData->TransmitTimeout = PXEBC_DEFAULT_LIFETIME; + + return EFI_SUCCESS; + +@@ -869,7 +866,6 @@ ON_ERROR: + return Status; + } + +- + /** + Create the opened instances based on IPv6. + +@@ -888,14 +884,14 @@ PxeBcCreateIp6Children ( + IN PXEBC_PRIVATE_DATA *Private + ) + { +- EFI_STATUS Status; +- IPv6_DEVICE_PATH Ip6Node; +- EFI_UDP6_CONFIG_DATA *Udp6CfgData; +- EFI_IP6_CONFIG_DATA *Ip6CfgData; +- EFI_IP6_MODE_DATA Ip6ModeData; +- PXEBC_PRIVATE_PROTOCOL *Id; +- EFI_SIMPLE_NETWORK_PROTOCOL *Snp; +- UINTN Index; ++ EFI_STATUS Status; ++ IPv6_DEVICE_PATH Ip6Node; ++ EFI_UDP6_CONFIG_DATA *Udp6CfgData; ++ EFI_IP6_CONFIG_DATA *Ip6CfgData; ++ EFI_IP6_MODE_DATA Ip6ModeData; ++ PXEBC_PRIVATE_PROTOCOL *Id; ++ EFI_SIMPLE_NETWORK_PROTOCOL *Snp; ++ UINTN Index; + + if (Private->Ip6Nic != NULL) { + // +@@ -929,7 +925,7 @@ PxeBcCreateIp6Children ( + Status = gBS->OpenProtocol ( + Private->Dhcp6Child, + &gEfiDhcp6ProtocolGuid, +- (VOID **) &Private->Dhcp6, ++ (VOID **)&Private->Dhcp6, + This->DriverBindingHandle, + ControllerHandle, + EFI_OPEN_PROTOCOL_BY_DRIVER +@@ -964,7 +960,7 @@ PxeBcCreateIp6Children ( + Status = gBS->OpenProtocol ( + Private->Mtftp6Child, + &gEfiMtftp6ProtocolGuid, +- (VOID **) &Private->Mtftp6, ++ (VOID **)&Private->Mtftp6, + This->DriverBindingHandle, + ControllerHandle, + EFI_OPEN_PROTOCOL_BY_DRIVER +@@ -989,7 +985,7 @@ PxeBcCreateIp6Children ( + Status = gBS->OpenProtocol ( + Private->Udp6ReadChild, + &gEfiUdp6ProtocolGuid, +- (VOID **) &Private->Udp6Read, ++ (VOID **)&Private->Udp6Read, + This->DriverBindingHandle, + ControllerHandle, + EFI_OPEN_PROTOCOL_BY_DRIVER +@@ -1014,7 +1010,7 @@ PxeBcCreateIp6Children ( + Status = gBS->OpenProtocol ( + Private->Udp6WriteChild, + &gEfiUdp6ProtocolGuid, +- (VOID **) &Private->Udp6Write, ++ (VOID **)&Private->Udp6Write, + This->DriverBindingHandle, + ControllerHandle, + EFI_OPEN_PROTOCOL_BY_DRIVER +@@ -1039,7 +1035,7 @@ PxeBcCreateIp6Children ( + Status = gBS->OpenProtocol ( + Private->Ip6Child, + &gEfiIp6ProtocolGuid, +- (VOID **) &Private->Ip6, ++ (VOID **)&Private->Ip6, + This->DriverBindingHandle, + ControllerHandle, + EFI_OPEN_PROTOCOL_BY_DRIVER +@@ -1088,7 +1084,7 @@ PxeBcCreateIp6Children ( + Status = gBS->HandleProtocol ( + ControllerHandle, + &gEfiIp6ConfigProtocolGuid, +- (VOID **) &Private->Ip6Cfg ++ (VOID **)&Private->Ip6Cfg + ); + if (EFI_ERROR (Status)) { + goto ON_ERROR; +@@ -1098,9 +1094,9 @@ PxeBcCreateIp6Children ( + // Create a device path node for Ipv6 virtual nic, and append it. + // + ZeroMem (&Ip6Node, sizeof (IPv6_DEVICE_PATH)); +- Ip6Node.Header.Type = MESSAGING_DEVICE_PATH; +- Ip6Node.Header.SubType = MSG_IPv6_DP; +- Ip6Node.PrefixLength = IP6_PREFIX_LENGTH; ++ Ip6Node.Header.Type = MESSAGING_DEVICE_PATH; ++ Ip6Node.Header.SubType = MSG_IPv6_DP; ++ Ip6Node.PrefixLength = IP6_PREFIX_LENGTH; + + SetDevicePathNodeLength (&Ip6Node.Header, sizeof (Ip6Node)); + +@@ -1157,7 +1153,7 @@ PxeBcCreateIp6Children ( + Status = gBS->OpenProtocol ( + Private->Ip6Nic->Controller, + &gEfiSimpleNetworkProtocolGuid, +- (VOID **) &Snp, ++ (VOID **)&Snp, + This->DriverBindingHandle, + Private->Ip6Nic->Controller, + EFI_OPEN_PROTOCOL_BY_DRIVER|EFI_OPEN_PROTOCOL_EXCLUSIVE +@@ -1174,7 +1170,7 @@ PxeBcCreateIp6Children ( + Status = gBS->OpenProtocol ( + ControllerHandle, + &gEfiCallerIdGuid, +- (VOID **) &Id, ++ (VOID **)&Id, + This->DriverBindingHandle, + Private->Ip6Nic->Controller, + EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER +@@ -1192,15 +1188,15 @@ PxeBcCreateIp6Children ( + // + // Fail to get the data whether UNDI supports IPv6. Set default value. + // +- Private->Mode.Ipv6Available = TRUE; ++ Private->Mode.Ipv6Available = TRUE; + } + + if (!Private->Mode.Ipv6Available) { + goto ON_ERROR; + } + +- Udp6CfgData = &Private->Udp6CfgData; +- Ip6CfgData = &Private->Ip6CfgData; ++ Udp6CfgData = &Private->Udp6CfgData; ++ Ip6CfgData = &Private->Ip6CfgData; + + Udp6CfgData->AcceptAnyPort = TRUE; + Udp6CfgData->AllowDuplicatePort = TRUE; +@@ -1208,11 +1204,11 @@ PxeBcCreateIp6Children ( + Udp6CfgData->ReceiveTimeout = PXEBC_DEFAULT_LIFETIME; + Udp6CfgData->TransmitTimeout = PXEBC_DEFAULT_LIFETIME; + +- Ip6CfgData->AcceptIcmpErrors = TRUE; +- Ip6CfgData->DefaultProtocol = IP6_ICMP; +- Ip6CfgData->HopLimit = PXEBC_DEFAULT_HOPLIMIT; +- Ip6CfgData->ReceiveTimeout = PXEBC_DEFAULT_LIFETIME; +- Ip6CfgData->TransmitTimeout = PXEBC_DEFAULT_LIFETIME; ++ Ip6CfgData->AcceptIcmpErrors = TRUE; ++ Ip6CfgData->DefaultProtocol = IP6_ICMP; ++ Ip6CfgData->HopLimit = PXEBC_DEFAULT_HOPLIMIT; ++ Ip6CfgData->ReceiveTimeout = PXEBC_DEFAULT_LIFETIME; ++ Ip6CfgData->TransmitTimeout = PXEBC_DEFAULT_LIFETIME; + + return EFI_SUCCESS; + +@@ -1221,7 +1217,6 @@ ON_ERROR: + return Status; + } + +- + /** + The entry point for UefiPxeBc driver that installs the driver + binding and component name protocol on its image. +@@ -1236,13 +1231,13 @@ ON_ERROR: + EFI_STATUS + EFIAPI + PxeBcDriverEntryPoint ( +- IN EFI_HANDLE ImageHandle, +- IN EFI_SYSTEM_TABLE *SystemTable ++ IN EFI_HANDLE ImageHandle, ++ IN EFI_SYSTEM_TABLE *SystemTable + ) + { + EFI_STATUS Status; + +- if ((PcdGet8(PcdIPv4PXESupport) == PXE_DISABLED) && (PcdGet8(PcdIPv6PXESupport) == PXE_DISABLED)) { ++ if ((PcdGet8 (PcdIPv4PXESupport) == PXE_DISABLED) && (PcdGet8 (PcdIPv6PXESupport) == PXE_DISABLED)) { + return EFI_UNSUPPORTED; + } + +@@ -1300,20 +1295,22 @@ PxeBcSupported ( + IN UINT8 IpVersion + ) + { +- EFI_STATUS Status; +- EFI_GUID *DhcpServiceBindingGuid; +- EFI_GUID *MtftpServiceBindingGuid; ++ EFI_STATUS Status; ++ EFI_GUID *DhcpServiceBindingGuid; ++ EFI_GUID *MtftpServiceBindingGuid; + + if (IpVersion == IP_VERSION_4) { +- if (PcdGet8(PcdIPv4PXESupport) == PXE_DISABLED) { ++ if (PcdGet8 (PcdIPv4PXESupport) == PXE_DISABLED) { + return EFI_UNSUPPORTED; + } ++ + DhcpServiceBindingGuid = &gEfiDhcp4ServiceBindingProtocolGuid; + MtftpServiceBindingGuid = &gEfiMtftp4ServiceBindingProtocolGuid; + } else { +- if (PcdGet8(PcdIPv6PXESupport) == PXE_DISABLED) { ++ if (PcdGet8 (PcdIPv6PXESupport) == PXE_DISABLED) { + return EFI_UNSUPPORTED; + } ++ + DhcpServiceBindingGuid = &gEfiDhcp6ServiceBindingProtocolGuid; + MtftpServiceBindingGuid = &gEfiMtftp6ServiceBindingProtocolGuid; + } +@@ -1322,22 +1319,22 @@ PxeBcSupported ( + // Try to open the Mtftp and Dhcp protocol to test whether IP stack is ready. + // + Status = gBS->OpenProtocol ( +- ControllerHandle, +- DhcpServiceBindingGuid, +- NULL, +- This->DriverBindingHandle, +- ControllerHandle, +- EFI_OPEN_PROTOCOL_TEST_PROTOCOL +- ); ++ ControllerHandle, ++ DhcpServiceBindingGuid, ++ NULL, ++ This->DriverBindingHandle, ++ ControllerHandle, ++ EFI_OPEN_PROTOCOL_TEST_PROTOCOL ++ ); + if (!EFI_ERROR (Status)) { + Status = gBS->OpenProtocol ( +- ControllerHandle, +- MtftpServiceBindingGuid, +- NULL, +- This->DriverBindingHandle, +- ControllerHandle, +- EFI_OPEN_PROTOCOL_TEST_PROTOCOL +- ); ++ ControllerHandle, ++ MtftpServiceBindingGuid, ++ NULL, ++ This->DriverBindingHandle, ++ ControllerHandle, ++ EFI_OPEN_PROTOCOL_TEST_PROTOCOL ++ ); + } + + // +@@ -1375,20 +1372,20 @@ PxeBcStart ( + IN UINT8 IpVersion + ) + { +- PXEBC_PRIVATE_DATA *Private; +- EFI_STATUS Status; +- PXEBC_PRIVATE_PROTOCOL *Id; +- BOOLEAN FirstStart; ++ PXEBC_PRIVATE_DATA *Private; ++ EFI_STATUS Status; ++ PXEBC_PRIVATE_PROTOCOL *Id; ++ BOOLEAN FirstStart; + + FirstStart = FALSE; +- Status = gBS->OpenProtocol ( +- ControllerHandle, +- &gEfiCallerIdGuid, +- (VOID **) &Id, +- This->DriverBindingHandle, +- ControllerHandle, +- EFI_OPEN_PROTOCOL_GET_PROTOCOL +- ); ++ Status = gBS->OpenProtocol ( ++ ControllerHandle, ++ &gEfiCallerIdGuid, ++ (VOID **)&Id, ++ This->DriverBindingHandle, ++ ControllerHandle, ++ EFI_OPEN_PROTOCOL_GET_PROTOCOL ++ ); + if (!EFI_ERROR (Status)) { + // + // Skip the initialization if the driver has been started already. +@@ -1425,7 +1422,7 @@ PxeBcStart ( + Status = gBS->OpenProtocol ( + ControllerHandle, + &gEfiDevicePathProtocolGuid, +- (VOID **) &Private->DevicePath, ++ (VOID **)&Private->DevicePath, + This->DriverBindingHandle, + ControllerHandle, + EFI_OPEN_PROTOCOL_GET_PROTOCOL +@@ -1441,7 +1438,7 @@ PxeBcStart ( + Status = gBS->OpenProtocol ( + ControllerHandle, + &gEfiNetworkInterfaceIdentifierProtocolGuid_31, +- (VOID **) &Private->Nii, ++ (VOID **)&Private->Nii, + This->DriverBindingHandle, + ControllerHandle, + EFI_OPEN_PROTOCOL_GET_PROTOCOL +@@ -1469,7 +1466,7 @@ PxeBcStart ( + // + // Try to locate SNP protocol. + // +- NetLibGetSnpHandle(ControllerHandle, &Private->Snp); ++ NetLibGetSnpHandle (ControllerHandle, &Private->Snp); + } + + if (IpVersion == IP_VERSION_4) { +@@ -1483,6 +1480,7 @@ PxeBcStart ( + // + Status = PxeBcCreateIp6Children (This, ControllerHandle, Private); + } ++ + if (EFI_ERROR (Status)) { + // + // Failed to start PXE driver if IPv4 and IPv6 stack are both not available. +@@ -1508,14 +1506,13 @@ ON_ERROR: + PxeBcDestroyIp6Children (This, Private); + } + +- if (FirstStart && Private != NULL) { ++ if (FirstStart && (Private != NULL)) { + FreePool (Private); + } + + return Status; + } + +- + /** + Stop this driver on ControllerHandle. This is the worker function for + PxeBcIp4(6)DriverBindingStop. +@@ -1542,12 +1539,12 @@ PxeBcStop ( + IN UINT8 IpVersion + ) + { +- PXEBC_PRIVATE_DATA *Private; +- PXEBC_VIRTUAL_NIC *VirtualNic; +- EFI_LOAD_FILE_PROTOCOL *LoadFile; +- EFI_STATUS Status; +- EFI_HANDLE NicHandle; +- PXEBC_PRIVATE_PROTOCOL *Id; ++ PXEBC_PRIVATE_DATA *Private; ++ PXEBC_VIRTUAL_NIC *VirtualNic; ++ EFI_LOAD_FILE_PROTOCOL *LoadFile; ++ EFI_STATUS Status; ++ EFI_HANDLE NicHandle; ++ PXEBC_PRIVATE_PROTOCOL *Id; + + Private = NULL; + NicHandle = NULL; +@@ -1558,7 +1555,7 @@ PxeBcStop ( + Status = gBS->OpenProtocol ( + ControllerHandle, + &gEfiLoadFileProtocolGuid, +- (VOID **) &LoadFile, ++ (VOID **)&LoadFile, + This->DriverBindingHandle, + ControllerHandle, + EFI_OPEN_PROTOCOL_GET_PROTOCOL +@@ -1572,6 +1569,7 @@ PxeBcStop ( + } else { + NicHandle = PxeBcGetNicByIp6Children (ControllerHandle); + } ++ + if (NicHandle == NULL) { + return EFI_SUCCESS; + } +@@ -1582,7 +1580,7 @@ PxeBcStop ( + Status = gBS->OpenProtocol ( + NicHandle, + &gEfiCallerIdGuid, +- (VOID **) &Id, ++ (VOID **)&Id, + This->DriverBindingHandle, + ControllerHandle, + EFI_OPEN_PROTOCOL_GET_PROTOCOL +@@ -1590,8 +1588,8 @@ PxeBcStop ( + if (EFI_ERROR (Status)) { + return Status; + } +- Private = PXEBC_PRIVATE_DATA_FROM_ID (Id); + ++ Private = PXEBC_PRIVATE_DATA_FROM_ID (Id); + } else { + // + // It's a virtual handle with LoadFileProtocol. +@@ -1599,7 +1597,7 @@ PxeBcStop ( + Status = gBS->OpenProtocol ( + ControllerHandle, + &gEfiLoadFileProtocolGuid, +- (VOID **) &LoadFile, ++ (VOID **)&LoadFile, + This->DriverBindingHandle, + ControllerHandle, + EFI_OPEN_PROTOCOL_GET_PROTOCOL +@@ -1617,20 +1615,19 @@ PxeBcStop ( + // Stop functionality of PXE Base Code protocol + // + Status = Private->PxeBc.Stop (&Private->PxeBc); +- if (Status != EFI_SUCCESS && Status != EFI_NOT_STARTED) { ++ if ((Status != EFI_SUCCESS) && (Status != EFI_NOT_STARTED)) { + return Status; + } + +- +- if (Private->Ip4Nic != NULL && IpVersion == IP_VERSION_4) { ++ if ((Private->Ip4Nic != NULL) && (IpVersion == IP_VERSION_4)) { + PxeBcDestroyIp4Children (This, Private); + } + +- if (Private->Ip6Nic != NULL && IpVersion == IP_VERSION_6) { ++ if ((Private->Ip6Nic != NULL) && (IpVersion == IP_VERSION_6)) { + PxeBcDestroyIp6Children (This, Private); + } + +- if (Private->Ip4Nic == NULL && Private->Ip6Nic == NULL) { ++ if ((Private->Ip4Nic == NULL) && (Private->Ip6Nic == NULL)) { + gBS->UninstallProtocolInterface ( + NicHandle, + &gEfiCallerIdGuid, +-- +2.39.3 + diff --git a/edk2-NetworkPkg-SECURITY-PATCH-CVE-2023-45237.patch b/edk2-NetworkPkg-SECURITY-PATCH-CVE-2023-45237.patch new file mode 100644 index 0000000..92ddff3 --- /dev/null +++ b/edk2-NetworkPkg-SECURITY-PATCH-CVE-2023-45237.patch @@ -0,0 +1,1252 @@ +From 43f2ff1b06ea010f06cdef68eebc9e0280489477 Mon Sep 17 00:00:00 2001 +From: Jon Maloy +Date: Tue, 11 Jun 2024 15:19:39 -0400 +Subject: [PATCH 24/31] NetworkPkg: SECURITY PATCH CVE-2023-45237 + +RH-Author: Jon Maloy +RH-MergeRequest: 77: UINT32 overflow in S3 ResumeCount and Pixiefail fixes +RH-Jira: RHEL-21854 RHEL-21856 RHEL-40099 +RH-Acked-by: Gerd Hoffmann +RH-Commit: [24/31] 3fc9b5e3d0ab3a20c139601292fed66a6a089644 + +JIRA: https://issues.redhat.com/browse/RHEL-21856 +Upstream: Merged +CVE: CVE-2023-45237 +Conflicts: Did not add NetworkPkg/SecurityFixes.yaml + +commit 4c4ceb2ceb80c42fd5545b2a4bd80321f07f4345 +Author: Doug Flick +Date: Wed May 8 22:56:28 2024 -0700 + + NetworkPkg: SECURITY PATCH CVE-2023-45237 + + REF:https://bugzilla.tianocore.org/show_bug.cgi?id=4542 + + Bug Overview: + PixieFail Bug #9 + CVE-2023-45237 + CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N + CWE-338 Use of Cryptographically Weak Pseudo-Random Number Generator (PRNG) + + Use of a Weak PseudoRandom Number Generator + + Change Overview: + + Updates all Instances of NET_RANDOM (NetRandomInitSeed ()) to either + + > + > EFI_STATUS + > EFIAPI + > PseudoRandomU32 ( + > OUT UINT32 *Output + > ); + > + + or (depending on the use case) + + > + > EFI_STATUS + > EFIAPI + > PseudoRandom ( + > OUT VOID *Output, + > IN UINTN OutputLength + > ); + > + + This is because the use of + + Example: + + The following code snippet PseudoRandomU32 () function is used: + + > + > UINT32 Random; + > + > Status = PseudoRandomU32 (&Random); + > if (EFI_ERROR (Status)) { + > DEBUG ((DEBUG_ERROR, "%a failed to generate random number: %r\n", + __func__, Status)); + > return Status; + > } + > + This also introduces a new PCD to enable/disable the use of the + secure implementation of algorithms for PseudoRandom () and + instead depend on the default implementation. This may be required for + some platforms where the UEFI Spec defined algorithms are not available. + + > + > PcdEnforceSecureRngAlgorithms + > + + If the platform does not have any one of the UEFI defined + secure RNG algorithms then the driver will assert. + + Cc: Saloni Kasbekar + Cc: Zachary Clark-williams + + Signed-off-by: Doug Flick [MSFT] + Reviewed-by: Saloni Kasbekar + +Signed-off-by: Jon Maloy +--- + NetworkPkg/Dhcp4Dxe/Dhcp4Driver.c | 10 +- + NetworkPkg/Dhcp6Dxe/Dhcp6Driver.c | 11 +- + NetworkPkg/DnsDxe/DnsDhcp.c | 10 +- + NetworkPkg/DnsDxe/DnsImpl.c | 11 +- + NetworkPkg/HttpBootDxe/HttpBootDhcp6.c | 10 +- + NetworkPkg/IScsiDxe/IScsiCHAP.c | 19 ++- + NetworkPkg/IScsiDxe/IScsiMisc.c | 14 +-- + NetworkPkg/IScsiDxe/IScsiMisc.h | 6 +- + NetworkPkg/Include/Library/NetLib.h | 40 +++++-- + NetworkPkg/Ip4Dxe/Ip4Driver.c | 10 +- + NetworkPkg/Ip6Dxe/Ip6ConfigImpl.c | 9 +- + NetworkPkg/Ip6Dxe/Ip6Driver.c | 17 ++- + NetworkPkg/Ip6Dxe/Ip6If.c | 12 +- + NetworkPkg/Ip6Dxe/Ip6Mld.c | 12 +- + NetworkPkg/Ip6Dxe/Ip6Nd.c | 33 +++++- + NetworkPkg/Ip6Dxe/Ip6Nd.h | 8 +- + NetworkPkg/Library/DxeNetLib/DxeNetLib.c | 130 ++++++++++++++++++--- + NetworkPkg/Library/DxeNetLib/DxeNetLib.inf | 14 ++- + NetworkPkg/NetworkPkg.dec | 7 ++ + NetworkPkg/TcpDxe/TcpDriver.c | 15 ++- + NetworkPkg/TcpDxe/TcpDxe.inf | 3 + + NetworkPkg/Udp4Dxe/Udp4Driver.c | 10 +- + NetworkPkg/Udp6Dxe/Udp6Driver.c | 11 +- + NetworkPkg/UefiPxeBcDxe/PxeBcDhcp4.c | 9 +- + NetworkPkg/UefiPxeBcDxe/PxeBcDhcp6.c | 11 +- + NetworkPkg/UefiPxeBcDxe/PxeBcDriver.c | 12 +- + 26 files changed, 371 insertions(+), 83 deletions(-) + +diff --git a/NetworkPkg/Dhcp4Dxe/Dhcp4Driver.c b/NetworkPkg/Dhcp4Dxe/Dhcp4Driver.c +index 8c37e93be3..892caee368 100644 +--- a/NetworkPkg/Dhcp4Dxe/Dhcp4Driver.c ++++ b/NetworkPkg/Dhcp4Dxe/Dhcp4Driver.c +@@ -1,6 +1,7 @@ + /** @file + + Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
++Copyright (c) Microsoft Corporation + SPDX-License-Identifier: BSD-2-Clause-Patent + + **/ +@@ -189,6 +190,13 @@ Dhcp4CreateService ( + { + DHCP_SERVICE *DhcpSb; + EFI_STATUS Status; ++ UINT32 Random; ++ ++ Status = PseudoRandomU32 (&Random); ++ if (EFI_ERROR (Status)) { ++ DEBUG ((DEBUG_ERROR, "%a failed to generate random number: %r\n", __func__, Status)); ++ return Status; ++ } + + *Service = NULL; + DhcpSb = AllocateZeroPool (sizeof (DHCP_SERVICE)); +@@ -203,7 +211,7 @@ Dhcp4CreateService ( + DhcpSb->Image = ImageHandle; + InitializeListHead (&DhcpSb->Children); + DhcpSb->DhcpState = Dhcp4Stopped; +- DhcpSb->Xid = NET_RANDOM (NetRandomInitSeed ()); ++ DhcpSb->Xid = Random; + CopyMem ( + &DhcpSb->ServiceBinding, + &mDhcp4ServiceBindingTemplate, +diff --git a/NetworkPkg/Dhcp6Dxe/Dhcp6Driver.c b/NetworkPkg/Dhcp6Dxe/Dhcp6Driver.c +index b591a4605b..e7f2787a98 100644 +--- a/NetworkPkg/Dhcp6Dxe/Dhcp6Driver.c ++++ b/NetworkPkg/Dhcp6Dxe/Dhcp6Driver.c +@@ -3,7 +3,7 @@ + implementation for Dhcp6 Driver. + + Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.
+- ++ Copyright (c) Microsoft Corporation + SPDX-License-Identifier: BSD-2-Clause-Patent + + **/ +@@ -123,6 +123,13 @@ Dhcp6CreateService ( + { + DHCP6_SERVICE *Dhcp6Srv; + EFI_STATUS Status; ++ UINT32 Random; ++ ++ Status = PseudoRandomU32 (&Random); ++ if (EFI_ERROR (Status)) { ++ DEBUG ((DEBUG_ERROR, "%a failed to generate random number: %r\n", __func__, Status)); ++ return Status; ++ } + + *Service = NULL; + Dhcp6Srv = AllocateZeroPool (sizeof (DHCP6_SERVICE)); +@@ -147,7 +154,7 @@ Dhcp6CreateService ( + Dhcp6Srv->Signature = DHCP6_SERVICE_SIGNATURE; + Dhcp6Srv->Controller = Controller; + Dhcp6Srv->Image = ImageHandle; +- Dhcp6Srv->Xid = (0xffffff & NET_RANDOM (NetRandomInitSeed ())); ++ Dhcp6Srv->Xid = (0xffffff & Random); + + CopyMem ( + &Dhcp6Srv->ServiceBinding, +diff --git a/NetworkPkg/DnsDxe/DnsDhcp.c b/NetworkPkg/DnsDxe/DnsDhcp.c +index 933565a32d..9eb3c1d2d8 100644 +--- a/NetworkPkg/DnsDxe/DnsDhcp.c ++++ b/NetworkPkg/DnsDxe/DnsDhcp.c +@@ -2,6 +2,7 @@ + Functions implementation related with DHCPv4/v6 for DNS driver. + + Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.
++Copyright (c) Microsoft Corporation + SPDX-License-Identifier: BSD-2-Clause-Patent + + **/ +@@ -277,6 +278,7 @@ GetDns4ServerFromDhcp4 ( + EFI_DHCP4_TRANSMIT_RECEIVE_TOKEN Token; + BOOLEAN IsDone; + UINTN Index; ++ UINT32 Random; + + Image = Instance->Service->ImageHandle; + Controller = Instance->Service->ControllerHandle; +@@ -292,6 +294,12 @@ GetDns4ServerFromDhcp4 ( + Data = NULL; + InterfaceInfo = NULL; + ++ Status = PseudoRandomU32 (&Random); ++ if (EFI_ERROR (Status)) { ++ DEBUG ((DEBUG_ERROR, "%a failed to generate random number: %r\n", __func__, Status)); ++ return Status; ++ } ++ + ZeroMem ((UINT8 *)ParaList, sizeof (ParaList)); + + ZeroMem (&MnpConfigData, sizeof (EFI_MANAGED_NETWORK_CONFIG_DATA)); +@@ -467,7 +475,7 @@ GetDns4ServerFromDhcp4 ( + + Status = Dhcp4->Build (Dhcp4, &SeedPacket, 0, NULL, 2, ParaList, &Token.Packet); + +- Token.Packet->Dhcp4.Header.Xid = HTONL (NET_RANDOM (NetRandomInitSeed ())); ++ Token.Packet->Dhcp4.Header.Xid = Random; + + Token.Packet->Dhcp4.Header.Reserved = HTONS ((UINT16)0x8000); + +diff --git a/NetworkPkg/DnsDxe/DnsImpl.c b/NetworkPkg/DnsDxe/DnsImpl.c +index d311812800..c2629bb8df 100644 +--- a/NetworkPkg/DnsDxe/DnsImpl.c ++++ b/NetworkPkg/DnsDxe/DnsImpl.c +@@ -2,6 +2,7 @@ + DnsDxe support functions implementation. + + Copyright (c) 2016 - 2018, Intel Corporation. All rights reserved.
++Copyright (c) Microsoft Corporation + SPDX-License-Identifier: BSD-2-Clause-Patent + + **/ +@@ -1963,6 +1964,14 @@ ConstructDNSQuery ( + NET_FRAGMENT Frag; + DNS_HEADER *DnsHeader; + DNS_QUERY_SECTION *DnsQuery; ++ EFI_STATUS Status; ++ UINT32 Random; ++ ++ Status = PseudoRandomU32 (&Random); ++ if (EFI_ERROR (Status)) { ++ DEBUG ((DEBUG_ERROR, "%a failed to generate random number: %r\n", __func__, Status)); ++ return Status; ++ } + + // + // Messages carried by UDP are restricted to 512 bytes (not counting the IP +@@ -1977,7 +1986,7 @@ ConstructDNSQuery ( + // Fill header + // + DnsHeader = (DNS_HEADER *)Frag.Bulk; +- DnsHeader->Identification = (UINT16)NET_RANDOM (NetRandomInitSeed ()); ++ DnsHeader->Identification = (UINT16)Random; + DnsHeader->Flags.Uint16 = 0x0000; + DnsHeader->Flags.Bits.RD = 1; + DnsHeader->Flags.Bits.OpCode = DNS_FLAGS_OPCODE_STANDARD; +diff --git a/NetworkPkg/HttpBootDxe/HttpBootDhcp6.c b/NetworkPkg/HttpBootDxe/HttpBootDhcp6.c +index b22cef4ff5..f964515b0f 100644 +--- a/NetworkPkg/HttpBootDxe/HttpBootDhcp6.c ++++ b/NetworkPkg/HttpBootDxe/HttpBootDhcp6.c +@@ -2,6 +2,7 @@ + Functions implementation related with DHCPv6 for HTTP boot driver. + + Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.
++Copyright (c) Microsoft Corporation + SPDX-License-Identifier: BSD-2-Clause-Patent + + **/ +@@ -951,6 +952,7 @@ HttpBootDhcp6Sarr ( + UINT32 OptCount; + UINT8 Buffer[HTTP_BOOT_DHCP6_OPTION_MAX_SIZE]; + EFI_STATUS Status; ++ UINT32 Random; + + Dhcp6 = Private->Dhcp6; + ASSERT (Dhcp6 != NULL); +@@ -961,6 +963,12 @@ HttpBootDhcp6Sarr ( + OptCount = HttpBootBuildDhcp6Options (Private, OptList, Buffer); + ASSERT (OptCount > 0); + ++ Status = PseudoRandomU32 (&Random); ++ if (EFI_ERROR (Status)) { ++ DEBUG ((DEBUG_ERROR, "%a failed to generate random number: %r\n", __func__, Status)); ++ return Status; ++ } ++ + Retransmit = AllocateZeroPool (sizeof (EFI_DHCP6_RETRANSMISSION)); + if (Retransmit == NULL) { + return EFI_OUT_OF_RESOURCES; +@@ -976,7 +984,7 @@ HttpBootDhcp6Sarr ( + Config.IaInfoEvent = NULL; + Config.RapidCommit = FALSE; + Config.ReconfigureAccept = FALSE; +- Config.IaDescriptor.IaId = NET_RANDOM (NetRandomInitSeed ()); ++ Config.IaDescriptor.IaId = Random; + Config.IaDescriptor.Type = EFI_DHCP6_IA_TYPE_NA; + Config.SolicitRetransmission = Retransmit; + Retransmit->Irt = 4; +diff --git a/NetworkPkg/IScsiDxe/IScsiCHAP.c b/NetworkPkg/IScsiDxe/IScsiCHAP.c +index b507f11cd4..bebb1ac29b 100644 +--- a/NetworkPkg/IScsiDxe/IScsiCHAP.c ++++ b/NetworkPkg/IScsiDxe/IScsiCHAP.c +@@ -3,6 +3,7 @@ + Configuration. + + Copyright (c) 2004 - 2018, Intel Corporation. All rights reserved.
++Copyright (c) Microsoft Corporation + SPDX-License-Identifier: BSD-2-Clause-Patent + + **/ +@@ -576,16 +577,24 @@ IScsiCHAPToSendReq ( + // + // CHAP_I= + // +- IScsiGenRandom ((UINT8 *)&AuthData->OutIdentifier, 1); ++ Status = IScsiGenRandom ((UINT8 *)&AuthData->OutIdentifier, 1); ++ if (EFI_ERROR (Status)) { ++ break; ++ } ++ + AsciiSPrint (ValueStr, sizeof (ValueStr), "%d", AuthData->OutIdentifier); + IScsiAddKeyValuePair (Pdu, ISCSI_KEY_CHAP_IDENTIFIER, ValueStr); + // + // CHAP_C= + // +- IScsiGenRandom ( +- (UINT8 *)AuthData->OutChallenge, +- AuthData->Hash->DigestSize +- ); ++ Status = IScsiGenRandom ( ++ (UINT8 *)AuthData->OutChallenge, ++ AuthData->Hash->DigestSize ++ ); ++ if (EFI_ERROR (Status)) { ++ break; ++ } ++ + BinToHexStatus = IScsiBinToHex ( + (UINT8 *)AuthData->OutChallenge, + AuthData->Hash->DigestSize, +diff --git a/NetworkPkg/IScsiDxe/IScsiMisc.c b/NetworkPkg/IScsiDxe/IScsiMisc.c +index b3ea90158f..cd77f1a13e 100644 +--- a/NetworkPkg/IScsiDxe/IScsiMisc.c ++++ b/NetworkPkg/IScsiDxe/IScsiMisc.c +@@ -2,6 +2,7 @@ + Miscellaneous routines for iSCSI driver. + + Copyright (c) 2004 - 2018, Intel Corporation. All rights reserved.
++Copyright (c) Microsoft Corporation + SPDX-License-Identifier: BSD-2-Clause-Patent + + **/ +@@ -474,20 +475,17 @@ IScsiNetNtoi ( + @param[in, out] Rand The buffer to contain random numbers. + @param[in] RandLength The length of the Rand buffer. + ++ @retval EFI_SUCCESS on success ++ @retval others on error ++ + **/ +-VOID ++EFI_STATUS + IScsiGenRandom ( + IN OUT UINT8 *Rand, + IN UINTN RandLength + ) + { +- UINT32 Random; +- +- while (RandLength > 0) { +- Random = NET_RANDOM (NetRandomInitSeed ()); +- *Rand++ = (UINT8)(Random); +- RandLength--; +- } ++ return PseudoRandom (Rand, RandLength); + } + + /** +diff --git a/NetworkPkg/IScsiDxe/IScsiMisc.h b/NetworkPkg/IScsiDxe/IScsiMisc.h +index fddef4f466..a8f814f7b8 100644 +--- a/NetworkPkg/IScsiDxe/IScsiMisc.h ++++ b/NetworkPkg/IScsiDxe/IScsiMisc.h +@@ -2,6 +2,7 @@ + Miscellaneous definitions for iSCSI driver. + + Copyright (c) 2004 - 2018, Intel Corporation. All rights reserved.
++Copyright (c) Microsoft Corporation + SPDX-License-Identifier: BSD-2-Clause-Patent + + **/ +@@ -205,8 +206,11 @@ IScsiNetNtoi ( + @param[in, out] Rand The buffer to contain random numbers. + @param[in] RandLength The length of the Rand buffer. + ++ @retval EFI_SUCCESS on success ++ @retval others on error ++ + **/ +-VOID ++EFI_STATUS + IScsiGenRandom ( + IN OUT UINT8 *Rand, + IN UINTN RandLength +diff --git a/NetworkPkg/Include/Library/NetLib.h b/NetworkPkg/Include/Library/NetLib.h +index 53495aa494..8c05e3da47 100644 +--- a/NetworkPkg/Include/Library/NetLib.h ++++ b/NetworkPkg/Include/Library/NetLib.h +@@ -3,6 +3,7 @@ + It provides basic functions for the UEFI network stack. + + Copyright (c) 2005 - 2018, Intel Corporation. All rights reserved.
++Copyright (c) Microsoft Corporation + SPDX-License-Identifier: BSD-2-Clause-Patent + + **/ +@@ -539,8 +540,6 @@ extern EFI_IPv4_ADDRESS mZeroIp4Addr; + #define TICKS_PER_MS 10000U + #define TICKS_PER_SECOND 10000000U + +-#define NET_RANDOM(Seed) ((UINT32) ((UINT32) (Seed) * 1103515245UL + 12345) % 4294967295UL) +- + /** + Extract a UINT32 from a byte stream. + +@@ -580,19 +579,40 @@ NetPutUint32 ( + ); + + /** +- Initialize a random seed using current time and monotonic count. ++ Generate a Random output data given a length. + +- Get current time and monotonic count first. Then initialize a random seed +- based on some basic mathematics operation on the hour, day, minute, second, +- nanosecond and year of the current time and the monotonic count value. ++ @param[out] Output - The buffer to store the generated random data. ++ @param[in] OutputLength - The length of the output buffer. + +- @return The random seed initialized with current time. ++ @retval EFI_SUCCESS On Success ++ @retval EFI_INVALID_PARAMETER Pointer is null or size is zero ++ @retval EFI_NOT_FOUND RNG protocol not found ++ @retval Others Error from RngProtocol->GetRNG() + ++ @return Status code + **/ +-UINT32 ++EFI_STATUS + EFIAPI +-NetRandomInitSeed ( +- VOID ++PseudoRandom ( ++ OUT VOID *Output, ++ IN UINTN OutputLength ++ ); ++ ++/** ++ Generate a 32-bit pseudo-random number. ++ ++ @param[out] Output - The buffer to store the generated random number. ++ ++ @retval EFI_SUCCESS On Success ++ @retval EFI_NOT_FOUND RNG protocol not found ++ @retval Others Error from RngProtocol->GetRNG() ++ ++ @return Status code ++**/ ++EFI_STATUS ++EFIAPI ++PseudoRandomU32 ( ++ OUT UINT32 *Output + ); + + #define NET_LIST_USER_STRUCT(Entry, Type, Field) \ +diff --git a/NetworkPkg/Ip4Dxe/Ip4Driver.c b/NetworkPkg/Ip4Dxe/Ip4Driver.c +index ec483ff01f..683423f38d 100644 +--- a/NetworkPkg/Ip4Dxe/Ip4Driver.c ++++ b/NetworkPkg/Ip4Dxe/Ip4Driver.c +@@ -2,6 +2,7 @@ + The driver binding and service binding protocol for IP4 driver. + + Copyright (c) 2005 - 2019, Intel Corporation. All rights reserved.
++Copyright (c) Microsoft Corporation + (C) Copyright 2015 Hewlett-Packard Development Company, L.P.
+ + SPDX-License-Identifier: BSD-2-Clause-Patent +@@ -549,11 +550,18 @@ Ip4DriverBindingStart ( + EFI_IP4_CONFIG2_PROTOCOL *Ip4Cfg2; + UINTN Index; + IP4_CONFIG2_DATA_ITEM *DataItem; ++ UINT32 Random; + + IpSb = NULL; + Ip4Cfg2 = NULL; + DataItem = NULL; + ++ Status = PseudoRandomU32 (&Random); ++ if (EFI_ERROR (Status)) { ++ DEBUG ((DEBUG_ERROR, "%a failed to generate random number: %r\n", __func__, Status)); ++ return Status; ++ } ++ + // + // Test for the Ip4 service binding protocol + // +@@ -653,7 +661,7 @@ Ip4DriverBindingStart ( + // + // Initialize the IP4 ID + // +- mIp4Id = (UINT16)NET_RANDOM (NetRandomInitSeed ()); ++ mIp4Id = (UINT16)Random; + + return Status; + +diff --git a/NetworkPkg/Ip6Dxe/Ip6ConfigImpl.c b/NetworkPkg/Ip6Dxe/Ip6ConfigImpl.c +index ab38013369..a79fc89821 100644 +--- a/NetworkPkg/Ip6Dxe/Ip6ConfigImpl.c ++++ b/NetworkPkg/Ip6Dxe/Ip6ConfigImpl.c +@@ -2294,6 +2294,13 @@ Ip6ConfigInitInstance ( + UINTN Index; + UINT16 IfIndex; + IP6_CONFIG_DATA_ITEM *DataItem; ++ UINT32 Random; ++ ++ Status = PseudoRandomU32 (&Random); ++ if (EFI_ERROR (Status)) { ++ DEBUG ((DEBUG_ERROR, "%a failed to generate random number: %r\n", __func__, Status)); ++ return Status; ++ } + + IpSb = IP6_SERVICE_FROM_IP6_CONFIG_INSTANCE (Instance); + +@@ -2399,7 +2406,7 @@ Ip6ConfigInitInstance ( + // The NV variable is not set, so generate a random IAID, and write down the + // fresh new configuration as the NV variable now. + // +- Instance->IaId = NET_RANDOM (NetRandomInitSeed ()); ++ Instance->IaId = Random; + + for (Index = 0; Index < IpSb->SnpMode.HwAddressSize; Index++) { + Instance->IaId |= (IpSb->SnpMode.CurrentAddress.Addr[Index] << ((Index << 3) & 31)); +diff --git a/NetworkPkg/Ip6Dxe/Ip6Driver.c b/NetworkPkg/Ip6Dxe/Ip6Driver.c +index 7c13d6a3d4..b73fcb4828 100644 +--- a/NetworkPkg/Ip6Dxe/Ip6Driver.c ++++ b/NetworkPkg/Ip6Dxe/Ip6Driver.c +@@ -3,7 +3,7 @@ + + Copyright (c) 2009 - 2019, Intel Corporation. All rights reserved.
+ (C) Copyright 2015 Hewlett-Packard Development Company, L.P.
+- ++ Copyright (c) Microsoft Corporation + SPDX-License-Identifier: BSD-2-Clause-Patent + + **/ +@@ -315,7 +315,11 @@ Ip6CreateService ( + IpSb->CurHopLimit = IP6_HOP_LIMIT; + IpSb->LinkMTU = IP6_MIN_LINK_MTU; + IpSb->BaseReachableTime = IP6_REACHABLE_TIME; +- Ip6UpdateReachableTime (IpSb); ++ Status = Ip6UpdateReachableTime (IpSb); ++ if (EFI_ERROR (Status)) { ++ goto ON_ERROR; ++ } ++ + // + // RFC4861 RETRANS_TIMER: 1,000 milliseconds + // +@@ -515,11 +519,18 @@ Ip6DriverBindingStart ( + EFI_STATUS Status; + EFI_IP6_CONFIG_PROTOCOL *Ip6Cfg; + IP6_CONFIG_DATA_ITEM *DataItem; ++ UINT32 Random; + + IpSb = NULL; + Ip6Cfg = NULL; + DataItem = NULL; + ++ Status = PseudoRandomU32 (&Random); ++ if (EFI_ERROR (Status)) { ++ DEBUG ((DEBUG_ERROR, "%a failed to generate random number: %r\n", __func__, Status)); ++ return Status; ++ } ++ + // + // Test for the Ip6 service binding protocol + // +@@ -655,7 +666,7 @@ Ip6DriverBindingStart ( + // + // Initialize the IP6 ID + // +- mIp6Id = NET_RANDOM (NetRandomInitSeed ()); ++ mIp6Id = Random; + + return EFI_SUCCESS; + +diff --git a/NetworkPkg/Ip6Dxe/Ip6If.c b/NetworkPkg/Ip6Dxe/Ip6If.c +index 4629c05f25..f3d11c4d21 100644 +--- a/NetworkPkg/Ip6Dxe/Ip6If.c ++++ b/NetworkPkg/Ip6Dxe/Ip6If.c +@@ -2,7 +2,7 @@ + Implement IP6 pseudo interface. + + Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.
+- ++ Copyright (c) Microsoft Corporation + SPDX-License-Identifier: BSD-2-Clause-Patent + + **/ +@@ -89,6 +89,14 @@ Ip6SetAddress ( + IP6_PREFIX_LIST_ENTRY *PrefixEntry; + UINT64 Delay; + IP6_DELAY_JOIN_LIST *DelayNode; ++ EFI_STATUS Status; ++ UINT32 Random; ++ ++ Status = PseudoRandomU32 (&Random); ++ if (EFI_ERROR (Status)) { ++ DEBUG ((DEBUG_ERROR, "%a failed to generate random number: %r\n", __func__, Status)); ++ return Status; ++ } + + NET_CHECK_SIGNATURE (Interface, IP6_INTERFACE_SIGNATURE); + +@@ -164,7 +172,7 @@ Ip6SetAddress ( + // Thus queue the address to be processed in Duplicate Address Detection module + // after the delay time (in milliseconds). + // +- Delay = (UINT64)NET_RANDOM (NetRandomInitSeed ()); ++ Delay = (UINT64)Random; + Delay = MultU64x32 (Delay, IP6_ONE_SECOND_IN_MS); + Delay = RShiftU64 (Delay, 32); + +diff --git a/NetworkPkg/Ip6Dxe/Ip6Mld.c b/NetworkPkg/Ip6Dxe/Ip6Mld.c +index e6b2b653e2..498a118543 100644 +--- a/NetworkPkg/Ip6Dxe/Ip6Mld.c ++++ b/NetworkPkg/Ip6Dxe/Ip6Mld.c +@@ -696,7 +696,15 @@ Ip6UpdateDelayTimer ( + IN OUT IP6_MLD_GROUP *Group + ) + { +- UINT32 Delay; ++ UINT32 Delay; ++ EFI_STATUS Status; ++ UINT32 Random; ++ ++ Status = PseudoRandomU32 (&Random); ++ if (EFI_ERROR (Status)) { ++ DEBUG ((DEBUG_ERROR, "%a failed to generate random number: %r\n", __func__, Status)); ++ return Status; ++ } + + // + // If the Query packet specifies a Maximum Response Delay of zero, perform timer +@@ -715,7 +723,7 @@ Ip6UpdateDelayTimer ( + // is less than the remaining value of the running timer. + // + if ((Group->DelayTimer == 0) || (Delay < Group->DelayTimer)) { +- Group->DelayTimer = Delay / 4294967295UL * NET_RANDOM (NetRandomInitSeed ()); ++ Group->DelayTimer = Delay / 4294967295UL * Random; + } + + return EFI_SUCCESS; +diff --git a/NetworkPkg/Ip6Dxe/Ip6Nd.c b/NetworkPkg/Ip6Dxe/Ip6Nd.c +index c10c7017f8..72aa45c10f 100644 +--- a/NetworkPkg/Ip6Dxe/Ip6Nd.c ++++ b/NetworkPkg/Ip6Dxe/Ip6Nd.c +@@ -2,7 +2,7 @@ + Implementation of Neighbor Discovery support routines. + + Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.
+- ++ Copyright (c) Microsoft Corporation + SPDX-License-Identifier: BSD-2-Clause-Patent + + **/ +@@ -16,17 +16,28 @@ EFI_MAC_ADDRESS mZeroMacAddress; + + @param[in, out] IpSb Points to the IP6_SERVICE. + ++ @retval EFI_SUCCESS ReachableTime Updated ++ @retval others Failed to update ReachableTime + **/ +-VOID ++EFI_STATUS + Ip6UpdateReachableTime ( + IN OUT IP6_SERVICE *IpSb + ) + { +- UINT32 Random; ++ UINT32 Random; ++ EFI_STATUS Status; + +- Random = (NetRandomInitSeed () / 4294967295UL) * IP6_RANDOM_FACTOR_SCALE; ++ Status = PseudoRandomU32 (&Random); ++ if (EFI_ERROR (Status)) { ++ DEBUG ((DEBUG_ERROR, "%a failed to generate random number: %r\n", __func__, Status)); ++ return Status; ++ } ++ ++ Random = (Random / 4294967295UL) * IP6_RANDOM_FACTOR_SCALE; + Random = Random + IP6_MIN_RANDOM_FACTOR_SCALED; + IpSb->ReachableTime = (IpSb->BaseReachableTime * Random) / IP6_RANDOM_FACTOR_SCALE; ++ ++ return EFI_SUCCESS; + } + + /** +@@ -972,10 +983,17 @@ Ip6InitDADProcess ( + IP6_SERVICE *IpSb; + EFI_STATUS Status; + UINT32 MaxDelayTick; ++ UINT32 Random; + + NET_CHECK_SIGNATURE (IpIf, IP6_INTERFACE_SIGNATURE); + ASSERT (AddressInfo != NULL); + ++ Status = PseudoRandomU32 (&Random); ++ if (EFI_ERROR (Status)) { ++ DEBUG ((DEBUG_ERROR, "%a failed to generate random number: %r\n", __func__, Status)); ++ return Status; ++ } ++ + // + // Do nothing if we have already started DAD on the address. + // +@@ -1014,7 +1032,7 @@ Ip6InitDADProcess ( + Entry->Transmit = 0; + Entry->Receive = 0; + MaxDelayTick = IP6_MAX_RTR_SOLICITATION_DELAY / IP6_TIMER_INTERVAL_IN_MS; +- Entry->RetransTick = (MaxDelayTick * ((NET_RANDOM (NetRandomInitSeed ()) % 5) + 1)) / 5; ++ Entry->RetransTick = (MaxDelayTick * ((Random % 5) + 1)) / 5; + Entry->AddressInfo = AddressInfo; + Entry->Callback = Callback; + Entry->Context = Context; +@@ -2078,7 +2096,10 @@ Ip6ProcessRouterAdvertise ( + // in BaseReachableTime and recompute a ReachableTime. + // + IpSb->BaseReachableTime = ReachableTime; +- Ip6UpdateReachableTime (IpSb); ++ Status = Ip6UpdateReachableTime (IpSb); ++ if (EFI_ERROR (Status)) { ++ goto Exit; ++ } + } + + if (RetransTimer != 0) { +diff --git a/NetworkPkg/Ip6Dxe/Ip6Nd.h b/NetworkPkg/Ip6Dxe/Ip6Nd.h +index bf64e9114e..5795e23c7d 100644 +--- a/NetworkPkg/Ip6Dxe/Ip6Nd.h ++++ b/NetworkPkg/Ip6Dxe/Ip6Nd.h +@@ -2,7 +2,7 @@ + Definition of Neighbor Discovery support routines. + + Copyright (c) 2009 - 2012, Intel Corporation. All rights reserved.
+- ++ Copyright (c) Microsoft Corporation + SPDX-License-Identifier: BSD-2-Clause-Patent + + **/ +@@ -780,10 +780,10 @@ Ip6OnArpResolved ( + /** + Update the ReachableTime in IP6 service binding instance data, in milliseconds. + +- @param[in, out] IpSb Points to the IP6_SERVICE. +- ++ @retval EFI_SUCCESS ReachableTime Updated ++ @retval others Failed to update ReachableTime + **/ +-VOID ++EFI_STATUS + Ip6UpdateReachableTime ( + IN OUT IP6_SERVICE *IpSb + ); +diff --git a/NetworkPkg/Library/DxeNetLib/DxeNetLib.c b/NetworkPkg/Library/DxeNetLib/DxeNetLib.c +index 0428abdda0..0bc9aef8cd 100644 +--- a/NetworkPkg/Library/DxeNetLib/DxeNetLib.c ++++ b/NetworkPkg/Library/DxeNetLib/DxeNetLib.c +@@ -3,6 +3,7 @@ + + Copyright (c) 2005 - 2018, Intel Corporation. All rights reserved.
+ (C) Copyright 2015 Hewlett Packard Enterprise Development LP
++Copyright (c) Microsoft Corporation + SPDX-License-Identifier: BSD-2-Clause-Patent + **/ + +@@ -31,6 +32,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent + #include + #include + #include ++#include + + #define NIC_ITEM_CONFIG_SIZE (sizeof (NIC_IP4_CONFIG_INFO) + sizeof (EFI_IP4_ROUTE_TABLE) * MAX_IP4_CONFIG_IN_VARIABLE) + #define DEFAULT_ZERO_START ((UINTN) ~0) +@@ -127,6 +129,25 @@ GLOBAL_REMOVE_IF_UNREFERENCED VLAN_DEVICE_PATH mNetVlanDevicePathTemplate = { + 0 + }; + ++// ++// These represent UEFI SPEC defined algorithms that should be supported by ++// the RNG protocol and are generally considered secure. ++// ++// The order of the algorithms in this array is important. This order is the order ++// in which the algorithms will be tried by the RNG protocol. ++// If your platform needs to use a specific algorithm for the random number generator, ++// then you should place that algorithm first in the array. ++// ++GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID *mSecureHashAlgorithms[] = { ++ &gEfiRngAlgorithmSp80090Ctr256Guid, // SP800-90A DRBG CTR using AES-256 ++ &gEfiRngAlgorithmSp80090Hmac256Guid, // SP800-90A DRBG HMAC using SHA-256 ++ &gEfiRngAlgorithmSp80090Hash256Guid, // SP800-90A DRBG Hash using SHA-256 ++ &gEfiRngAlgorithmArmRndr, // unspecified SP800-90A DRBG via ARM RNDR register ++ &gEfiRngAlgorithmRaw, // Raw data from NRBG (or TRNG) ++}; ++ ++#define SECURE_HASH_ALGORITHMS_SIZE (sizeof (mSecureHashAlgorithms) / sizeof (EFI_GUID *)) ++ + /** + Locate the handles that support SNP, then open one of them + to send the syslog packets. The caller isn't required to close +@@ -884,34 +905,107 @@ Ip6Swap128 ( + } + + /** +- Initialize a random seed using current time and monotonic count. ++ Generate a Random output data given a length. + +- Get current time and monotonic count first. Then initialize a random seed +- based on some basic mathematics operation on the hour, day, minute, second, +- nanosecond and year of the current time and the monotonic count value. ++ @param[out] Output - The buffer to store the generated random data. ++ @param[in] OutputLength - The length of the output buffer. + +- @return The random seed initialized with current time. ++ @retval EFI_SUCCESS On Success ++ @retval EFI_INVALID_PARAMETER Pointer is null or size is zero ++ @retval EFI_NOT_FOUND RNG protocol not found ++ @retval Others Error from RngProtocol->GetRNG() + ++ @return Status code + **/ +-UINT32 ++EFI_STATUS + EFIAPI +-NetRandomInitSeed ( +- VOID ++PseudoRandom ( ++ OUT VOID *Output, ++ IN UINTN OutputLength + ) + { +- EFI_TIME Time; +- UINT32 Seed; +- UINT64 MonotonicCount; ++ EFI_RNG_PROTOCOL *RngProtocol; ++ EFI_STATUS Status; ++ UINTN AlgorithmIndex; ++ ++ if ((Output == NULL) || (OutputLength == 0)) { ++ return EFI_INVALID_PARAMETER; ++ } ++ ++ Status = gBS->LocateProtocol (&gEfiRngProtocolGuid, NULL, (VOID **)&RngProtocol); ++ if (EFI_ERROR (Status)) { ++ DEBUG ((DEBUG_ERROR, "Failed to locate EFI_RNG_PROTOCOL: %r\n", Status)); ++ ASSERT_EFI_ERROR (Status); ++ return Status; ++ } ++ ++ if (PcdGetBool (PcdEnforceSecureRngAlgorithms)) { ++ for (AlgorithmIndex = 0; AlgorithmIndex < SECURE_HASH_ALGORITHMS_SIZE; AlgorithmIndex++) { ++ Status = RngProtocol->GetRNG (RngProtocol, mSecureHashAlgorithms[AlgorithmIndex], OutputLength, (UINT8 *)Output); ++ if (!EFI_ERROR (Status)) { ++ // ++ // Secure Algorithm was supported on this platform ++ // ++ return EFI_SUCCESS; ++ } else if (Status == EFI_UNSUPPORTED) { ++ // ++ // Secure Algorithm was not supported on this platform ++ // ++ DEBUG ((DEBUG_ERROR, "Failed to generate random data using secure algorithm %d: %r\n", AlgorithmIndex, Status)); ++ ++ // ++ // Try the next secure algorithm ++ // ++ continue; ++ } else { ++ // ++ // Some other error occurred ++ // ++ DEBUG ((DEBUG_ERROR, "Failed to generate random data using secure algorithm %d: %r\n", AlgorithmIndex, Status)); ++ ASSERT_EFI_ERROR (Status); ++ return Status; ++ } ++ } ++ ++ // ++ // If we get here, we failed to generate random data using any secure algorithm ++ // Platform owner should ensure that at least one secure algorithm is supported ++ // ++ ASSERT_EFI_ERROR (Status); ++ return Status; ++ } ++ ++ // ++ // Lets try using the default algorithm (which may not be secure) ++ // ++ Status = RngProtocol->GetRNG (RngProtocol, NULL, OutputLength, (UINT8 *)Output); ++ if (EFI_ERROR (Status)) { ++ DEBUG ((DEBUG_ERROR, "%a failed to generate random data: %r\n", __func__, Status)); ++ ASSERT_EFI_ERROR (Status); ++ return Status; ++ } + +- gRT->GetTime (&Time, NULL); +- Seed = (Time.Hour << 24 | Time.Day << 16 | Time.Minute << 8 | Time.Second); +- Seed ^= Time.Nanosecond; +- Seed ^= Time.Year << 7; ++ return EFI_SUCCESS; ++} ++ ++/** ++ Generate a 32-bit pseudo-random number. + +- gBS->GetNextMonotonicCount (&MonotonicCount); +- Seed += (UINT32)MonotonicCount; ++ @param[out] Output - The buffer to store the generated random number. + +- return Seed; ++ @retval EFI_SUCCESS On Success ++ @retval EFI_NOT_FOUND RNG protocol not found ++ @retval Others Error from RngProtocol->GetRNG() ++ ++ @return Status code ++**/ ++EFI_STATUS ++EFIAPI ++PseudoRandomU32 ( ++ OUT UINT32 *Output ++ ) ++{ ++ return PseudoRandom (Output, sizeof (*Output)); + } + + /** +diff --git a/NetworkPkg/Library/DxeNetLib/DxeNetLib.inf b/NetworkPkg/Library/DxeNetLib/DxeNetLib.inf +index 8145d256ec..a8f534a293 100644 +--- a/NetworkPkg/Library/DxeNetLib/DxeNetLib.inf ++++ b/NetworkPkg/Library/DxeNetLib/DxeNetLib.inf +@@ -3,6 +3,7 @@ + # + # Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
+ # (C) Copyright 2015 Hewlett Packard Enterprise Development LP
++# Copyright (c) Microsoft Corporation + # SPDX-License-Identifier: BSD-2-Clause-Patent + # + ## +@@ -49,7 +50,11 @@ + gEfiSmbiosTableGuid ## SOMETIMES_CONSUMES ## SystemTable + gEfiSmbios3TableGuid ## SOMETIMES_CONSUMES ## SystemTable + gEfiAdapterInfoMediaStateGuid ## SOMETIMES_CONSUMES +- ++ gEfiRngAlgorithmRaw ## CONSUMES ++ gEfiRngAlgorithmSp80090Ctr256Guid ## CONSUMES ++ gEfiRngAlgorithmSp80090Hmac256Guid ## CONSUMES ++ gEfiRngAlgorithmSp80090Hash256Guid ## CONSUMES ++ gEfiRngAlgorithmArmRndr ## CONSUMES + + [Protocols] + gEfiSimpleNetworkProtocolGuid ## SOMETIMES_CONSUMES +@@ -59,3 +64,10 @@ + gEfiComponentNameProtocolGuid ## SOMETIMES_CONSUMES + gEfiComponentName2ProtocolGuid ## SOMETIMES_CONSUMES + gEfiAdapterInformationProtocolGuid ## SOMETIMES_CONSUMES ++ gEfiRngProtocolGuid ## CONSUMES ++ ++[FixedPcd] ++ gEfiNetworkPkgTokenSpaceGuid.PcdEnforceSecureRngAlgorithms ## CONSUMES ++ ++[Depex] ++ gEfiRngProtocolGuid +diff --git a/NetworkPkg/NetworkPkg.dec b/NetworkPkg/NetworkPkg.dec +index 928e84fec4..ff335e957c 100644 +--- a/NetworkPkg/NetworkPkg.dec ++++ b/NetworkPkg/NetworkPkg.dec +@@ -5,6 +5,7 @@ + # + # Copyright (c) 2009 - 2021, Intel Corporation. All rights reserved.
+ # (C) Copyright 2015-2020 Hewlett Packard Enterprise Development LP
++# Copyright (c) Microsoft Corporation + # + # SPDX-License-Identifier: BSD-2-Clause-Patent + # +@@ -127,6 +128,12 @@ + # @Prompt Indicates whether SnpDxe creates event for ExitBootServices() call. + gEfiNetworkPkgTokenSpaceGuid.PcdSnpCreateExitBootServicesEvent|TRUE|BOOLEAN|0x1000000C + ++ ## Enforces the use of Secure UEFI spec defined RNG algorithms for all network connections. ++ # TRUE - Enforce the use of Secure UEFI spec defined RNG algorithms. ++ # FALSE - Do not enforce and depend on the default implementation of RNG algorithm from the provider. ++ # @Prompt Enforce the use of Secure UEFI spec defined RNG algorithms. ++ gEfiNetworkPkgTokenSpaceGuid.PcdEnforceSecureRngAlgorithms|TRUE|BOOLEAN|0x1000000D ++ + [PcdsFixedAtBuild, PcdsPatchableInModule, PcdsDynamic, PcdsDynamicEx] + ## IPv6 DHCP Unique Identifier (DUID) Type configuration (From RFCs 3315 and 6355). + # 01 = DUID Based on Link-layer Address Plus Time [DUID-LLT] +diff --git a/NetworkPkg/TcpDxe/TcpDriver.c b/NetworkPkg/TcpDxe/TcpDriver.c +index 8a75b4b55b..430911c2f4 100644 +--- a/NetworkPkg/TcpDxe/TcpDriver.c ++++ b/NetworkPkg/TcpDxe/TcpDriver.c +@@ -2,7 +2,7 @@ + The driver binding and service binding protocol for the TCP driver. + + Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.
+- ++ Copyright (c) Microsoft Corporation + SPDX-License-Identifier: BSD-2-Clause-Patent + + **/ +@@ -163,7 +163,13 @@ TcpDriverEntryPoint ( + ) + { + EFI_STATUS Status; +- UINT32 Seed; ++ UINT32 Random; ++ ++ Status = PseudoRandomU32 (&Random); ++ if (EFI_ERROR (Status)) { ++ DEBUG ((DEBUG_ERROR, "%a Failed to generate random number: %r\n", __func__, Status)); ++ return Status; ++ } + + // + // Install the TCP Driver Binding Protocol +@@ -203,9 +209,8 @@ TcpDriverEntryPoint ( + // + // Initialize ISS and random port. + // +- Seed = NetRandomInitSeed (); +- mTcpGlobalIss = NET_RANDOM (Seed) % mTcpGlobalIss; +- mTcp4RandomPort = (UINT16)(TCP_PORT_KNOWN + (NET_RANDOM (Seed) % TCP_PORT_KNOWN)); ++ mTcpGlobalIss = Random % mTcpGlobalIss; ++ mTcp4RandomPort = (UINT16)(TCP_PORT_KNOWN + (Random % TCP_PORT_KNOWN)); + mTcp6RandomPort = mTcp4RandomPort; + + return EFI_SUCCESS; +diff --git a/NetworkPkg/TcpDxe/TcpDxe.inf b/NetworkPkg/TcpDxe/TcpDxe.inf +index c0acbdca57..cf5423f4c5 100644 +--- a/NetworkPkg/TcpDxe/TcpDxe.inf ++++ b/NetworkPkg/TcpDxe/TcpDxe.inf +@@ -82,5 +82,8 @@ + gEfiTcp6ProtocolGuid ## BY_START + gEfiTcp6ServiceBindingProtocolGuid ## BY_START + ++[Depex] ++ gEfiHash2ServiceBindingProtocolGuid ++ + [UserExtensions.TianoCore."ExtraFiles"] + TcpDxeExtra.uni +diff --git a/NetworkPkg/Udp4Dxe/Udp4Driver.c b/NetworkPkg/Udp4Dxe/Udp4Driver.c +index cb917fcfc9..c7ea16f4cd 100644 +--- a/NetworkPkg/Udp4Dxe/Udp4Driver.c ++++ b/NetworkPkg/Udp4Dxe/Udp4Driver.c +@@ -1,6 +1,7 @@ + /** @file + + Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
++Copyright (c) Microsoft Corporation + SPDX-License-Identifier: BSD-2-Clause-Patent + + **/ +@@ -555,6 +556,13 @@ Udp4DriverEntryPoint ( + ) + { + EFI_STATUS Status; ++ UINT32 Random; ++ ++ Status = PseudoRandomU32 (&Random); ++ if (EFI_ERROR (Status)) { ++ DEBUG ((DEBUG_ERROR, "%a failed to generate random number: %r\n", __func__, Status)); ++ return Status; ++ } + + // + // Install the Udp4DriverBinding and Udp4ComponentName protocols. +@@ -571,7 +579,7 @@ Udp4DriverEntryPoint ( + // + // Initialize the UDP random port. + // +- mUdp4RandomPort = (UINT16)(((UINT16)NetRandomInitSeed ()) % UDP4_PORT_KNOWN + UDP4_PORT_KNOWN); ++ mUdp4RandomPort = (UINT16)(((UINT16)Random) % UDP4_PORT_KNOWN + UDP4_PORT_KNOWN); + } + + return Status; +diff --git a/NetworkPkg/Udp6Dxe/Udp6Driver.c b/NetworkPkg/Udp6Dxe/Udp6Driver.c +index ae96fb9966..edb758d57c 100644 +--- a/NetworkPkg/Udp6Dxe/Udp6Driver.c ++++ b/NetworkPkg/Udp6Dxe/Udp6Driver.c +@@ -2,7 +2,7 @@ + Driver Binding functions and Service Binding functions for the Network driver module. + + Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.
+- ++ Copyright (c) Microsoft Corporation + SPDX-License-Identifier: BSD-2-Clause-Patent + + **/ +@@ -596,6 +596,13 @@ Udp6DriverEntryPoint ( + ) + { + EFI_STATUS Status; ++ UINT32 Random; ++ ++ Status = PseudoRandomU32 (&Random); ++ if (EFI_ERROR (Status)) { ++ DEBUG ((DEBUG_ERROR, "%a failed to generate random number: %r\n", __func__, Status)); ++ return Status; ++ } + + // + // Install the Udp6DriverBinding and Udp6ComponentName protocols. +@@ -614,7 +621,7 @@ Udp6DriverEntryPoint ( + // Initialize the UDP random port. + // + mUdp6RandomPort = (UINT16)( +- ((UINT16)NetRandomInitSeed ()) % ++ ((UINT16)Random) % + UDP6_PORT_KNOWN + + UDP6_PORT_KNOWN + ); +diff --git a/NetworkPkg/UefiPxeBcDxe/PxeBcDhcp4.c b/NetworkPkg/UefiPxeBcDxe/PxeBcDhcp4.c +index 874fc2c37b..5f13352566 100644 +--- a/NetworkPkg/UefiPxeBcDxe/PxeBcDhcp4.c ++++ b/NetworkPkg/UefiPxeBcDxe/PxeBcDhcp4.c +@@ -2,7 +2,7 @@ + Functions implementation related with DHCPv4 for UefiPxeBc Driver. + + Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.
+- ++ Copyright (c) Microsoft Corporation + SPDX-License-Identifier: BSD-2-Clause-Patent + + **/ +@@ -1381,6 +1381,12 @@ PxeBcDhcp4Discover ( + UINT8 VendorOptLen; + UINT32 Xid; + ++ Status = PseudoRandomU32 (&Xid); ++ if (EFI_ERROR (Status)) { ++ DEBUG ((DEBUG_ERROR, "%a failed to generate random number: %r\n", __func__, Status)); ++ return Status; ++ } ++ + Mode = Private->PxeBc.Mode; + Dhcp4 = Private->Dhcp4; + Status = EFI_SUCCESS; +@@ -1470,7 +1476,6 @@ PxeBcDhcp4Discover ( + // + // Set fields of the token for the request packet. + // +- Xid = NET_RANDOM (NetRandomInitSeed ()); + Token.Packet->Dhcp4.Header.Xid = HTONL (Xid); + Token.Packet->Dhcp4.Header.Reserved = HTONS ((UINT16) ((IsBCast) ? 0x8000 : 0x0)); + CopyMem (&Token.Packet->Dhcp4.Header.ClientAddr, &Private->StationIp, sizeof (EFI_IPv4_ADDRESS)); +diff --git a/NetworkPkg/UefiPxeBcDxe/PxeBcDhcp6.c b/NetworkPkg/UefiPxeBcDxe/PxeBcDhcp6.c +index 7fd1281c11..bcabbd2219 100644 +--- a/NetworkPkg/UefiPxeBcDxe/PxeBcDhcp6.c ++++ b/NetworkPkg/UefiPxeBcDxe/PxeBcDhcp6.c +@@ -2180,7 +2180,7 @@ PxeBcDhcp6Discover ( + UINTN ReadSize; + UINT16 OpCode; + UINT16 OpLen; +- UINT32 Xid; ++ UINT32 Random; + EFI_STATUS Status; + UINTN DiscoverLenNeeded; + +@@ -2198,6 +2198,12 @@ PxeBcDhcp6Discover ( + return EFI_DEVICE_ERROR; + } + ++ Status = PseudoRandomU32 (&Random); ++ if (EFI_ERROR (Status)) { ++ DEBUG ((DEBUG_ERROR, "%a failed to generate random number: %r\n", __func__, Status)); ++ return Status; ++ } ++ + DiscoverLenNeeded = sizeof (EFI_PXE_BASE_CODE_DHCPV6_PACKET); + Discover = AllocateZeroPool (DiscoverLenNeeded); + if (Discover == NULL) { +@@ -2207,8 +2213,7 @@ PxeBcDhcp6Discover ( + // + // Build the discover packet by the cached request packet before. + // +- Xid = NET_RANDOM (NetRandomInitSeed ()); +- Discover->TransactionId = HTONL (Xid); ++ Discover->TransactionId = HTONL (Random); + Discover->MessageType = Request->Dhcp6.Header.MessageType; + RequestOpt = Request->Dhcp6.Option; + DiscoverOpt = Discover->DhcpOptions; +diff --git a/NetworkPkg/UefiPxeBcDxe/PxeBcDriver.c b/NetworkPkg/UefiPxeBcDxe/PxeBcDriver.c +index d84aca7e85..4cd915b411 100644 +--- a/NetworkPkg/UefiPxeBcDxe/PxeBcDriver.c ++++ b/NetworkPkg/UefiPxeBcDxe/PxeBcDriver.c +@@ -3,6 +3,7 @@ + + (C) Copyright 2014 Hewlett-Packard Development Company, L.P.
+ Copyright (c) 2007 - 2019, Intel Corporation. All rights reserved.
++ Copyright (c) Microsoft Corporation + + SPDX-License-Identifier: BSD-2-Clause-Patent + +@@ -892,6 +893,13 @@ PxeBcCreateIp6Children ( + PXEBC_PRIVATE_PROTOCOL *Id; + EFI_SIMPLE_NETWORK_PROTOCOL *Snp; + UINTN Index; ++ UINT32 Random; ++ ++ Status = PseudoRandomU32 (&Random); ++ if (EFI_ERROR (Status)) { ++ DEBUG ((DEBUG_ERROR, "Failed to generate random number using EFI_RNG_PROTOCOL: %r\n", Status)); ++ return Status; ++ } + + if (Private->Ip6Nic != NULL) { + // +@@ -935,9 +943,9 @@ PxeBcCreateIp6Children ( + } + + // +- // Generate a random IAID for the Dhcp6 assigned address. ++ // Set a random IAID for the Dhcp6 assigned address. + // +- Private->IaId = NET_RANDOM (NetRandomInitSeed ()); ++ Private->IaId = Random; + if (Private->Snp != NULL) { + for (Index = 0; Index < Private->Snp->Mode->HwAddressSize; Index++) { + Private->IaId |= (Private->Snp->Mode->CurrentAddress.Addr[Index] << ((Index << 3) & 31)); +-- +2.39.3 + diff --git a/edk2-NetworkPkg-TcpDxe-Fixed-system-stuck-on-PXE-boot-flo.patch b/edk2-NetworkPkg-TcpDxe-Fixed-system-stuck-on-PXE-boot-flo.patch new file mode 100644 index 0000000..ad2adac --- /dev/null +++ b/edk2-NetworkPkg-TcpDxe-Fixed-system-stuck-on-PXE-boot-flo.patch @@ -0,0 +1,74 @@ +From 6eceae607639b46ea46ba26a288270bd1c97dc0f Mon Sep 17 00:00:00 2001 +From: Jon Maloy +Date: Thu, 13 Jun 2024 18:35:46 -0400 +Subject: [PATCH 31/31] NetworkPkg TcpDxe: Fixed system stuck on PXE boot flow + in iPXE environment +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +RH-Author: Jon Maloy +RH-MergeRequest: 77: UINT32 overflow in S3 ResumeCount and Pixiefail fixes +RH-Jira: RHEL-21854 RHEL-21856 RHEL-40099 +RH-Acked-by: Gerd Hoffmann +RH-Commit: [31/31] 2088a79fef3d6dfec032f2f560ccf87ae42d786f + +JIRA: https://issues.redhat.com/browse/RHEL-21854 +Upstream: Merged +CVE: CVE-2023-45236 + +commit ced13b93afea87a8a1fe6ddbb67240a84cb2e3d3 +Author: Sam +Date: Wed May 29 07:46:03 2024 +0800 + + NetworkPkg TcpDxe: Fixed system stuck on PXE boot flow in iPXE environment + + This bug fix is based on the following commit "NetworkPkg TcpDxe: SECURITY PATCH" + REF: 1904a64 + + Issue Description: + An "Invalid handle" error was detected during runtime when attempting to destroy a child instance of the hashing protocol. The problematic code segment was: + + NetworkPkg\TcpDxe\TcpDriver.c + Status = Hash2ServiceBinding->DestroyChild(Hash2ServiceBinding, ​&mHash2ServiceHandle); + + Root Cause Analysis: + The root cause of the error was the passing of an incorrect parameter type, a pointer to an EFI_HANDLE instead of an EFI_HANDLE itself, to the DestroyChild function. This mismatch resulted in the function receiving an invalid handle. + + Implemented Solution: + To resolve this issue, the function call was corrected to pass mHash2ServiceHandle directly: + + NetworkPkg\TcpDxe\TcpDriver.c + Status = Hash2ServiceBinding->DestroyChild(Hash2ServiceBinding, mHash2ServiceHandle); + + This modification ensures the correct handle type is used, effectively rectifying the "Invalid handle" error. + + Verification: + Testing has been conducted, confirming the efficacy of the fix. Additionally, the BIOS can boot into the OS in an iPXE environment. + + Cc: Doug Flick [MSFT] + + Signed-off-by: Sam Tsai [Wiwynn] + Reviewed-by: Saloni Kasbekar + +Signed-off-by: Jon Maloy +--- + NetworkPkg/TcpDxe/TcpDriver.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/NetworkPkg/TcpDxe/TcpDriver.c b/NetworkPkg/TcpDxe/TcpDriver.c +index 34ae838ae0..1aec292501 100644 +--- a/NetworkPkg/TcpDxe/TcpDriver.c ++++ b/NetworkPkg/TcpDxe/TcpDriver.c +@@ -509,7 +509,7 @@ TcpDestroyService ( + // + // Destroy the instance of the hashing protocol for this controller. + // +- Status = Hash2ServiceBinding->DestroyChild (Hash2ServiceBinding, &mHash2ServiceHandle); ++ Status = Hash2ServiceBinding->DestroyChild (Hash2ServiceBinding, mHash2ServiceHandle); + if (EFI_ERROR (Status)) { + return EFI_UNSUPPORTED; + } +-- +2.39.3 + diff --git a/edk2-NetworkPkg-TcpDxe-SECURITY-PATCH-CVE-2023-45236.patch b/edk2-NetworkPkg-TcpDxe-SECURITY-PATCH-CVE-2023-45236.patch new file mode 100644 index 0000000..a0c6ccf --- /dev/null +++ b/edk2-NetworkPkg-TcpDxe-SECURITY-PATCH-CVE-2023-45236.patch @@ -0,0 +1,808 @@ +From 1e7f4034ddc0896e16c981d4220a1178813b4e86 Mon Sep 17 00:00:00 2001 +From: Jon Maloy +Date: Tue, 11 Jun 2024 15:20:29 -0400 +Subject: [PATCH 30/31] NetworkPkg TcpDxe: SECURITY PATCH CVE-2023-45236 + +RH-Author: Jon Maloy +RH-MergeRequest: 77: UINT32 overflow in S3 ResumeCount and Pixiefail fixes +RH-Jira: RHEL-21854 RHEL-21856 RHEL-40099 +RH-Acked-by: Gerd Hoffmann +RH-Commit: [30/31] 9ae15a2abf1d9bd0a0df1ff73a88446b9eb33602 + +JIRA: https://issues.redhat.com/browse/RHEL-21854 +Upstream: Merged +CVE: CVE-2023-45236 +Conflicts: Didn't add new file NetworkPkg/SecurityFixes.yaml + +commit 1904a64bcc18199738e5be183d28887ac5d837d7 +Author: Doug Flick +Date: Wed May 8 22:56:29 2024 -0700 + + NetworkPkg TcpDxe: SECURITY PATCH CVE-2023-45236 + + REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4541 + REF: https://www.rfc-editor.org/rfc/rfc1948.txt + REF: https://www.rfc-editor.org/rfc/rfc6528.txt + REF: https://www.rfc-editor.org/rfc/rfc9293.txt + + Bug Overview: + PixieFail Bug #8 + CVE-2023-45236 + CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:N/A:N + CWE-200 Exposure of Sensitive Information to an Unauthorized Actor + + Updates TCP ISN generation to use a cryptographic hash of the + connection's identifying parameters and a secret key. + This prevents an attacker from guessing the ISN used for some other + connection. + + This is follows the guidance in RFC 1948, RFC 6528, and RFC 9293. + + RFC: 9293 Section 3.4.1. Initial Sequence Number Selection + + A TCP implementation MUST use the above type of "clock" for clock- + driven selection of initial sequence numbers (MUST-8), and SHOULD + generate its initial sequence numbers with the expression: + + ISN = M + F(localip, localport, remoteip, remoteport, secretkey) + + where M is the 4 microsecond timer, and F() is a pseudorandom + function (PRF) of the connection's identifying parameters ("localip, + localport, remoteip, remoteport") and a secret key ("secretkey") + (SHLD-1). F() MUST NOT be computable from the outside (MUST-9), or + an attacker could still guess at sequence numbers from the ISN used + for some other connection. The PRF could be implemented as a + cryptographic hash of the concatenation of the TCP connection + parameters and some secret data. For discussion of the selection of + a specific hash algorithm and management of the secret key data, + please see Section 3 of [42]. + + For each connection there is a send sequence number and a receive + sequence number. The initial send sequence number (ISS) is chosen by + the data sending TCP peer, and the initial receive sequence number + (IRS) is learned during the connection-establishing procedure. + + For a connection to be established or initialized, the two TCP peers + must synchronize on each other's initial sequence numbers. This is + done in an exchange of connection-establishing segments carrying a + control bit called "SYN" (for synchronize) and the initial sequence + numbers. As a shorthand, segments carrying the SYN bit are also + called "SYNs". Hence, the solution requires a suitable mechanism for + picking an initial sequence number and a slightly involved handshake + to exchange the ISNs. + + Cc: Saloni Kasbekar + Cc: Zachary Clark-williams + + Signed-off-by: Doug Flick [MSFT] + Reviewed-by: Saloni Kasbekar +--- + NetworkPkg/TcpDxe/TcpDriver.c | 92 ++++++++++++- + NetworkPkg/TcpDxe/TcpDxe.inf | 8 +- + NetworkPkg/TcpDxe/TcpFunc.h | 23 ++-- + NetworkPkg/TcpDxe/TcpInput.c | 13 +- + NetworkPkg/TcpDxe/TcpMain.h | 59 ++++++-- + NetworkPkg/TcpDxe/TcpMisc.c | 244 ++++++++++++++++++++++++++++++++-- + NetworkPkg/TcpDxe/TcpTimer.c | 3 +- + 7 files changed, 394 insertions(+), 48 deletions(-) + +diff --git a/NetworkPkg/TcpDxe/TcpDriver.c b/NetworkPkg/TcpDxe/TcpDriver.c +index 430911c2f4..34ae838ae0 100644 +--- a/NetworkPkg/TcpDxe/TcpDriver.c ++++ b/NetworkPkg/TcpDxe/TcpDriver.c +@@ -83,6 +83,12 @@ EFI_SERVICE_BINDING_PROTOCOL gTcpServiceBinding = { + TcpServiceBindingDestroyChild + }; + ++// ++// This is the handle for the Hash2ServiceBinding Protocol instance this driver produces ++// if the platform does not provide one. ++// ++EFI_HANDLE mHash2ServiceHandle = NULL; ++ + /** + Create and start the heartbeat timer for the TCP driver. + +@@ -165,6 +171,23 @@ TcpDriverEntryPoint ( + EFI_STATUS Status; + UINT32 Random; + ++ // ++ // Initialize the Secret used for hashing TCP sequence numbers ++ // ++ // Normally this should be regenerated periodically, but since ++ // this is only used for UEFI networking and not a general purpose ++ // operating system, it is not necessary to regenerate it. ++ // ++ Status = PseudoRandomU32 (&mTcpGlobalSecret); ++ if (EFI_ERROR (Status)) { ++ DEBUG ((DEBUG_ERROR, "%a failed to generate random number: %r\n", __func__, Status)); ++ return Status; ++ } ++ ++ // ++ // Get a random number used to generate a random port number ++ // Intentionally not linking this to mTcpGlobalSecret to avoid leaking information about the secret ++ // + Status = PseudoRandomU32 (&Random); + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_ERROR, "%a Failed to generate random number: %r\n", __func__, Status)); +@@ -207,9 +230,8 @@ TcpDriverEntryPoint ( + } + + // +- // Initialize ISS and random port. ++ // Initialize the random port. + // +- mTcpGlobalIss = Random % mTcpGlobalIss; + mTcp4RandomPort = (UINT16)(TCP_PORT_KNOWN + (Random % TCP_PORT_KNOWN)); + mTcp6RandomPort = mTcp4RandomPort; + +@@ -224,6 +246,8 @@ TcpDriverEntryPoint ( + @param[in] IpVersion IP_VERSION_4 or IP_VERSION_6. + + @retval EFI_OUT_OF_RESOURCES Failed to allocate some resources. ++ @retval EFI_UNSUPPORTED Service Binding Protocols are unavailable. ++ @retval EFI_ALREADY_STARTED The TCP driver is already started on the controller. + @retval EFI_SUCCESS A new IP6 service binding private was created. + + **/ +@@ -234,11 +258,13 @@ TcpCreateService ( + IN UINT8 IpVersion + ) + { +- EFI_STATUS Status; +- EFI_GUID *IpServiceBindingGuid; +- EFI_GUID *TcpServiceBindingGuid; +- TCP_SERVICE_DATA *TcpServiceData; +- IP_IO_OPEN_DATA OpenData; ++ EFI_STATUS Status; ++ EFI_GUID *IpServiceBindingGuid; ++ EFI_GUID *TcpServiceBindingGuid; ++ TCP_SERVICE_DATA *TcpServiceData; ++ IP_IO_OPEN_DATA OpenData; ++ EFI_SERVICE_BINDING_PROTOCOL *Hash2ServiceBinding; ++ EFI_HASH2_PROTOCOL *Hash2Protocol; + + if (IpVersion == IP_VERSION_4) { + IpServiceBindingGuid = &gEfiIp4ServiceBindingProtocolGuid; +@@ -272,6 +298,33 @@ TcpCreateService ( + return EFI_UNSUPPORTED; + } + ++ Status = gBS->LocateProtocol (&gEfiHash2ProtocolGuid, NULL, (VOID **)&Hash2Protocol); ++ if (EFI_ERROR (Status)) { ++ // ++ // If we can't find the Hashing protocol, then we need to create one. ++ // ++ ++ // ++ // Platform is expected to publish the hash service binding protocol to support TCP. ++ // ++ Status = gBS->LocateProtocol ( ++ &gEfiHash2ServiceBindingProtocolGuid, ++ NULL, ++ (VOID **)&Hash2ServiceBinding ++ ); ++ if (EFI_ERROR (Status) || (Hash2ServiceBinding == NULL) || (Hash2ServiceBinding->CreateChild == NULL)) { ++ return EFI_UNSUPPORTED; ++ } ++ ++ // ++ // Create an instance of the hash protocol for this controller. ++ // ++ Status = Hash2ServiceBinding->CreateChild (Hash2ServiceBinding, &mHash2ServiceHandle); ++ if (EFI_ERROR (Status)) { ++ return EFI_UNSUPPORTED; ++ } ++ } ++ + // + // Create the TCP service data. + // +@@ -423,6 +476,7 @@ TcpDestroyService ( + EFI_STATUS Status; + LIST_ENTRY *List; + TCP_DESTROY_CHILD_IN_HANDLE_BUF_CONTEXT Context; ++ EFI_SERVICE_BINDING_PROTOCOL *Hash2ServiceBinding; + + ASSERT ((IpVersion == IP_VERSION_4) || (IpVersion == IP_VERSION_6)); + +@@ -439,6 +493,30 @@ TcpDestroyService ( + return EFI_SUCCESS; + } + ++ // ++ // Destroy the Hash2ServiceBinding instance if it is created by Tcp driver. ++ // ++ if (mHash2ServiceHandle != NULL) { ++ Status = gBS->LocateProtocol ( ++ &gEfiHash2ServiceBindingProtocolGuid, ++ NULL, ++ (VOID **)&Hash2ServiceBinding ++ ); ++ if (EFI_ERROR (Status) || (Hash2ServiceBinding == NULL) || (Hash2ServiceBinding->DestroyChild == NULL)) { ++ return EFI_UNSUPPORTED; ++ } ++ ++ // ++ // Destroy the instance of the hashing protocol for this controller. ++ // ++ Status = Hash2ServiceBinding->DestroyChild (Hash2ServiceBinding, &mHash2ServiceHandle); ++ if (EFI_ERROR (Status)) { ++ return EFI_UNSUPPORTED; ++ } ++ ++ mHash2ServiceHandle = NULL; ++ } ++ + Status = gBS->OpenProtocol ( + NicHandle, + ServiceBindingGuid, +diff --git a/NetworkPkg/TcpDxe/TcpDxe.inf b/NetworkPkg/TcpDxe/TcpDxe.inf +index cf5423f4c5..76de4cf9ec 100644 +--- a/NetworkPkg/TcpDxe/TcpDxe.inf ++++ b/NetworkPkg/TcpDxe/TcpDxe.inf +@@ -6,6 +6,7 @@ + # stack has been loaded in system. This driver supports both IPv4 and IPv6 network stack. + # + # Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.
++# Copyright (c) Microsoft Corporation + # + # SPDX-License-Identifier: BSD-2-Clause-Patent + # +@@ -68,7 +69,6 @@ + NetLib + IpIoLib + +- + [Protocols] + ## SOMETIMES_CONSUMES + ## SOMETIMES_PRODUCES +@@ -81,6 +81,12 @@ + gEfiIp6ServiceBindingProtocolGuid ## TO_START + gEfiTcp6ProtocolGuid ## BY_START + gEfiTcp6ServiceBindingProtocolGuid ## BY_START ++ gEfiHash2ProtocolGuid ## BY_START ++ gEfiHash2ServiceBindingProtocolGuid ## BY_START ++ ++[Guids] ++ gEfiHashAlgorithmMD5Guid ## CONSUMES ++ gEfiHashAlgorithmSha256Guid ## CONSUMES + + [Depex] + gEfiHash2ServiceBindingProtocolGuid +diff --git a/NetworkPkg/TcpDxe/TcpFunc.h b/NetworkPkg/TcpDxe/TcpFunc.h +index 05cd3c75dc..e578b8bb29 100644 +--- a/NetworkPkg/TcpDxe/TcpFunc.h ++++ b/NetworkPkg/TcpDxe/TcpFunc.h +@@ -2,7 +2,7 @@ + Declaration of external functions shared in TCP driver. + + Copyright (c) 2009 - 2014, Intel Corporation. All rights reserved.
+- ++ Copyright (c) Microsoft Corporation + SPDX-License-Identifier: BSD-2-Clause-Patent + + **/ +@@ -36,8 +36,11 @@ VOID + + @param[in, out] Tcb Pointer to the TCP_CB of this TCP instance. + ++ @retval EFI_SUCCESS The operation completed successfully ++ @retval others The underlying functions failed and could not complete the operation ++ + **/ +-VOID ++EFI_STATUS + TcpInitTcbLocal ( + IN OUT TCP_CB *Tcb + ); +@@ -128,17 +131,6 @@ TcpCloneTcb ( + IN TCP_CB *Tcb + ); + +-/** +- Compute an ISS to be used by a new connection. +- +- @return The result ISS. +- +-**/ +-TCP_SEQNO +-TcpGetIss ( +- VOID +- ); +- + /** + Get the local mss. + +@@ -202,8 +194,11 @@ TcpFormatNetbuf ( + @param[in, out] Tcb Pointer to the TCP_CB that wants to initiate a + connection. + ++ @retval EFI_SUCCESS The operation completed successfully ++ @retval others The underlying functions failed and could not complete the operation ++ + **/ +-VOID ++EFI_STATUS + TcpOnAppConnect ( + IN OUT TCP_CB *Tcb + ); +diff --git a/NetworkPkg/TcpDxe/TcpInput.c b/NetworkPkg/TcpDxe/TcpInput.c +index 5e6c8c54ca..c0656ccd7d 100644 +--- a/NetworkPkg/TcpDxe/TcpInput.c ++++ b/NetworkPkg/TcpDxe/TcpInput.c +@@ -759,6 +759,7 @@ TcpInput ( + TCP_SEQNO Urg; + UINT16 Checksum; + INT32 Usable; ++ EFI_STATUS Status; + + ASSERT ((Version == IP_VERSION_4) || (Version == IP_VERSION_6)); + +@@ -908,7 +909,17 @@ TcpInput ( + Tcb->LocalEnd.Port = Head->DstPort; + Tcb->RemoteEnd.Port = Head->SrcPort; + +- TcpInitTcbLocal (Tcb); ++ Status = TcpInitTcbLocal (Tcb); ++ if (EFI_ERROR (Status)) { ++ DEBUG ( ++ (DEBUG_ERROR, ++ "TcpInput: discard a segment because failed to init local end for TCB %p\n", ++ Tcb) ++ ); ++ ++ goto DISCARD; ++ } ++ + TcpInitTcbPeer (Tcb, Seg, &Option); + + TcpSetState (Tcb, TCP_SYN_RCVD); +diff --git a/NetworkPkg/TcpDxe/TcpMain.h b/NetworkPkg/TcpDxe/TcpMain.h +index 0709298bbf..3fa572d3d4 100644 +--- a/NetworkPkg/TcpDxe/TcpMain.h ++++ b/NetworkPkg/TcpDxe/TcpMain.h +@@ -3,6 +3,7 @@ + It is the common head file for all Tcp*.c in TCP driver. + + Copyright (c) 2009 - 2016, Intel Corporation. All rights reserved.
++ Copyright (c) Microsoft Corporation + SPDX-License-Identifier: BSD-2-Clause-Patent + + **/ +@@ -12,6 +13,7 @@ + + #include + #include ++#include + #include + #include + #include +@@ -30,7 +32,7 @@ extern EFI_UNICODE_STRING_TABLE *gTcpControllerNameTable; + + extern LIST_ENTRY mTcpRunQue; + extern LIST_ENTRY mTcpListenQue; +-extern TCP_SEQNO mTcpGlobalIss; ++extern TCP_SEQNO mTcpGlobalSecret; + extern UINT32 mTcpTick; + + /// +@@ -44,15 +46,6 @@ extern UINT32 mTcpTick; + + #define TCP_EXPIRE_TIME 65535 + +-/// +-/// The implementation selects the initial send sequence number and the unit to +-/// be added when it is increased. +-/// +-#define TCP_BASE_ISS 0x4d7e980b +-#define TCP_ISS_INCREMENT_1 2048 +-#define TCP_ISS_INCREMENT_2 100 +- +- + typedef union { + EFI_TCP4_CONFIG_DATA Tcp4CfgData; + EFI_TCP6_CONFIG_DATA Tcp6CfgData; +@@ -774,4 +767,50 @@ Tcp6Poll ( + IN EFI_TCP6_PROTOCOL *This + ); + ++/** ++ Retrieves the Initial Sequence Number (ISN) for a TCP connection identified by local ++ and remote IP addresses and ports. ++ ++ This method is based on https://datatracker.ietf.org/doc/html/rfc9293#section-3.4.1 ++ Where the ISN is computed as follows: ++ ISN = TimeStamp + MD5(LocalIP, LocalPort, RemoteIP, RemotePort, Secret) ++ ++ Otherwise: ++ ISN = M + F(localip, localport, remoteip, remoteport, secretkey) ++ ++ "Here M is the 4 microsecond timer, and F() is a pseudorandom function (PRF) of the ++ connection's identifying parameters ("localip, localport, remoteip, remoteport") ++ and a secret key ("secretkey") (SHLD-1). F() MUST NOT be computable from the ++ outside (MUST-9), or an attacker could still guess at sequence numbers from the ++ ISN used for some other connection. The PRF could be implemented as a ++ cryptographic hash of the concatenation of the TCP connection parameters and some ++ secret data. For discussion of the selection of a specific hash algorithm and ++ management of the secret key data." ++ ++ @param[in] LocalIp A pointer to the local IP address of the TCP connection. ++ @param[in] LocalIpSize The size, in bytes, of the LocalIp buffer. ++ @param[in] LocalPort The local port number of the TCP connection. ++ @param[in] RemoteIp A pointer to the remote IP address of the TCP connection. ++ @param[in] RemoteIpSize The size, in bytes, of the RemoteIp buffer. ++ @param[in] RemotePort The remote port number of the TCP connection. ++ @param[out] Isn A pointer to the variable that will receive the Initial ++ Sequence Number (ISN). ++ ++ @retval EFI_SUCCESS The operation completed successfully, and the ISN was ++ retrieved. ++ @retval EFI_INVALID_PARAMETER One or more of the input parameters are invalid. ++ @retval EFI_UNSUPPORTED The operation is not supported. ++ ++**/ ++EFI_STATUS ++TcpGetIsn ( ++ IN UINT8 *LocalIp, ++ IN UINTN LocalIpSize, ++ IN UINT16 LocalPort, ++ IN UINT8 *RemoteIp, ++ IN UINTN RemoteIpSize, ++ IN UINT16 RemotePort, ++ OUT TCP_SEQNO *Isn ++ ); ++ + #endif +diff --git a/NetworkPkg/TcpDxe/TcpMisc.c b/NetworkPkg/TcpDxe/TcpMisc.c +index 3fa9d90d9f..42dc9fa941 100644 +--- a/NetworkPkg/TcpDxe/TcpMisc.c ++++ b/NetworkPkg/TcpDxe/TcpMisc.c +@@ -3,6 +3,7 @@ + + (C) Copyright 2014 Hewlett-Packard Development Company, L.P.
+ Copyright (c) 2009 - 2017, Intel Corporation. All rights reserved.
++ Copyright (c) Microsoft Corporation + SPDX-License-Identifier: BSD-2-Clause-Patent + + **/ +@@ -19,7 +20,34 @@ LIST_ENTRY mTcpListenQue = { + &mTcpListenQue + }; + +-TCP_SEQNO mTcpGlobalIss = TCP_BASE_ISS; ++// ++// The Session secret ++// This must be initialized to a random value at boot time ++// ++TCP_SEQNO mTcpGlobalSecret; ++ ++// ++// Union to hold either an IPv4 or IPv6 address ++// This is used to simplify the ISN hash computation ++// ++typedef union { ++ UINT8 IPv4[4]; ++ UINT8 IPv6[16]; ++} NETWORK_ADDRESS; ++ ++// ++// The ISN is computed by hashing this structure ++// It is initialized with the local and remote IP addresses and ports ++// and the secret ++// ++// ++typedef struct { ++ UINT16 LocalPort; ++ UINT16 RemotePort; ++ NETWORK_ADDRESS LocalAddress; ++ NETWORK_ADDRESS RemoteAddress; ++ TCP_SEQNO Secret; ++} ISN_HASH_CTX; + + CHAR16 *mTcpStateName[] = { + L"TCP_CLOSED", +@@ -40,12 +68,18 @@ CHAR16 *mTcpStateName[] = { + + @param[in, out] Tcb Pointer to the TCP_CB of this TCP instance. + ++ @retval EFI_SUCCESS The operation completed successfully ++ @retval others The underlying functions failed and could not complete the operation ++ + **/ +-VOID ++EFI_STATUS + TcpInitTcbLocal ( + IN OUT TCP_CB *Tcb + ) + { ++ TCP_SEQNO Isn; ++ EFI_STATUS Status; ++ + // + // Compute the checksum of the fixed parts of pseudo header + // +@@ -56,6 +90,16 @@ TcpInitTcbLocal ( + 0x06, + 0 + ); ++ ++ Status = TcpGetIsn ( ++ Tcb->LocalEnd.Ip.v4.Addr, ++ sizeof (IPv4_ADDRESS), ++ Tcb->LocalEnd.Port, ++ Tcb->RemoteEnd.Ip.v4.Addr, ++ sizeof (IPv4_ADDRESS), ++ Tcb->RemoteEnd.Port, ++ &Isn ++ ); + } else { + Tcb->HeadSum = NetIp6PseudoHeadChecksum ( + &Tcb->LocalEnd.Ip.v6, +@@ -63,9 +107,25 @@ TcpInitTcbLocal ( + 0x06, + 0 + ); ++ ++ Status = TcpGetIsn ( ++ Tcb->LocalEnd.Ip.v6.Addr, ++ sizeof (IPv6_ADDRESS), ++ Tcb->LocalEnd.Port, ++ Tcb->RemoteEnd.Ip.v6.Addr, ++ sizeof (IPv6_ADDRESS), ++ Tcb->RemoteEnd.Port, ++ &Isn ++ ); ++ } ++ ++ if (EFI_ERROR (Status)) { ++ DEBUG ((DEBUG_ERROR, "TcpInitTcbLocal: failed to get isn\n")); ++ ASSERT (FALSE); ++ return Status; + } + +- Tcb->Iss = TcpGetIss (); ++ Tcb->Iss = Isn; + Tcb->SndUna = Tcb->Iss; + Tcb->SndNxt = Tcb->Iss; + +@@ -81,6 +141,8 @@ TcpInitTcbLocal ( + Tcb->RetxmitSeqMax = 0; + + Tcb->ProbeTimerOn = FALSE; ++ ++ return EFI_SUCCESS; + } + + /** +@@ -505,18 +567,162 @@ TcpCloneTcb ( + } + + /** +- Compute an ISS to be used by a new connection. +- +- @return The resulting ISS. ++ Retrieves the Initial Sequence Number (ISN) for a TCP connection identified by local ++ and remote IP addresses and ports. ++ ++ This method is based on https://datatracker.ietf.org/doc/html/rfc9293#section-3.4.1 ++ Where the ISN is computed as follows: ++ ISN = TimeStamp + MD5(LocalIP, LocalPort, RemoteIP, RemotePort, Secret) ++ ++ Otherwise: ++ ISN = M + F(localip, localport, remoteip, remoteport, secretkey) ++ ++ "Here M is the 4 microsecond timer, and F() is a pseudorandom function (PRF) of the ++ connection's identifying parameters ("localip, localport, remoteip, remoteport") ++ and a secret key ("secretkey") (SHLD-1). F() MUST NOT be computable from the ++ outside (MUST-9), or an attacker could still guess at sequence numbers from the ++ ISN used for some other connection. The PRF could be implemented as a ++ cryptographic hash of the concatenation of the TCP connection parameters and some ++ secret data. For discussion of the selection of a specific hash algorithm and ++ management of the secret key data." ++ ++ @param[in] LocalIp A pointer to the local IP address of the TCP connection. ++ @param[in] LocalIpSize The size, in bytes, of the LocalIp buffer. ++ @param[in] LocalPort The local port number of the TCP connection. ++ @param[in] RemoteIp A pointer to the remote IP address of the TCP connection. ++ @param[in] RemoteIpSize The size, in bytes, of the RemoteIp buffer. ++ @param[in] RemotePort The remote port number of the TCP connection. ++ @param[out] Isn A pointer to the variable that will receive the Initial ++ Sequence Number (ISN). ++ ++ @retval EFI_SUCCESS The operation completed successfully, and the ISN was ++ retrieved. ++ @retval EFI_INVALID_PARAMETER One or more of the input parameters are invalid. ++ @retval EFI_UNSUPPORTED The operation is not supported. + + **/ +-TCP_SEQNO +-TcpGetIss ( +- VOID ++EFI_STATUS ++TcpGetIsn ( ++ IN UINT8 *LocalIp, ++ IN UINTN LocalIpSize, ++ IN UINT16 LocalPort, ++ IN UINT8 *RemoteIp, ++ IN UINTN RemoteIpSize, ++ IN UINT16 RemotePort, ++ OUT TCP_SEQNO *Isn + ) + { +- mTcpGlobalIss += TCP_ISS_INCREMENT_1; +- return mTcpGlobalIss; ++ EFI_STATUS Status; ++ EFI_HASH2_PROTOCOL *Hash2Protocol; ++ EFI_HASH2_OUTPUT HashResult; ++ ISN_HASH_CTX IsnHashCtx; ++ EFI_TIME TimeStamp; ++ ++ // ++ // Check that the ISN pointer is valid ++ // ++ if (Isn == NULL) { ++ return EFI_INVALID_PARAMETER; ++ } ++ ++ // ++ // The local ip may be a v4 or v6 address and may not be NULL ++ // ++ if ((LocalIp == NULL) || (LocalIpSize == 0) || (RemoteIp == NULL) || (RemoteIpSize == 0)) { ++ return EFI_INVALID_PARAMETER; ++ } ++ ++ // ++ // the local ip may be a v4 or v6 address ++ // ++ if ((LocalIpSize != sizeof (EFI_IPv4_ADDRESS)) && (LocalIpSize != sizeof (EFI_IPv6_ADDRESS))) { ++ return EFI_INVALID_PARAMETER; ++ } ++ ++ // ++ // Locate the Hash Protocol ++ // ++ Status = gBS->LocateProtocol (&gEfiHash2ProtocolGuid, NULL, (VOID **)&Hash2Protocol); ++ if (EFI_ERROR (Status)) { ++ DEBUG ((DEBUG_NET, "Failed to locate Hash Protocol: %r\n", Status)); ++ ++ // ++ // TcpCreateService(..) is expected to be called prior to this function ++ // ++ ASSERT_EFI_ERROR (Status); ++ return Status; ++ } ++ ++ // ++ // Initialize the hash algorithm ++ // ++ Status = Hash2Protocol->HashInit (Hash2Protocol, &gEfiHashAlgorithmSha256Guid); ++ if (EFI_ERROR (Status)) { ++ DEBUG ((DEBUG_NET, "Failed to initialize sha256 hash algorithm: %r\n", Status)); ++ return Status; ++ } ++ ++ IsnHashCtx.LocalPort = LocalPort; ++ IsnHashCtx.RemotePort = RemotePort; ++ IsnHashCtx.Secret = mTcpGlobalSecret; ++ ++ // ++ // Check the IP address family and copy accordingly ++ // ++ if (LocalIpSize == sizeof (EFI_IPv4_ADDRESS)) { ++ CopyMem (&IsnHashCtx.LocalAddress.IPv4, LocalIp, LocalIpSize); ++ } else if (LocalIpSize == sizeof (EFI_IPv6_ADDRESS)) { ++ CopyMem (&IsnHashCtx.LocalAddress.IPv6, LocalIp, LocalIpSize); ++ } else { ++ return EFI_INVALID_PARAMETER; // Unsupported address size ++ } ++ ++ // ++ // Repeat the process for the remote IP address ++ // ++ if (RemoteIpSize == sizeof (EFI_IPv4_ADDRESS)) { ++ CopyMem (&IsnHashCtx.RemoteAddress.IPv4, RemoteIp, RemoteIpSize); ++ } else if (RemoteIpSize == sizeof (EFI_IPv6_ADDRESS)) { ++ CopyMem (&IsnHashCtx.RemoteAddress.IPv6, RemoteIp, RemoteIpSize); ++ } else { ++ return EFI_INVALID_PARAMETER; // Unsupported address size ++ } ++ ++ // ++ // Compute the hash ++ // Update the hash with the data ++ // ++ Status = Hash2Protocol->HashUpdate (Hash2Protocol, (UINT8 *)&IsnHashCtx, sizeof (IsnHashCtx)); ++ if (EFI_ERROR (Status)) { ++ DEBUG ((DEBUG_NET, "Failed to update hash: %r\n", Status)); ++ return Status; ++ } ++ ++ // ++ // Finalize the hash and retrieve the result ++ // ++ Status = Hash2Protocol->HashFinal (Hash2Protocol, &HashResult); ++ if (EFI_ERROR (Status)) { ++ DEBUG ((DEBUG_NET, "Failed to finalize hash: %r\n", Status)); ++ return Status; ++ } ++ ++ Status = gRT->GetTime (&TimeStamp, NULL); ++ if (EFI_ERROR (Status)) { ++ return Status; ++ } ++ ++ // ++ // copy the first 4 bytes of the hash result into the ISN ++ // ++ CopyMem (Isn, HashResult.Md5Hash, sizeof (*Isn)); ++ ++ // ++ // now add the timestamp to the ISN as 4 microseconds units (1000 / 4 = 250) ++ // ++ *Isn += (TCP_SEQNO)TimeStamp.Nanosecond * 250; ++ ++ return Status; + } + + /** +@@ -719,17 +925,29 @@ TcpFormatNetbuf ( + + @param[in, out] Tcb Pointer to the TCP_CB that wants to initiate a + connection. ++ ++ @retval EFI_SUCCESS The operation completed successfully ++ @retval others The underlying functions failed and could not complete the operation ++ + **/ +-VOID ++EFI_STATUS + TcpOnAppConnect ( + IN OUT TCP_CB *Tcb + ) + { +- TcpInitTcbLocal (Tcb); ++ EFI_STATUS Status; ++ ++ Status = TcpInitTcbLocal (Tcb); ++ if (EFI_ERROR (Status)) { ++ return Status; ++ } ++ + TcpSetState (Tcb, TCP_SYN_SENT); + + TcpSetTimer (Tcb, TCP_TIMER_CONNECT, Tcb->ConnectTimeout); + TcpToSendData (Tcb, 1); ++ ++ return EFI_SUCCESS; + } + + /** +diff --git a/NetworkPkg/TcpDxe/TcpTimer.c b/NetworkPkg/TcpDxe/TcpTimer.c +index 106d9470db..535d09d342 100644 +--- a/NetworkPkg/TcpDxe/TcpTimer.c ++++ b/NetworkPkg/TcpDxe/TcpTimer.c +@@ -2,7 +2,7 @@ + TCP timer related functions. + + Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.
+- ++ Copyright (c) Microsoft Corporation + SPDX-License-Identifier: BSD-2-Clause-Patent + + **/ +@@ -497,7 +497,6 @@ TcpTickingDpc ( + INT16 Index; + + mTcpTick++; +- mTcpGlobalIss += TCP_ISS_INCREMENT_2; + + // + // Don't use LIST_FOR_EACH, which isn't delete safe. +-- +2.39.3 + diff --git a/edk2-OvmfPkg-wire-up-RngDxe.patch b/edk2-OvmfPkg-wire-up-RngDxe.patch new file mode 100644 index 0000000..22ada98 --- /dev/null +++ b/edk2-OvmfPkg-wire-up-RngDxe.patch @@ -0,0 +1,318 @@ +From c74cced5adaab44edf1bbfae63010b3fa31d4c69 Mon Sep 17 00:00:00 2001 +From: Jon Maloy +Date: Sun, 23 Jun 2024 19:20:44 -0400 +Subject: [PATCH 27/31] OvmfPkg: wire up RngDxe + +RH-Author: Jon Maloy +RH-MergeRequest: 77: UINT32 overflow in S3 ResumeCount and Pixiefail fixes +RH-Jira: RHEL-21854 RHEL-21856 RHEL-40099 +RH-Acked-by: Gerd Hoffmann +RH-Commit: [27/31] 90226f6630261d2823bed33c4e2f6c96a4125027 + +JIRA: https://issues.redhat.com/browse/RHEL-21856 +Upstream: Merged +CVE: CVE-2023-45237 +Conflicts: - Needed to apply 9 earlier commits from Pierre Gondois + to make this one apply and build. + - Cherry pick wanted to add include files from the + missing 'add ShellComponents' (commit 2cb466cc2cbf...) + series. This had to be handled manually. + - There are no Dsc and Fdf subdirectories under + OvmfPkg/Include/ in this version. We adjust includes + and move files to OvmfPkg/ where needed. + +commit 712797cf19acd292bf203522a79e40e7e13d268b +Author: Gerd Hoffmann +Date: Fri May 24 12:51:17 2024 +0200 + + OvmfPkg: wire up RngDxe + + Add OvmfRng include snippets with the random number generator + configuration for OVMF. Include RngDxe, build with BaseRngLib, + so the rdrand instruction is used (if available). + + Also move VirtioRng to the include snippets. + + Use the new include snippets for OVMF builds. + + Signed-off-by: Gerd Hoffmann + +Signed-off-by: Jon Maloy +--- + OvmfPkg/AmdSev/AmdSevX64.dsc | 2 +- + OvmfPkg/AmdSev/AmdSevX64.fdf | 3 ++- + OvmfPkg/IntelTdx/IntelTdxX64.dsc | 2 +- + OvmfPkg/Microvm/MicrovmX64.dsc | 2 +- + OvmfPkg/Microvm/MicrovmX64.fdf | 3 ++- + OvmfPkg/OvmfPkgIa32.dsc | 2 +- + OvmfPkg/OvmfPkgIa32.fdf | 3 ++- + OvmfPkg/OvmfPkgIa32X64.dsc | 2 +- + OvmfPkg/OvmfPkgIa32X64.fdf | 2 +- + OvmfPkg/OvmfPkgX64.dsc | 2 +- + OvmfPkg/OvmfPkgX64.fdf | 2 +- + OvmfPkg/OvmfRngComponents.dsc.inc | 9 +++++++++ + OvmfPkg/OvmfRngDxe.fdf.inc | 6 ++++++ + 13 files changed, 29 insertions(+), 11 deletions(-) + create mode 100644 OvmfPkg/OvmfRngComponents.dsc.inc + create mode 100644 OvmfPkg/OvmfRngDxe.fdf.inc + +diff --git a/OvmfPkg/AmdSev/AmdSevX64.dsc b/OvmfPkg/AmdSev/AmdSevX64.dsc +index a1a6897bc2..499ad2e6e8 100644 +--- a/OvmfPkg/AmdSev/AmdSevX64.dsc ++++ b/OvmfPkg/AmdSev/AmdSevX64.dsc +@@ -707,7 +707,6 @@ + OvmfPkg/Virtio10Dxe/Virtio10.inf + OvmfPkg/VirtioBlkDxe/VirtioBlk.inf + OvmfPkg/VirtioScsiDxe/VirtioScsi.inf +- OvmfPkg/VirtioRngDxe/VirtioRng.inf + !if $(PVSCSI_ENABLE) == TRUE + OvmfPkg/PvScsiDxe/PvScsiDxe.inf + !endif +@@ -824,6 +823,7 @@ + gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|8000 + } + !endif ++!include OvmfPkg/OvmfRngComponents.dsc.inc + + OvmfPkg/PlatformDxe/Platform.inf + OvmfPkg/AmdSevDxe/AmdSevDxe.inf +diff --git a/OvmfPkg/AmdSev/AmdSevX64.fdf b/OvmfPkg/AmdSev/AmdSevX64.fdf +index 5662609886..06ff2f1d30 100644 +--- a/OvmfPkg/AmdSev/AmdSevX64.fdf ++++ b/OvmfPkg/AmdSev/AmdSevX64.fdf +@@ -222,7 +222,6 @@ INF OvmfPkg/VirtioPciDeviceDxe/VirtioPciDeviceDxe.inf + INF OvmfPkg/Virtio10Dxe/Virtio10.inf + INF OvmfPkg/VirtioBlkDxe/VirtioBlk.inf + INF OvmfPkg/VirtioScsiDxe/VirtioScsi.inf +-INF OvmfPkg/VirtioRngDxe/VirtioRng.inf + !if $(PVSCSI_ENABLE) == TRUE + INF OvmfPkg/PvScsiDxe/PvScsiDxe.inf + !endif +@@ -327,6 +326,8 @@ INF SecurityPkg/Tcg/Tcg2Config/Tcg2ConfigDxe.inf + !endif + !endif + ++!include OvmfPkg/OvmfRngDxe.fdf.inc ++ + ################################################################################ + + [FV.FVMAIN_COMPACT] +diff --git a/OvmfPkg/IntelTdx/IntelTdxX64.dsc b/OvmfPkg/IntelTdx/IntelTdxX64.dsc +index d08b77ff25..4f2909b76e 100644 +--- a/OvmfPkg/IntelTdx/IntelTdxX64.dsc ++++ b/OvmfPkg/IntelTdx/IntelTdxX64.dsc +@@ -635,7 +635,6 @@ + OvmfPkg/Virtio10Dxe/Virtio10.inf + OvmfPkg/VirtioBlkDxe/VirtioBlk.inf + OvmfPkg/VirtioScsiDxe/VirtioScsi.inf +- OvmfPkg/VirtioRngDxe/VirtioRng.inf + !if $(PVSCSI_ENABLE) == TRUE + OvmfPkg/PvScsiDxe/PvScsiDxe.inf + !endif +@@ -744,6 +743,7 @@ + gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE + gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|8000 + } ++!include OvmfPkg/OvmfRngComponents.dsc.inc + + !if $(SECURE_BOOT_ENABLE) == TRUE + SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigDxe.inf +diff --git a/OvmfPkg/Microvm/MicrovmX64.dsc b/OvmfPkg/Microvm/MicrovmX64.dsc +index afd4bf3e98..0efb0b456d 100644 +--- a/OvmfPkg/Microvm/MicrovmX64.dsc ++++ b/OvmfPkg/Microvm/MicrovmX64.dsc +@@ -694,7 +694,6 @@ + OvmfPkg/Virtio10Dxe/Virtio10.inf + OvmfPkg/VirtioBlkDxe/VirtioBlk.inf + OvmfPkg/VirtioScsiDxe/VirtioScsi.inf +- OvmfPkg/VirtioRngDxe/VirtioRng.inf + MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf + MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf + MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf +@@ -820,6 +819,7 @@ + gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE + gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|8000 + } ++!include OvmfPkg/OvmfRngComponents.dsc.inc + + OvmfPkg/PlatformDxe/Platform.inf + OvmfPkg/IoMmuDxe/IoMmuDxe.inf +diff --git a/OvmfPkg/Microvm/MicrovmX64.fdf b/OvmfPkg/Microvm/MicrovmX64.fdf +index 6314014f3d..bd5afdafe0 100644 +--- a/OvmfPkg/Microvm/MicrovmX64.fdf ++++ b/OvmfPkg/Microvm/MicrovmX64.fdf +@@ -230,7 +230,6 @@ INF OvmfPkg/VirtioPciDeviceDxe/VirtioPciDeviceDxe.inf + INF OvmfPkg/Virtio10Dxe/Virtio10.inf + INF OvmfPkg/VirtioBlkDxe/VirtioBlk.inf + INF OvmfPkg/VirtioScsiDxe/VirtioScsi.inf +-INF OvmfPkg/VirtioRngDxe/VirtioRng.inf + + INF MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf + INF MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf +@@ -322,6 +321,8 @@ INF OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.inf + INF MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf + INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf + ++!include OvmfPkg/OvmfRngDxe.fdf.inc ++ + ################################################################################ + + [FV.FVMAIN_COMPACT] +diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc +index 47426c5cd2..f03906a9ff 100644 +--- a/OvmfPkg/OvmfPkgIa32.dsc ++++ b/OvmfPkg/OvmfPkgIa32.dsc +@@ -801,7 +801,6 @@ + OvmfPkg/Virtio10Dxe/Virtio10.inf + OvmfPkg/VirtioBlkDxe/VirtioBlk.inf + OvmfPkg/VirtioScsiDxe/VirtioScsi.inf +- OvmfPkg/VirtioRngDxe/VirtioRng.inf + !if $(PVSCSI_ENABLE) == TRUE + OvmfPkg/PvScsiDxe/PvScsiDxe.inf + !endif +@@ -958,6 +957,7 @@ + gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE + gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|8000 + } ++!include OvmfPkg/OvmfRngComponents.dsc.inc + + !if $(SECURE_BOOT_ENABLE) == TRUE + SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigDxe.inf +diff --git a/OvmfPkg/OvmfPkgIa32.fdf b/OvmfPkg/OvmfPkgIa32.fdf +index 00ea14adf0..050148948c 100644 +--- a/OvmfPkg/OvmfPkgIa32.fdf ++++ b/OvmfPkg/OvmfPkgIa32.fdf +@@ -228,7 +228,6 @@ INF OvmfPkg/VirtioPciDeviceDxe/VirtioPciDeviceDxe.inf + INF OvmfPkg/Virtio10Dxe/Virtio10.inf + INF OvmfPkg/VirtioBlkDxe/VirtioBlk.inf + INF OvmfPkg/VirtioScsiDxe/VirtioScsi.inf +-INF OvmfPkg/VirtioRngDxe/VirtioRng.inf + !if $(PVSCSI_ENABLE) == TRUE + INF OvmfPkg/PvScsiDxe/PvScsiDxe.inf + !endif +@@ -363,6 +362,7 @@ INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf + # + # TPM support + # ++ + !if $(TPM_ENABLE) == TRUE + INF SecurityPkg/Tcg/TcgDxe/TcgDxe.inf + INF SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.inf +@@ -371,6 +371,7 @@ INF SecurityPkg/Tcg/Tcg2PlatformDxe/Tcg2PlatformDxe.inf + INF SecurityPkg/Tcg/Tcg2Config/Tcg2ConfigDxe.inf + !endif + !endif ++!include OvmfPkg/OvmfRngDxe.fdf.inc + + !if $(LOAD_X64_ON_IA32_ENABLE) == TRUE + INF OvmfPkg/CompatImageLoaderDxe/CompatImageLoaderDxe.inf +diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc +index d4b30e8133..81145050c3 100644 +--- a/OvmfPkg/OvmfPkgIa32X64.dsc ++++ b/OvmfPkg/OvmfPkgIa32X64.dsc +@@ -815,7 +815,6 @@ + OvmfPkg/Virtio10Dxe/Virtio10.inf + OvmfPkg/VirtioBlkDxe/VirtioBlk.inf + OvmfPkg/VirtioScsiDxe/VirtioScsi.inf +- OvmfPkg/VirtioRngDxe/VirtioRng.inf + !if $(PVSCSI_ENABLE) == TRUE + OvmfPkg/PvScsiDxe/PvScsiDxe.inf + !endif +@@ -972,6 +971,7 @@ + gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE + gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|8000 + } ++!include OvmfPkg/OvmfRngComponents.dsc.inc + + !if $(SECURE_BOOT_ENABLE) == TRUE + SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigDxe.inf +diff --git a/OvmfPkg/OvmfPkgIa32X64.fdf b/OvmfPkg/OvmfPkgIa32X64.fdf +index e33a40c44e..3e2373f225 100644 +--- a/OvmfPkg/OvmfPkgIa32X64.fdf ++++ b/OvmfPkg/OvmfPkgIa32X64.fdf +@@ -232,7 +232,6 @@ INF OvmfPkg/VirtioPciDeviceDxe/VirtioPciDeviceDxe.inf + INF OvmfPkg/Virtio10Dxe/Virtio10.inf + INF OvmfPkg/VirtioBlkDxe/VirtioBlk.inf + INF OvmfPkg/VirtioScsiDxe/VirtioScsi.inf +-INF OvmfPkg/VirtioRngDxe/VirtioRng.inf + !if $(PVSCSI_ENABLE) == TRUE + INF OvmfPkg/PvScsiDxe/PvScsiDxe.inf + !endif +@@ -381,6 +380,7 @@ INF SecurityPkg/Tcg/Tcg2PlatformDxe/Tcg2PlatformDxe.inf + INF SecurityPkg/Tcg/Tcg2Config/Tcg2ConfigDxe.inf + !endif + !endif ++!include OvmfPkg/OvmfRngDxe.fdf.inc + + ################################################################################ + +diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc +index 5b0f6c8747..1cb169b447 100644 +--- a/OvmfPkg/OvmfPkgX64.dsc ++++ b/OvmfPkg/OvmfPkgX64.dsc +@@ -813,7 +813,6 @@ + OvmfPkg/Virtio10Dxe/Virtio10.inf + OvmfPkg/VirtioBlkDxe/VirtioBlk.inf + OvmfPkg/VirtioScsiDxe/VirtioScsi.inf +- OvmfPkg/VirtioRngDxe/VirtioRng.inf + !if $(PVSCSI_ENABLE) == TRUE + OvmfPkg/PvScsiDxe/PvScsiDxe.inf + !endif +@@ -970,6 +969,7 @@ + gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE + gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|8000 + } ++!include OvmfPkg/OvmfRngComponents.dsc.inc + + !if $(SECURE_BOOT_ENABLE) == TRUE + SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigDxe.inf +diff --git a/OvmfPkg/OvmfPkgX64.fdf b/OvmfPkg/OvmfPkgX64.fdf +index 85b4b23857..8ba0ca437a 100644 +--- a/OvmfPkg/OvmfPkgX64.fdf ++++ b/OvmfPkg/OvmfPkgX64.fdf +@@ -248,7 +248,6 @@ INF OvmfPkg/VirtioPciDeviceDxe/VirtioPciDeviceDxe.inf + INF OvmfPkg/Virtio10Dxe/Virtio10.inf + INF OvmfPkg/VirtioBlkDxe/VirtioBlk.inf + INF OvmfPkg/VirtioScsiDxe/VirtioScsi.inf +-INF OvmfPkg/VirtioRngDxe/VirtioRng.inf + !if $(PVSCSI_ENABLE) == TRUE + INF OvmfPkg/PvScsiDxe/PvScsiDxe.inf + !endif +@@ -397,6 +396,7 @@ INF SecurityPkg/Tcg/Tcg2PlatformDxe/Tcg2PlatformDxe.inf + INF SecurityPkg/Tcg/Tcg2Config/Tcg2ConfigDxe.inf + !endif + !endif ++!include OvmfPkg/OvmfRngDxe.fdf.inc + + ################################################################################ + +diff --git a/OvmfPkg/OvmfRngComponents.dsc.inc b/OvmfPkg/OvmfRngComponents.dsc.inc +new file mode 100644 +index 0000000000..68839a0caa +--- /dev/null ++++ b/OvmfPkg/OvmfRngComponents.dsc.inc +@@ -0,0 +1,9 @@ ++## ++# SPDX-License-Identifier: BSD-2-Clause-Patent ++## ++ ++ SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.inf { ++ ++ RngLib|MdePkg/Library/BaseRngLib/BaseRngLib.inf ++ } ++ OvmfPkg/VirtioRngDxe/VirtioRng.inf +diff --git a/OvmfPkg/OvmfRngDxe.fdf.inc b/OvmfPkg/OvmfRngDxe.fdf.inc +new file mode 100644 +index 0000000000..99cb4a32b1 +--- /dev/null ++++ b/OvmfPkg/OvmfRngDxe.fdf.inc +@@ -0,0 +1,6 @@ ++## ++# SPDX-License-Identifier: BSD-2-Clause-Patent ++## ++ ++INF SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.inf ++INF OvmfPkg/VirtioRngDxe/VirtioRng.inf +-- +2.39.3 + diff --git a/edk2-SecurityPkg-RngDxe-Add-AArch64-RawAlgorithm-support-.patch b/edk2-SecurityPkg-RngDxe-Add-AArch64-RawAlgorithm-support-.patch new file mode 100644 index 0000000..dc9a102 --- /dev/null +++ b/edk2-SecurityPkg-RngDxe-Add-AArch64-RawAlgorithm-support-.patch @@ -0,0 +1,246 @@ +From 660ffc1753c84e89281d54059c0cb73eef7200d0 Mon Sep 17 00:00:00 2001 +From: Jon Maloy +Date: Tue, 25 Jun 2024 22:27:16 -0400 +Subject: [PATCH 09/31] SecurityPkg/RngDxe: Add AArch64 RawAlgorithm support + through ArmTrngLib + +RH-Author: Jon Maloy +RH-MergeRequest: 77: UINT32 overflow in S3 ResumeCount and Pixiefail fixes +RH-Jira: RHEL-21854 RHEL-21856 RHEL-40099 +RH-Acked-by: Gerd Hoffmann +RH-Commit: [9/31] 34f5db557b893a686c382a09ceacda728dbd4ad9 + +JIRA: https://issues.redhat.com/browse/RHEL-21856 +CVE: CVE-2022-45237 +Upstream: Merged + +commit 863fe9e191fb3d90c3283062183692c04cd71975 +Author: Sami Mujawar +Date: Fri Oct 28 17:32:55 2022 +0200 + + SecurityPkg/RngDxe: Add AArch64 RawAlgorithm support through ArmTrngLib + + Bugzilla: 3668 (https://bugzilla.tianocore.org/show_bug.cgi?id=3668) + + RawAlgorithm is used to provide access to entropy that is suitable + for cryptographic applications. Therefore, add RawAlgorithm support + that provides access to entropy using the ArmTrngLib. + + Also remove unused UefiBootServicesTableLib library inclusion + and Status variable. + + Signed-off-by: Pierre Gondois + Acked-by: Jiewen Yao + +Signed-off-by: Jon Maloy +--- + .../RngDxe/AArch64/RngDxe.c | 28 ++++++-- + .../RandomNumberGenerator/RngDxe/ArmTrng.c | 71 +++++++++++++++++++ + .../RandomNumberGenerator/RngDxe/RngDxe.inf | 5 ++ + SecurityPkg/SecurityPkg.dsc | 4 ++ + 4 files changed, 104 insertions(+), 4 deletions(-) + create mode 100644 SecurityPkg/RandomNumberGenerator/RngDxe/ArmTrng.c + +diff --git a/SecurityPkg/RandomNumberGenerator/RngDxe/AArch64/RngDxe.c b/SecurityPkg/RandomNumberGenerator/RngDxe/AArch64/RngDxe.c +index c9d66d9777..c0b0d28d48 100644 +--- a/SecurityPkg/RandomNumberGenerator/RngDxe/AArch64/RngDxe.c ++++ b/SecurityPkg/RandomNumberGenerator/RngDxe/AArch64/RngDxe.c +@@ -1,11 +1,13 @@ + /** @file + RNG Driver to produce the UEFI Random Number Generator protocol. + +- The driver will use the RNDR instruction to produce random numbers. ++ The driver can use RNDR instruction (through the RngLib and if FEAT_RNG is ++ present) to produce random numbers. It also uses the Arm FW-TRNG interface ++ to implement EFI_RNG_ALGORITHM_RAW. + + RNG Algorithms defined in UEFI 2.4: + - EFI_RNG_ALGORITHM_SP800_90_CTR_256_GUID +- - EFI_RNG_ALGORITHM_RAW - Unsupported ++ - EFI_RNG_ALGORITHM_RAW + - EFI_RNG_ALGORITHM_SP800_90_HMAC_256_GUID + - EFI_RNG_ALGORITHM_SP800_90_HASH_256_GUID + - EFI_RNG_ALGORITHM_X9_31_3DES_GUID - Unsupported +@@ -26,12 +28,14 @@ + #include + #include + #include ++#include ++#include + #include + + #include "RngDxeInternals.h" + + // Maximum number of Rng algorithms. +-#define RNG_AVAILABLE_ALGO_MAX 1 ++#define RNG_AVAILABLE_ALGO_MAX 2 + + /** Allocate and initialize mAvailableAlgoArray with the available + Rng algorithms. Also update mAvailableAlgoArrayCount. +@@ -46,8 +50,9 @@ GetAvailableAlgorithms ( + ) + { + UINT64 DummyRand; ++ UINT16 MajorRevision; ++ UINT16 MinorRevision; + +- // Allocate RNG_AVAILABLE_ALGO_MAX entries to avoid evaluating + // Rng algorithms 2 times, one for the allocation, one to populate. + mAvailableAlgoArray = AllocateZeroPool (RNG_AVAILABLE_ALGO_MAX); + if (mAvailableAlgoArray == NULL) { +@@ -64,6 +69,16 @@ GetAvailableAlgorithms ( + mAvailableAlgoArrayCount++; + } + ++ // Raw algorithm (Trng) ++ if (!EFI_ERROR (GetArmTrngVersion (&MajorRevision, &MinorRevision))) { ++ CopyMem ( ++ &mAvailableAlgoArray[mAvailableAlgoArrayCount], ++ &gEfiRngAlgorithmRaw, ++ sizeof (EFI_RNG_ALGORITHM) ++ ); ++ mAvailableAlgoArrayCount++; ++ } ++ + return EFI_SUCCESS; + } + +@@ -141,6 +156,11 @@ FoundAlgo: + return Status; + } + ++ // Raw algorithm (Trng) ++ if (CompareGuid (RNGAlgorithm, &gEfiRngAlgorithmRaw)) { ++ return GenerateEntropy (RNGValueLength, RNGValue); ++ } ++ + // + // Other algorithms are unsupported by this driver. + // +diff --git a/SecurityPkg/RandomNumberGenerator/RngDxe/ArmTrng.c b/SecurityPkg/RandomNumberGenerator/RngDxe/ArmTrng.c +new file mode 100644 +index 0000000000..ffe557b692 +--- /dev/null ++++ b/SecurityPkg/RandomNumberGenerator/RngDxe/ArmTrng.c +@@ -0,0 +1,71 @@ ++/** @file ++ RNG Driver to produce the UEFI Random Number Generator protocol. ++ ++ The driver implements the EFI_RNG_ALGORITHM_RAW using the FW-TRNG ++ interface to provide entropy. ++ ++ Copyright (c) 2021 - 2022, Arm Limited. All rights reserved.
++ ++ SPDX-License-Identifier: BSD-2-Clause-Patent ++ ++**/ ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include "RngDxeInternals.h" ++ ++/** ++ Generate high-quality entropy source using a TRNG or through RDRAND. ++ ++ @param[in] Length Size of the buffer, in bytes, to fill with. ++ @param[out] Entropy Pointer to the buffer to store the entropy data. ++ ++ @retval RETURN_SUCCESS The function completed successfully. ++ @retval RETURN_INVALID_PARAMETER Invalid parameter. ++ @retval RETURN_UNSUPPORTED Function not implemented. ++ @retval RETURN_BAD_BUFFER_SIZE Buffer size is too small. ++ @retval RETURN_NOT_READY No Entropy available. ++**/ ++EFI_STATUS ++EFIAPI ++GenerateEntropy ( ++ IN UINTN Length, ++ OUT UINT8 *Entropy ++ ) ++{ ++ EFI_STATUS Status; ++ UINTN CollectedEntropyBits; ++ UINTN RequiredEntropyBits; ++ UINTN EntropyBits; ++ UINTN Index; ++ UINTN MaxBits; ++ ++ ZeroMem (Entropy, Length); ++ ++ RequiredEntropyBits = (Length << 3); ++ Index = 0; ++ CollectedEntropyBits = 0; ++ MaxBits = GetArmTrngMaxSupportedEntropyBits (); ++ while (CollectedEntropyBits < RequiredEntropyBits) { ++ EntropyBits = MIN ((RequiredEntropyBits - CollectedEntropyBits), MaxBits); ++ Status = GetArmTrngEntropy ( ++ EntropyBits, ++ (Length - Index), ++ &Entropy[Index] ++ ); ++ if (EFI_ERROR (Status)) { ++ // Discard the collected bits. ++ ZeroMem (Entropy, Length); ++ return Status; ++ } ++ ++ CollectedEntropyBits += EntropyBits; ++ Index += (EntropyBits >> 3); ++ } // while ++ ++ return Status; ++} +diff --git a/SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.inf b/SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.inf +index 1985dfbb46..e0e767cbf3 100644 +--- a/SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.inf ++++ b/SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.inf +@@ -43,8 +43,10 @@ + + [Sources.AARCH64] + AArch64/RngDxe.c ++ ArmTrng.c + + [Packages] ++ MdeModulePkg/MdeModulePkg.dec + MdePkg/MdePkg.dec + SecurityPkg/SecurityPkg.dec + +@@ -57,6 +59,9 @@ + TimerLib + RngLib + ++[LibraryClasses.AARCH64] ++ ArmTrngLib ++ + [Guids] + gEfiRngAlgorithmSp80090Hash256Guid ## SOMETIMES_PRODUCES ## GUID # Unique ID of the algorithm for RNG + gEfiRngAlgorithmSp80090Hmac256Guid ## SOMETIMES_PRODUCES ## GUID # Unique ID of the algorithm for RNG +diff --git a/SecurityPkg/SecurityPkg.dsc b/SecurityPkg/SecurityPkg.dsc +index 73a93c2285..9f58cc2333 100644 +--- a/SecurityPkg/SecurityPkg.dsc ++++ b/SecurityPkg/SecurityPkg.dsc +@@ -3,6 +3,8 @@ + # + # Copyright (c) 2009 - 2021, Intel Corporation. All rights reserved.
+ # (C) Copyright 2015-2020 Hewlett Packard Enterprise Development LP
++# Copyright (c) 2022, Loongson Technology Corporation Limited. All rights reserved.
++# Copyright (c) 2021 - 2022, Arm Limited. All rights reserved.
+ # SPDX-License-Identifier: BSD-2-Clause-Patent + # + ## +@@ -86,6 +88,8 @@ + + ArmSoftFloatLib|ArmPkg/Library/ArmSoftFloatLib/ArmSoftFloatLib.inf + ++ ArmTrngLib|MdePkg/Library/BaseArmTrngLibNull/BaseArmTrngLibNull.inf ++ + [LibraryClasses.ARM] + RngLib|MdePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf + +-- +2.39.3 + diff --git a/edk2-SecurityPkg-RngDxe-Add-Arm-support-of-RngDxe.patch b/edk2-SecurityPkg-RngDxe-Add-Arm-support-of-RngDxe.patch new file mode 100644 index 0000000..39d41c2 --- /dev/null +++ b/edk2-SecurityPkg-RngDxe-Add-Arm-support-of-RngDxe.patch @@ -0,0 +1,311 @@ +From 0c6e925403e5aa50a77797af59308e6fee4be6b1 Mon Sep 17 00:00:00 2001 +From: Jon Maloy +Date: Tue, 25 Jun 2024 22:31:58 -0400 +Subject: [PATCH 12/31] SecurityPkg/RngDxe: Add Arm support of RngDxe + +RH-Author: Jon Maloy +RH-MergeRequest: 77: UINT32 overflow in S3 ResumeCount and Pixiefail fixes +RH-Jira: RHEL-21854 RHEL-21856 RHEL-40099 +RH-Acked-by: Gerd Hoffmann +RH-Commit: [12/31] 11b72f6d69392c7b2e8565025a576e76877fe7ed + +JIRA: https://issues.redhat.com/browse/RHEL-21856 +CVE: CVE-2022-45237 +Upstream: Merged + +commit 9eb5ccda505917f6ee80284ed6fb5b51aa7152f9 +Author: Pierre Gondois +Date: Fri Oct 28 17:32:58 2022 +0200 + + SecurityPkg/RngDxe: Add Arm support of RngDxe + + Bugzilla: 3668 (https://bugzilla.tianocore.org/show_bug.cgi?id=3668) + + Add RngDxe support for Arm. This implementation uses the ArmTrngLib + to support the RawAlgorithm and doens't support the RNDR instruction. + + To re-use the RngGetRNG(), RngGetInfo() and FreeAvailableAlgorithms() + functions, create Arm/AArch64 files which implement the arch specific + function GetAvailableAlgorithms(). Indeed, FEAT_RNG instruction is not + supported on Arm. + + Signed-off-by: Pierre Gondois + Acked-by: Jiewen Yao + +Signed-off-by: Jon Maloy +--- + .../RngDxe/AArch64/AArch64Algo.c | 72 +++++++++++++++++++ + .../RngDxe/Arm/ArmAlgo.c | 51 +++++++++++++ + .../RandomNumberGenerator/RngDxe/ArmRngDxe.c | 60 ---------------- + .../RandomNumberGenerator/RngDxe/RngDxe.inf | 12 +++- + SecurityPkg/SecurityPkg.dsc | 2 +- + 5 files changed, 133 insertions(+), 64 deletions(-) + create mode 100644 SecurityPkg/RandomNumberGenerator/RngDxe/AArch64/AArch64Algo.c + create mode 100644 SecurityPkg/RandomNumberGenerator/RngDxe/Arm/ArmAlgo.c + +diff --git a/SecurityPkg/RandomNumberGenerator/RngDxe/AArch64/AArch64Algo.c b/SecurityPkg/RandomNumberGenerator/RngDxe/AArch64/AArch64Algo.c +new file mode 100644 +index 0000000000..e8be217f8a +--- /dev/null ++++ b/SecurityPkg/RandomNumberGenerator/RngDxe/AArch64/AArch64Algo.c +@@ -0,0 +1,72 @@ ++/** @file ++ Aarch64 specific code. ++ ++ Copyright (c) 2022, Arm Limited. All rights reserved.
++ SPDX-License-Identifier: BSD-2-Clause-Patent ++**/ ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include "RngDxeInternals.h" ++ ++// Maximum number of Rng algorithms. ++#define RNG_AVAILABLE_ALGO_MAX 2 ++ ++/** Allocate and initialize mAvailableAlgoArray with the available ++ Rng algorithms. Also update mAvailableAlgoArrayCount. ++ ++ @retval EFI_SUCCESS The function completed successfully. ++ @retval EFI_OUT_OF_RESOURCES Could not allocate memory. ++**/ ++EFI_STATUS ++EFIAPI ++GetAvailableAlgorithms ( ++ VOID ++ ) ++{ ++ UINT64 DummyRand; ++ UINT16 MajorRevision; ++ UINT16 MinorRevision; ++ ++ // Rng algorithms 2 times, one for the allocation, one to populate. ++ mAvailableAlgoArray = AllocateZeroPool (RNG_AVAILABLE_ALGO_MAX); ++ if (mAvailableAlgoArray == NULL) { ++ return EFI_OUT_OF_RESOURCES; ++ } ++ ++ // Check RngGetBytes() before advertising PcdCpuRngSupportedAlgorithm. ++ if (!EFI_ERROR (RngGetBytes (sizeof (DummyRand), (UINT8 *)&DummyRand))) { ++ CopyMem ( ++ &mAvailableAlgoArray[mAvailableAlgoArrayCount], ++ PcdGetPtr (PcdCpuRngSupportedAlgorithm), ++ sizeof (EFI_RNG_ALGORITHM) ++ ); ++ mAvailableAlgoArrayCount++; ++ ++ DEBUG_CODE_BEGIN (); ++ if (IsZeroGuid (PcdGetPtr (PcdCpuRngSupportedAlgorithm))) { ++ DEBUG (( ++ DEBUG_WARN, ++ "PcdCpuRngSupportedAlgorithm should be a non-zero GUID\n" ++ )); ++ } ++ ++ DEBUG_CODE_END (); ++ } ++ ++ // Raw algorithm (Trng) ++ if (!EFI_ERROR (GetArmTrngVersion (&MajorRevision, &MinorRevision))) { ++ CopyMem ( ++ &mAvailableAlgoArray[mAvailableAlgoArrayCount], ++ &gEfiRngAlgorithmRaw, ++ sizeof (EFI_RNG_ALGORITHM) ++ ); ++ mAvailableAlgoArrayCount++; ++ } ++ ++ return EFI_SUCCESS; ++} +diff --git a/SecurityPkg/RandomNumberGenerator/RngDxe/Arm/ArmAlgo.c b/SecurityPkg/RandomNumberGenerator/RngDxe/Arm/ArmAlgo.c +new file mode 100644 +index 0000000000..4b24f5c4a6 +--- /dev/null ++++ b/SecurityPkg/RandomNumberGenerator/RngDxe/Arm/ArmAlgo.c +@@ -0,0 +1,51 @@ ++/** @file ++ Arm specific code. ++ ++ Copyright (c) 2022, Arm Limited. All rights reserved.
++ SPDX-License-Identifier: BSD-2-Clause-Patent ++**/ ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include "RngDxeInternals.h" ++ ++// Maximum number of Rng algorithms. ++#define RNG_AVAILABLE_ALGO_MAX 1 ++ ++/** Allocate and initialize mAvailableAlgoArray with the available ++ Rng algorithms. Also update mAvailableAlgoArrayCount. ++ ++ @retval EFI_SUCCESS The function completed successfully. ++ @retval EFI_OUT_OF_RESOURCES Could not allocate memory. ++**/ ++EFI_STATUS ++EFIAPI ++GetAvailableAlgorithms ( ++ VOID ++ ) ++{ ++ UINT16 MajorRevision; ++ UINT16 MinorRevision; ++ ++ // Rng algorithms 2 times, one for the allocation, one to populate. ++ mAvailableAlgoArray = AllocateZeroPool (RNG_AVAILABLE_ALGO_MAX); ++ if (mAvailableAlgoArray == NULL) { ++ return EFI_OUT_OF_RESOURCES; ++ } ++ ++ // Raw algorithm (Trng) ++ if (!EFI_ERROR (GetArmTrngVersion (&MajorRevision, &MinorRevision))) { ++ CopyMem ( ++ &mAvailableAlgoArray[mAvailableAlgoArrayCount], ++ &gEfiRngAlgorithmRaw, ++ sizeof (EFI_RNG_ALGORITHM) ++ ); ++ mAvailableAlgoArrayCount++; ++ } ++ ++ return EFI_SUCCESS; ++} +diff --git a/SecurityPkg/RandomNumberGenerator/RngDxe/ArmRngDxe.c b/SecurityPkg/RandomNumberGenerator/RngDxe/ArmRngDxe.c +index a800a85792..5e7d9ef681 100644 +--- a/SecurityPkg/RandomNumberGenerator/RngDxe/ArmRngDxe.c ++++ b/SecurityPkg/RandomNumberGenerator/RngDxe/ArmRngDxe.c +@@ -28,70 +28,10 @@ + #include + #include + #include +-#include +-#include + #include + + #include "RngDxeInternals.h" + +-// Maximum number of Rng algorithms. +-#define RNG_AVAILABLE_ALGO_MAX 2 +- +-/** Allocate and initialize mAvailableAlgoArray with the available +- Rng algorithms. Also update mAvailableAlgoArrayCount. +- +- @retval EFI_SUCCESS The function completed successfully. +- @retval EFI_OUT_OF_RESOURCES Could not allocate memory. +-**/ +-EFI_STATUS +-EFIAPI +-GetAvailableAlgorithms ( +- VOID +- ) +-{ +- UINT64 DummyRand; +- UINT16 MajorRevision; +- UINT16 MinorRevision; +- +- // Rng algorithms 2 times, one for the allocation, one to populate. +- mAvailableAlgoArray = AllocateZeroPool (RNG_AVAILABLE_ALGO_MAX); +- if (mAvailableAlgoArray == NULL) { +- return EFI_OUT_OF_RESOURCES; +- } +- +- // Check RngGetBytes() before advertising PcdCpuRngSupportedAlgorithm. +- if (!EFI_ERROR (RngGetBytes (sizeof (DummyRand), (UINT8 *)&DummyRand))) { +- CopyMem ( +- &mAvailableAlgoArray[mAvailableAlgoArrayCount], +- PcdGetPtr (PcdCpuRngSupportedAlgorithm), +- sizeof (EFI_RNG_ALGORITHM) +- ); +- mAvailableAlgoArrayCount++; +- +- DEBUG_CODE_BEGIN (); +- if (IsZeroGuid (PcdGetPtr (PcdCpuRngSupportedAlgorithm))) { +- DEBUG (( +- DEBUG_WARN, +- "PcdCpuRngSupportedAlgorithm should be a non-zero GUID\n" +- )); +- } +- +- DEBUG_CODE_END (); +- } +- +- // Raw algorithm (Trng) +- if (!EFI_ERROR (GetArmTrngVersion (&MajorRevision, &MinorRevision))) { +- CopyMem ( +- &mAvailableAlgoArray[mAvailableAlgoArrayCount], +- &gEfiRngAlgorithmRaw, +- sizeof (EFI_RNG_ALGORITHM) +- ); +- mAvailableAlgoArrayCount++; +- } +- +- return EFI_SUCCESS; +-} +- + /** Free mAvailableAlgoArray. + **/ + VOID +diff --git a/SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.inf b/SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.inf +index 1d0bdef57d..c8e0ee4ae5 100644 +--- a/SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.inf ++++ b/SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.inf +@@ -28,7 +28,7 @@ + # + # The following information is for reference only and not required by the build tools. + # +-# VALID_ARCHITECTURES = IA32 X64 AARCH64 ++# VALID_ARCHITECTURES = IA32 X64 AARCH64 ARM + # + + [Sources.common] +@@ -41,10 +41,16 @@ + Rand/AesCore.c + Rand/AesCore.h + +-[Sources.AARCH64] ++[Sources.AARCH64, Sources.ARM] + ArmRngDxe.c + ArmTrng.c + ++[Sources.AARCH64] ++ AArch64/AArch64Algo.c ++ ++[Sources.ARM] ++ Arm/ArmAlgo.c ++ + [Packages] + MdeModulePkg/MdeModulePkg.dec + MdePkg/MdePkg.dec +@@ -59,7 +65,7 @@ + TimerLib + RngLib + +-[LibraryClasses.AARCH64] ++[LibraryClasses.AARCH64, LibraryClasses.ARM] + ArmTrngLib + + [Guids] +diff --git a/SecurityPkg/SecurityPkg.dsc b/SecurityPkg/SecurityPkg.dsc +index 9f58cc2333..36493f04ee 100644 +--- a/SecurityPkg/SecurityPkg.dsc ++++ b/SecurityPkg/SecurityPkg.dsc +@@ -281,7 +281,7 @@ + SecurityPkg/EnrollFromDefaultKeysApp/EnrollFromDefaultKeysApp.inf + SecurityPkg/VariableAuthenticated/SecureBootDefaultKeysDxe/SecureBootDefaultKeysDxe.inf + +-[Components.IA32, Components.X64, Components.AARCH64] ++[Components.IA32, Components.X64, Components.AARCH64, Components.ARM] + # + # Random Number Generator + # +-- +2.39.3 + diff --git a/edk2-SecurityPkg-RngDxe-Add-debug-warning-for-NULL-PcdCpu.patch b/edk2-SecurityPkg-RngDxe-Add-debug-warning-for-NULL-PcdCpu.patch new file mode 100644 index 0000000..e146890 --- /dev/null +++ b/edk2-SecurityPkg-RngDxe-Add-debug-warning-for-NULL-PcdCpu.patch @@ -0,0 +1,58 @@ +From 8b78800fed2a4af7c08eebd20d1bf764e8e10c84 Mon Sep 17 00:00:00 2001 +From: Jon Maloy +Date: Tue, 25 Jun 2024 22:28:58 -0400 +Subject: [PATCH 10/31] SecurityPkg/RngDxe: Add debug warning for NULL + PcdCpuRngSupportedAlgorithm + +RH-Author: Jon Maloy +RH-MergeRequest: 77: UINT32 overflow in S3 ResumeCount and Pixiefail fixes +RH-Jira: RHEL-21854 RHEL-21856 RHEL-40099 +RH-Acked-by: Gerd Hoffmann +RH-Commit: [10/31] 66b888e9b1e2be0c79784e02b4821854bd80432d + +JIRA: https://issues.redhat.com/browse/RHEL-21856 +CVE: CVE-2022-45237 +Upstream: Merged + +commit 6cdddccf0085cf2929f8ae710515e4e53663dfb2 +Author: Pierre Gondois +Date: Fri Oct 28 17:32:56 2022 +0200 + + SecurityPkg/RngDxe: Add debug warning for NULL PcdCpuRngSupportedAlgorithm + + PcdCpuRngSupportedAlgorithm should allow to identify the the algorithm + used by the RNDR CPU instruction to generate a random number. + Add a debug warning if the Pcd is not set. + + Signed-off-by: Pierre Gondois + Acked-by: Jiewen Yao + +Signed-off-by: Jon Maloy +--- + .../RandomNumberGenerator/RngDxe/AArch64/RngDxe.c | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +diff --git a/SecurityPkg/RandomNumberGenerator/RngDxe/AArch64/RngDxe.c b/SecurityPkg/RandomNumberGenerator/RngDxe/AArch64/RngDxe.c +index c0b0d28d48..a800a85792 100644 +--- a/SecurityPkg/RandomNumberGenerator/RngDxe/AArch64/RngDxe.c ++++ b/SecurityPkg/RandomNumberGenerator/RngDxe/AArch64/RngDxe.c +@@ -67,6 +67,16 @@ GetAvailableAlgorithms ( + sizeof (EFI_RNG_ALGORITHM) + ); + mAvailableAlgoArrayCount++; ++ ++ DEBUG_CODE_BEGIN (); ++ if (IsZeroGuid (PcdGetPtr (PcdCpuRngSupportedAlgorithm))) { ++ DEBUG (( ++ DEBUG_WARN, ++ "PcdCpuRngSupportedAlgorithm should be a non-zero GUID\n" ++ )); ++ } ++ ++ DEBUG_CODE_END (); + } + + // Raw algorithm (Trng) +-- +2.39.3 + diff --git a/edk2-SecurityPkg-RngDxe-Check-before-advertising-Cpu-Rng-.patch b/edk2-SecurityPkg-RngDxe-Check-before-advertising-Cpu-Rng-.patch new file mode 100644 index 0000000..b285fca --- /dev/null +++ b/edk2-SecurityPkg-RngDxe-Check-before-advertising-Cpu-Rng-.patch @@ -0,0 +1,336 @@ +From 5bd27a5a923c8880a06d52fca48e304becbbb8f6 Mon Sep 17 00:00:00 2001 +From: Jon Maloy +Date: Tue, 25 Jun 2024 22:25:23 -0400 +Subject: [PATCH 08/31] SecurityPkg/RngDxe: Check before advertising Cpu Rng + algo + +RH-Author: Jon Maloy +RH-MergeRequest: 77: UINT32 overflow in S3 ResumeCount and Pixiefail fixes +RH-Jira: RHEL-21854 RHEL-21856 RHEL-40099 +RH-Acked-by: Gerd Hoffmann +RH-Commit: [8/31] 5417b276749a2d1b1afa9465b5b7a501def26a12 + +JIRA: https://issues.redhat.com/browse/RHEL-21856 +CVE: CVE-2022-45237 +Upstream: Merged + +commit 4b3e9d80bedf5909a4ec901425ed9c0a738fc76f +Author: Pierre Gondois +Date: Fri Oct 28 17:32:54 2022 +0200 + + SecurityPkg/RngDxe: Check before advertising Cpu Rng algo + + RngGetBytes() relies on the RngLib. The RngLib might use the RNDR + instruction if the FEAT_RNG feature is present. RngGetInfo and + RngGetRNG both must check that RngGetBytes() is working before + advertising/using it. + + To do so, allocate an array storing the available algorithms. + The Rng algorithm at the lowest index will be the default Rng + algorithm. The array is shared between RngGetInfo and RngGetRNG. + + This array is allocated when the driver is loaded, and freed + when unloaded. + + This patch also prevents from having PcdCpuRngSupportedAlgorithm + let to a zero GUID, but let the possibility to have no valid Rng + algorithm in such case. + + Signed-off-by: Pierre Gondois + Acked-by: Jiewen Yao + +Signed-off-by: Jon Maloy +--- + .../RngDxe/AArch64/RngDxe.c | 87 +++++++++++++++++-- + .../RngDxe/Rand/RngDxe.c | 26 ++++++ + .../RandomNumberGenerator/RngDxe/RngDxe.c | 40 ++++++++- + .../RandomNumberGenerator/RngDxe/RngDxe.inf | 1 + + .../RngDxe/RngDxeInternals.h | 27 ++++++ + 5 files changed, 172 insertions(+), 9 deletions(-) + +diff --git a/SecurityPkg/RandomNumberGenerator/RngDxe/AArch64/RngDxe.c b/SecurityPkg/RandomNumberGenerator/RngDxe/AArch64/RngDxe.c +index 8c6ad4ed43..c9d66d9777 100644 +--- a/SecurityPkg/RandomNumberGenerator/RngDxe/AArch64/RngDxe.c ++++ b/SecurityPkg/RandomNumberGenerator/RngDxe/AArch64/RngDxe.c +@@ -22,11 +22,63 @@ + + #include + #include ++#include ++#include + #include ++#include + #include + + #include "RngDxeInternals.h" + ++// Maximum number of Rng algorithms. ++#define RNG_AVAILABLE_ALGO_MAX 1 ++ ++/** Allocate and initialize mAvailableAlgoArray with the available ++ Rng algorithms. Also update mAvailableAlgoArrayCount. ++ ++ @retval EFI_SUCCESS The function completed successfully. ++ @retval EFI_OUT_OF_RESOURCES Could not allocate memory. ++**/ ++EFI_STATUS ++EFIAPI ++GetAvailableAlgorithms ( ++ VOID ++ ) ++{ ++ UINT64 DummyRand; ++ ++ // Allocate RNG_AVAILABLE_ALGO_MAX entries to avoid evaluating ++ // Rng algorithms 2 times, one for the allocation, one to populate. ++ mAvailableAlgoArray = AllocateZeroPool (RNG_AVAILABLE_ALGO_MAX); ++ if (mAvailableAlgoArray == NULL) { ++ return EFI_OUT_OF_RESOURCES; ++ } ++ ++ // Check RngGetBytes() before advertising PcdCpuRngSupportedAlgorithm. ++ if (!EFI_ERROR (RngGetBytes (sizeof (DummyRand), (UINT8 *)&DummyRand))) { ++ CopyMem ( ++ &mAvailableAlgoArray[mAvailableAlgoArrayCount], ++ PcdGetPtr (PcdCpuRngSupportedAlgorithm), ++ sizeof (EFI_RNG_ALGORITHM) ++ ); ++ mAvailableAlgoArrayCount++; ++ } ++ ++ return EFI_SUCCESS; ++} ++ ++/** Free mAvailableAlgoArray. ++**/ ++VOID ++EFIAPI ++FreeAvailableAlgorithms ( ++ VOID ++ ) ++{ ++ FreePool (mAvailableAlgoArray); ++ return; ++} ++ + /** + Produces and returns an RNG value using either the default or specified RNG algorithm. + +@@ -59,6 +111,7 @@ RngGetRNG ( + ) + { + EFI_STATUS Status; ++ UINTN Index; + + if ((This == NULL) || (RNGValueLength == 0) || (RNGValue == NULL)) { + return EFI_INVALID_PARAMETER; +@@ -68,9 +121,21 @@ RngGetRNG ( + // + // Use the default RNG algorithm if RNGAlgorithm is NULL. + // +- RNGAlgorithm = PcdGetPtr (PcdCpuRngSupportedAlgorithm); ++ for (Index = 0; Index < mAvailableAlgoArrayCount; Index++) { ++ if (!IsZeroGuid (&mAvailableAlgoArray[Index])) { ++ RNGAlgorithm = &mAvailableAlgoArray[Index]; ++ goto FoundAlgo; ++ } ++ } ++ ++ if (Index == mAvailableAlgoArrayCount) { ++ // No algorithm available. ++ ASSERT (Index != mAvailableAlgoArrayCount); ++ return EFI_DEVICE_ERROR; ++ } + } + ++FoundAlgo: + if (CompareGuid (RNGAlgorithm, PcdGetPtr (PcdCpuRngSupportedAlgorithm))) { + Status = RngGetBytes (RNGValueLength, RNGValue); + return Status; +@@ -113,24 +178,30 @@ RngGetInfo ( + OUT EFI_RNG_ALGORITHM *RNGAlgorithmList + ) + { +- UINTN RequiredSize; +- EFI_RNG_ALGORITHM *CpuRngSupportedAlgorithm; +- +- RequiredSize = sizeof (EFI_RNG_ALGORITHM); ++ UINTN RequiredSize; + + if ((This == NULL) || (RNGAlgorithmListSize == NULL)) { + return EFI_INVALID_PARAMETER; + } + ++ RequiredSize = mAvailableAlgoArrayCount * sizeof (EFI_RNG_ALGORITHM); ++ ++ if (RequiredSize == 0) { ++ // No supported algorithms found. ++ return EFI_UNSUPPORTED; ++ } ++ + if (*RNGAlgorithmListSize < RequiredSize) { + *RNGAlgorithmListSize = RequiredSize; + return EFI_BUFFER_TOO_SMALL; + } + +- CpuRngSupportedAlgorithm = PcdGetPtr (PcdCpuRngSupportedAlgorithm); +- +- CopyMem(&RNGAlgorithmList[0], CpuRngSupportedAlgorithm, sizeof (EFI_RNG_ALGORITHM)); ++ if (RNGAlgorithmList == NULL) { ++ return EFI_INVALID_PARAMETER; ++ } + ++ // There is no gap in the array, so copy the block. ++ CopyMem (RNGAlgorithmList, mAvailableAlgoArray, RequiredSize); + *RNGAlgorithmListSize = RequiredSize; + return EFI_SUCCESS; + } +diff --git a/SecurityPkg/RandomNumberGenerator/RngDxe/Rand/RngDxe.c b/SecurityPkg/RandomNumberGenerator/RngDxe/Rand/RngDxe.c +index 70b6ac20c9..7caa64a4ff 100644 +--- a/SecurityPkg/RandomNumberGenerator/RngDxe/Rand/RngDxe.c ++++ b/SecurityPkg/RandomNumberGenerator/RngDxe/Rand/RngDxe.c +@@ -26,6 +26,32 @@ + + #include "RngDxeInternals.h" + ++/** Allocate and initialize mAvailableAlgoArray with the available ++ Rng algorithms. Also update mAvailableAlgoArrayCount. ++ ++ @retval EFI_SUCCESS The function completed successfully. ++ @retval EFI_OUT_OF_RESOURCES Could not allocate memory. ++**/ ++EFI_STATUS ++EFIAPI ++GetAvailableAlgorithms ( ++ VOID ++ ) ++{ ++ return EFI_SUCCESS; ++} ++ ++/** Free mAvailableAlgoArray. ++**/ ++VOID ++EFIAPI ++FreeAvailableAlgorithms ( ++ VOID ++ ) ++{ ++ return; ++} ++ + /** + Produces and returns an RNG value using either the default or specified RNG algorithm. + +diff --git a/SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.c b/SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.c +index 4599728889..cc2ddfcc06 100644 +--- a/SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.c ++++ b/SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.c +@@ -27,6 +27,13 @@ SPDX-License-Identifier: BSD-2-Clause-Patent + + #include "RngDxeInternals.h" + ++// ++// Array containing the validated Rng algorithm. ++// The entry with the lowest index will be the default algorithm. ++// ++UINTN mAvailableAlgoArrayCount; ++EFI_RNG_ALGORITHM *mAvailableAlgoArray; ++ + // + // The Random Number Generator (RNG) protocol + // +@@ -66,8 +73,39 @@ RngDriverEntry ( + &mRngRdRand, + NULL + ); ++ if (EFI_ERROR (Status)) { ++ return Status; ++ } ++ ++ // ++ // Get the list of available algorithm. ++ // ++ return GetAvailableAlgorithms (); ++} ++ ++/** ++ This is the unload handle for RndgDxe module. ++ ++ Disconnect the driver specified by ImageHandle from all the devices in the handle database. ++ Uninstall all the protocols installed in the driver entry point. + +- return Status; ++ @param[in] ImageHandle The drivers' driver image. ++ ++ @retval EFI_SUCCESS The image is unloaded. ++ @retval Others Failed to unload the image. ++ ++**/ ++EFI_STATUS ++EFIAPI ++RngDriverUnLoad ( ++ IN EFI_HANDLE ImageHandle ++ ) ++{ ++ // ++ // Free the list of available algorithm. ++ // ++ FreeAvailableAlgorithms (); ++ return EFI_SUCCESS; + } + + +diff --git a/SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.inf b/SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.inf +index 60efb5562e..1985dfbb46 100644 +--- a/SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.inf ++++ b/SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.inf +@@ -22,6 +22,7 @@ + MODULE_TYPE = DXE_DRIVER + VERSION_STRING = 1.0 + ENTRY_POINT = RngDriverEntry ++ UNLOAD_IMAGE = RngDriverUnLoad + MODULE_UNI_FILE = RngDxe.uni + + # +diff --git a/SecurityPkg/RandomNumberGenerator/RngDxe/RngDxeInternals.h b/SecurityPkg/RandomNumberGenerator/RngDxe/RngDxeInternals.h +index f17adb83fb..0ef5e6522f 100644 +--- a/SecurityPkg/RandomNumberGenerator/RngDxe/RngDxeInternals.h ++++ b/SecurityPkg/RandomNumberGenerator/RngDxe/RngDxeInternals.h +@@ -12,6 +12,33 @@ + + #include + ++// ++// Array containing the validated Rng algorithm. ++// The entry with the lowest index will be the default algorithm. ++// ++extern UINTN mAvailableAlgoArrayCount; ++extern EFI_RNG_ALGORITHM *mAvailableAlgoArray; ++ ++/** Allocate and initialize mAvailableAlgoArray with the available ++ Rng algorithms. Also update mAvailableAlgoArrayCount. ++ ++ @retval EFI_SUCCESS The function completed successfully. ++ @retval EFI_OUT_OF_RESOURCES Could not allocate memory. ++**/ ++EFI_STATUS ++EFIAPI ++GetAvailableAlgorithms ( ++ VOID ++ ); ++ ++/** Free mAvailableAlgoArray. ++**/ ++VOID ++EFIAPI ++FreeAvailableAlgorithms ( ++ VOID ++ ); ++ + /** + Returns information about the random number generation implementation. + +-- +2.39.3 + diff --git a/edk2-SecurityPkg-RngDxe-Conditionally-install-EFI_RNG_PRO.patch b/edk2-SecurityPkg-RngDxe-Conditionally-install-EFI_RNG_PRO.patch new file mode 100644 index 0000000..918fe39 --- /dev/null +++ b/edk2-SecurityPkg-RngDxe-Conditionally-install-EFI_RNG_PRO.patch @@ -0,0 +1,79 @@ +From e7444d0b84a8fd41aa63ecb083e65fd56b32fd38 Mon Sep 17 00:00:00 2001 +From: Jon Maloy +Date: Sun, 23 Jun 2024 14:21:01 -0400 +Subject: [PATCH 14/31] SecurityPkg/RngDxe: Conditionally install + EFI_RNG_PROTOCOL + +RH-Author: Jon Maloy +RH-MergeRequest: 77: UINT32 overflow in S3 ResumeCount and Pixiefail fixes +RH-Jira: RHEL-21854 RHEL-21856 RHEL-40099 +RH-Acked-by: Gerd Hoffmann +RH-Commit: [14/31] bc64d4cad6c30353723d674ef9f10eb10aeb1cac + +JIRA: https://issues.redhat.com/browse/RHEL-21856 +Upstream: Merged +CVE: CVE-2023-45237 + +commit 75fb0cfc82376906243386514be0e4067d702117 +Author: Pierre Gondois +Date: Thu Nov 24 17:17:55 2022 +0100 + + SecurityPkg/RngDxe: Conditionally install EFI_RNG_PROTOCOL + + On Arm platforms, the number of available RNG algorithms is + dynamically detected and can be 0 in the absence of FEAT_RNG + and firmware TRNG. + In this case, the EFI_RNG_PROTOCOL should not be installed to + prevent from installing an empty protocol. + + Signed-off-by: Pierre Gondois + [ardb: return EFI_REQUEST_UNLOAD_IMAGE instead of an error] + Reviewed-by: Ard Biesheuvel + +Signed-off-by: Jon Maloy +--- + .../RandomNumberGenerator/RngDxe/RngDxe.c | 19 ++++++++++++++----- + 1 file changed, 14 insertions(+), 5 deletions(-) + +diff --git a/SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.c b/SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.c +index cc2ddfcc06..55e8dd49d0 100644 +--- a/SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.c ++++ b/SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.c +@@ -63,6 +63,18 @@ RngDriverEntry ( + EFI_STATUS Status; + EFI_HANDLE Handle; + ++ // ++ // Get the list of available algorithm. ++ // ++ Status = GetAvailableAlgorithms (); ++ if (EFI_ERROR (Status)) { ++ return Status; ++ } ++ ++ if (mAvailableAlgoArrayCount == 0) { ++ return EFI_REQUEST_UNLOAD_IMAGE; ++ } ++ + // + // Install UEFI RNG (Random Number Generator) Protocol + // +@@ -74,13 +86,10 @@ RngDriverEntry ( + NULL + ); + if (EFI_ERROR (Status)) { +- return Status; ++ FreeAvailableAlgorithms (); + } + +- // +- // Get the list of available algorithm. +- // +- return GetAvailableAlgorithms (); ++ return Status; + } + + /** +-- +2.39.3 + diff --git a/edk2-SecurityPkg-RngDxe-Correctly-update-mAvailableAlgoAr.patch b/edk2-SecurityPkg-RngDxe-Correctly-update-mAvailableAlgoAr.patch new file mode 100644 index 0000000..8384f2f --- /dev/null +++ b/edk2-SecurityPkg-RngDxe-Correctly-update-mAvailableAlgoAr.patch @@ -0,0 +1,105 @@ +From b9a937603080bfada6c224a6e9da046a8a33f868 Mon Sep 17 00:00:00 2001 +From: Jon Maloy +Date: Sun, 23 Jun 2024 14:18:18 -0400 +Subject: [PATCH 13/31] SecurityPkg/RngDxe: Correctly update + mAvailableAlgoArrayCount + +RH-Author: Jon Maloy +RH-MergeRequest: 77: UINT32 overflow in S3 ResumeCount and Pixiefail fixes +RH-Jira: RHEL-21854 RHEL-21856 RHEL-40099 +RH-Acked-by: Gerd Hoffmann +RH-Commit: [13/31] 3e06e270cad90038537305a4cb7828fcc45251fb + +JIRA: https://issues.redhat.com/browse/RHEL-21856 +Upstream: Merged +CVE: CVE-2023-45237 + +commit bfb574db110899471fe09db819587b3151c7b7b5 +Author: Pierre Gondois +Date: Thu Nov 24 17:17:54 2022 +0100 + + SecurityPkg/RngDxe: Correctly update mAvailableAlgoArrayCount + + mAvailableAlgoArrayCount holds the count of available RNG algorithms. + In a following patch, its value will be used to prevent the + EFI_RNG_PROTOCOL to be installed if no RNG algorithm is available. + + Correctly set/reset the value for all implementations. + + Signed-off-by: Pierre Gondois + Reviewed-by: Ard Biesheuvel + +Signed-off-by: Jon Maloy +--- + .../RandomNumberGenerator/RngDxe/ArmRngDxe.c | 1 + + .../RandomNumberGenerator/RngDxe/Rand/RngDxe.c | 16 ++++++++++++++-- + 2 files changed, 15 insertions(+), 2 deletions(-) + +diff --git a/SecurityPkg/RandomNumberGenerator/RngDxe/ArmRngDxe.c b/SecurityPkg/RandomNumberGenerator/RngDxe/ArmRngDxe.c +index 5e7d9ef681..0e44d0c931 100644 +--- a/SecurityPkg/RandomNumberGenerator/RngDxe/ArmRngDxe.c ++++ b/SecurityPkg/RandomNumberGenerator/RngDxe/ArmRngDxe.c +@@ -40,6 +40,7 @@ FreeAvailableAlgorithms ( + VOID + ) + { ++ mAvailableAlgoArrayCount = 0; + FreePool (mAvailableAlgoArray); + return; + } +diff --git a/SecurityPkg/RandomNumberGenerator/RngDxe/Rand/RngDxe.c b/SecurityPkg/RandomNumberGenerator/RngDxe/Rand/RngDxe.c +index 7caa64a4ff..149de875ce 100644 +--- a/SecurityPkg/RandomNumberGenerator/RngDxe/Rand/RngDxe.c ++++ b/SecurityPkg/RandomNumberGenerator/RngDxe/Rand/RngDxe.c +@@ -26,6 +26,11 @@ + + #include "RngDxeInternals.h" + ++// ++// Count of Rng algorithms. ++// ++#define RNG_ALGORITHM_COUNT 2 ++ + /** Allocate and initialize mAvailableAlgoArray with the available + Rng algorithms. Also update mAvailableAlgoArrayCount. + +@@ -38,6 +43,13 @@ GetAvailableAlgorithms ( + VOID + ) + { ++ ++ UINT64 RngTest; ++ ++ if (GetRandomNumber64 (&RngTest)) { ++ mAvailableAlgoArrayCount = RNG_ALGORITHM_COUNT; ++ } ++ + return EFI_SUCCESS; + } + +@@ -49,6 +61,7 @@ FreeAvailableAlgorithms ( + VOID + ) + { ++ mAvailableAlgoArrayCount = 0; + return; + } + +@@ -159,13 +172,12 @@ RngGetInfo ( + ) + { + UINTN RequiredSize; +- EFI_RNG_ALGORITHM *CpuRngSupportedAlgorithm; + + if ((This == NULL) || (RNGAlgorithmListSize == NULL)) { + return EFI_INVALID_PARAMETER; + } + +- RequiredSize = 2 * sizeof (EFI_RNG_ALGORITHM); ++ RequiredSize = RNG_ALGORITHM_COUNT * sizeof (EFI_RNG_ALGORITHM); + + if (*RNGAlgorithmListSize < RequiredSize) { + *RNGAlgorithmListSize = RequiredSize; +-- +2.39.3 + diff --git a/edk2-SecurityPkg-RngDxe-Documentation-include-parameter-c.patch b/edk2-SecurityPkg-RngDxe-Documentation-include-parameter-c.patch new file mode 100644 index 0000000..7f87bbc --- /dev/null +++ b/edk2-SecurityPkg-RngDxe-Documentation-include-parameter-c.patch @@ -0,0 +1,98 @@ +From 0f8890578f46bc791d007b19dbbfa0dd2805032d Mon Sep 17 00:00:00 2001 +From: Jon Maloy +Date: Tue, 25 Jun 2024 22:23:42 -0400 +Subject: [PATCH 07/31] SecurityPkg/RngDxe: Documentation/include/parameter + cleanup + +RH-Author: Jon Maloy +RH-MergeRequest: 77: UINT32 overflow in S3 ResumeCount and Pixiefail fixes +RH-Jira: RHEL-21854 RHEL-21856 RHEL-40099 +RH-Acked-by: Gerd Hoffmann +RH-Commit: [7/31] 19a0a13d18fc7f92c7b05e8da08f4d83df77ea6c + +JIRA: https://issues.redhat.com/browse/RHEL-21856 +CVE: CVE-2022-45237 +Upstream: Merged + +commit 199031b2b0233652ad5d5fdf73f0f44c0f264d55 +Author: Pierre Gondois +Date: Fri Oct 28 17:32:53 2022 +0200 + + SecurityPkg/RngDxe: Documentation/include/parameter cleanup + + This patch: + -Update RngGetBytes() documentation to align the function + definition and declaration. + -Improve input parameter checking. Even though 'This' + it is not used, the parameter should always point to the + current EFI_RNG_PROTOCOL. + -Removes TimerLib inclusion as unused. + + Signed-off-by: Pierre Gondois + Acked-by: Jiewen Yao + +Signed-off-by: Jon Maloy +--- + SecurityPkg/RandomNumberGenerator/RngDxe/AArch64/RngDxe.c | 3 +-- + SecurityPkg/RandomNumberGenerator/RngDxe/Rand/RngDxe.c | 2 +- + SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.c | 3 +-- + 3 files changed, 3 insertions(+), 5 deletions(-) + +diff --git a/SecurityPkg/RandomNumberGenerator/RngDxe/AArch64/RngDxe.c b/SecurityPkg/RandomNumberGenerator/RngDxe/AArch64/RngDxe.c +index f6a0bf7b2b..8c6ad4ed43 100644 +--- a/SecurityPkg/RandomNumberGenerator/RngDxe/AArch64/RngDxe.c ++++ b/SecurityPkg/RandomNumberGenerator/RngDxe/AArch64/RngDxe.c +@@ -23,7 +23,6 @@ + #include + #include + #include +-#include + #include + + #include "RngDxeInternals.h" +@@ -61,7 +60,7 @@ RngGetRNG ( + { + EFI_STATUS Status; + +- if ((RNGValueLength == 0) || (RNGValue == NULL)) { ++ if ((This == NULL) || (RNGValueLength == 0) || (RNGValue == NULL)) { + return EFI_INVALID_PARAMETER; + } + +diff --git a/SecurityPkg/RandomNumberGenerator/RngDxe/Rand/RngDxe.c b/SecurityPkg/RandomNumberGenerator/RngDxe/Rand/RngDxe.c +index 5a649ecf24..70b6ac20c9 100644 +--- a/SecurityPkg/RandomNumberGenerator/RngDxe/Rand/RngDxe.c ++++ b/SecurityPkg/RandomNumberGenerator/RngDxe/Rand/RngDxe.c +@@ -59,7 +59,7 @@ RngGetRNG ( + { + EFI_STATUS Status; + +- if ((RNGValueLength == 0) || (RNGValue == NULL)) { ++ if ((This == NULL) || (RNGValueLength == 0) || (RNGValue == NULL)) { + return EFI_INVALID_PARAMETER; + } + +diff --git a/SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.c b/SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.c +index 7b8ecfc70d..4599728889 100644 +--- a/SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.c ++++ b/SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.c +@@ -23,7 +23,6 @@ SPDX-License-Identifier: BSD-2-Clause-Patent + #include + #include + #include +-#include + #include + + #include "RngDxeInternals.h" +@@ -73,7 +72,7 @@ RngDriverEntry ( + + + /** +- Calls RDRAND to fill a buffer of arbitrary size with random bytes. ++ Runs CPU RNG instruction to fill a buffer of arbitrary size with random bytes. + + @param[in] Length Size of the buffer, in bytes, to fill with. + @param[out] RandBuffer Pointer to the buffer to store the random result. +-- +2.39.3 + diff --git a/edk2-SecurityPkg-RngDxe-Remove-ArchGetSupportedRngAlgorit.patch b/edk2-SecurityPkg-RngDxe-Remove-ArchGetSupportedRngAlgorit.patch new file mode 100644 index 0000000..4c5f254 --- /dev/null +++ b/edk2-SecurityPkg-RngDxe-Remove-ArchGetSupportedRngAlgorit.patch @@ -0,0 +1,258 @@ +From df912b4c93cd848991d9a9439d3aba441bae1d67 Mon Sep 17 00:00:00 2001 +From: Jon Maloy +Date: Tue, 25 Jun 2024 22:21:09 -0400 +Subject: [PATCH 06/31] SecurityPkg/RngDxe: Remove + ArchGetSupportedRngAlgorithms() + +RH-Author: Jon Maloy +RH-MergeRequest: 77: UINT32 overflow in S3 ResumeCount and Pixiefail fixes +RH-Jira: RHEL-21854 RHEL-21856 RHEL-40099 +RH-Acked-by: Gerd Hoffmann +RH-Commit: [6/31] 4066cb1503b5c5a29b6d45a4b671d0829f2671ae + +JIRA: https://issues.redhat.com/browse/RHEL-21856 +CVE: CVE-2022-45237 +Upstream: Merged + +commit 922bf317f1731554b3e77a0a48033a38fdc75a77 +Author: Pierre Gondois +Date: Fri Oct 28 17:32:52 2022 +0200 + + SecurityPkg/RngDxe: Remove ArchGetSupportedRngAlgorithms() + + RngGetInfo() is one of the 2 functions of the EFI_RNG_PROTOCOL. + RngGetInfo() is currently a mere wrapper around + ArchGetSupportedRngAlgorithms() which is implemented differently + depending on the architecture used. + + RngGetInfo() does nothing more than calling + ArchGetSupportedRngAlgorithms(). So remove it, and let RngGetInfo() + be implemented differently according to the architecture. + + This follows the implementation of the other function of the + EFI_RNG_PROTOCOL, RngGetRNG(). + + Signed-off-by: Pierre Gondois + Acked-by: Jiewen Yao + +Signed-off-by: Jon Maloy +--- + .../RngDxe/AArch64/RngDxe.c | 19 +++++-- + .../RngDxe/Rand/RngDxe.c | 24 ++++++--- + .../RandomNumberGenerator/RngDxe/RngDxe.c | 49 ------------------- + .../RngDxe/RngDxeInternals.h | 25 ---------- + 4 files changed, 33 insertions(+), 84 deletions(-) + +diff --git a/SecurityPkg/RandomNumberGenerator/RngDxe/AArch64/RngDxe.c b/SecurityPkg/RandomNumberGenerator/RngDxe/AArch64/RngDxe.c +index 1cdc842966..f6a0bf7b2b 100644 +--- a/SecurityPkg/RandomNumberGenerator/RngDxe/AArch64/RngDxe.c ++++ b/SecurityPkg/RandomNumberGenerator/RngDxe/AArch64/RngDxe.c +@@ -14,6 +14,7 @@ + Copyright (c) 2021, NUVIA Inc. All rights reserved.
+ Copyright (c) 2013 - 2018, Intel Corporation. All rights reserved.
+ (C) Copyright 2015 Hewlett Packard Enterprise Development LP
++ Copyright (c) 2021 - 2022, Arm Limited. All rights reserved.
+ + SPDX-License-Identifier: BSD-2-Clause-Patent + +@@ -85,6 +86,7 @@ RngGetRNG ( + /** + Returns information about the random number generation implementation. + ++ @param[in] This A pointer to the EFI_RNG_PROTOCOL instance. + @param[in,out] RNGAlgorithmListSize On input, the size in bytes of RNGAlgorithmList. + On output with a return code of EFI_SUCCESS, the size + in bytes of the data returned in RNGAlgorithmList. On output +@@ -97,14 +99,19 @@ RngGetRNG ( + is the default algorithm for the driver. + + @retval EFI_SUCCESS The RNG algorithm list was returned successfully. ++ @retval EFI_UNSUPPORTED The services is not supported by this driver. ++ @retval EFI_DEVICE_ERROR The list of algorithms could not be retrieved due to a ++ hardware or firmware error. ++ @retval EFI_INVALID_PARAMETER One or more of the parameters are incorrect. + @retval EFI_BUFFER_TOO_SMALL The buffer RNGAlgorithmList is too small to hold the result. + + **/ +-UINTN ++EFI_STATUS + EFIAPI +-ArchGetSupportedRngAlgorithms ( +- IN OUT UINTN *RNGAlgorithmListSize, +- OUT EFI_RNG_ALGORITHM *RNGAlgorithmList ++RngGetInfo ( ++ IN EFI_RNG_PROTOCOL *This, ++ IN OUT UINTN *RNGAlgorithmListSize, ++ OUT EFI_RNG_ALGORITHM *RNGAlgorithmList + ) + { + UINTN RequiredSize; +@@ -112,6 +119,10 @@ ArchGetSupportedRngAlgorithms ( + + RequiredSize = sizeof (EFI_RNG_ALGORITHM); + ++ if ((This == NULL) || (RNGAlgorithmListSize == NULL)) { ++ return EFI_INVALID_PARAMETER; ++ } ++ + if (*RNGAlgorithmListSize < RequiredSize) { + *RNGAlgorithmListSize = RequiredSize; + return EFI_BUFFER_TOO_SMALL; +diff --git a/SecurityPkg/RandomNumberGenerator/RngDxe/Rand/RngDxe.c b/SecurityPkg/RandomNumberGenerator/RngDxe/Rand/RngDxe.c +index 19755b3bfd..5a649ecf24 100644 +--- a/SecurityPkg/RandomNumberGenerator/RngDxe/Rand/RngDxe.c ++++ b/SecurityPkg/RandomNumberGenerator/RngDxe/Rand/RngDxe.c +@@ -104,6 +104,7 @@ RngGetRNG ( + /** + Returns information about the random number generation implementation. + ++ @param[in] This A pointer to the EFI_RNG_PROTOCOL instance. + @param[in,out] RNGAlgorithmListSize On input, the size in bytes of RNGAlgorithmList. + On output with a return code of EFI_SUCCESS, the size + in bytes of the data returned in RNGAlgorithmList. On output +@@ -116,19 +117,28 @@ RngGetRNG ( + is the default algorithm for the driver. + + @retval EFI_SUCCESS The RNG algorithm list was returned successfully. ++ @retval EFI_UNSUPPORTED No supported algorithms found. ++ @retval EFI_DEVICE_ERROR The list of algorithms could not be retrieved due to a ++ hardware or firmware error. ++ @retval EFI_INVALID_PARAMETER One or more of the parameters are incorrect. + @retval EFI_BUFFER_TOO_SMALL The buffer RNGAlgorithmList is too small to hold the result. + + **/ +-UINTN ++EFI_STATUS + EFIAPI +-ArchGetSupportedRngAlgorithms ( +- IN OUT UINTN *RNGAlgorithmListSize, +- OUT EFI_RNG_ALGORITHM *RNGAlgorithmList ++RngGetInfo ( ++ IN EFI_RNG_PROTOCOL *This, ++ IN OUT UINTN *RNGAlgorithmListSize, ++ OUT EFI_RNG_ALGORITHM *RNGAlgorithmList + ) + { + UINTN RequiredSize; + EFI_RNG_ALGORITHM *CpuRngSupportedAlgorithm; + ++ if ((This == NULL) || (RNGAlgorithmListSize == NULL)) { ++ return EFI_INVALID_PARAMETER; ++ } ++ + RequiredSize = 2 * sizeof (EFI_RNG_ALGORITHM); + + if (*RNGAlgorithmListSize < RequiredSize) { +@@ -136,9 +146,11 @@ ArchGetSupportedRngAlgorithms ( + return EFI_BUFFER_TOO_SMALL; + } + +- CpuRngSupportedAlgorithm = PcdGetPtr (PcdCpuRngSupportedAlgorithm); ++ if (RNGAlgorithmList == NULL) { ++ return EFI_INVALID_PARAMETER; ++ } + +- CopyMem(&RNGAlgorithmList[0], CpuRngSupportedAlgorithm, sizeof (EFI_RNG_ALGORITHM)); ++ CopyMem (&RNGAlgorithmList[0], &gEfiRngAlgorithmSp80090Ctr256Guid, sizeof (EFI_RNG_ALGORITHM)); + + // x86 platforms also support EFI_RNG_ALGORITHM_RAW via RDSEED + CopyMem(&RNGAlgorithmList[1], &gEfiRngAlgorithmRaw, sizeof (EFI_RNG_ALGORITHM)); +diff --git a/SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.c b/SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.c +index b959c70536..7b8ecfc70d 100644 +--- a/SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.c ++++ b/SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.c +@@ -28,55 +28,6 @@ SPDX-License-Identifier: BSD-2-Clause-Patent + + #include "RngDxeInternals.h" + +-/** +- Returns information about the random number generation implementation. +- +- @param[in] This A pointer to the EFI_RNG_PROTOCOL instance. +- @param[in,out] RNGAlgorithmListSize On input, the size in bytes of RNGAlgorithmList. +- On output with a return code of EFI_SUCCESS, the size +- in bytes of the data returned in RNGAlgorithmList. On output +- with a return code of EFI_BUFFER_TOO_SMALL, +- the size of RNGAlgorithmList required to obtain the list. +- @param[out] RNGAlgorithmList A caller-allocated memory buffer filled by the driver +- with one EFI_RNG_ALGORITHM element for each supported +- RNG algorithm. The list must not change across multiple +- calls to the same driver. The first algorithm in the list +- is the default algorithm for the driver. +- +- @retval EFI_SUCCESS The RNG algorithm list was returned successfully. +- @retval EFI_UNSUPPORTED The services is not supported by this driver. +- @retval EFI_DEVICE_ERROR The list of algorithms could not be retrieved due to a +- hardware or firmware error. +- @retval EFI_INVALID_PARAMETER One or more of the parameters are incorrect. +- @retval EFI_BUFFER_TOO_SMALL The buffer RNGAlgorithmList is too small to hold the result. +- +-**/ +-EFI_STATUS +-EFIAPI +-RngGetInfo ( +- IN EFI_RNG_PROTOCOL *This, +- IN OUT UINTN *RNGAlgorithmListSize, +- OUT EFI_RNG_ALGORITHM *RNGAlgorithmList +- ) +-{ +- EFI_STATUS Status; +- +- if ((This == NULL) || (RNGAlgorithmListSize == NULL)) { +- return EFI_INVALID_PARAMETER; +- } +- +- // +- // Return algorithm list supported by driver. +- // +- if (RNGAlgorithmList != NULL) { +- Status = ArchGetSupportedRngAlgorithms (RNGAlgorithmListSize, RNGAlgorithmList); +- } else { +- Status = EFI_INVALID_PARAMETER; +- } +- +- return Status; +-} +- + // + // The Random Number Generator (RNG) protocol + // +diff --git a/SecurityPkg/RandomNumberGenerator/RngDxe/RngDxeInternals.h b/SecurityPkg/RandomNumberGenerator/RngDxe/RngDxeInternals.h +index fcb8b69153..f17adb83fb 100644 +--- a/SecurityPkg/RandomNumberGenerator/RngDxe/RngDxeInternals.h ++++ b/SecurityPkg/RandomNumberGenerator/RngDxe/RngDxeInternals.h +@@ -74,31 +74,6 @@ RngGetRNG ( + OUT UINT8 *RNGValue + ); + +-/** +- Returns information about the random number generation implementation. +- +- @param[in,out] RNGAlgorithmListSize On input, the size in bytes of RNGAlgorithmList. +- On output with a return code of EFI_SUCCESS, the size +- in bytes of the data returned in RNGAlgorithmList. On output +- with a return code of EFI_BUFFER_TOO_SMALL, +- the size of RNGAlgorithmList required to obtain the list. +- @param[out] RNGAlgorithmList A caller-allocated memory buffer filled by the driver +- with one EFI_RNG_ALGORITHM element for each supported +- RNG algorithm. The list must not change across multiple +- calls to the same driver. The first algorithm in the list +- is the default algorithm for the driver. +- +- @retval EFI_SUCCESS The RNG algorithm list was returned successfully. +- @retval EFI_BUFFER_TOO_SMALL The buffer RNGAlgorithmList is too small to hold the result. +- +-**/ +-UINTN +-EFIAPI +-ArchGetSupportedRngAlgorithms ( +- IN OUT UINTN *RNGAlgorithmListSize, +- OUT EFI_RNG_ALGORITHM *RNGAlgorithmList +- ); +- + /** + Runs CPU RNG instruction to fill a buffer of arbitrary size with random bytes. + +-- +2.39.3 + diff --git a/edk2-SecurityPkg-RngDxe-Rename-AArch64-RngDxe.c.patch b/edk2-SecurityPkg-RngDxe-Rename-AArch64-RngDxe.c.patch new file mode 100644 index 0000000..0033755 --- /dev/null +++ b/edk2-SecurityPkg-RngDxe-Rename-AArch64-RngDxe.c.patch @@ -0,0 +1,55 @@ +From 05ffe3749d73942cf4df7ed8f53ae239e62d5376 Mon Sep 17 00:00:00 2001 +From: Jon Maloy +Date: Tue, 25 Jun 2024 22:30:19 -0400 +Subject: [PATCH 11/31] SecurityPkg/RngDxe: Rename AArch64/RngDxe.c + +RH-Author: Jon Maloy +RH-MergeRequest: 77: UINT32 overflow in S3 ResumeCount and Pixiefail fixes +RH-Jira: RHEL-21854 RHEL-21856 RHEL-40099 +RH-Acked-by: Gerd Hoffmann +RH-Commit: [11/31] 39c8a7a1e45c7c26f5d16f79d81abac1fbae4f22 + +JIRA: https://issues.redhat.com/browse/RHEL-21856 +CVE: CVE-2022-45237 +Upstream: Merged + +commit ff29cdb968a1a4d7bd7ab4eba2597a77c0748dc2 +Author: Pierre Gondois +Date: Fri Oct 28 17:32:57 2022 +0200 + + SecurityPkg/RngDxe: Rename AArch64/RngDxe.c + + To re-use the AArch64/RngDxe.c for an Arm implementation, + rename AArch64/RngDxe.c to ArmRngDxe.c. + + Acked-by: Leif Lindholm + Signed-off-by: Pierre Gondois + Acked-by: Jiewen Yao + +Signed-off-by: Jon Maloy +--- + .../RngDxe/{AArch64/RngDxe.c => ArmRngDxe.c} | 0 + SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.inf | 2 +- + 2 files changed, 1 insertion(+), 1 deletion(-) + rename SecurityPkg/RandomNumberGenerator/RngDxe/{AArch64/RngDxe.c => ArmRngDxe.c} (100%) + +diff --git a/SecurityPkg/RandomNumberGenerator/RngDxe/AArch64/RngDxe.c b/SecurityPkg/RandomNumberGenerator/RngDxe/ArmRngDxe.c +similarity index 100% +rename from SecurityPkg/RandomNumberGenerator/RngDxe/AArch64/RngDxe.c +rename to SecurityPkg/RandomNumberGenerator/RngDxe/ArmRngDxe.c +diff --git a/SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.inf b/SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.inf +index e0e767cbf3..1d0bdef57d 100644 +--- a/SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.inf ++++ b/SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.inf +@@ -42,7 +42,7 @@ + Rand/AesCore.h + + [Sources.AARCH64] +- AArch64/RngDxe.c ++ ArmRngDxe.c + ArmTrng.c + + [Packages] +-- +2.39.3 + diff --git a/edk2-SecurityPkg-RngDxe-Rename-RdRandGenerateEntropy-to-g.patch b/edk2-SecurityPkg-RngDxe-Rename-RdRandGenerateEntropy-to-g.patch new file mode 100644 index 0000000..dea7b6e --- /dev/null +++ b/edk2-SecurityPkg-RngDxe-Rename-RdRandGenerateEntropy-to-g.patch @@ -0,0 +1,176 @@ +From 2a5e4e144cbea46784fde638765a9c9068ed2869 Mon Sep 17 00:00:00 2001 +From: Jon Maloy +Date: Tue, 25 Jun 2024 22:19:10 -0400 +Subject: [PATCH 05/31] SecurityPkg/RngDxe: Rename RdRandGenerateEntropy to + generic name + +RH-Author: Jon Maloy +RH-MergeRequest: 77: UINT32 overflow in S3 ResumeCount and Pixiefail fixes +RH-Jira: RHEL-21854 RHEL-21856 RHEL-40099 +RH-Acked-by: Gerd Hoffmann +RH-Commit: [5/31] 12b8646964435f1a70def57afb9f4565b11c5dc8 + +JIRA: https://issues.redhat.com/browse/RHEL-21856 +CVE: CVE-2022-45237 +Upstream: Merged + +commit 8a89747844a5061791e55a25daedcf895180a794 +Author: Sami Mujawar +Date: Fri Oct 28 17:32:50 2022 +0200 + + SecurityPkg/RngDxe: Rename RdRandGenerateEntropy to generic name + + Bugzilla: 3668 (https://bugzilla.tianocore.org/show_bug.cgi?id=3668) + + Rename RdRandGenerateEntropy() to GenerateEntropy() to provide a + common interface to generate entropy on other architectures. + GenerateEntropy() is intended to generate high quality entropy. + + Also move the definition to RngDxeInternals.h + + Signed-off-by: Pierre Gondois + Acked-by: Jiewen Yao + +Signed-off-by: Jon Maloy +--- + .../RngDxe/Rand/RdRand.c | 20 ++++++++++++----- + .../RngDxe/Rand/RngDxe.c | 7 ++++-- + .../RandomNumberGenerator/RngDxe/RngDxe.inf | 2 +- + .../RngDxe/RngDxeInternals.h | 22 ++++++++++++++++++- + 4 files changed, 41 insertions(+), 10 deletions(-) + +diff --git a/SecurityPkg/RandomNumberGenerator/RngDxe/Rand/RdRand.c b/SecurityPkg/RandomNumberGenerator/RngDxe/Rand/RdRand.c +index 83025a47d4..853bf43148 100644 +--- a/SecurityPkg/RandomNumberGenerator/RngDxe/Rand/RdRand.c ++++ b/SecurityPkg/RandomNumberGenerator/RngDxe/Rand/RdRand.c +@@ -1,15 +1,23 @@ + /** @file +- Support routines for RDRAND instruction access. +- ++ Support routines for RDRAND instruction access, which will leverage ++ Intel Secure Key technology to provide high-quality random numbers for use ++ in applications, or entropy for seeding other random number generators. ++ Refer to http://software.intel.com/en-us/articles/intel-digital-random-number ++ -generator-drng-software-implementation-guide/ for more information about Intel ++ Secure Key technology. ++ ++Copyright (c) 2021 - 2022, Arm Limited. All rights reserved.
+ Copyright (c) 2013 - 2018, Intel Corporation. All rights reserved.
+ (C) Copyright 2015 Hewlett Packard Enterprise Development LP
+ SPDX-License-Identifier: BSD-2-Clause-Patent + + **/ ++#include ++#include + #include ++#include + + #include "AesCore.h" +-#include "RdRand.h" + #include "RngDxeInternals.h" + + /** +@@ -87,9 +95,9 @@ RdRandGetSeed128 ( + **/ + EFI_STATUS + EFIAPI +-RdRandGenerateEntropy ( +- IN UINTN Length, +- OUT UINT8 *Entropy ++GenerateEntropy ( ++ IN UINTN Length, ++ OUT UINT8 *Entropy + ) + { + EFI_STATUS Status; +diff --git a/SecurityPkg/RandomNumberGenerator/RngDxe/Rand/RngDxe.c b/SecurityPkg/RandomNumberGenerator/RngDxe/Rand/RngDxe.c +index 834123b945..19755b3bfd 100644 +--- a/SecurityPkg/RandomNumberGenerator/RngDxe/Rand/RngDxe.c ++++ b/SecurityPkg/RandomNumberGenerator/RngDxe/Rand/RngDxe.c +@@ -14,13 +14,16 @@ + - EFI_RNG_ALGORITHM_X9_31_3DES_GUID - Unsupported + - EFI_RNG_ALGORITHM_X9_31_AES_GUID - Unsupported + ++ Copyright (c) 2021 - 2022, Arm Limited. All rights reserved.
+ Copyright (c) 2013 - 2018, Intel Corporation. All rights reserved.
+ (C) Copyright 2015 Hewlett Packard Enterprise Development LP
+ SPDX-License-Identifier: BSD-2-Clause-Patent + + **/ + +-#include "RdRand.h" ++#include ++#include ++ + #include "RngDxeInternals.h" + + /** +@@ -88,7 +91,7 @@ RngGetRNG ( + return EFI_INVALID_PARAMETER; + } + +- Status = RdRandGenerateEntropy (RNGValueLength, RNGValue); ++ Status = GenerateEntropy (RNGValueLength, RNGValue); + return Status; + } + +diff --git a/SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.inf b/SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.inf +index f330097199..60efb5562e 100644 +--- a/SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.inf ++++ b/SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.inf +@@ -10,6 +10,7 @@ + # + # Copyright (c) 2013 - 2018, Intel Corporation. All rights reserved.
+ # (C) Copyright 2015 Hewlett Packard Enterprise Development LP
++# Copyright (c) 2021 - 2022, Arm Limited. All rights reserved.
+ # SPDX-License-Identifier: BSD-2-Clause-Patent + # + ## +@@ -36,7 +37,6 @@ + [Sources.IA32, Sources.X64] + Rand/RngDxe.c + Rand/RdRand.c +- Rand/RdRand.h + Rand/AesCore.c + Rand/AesCore.h + +diff --git a/SecurityPkg/RandomNumberGenerator/RngDxe/RngDxeInternals.h b/SecurityPkg/RandomNumberGenerator/RngDxe/RngDxeInternals.h +index 25cccbe92c..fcb8b69153 100644 +--- a/SecurityPkg/RandomNumberGenerator/RngDxe/RngDxeInternals.h ++++ b/SecurityPkg/RandomNumberGenerator/RngDxe/RngDxeInternals.h +@@ -10,6 +10,8 @@ + #ifndef RNGDXE_INTERNALS_H_ + #define RNGDXE_INTERNALS_H_ + ++#include ++ + /** + Returns information about the random number generation implementation. + +@@ -114,4 +116,22 @@ RngGetBytes ( + OUT UINT8 *RandBuffer + ); + +-#endif // RNGDXE_INTERNALS_H_ ++/** ++ Generate high-quality entropy source using a TRNG or through RDRAND. ++ ++ @param[in] Length Size of the buffer, in bytes, to fill with. ++ @param[out] Entropy Pointer to the buffer to store the entropy data. ++ ++ @retval EFI_SUCCESS Entropy generation succeeded. ++ @retval EFI_NOT_READY Failed to request random data. ++ ++**/ ++EFI_STATUS ++EFIAPI ++GenerateEntropy ( ++ IN UINTN Length, ++ OUT UINT8 *Entropy ++ ); ++ ++#endif // RNGDXE_INTERNALS_H_ ++ +-- +2.39.3 + diff --git a/edk2-SecurityPkg-RngDxe-Simplify-Rng-algorithm-selection-.patch b/edk2-SecurityPkg-RngDxe-Simplify-Rng-algorithm-selection-.patch new file mode 100644 index 0000000..f00f461 --- /dev/null +++ b/edk2-SecurityPkg-RngDxe-Simplify-Rng-algorithm-selection-.patch @@ -0,0 +1,78 @@ +From 1a0bf45b088e05f6eb7edaa0d24aec894ea3491b Mon Sep 17 00:00:00 2001 +From: Jon Maloy +Date: Thu, 20 Jun 2024 16:11:16 -0400 +Subject: [PATCH 23/31] SecurityPkg/RngDxe: Simplify Rng algorithm selection + for Arm + +RH-Author: Jon Maloy +RH-MergeRequest: 77: UINT32 overflow in S3 ResumeCount and Pixiefail fixes +RH-Jira: RHEL-21854 RHEL-21856 RHEL-40099 +RH-Acked-by: Gerd Hoffmann +RH-Commit: [23/31] 21b2854eed63bf5d406cfec5ac03b9ae3901a679 + +JIRA: https://issues.redhat.com/browse/RHEL-21856 +Upstream: Merged +CVE: CVE-2023-45237 + +commit ff7ddc02b273f9159ef46fdb67d99062f8e598d9 +Author: Pierre Gondois +Date: Fri Aug 11 16:33:10 2023 +0200 + + SecurityPkg/RngDxe: Simplify Rng algorithm selection for Arm + + The first element of mAvailableAlgoArray is defined as the default + Rng algorithm to use. Don't go through the array at each RngGetRNG() + call and just return the first element of the array. + + Signed-off-by: Pierre Gondois + Reviewed-by: Sami Mujawar + Acked-by: Ard Biesheuvel + Acked-by: Jiewen Yao + Tested-by: Kun Qin + +Signed-off-by: Jon Maloy +--- + .../RandomNumberGenerator/RngDxe/ArmRngDxe.c | 17 ++++------------- + 1 file changed, 4 insertions(+), 13 deletions(-) + +diff --git a/SecurityPkg/RandomNumberGenerator/RngDxe/ArmRngDxe.c b/SecurityPkg/RandomNumberGenerator/RngDxe/ArmRngDxe.c +index 2fc36fc186..7249904413 100644 +--- a/SecurityPkg/RandomNumberGenerator/RngDxe/ArmRngDxe.c ++++ b/SecurityPkg/RandomNumberGenerator/RngDxe/ArmRngDxe.c +@@ -77,7 +77,6 @@ RngGetRNG ( + ) + { + EFI_STATUS Status; +- UINTN Index; + GUID RngGuid; + + if ((This == NULL) || (RNGValueLength == 0) || (RNGValue == NULL)) { +@@ -88,21 +87,13 @@ RngGetRNG ( + // + // Use the default RNG algorithm if RNGAlgorithm is NULL. + // +- for (Index = 0; Index < mAvailableAlgoArrayCount; Index++) { +- if (!IsZeroGuid (&mAvailableAlgoArray[Index])) { +- RNGAlgorithm = &mAvailableAlgoArray[Index]; +- goto FoundAlgo; +- } +- } +- +- if (Index == mAvailableAlgoArrayCount) { +- // No algorithm available. +- ASSERT (Index != mAvailableAlgoArrayCount); +- return EFI_DEVICE_ERROR; ++ if (mAvailableAlgoArrayCount != 0) { ++ RNGAlgorithm = &mAvailableAlgoArray[0]; ++ } else { ++ return EFI_UNSUPPORTED; + } + } + +-FoundAlgo: + Status = GetRngGuid (&RngGuid); + if (!EFI_ERROR (Status) && + CompareGuid (RNGAlgorithm, &RngGuid)) +-- +2.39.3 + diff --git a/edk2-SecurityPkg-RngDxe-Use-GetRngGuid-when-probing-RngLi.patch b/edk2-SecurityPkg-RngDxe-Use-GetRngGuid-when-probing-RngLi.patch new file mode 100644 index 0000000..79b5293 --- /dev/null +++ b/edk2-SecurityPkg-RngDxe-Use-GetRngGuid-when-probing-RngLi.patch @@ -0,0 +1,195 @@ +From 6b3795dcecf31b0d8aa7edabeffccf37b7259ff0 Mon Sep 17 00:00:00 2001 +From: Jon Maloy +Date: Thu, 20 Jun 2024 16:09:46 -0400 +Subject: [PATCH 22/31] SecurityPkg/RngDxe: Use GetRngGuid() when probing + RngLib + +RH-Author: Jon Maloy +RH-MergeRequest: 77: UINT32 overflow in S3 ResumeCount and Pixiefail fixes +RH-Jira: RHEL-21854 RHEL-21856 RHEL-40099 +RH-Acked-by: Gerd Hoffmann +RH-Commit: [22/31] 17b40bc3daeba2ba8407826e17f3096c4a5151c6 + +JIRA: https://issues.redhat.com/browse/RHEL-21856 +Upstream: Merged +CVE: CVE-2023-45237 + +commit 19438cff973bfb35a1ef12fab45fabb28b63fe64 +Author: Pierre Gondois +Date: Fri Aug 11 16:33:09 2023 +0200 + + SecurityPkg/RngDxe: Use GetRngGuid() when probing RngLib + + BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=4151 + + The EFI_RNG_PROTOCOL can rely on the RngLib. The RngLib has multiple + implementations, some of them are unsafe (e.g. BaseRngLibTimerLib). + To allow the RngDxe to detect when such implementation is used, + a GetRngGuid() function was added in a previous patch. + + The EFI_RNG_PROTOCOL can advertise multiple algorithms through + Guids. The PcdCpuRngSupportedAlgorithm is currently used to + advertise the RngLib in the Arm implementation. + + The issues of doing that are: + - the RngLib implementation might not use CPU instructions, + cf. the BaseRngLibTimerLib + - most platforms don't set PcdCpuRngSupportedAlgorithm + + A GetRngGuid() was added to the RngLib in a previous patch, + allowing to identify the algorithm implemented by the RngLib. + Make use of this function and place the unsage algorithm + at the last position in the mAvailableAlgoArray. + + Signed-off-by: Pierre Gondois + Reviewed-by: Sami Mujawar + Acked-by: Ard Biesheuvel + Acked-by: Jiewen Yao + Tested-by: Kun Qin + +Signed-off-by: Jon Maloy +--- + .../RngDxe/AArch64/AArch64Algo.c | 55 +++++++++++++------ + .../RandomNumberGenerator/RngDxe/ArmRngDxe.c | 8 ++- + .../RandomNumberGenerator/RngDxe/RngDxe.inf | 4 +- + 3 files changed, 45 insertions(+), 22 deletions(-) + +diff --git a/SecurityPkg/RandomNumberGenerator/RngDxe/AArch64/AArch64Algo.c b/SecurityPkg/RandomNumberGenerator/RngDxe/AArch64/AArch64Algo.c +index e8be217f8a..a270441ebb 100644 +--- a/SecurityPkg/RandomNumberGenerator/RngDxe/AArch64/AArch64Algo.c ++++ b/SecurityPkg/RandomNumberGenerator/RngDxe/AArch64/AArch64Algo.c +@@ -10,6 +10,8 @@ + #include + #include + #include ++#include ++#include + + #include "RngDxeInternals.h" + +@@ -28,9 +30,13 @@ GetAvailableAlgorithms ( + VOID + ) + { +- UINT64 DummyRand; +- UINT16 MajorRevision; +- UINT16 MinorRevision; ++ EFI_STATUS Status; ++ UINT16 MajorRevision; ++ UINT16 MinorRevision; ++ GUID RngGuid; ++ BOOLEAN UnSafeAlgo; ++ ++ UnSafeAlgo = FALSE; + + // Rng algorithms 2 times, one for the allocation, one to populate. + mAvailableAlgoArray = AllocateZeroPool (RNG_AVAILABLE_ALGO_MAX); +@@ -38,24 +44,29 @@ GetAvailableAlgorithms ( + return EFI_OUT_OF_RESOURCES; + } + +- // Check RngGetBytes() before advertising PcdCpuRngSupportedAlgorithm. +- if (!EFI_ERROR (RngGetBytes (sizeof (DummyRand), (UINT8 *)&DummyRand))) { +- CopyMem ( +- &mAvailableAlgoArray[mAvailableAlgoArrayCount], +- PcdGetPtr (PcdCpuRngSupportedAlgorithm), +- sizeof (EFI_RNG_ALGORITHM) +- ); +- mAvailableAlgoArrayCount++; +- +- DEBUG_CODE_BEGIN (); +- if (IsZeroGuid (PcdGetPtr (PcdCpuRngSupportedAlgorithm))) { ++ // Identify RngLib algorithm. ++ Status = GetRngGuid (&RngGuid); ++ if (!EFI_ERROR (Status)) { ++ if (IsZeroGuid (&RngGuid) || ++ CompareGuid (&RngGuid, &gEdkiiRngAlgorithmUnSafe)) ++ { ++ // Treat zero GUID as an unsafe algorithm + DEBUG (( + DEBUG_WARN, +- "PcdCpuRngSupportedAlgorithm should be a non-zero GUID\n" ++ "RngLib uses an Unsafe algorithm and " ++ "must not be used for production builds.\n" + )); ++ // Set the UnSafeAlgo flag to indicate an unsafe algorithm was found ++ // so that it can be added at the end of the algorithm list. ++ UnSafeAlgo = TRUE; ++ } else { ++ CopyMem ( ++ &mAvailableAlgoArray[mAvailableAlgoArrayCount], ++ &RngGuid, ++ sizeof (RngGuid) ++ ); ++ mAvailableAlgoArrayCount++; + } +- +- DEBUG_CODE_END (); + } + + // Raw algorithm (Trng) +@@ -68,5 +79,15 @@ GetAvailableAlgorithms ( + mAvailableAlgoArrayCount++; + } + ++ // Add unsafe algorithm at the end of the list. ++ if (UnSafeAlgo) { ++ CopyMem ( ++ &mAvailableAlgoArray[mAvailableAlgoArrayCount], ++ &gEdkiiRngAlgorithmUnSafe, ++ sizeof (EFI_RNG_ALGORITHM) ++ ); ++ mAvailableAlgoArrayCount++; ++ } ++ + return EFI_SUCCESS; + } +diff --git a/SecurityPkg/RandomNumberGenerator/RngDxe/ArmRngDxe.c b/SecurityPkg/RandomNumberGenerator/RngDxe/ArmRngDxe.c +index 0e44d0c931..2fc36fc186 100644 +--- a/SecurityPkg/RandomNumberGenerator/RngDxe/ArmRngDxe.c ++++ b/SecurityPkg/RandomNumberGenerator/RngDxe/ArmRngDxe.c +@@ -76,8 +76,9 @@ RngGetRNG ( + OUT UINT8 *RNGValue + ) + { +- EFI_STATUS Status; ++ EFI_STATUS Status; + UINTN Index; ++ GUID RngGuid; + + if ((This == NULL) || (RNGValueLength == 0) || (RNGValue == NULL)) { + return EFI_INVALID_PARAMETER; +@@ -102,7 +103,10 @@ RngGetRNG ( + } + + FoundAlgo: +- if (CompareGuid (RNGAlgorithm, PcdGetPtr (PcdCpuRngSupportedAlgorithm))) { ++ Status = GetRngGuid (&RngGuid); ++ if (!EFI_ERROR (Status) && ++ CompareGuid (RNGAlgorithm, &RngGuid)) ++ { + Status = RngGetBytes (RNGValueLength, RNGValue); + return Status; + } +diff --git a/SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.inf b/SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.inf +index d6c2d30195..8704a64441 100644 +--- a/SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.inf ++++ b/SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.inf +@@ -75,13 +75,11 @@ + gEfiRngAlgorithmX9313DesGuid ## SOMETIMES_PRODUCES ## GUID # Unique ID of the algorithm for RNG + gEfiRngAlgorithmX931AesGuid ## SOMETIMES_PRODUCES ## GUID # Unique ID of the algorithm for RNG + gEfiRngAlgorithmRaw ## SOMETIMES_PRODUCES ## GUID # Unique ID of the algorithm for RNG ++ gEdkiiRngAlgorithmUnSafe ## SOMETIMES_PRODUCES ## GUID # Unique ID of the algorithm for RNG + + [Protocols] + gEfiRngProtocolGuid ## PRODUCES + +-[Pcd.AARCH64] +- gEfiMdePkgTokenSpaceGuid.PcdCpuRngSupportedAlgorithm ## CONSUMES +- + [Depex] + TRUE + +-- +2.39.3 + diff --git a/edk2-SecurityPkg-RngDxe-add-rng-test.patch b/edk2-SecurityPkg-RngDxe-add-rng-test.patch new file mode 100644 index 0000000..0395b30 --- /dev/null +++ b/edk2-SecurityPkg-RngDxe-add-rng-test.patch @@ -0,0 +1,57 @@ +From 5022087de4a4bcd113ef0325e657bd78b798d5f6 Mon Sep 17 00:00:00 2001 +From: Jon Maloy +Date: Thu, 20 Jun 2024 10:33:43 -0400 +Subject: [PATCH 26/31] SecurityPkg/RngDxe: add rng test + +RH-Author: Jon Maloy +RH-MergeRequest: 77: UINT32 overflow in S3 ResumeCount and Pixiefail fixes +RH-Jira: RHEL-21854 RHEL-21856 RHEL-40099 +RH-Acked-by: Gerd Hoffmann +RH-Commit: [26/31] 97c8deefd351f2755cf458f10679dd1d859fb321 + +JIRA: https://issues.redhat.com/browse/RHEL-21856 +Upstream: Merged +CVE: CVE-2023-45237 + +commit a61bc0accb8a76edba4f073fdc7bafc908df045d +Author: Gerd Hoffmann +Date: Fri May 31 09:49:13 2024 +0200 + + SecurityPkg/RngDxe: add rng test + + Check whenever RngLib actually returns random numbers, only return + a non-zero number of Algorithms if that is the case. + + This has the effect that RndDxe loads and installs EFI_RNG_PROTOCOL + only in case it can actually deliver random numbers. + + Signed-off-by: Gerd Hoffmann + +Signed-off-by: Jon Maloy + +Check whenever RngLib actually returns random numbers, only return +a non-zero number of Algorithms if that is the case. + +This has the effect that RndDxe loads and installs EFI_RNG_PROTOCOL +only in case it can actually deliver random numbers. + +Signed-off-by: Gerd Hoffmann +--- + SecurityPkg/RandomNumberGenerator/RngDxe/Rand/RngDxe.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/SecurityPkg/RandomNumberGenerator/RngDxe/Rand/RngDxe.c b/SecurityPkg/RandomNumberGenerator/RngDxe/Rand/RngDxe.c +index 149de875ce..e374b62208 100644 +--- a/SecurityPkg/RandomNumberGenerator/RngDxe/Rand/RngDxe.c ++++ b/SecurityPkg/RandomNumberGenerator/RngDxe/Rand/RngDxe.c +@@ -23,6 +23,7 @@ + + #include + #include ++#include + + #include "RngDxeInternals.h" + +-- +2.39.3 + diff --git a/edk2-SecurityPkg-SecurityPkg.dec-Move-PcdCpuRngSupportedA.patch b/edk2-SecurityPkg-SecurityPkg.dec-Move-PcdCpuRngSupportedA.patch new file mode 100644 index 0000000..d0fb89e --- /dev/null +++ b/edk2-SecurityPkg-SecurityPkg.dec-Move-PcdCpuRngSupportedA.patch @@ -0,0 +1,104 @@ +From 1548ea758f7d9d58fd61110f5719cc12786380d3 Mon Sep 17 00:00:00 2001 +From: Jon Maloy +Date: Thu, 20 Jun 2024 16:01:08 -0400 +Subject: [PATCH 17/31] SecurityPkg/SecurityPkg.dec: Move + PcdCpuRngSupportedAlgorithm to MdePkg + +RH-Author: Jon Maloy +RH-MergeRequest: 77: UINT32 overflow in S3 ResumeCount and Pixiefail fixes +RH-Jira: RHEL-21854 RHEL-21856 RHEL-40099 +RH-Acked-by: Gerd Hoffmann +RH-Commit: [17/31] 01f31c97f800f3451072762c0e9a9eb59f1cc2ab + +JIRA: https://issues.redhat.com/browse/RHEL-21856 +Upstream: Merged +CVE: CVE-2023-45237 + +commit 65b5dd828ef2ea5056031b239a4e7a6642f771a3 +Author: Pierre Gondois +Date: Fri Aug 11 16:33:04 2023 +0200 + + SecurityPkg/SecurityPkg.dec: Move PcdCpuRngSupportedAlgorithm to MdePkg + + In order to use PcdCpuRngSupportedAlgorithm in the MdePkg in a + following patch and to avoid making the MdePkg dependent on another + package, move PcdCpuRngSupportedAlgorithm to the MdePkg. + + As the Pcd is only used for AARCH64, place it in an AARCH64 + specific sections. + + Signed-off-by: Pierre Gondois + Reviewed-by: Liming Gao + Reviewed-by: Sami Mujawar + Acked-by: Ard Biesheuvel + Acked-by: Jiewen Yao + Tested-by: Kun Qin + +Signed-off-by: Jon Maloy +--- + .../Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf | 2 +- + MdePkg/MdePkg.dec | 5 +++++ + SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.inf | 4 ++-- + SecurityPkg/SecurityPkg.dec | 2 -- + 4 files changed, 8 insertions(+), 5 deletions(-) + +diff --git a/MdeModulePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf b/MdeModulePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf +index f857290e82..f729001060 100644 +--- a/MdeModulePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf ++++ b/MdeModulePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf +@@ -19,7 +19,7 @@ + INF_VERSION = 1.27 + BASE_NAME = BaseRngLibTimerLib + MODULE_UNI_FILE = BaseRngLibTimerLib.uni +- FILE_GUID = 74950C45-10FC-4AB5-B114-49C87C17409B ++ FILE_GUID = B3E66B05-D218-4B9A-AC33-EF0F83D6A513 + MODULE_TYPE = BASE + VERSION_STRING = 1.0 + LIBRARY_CLASS = RngLib +diff --git a/MdePkg/MdePkg.dec b/MdePkg/MdePkg.dec +index 6389a48338..8f05e822ac 100644 +--- a/MdePkg/MdePkg.dec ++++ b/MdePkg/MdePkg.dec +@@ -2306,6 +2306,11 @@ + # @Prompt Memory Address of GuidedExtractHandler Table. + gEfiMdePkgTokenSpaceGuid.PcdGuidedExtractHandlerTableAddress|0x1000000|UINT64|0x30001015 + ++[PcdsFixedAtBuild.AARCH64, PcdsPatchableInModule.AARCH64] ++ ## GUID identifying the Rng algorithm implemented by CPU instruction. ++ # @Prompt CPU Rng algorithm's GUID. ++ gEfiMdePkgTokenSpaceGuid.PcdCpuRngSupportedAlgorithm|{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}|VOID*|0x00000037 ++ + [PcdsFixedAtBuild, PcdsPatchableInModule, PcdsDynamic, PcdsDynamicEx] + ## This value is used to set the base address of PCI express hierarchy. + # @Prompt PCI Express Base Address. +diff --git a/SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.inf b/SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.inf +index c8e0ee4ae5..d6c2d30195 100644 +--- a/SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.inf ++++ b/SecurityPkg/RandomNumberGenerator/RngDxe/RngDxe.inf +@@ -79,8 +79,8 @@ + [Protocols] + gEfiRngProtocolGuid ## PRODUCES + +-[Pcd] +- gEfiSecurityPkgTokenSpaceGuid.PcdCpuRngSupportedAlgorithm ## CONSUMES ++[Pcd.AARCH64] ++ gEfiMdePkgTokenSpaceGuid.PcdCpuRngSupportedAlgorithm ## CONSUMES + + [Depex] + TRUE +diff --git a/SecurityPkg/SecurityPkg.dec b/SecurityPkg/SecurityPkg.dec +index 9f7a032d60..8cf80b1e84 100644 +--- a/SecurityPkg/SecurityPkg.dec ++++ b/SecurityPkg/SecurityPkg.dec +@@ -323,8 +323,6 @@ + gEfiSecurityPkgTokenSpaceGuid.PcdStatusCodeFvVerificationPass|0x0303100A|UINT32|0x00010030 + gEfiSecurityPkgTokenSpaceGuid.PcdStatusCodeFvVerificationFail|0x0303100B|UINT32|0x00010031 + +- gEfiSecurityPkgTokenSpaceGuid.PcdCpuRngSupportedAlgorithm|{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}|VOID*|0x00010032 +- + [PcdsFixedAtBuild, PcdsPatchableInModule, PcdsDynamic, PcdsDynamicEx] + ## Image verification policy for OptionRom. Only following values are valid:

+ # NOTE: Do NOT use 0x5 and 0x2 since it violates the UEFI specification and has been removed.
+-- +2.39.3 + diff --git a/edk2.spec b/edk2.spec index fca9d85..97aaac0 100644 --- a/edk2.spec +++ b/edk2.spec @@ -7,7 +7,7 @@ ExclusiveArch: x86_64 aarch64 Name: edk2 Version: %{GITDATE}git%{GITCOMMIT} -Release: 13%{?dist} +Release: 13%{?dist}.1 Summary: UEFI firmware for 64-bit virtual machines Group: Applications/Emulators License: BSD-2-Clause-Patent and OpenSSL and MIT @@ -260,6 +260,130 @@ Patch82: edk2-NetworkPkg-Dhcp6Dxe-Packet-Length-is-not-updated-bef.patch Patch83: edk2-EmbeddedPkg-Hob-Integer-Overflow-in-CreateHob.patch # For RHEL-21158 - CVE-2022-36765 edk2: integer overflow in CreateHob() could lead to HOB OOB R/W [rhel-8] Patch84: edk2-StandaloneMmPkg-Hob-Integer-Overflow-in-CreateHob.patch +# For RHEL-21854 - CVE-2023-45236 edk2: Predictable TCP Initial Sequence Numbers [rhel-8] +# For RHEL-21856 - CVE-2023-45237 edk2: Use of a Weak PseudoRandom Number Generator [rhel-8] +# For RHEL-40099 - CVE-2024-1298 edk2: Temporary DoS vulnerability [rhel-8.10.z] +Patch85: edk2-MdeModulePkg-Change-use-of-EFI_D_-to-DEBUG_.patch +# For RHEL-21854 - CVE-2023-45236 edk2: Predictable TCP Initial Sequence Numbers [rhel-8] +# For RHEL-21856 - CVE-2023-45237 edk2: Use of a Weak PseudoRandom Number Generator [rhel-8] +# For RHEL-40099 - CVE-2024-1298 edk2: Temporary DoS vulnerability [rhel-8.10.z] +Patch86: edk2-MdeModulePkg-Potential-UINT32-overflow-in-S3-ResumeC.patch +# For RHEL-21854 - CVE-2023-45236 edk2: Predictable TCP Initial Sequence Numbers [rhel-8] +# For RHEL-21856 - CVE-2023-45237 edk2: Use of a Weak PseudoRandom Number Generator [rhel-8] +# For RHEL-40099 - CVE-2024-1298 edk2: Temporary DoS vulnerability [rhel-8.10.z] +Patch87: edk2-MdePkg-Apply-uncrustify-changes.patch +# For RHEL-21854 - CVE-2023-45236 edk2: Predictable TCP Initial Sequence Numbers [rhel-8] +# For RHEL-21856 - CVE-2023-45237 edk2: Use of a Weak PseudoRandom Number Generator [rhel-8] +# For RHEL-40099 - CVE-2024-1298 edk2: Temporary DoS vulnerability [rhel-8.10.z] +Patch88: edk2-NetworkPkg-Apply-uncrustify-changes.p2.patch +# For RHEL-21854 - CVE-2023-45236 edk2: Predictable TCP Initial Sequence Numbers [rhel-8] +# For RHEL-21856 - CVE-2023-45237 edk2: Use of a Weak PseudoRandom Number Generator [rhel-8] +# For RHEL-40099 - CVE-2024-1298 edk2: Temporary DoS vulnerability [rhel-8.10.z] +Patch89: edk2-SecurityPkg-RngDxe-Rename-RdRandGenerateEntropy-to-g.patch +# For RHEL-21854 - CVE-2023-45236 edk2: Predictable TCP Initial Sequence Numbers [rhel-8] +# For RHEL-21856 - CVE-2023-45237 edk2: Use of a Weak PseudoRandom Number Generator [rhel-8] +# For RHEL-40099 - CVE-2024-1298 edk2: Temporary DoS vulnerability [rhel-8.10.z] +Patch90: edk2-SecurityPkg-RngDxe-Remove-ArchGetSupportedRngAlgorit.patch +# For RHEL-21854 - CVE-2023-45236 edk2: Predictable TCP Initial Sequence Numbers [rhel-8] +# For RHEL-21856 - CVE-2023-45237 edk2: Use of a Weak PseudoRandom Number Generator [rhel-8] +# For RHEL-40099 - CVE-2024-1298 edk2: Temporary DoS vulnerability [rhel-8.10.z] +Patch91: edk2-SecurityPkg-RngDxe-Documentation-include-parameter-c.patch +# For RHEL-21854 - CVE-2023-45236 edk2: Predictable TCP Initial Sequence Numbers [rhel-8] +# For RHEL-21856 - CVE-2023-45237 edk2: Use of a Weak PseudoRandom Number Generator [rhel-8] +# For RHEL-40099 - CVE-2024-1298 edk2: Temporary DoS vulnerability [rhel-8.10.z] +Patch92: edk2-SecurityPkg-RngDxe-Check-before-advertising-Cpu-Rng-.patch +# For RHEL-21854 - CVE-2023-45236 edk2: Predictable TCP Initial Sequence Numbers [rhel-8] +# For RHEL-21856 - CVE-2023-45237 edk2: Use of a Weak PseudoRandom Number Generator [rhel-8] +# For RHEL-40099 - CVE-2024-1298 edk2: Temporary DoS vulnerability [rhel-8.10.z] +Patch93: edk2-SecurityPkg-RngDxe-Add-AArch64-RawAlgorithm-support-.patch +# For RHEL-21854 - CVE-2023-45236 edk2: Predictable TCP Initial Sequence Numbers [rhel-8] +# For RHEL-21856 - CVE-2023-45237 edk2: Use of a Weak PseudoRandom Number Generator [rhel-8] +# For RHEL-40099 - CVE-2024-1298 edk2: Temporary DoS vulnerability [rhel-8.10.z] +Patch94: edk2-SecurityPkg-RngDxe-Add-debug-warning-for-NULL-PcdCpu.patch +# For RHEL-21854 - CVE-2023-45236 edk2: Predictable TCP Initial Sequence Numbers [rhel-8] +# For RHEL-21856 - CVE-2023-45237 edk2: Use of a Weak PseudoRandom Number Generator [rhel-8] +# For RHEL-40099 - CVE-2024-1298 edk2: Temporary DoS vulnerability [rhel-8.10.z] +Patch95: edk2-SecurityPkg-RngDxe-Rename-AArch64-RngDxe.c.patch +# For RHEL-21854 - CVE-2023-45236 edk2: Predictable TCP Initial Sequence Numbers [rhel-8] +# For RHEL-21856 - CVE-2023-45237 edk2: Use of a Weak PseudoRandom Number Generator [rhel-8] +# For RHEL-40099 - CVE-2024-1298 edk2: Temporary DoS vulnerability [rhel-8.10.z] +Patch96: edk2-SecurityPkg-RngDxe-Add-Arm-support-of-RngDxe.patch +# For RHEL-21854 - CVE-2023-45236 edk2: Predictable TCP Initial Sequence Numbers [rhel-8] +# For RHEL-21856 - CVE-2023-45237 edk2: Use of a Weak PseudoRandom Number Generator [rhel-8] +# For RHEL-40099 - CVE-2024-1298 edk2: Temporary DoS vulnerability [rhel-8.10.z] +Patch97: edk2-SecurityPkg-RngDxe-Correctly-update-mAvailableAlgoAr.patch +# For RHEL-21854 - CVE-2023-45236 edk2: Predictable TCP Initial Sequence Numbers [rhel-8] +# For RHEL-21856 - CVE-2023-45237 edk2: Use of a Weak PseudoRandom Number Generator [rhel-8] +# For RHEL-40099 - CVE-2024-1298 edk2: Temporary DoS vulnerability [rhel-8.10.z] +Patch98: edk2-SecurityPkg-RngDxe-Conditionally-install-EFI_RNG_PRO.patch +# For RHEL-21854 - CVE-2023-45236 edk2: Predictable TCP Initial Sequence Numbers [rhel-8] +# For RHEL-21856 - CVE-2023-45237 edk2: Use of a Weak PseudoRandom Number Generator [rhel-8] +# For RHEL-40099 - CVE-2024-1298 edk2: Temporary DoS vulnerability [rhel-8.10.z] +Patch99: edk2-MdeModulePkg-Duplicate-BaseRngLibTimerLib-to-MdeModu.patch +# For RHEL-21854 - CVE-2023-45236 edk2: Predictable TCP Initial Sequence Numbers [rhel-8] +# For RHEL-21856 - CVE-2023-45237 edk2: Use of a Weak PseudoRandom Number Generator [rhel-8] +# For RHEL-40099 - CVE-2024-1298 edk2: Temporary DoS vulnerability [rhel-8.10.z] +Patch100: edk2-MdePkg-Add-deprecated-warning-to-BaseRngLibTimer.patch +# For RHEL-21854 - CVE-2023-45236 edk2: Predictable TCP Initial Sequence Numbers [rhel-8] +# For RHEL-21856 - CVE-2023-45237 edk2: Use of a Weak PseudoRandom Number Generator [rhel-8] +# For RHEL-40099 - CVE-2024-1298 edk2: Temporary DoS vulnerability [rhel-8.10.z] +Patch101: edk2-SecurityPkg-SecurityPkg.dec-Move-PcdCpuRngSupportedA.patch +# For RHEL-21854 - CVE-2023-45236 edk2: Predictable TCP Initial Sequence Numbers [rhel-8] +# For RHEL-21856 - CVE-2023-45237 edk2: Use of a Weak PseudoRandom Number Generator [rhel-8] +# For RHEL-40099 - CVE-2024-1298 edk2: Temporary DoS vulnerability [rhel-8.10.z] +Patch102: edk2-MdePkg-DxeRngLib-Request-raw-algorithm-instead-of-de.patch +# For RHEL-21854 - CVE-2023-45236 edk2: Predictable TCP Initial Sequence Numbers [rhel-8] +# For RHEL-21856 - CVE-2023-45237 edk2: Use of a Weak PseudoRandom Number Generator [rhel-8] +# For RHEL-40099 - CVE-2024-1298 edk2: Temporary DoS vulnerability [rhel-8.10.z] +Patch103: edk2-MdePkg-Rng-Add-GUID-to-describe-Arm-Rndr-Rng-algorit.patch +# For RHEL-21854 - CVE-2023-45236 edk2: Predictable TCP Initial Sequence Numbers [rhel-8] +# For RHEL-21856 - CVE-2023-45237 edk2: Use of a Weak PseudoRandom Number Generator [rhel-8] +# For RHEL-40099 - CVE-2024-1298 edk2: Temporary DoS vulnerability [rhel-8.10.z] +Patch104: edk2-MdeModulePkg-Rng-Add-GUID-to-describe-unsafe-Rng-alg.patch +# For RHEL-21854 - CVE-2023-45236 edk2: Predictable TCP Initial Sequence Numbers [rhel-8] +# For RHEL-21856 - CVE-2023-45237 edk2: Use of a Weak PseudoRandom Number Generator [rhel-8] +# For RHEL-40099 - CVE-2024-1298 edk2: Temporary DoS vulnerability [rhel-8.10.z] +Patch105: edk2-MdePkg-Rng-Add-GetRngGuid-to-RngLib.patch +# For RHEL-21854 - CVE-2023-45236 edk2: Predictable TCP Initial Sequence Numbers [rhel-8] +# For RHEL-21856 - CVE-2023-45237 edk2: Use of a Weak PseudoRandom Number Generator [rhel-8] +# For RHEL-40099 - CVE-2024-1298 edk2: Temporary DoS vulnerability [rhel-8.10.z] +Patch106: edk2-SecurityPkg-RngDxe-Use-GetRngGuid-when-probing-RngLi.patch +# For RHEL-21854 - CVE-2023-45236 edk2: Predictable TCP Initial Sequence Numbers [rhel-8] +# For RHEL-21856 - CVE-2023-45237 edk2: Use of a Weak PseudoRandom Number Generator [rhel-8] +# For RHEL-40099 - CVE-2024-1298 edk2: Temporary DoS vulnerability [rhel-8.10.z] +Patch107: edk2-SecurityPkg-RngDxe-Simplify-Rng-algorithm-selection-.patch +# For RHEL-21854 - CVE-2023-45236 edk2: Predictable TCP Initial Sequence Numbers [rhel-8] +# For RHEL-21856 - CVE-2023-45237 edk2: Use of a Weak PseudoRandom Number Generator [rhel-8] +# For RHEL-40099 - CVE-2024-1298 edk2: Temporary DoS vulnerability [rhel-8.10.z] +Patch108: edk2-NetworkPkg-SECURITY-PATCH-CVE-2023-45237.patch +# For RHEL-21854 - CVE-2023-45236 edk2: Predictable TCP Initial Sequence Numbers [rhel-8] +# For RHEL-21856 - CVE-2023-45237 edk2: Use of a Weak PseudoRandom Number Generator [rhel-8] +# For RHEL-40099 - CVE-2024-1298 edk2: Temporary DoS vulnerability [rhel-8.10.z] +Patch109: edk2-MdePkg-BaseRngLib-Add-a-smoketest-for-RDRAND-and-che.patch +# For RHEL-21854 - CVE-2023-45236 edk2: Predictable TCP Initial Sequence Numbers [rhel-8] +# For RHEL-21856 - CVE-2023-45237 edk2: Use of a Weak PseudoRandom Number Generator [rhel-8] +# For RHEL-40099 - CVE-2024-1298 edk2: Temporary DoS vulnerability [rhel-8.10.z] +Patch110: edk2-SecurityPkg-RngDxe-add-rng-test.patch +# For RHEL-21854 - CVE-2023-45236 edk2: Predictable TCP Initial Sequence Numbers [rhel-8] +# For RHEL-21856 - CVE-2023-45237 edk2: Use of a Weak PseudoRandom Number Generator [rhel-8] +# For RHEL-40099 - CVE-2024-1298 edk2: Temporary DoS vulnerability [rhel-8.10.z] +Patch111: edk2-OvmfPkg-wire-up-RngDxe.patch +# For RHEL-21854 - CVE-2023-45236 edk2: Predictable TCP Initial Sequence Numbers [rhel-8] +# For RHEL-21856 - CVE-2023-45237 edk2: Use of a Weak PseudoRandom Number Generator [rhel-8] +# For RHEL-40099 - CVE-2024-1298 edk2: Temporary DoS vulnerability [rhel-8.10.z] +Patch112: edk2-CryptoPkg-Test-call-ProcessLibraryConstructorList.patch +# For RHEL-21854 - CVE-2023-45236 edk2: Predictable TCP Initial Sequence Numbers [rhel-8] +# For RHEL-21856 - CVE-2023-45237 edk2: Use of a Weak PseudoRandom Number Generator [rhel-8] +# For RHEL-40099 - CVE-2024-1298 edk2: Temporary DoS vulnerability [rhel-8.10.z] +Patch113: edk2-MdePkg-X86UnitTestHost-set-rdrand-cpuid-bit.patch +# For RHEL-21854 - CVE-2023-45236 edk2: Predictable TCP Initial Sequence Numbers [rhel-8] +# For RHEL-21856 - CVE-2023-45237 edk2: Use of a Weak PseudoRandom Number Generator [rhel-8] +# For RHEL-40099 - CVE-2024-1298 edk2: Temporary DoS vulnerability [rhel-8.10.z] +Patch114: edk2-NetworkPkg-TcpDxe-SECURITY-PATCH-CVE-2023-45236.patch +# For RHEL-21854 - CVE-2023-45236 edk2: Predictable TCP Initial Sequence Numbers [rhel-8] +# For RHEL-21856 - CVE-2023-45237 edk2: Use of a Weak PseudoRandom Number Generator [rhel-8] +# For RHEL-40099 - CVE-2024-1298 edk2: Temporary DoS vulnerability [rhel-8.10.z] +Patch115: edk2-NetworkPkg-TcpDxe-Fixed-system-stuck-on-PXE-boot-flo.patch # python3-devel and libuuid-devel are required for building tools. @@ -706,6 +830,45 @@ true %endif %changelog +* Wed Jul 03 2024 Miroslav Rezanina - 20220126gitbb1bba3d77-13.el8_10.1 +- edk2-MdeModulePkg-Change-use-of-EFI_D_-to-DEBUG_.patch [RHEL-21854 RHEL-21856 RHEL-40099] +- edk2-MdeModulePkg-Potential-UINT32-overflow-in-S3-ResumeC.patch [RHEL-21854 RHEL-21856 RHEL-40099] +- edk2-MdePkg-Apply-uncrustify-changes.patch [RHEL-21854 RHEL-21856 RHEL-40099] +- edk2-NetworkPkg-Apply-uncrustify-changes.p2.patch [RHEL-21854 RHEL-21856 RHEL-40099] +- edk2-SecurityPkg-RngDxe-Rename-RdRandGenerateEntropy-to-g.patch [RHEL-21854 RHEL-21856 RHEL-40099] +- edk2-SecurityPkg-RngDxe-Remove-ArchGetSupportedRngAlgorit.patch [RHEL-21854 RHEL-21856 RHEL-40099] +- edk2-SecurityPkg-RngDxe-Documentation-include-parameter-c.patch [RHEL-21854 RHEL-21856 RHEL-40099] +- edk2-SecurityPkg-RngDxe-Check-before-advertising-Cpu-Rng-.patch [RHEL-21854 RHEL-21856 RHEL-40099] +- edk2-SecurityPkg-RngDxe-Add-AArch64-RawAlgorithm-support-.patch [RHEL-21854 RHEL-21856 RHEL-40099] +- edk2-SecurityPkg-RngDxe-Add-debug-warning-for-NULL-PcdCpu.patch [RHEL-21854 RHEL-21856 RHEL-40099] +- edk2-SecurityPkg-RngDxe-Rename-AArch64-RngDxe.c.patch [RHEL-21854 RHEL-21856 RHEL-40099] +- edk2-SecurityPkg-RngDxe-Add-Arm-support-of-RngDxe.patch [RHEL-21854 RHEL-21856 RHEL-40099] +- edk2-SecurityPkg-RngDxe-Correctly-update-mAvailableAlgoAr.patch [RHEL-21854 RHEL-21856 RHEL-40099] +- edk2-SecurityPkg-RngDxe-Conditionally-install-EFI_RNG_PRO.patch [RHEL-21854 RHEL-21856 RHEL-40099] +- edk2-MdeModulePkg-Duplicate-BaseRngLibTimerLib-to-MdeModu.patch [RHEL-21854 RHEL-21856 RHEL-40099] +- edk2-MdePkg-Add-deprecated-warning-to-BaseRngLibTimer.patch [RHEL-21854 RHEL-21856 RHEL-40099] +- edk2-SecurityPkg-SecurityPkg.dec-Move-PcdCpuRngSupportedA.patch [RHEL-21854 RHEL-21856 RHEL-40099] +- edk2-MdePkg-DxeRngLib-Request-raw-algorithm-instead-of-de.patch [RHEL-21854 RHEL-21856 RHEL-40099] +- edk2-MdePkg-Rng-Add-GUID-to-describe-Arm-Rndr-Rng-algorit.patch [RHEL-21854 RHEL-21856 RHEL-40099] +- edk2-MdeModulePkg-Rng-Add-GUID-to-describe-unsafe-Rng-alg.patch [RHEL-21854 RHEL-21856 RHEL-40099] +- edk2-MdePkg-Rng-Add-GetRngGuid-to-RngLib.patch [RHEL-21854 RHEL-21856 RHEL-40099] +- edk2-SecurityPkg-RngDxe-Use-GetRngGuid-when-probing-RngLi.patch [RHEL-21854 RHEL-21856 RHEL-40099] +- edk2-SecurityPkg-RngDxe-Simplify-Rng-algorithm-selection-.patch [RHEL-21854 RHEL-21856 RHEL-40099] +- edk2-NetworkPkg-SECURITY-PATCH-CVE-2023-45237.patch [RHEL-21854 RHEL-21856 RHEL-40099] +- edk2-MdePkg-BaseRngLib-Add-a-smoketest-for-RDRAND-and-che.patch [RHEL-21854 RHEL-21856 RHEL-40099] +- edk2-SecurityPkg-RngDxe-add-rng-test.patch [RHEL-21854 RHEL-21856 RHEL-40099] +- edk2-OvmfPkg-wire-up-RngDxe.patch [RHEL-21854 RHEL-21856 RHEL-40099] +- edk2-CryptoPkg-Test-call-ProcessLibraryConstructorList.patch [RHEL-21854 RHEL-21856 RHEL-40099] +- edk2-MdePkg-X86UnitTestHost-set-rdrand-cpuid-bit.patch [RHEL-21854 RHEL-21856 RHEL-40099] +- edk2-NetworkPkg-TcpDxe-SECURITY-PATCH-CVE-2023-45236.patch [RHEL-21854 RHEL-21856 RHEL-40099] +- edk2-NetworkPkg-TcpDxe-Fixed-system-stuck-on-PXE-boot-flo.patch [RHEL-21854 RHEL-21856 RHEL-40099] +- Resolves: RHEL-21854 + (CVE-2023-45236 edk2: Predictable TCP Initial Sequence Numbers [rhel-8]) +- Resolves: RHEL-21856 + (CVE-2023-45237 edk2: Use of a Weak PseudoRandom Number Generator [rhel-8]) +- Resolves: RHEL-40099 + (CVE-2024-1298 edk2: Temporary DoS vulnerability [rhel-8.10.z]) + * Thu Mar 14 2024 Miroslav Rezanina - 20220126gitbb1bba3d77-13 - edk2-EmbeddedPkg-Hob-Integer-Overflow-in-CreateHob.patch [RHEL-21158] - edk2-StandaloneMmPkg-Hob-Integer-Overflow-in-CreateHob.patch [RHEL-21158]