summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* pip: update edk2-pytool-extensions requirementdependabot/pip/edk2-pytool-extensions-approx-eq-0.28.3dependabot[bot]28 hours1-1/+1
| | | | | | | | | | | | | Updates the requirements on [edk2-pytool-extensions](https://github.com/tianocore/edk2-pytool-extensions) to permit the latest version. - [Release notes](https://github.com/tianocore/edk2-pytool-extensions/releases) - [Commits](https://github.com/tianocore/edk2-pytool-extensions/compare/v0.27.10...v0.28.3) --- updated-dependencies: - dependency-name: edk2-pytool-extensions dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com>
* MdeModulePkg/HiiDatabaseDxe: Remove buffer error for string default.edk2-stable202502Longhaox Lee40 hours1-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>
* Revert "FatPkg: Validate Reserved FAT Entries on Volume Open"Oliver Smith-Denny8 days6-147/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 58766a472932c485d41163b1746fb1d9e7984f07. In edk2 commit 58766a4, validation of the two reserved FAT entries was added. However, it also checked the return of FatGetFatEntry to MAX_UINT32, which is what FatGetFatEntry returns when it encounters an error, e.g. not being able to read the disk. However, MAX_UINT32 is also a valid value for the reserved FAT entries and under some conditions these will be returned in the success case. A FAT volume formatted with these valid values of the reserved FAT entries will fail to boot an OS because the opening of the volume will fail. However, the reason FatGetFatEntry returns MAX_UINT32 is that most other uses of the function are comparing it against the END_OF_CHAIN mark, which MAX_UINT32 will trip and those functions will fail out. Because this is a critical bug that can prevent OS booting and the bug the original commit was solving was accounting for a bad FAT filesystem formatting tool, this commit is reverted for now. Future work will clean up FatGetFatEntry so that it returns an EFI_STATUS, but that involves more work and this bug needs to be resolved in the meantime. Signed-off-by: Oliver Smith-Denny <osde@microsoft.com>
* ArmPkg: ArmFfaStandaloneMmLib: Fix non-FFA pathKun Qin11 days1-1/+18
| | | | | | | | | | ArmFfaLibCommonInit will return EFI_UNSUPPORTED when there is no FFA supported on the platform. This is expected behavior. However, the return of error code will incur program asserts. This change fixed the non-FFA path for the Standalone MM instance. Signed-off-by: Kun Qin <kun.qin@microsoft.com>
* MdePkg/DynamicStackCookieEntryPointLib: Drop execute-in-place versionsArd Biesheuvel11 days8-297/+6
| | | | | | | | | | | | | | SEC, PEI_CORE and PEIM type modules generally execute in place from memory that is not writable. This means that it is not generally possible to use an entrypoint implementation that stores a dynamically generated stack cookie into a global variable. For PEIMs in particular, there may be other options, such as a DEPEX on the permanent memory PPI, but the current dynamic implementations of the stack checking library entrypoints for PEI_CORE and PEIM modules must not be used as-is. So remove them, and update the readme accordingly. Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
* MdePkg/DynamicStackCookieEntryPointLib: Remove unused filesArd Biesheuvel11 days3-162/+0
| | | | | | | Remove some source files that were part of an earlier incarnation of DynamicStackCookieEntryPointLib but are no longer actually in use. Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
* UefiPayloadPkg: Add StackCheckLib to fix FIT build issueAjan Zhong11 days1-0/+1
| | | | | | | | | | Commit efbf5ed moves StackCheckLibStaticInit to StackCheckLib, and each SEC module has a dependency on StackCheckLib now. Add StackCheckLib in FitUniversalPayloadEntry.inf to fix build issue. Signed-off-by: Ajan Zhong <ajan.zhong@newfw.com>
* StandaloneMmPkg StandaloneMmCoreMemoryAllocationLib: Rename gMmstStar Zeng11 days1-12/+12
| | | | | | | | | | | | | | | | | StandaloneMmCoreMemoryAllocationLib.c and StandaloneMmServicesTableLib.c are both defining gMmst, StandaloneMmCoreMemoryAllocationLib will be linked to StandaloneMmCore directly, StandaloneMmServicesTableLib may be linked to StandaloneMmCore indirectly, when they are both linked to StandaloneMmCore, there will be "lld-link: error: duplicate symbol: gMmst" build error with Clang compiler. gMmst is declared in MmServicesTableLib.h and its definition should be owned by MmServicesTableLib. This patch renames gMmst in StandaloneMmCoreMemoryAllocationLib.c to mMemoryAllocationMmst to avoid this build error. Signed-off-by: Star Zeng <star.zeng@intel.com>
* Add MockVariablePolicyHelperLibKane Chen2025-02-074-0/+129
| | | | Signed-off-by: Kane Chen <kane.chen@microsoft.com>
* DynamicTablesPkg: Adds X64 support to SRAT table generatorAbdul Lateef Attar2025-02-079-119/+307
| | | | | | | | | | | Adds X64 support to the SRAT table generator library. Adds EX64ObjLocalApicX2ApicAffinity CM object to get platform configuration information. Update the parser with newly added CM object. Cc: Sami Mujawar <Sami.Mujawar@arm.com> Cc: Pierre Gondois <pierre.gondois@arm.com> Signed-off-by: Abdul Lateef Attar <AbdulLateef.Attar@amd.com>
* ArmVirtPkg: ArmVirtQemu: Add Custom Stack CookiesOliver Smith-Denny2025-02-076-10/+24
| | | | | | | | | | | | In order to provide an example and test out dynamic stack cookies in edk2, dynamic stack cookies are added to ArmVirtPkg platforms using ArmVirt.dsc.inc, per maintainer request. This does require moving the ArmVirt.dsc.inc to be included before MdeLibs.dsc.inc as the BaseTools does not expand all the Defines sections before processing. Signed-off-by: Oliver Smith-Denny <osde@linux.microsoft.com>
* ArmVirtPkg: Add RNDR Support to QEMUOliver Smith-Denny2025-02-071-1/+1
| | | | | | | In order to use dynamic stack cookies in ArmVirtQemu, we need RNDR support. This is added by using the neoverse-n2 cpu. Signed-off-by: Oliver Smith-Denny <osde@linux.microsoft.com>
* OvmfPkg: OvmfIA32X64: Add Custom Stack Cookie CheckingOliver Smith-Denny2025-02-071-2/+2
| | | | | | | | | To provide an example and test the code within edk2, this adds stack cookie checking to OvmfIA32X64, doing no checking for SEC and PEI_CORE modules, static cookies for PEIMs, and dynamic cookies for all other module types. Signed-off-by: Oliver Smith-Denny <osde@linux.microsoft.com>
* OvmfPkg: Add RDRAND Support To QEMUOliver Smith-Denny2025-02-071-0/+3
| | | | | | | | In order to use dynamic stack cookies, we need RDRAND support from QEMU, so this updates the QEMU launching code for OvmfPkg to include RDRAND support. Signed-off-by: Oliver Smith-Denny <osde@linux.microsoft.com>
* MdePkg: Add Dynamic Stack Cookie SupportOliver Smith-Denny2025-02-0731-74/+1779
| | | | | | | | | | | | | | Adds dynamic stack cookies in the form of copies of the entry point libraries that use shared logic to update stack cookies at runtime. This relies on RDRAND on IA32/X64 and RNDR on AARCH64 to get a random number to apply to the stack cookie on module entry point. This simplifies the logic a platform must do to include stack check functionality. Signed-off-by: Oliver Smith-Denny <osde@microsoft.com>
* MdePkg: Move StackCheckLibStaticInit to StackCheckLibOliver Smith-Denny2025-02-0734-16/+39
| | | | | | | | | | | | | | | 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>
* StandaloneMmPkg: Consume X64 StandaloneMmCoreEntryPoint From MdePkgOliver Smith-Denny2025-02-075-214/+1
| | | | | | | | Now that the X64 StandaloneMmCoreEntryPoint has been moved to MdePkg, it can be removed from StandaloneMmPkg and consumed from MdePpkg. Signed-off-by: Oliver Smith-Denny <osde@microsoft.com>
* MdePkg: Add StandaloneMmCoreEntryPoint for X64Oliver Smith-Denny2025-02-075-0/+200
| | | | | | | | | | | | | Moves StandaloneMmCoreEntryPoint for X64 to MdePkg to live with the other entry point libs. It does not move the ARM64 version, as this was just moved to ArmPkg due to its heavy coupling with ArmPkg code. This will need to be revisited when dynamic stack cookie support is added to ARM64 StMM. This commit just adds the library in MdePkg, a separate commit will remove it from StandaloneMmPkg to make it easier to consume. Signed-off-by: Oliver Smith-Denny <osde@microsoft.com>
* MdePkg: Add StackCheckLib Library ClassOliver Smith-Denny2025-02-076-0/+87
| | | | | | | | | | | StackCheckLib defines the interface between a compiler and the stack checking code. It is being converted from a NULL library class to an actual library class to make it easier to use for a platform and be easier to define the expected interface with a compiler, so if there is a compiler change it can be tracked and caught. Signed-off-by: Oliver Smith-Denny <osde@microsoft.com>
* MdePkg: Centralize RNDR Register DefinitionOliver Smith-Denny2025-02-075-9/+8
| | | | | | | | | | RNDR is a standard register defined in the ARM ARM for AARCH64. Move the definition from BaseRngLib to AArch64.h. Furthermore, move the inclusion of this register definition to the ARM specific header file. Signed-off-by: Oliver Smith-Denny <osde@microsoft.com>
* Maintainers.txt: adding Ard and Michael to stewards teamLeif Lindholm2025-02-061-0/+2
| | | | Signed-off-by: Leif Lindholm <leif.lindholm@oss.qualcomm.com>
* IntelFsp2WrapperPkg: Remove inactive maintainer emailChasel Chiu2025-02-061-1/+0
| | | | | | Remove inactive maintainer email Signed-off-by: Chasel Chiu <chasel.chiu@intel.com>
* SecurityPkg: Add RngPeiMichael Kubacki2025-02-064-0/+269
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | REF:https://github.com/tianocore/edk2/issues/10529 The `RngPei` PEIM can be used if RNG should be provided over a dynamic binary interface to other PEIMs on a platform. Tested with: - SecurityPkg CI - Verify RNG linked with RngLib is executed as expected - Verify random numbers are generated successfully with a valid RngLib Integration instructions: Use the `RngPei` module if a platform needs to produce `gEfiRngPpiGuid`. The platform should usually link a different `RngLib` instance to `RngPei` than other PEIMs that may use the RNG PPI produced since `RngPei` is responsible for producing the PPI. For example, a `RngLib` instance that uses the rdrand instruction may be linked against `RngPei` and a `RngLib` instance that uses the RNG PPI may be linked against other PEIMs. Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
* MdePkg: Add PeiRngLibMichael Kubacki2025-02-064-0/+283
| | | | | | | | | | | | | REF:https://github.com/tianocore/edk2/issues/10529 Adds a new PEI library instance for RngLib that uses the RNG services provided by the RNG PPI. This library instance will add a DEPEX on gEfiRngPpiGuid on modules it links against. It can be used to allow PEIMs to get RNG support over a dynamic interface. Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
* MdePkg: Add Random Number Generator (RNG) PPIMichael Kubacki2025-02-062-0/+30
| | | | | | | | | | REF:https://github.com/tianocore/edk2/issues/10529 Adds a new PPI that serves the same purpose as EFI_RNG_PROTOCOL in DXE. This PPI can be produced by a PEIM to provide a dynamic interface to RNG services in PEI. Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
* MdePkg: Split RNG protocol definitionsMichael Kubacki2025-02-062-137/+160
| | | | | | | | | | | | Move the structure definition to a common location that can be shared with the RNG PPI. Move the algorithms to a common header that can be referenced independent of the protocol. Include the algorithm header in the interface header since the algorithms are directly used in the interface and for compatibility with existing code. Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
* Maintainers.txt: add myself as PrmPkg maintainerAaron Li2025-02-061-0/+2
| | | | Signed-off-by: Aaron Li <aaron.li@intel.com>
* ReadMe.rst: reflect bugzilla migrationLeif Lindholm2025-02-041-12/+3
| | | | | | | | | | | | | | | We've migrated bugzilla bugs to github issues, so update the references to specific bugs called out in the top-level readme. Also delete the references to BZ2661 and BZ2668 which are both *closed*: https://github.com/tianocore/edk2/issues/8453 https://github.com/tianocore/edk2/issues/8458 And drop bugzilla.tianocore.org from "references". The server is no longer in use, and the certificate has expired, so stop telling people to go there. Signed-off-by: Leif Lindholm <leif.lindholm@oss.qualcomm.com>
* License-History.txt: Reflect bugzilla migrationMichael Kubacki2025-02-041-4/+4
| | | | | | | Update BZ links to corresponding GitHub issues links now that the BZ -> GitHub issue migration is complete. Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
* SignedCapsulePkg: make Doxygen interpret ASCII art as verbatim textRebecca Cran2025-02-041-2/+4
| | | | | | | | | By default, Doxygen tries to nicely format all text within doc blocks. Unfortunately this mangles ASCII art: add @verbatim statements to EdkiiSystemFmpCapsule.h to cause Doxygen to display the text as provided. Signed-off-by: Rebecca Cran <rebecca@bsdio.com>
* BaseTools: Add @verbatim as allowed Doxygen tagRebecca Cran2025-02-042-2/+2
| | | | | | | Per the discussion in https://github.com/tianocore/edk2/pull/6476, update Ecc code to allow the @verbatim Doxygen tag. Signed-off-by: Rebecca Cran <rebecca@bsdio.com>
* UefiPayloadPkg: Revert 4KB alignment of CLANGDWARF buildChasel Chiu2025-02-031-1/+0
| | | | | | | | | With the latest GccBase.lds combining with CLANG build, there is no need to enforce 4KB alignment of in UPL CLANGDWARF build. This reverts commit b3bfb8f22d43bd9577df85bec20e75eb2f659990. Signed-off-by: Chasel Chiu <chasel.chiu@intel.com>
* BaseTools: Add /DRIVER to CLANGPDB link flagsDionna Glaze2025-02-031-6/+6
| | | | | | This quiets the warning reported in Issue #10637. Signed-off-by: Dionna Glaze <dionnaglaze@google.com>
* MdePkg/IndustryStandard: add definitions for CXL CEDTYuquan Wang2025-02-033-0/+147
| | | | | | | This adds #defines and struct typedefs for the various structure types in the CXL Early Discovery Table (CEDT). Signed-off-by: Yuquan Wang <wangyuquan1236@phytium.com.cn>
* BaseTools/AutoGen: GenMake response file quotes stringsMichael D Kinney2025-02-021-3/+14
| | | | | | | | | | | If command line options are moved into a response file of a GCC family build, then the file path separators are converted from '\' to '/'. However, this can corrupt command line options that are quoted strings. Update GenMake to no convert '\' to '/' in quoted strings. Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
* BaseTools/tools_def: Remove no-warn-rwx-segments linker optionsArd Biesheuvel2025-02-021-8/+3
| | | | | | | | | | | | | | The linker option 'no-warn-rwx-segments' breaks both the LLVM linker and versions of the binutils ld.bfd linker prior to 2.39. Now that the ELF image is made up of separate R-X and RW- segments, this warning is no longer emitted and so there is no longer a need to suppress it either. While at it, move GCC_DLINK_FLAGS_COMMON (which is not common but only used by Ia32 and X64) into its only user so it can be dropped. Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
* BaseTools/Scripts/GccBase.lds: Use separate R-W and RW- ELF segmentsArd Biesheuvel2025-02-021-3/+11
| | | | | | | | | | | | To prevent the ELF linkers from complaining about emitted ELF segments that require both writable and executable permissions, define two separate R-X and RW- ELF segments, and emit the output sections explicitly into those segments as appropriate. Note that this has no bearing on the PE image, and using a single RW- segment would probably be fine too. Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
* BaseTools/Scripts: Merge GCC and Clang ELF linker scriptsArd Biesheuvel2025-02-023-94/+4
| | | | | | | | | | | | | | The original reason for creating a separate version of the ELF linker script for Clang was the difference between COMMONPAGESIZE and MAXPAGESIZE, which can we provided on the command line to the respective linkers (ld.bfd versus lld). That difference no longer exists, and both use COMMONPAGE_SIZE. So there is no longer a need to maintain a fork, which has already been going out of sync with the original for no good reason. So merge the two and call it GccBase.lds Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
* BaseTools/Scripts/ClangBase.lds: Move .entry into .text sectionArd Biesheuvel2025-02-021-4/+1
| | | | | | | | | | | | | | | | The GccBase.lds and ClangBase.lds ELF linker scripts have been laid out very carefully to ensure that the memory mappings of .text and .data are such that they can be preserved in the PE/COFF memory image. This removes the need to update any place-relative ELF relocations when generating the PE/COFF image, making its job much easier, and potentially allowing it to disregard static ELF relocations altogether, and rely solely on dynamic ELF relocations. Adding an arbitrary .entry section before .text breaks those assumptions, so instead of emitting it as a separate section, move its payload to the start of .text. Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
* UefiPayloadPkg: Update Elf segment/section syncup processChasel Chiu2025-02-021-13/+58
| | | | | | | | | | Original ELF segment/section syncup process having layout assumption which has caused build failure when layout changing. New process will parse both existing segments and sections firstly to support different layout. Signed-off-by: Chasel Chiu <chasel.chiu@intel.com>
* BaseTools/tools_def: Use no-warn-rwx-segments only for GCC5Ard Biesheuvel2025-02-011-3/+3
| | | | | | | | | | | | | The command line option --no-warn-rwx-segments was added to the linker command line for all GCC family builds on ARM and AARCH64, including CLANGDWARF and GCC49 and older, none of which are intended for use with linkers that actually understand this option. So instead, move it to the GCC5 DLINK FLAGS definitions for ARM and AARCH64 (which are inherited by the versionless GCC which is intended to replace GCC5 at some point). Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
* MdePkg: Add Hot pluggable resource attributeINDIA\sachinganesh2025-01-311-1/+2
| | | | | | PI 1.9 Specification defines new memory resource attribute for hot plug. Signed-off-by: Sachin Ganesh <sachinganesh@ami.com>
* MdePkg: Add UEFI 2.11 specification macroINDIA\sachinganesh2025-01-311-0/+1
| | | | | | Add macro for UEFI 2.11 Specification support Signed-off-by: Sachin Ganesh <sachinganesh@ami.com>
* MdePkg: Add Confidential Computing Extension for RISC-V AP-TEEINDIA\sachinganesh2025-01-311-3/+4
| | | | | | | UEFI 2.11 Specification adds RISC-V AP-TEE Confidential Computing Extension Signed-off-by: Sachin Ganesh <sachinganesh@ami.com>
* MdePkg: Add HotPlug Memory AttributeINDIA\sachinganesh2025-01-311-0/+10
| | | | | | UEFI 2.11 Specification defines new memory attribute for hot plug. Signed-off-by: Sachin Ganesh <sachinganesh@ami.com>
* ArmPkg: Retire ArmDisassemblerLibArd Biesheuvel2025-01-317-1657/+0
| | | | | | No longer used anywhere so can be retired. Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
* Revert "ArmVirtPkg/ArmVirtQemu: Reduce MMIO region mapped by default"Gerd Hoffmann2025-01-311-7/+7
| | | | | | | | | This reverts commit 43233ff9f88e5c9b88228810f7725bade4cdfecf. The TPM code (and possibly others too) must be fixed to also map their MMIO ranges before we can do this cleanup. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
* ArmVirtPkg: turn off debug logging for VirtioSerialDxeGerd Hoffmann2025-01-311-1/+4
| | | | | | | | | | When running the verbose builds on arm for development and testing it is quite convenient to use virtio serial to interact with the system because console and logging are separated then. Except that the virtio serial driver spams the debug log in that case. Set the debug level for the driver to zero to avoid that. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
* Maintainers: update my email addressAndrei Warkentin2025-01-311-2/+2
| | | | | | I'm no longer at Intel. Signed-off-by: Andrei Warkentin <andyw@imsa.edu>