From af1a266670d040d2f4083ff309d732d648afba2a Mon Sep 17 00:00:00 2001 From: Angelos Mouzakitis Date: Tue, 10 Oct 2023 14:33:42 +0000 Subject: Add submodule dependency files Change-Id: Iaf8d18082d3991dec7c0ebbea540f092188eb4ec --- .../Library/XenVirtMemInfoLib/XenVirtMemInfoLib.c | 57 ++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 roms/edk2/ArmVirtPkg/Library/XenVirtMemInfoLib/XenVirtMemInfoLib.c (limited to 'roms/edk2/ArmVirtPkg/Library/XenVirtMemInfoLib/XenVirtMemInfoLib.c') diff --git a/roms/edk2/ArmVirtPkg/Library/XenVirtMemInfoLib/XenVirtMemInfoLib.c b/roms/edk2/ArmVirtPkg/Library/XenVirtMemInfoLib/XenVirtMemInfoLib.c new file mode 100644 index 000000000..aa483b6d9 --- /dev/null +++ b/roms/edk2/ArmVirtPkg/Library/XenVirtMemInfoLib/XenVirtMemInfoLib.c @@ -0,0 +1,57 @@ +/** @file + + Copyright (c) 2014-2017, Linaro Limited. All rights reserved. + + SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#include +#include +#include +#include + +STATIC ARM_MEMORY_REGION_DESCRIPTOR mVirtualMemoryTable[2]; + +/** + Return the Virtual Memory Map of your platform + + This Virtual Memory Map is used by MemoryInitPei Module to initialize the MMU + on your platform. + + @param[out] VirtualMemoryMap Array of ARM_MEMORY_REGION_DESCRIPTOR + describing a Physical-to-Virtual Memory + mapping. This array must be ended by a + zero-filled entry. The allocated memory + will not be freed. + +**/ +VOID +EFIAPI +ArmVirtGetMemoryMap ( + OUT ARM_MEMORY_REGION_DESCRIPTOR **VirtualMemoryMap + ) +{ + EFI_PHYSICAL_ADDRESS TopOfAddressSpace; + + ASSERT (VirtualMemoryMap != NULL); + + TopOfAddressSpace = LShiftU64 (1ULL, ArmGetPhysicalAddressBits ()); + + // + // Map the entire physical memory space as cached. The only device + // we care about is the GIC, which will be stage 2 mapped as a device + // by the hypervisor, overriding the cached mapping we install here. + // + mVirtualMemoryTable[0].PhysicalBase = 0x0; + mVirtualMemoryTable[0].VirtualBase = 0x0; + mVirtualMemoryTable[0].Length = TopOfAddressSpace; + mVirtualMemoryTable[0].Attributes = ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK; + + mVirtualMemoryTable[1].PhysicalBase = 0x0; + mVirtualMemoryTable[1].VirtualBase = 0x0; + mVirtualMemoryTable[1].Length = 0x0; + mVirtualMemoryTable[1].Attributes = 0x0; + + *VirtualMemoryMap = mVirtualMemoryTable; +} -- cgit 1.2.3-korg