summaryrefslogtreecommitdiffstats
path: root/ArmVirtPkg
Commit message (Collapse)AuthorAgeFilesLines
* 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>
* MdePkg: Move StackCheckLibStaticInit to StackCheckLibOliver Smith-Denny2025-02-071-0/+1
| | | | | | | | | | | | | | | 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>
* 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>
* ArmVirtPkg: Drop reference to ArmDisassemblerLibArd Biesheuvel2025-01-301-1/+0
| | | | | | ArmDisassemblerLib is going away ... Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
* ArmVirtPkg/ArmVirtQemu: Reduce MMIO region mapped by defaultArd Biesheuvel2025-01-301-7/+7
| | | | | | | | | | | | Currently, the ArmVirtQemu startup code maps a 128 MiB of MMIO space, as it knows that the UART, GIC and RTC live there. Now that the GIC driver maps its MMIO registers itself, there is no need for this region to cover its MMIO space. And there are other regions here that don't need to be mapped by default: the only ones that need to be mapped are the UARTS, the RTC, the fw_cfg MMIO interface and the virtio-mmio regions, all of which live in a 32 MiB window starting at address 0x900_0000. Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
* ArmVirtPkg/ArmVirtQemu.dsc: use OvmfDisplayPcds.dsc.incGerd Hoffmann2025-01-201-11/+2
| | | | Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
* ArmPkg/ArmGic: Rename directory to ArmGicDxeArd Biesheuvel2025-01-179-9/+9
| | | | | | | | | | Now that ArmPkg/Drivers/ArmGic no longer carries a combination of libraries and DXE drivers, rename the directory to the more idiomatic ArmPkg/Drivers/ArmGicDxe Continuous-integration-options: PatchCheck.ignore-multi-package Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
* ArmPkg: Retire ArmGicLib implementationsArd Biesheuvel2025-01-172-2/+0
| | | | | | | | | | | | Retire all implementations of the ArmGicLib library class, which are no longer used. For now, retain the library header and library class declaration: the header file only contains pre-processor defines derived from the GIC architecture spec, and so this code should probably move into MdePkg at a later moment. Continuous-integration-options: PatchCheck.ignore-multi-package Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
* ArmVirtPkg: Convert ArmVirtGicArchLib to NULL class libraryArd Biesheuvel2025-01-178-41/+22
| | | | | | | | | | Before retiring ArmGicArchLib entirely, convert the existing implementation in ArmVirtPkg into a NULL class library and inject it into ArmGicDxe on all ARM virtual platforms. This ensures that the PCDs describing the GIC are intialized correctly before ArmGicDxe is dispatched. Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
* ArmVirtPkg: Use OvmfPkg/Include/*/Shell*.incMike Beaton2025-01-165-73/+14
| | | | | | | | | | | | | | | | | | | | While fixing https://github.com/tianocore/edk2/pull/6092 (the fact that some OvmfPkg and ArmVirtPkg platforms included residual NetworkPkg components even when compiled with -D NETWORK_ENABLE=0), it was noted that OvmfPkg/Include/*/Shell*.inc files which apply the required fix logic are available and already used in some OvmfPkg platforms. A previous commit applied these files consistently within OvmfPkg. This commit applies these files within ArmVirtPkg. This has the side effect that some platforms now include one or more of HttpDynamicCommand, VariablePolicyDynamicCommand and LinuxInitrdDynamicShellCommand when they previously did not. This fixes unintentional drift between platforms, and provides additional shell commands which may be useful in some cases. Signed-off-by: Mike Beaton <mjsbeaton@gmail.com>
* ArmVirtPkg/CI: Copy shell to virtual driveMike Beaton2025-01-161-2/+14
| | | | | | | | | | | | | | | Place the EFI shell as EFI/BOOT/BOOT{ARCH}.EFI on the virtual drive. This allows the "Run to shell" CI test case to work even in case the shell is not included in the firmware image. This is needed because a follow up patch will exclude the shell from secure boot enabled firmware images. The same update was previously applied to OvmfPkg by 6862b9d538d96363635677198899e1669e591259. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Mike Beaton <mjsbeaton@gmail.com>
* ArmVirtPkg: Include no network components with -D NETWORK_ENABLE=0Mike Beaton2025-01-167-0/+18
| | | | | | | | | | | | | | | | | | | | | | This issue showed up when addressing https://bugzilla.tianocore.org/show_bug.cgi?id=4829 in https://github.com/tianocore/edk2/pull/6087 . Various OvmfPkg and ArmVirtPkg platforms include some residual NetworkPkg components when compiled with -D NETWORK_ENABLE=0, even though they use NetworkPkg includes intended to allow all NetworkPkg components to be disabled on this flag. For the OvmfPkg Intel platforms only, commit d933ec115bdf9be1d8dfe6a818414a14973cc0d3 started the change of not including these residual NetworkPkg components, and commit 7f17a155640a2a9e1f7b0f3522628ee2c6f62624 completed it. This commit rolls these changes out to the ArmVirtPkg platforms where they make sense in the same way. Signed-off-by: Mike Beaton <mjsbeaton@gmail.com>
* ArmVirtPkg: Enable virtio keyboard driver for ARM OVMF platformPaweł Poławski2024-12-291-0/+1
| | | | Signed-off-by: Paweł Poławski <ppolawsk@redhat.com>
* ArmVirtPkg: PXE boot option build flagAlexander Gryanko2024-12-062-0/+6
| | | | | | | | The first step is to add an option to disable PXE loading. The patch is divided into 3 parts. This part adds the NETWORK_PXE_BOOT_ENABLE flag to the ArmVirtPkg module. At the current stage the flag is not functional. Signed-off-by: Alexander Gryanko <xpahos@gmail.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>
* 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>
* 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>
* Remove all ArmSoftFloatLib library class resolutionsArd Biesheuvel2024-11-261-1/+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>
* MdePkg: MdeLibs.dsc.inc: Apply StackCheckLibNull to All Module TypesOliver Smith-Denny2024-11-131-3/+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>
* ArmVirtPkg/MemoryInitPei: Remove Non-RT Types from Mem Type Info HOBMichael Kubacki2024-11-112-16/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Removes the following types from the memory type information HOBs produced in the MemoryInitPei PEIM: - `EfiBootServicesCode` - `EfiBootServicesData` - `EfiLoaderCode` - `EfiLoaderData` Our platform has a memory type information validation routine that currently expects those types to be excluded as they would not impact the UEFI memory map since they are not runtime memory types. This follows the guidance in the whitepaper "A Tour Beyond BIOS Memory Map and Practices in UEFI BIOS". https://github.com/tianocore-docs/Docs/raw/master/White_Papers/A_Tour_Beyond_BIOS_Memory_Map_And_Practices_in_UEFI_BIOS_V2.pdf "NOTE: We recommend a platform only define the ReservedMemory, ACPINvs, ACPIReclaim, RuntimeCode, RuntimeData in Memory Type Information table, because OSes only request these regions to be consistent. There is no need to add BootServicesCode, BootServicesData, LoaderCode, LoaderData in memory type information table, because these regions will not be reserved during S4 resume." Since these memory types are not tracked in memory type information any longer it also reduces the number of resets that may need to occur to update memory type buckets that are not needed. Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
* ArmVirtPkg: mark fixed network PCDsAleksandr Goncharov2024-11-112-2/+2
| | | | | | | | | | Rename `NetworkPcds` to `NetworkFixedPcds` to avoid confusion with dynamic PCDs. Cc: Leif Lindholm <quic_llindhol@quicinc.com> Cc: Sami Mujawar <sami.mujawar@arm.com> Cc: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Aleksandr Goncharov <chat@joursoir.net>
* ArmVirtPkg: use NetworkDynamicPcds include fileAleksandr Goncharov2024-11-112-14/+2
| | | | | | | | | | | | | | Start using the include file in the ArmVirtPkg package to manage dynamic network-related PCDs. This change removes the manual addition of `PcdIPv4PXESupport` and `PcdIPv6PXESupport` from the DSC file, relying instead on the centralized include file introduced in NetworkPkg. Cc: Ard Biesheuvel <ardb+tianocore@kernel.org> Cc: Leif Lindholm <quic_llindhol@quicinc.com> Cc: Sami Mujawar <sami.mujawar@arm.com> Cc: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Aleksandr Goncharov <chat@joursoir.net>
* ArmVirtPkg: KvmTool: Fix clang linker errorSudeep Holla2024-10-301-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Clang build for ArmVirtPkg/ArmVirtKvmTool.dsc fails with the below warning: | ld.lld: error: duplicate symbol: PciExpressRegisterForRuntimeAccess | ld.lld: error: duplicate symbol: GetPciExpressBaseAddress | ld.lld: error: duplicate symbol: PciExpressRead8 | ld.lld: error: duplicate symbol: PciExpressWrite8 | ld.lld: error: duplicate symbol: PciExpressOr8 | ld.lld: error: duplicate symbol: PciExpressAnd8 | ld.lld: error: duplicate symbol: PciExpressAndThenOr8 | ld.lld: error: duplicate symbol: PciExpressBitFieldRead8 | ld.lld: error: duplicate symbol: PciExpressBitFieldWrite8 | ld.lld: error: duplicate symbol: PciExpressBitFieldOr8 | ld.lld: error: duplicate symbol: PciExpressBitFieldAnd8 | ld.lld: error: duplicate symbol: PciExpressBitFieldAndThenOr8 | ld.lld: error: duplicate symbol: PciExpressRead16 | ld.lld: error: duplicate symbol: PciExpressWrite16 | ld.lld: error: duplicate symbol: PciExpressOr16 | ld.lld: error: duplicate symbol: PciExpressAnd16 | ld.lld: error: duplicate symbol: PciExpressAndThenOr16 | ld.lld: error: duplicate symbol: PciExpressBitFieldRead16 | ld.lld: error: duplicate symbol: PciExpressBitFieldWrite16 | ld.lld: error: duplicate symbol: PciExpressBitFieldOr16 | >>> defined in MdePkg/Library/BasePciExpressLib/BasePciExpressLib/OUTPUT/BasePciExpressLib.lib(PciExpressLib.obj) | >>> defined in OvmfPkg/Library/BaseCachingPciExpressLib/BaseCachingPciExpressLib/OUTPUT/BaseCachingPciExpressLib.lib(PciExpressLib.obj) | | ld.lld: error: too many errors emitted, stopping now (use --error-limit=0 to see all errors) | clang: error: linker command failed with exit code 1 (use -v to see invocation) OvmfPkg/Library/BaseCachingPciExpressLib/BaseCachingPciExpressLib.inf is getting linked as NULL library in these pacakges: 1. UefiCpuPkg/CpuMmio2Dxe/CpuMmio2Dxe.inf 2. MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciHostBridgeDxe.inf 3. MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf which results in duplicate symbols shown in the warning above as MdePkg/Library/BasePciExpressLib/BasePciExpressLib.inf is not properly replaced by OvmfPkg/Library/BaseCachingPciExpressLib/BaseCachingPciExpressLib.inf as PciExpressLib library. Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
* ArmVirtPkg/ArmVirtQemu: avoid unnecessary use of $(ARCH) conditionalLeif Lindholm2024-10-021-4/+2
| | | | | | | | ARCH as set by "build" command is not really useful for conditionals, so move AArch64-specific Pcd to [PcdsFixedAtBuild.AARCH64]. Signed-off-by: Leif Lindholm <quic_llindhol@quicinc.com>
* ArmVirtPkg: add QemuVirtMemInfoLib missing dependency/includesLeif Lindholm2024-09-272-0/+2
| | | | | | | | | QemuVirtMemInfoLib makes use of BaseLib but never declared the dependency or included the header. The code still built by luck and by including the EmbeddedPkg FdtLib. Which is going away, so add the missing stanzas in preparation. Signed-off-by: Leif Lindholm <quic_llindhol@quicinc.com>
* ArmVirtPkg: Correct PcdDxeNxMemoryProtectionPolicy commentHeinrich Schuchardt2024-09-261-2/+4
| | | | | | | | | | | | Since commit 2997ae387397 ("ArmVirtPkg: make EFI_LOADER_DATA non-executable") the comment for PcdDxeNxMemoryProtectionPolicy is incorrect. * Remove the incorrect part of the description. * Describe overriding NX protection by passing a pcd parameter on the build command line. Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
* ArmVirtPkg: Add Null Stack Check LibOliver Smith-Denny2024-09-131-3/+3
| | | | | | | Remove the old stack check lib now that MdeLibs.inc includes the new one. Signed-off-by: Oliver Smith-Denny <osde@linux.microsoft.com>
* ArmVirtPkg: Fix unable to build with -D NETWORK_ENABLE=0Mike Beaton2024-09-122-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://bugzilla.tianocore.org/show_bug.cgi?id=4829 7f17a15 (2024/02/22) "OvmfPkg: Shell*.inc: allow building without network support" breaks building OVMF with `-D NETWORK_ENABLE=0`. Before this commit we could build OVMF e.g. with the following command in the OvmfPkg directory: ./build.sh -D NETWORK_ENABLE=0 After the commit the same command fails early with: /home/user/OpenSource/edk2/OvmfPkg/OvmfPkgX64.dsc(15): error F001: Pcd (gEfiNetworkPkgTokenSpaceGuid.PcdAllowHttpConnections) defined in DSC is not declared in DEC files referenced in INF files in FDF. Arch: ['X64'] This problem also applies in the ArmVirtPkg platforms which are modified here, but is currently masked by another issue, namely that these platforms incorrectly still include some network packages when most are disabled. (A fix for this was previously applied, for OvmfPkg Intel platforms only, by d933ec1 followed by 7f17a15 .) This commit was created at the same time as the commits resolving this issue in NetworkPkg and OvmfPkg. It makes conditional the Pcd references in ArmVirtPkg platforms which will become references to undefined Pcds as and when the other issue mentioned above is fixed. Signed-off-by: Mike Beaton <mjsbeaton@gmail.com>
* MdePkg: Move CompilerIntrinsicsLib from ArmPkgOliver Smith-Denny2024-09-121-6/+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>
* MdePkg: Move AsmMacroIoLib*.h from ArmPkgOliver Smith-Denny2024-09-123-3/+3
| | | | | | | | | | | | | | | | | | | AsmMacroIoLib.h and AsmMacroIoLibV8.h are used by the CompilerIntrinsicsLib, which is moving to MdePkg. These functions provide standard definitions for ARM/AARCH64 assembly code, respectively, and so are moved to the arch directories in MdePkg to avoid MdePkg having a dependency on ArmPkg. Now that the files are in Arm/ and AArch64/ directories, the filenames are changed to AsmMacroLib.h as we can distinguish the architecture from the path. AsmMacroIoLib.inc is unused and so is removed. Continuous-integration-options: PatchCheck.ignore-multi-package Signed-off-by: Oliver Smith-Denny <osde@linux.microsoft.com>
* ArmVirtPkg ARM: Move to MbedTls for cryptoArd Biesheuvel2024-09-042-11/+14
| | | | | | | | | | | | | Move all BaseCryptLib resolutions for 32-bit ARM to MbedTls, which does not require a softfloat library, which can therefore be dropped from EDK2 entirely going forward. Note that this implies no TLS networking for 32-bit ARM, as this code has a direct dependency on OpenSSL, so move the TlsLib resolution to a AARCH64-only section to force the build to fail early when attempting to build 32-bit ARM targets with NETWORK_TLS_ENABLE set. Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
* ArmVirtPkg: Resolve RngLib via RngDxe for TRNG supportArd Biesheuvel2024-09-031-0/+4
| | | | | | | | | | | | | | | | Gerd reports that ArmVirtQemu running under KVM lost network boot support on systems that do not implement the RNDR/RNDRRS system registers, which provide an architectural, CPU-based source of random numbers. Under KVM, the TRNG SMCCC is available as a fallback, which is exposed via RngDxe but not via the base RngLib library. This means that direct users of RngLib, such as OpensslLib, have no access to the TRNG based entropy source. Let's fix this by resolving RngLib dependencies for UEFI_DRIVER type drivers via DxeRngLib, which uses the protocol exposed by RngDxe internally. Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
* ArmVirtPkg: Drop incorrect reference to LzmaDecompressLibArd Biesheuvel2024-08-304-4/+3
| | | | | | | | | | | LzmaDecompressLib does not exist as a library class, and the library implementation that is usually referenced in this context is intended to be incorporated using NULL library class resolution. Let's fix this so that we can drop the reference to LzmaDecompressLib. Signed-off-by: Ard Biesheuvel <ardb@kernel.org> Tested-by: Sami Mujawar <sami.mujawar@arm.com>
* ArmVirtPkg/ArmPlatformLib: Drop unused MPCore routinesArd Biesheuvel2024-08-301-25/+0
| | | | | | | | Some of the boilerplate in ArmPlatformLib is only relevant when entering UEFI on multiple cores, and this is no longer supported. So retire the associated helper routines. Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
* ArmVirtPkg: Fix some spelling mistakes found by cspellRebecca Cran2024-08-012-15/+15
| | | | | | | | | | | When cspell is installed (via `npm install cspell`), CI checks for spelling mistakes. There are currently a very large number of them: some are genuine mistakes while others are words or acryonyms that cspell doesn't know. Fix a few of the misspellings in ArmVirtPkg. Signed-off-by: Rebecca Cran <rebecca@bsdio.com>
* ArmVirtPkg: Switch all PrePeiCore users to new Sec.infArd Biesheuvel2024-08-014-4/+4
| | | | | | | | Switch to the new SEC driver based on PrePeiCore, but with a sane name. The old one will be retired once all users have migrated, including many in edk2-platforms. Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
* ArmVirtPkg/PrePi: Drop call to TimerConstructor()Ard Biesheuvel2024-08-012-8/+0
| | | | | | | Drop the call to the TimerConstructor, which should not be called explicitly, and does nothing useful to begin with. Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
* ArmVirtPkg: Drop bogus reference to MPCore related PCDArd Biesheuvel2024-08-011-5/+0
| | | | | | | Bringing up secondaries is out of scope for ArmVirtPkg, and the declared PCD reference is never actually made from the code. So drop it. Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
* ArmVirtPkg: Kvmtool: Update Pci Config Space Info in Cfg ManagerSami Mujawar2024-07-291-1/+3
| | | | | | | | | | | | | | | | | | | The Pci Config Space Info object was moved from the Arm Namespace to the Arch Common namespace. Therefore, update the Kvmtool guest firmware configuration manager to reflect this change. Cc: Pierre Gondois <Pierre.Gondois@arm.com> Cc: Yeo Reum Yun <YeoReum.Yun@arm.com> Cc: AbdulLateef Attar <AbdulLateef.Attar@amd.com> Cc: Jeshua Smith <jeshuas@nvidia.com> Cc: Jeff Brasen <jbrasen@nvidia.com> Cc: Girish Mahadevan <gmahadevan@nvidia.com> Cc: Leif Lindholm <quic_llindhol@quicinc.com> Cc: Meenakshi Aggarwal <meenakshi.aggarwal@nxp.com> Signed-off-by: Sami Mujawar <sami.mujawar@arm.com> Reviewed-by: Sunil V L <sunilvl@ventanamicro.com>
* ArmVirtPkg: Kvmtool: Update Power Mgmt Profile info in Cfg ManagerSami Mujawar2024-07-292-20/+20
| | | | | | | | | | | | | | | | | | | The PowerManagementProfileInfo Object has been moved from the Arm Namespace to the Arch Common namespace. Therefore, update the Kvmtool Guest firmware configuration manager to reflect this change. Cc: Pierre Gondois <Pierre.Gondois@arm.com> Cc: Yeo Reum Yun <YeoReum.Yun@arm.com> Cc: AbdulLateef Attar <AbdulLateef.Attar@amd.com> Cc: Jeshua Smith <jeshuas@nvidia.com> Cc: Jeff Brasen <jbrasen@nvidia.com> Cc: Girish Mahadevan <gmahadevan@nvidia.com> Cc: Leif Lindholm <quic_llindhol@quicinc.com> Cc: Meenakshi Aggarwal <meenakshi.aggarwal@nxp.com> Signed-off-by: Sami Mujawar <sami.mujawar@arm.com> Reviewed-by: Sunil V L <sunilvl@ventanamicro.com>
* ArmVirtPkg: Kvmtool: Update ConfigMgr to support ArchCommonSami Mujawar2024-07-291-0/+70
| | | | | | | | | | | | | | | | | Update the Configuration Manager for Kvmtool guest firmware to handle ArchComm namespace objects. Cc: Pierre Gondois <Pierre.Gondois@arm.com> Cc: Yeo Reum Yun <YeoReum.Yun@arm.com> Cc: AbdulLateef Attar <AbdulLateef.Attar@amd.com> Cc: Jeshua Smith <jeshuas@nvidia.com> Cc: Jeff Brasen <jbrasen@nvidia.com> Cc: Girish Mahadevan <gmahadevan@nvidia.com> Cc: Leif Lindholm <quic_llindhol@quicinc.com> Cc: Meenakshi Aggarwal <meenakshi.aggarwal@nxp.com> Signed-off-by: Sami Mujawar <sami.mujawar@arm.com> Signed-off-by: Pierre Gondois <pierre.gondois@arm.com> Reviewed-by: Sunil V L <sunilvl@ventanamicro.com>
* ArmVirtPkg/ArmVirtQemu: Switch to generic ResetSystemLibArd Biesheuvel2024-07-273-285/+3
| | | | | | | | Retire the special ResetSystemLib implementation for the PEI phase on virtual platforms, which has been superseded by the generic version combined with a PEI-compatible implementation of ArmMonitorLib. Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
* ArmVirtPkg: Implement DT-based ArmMonitorLib for the PEI phaseArd Biesheuvel2024-07-272-0/+163
| | | | | | | | | The TPM2 related PEIMs depend on ResetSystemLib too, and so in order to be able to switch to the generic ArmPkg implementation which relies on ArmMonitorLib, the latter library class requires a PEIM-compatible implementation too. Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
* ArmVirtPkg: Move to generic ArmPsciResetSystemLibArd Biesheuvel2024-07-273-267/+1
| | | | | | | | | | | Switch to the new, generic ArmPsciResetSystemLib implementation that obtains the conduit using ArmMonitorLib, of which a version already exists that determines the conduit by looking up the PSCI DT node. This permits the removal of the ArmVirtPkg specific implementation of ResetSystemLib, which essentially does the exact same thing, but in a single library. Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
* ArmPkg: Convert PcdMonitorConduitHvc to FixedAtBuildArd Biesheuvel2024-07-251-2/+2
| | | | | | | | | | Feature PCDs and fixed-at-build PCDs are identical in concept, but the latter are accessible from assembler, whereas the former are not. So convert the SMCCC conduit selection PCD to fixed-at-build so we can make use of this in a subsequent patch. Continuous-integration-options: PatchCheck.ignore-multi-package Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
* ArmVirtPkg: KvmtoolRtcFdtClientLib: Set MMIO Memory NXOliver Smith-Denny2024-07-231-2/+2
| | | | | | | | | | When setting memory attributes on its MMIO region, KvmtoolRtcFdtClientLib will clear EFI_MEMORY_XP from the region if a platform has it set. This MMIO region is not intended to be executed from, so fix this by explicitly setting EFI_MEMORY_XP on this region in the lib. Signed-off-by: Oliver Smith-Denny <osde@linux.microsoft.com>