summaryrefslogtreecommitdiffstats
path: root/MdeModulePkg
Commit message (Collapse)AuthorAgeFilesLines
* MdeModulePkg/HiiDatabaseDxe: Remove buffer error for string default.edk2-stable202502Longhaox Lee2 days1-5/+4
| | | | | | | | | | | | Remove efivarstore IFR buffer error when string load default. In the case of varstore type IFR, it will be NULL, just break into next opcode process. Resolve issue from commit cbe8a09dbac5c39d24ce5c4b9e7d44607f6c23da varstore type IFR string might return status error while execute ExtractConfig function. Signed-off-by: Longhao Lee <longhaox.lee@intel.com>
* MdeModulePkg/UsbBusPei: Improve PEI USB enumerationPhil Noh4 days1-161/+170
| | | | | | | | | | | | Unlike DXE USB enumeration that enumerates all changed ports on timer interrupt, PEI USB Enumeration runs once at the driver entry point. USB3.x devices initially appear in USB2.0 ports. When the USB2.0 port is reset, the USB3.x device disappears from the USB2.0 port and appears on the USB3.0 port. The USB3.x device won't be enumerated if the USB2.0 port number is greater than the USB3.0 port number. Re-enumerate USB to make sure USB3.x devices in this case. Signed-off-by: Phil Noh <Phil.Noh@amd.com>
* Add MockVariablePolicyHelperLibKane Chen2025-02-074-0/+129
| | | | Signed-off-by: Kane Chen <kane.chen@microsoft.com>
* MdePkg: Move StackCheckLibStaticInit to StackCheckLibOliver Smith-Denny2025-02-071-0/+3
| | | | | | | | | | | | | | | This commit oves StackCheckLib from a NULL lib to an instance of StackCheckLib. This requires every entry point to add a library dependency on StackCheckLib. It also requires every SEC module to have a dependency on StackCheckLib because there is no standard SEC entry point. It allows for greater flexibility for a platform to apply stack cookies and simplifies DSC logic. Continuous-integration-options: PatchCheck.ignore-multi-package Signed-off-by: Oliver Smith-Denny <osde@microsoft.com>
* MdeModulePkg: NvmExpressDxe: fix warning about uninitialized variableMike Maslenkin2025-01-291-0/+2
| | | | | | | | | | | | NvmExpressMediaSanitize.c: In function 'NvmExpressMediaClear': NvmExpressMediaSanitize.c:337:29: error: 'Status' may be used uninitialized in this function [-Werror=maybe-uninitialized] EFI_STATUS Status; ^~~~~~ cc1: all warnings being treated as errors Signed-off-by: Mike Maslenkin <mike.maslenkin@gmail.com>
* MdeModulePkg: fix warning about uninitialized variableMike Maslenkin2025-01-291-0/+2
| | | | | | | | | | | Handle.c:1302:24: error: 'Prot' may be used uninitialized in this function [-Werror=maybe-uninitialized] *Interface = Prot->Interface; ~~~~^~~~~~~~~~~ cc1: all warnings being treated as errors Signed-off-by: Mike Maslenkin <mike.maslenkin@gmail.com>
* MdeModulePkg: PeiMain: fix warning about uninitialized variableMike Maslenkin2025-01-291-5/+5
| | | | | | | | | | Dispatcher.c:1639:34: error: 'FvMigrationFlags' may be used uninitialized in this function [-Werror=maybe-uninitialized] (((FvMigrationFlags & FLAGS_FV_MIGRATE_BEFORE_PEI_CORE_REENTRY) == 0) || ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ cc1: all warnings being treated as errors Signed-off-by: Mike Maslenkin <mike.maslenkin@gmail.com>
* MdeModulePkg PeiMain: Remove return for PeiCoreBuildHobHandoffInfoTable()Star Zeng2025-01-262-10/+4
| | | | | | | | PeiCoreBuildHobHandoffInfoTable() always returns EFI_SUCCESS, and also its return is not consumed at all, so this patch removes return for PeiCoreBuildHobHandoffInfoTable(). Signed-off-by: Star Zeng <star.zeng@intel.com>
* MdeModulePkg: Make noisy log DEBUG_VERBOSEDionna Glaze2025-01-151-6/+6
| | | | | | | | For bootup of VMs with multiple accelerators, these logging instructions flood the logs for a good 30 seconds. Originally found by Gary Zibrat. Signed-off-by: Dionna Glaze <dionnaglaze@google.com>
* MdeModulePkg/HiiDatabaseDxe: Add string question load default support.Longhaox Lee2025-01-141-0/+173
| | | | | | | Add string question load default support. load default data from PCD PcdNvStoreDefaultValueBuffer. Signed-off-by: Longhao Lee <longhaox.lee@intel.com>
* MdeModulePkg: Update AtaPassThru to UEFI 2.10AINDIA\sachinganesh2025-01-093-0/+12
| | | | | | | | UEFI 2.10A Specification has added a new error case to EFI_ATA_PASS_THRU_PROTOCOL.GetNextDevice API which handles port multiplier not being connected to the Port. Signed-off-by: Sachin Ganesh <sachinganesh@ami.com>
* MdeModulePkg/XhciDxe: Non-zero start/stop values in XhcGetElapsedTicksHenz, Patrick2024-12-221-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | REF:https://bugzilla.tianocore.org/show_bug.cgi?id=4578 The implementation of XhcGetElapsedTicks did not account for non-zero start and stop values for the performance counter timer, potentially resulting in an incorrect elapsed tick count getting returned to the caller. Account for non-zero start and stop values when calculating the elapsed tick count. Cc: Hao A Wu <hao.a.wu@intel.com> Cc: Ray Ni <ray.ni@intel.com> Signed-off-by: Patrick Henz <patrick.henz@hpe.com> Reviewed-by: Laszlo Ersek <lersek@redhat.com> Acked-by: Hao A Wu <hao.a.wu@intel.com> Message-ID: <c3038878c4d30c54e60cce7192cf1aa60c30ad2e.1698770394.git.patrick.henz@hpe.com> Resolve rebase conflict from commit ff4c49a5ee38 ("MdeModulePkg/Bus: Fix XhciDxe Linker Issues", 2023-12-06): rename "mPerformanceCounter*" to "mXhciPerformanceCounter*". Signed-off-by: Laszlo Ersek <laszlo.ersek@posteo.net>
* MdeModulePkg DxeMain: Add late initialization for Debug Agent.Chris Fernald2024-12-162-0/+7
| | | | | | | | | | Add a late initialize in DxeMain for the debug agent. This is required for the debug agent to be able to setup events to handle image loads, exit boot services, and other important callbacks. Define a reinitialize debug agent. Signed-off-by: Aaron Pop <aaronpop@microsoft.com>
* MdeModulePkg/Bus/Ufs: Use IndustryStandard headersChristopher Zurcher2024-12-166-2676/+4
| | | | | | | Remove duplicate private header files and reference UFS spec definitions from the IndustryStandard folder. Signed-off-by: Christopher Zurcher <christopher.zurcher@microsoft.com>
* MdeModulePkg SmbiosMeasurementDxe: Release TableAddress after useYang Gang2024-12-111-0/+4
| | | | Signed-off-by: Yang Gang <yanggang@byosoft.com.cn>
* MdeModulePkg DriverHealthManagerDxe: Display HealthStatus as TextTwoYang Gang2024-12-111-2/+4
| | | | | | | When PcdBrowserGrayOutTextStatement is TRUE, TextOpCode will be GrayOut. HealthStatus cannot be displayed in help area, use TextTwo to display it. Signed-off-by: Yang Gang <yanggang@byosoft.com.cn>
* MdeModulePkg/BrotliCustomDecompressLib: Make the library buildablePhil Noh2024-12-114-1/+33
| | | | | | | | | | | | REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4877 Brotli decompression library is supported in EDK2 core. Currently it is not buildable when linking it to DxeIpl driver. The result is also checked on edk2 master branch. It could be related to updating Brotli submodule (v1.0.9) on the previous commit (1193aa2). The update makes the library buildable. It was verified for the functional status. Signed-off-by: Phil Noh <Phil.Noh@amd.com>
* MdeModulePkg/PlatformDriOverrideDxe: fix HiiOpCodeHandle leakMike Maslenkin2024-12-061-0/+4
| | | | Signed-off-by: Mike Maslenkin <mike.maslenkin@gmail.com>
* MdeModulePkg/UiApp: fix HiiOpCodeHandle leakMike Maslenkin2024-12-061-0/+2
| | | | Signed-off-by: Mike Maslenkin <mike.maslenkin@gmail.com>
* MdeModulePkg/DxeIplPeim: Free scratch buffer after FV extractionPhil Noh2024-12-061-0/+5
| | | | | | | | | | | | | | | | | The scratch buffer (EfiBootServicesData) is assigned to extract DXE FVs that are compressed. The matching decompression library returns the buffer size as below. The buffer is no longer used after completing extraction. Need to free the buffer to optimize memory allocation and usage. BaseUefiDecompressLib : sizeof (SCRATCH_DATA) LzmaCustomDecompressLib : SCRATCH_BUFFER_REQUEST_SIZE (64KB) BrotliCustomDecompressLib : From EncodeData header (usually, xxMB checked) In case of Brotli decompression, it is found that a big chunk of memory is required, based on EncodeData header. (e.g. a 4MB compressed FV reports about 39MB scratch size) Signed-off-by: Phil Noh <Phil.Noh@amd.com>
* MdeModulePkg/Bus/Pci: Fix Descriptor Misalignment in USB Config HandlingAniket_Surekar2024-12-062-10/+10
| | | | | | | | | | | | | | | | | | | | The issue with locating the expected interface and endpoint descriptors arises because `configDesc` (USB_CONFIG_DESCRIPTOR) and `IfDesc` (USB_INTERFACE_DESCRIPTOR) are incremented by structure size rather than by actual descriptor length. Specifically: - `configDesc` should be incremented by its actual length. - `IfDesc` should be incremented by its actual length. This incorrect increment causes misalignment, preventing access to the subsequent interface and endpoint descriptors. [Suggested Solution] Update the code to increment the pointers by the actual descriptor lengths, ensuring proper access to all descriptors in the USB configuration. Signed-off-by: Aniket Surekar <Aniket.Surekar@Dell.com>
* MdeModulePkg/DxeCore: Call BeforeExitBootServices event group only onceArd Biesheuvel2024-12-061-1/+6
| | | | | | | | | | | | | | | | | | | | | According to UEFI spec 2.10 errata A section 7.4.6 "All events from the EFI_EVENT_GROUP_BEFORE_EXIT_BOOT_SERVICES and EFI_EVENT_GROUP_EXIT_BOOT_SERVICES event notification groups as well as events of type EVT_SIGNAL_EXIT_BOOT_SERVICES must be signaled before ExitBootServices() returns EFI_SUCCESS. The events are only signaled once even if ExitBootServices() is called multiple times." So keep track of whether ExitBootServices() has been called, and signal the event group EFI_EVENT_GROUP_BEFORE_EXIT_BOOT_SERVICES only the first time around. EFI_EVENT_GROUP_EXIT_BOOT_SERVICES will only be signalled if ExitBootServices() is going to run to [successful] completion, after which calling it a second time is not possible anyway. So for this case, no special handling is needed. Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
* MdeModulePkg/HiiDatabase: Return default value for BIT VarStore as UNIT32Dandan Bi2024-12-021-2/+2
| | | | | | | | | | | | | REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4874 Question CheckBox, OneOf and Numeric can refer to Bit EFI VarStore. CheckBox: data type is Boolean (1 byte), Numeric/Oneof: data type is always UNIT32 for BIT VarStore, When get default value for BIT VarStore, should return default value with sizeof (UINT32) rather than the byte the bit width occupied. Or incorrect default value will be used due to the size mismatch. Signed-off-by: Dandan Bi <dandan.bi@intel.com>
* MdeModulePkg HobPrintLib: Add Guid to Guids section.Aaron Pop2024-11-221-0/+1
| | | | | | | | gEfiHobMemoryAllocModuleGuid is referenced in the HobPrintLib, but it is not defined in the INF file, causing an unresolved external error when the module is consumed by code. Signed-off-by: Aaron Pop <aaronpop@microsoft.com>
* MedModulePkg/DxeIplPeim: Fix pagetable protection region in 5 level pagingNing Feng2024-11-173-31/+37
| | | | | | | | | | | REF:https://bugzilla.tianocore.org/show_bug.cgi?id=4873 Currently the function does not cover the 5 level paging case. it will casued pagetable protection region set incorrectly. This patch do the enhancemant and with the patch protection region has been set correctly. Signed-off-by: Ning Feng <ning.feng@intel.com> Cc: Ray Ni <ray.ni@intel.com>
* MdePkg: MdeLibs.dsc.inc: Apply StackCheckLibNull to All Module TypesOliver Smith-Denny2024-11-131-4/+0
| | | | | | | | | | | | | | | Now that the ResetVectors are USER_DEFINED modules, they will not be linked against StackCheckLibNull, which were the only modules causing issues. So, we can now remove the kludge we had before and the requirement for every DSC to include StackCheckLibNull for SEC modules and just apply StackCheckLibNull globally. This also changes every DSC to drop the SEC definition of StackCheckLibNull. Continuous-integration-options: PatchCheck.ignore-multi-package Signed-off-by: Oliver Smith-Denny <osde@linux.microsoft.com>
* MdeModulePkg: SataControllerSupported checks DevicePath ProtocolPaul Chang2024-11-013-3/+31
| | | | | | | | | | | | REF:https://bugzilla.tianocore.org/show_bug.cgi?id=4858 Ph52a PCIE to SATA card inserted on Intel MTL/ARL causes system hanged. Root cause of this issue is because Ph52a's driver only uses DevicePath protocol alone and EDK2 driver only uses PciIo protocol alone. Both drivers start and try to manage SATA controller. Signed-off-by: Paul Chang <paulchang@ami.com>
* MdeModulePkg: Adding support for authenticated variablenikhil p sheshagiri2024-10-302-49/+132
| | | | | | | | | | | | | | | | storage data format REF:https://bugzilla.tianocore.org/show_bug.cgi?id=4857 NVS needs to support both authenticated and non-authenticated header for NV region. PcdNvStoreDefaultValueBuffer can have variables with data format of the type Authenticated variable storage and this change provides the support to differentiate between the normal variable storage and authenticated variable storage for the hii database to consume and update the setup variables accordingly Signed-off-by: nikhil p sheshagiri <nikhil.p.sheshagiri@intel.com>
* MdeModulePkg: Added PPI support in UFS PEI driver.INDIA\kanagavels2024-10-286-30/+331
| | | | | | | | | REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4490 Added PPI support in UFS PEI driver to link the platform specific code as same as UFS DXE driver. Signed-off-by: Kanagavel S <kanagavels@ami.com>
* MdeModulePkg/TerminalDxe: Return success if device not support SetControlHua Ma2024-10-281-0/+3
| | | | | | | Some serial device may not support SetControl. Ignore the error from SetControl if EFI_UNSUPPORTED is return. Signed-off-by: Hua Ma <hua.ma@intel.com>
* MdeModulePkg/PciHostBridgeDxe: Add MemoryFence after write.joe2024-10-251-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On AARCH64, there is no ordering guarantee between configuration space (ECAM) writes and memory space reads (MMIO). ARM AMBA CHI only guarantees ordering for reads and writes within a single address region, however, on some systems MMIO and ECAM may be split into separateaddress regions. A problem may arise when an ECAM write is issued a completion before a subsequent MMIO read is issued and receives a completion. For example, a typical PCI software flow is the following: 1. ECAM write to device command register to enable memory space 2. MMIO read from device memory space for which access was enabled in step 1. There is no guarantee that step 2. will not begin before the completion of step 1. on systems where ECAM/MMIO are specified as separate address regions, even if both spaces have the memory attributes device-nGnRnE. - Add a barrier after the final PCI Configuration space write in RootBridgeIoPciAccess. Configuration space reads should not have side-efects. - When configuration space is strongly ordered, this ensures that program execution cannot continue until the completion is received for the previous Cfg-Write, which may have side-effects. - Risk of reading a "write-only" register and causing a CA which leaves the device unresponsive. The expectation based on the PCI Base Spec v6.1 section 7.4 is that all PCI Spec-defined registers will be readable, however, there may exist design-specific registers that fall into this category. Signed-off-by: Aaron Pop <aaronpop@microsoft.com> Co-authored-by: Ard Biesheuvel <ardb@kernel.org>
* MdeModulePkg UsbNetwork: Use USB class definition from MdePkgOleg Ilyasov2024-10-224-7/+3
| | | | | | | | | - Class specific types for interface and endpoint are generic - Definitions are in IndustryStandard/Usb.h - Remove type redefinitions - Update references to the descriptor types Signed-off-by: Oleg Ilyasov <olegi@ami.com>
* MdeModulePkg: Replace right bit shift operator with RShiftU64Jeremy Compostella2024-10-171-1/+1
| | | | | | | Instead of using bit shift operations, it is preferable to use BaseLib bit shift functions to prevent compilers from inserting intrinsics. Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
* MdeModulePkg: Fix PeiAllocatePages() corner caseJeremy Compostella2024-10-171-15/+22
| | | | | | | | | | | | | | | | | | | | | | I recently ran into an AllocatePages() hang. It turns out that AllocatePages() does not account for the Memory Allocation HOB when it makes the decision of allocating out of free memory. Here is the scenario: FreeMemoryTop - 0x71C03000 FreeMemoryBottom - 0x71BDBFD8 => We have 159,784 bytes left => ~39.0098 pages left. We attempt to allocate 39 pages. There are enough pages left but allocating those pages requires to allocate a Memory Allocation HOB which needs an extra 48 bytes. But once the pages are allocated, there are only 40 bytes left. In addition to taking into account the Memory Allocation HOB size, this commit reverses the condition to keep it simple. Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
* MdeModulePkg: PeiMain: Updated dispatcher for delayed dispatchKun Qin2024-10-171-1/+4
| | | | | | | | | | | | | | | | | REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4496 This change adds a check for PEI dispatcher to continue dispatching when there are still pending delayed dispatch requests, to be compatible with newly integrated Delayed Dispatcher PPI interface. Cc: Jian J Wang <jian.j.wang@intel.com> Cc: Liming Gao <gaoliming@byosoft.com.cn> Cc: Dandan Bi <dandan.bi@intel.com> Cc: Debkumar De <debkumar.de@intel.com> Cc: Catharine West <catharine.west@intel.com> Co-authored-by: John Schock <joschock@microsoft.com> Signed-off-by: Kun Qin <kuqin12@gmail.com>
* MdeModulePkg: PeiMain: Introduce implementation of delayed dispatchKun Qin2024-10-176-1/+540
| | | | | | | | | | | | | | | | | | | | REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4496 This change adds the implementation that fits the needs and description of PI spec defined Delayed Dispatch PPI in Pei Core. The PPI would allow minimal delay for registered callbacks. As well as allowing other functions to wait for GUIDed delayed dispatch callbacks. Cc: Jian J Wang <jian.j.wang@intel.com> Cc: Dandan Bi <dandan.bi@intel.com> Cc: Liming Gao <gaoliming@byosoft.com.cn> Cc: Debkumar De <debkumar.de@intel.com> Cc: Catharine West <catharine.west@intel.com> Co-authored-by: Mike Turner <mikeyt@pobox.com> Co-authored-by: Sachin Ganesh <sachinganesh@ami.com> Signed-off-by: Kun Qin <kuqin12@gmail.com>
* MdeModulePkg/UefiBootManagerLib: Build proper SD/MMC boot descriptionsMario Bălănică2024-10-032-2/+239
| | | | | | | | | | | | This generates boot descriptions for SD/MMC devices in the form of: - "UEFI SanDisk SC128 2A2B1E4F SD Device" - "UEFI Samsung BJTD4R 7AB3A8DE eMMC User Data" The manufacturer ID tables are a best-effort, collected from various places and personal testing. They're not complete and may be inaccurate for rebranded cards. Signed-off-by: Mario Bălănică <mariobalanica02@gmail.com>
* MdeModulePkg/VariablePolicyLib: Fix extraneous parenthesesMike Beaton2024-09-271-1/+1
| | | | | | | | | | Without this change we get: error: equality comparison with extraneous parentheses when building on XCODE5. Signed-off-by: Mike Beaton <mjsbeaton@gmail.com>
* MdeModulePkg/TerminalDxe: Add VTUTF8 to Putty function key mapPhil Noh2024-09-182-6/+9
| | | | | | | | | | REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4848 This patch is to support VTUTF8 type for Putty function key map. In Putty, it is required for translating a stream of Unicode characters for function keys on UTF8 correctly. Signed-off-by: Phil Noh <Phil.Noh@amd.com>
* MdeModulePkg: Fix buffer overflow in MergeMemoryMapKen Lautner2024-09-131-2/+5
| | | | | | | | Check that the next map entry is valid before dereferencing to merge the guard pages. If the final entry is at the end of a page with no valid page following it, then this can cause an access violation. Signed-off-by: Kenneth Lautner <kenlautner3@gmail.com>
* MdeModulePkg: Add StackCheckLibOliver Smith-Denny2024-09-131-6/+4
| | | | | | | Remove the old stack check lib now that MdeLibs.inc includes the new one. Signed-off-by: Oliver Smith-Denny <osde@linux.microsoft.com>
* MdePkg: Move CompilerIntrinsicsLib from ArmPkgOliver Smith-Denny2024-09-121-7/+0
| | | | | | | | | | | | | | | | | | | | As per the emailed RFC in https://edk2.groups.io/g/devel/topic/rfc_move/107675828, this patch moves CompilerIntrinsicsLib from ArmPkg to MdePkg as this library provides compiler intrinsics, which are industry standard. This aligns with the goal of integrating ArmPkg into existing packages: https://bugzilla.tianocore.org/show_bug.cgi?id=4121. The newly placed CompilerIntrinsicsLib is added to MdeLibs.dsc.inc as every DSC that builds ARM/AARCH64 needs this library added. The old location is removed from every DSC in edk2 in this commit also to not break bisectability with minimal hoop jumping. Continuous-integration-options: PatchCheck.ignore-multi-package Signed-off-by: Oliver Smith-Denny <osde@linux.microsoft.com>
* MdeModulePkg: Enable Data Terminal at end of serialKen Lautner2024-09-121-0/+4
| | | | | | | | | When a Serial device resets, the Modem Control Register Data Terminal Ready and Request to Send need to be cleared also. Otherwise the registers will be left in their previous state, and the connected device will not be able to transmit data. Signed-off-by: Kenneth Lautner <kenlautner3@gmail.com>
* MdeModulePkg/DxeCapsuleLibFmp: Check BootService Status to Use ESRT CacheJason1 Lin2024-09-113-31/+23
| | | | | | | | | | | | | | | | | - In c36414b131dfd0a1ca51f10f87a18955bc110ff2 change, it was introduced the ReadyToBoot event check to prevent the boot service got called in runtime to cause the issue. - In this patch introduced the ExitBootService event to replace it. It would be better to base on the BootService status to decide the source of ESRT table. - Based on the BootService availability to decide, - Exit : Use cache ESRT table in IF-condition - Not Exit: Use boot service to locate protocol in ELSE-condition Co-authored-by: Dakota Chiang <dakota.chiang@intel.com> Signed-off-by: Jason1 Lin <jason1.lin@intel.com>
* MdeModulePkg/DxeCapsuleLibFmp: Change the Event Notify to Cache ESRT TableJason1 Lin2024-09-111-8/+52
| | | | | | | | | | | | | | | | | | | REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4831 In this patch introduced the below changes, [1] Add the event of system resource table installed callback. - Register the event in DxeRuntimeCapsuleLibConstructor () - Unregister the event in DxeRuntimeCapsuleLibDestructor () [2] Migrate the event to update the module variable to cache ESRT table from ReadyToBoot to system resource table installed. [3] Add the condition to free the pool of buffer when the "mEsrtTable" is not NULL. Co-authored-by: Dakota Chiang <dakota.chiang@intel.com> Signed-off-by: Jason1 Lin <jason1.lin@intel.com>
* MdeModulePkg/VariableRuntimeDxe: Fix VariablePolicyProtocol PRODUCESMike Beaton2024-09-111-1/+1
| | | | | | | | | | | | If we search the codebase for &gEdkiiVariablePolicyProtocolGuid we can find two drivers which install this policy: VariableRuntimeDxe (installed in VariableDxe.c) and VariableSmmRuntimeDxe (installed in VariablePolicySmmDxe.c). The .inf file for VariableRuntimeDxe incorrectly lists the protocol as CONSUMES in the comment, so change this to PRODUCES. Signed-off-by: Mike Beaton <mjsbeaton@gmail.com>
* MdeModulePkg/Core/Pei: Add error handling for Section Lengthragavarshinib2024-09-061-0/+12
| | | | | | | | | This patch breaks the section processing loop if an invalid section with zero SectionLength is encountered. Signed-off-by: Ragavarshini B <ragavarshinib@ami.com> Cc: Liming Gao <gaoliming@byosoft.com.cn> Cc: Dhanaraj V <vdhanaraj@ami.com> Cc: Sachin Ganesh <sachinganesh@ami.com>
* MdeModulePkg: UefiBootManagerLib: Update assert conditionKen Lautner2024-09-051-0/+6
| | | | | | | | | | In BmFindBootOptionInVariable() we prevent passing a NULL pointer to EfiBootManagerFindLoadOption(). However, it can accept a NULL pointer as the second argument as long as count is zero. This change updates the assert condtion to only assert if the pointer is NULL and the count is non-zero. Signed-off-by: Kenneth Lautner <kenlautner3@gmail.com>
* XhciDxe: Fail the start of malfunctioning XHCI controllersRebecca Cran2024-09-053-15/+45
| | | | | | Add missing error checking for malfunctioning XHCI controllers. Signed-off-by: Rebecca Cran <rebecca@os.amperecomputing.com>
* MdeModulePkg: Fix redundant call to RestoreTpl()Ken Lautner2024-09-042-7/+9
| | | | | | | | | | | | Comments out a redundant call to RestoreTpl(). While this does not technically violate spec on raise/restore TPL, TPL should already be at the specified level. This extra call introduces an asymmetry between RaiseTpl and RestoreTpl calls, which makes analysis of TPL correctness more difficult and hampers certain non-standard TPL usages that some platforms require. Additionally, the two TPL variables were renamed to provide context for each of them. Signed-off-by: Kenneth Lautner <kenlautner3@gmail.com>