summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* pip: bump regex from 2024.7.24 to 2024.11.6dependabot/pip/regex-2024.11.6dependabot[bot]2024-12-051-1/+1
| | | | | | | | | | | | | | Bumps [regex](https://github.com/mrabarnett/mrab-regex) from 2024.7.24 to 2024.11.6. - [Changelog](https://github.com/mrabarnett/mrab-regex/blob/hg/changelog.txt) - [Commits](https://github.com/mrabarnett/mrab-regex/compare/2024.7.24...2024.11.6) --- updated-dependencies: - dependency-name: regex dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
* ArmVirtPkg/ArmPlatformLibQemu: Enable early ID map on EL2+VHEArd Biesheuvel2024-12-051-1/+13
| | | | | | | | When booting at EL2, enable VHE if available so that the early ID map can be enabled as well. This gets rid of any memory accesses (reads or writes) before the MMU and caches are enabled. Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
* Maintainers.txt: Add a new R for LoongArch64Chao Li2024-12-051-0/+1
| | | | | | Added Xiangdong Meng as a new reviewer for LoongArch64 ARCH. Signed-off-by: Chao Li <lichao@loongson.cn>
* BaseTools: Coverage: Detect lcov versionOliver Steffen2024-12-051-1/+20
| | | | | | | | | Detect the version of lcov and only apply version 2 workaround when needed. Fixes 61c714285f8c Signed-off-by: Oliver Steffen <osteffen@redhat.com>
* NetworkPkg/DxeNetLib: drop GLOBAL_REMOVE_IF_UNREFERENCEDGerd Hoffmann2024-12-041-1/+1
| | | | | | | | With mSecureHashAlgorithms being static this should not be needed any more. Suggested-by: Ard Biesheuvel <ardb@kernel.org> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
* MdePkg/DxeRngLib: drop GLOBAL_REMOVE_IF_UNREFERENCEDGerd Hoffmann2024-12-041-1/+1
| | | | | | | | With mSecureHashAlgorithms being static this should not be needed any more. Suggested-by: Ard Biesheuvel <ardb@kernel.org> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
* DynamicTablesPkg: Update link to iASL in Readme.mdRebecca Cran2024-12-041-1/+2
| | | | | | | Links from acpica.org are now redirected to the ACPICA overview page on intel.com. Update the link so it goes to the 20200717 download page. Signed-off-by: Rebecca Cran <rebecca@bsdio.com>
* Remove Ray from maintainer list of FatPkgRay Ni2024-12-041-1/+0
| | | | Signed-off-by: Ray Ni <ray.ni@intel.com>
* OvmfPkg/QemuFwCfgDxeLib: use PcdConfidentialComputingGuestAttrGerd Hoffmann2024-12-042-4/+9
| | | | | | | | | | | Check PcdConfidentialComputingGuestAttr instead of calling MemEncryptSevIsEnabled() and MemEncryptTdxIsEnabled() to figure whenever SEV or TDX is enabled. This allows to remove the MemEncryptSevLib + MemEncryptTdxLib dependencies. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
* SecurityPkg: remove unused `EfiSig` variable in SecureBootFetchDataRebecca Cran2024-12-041-6/+0
| | | | | | The `EfiSig` variable in SecureBootFetchData is unused, so remove it. Signed-off-by: Rebecca Cran <rebecca@bsdio.com>
* SecurityPkg: Improve formatting of msg when GetVariable failsRebecca Cran2024-12-041-1/+1
| | | | | | | | Improve the formatting of the error message when GetVariable fails: start the message with an upper-case character, and close the quotes around the variable name. Signed-off-by: Rebecca Cran <rebecca@bsdio.com>
* BaseTools: Coverage: make lcov v2.0 workOliver Steffen2024-12-041-1/+2
| | | | | | | | | | | | | lcov 2.0 and newer does additional error and consistency checking compared to previous versions. This can lead to CI jobs failing due to new/unexpected errors showing up. See: - https://edk2.groups.io/g/devel/message/116138 - https://github.com/linux-test-project/lcov/issues/209 - https://github.com/linux-test-project/lcov/issues/238 Signed-off-by: Oliver Steffen <osteffen@redhat.com>
* CI: Use latest Fedora 40 image for Linux jobsOliver Steffen2024-12-041-1/+1
| | | | | | | | | The Fedora 40 images uses gcc 14, includes libasan and libubsan, clang, and some fixes and improvements. See https://github.com/tianocore/containers/commit/c98ff99762a17a6e04e79950c9b169c33faa9062 Signed-off-by: Oliver Steffen <osteffen@redhat.com>
* Maintainers.txt: Add myself as FatPkg MaintainerOliver Smith-Denny2024-12-041-0/+1
| | | | | | | Per request from current FatPkg maintainer Ray Ni, I am signing up to maintain FatPkg. Signed-off-by: Oliver Smith-Denny <osde@microsoft.com>
* DynamicTablesPkg: Fix BDF format for PCI initiatorsJeff Brasen2024-12-031-8/+8
| | | | | | | | | | | | The BDF format for PCI initiators in the SRAT table is incorrect. The format is not a UINT16 but specific bytes. PCI Bus Number (Bits 7:0 of Byte 2) PCI Device Number (Bits 7:3 of Byte 3) PCI Function Number (Bits 2:0 of Byte 3) REF: https://uefi.org/specs/ACPI/6.5/05_ACPI_Software_Programming_Model.html#device-handle-pci Signed-off-by: Jeff Brasen <jbrasen@nvidia.com>
* OvmfPkg: Update links to Intel & MS ACPI compilers in READMERebecca Cran2024-12-031-3/+5
| | | | | | | | | | | | | Intel's ACPICA download is no longer on acpica.org, but that site redirects to pages on intel.com. Update the link to acpica.org to the new ACPICA download page. Microsoft's acpi.info no longer exists, so update the link to point to Microsoft's ACPI compiler information page. While here, update the nasm link from http to https. Signed-off-by: Rebecca Cran <rebecca@bsdio.com>
* MdePkg/Include/IndustryStandard: Address C++ keyword collisionsMichael D Kinney2024-12-032-42/+3
| | | | | | | | | | | | | | | | | | | Update Tpm12.h and Tpm20.h and not use c++ reserved keywords operator and xor in C structures to support use of these include files when building with a C++ compiler. This patch removes the temporary use of anonymous unions and warning 4201 disable for VS20xx tool chains to complete the following field name changes: * operator -> operator_ * xor -> xor_ NOTE: This is a non-backwards compatible change to Tpm12.h and Tmp20.h. And consumers of these include files that access the "operator" or "xor" fields must be updated. Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
* SecurityPkg/Library/TpmCommandLib: Change xor to xor_Michael D Kinney2024-12-033-10/+10
| | | | | | | Change xor to xor_ to avoid C++ reserved work name collisions when building with C++ compilers. Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
* MdePkg/Include/IndustryStandard: Add operator_ and xor_ field namesMichael D Kinney2024-12-032-4/+43
| | | | | | | | | | | | | | | Update Tpm12.h and Tpm20.h and not use c++ reserved keywords operator and xor in C structures to support use of these include files when building with a C++ compiler. This patch temporarily introduces an anonymous union to add operator_ and xor_ fields to support migration from the current field names to the new field names. Warning 4201 is disabled for VS20xx tool chains is a temporary change to allow the use of anonymous unions. Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
* PrmPkg: Update link to ACPICA in Readme.mdRebecca Cran2024-12-031-3/+3
| | | | | | | Links from acpica.org are now redirected to the ACPICA overview page on intel.com. Update the link so it goes to the 20200517 download page. Signed-off-by: Rebecca Cran <rebecca@bsdio.com>
* 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>
* UefiCpuPkg/CpuMmuLib: Adjust default memory attributes on LoongArchChao Li2024-12-021-0/+1
| | | | | | | | When updating memory attributes, if only access attributes are changed, the default memory cache attribute is NULL and a CACHE_CC is added by default. Signed-off-by: Chao Li <lichao@loongson.cn>
* EmulatorPkg: BlockIo2 APIs do not signal eventDoug Cook (WINDOWS)2024-12-021-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | BlockIo2 Read/Write/Flush APIs should signal the token's event when the I/O operation completes, but the Emulator APIs do not. As a result, any code that tries to implement async I/O will hang on emulator. Both Windows and Unix emulator hosts work the same way: - All I/O is completed synchronously. - All I/O implementations contain the comment: `// Caller is responsible for signaling EFI Event` However, the protocol implementations do not signal the event, so the event is never signalled. Fix is to signal the event in the appropriate protocol implementations. - If the host API returns success then the I/O is complete since it's always synchronous. - If there is a Token and Token->Event is not null and the I/O is successful then the event should be signalled. Signed-off-by: Doug Cook <idigdoug@gmail.com>
* DynamicTablesPkg: Adds X64 support for CPU SSDT generatorAbdul Lateef Attar2024-11-283-1/+152
| | | | | | | | | | | Introduce support for generating ACPI CPU SSDT table for the X64 architecture. Creates processor objects based on configuration data. Cc: Sami Mujawar <Sami.Mujawar@arm.com> Cc: Pierre Gondois <pierre.gondois@arm.com> Signed-off-by: Abdul Lateef Attar <AbdulLateef.Attar@amd.com>
* DynamicTablesPkg: Add X64 MADT table generatorAbdul Lateef Attar2024-11-287-16/+778
| | | | | | | | | | Updates X64 namespace object. Updates the object parser. Updates the Readme. Cc: Sami Mujawar <Sami.Mujawar@arm.com> Cc: Pierre Gondois <pierre.gondois@arm.com> Signed-off-by: Abdul Lateef Attar <AbdulLateef.Attar@amd.com>
* OvmfPkg/Library/HardwareInfoLib: Fix memory allocation for a root bridgeAlexander Gryanko2024-11-271-0/+6
| | | | | | | | | | | | | | | | | | | | | | Currently, PciHostBridgeUtilityGetRootBridgesHostProvided allocates memory for aperture structures without clearing memory. This causes garbage in the Translation field, but the Base and Limit fields have the correct values because they are copied from the HOST_BRIDGE_INFO fields in the HardwareInfoPciHostBridgeHostBridgeHostBridgeGetApertures function. RootBridge: PciRoot(0x0) Support/Attr: 70069 / 70069 DmaAbove4G: No NoExtConfSpace: No AllocAttr: 3 (CombineMemPMem Mem64Decode) Bus: 0 - 80 Translation=0 Io: 6000 - FFFF Translation=5E9EB018 Mem: 80000000 - DFFFFFFF Translation=0 MemAbove4G: 600000000000 - 7FFFFFFFFFFF Translation=0 PMem: FFFFFFFFFFFFFFFF - 0 Translation=0 PMemAbove4G: FFFFFFFFFFFFFFFF - 0 Translation=0 Signed-off-by: Alexander Gryanko <xpahos@gmail.com>
* ArmVirtPkg: Report an error if NETWORK_TLS_ENABLE is TRUE on ARMYang Gang2024-11-271-0/+3
| | | | Signed-off-by: Yang Gang <yanggang@byosoft.com.cn>
* OvmfPkg/QemuVideoDxe: Clean up Non-Used PCDsMarc Chen2024-11-271-2/+0
| | | | | | | Clean up PcdOvmfHostBridgePciDevId and PcdNullPointerDetectionPropertyMask from QemuVideoDxe.inf Signed-off-by: Marc Chen <marc.chen@microsoft.com>
* OvmfPkg: Rerun dispatcher after initializing virtio-rngOliver Steffen2024-11-271-0/+2
| | | | | | | | | | | | | | | | | Since the pixiefail CVE fix the network stack requires a hardware random number generator. This can currently be a modern CPU supporting the RDRAND instruction or a virtio-rng device. The latter is initialized during the BDS phase. To ensure all depending (network) modules are also started, we need to run the dispatcher once more after the device was initialized. Without this, network boot is not available under certain hardware configurations. Fixes: 4c4ceb2ceb ("NetworkPkg: SECURITY PATCH CVE-2023-45237") Analysed-by: Stefano Garzarella <sgarzare@redhat.com> Suggested-by: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Oliver Steffen <osteffen@redhat.com>
* FatPkg/EnhancedFatDxe: Add comments around StrSize() checksPierre Gondois2024-11-271-0/+20
| | | | | | | | | | StrSize() cannot return 0. As done in other packages, StrSize() checks the length of the string doesn't exceed PcdMaximumUnicodeStringLength. Add comments to make it more obvious. BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=4859 Reported-by: Tormod Volden <debian.tormod@gmail.com> Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
* ArmPkg/SemihostFs: StrSize() cannot return 0Pierre Gondois2024-11-271-1/+1
| | | | | | | | | StrSize() account the terminating NULL character and cannot return 0. Replace StrSize() StrLen(). BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=4859 Reported-by: Tormod Volden <debian.tormod@gmail.com> Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
* EmbeddedPkg: reduce "Found ACPI table" messages from ERROR to INFORebecca Cran2024-11-271-1/+1
| | | | | | | The "Found ACPI table" messages are informative and don't indicate an error, so reduce the debug level from DEBUG_ERROR to DEBUG_INFO. Signed-off-by: Rebecca Cran <rebecca@bsdio.com>
* ArmPlatformPkg: Allow up to 5 Secure Boot DB certsRebecca Cran2024-11-271-0/+7
| | | | | | | | | Update SecureBootDefaultKeys.fdf.inc to add support for 2 more DB certificates, for a total of 5. This allows all the files from https://github.com/microsoft/secureboot_objects/tree/main/PreSignedObjects/DB/Certificates to be supported. Signed-off-by: Rebecca Cran <rebecca@bsdio.com>
* ArmVirtPkg/ArmVirtKvmTool: Use PSCI/SMCCC conduit from FDTArd Biesheuvel2024-11-261-1/+1
| | | | | | | | | | | | | ArmVirtKvmTool might execute at EL2 when running under nested virtualization, and in this case, it should not use HVC but SMC to invoke PSCI and SMCCC services. Like QEMU, kvmtool provides the PSCI conduit via a node in the FDT, and as per the SMCCC, the PSCI conduit and the SMCCC conduit are guaranteed to be the same. So switch to the ArmMonitorLib implementation that selects the conduit based on this FDT node. Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
* ArmVirtPkg: Rename ArmVirtQemuMonitorLib to ArmVirtMonitorLibArd Biesheuvel2024-11-266-13/+13
| | | | | | | | The implementation of ArmMonitorLib that selects the conduit (SMC or HVC) based on the PSCI FDT node is suitable for other VMMs as well, so rename it more appropriately. Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
* ArmVirtPkg/PrePi: Don't clear HCR_EL2 fields when setting TGEArd Biesheuvel2024-11-261-1/+1
| | | | | | | | HCR_EL2 may contain fields that should be preserved (such as E2H, which may be RES1 for all intents and purposes other than reading back the register). So preserve the existing value when setting the TGE bit. Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
* ArmPkg/ArmMmuLib: Add support for EL2&0 translation regimeArd Biesheuvel2024-11-261-7/+22
| | | | | | | | | | | | With VHE enabled, EL2 uses the EL2&0 translation regime, which is compatible with the EL1&0 translation regime when it comes to the TCR configuration register and the page table descriptor. Given that some CPUs may have VHE force enabled when executing at EL2, the MMU code needs to be able to deal with this even if it doesn't enable VHE itself. Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
* ArmPkg/ArmMmuLib: Ignore EL3 in RELEASE codeArd Biesheuvel2024-11-261-4/+6
| | | | | | | | | Remove the code path for execution at EL3, which just dumps an error. None of the other code is remotely suitable for execution at EL3, and so just ASSERT()'ing here is sufficient, and simplifies future changes related to VHE. Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
* ArmPkg/ArmLib: Use VHE alternatives for timer system registersArd Biesheuvel2024-11-261-25/+47
| | | | | | | | | | | When VHE is enabled, some pre-existing timer system register specifiers are redirected to the HYP timer. To access the conventional timer, special aliases have to be used that end in _EL02. These aliases are not understood by Clang's internal assembler, so use the generic mnemonics instead. Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
* MdePkg/AArch64: Add some missing MMU related constantsArd Biesheuvel2024-11-262-0/+2
| | | | | | | Add definitions for the non-global page tables descriptor attribute, as well as the E2H TCR bit, so that we can use them in the MMU code. Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
* SignedCapsulePkg: Drop ARM supportArd Biesheuvel2024-11-261-1/+1
| | | | | | | | | | | | ARM requires softfloat routines when incorporating OpenSSL, which is a bit of a hassle for no benefit, given that ARM is mostly obsolete at this point. SignedCapsulePkg relies on OpenSSL for authentication, and while it might be feasible to migrate ARM to MbedTLS and retain support, let's just drop support entirely. Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
* Drop git submodule for Berkeley softfloat libraryArd Biesheuvel2024-11-263-12/+0
| | | | | | This code is no longer in use so it can be dropped. Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
* ArmPkg: Remove ArmSoftFloatLib implementationArd Biesheuvel2024-11-266-537/+0
| | | | | | Drop the softfloat library implementation now that it is no longer used. Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
* Remove all ArmSoftFloatLib library class resolutionsArd Biesheuvel2024-11-265-12/+0
| | | | | | | ArmSoftFloatLib is going away, so remove all residual references to it. Continuous-integration-options: PatchCheck.ignore-multi-package Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
* RedfishPkg: Drop ARM supportArd Biesheuvel2024-11-262-8/+2
| | | | | | | | | | | | | | | | | | Redfish uses JsonLib, which supports encoding real numbers. This handling is implemented using C floating point types, which means that on 32-bit ARM, a softfloat library is required, even though the CPUs we still (marginally) care about all support floating point in hardware. The UEFI spec does not permit the use of floating point on ARM at all, and so the correct thing to do here is to simply disable this driver on 32-bit ARM entirely. Note that the ARM platform code does allow the VFP unit to be enabled at boot time, and so rebuilding this driver with hardware FP should be feasible, in case anyone has an interest in running it on a 32-bit ARM system. Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
* CryptoPkg/OpensslLib: Drop dependency on ArmSoftFloatLibArd Biesheuvel2024-11-265-16/+1
| | | | | | | | | | | | | | | | | | | Drop the ArmSoftFloatLib dependency from the OpensslLib implementations, so that we can retire this git submodule and associated dependencies in other components. The upshot of this is that OpenSSL can no longer be used on 32-bit ARM by components that rely on the random number generation routines (which is where the floating point usage resides). In practice, this means that ARM platforms should use MbedTLs instead for things like signed capsules, authenticated variables and TPM2 support. HTTPS boot is no longer supported, as TlsDxe depends on OpensslLib directly. Note that MbedTLS itself -surprisingly- depends on OpensslLib as well, but only for the SM3 routines, and incorporating those does not require softfloat support. Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
* .github: Handle deleted GitHub accountsMichael Kubacki2024-11-261-5/+8
| | | | | | | | If a GitHub account has been deleted entirely, a `None` user will be returrned from the GitHub API. This change accounts for a `None` user when querying GitHub APIs for user information. Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
* SecurityPkg: Update libspdmOliver Smith-Denny2024-11-261-0/+0
| | | | | | | | | | | | | | | | This patch updates libspdm to pull in various bug fixes, but primarily commit ca4854be3325bd8fc7f2c714574d17aac2d4e13b which updates libspdm's MbedTLS submodule to v3.6.2, fixing CVE https://nvd.nist.gov/vuln/detail/CVE-2023-37920 there. This CVE does not affect libspdm or edk2, but automatic CVE scanning tools see the bad version of the certifi pip module in the edk2/libspdm code trees and flag these projects as failing. libspdm has been updated to pull in the newer MbedTLS that fixes this issue and this patch updates edk2 to pull in the newer libspdm. Signed-off-by: Oliver Smith-Denny <osde@linux.microsoft.com>
* SecurityPkg/Tcg2Config: Set TPM2.0 for default of Attempt TPM DevicePhil Noh2024-11-261-2/+2
| | | | | | | | | | | | | As TPM2.0 is popular, updating default value for the Setup menu supports a benefit for some systems that have another TPM Setup menu to select TPM2.0 devices (e.g. dTPM, fTPM) depending on platform bios. For example, when loading default configuration using F9 key in Setup (Brower Action: SystemLevel), it is possible for them to load an unsynchronized value. If user does not adjust the value before saving Setup, it could influence an unexpected TPM initialization at next boot. Setting TPM2.0 as default value supports the benefit related to the case. Signed-off-by: Phil Noh <Phil.Noh@amd.com>
* UefiCpuPkg/PiSmmCpuDxeSmm:Check resource HOB range before mappingDun Tan2024-11-251-0/+10
| | | | | | | | | | | | This commit is to check if the resource HOB range does not exceed the max supported physical address. The function BuildMemoryMapFromResDescHobs is to build Memory Region from resource HOBs. Then the memory maps will be used during creating or modifying SMM page table. If the resource HOB range exceeds the max supported physical address, then subsequent calling of PageTableMap() will fail. Signed-off-by: Dun Tan <dun.tan@intel.com>