summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2025-06-25ArmPkg: StMM: Use x24 register to store stack addressMohamed Gamal Morsy1-4/+4
Now that the use of 18 registers for FF-A is supported. Registers from x0-x17 can be used by FF-A to return call results. StMM also uses registers x19-x23 to store SPMC boot information. Use the x24 register to store the stack address instead of x12 to avoid it being clobbered by FF-A calls. Signed-off-by: Mohamed Gamal Morsy <mohamed.morsy@arm.com>
2025-06-25MdeModulePkg/UefiBootManagerLib: Fix crash when no load options are foundJeff Brasen1-0/+4
Do not attempt to sort the load options when there are none. Signed-off-by: Jeff Brasen <jbrasen@nvidia.com>
2025-06-25BaseTools/PatchCheck.py: verify commit message lists package(s)Leif Lindholm1-0/+9
Verify that the subject line matches the basic {Package}[,Package]: format _or_ the Revert "<subject of commit to revert>" format. Non-package top-level directories are treated as packages. Suggested-by: Ard Biesheuvel <ardb@kernel.org> Signed-off-by: Leif Lindholm <leif.lindholm@oss.qualcomm.com>
2025-06-25BaseTools/PatchCheck.py: pass list of packages to CommitMessageCheckLeif Lindholm1-4/+5
In order to enable subject line format compliance checking in following patches, pass through a list of modified packages to CommitMessageCheck. Signed-off-by: Leif Lindholm <leif.lindholm@oss.qualcomm.com>
2025-06-25BaseTools/PatchCheck.py: make get_parent_packages return directory namesLeif Lindholm1-1/+1
The get_parent_packages function in CheckGitCommits returns the path of non-package directories, but in fact returns the path of the .dec file for actual packages. Align the handling to be more consistent and return only directory names, regarding of how it was found. Signed-off-by: Leif Lindholm <leif.lindholm@oss.qualcomm.com>
2025-06-25MdeModulePkg/SmmCore: Modify check for Mm Communicate Buffer without dataINDIA\sachinganesh1-1/+1
Modify communication buffer size check to take into consideration that buffer might not have data. Signed-off-by: Sachin Ganesh <sachinganesh@ami.com>
2025-06-25NetworkPkg/WifiConnectionManager: net list scan uiZachary Clark-Williams1-0/+5
Commit 7c204d7 changed the behavior of the WiFi Connection Manager. It no longer scans for available networks when the driver loads, because scanning during that time disrupts connections for other features. To avoid blocking other processes, the driver should initiate a scan only when appropriate. This update introduces a one-time scan that occurs when the user opens the network settings page in the UI, enables WiFi, and then opens the network list page to view available networks. Signed-off-by: Zachary Clark-Williams <zachary.clark-williams@intel.com>
2025-06-25UefiPayloadPkg: Add missing VirtNorFlashDeviceLib instanceYang Gang1-0/+1
Signed-off-by: Yang Gang <yanggang@byosoft.com.cn>
2025-06-25MdeModulePkg/UfsPassThruDxe: Correct size in UfsHc->FreeBuffer callRyan Wong1-2/+2
UfsHc->FreeBuffer accepts page numbers rather than bytes as its size argument. Fix two positions where wrong size were passed. Signed-off-by: Ryan Wong <colorfulshark@gmail.com>
2025-06-25BaseTools: Declare $(DEBUG_DIR)/<module>.efi outputJean-Philippe Brucker1-0/+1
$(DEBUG_DIR)/<M>.efi is generated by the recipe of $(OUTPUT_DIR)/<M>.efi: the .efi file is generated and then copied into $(DEBUG_DIR). At the moment the generate GNUmakefile does not declare the dependency between these two files, which can be a problem because $(FFS_OUTPUT_DIR)/<M>.offset depends on $(DEBUG_DIR)/<M>.efi. Normally $(DEBUG_DIR)/<M>.efi is generated first and there is no problem, but when an external tool builds edk2 from a Makefile, like OP-TEE build does for instance, the parallel '-j' flag passed to Make is inherited by the edk2 GNUmakefile from the environment. As a result Make might try to build the $(FFS_OUTPUT_DIR)/<M>.offset target in parallel and fail to find the .efi file: make[1]: *** No rule to make target 'Build/ArmVirtQemu-AARCH64/DEBUG_GCC5/AARCH64/NetworkPkg/VlanConfigDxe/VlanConfigDxe/DEBUG/VlanConfigDxe.efi', needed by 'Build/ArmVirtQemu-AARCH64/DEBUG_GCC5/FV/Ffs/E4F61863-FE2C-4b56-A8F4-08519BC439DFVlanConfigDxe/VlanConfigDxe.offset'. Stop. If we declare the $(DEBUG_DIR) file as output of this rule, then the generated GNUmakefile will contain the right dependency declaration: $(DEBUG_DIR)/VlanConfigDxe.efi: $(OUTPUT_DIR)/VlanConfigDxe.efi and the parallel build will succeed. Signed-off-by: Jean-Philippe Brucker <jean-philippe@linaro.org>
2025-06-25OvmfPkg/RiscVVirt: Add support for Capsule Firmware UpgradeTuan Phan13-1/+1783
This patch introduces support for firmware upgrades using the FMP capsule update mechanism. Signed-off-by: Tuan Phan <tphan@ventanamicro.com>
2025-06-25ArmVirtPkg: Link all targets to the new VirtNorFlashDeviceLibTuan Phan3-0/+3
Since VirtNorFlashDxe now depends on the new VirtNorFlashDeviceLib, all related targets should be linked against this library. Signed-off-by: Tuan Phan <tphan@ventanamicro.com>
2025-06-25OvmfPkg/VirtNorFlash: Move low level NOR flash functions into libraryTuan Phan11-615/+741
This patch refactors low level NOR flash functions into a dedicated library to enable reuse, particularly for supporting the firmware upgrade feature. Signed-off-by: Tuan Phan <tphan@ventanamicro.com>
2025-06-25OvmfPkg/VirtNorFlash: Refactor TPL handling outside NOR flash functionsTuan Phan2-31/+34
To facilitate moving the NOR flash functions into a separate library, TPL handling is now delegated to the caller. Signed-off-by: Tuan Phan <tphan@ventanamicro.com>
2025-06-25WifiConnectionManagerDxe: clear timers not eventsZachary Clark-Williams1-2/+4
Replace timer eventclose with scan timerset in WifiConnectionManagerDxe. This change ensures that the driver sets and manages scan timers correctly without requiring a reload when the user enables WiFi and initiates a scan for available networks. By using scan timerset directly, the driver maintains consistent behavior across WiFi sessions and avoids redundant event handling. Signed-off-by: Zachary Clark-Williams <zachary.clark-williams@intel.com>
2025-06-25WifiConnectionManagerDxe: HII missing EAP TLS caseZachary Clark-Williams1-0/+1
Add missing EAP-TLS option to HII configuration Implemented support for EAP-TLS authentication in the WifiConnectionManagerDxe HII interface. This change ensures that the EAP-TLS option is available for selection in the UI, addressing cases where it was previously missing. Signed-off-by: Zachary Clark-Williams <Zachary.Clark-Williams@intel.com>
2025-06-24NetworkPkg: Use Library/GoogleTestLib.hMichael D Kinney5-5/+5
Update unit tests to use GoogleTestLib.h instead of gtest.h so the edk2 extensions for google tests are always available. Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
2025-06-24MdePkg: Use Library/GoogleTestLib.hMichael D Kinney5-5/+5
Update unit tests to use GoogleTestLib.h instead of gtest.h so the edk2 extensions for google tests are always available. Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
2025-06-24DynamicTablesPkg: Use Library/GoogleTestLib.hMichael D Kinney2-4/+0
Update unit tests to use GoogleTestLib.h instead of gtest.h so the edk2 extensions for google tests are always available. Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
2025-06-24BaseTools/GetFw: Skip R_X86_64_NONE relocationsMichael D Kinney1-0/+12
Building .aslc files in a module for host-based unit testing in Linux/GCC X64 environments may introduce relocations for a symbol in a shared library from lcov or asan. Update logic to not generate an error message and exit if the symbol is unknown but the relocation type is R_X86_64_NONE. Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
2025-06-24BaseTools/HostBasedUnitTestRunner: lcov ignore mismatch errorsMichael D Kinney1-5/+5
Ignore mismatch errors for lcov 2.x in all locations that lcov is run. When building more complex unit tests, these mismatch errors are showing up in different phases of the code coverage collection. Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
2025-06-24UnitTestFrameworkPkg: Add -pie to ASLCC_FLAGS for unit testsMichael D Kinney1-0/+1
For Linux/GCC host-based unit tests, -fno-pei is added to CC_FLAGS and this causes builds of .aslc/.act files for ACPI tables used in host-based unit tests to fail. Add -fpie to ASLCC_FLAGS in UnitTestFrameworkPkgHost.dsc.inc to override this CC_FLAGS setting and resolve the build issue. Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
2025-06-24UnitTestFrameworkPkg/GoogleTestLib: Enhance unit test NULL checksMichael D Kinney1-0/+9
gtest.h uses standard includes that define NULL to __null. This is different that the C++ standard that uses nullptr. Redefine NULL in GoogleTestLib.h to use C++ form of nullptr. This allows NULL to be used in checks and mocks without explicit typecasts. Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
2025-06-24Revert "UefiCpuPkg/PiSmmCpuDxeSmm: Add sync barrier before BSP invokes ..."Leif Lindholm1-32/+12
PR #11210 introduced Commit bbee92c9af59, ("UefiCpuPkg/PiSmmCpuDxeSmm: Add sync barrier before BSP invokes SmmCoreEntry") which causes a boot failure in OVMF_X64_MMDEBUG targets, breaking upstream CI. Revert it. Signed-off-by: Leif Lindholm <leif.lindholm@oss.qualcomm.com>
2025-06-20UefiCpuPkg/PiSmmCpuDxeSmm: Add sync barrier before BSP invokes SmmCoreEntryWei6 Xu1-12/+32
This patch introduces a synchronization point between the BSP and APs to ensure all APs have entered their SMM wait-loop (while (TRUE) in APHandler ()) before the BSP calls into the SMI handler logic via gSmmCpuPrivate ->SmmCoreEntry(). Previously, the BSP would invoke ReleaseAllAPs() and immediately proceed to SmmCoreEntry() without confirming whether APs had reached the stable waiting state. If SmmStartupThisAp() was called inside the SMI handler shortly after ReleaseAllAPs(), it might lead to a race condition: APs are issued two consecutive wait signals (SmmCpuSyncWaitForBsp()). BSP sends two consecutive releases (ReleaseAllAPs() + SmmStartupThisAp()) If an AP has not yet responded to the first release, the second release may overwrite the semaphore state, and the AP might miss the notification, causing it to hang or behave unpredictably. To address this: A SmmCpuSyncWaitForAPs() is added in BSP after mmCpuPlatformHookBeforeMmiHandler() and before entering SmmCoreEntry(). A matching SmmCpuSyncReleaseBsp() is added in AP immediately after its own SmmCpuPlatformHookBeforeMmiHandler() This ensures that BSP does not enter SMI handler logic or dispatch any AP-related requests before all APs are confirmed to be idle and ready. Debug sync point markers (e.g., /// #6, #7) are updated accordingly. This change eliminates a subtle but critical race condition in multi-processor/multi-socket systems during SMM entry and improves overall synchronization safety. Signed-off-by: Wei6 Xu <wei6.xu@intel.com>
2025-06-20OvmfPkg/TdxDxe: Support 5-level paging for ResetVectorCeping Sun2-1/+20
Since OVMF already supports 5-level paging, the ResetVector needs to handle the case. Cc: Gerd Hoffmann <kraxel@redhat.com> Cc: Min Xu <min.m.xu@intel.com> Cc: Jiewen Yao <jiewen.yao@intel.com> Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> Signed-off-by: Ceping Sun <cepingx.sun@intel.com>
2025-06-20OvmfPkg: Add the ResetVector in TDX MailBoxCeping Sun6-10/+167
Base on ACPI 6.6 Multiprocessor Wakeup Structure, TDVF needs to provide a physical address of the ResetVector to OS. And it should allow the Multiprocessor Wakeup Mailbox to be reset in order to be used once again with a given AP. Signed-off-by: Ceping Sun <cepingx.sun@intel.com> Reviewed-by: Min Xu <min.m.xu@intel.com> Tested-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
2025-06-20OvmfPkg: Add the Test command in TDX MailBoxCeping Sun3-11/+19
Base on ACPI 6.6 MultiProcessor Wakeup Mailbox Structure, the new "Test" command is added. Also the "Sleep" command is not used in TDX Mailbox, it should be removed. Cc: Gerd Hoffmann <kraxel@redhat.com> Cc: Min Xu <min.m.xu@intel.com> Cc: Jiewen Yao <jiewen.yao@intel.com> Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> Signed-off-by: Ceping Sun <cepingx.sun@intel.com>
2025-06-20OvmfPkg/WorkArea.h: Add MAILBOX_GDTCeping Sun1-0/+7
Add the GDT table to swicth paging mode when the OS jumps to the ResetVector in Mailbox. Signed-off-by: Ceping Sun <cepingx.sun@intel.com> Reviewed-by: Min Xu <min.m.xu@intel.com> Tested-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
2025-06-20MdePkg/Acpi66.h: Add ACPI 6.6 headerCeping Sun2-1/+3364
Create Acpi66.h, which is copied from Acpi65.h, and make the following changes: 1. Replace all occurences of "6.5/6_5" with "6.6/6_6". 2. Add "ResetVector" in Multiprocessor Wakeup Structure. 3. Add "Test" command for Multiprocessor Wakeup Mailbox. 4. Make Acpi66.h the latest ACPI definitions that Acpi.h contains. Cc: Michael D Kinney <michael.d.kinney@intel.com> Cc: Liming Gao <gaoliming@byosoft.com.cn> Signed-off-by: Ceping Sun <cepingx.sun@intel.com>
2025-06-19DynamicTablesPkg: Enhance SPCR support for interrupt and terminal typesAbdul Lateef Attar3-0/+270
Introduce optional configuration objects to specify interrupt and terminal types. When the platform supplies this information, the SPCR table is updated to reflect the provided values. If the interrupt type is 8259, the corresponding IRQ number is set in the SPCR table. Signed-off-by: Abdul Lateef Attar <AbdulLateef.Attar@amd.com>
2025-06-19OvmfPkg: README: Add documentation for Standalone MM on OVMFKun Qin1-0/+41
This update introduces a new section in the README file, detailing the design considerations of the recently onboarded Standalone MM platform in OVMF. The section is intended for future reference and should be revised accordingly if updates to the Standalone MM framework render these limitations obsolete. Signed-off-by: Kun Qin <kun.qin@microsoft.com>
2025-06-19OvmfPkg: PlatformCI: Ovmf x64 platform with Standalone MMKun Qin2-0/+30
This change expands the CI pipeline build to a new platform type with Standalone MM support to ensure the incoming change works with Standalone MM environment on x64 platforms. Signed-off-by: Kun Qin <kun.qin@microsoft.com>
2025-06-19OvmfPkg: OvmfPkgX64: Platform changes for Standalone MM supportKun Qin3-9/+138
This change adds a build flag in the platform DSC file to support standalone MM build on OVMF platform. The new standalone MM platform will not support S3 boot and thus no SMM lock box related components are included. Signed-off-by: Kun Qin <kun.qin@microsoft.com>
2025-06-19OvmfPkg: MmPlatformHobProducerLibOvmf: Ovmf specific HOB creators for StmmKun Qin2-0/+182
This change introduces a platform specific HOB producor library to meet the expectation of Standalone MM core. Signed-off-by: Kun Qin <kun.qin@microsoft.com>
2025-06-19OvmfPkg: MemEncryptSevLib: Add Null instanceKun Qin2-0/+273
This change introduces a Null instance of MemEncryptSevLib to enable platforms that do not have confidential compute support. Signed-off-by: Kun Qin <kun.qin@microsoft.com>
2025-06-19OvmfPkg: QemuFlashFvbServices: Introduce Standalone MM instanceKun Qin2-0/+194
This update introduces the implementation of QemuFlashFvbServices to support operation with Standalone MM backed platforms. Signed-off-by: Kun Qin <kun.qin@microsoft.com>
2025-06-19OvmfPkg: QemuFlashFvbServicesRuntimeDxe: Abstract out SMM/DXE functionsKun Qin4-5/+30
This update refactors QemuFlashFvbServicesRuntimeDxe to abstract out direct calls to SMM and DXE specific functions. Specifically, dynamic PCD usage and gBS references have been moved to SMM specific files. The constructor functionality has been relocated to a common implementation and is invoked from their respective entry points. These changes lay the groundwork for supporting a Standalone MM-based solution in the future. Signed-off-by: Kun Qin <kun.qin@microsoft.com>
2025-06-19OvmfPkg: SmmControl2Dxe: Avoid double initializationKun Qin3-7/+14
This change adds a build time PCD to prevent the SmmControl2Dxe driver from re-initialization the MM related registers. This register is to be used when MmControlPei is already executed in PEI phase and completed setting up the MM control registers. Signed-off-by: Kun Qin <kun.qin@microsoft.com>
2025-06-19OvmfPkg: MmControlPei: Introduce MM control PPI to OVMFKun Qin2-0/+341
This change adds a PEIM that produces gEfiPeiMmControlPpiGuid to be used in PEI phase, i.e. boot strap MM foundation. This flow is largely in assemblence of MM control DXE driver and used the `SmiFeatures.*` files from the DXE drivers as the common resources. Signed-off-by: Kun Qin <kun.qin@microsoft.com>
2025-06-19OvmfPkg: StandaloneMmCpuFeaturesLib: Introduce SmmCpuFeaturesLib for OvmfKun Qin3-1/+119
This change adds the implementation of SmmCpuFeaturesLib for Ovmf to operate with Standalone MM supported platforms. Signed-off-by: Kun Qin <kun.qin@microsoft.com>
2025-06-19OvmfPkg: SmmCpuFeaturesLib: Abstract out SMM specific implementationsKun Qin3-198/+251
This update refactors the existing SmmCpuFeaturesLib to eliminate direct calls to SMM-specific functions. In particular, the constructor has been relocated to traditional MM- specific C files, utilizing a common entry point. Furthermore, several implementation-specific functions have been modularized into its respective C files. These changes lay the groundwork for supporting a Standalone MM-based solution in the future. Signed-off-by: Kun Qin <kun.qin@microsoft.com>
2025-06-19OvmfPkg: PlatformSecureLib: Support Standalone MM core and driversKun Qin1-1/+1
This change extends the library to support MM_CORE_STANDALONE and MM_STANDALONE for usage in MM standalone environment. Signed-off-by: Kun Qin <kun.qin@microsoft.com>
2025-06-19OvmfPkg: PlatformDebugLibIoPort: Support Standalone MM core and driversKun Qin1-1/+1
This change extends the library to support MM_CORE_STANDALONE and MM_STANDALONE for usage in MM standalone environment. Signed-off-by: Kun Qin <kun.qin@microsoft.com>
2025-06-19OvmfPkg: DxeAcpiTimerLib: Support Standalone MM core and driversKun Qin1-1/+1
This change extends the library to support MM_CORE_STANDALONE and MM_STANDALONE for usage in MM standalone environment. Signed-off-by: Kun Qin <kun.qin@microsoft.com>
2025-06-19OvmfPkg: MemDebugLogLibNull: Support Standalone MM core and driversKun Qin1-1/+1
This change extends the supported types to Standalone MM and Standalone MM Core module types to support potential MM usage. Signed-off-by: Kun Qin <kun.qin@microsoft.com>
2025-06-19StandaloneMmPkg: StandaloneMmIplPei: Use MM access to open the regionsKun Qin3-2/+81
Current MM IPL in PEI phase does not open the MMRAM regions through MM access PPI. This is causing some platforms like OVMF reading all `0xFF`s when trying to relocate the Standalone MM core. This change opens all the MMRAM regions provided by MM access PPI and closes + locks the regions after initial MM foundation setup, when MM Access PPI is available. Platforms that require MM access PPI can inject depex through libraries. Signed-off-by: Kun Qin <kun.qin@microsoft.com>
2025-06-19StandaloneMmPkg: StandaloneMmIplPei: Prevent Freeing Zero PagesKun Qin1-1/+4
There could be scenarios where the HOB producer does not create any HOBs. In such cases, the buffer intended to be freed will have zero pages. This update addresses the issue that could cause assertions during runtime by ensuring that buffers with zero pages are not freed. Signed-off-by: Kun Qin <kun.qin@microsoft.com>
2025-06-16OvmfPkg: Update README with new 'TLS Auth Configuration'Rebecca Cran1-1/+1
'Tls Auth Configuration' is now 'TLS Auth Configuration'. Update README to match. Signed-off-by: Rebecca Cran <rebecca@bsdio.com>
2025-06-16NetworkPkg: Change 'Tls' to 'TLS'Rebecca Cran1-3/+3
Sicne it's a user-visible string, change 'Tls' to 'TLS', which is more correct. Signed-off-by: Rebecca Cran <rebecca@bsdio.com>