+++ /dev/null
-#\r
-# Copyright (c) 2011-2013, ARM Limited. All rights reserved.\r
-# Copyright (c) 2016-2017, Linaro Limited. All rights reserved.\r
-#\r
-# This program and the accompanying materials\r
-# are licensed and made available under the terms and conditions of the BSD License\r
-# which accompanies this distribution. The full text of the license may be found at\r
-# http://opensource.org/licenses/bsd-license.php\r
-#\r
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-#\r
-#\r
-\r
-#include <AsmMacroIoLibV8.h>\r
-\r
-//EFI_PHYSICAL_ADDRESS\r
-//GetPhysAddrTop (\r
-// VOID\r
-// );\r
-ASM_FUNC(ArmGetPhysAddrTop)\r
- mrs x0, id_aa64mmfr0_el1\r
- adr x1, .LPARanges\r
- and x0, x0, #7\r
- ldrb w1, [x1, x0]\r
- mov x0, #1\r
- lsl x0, x0, x1\r
- ret\r
-\r
-//\r
-// Bits 0..2 of the AA64MFR0_EL1 system register encode the size of the\r
-// physical address space support on this CPU:\r
-// 0 == 32 bits, 1 == 36 bits, etc etc\r
-// 6 and 7 are reserved\r
-//\r
-.LPARanges:\r
- .byte 32, 36, 40, 42, 44, 48, -1, -1\r
-\r
-ASM_FUNCTION_REMOVE_IF_UNREFERENCED\r
+++ /dev/null
-#\r
-# Copyright (c) 2011-2013, ARM Limited. All rights reserved.\r
-# Copyright (c) 2014-2017, Linaro Limited. All rights reserved.\r
-#\r
-# This program and the accompanying materials\r
-# are licensed and made available under the terms and conditions of the BSD License\r
-# which accompanies this distribution. The full text of the license may be found at\r
-# http://opensource.org/licenses/bsd-license.php\r
-#\r
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-#\r
-#\r
-\r
-#include <AsmMacroIoLib.h>\r
-\r
-//EFI_PHYSICAL_ADDRESS\r
-//GetPhysAddrTop (\r
-// VOID\r
-// );\r
-ASM_FUNC(ArmGetPhysAddrTop)\r
- mov r0, #0x00000000\r
- mov r1, #0x10000\r
- bx lr\r
// Number of Virtual Memory Map Descriptors\r
#define MAX_VIRTUAL_MEMORY_MAP_DESCRIPTORS 5\r
\r
-EFI_PHYSICAL_ADDRESS\r
-ArmGetPhysAddrTop (\r
- VOID\r
- );\r
-\r
/**\r
Return the Virtual Memory Map of your platform\r
\r
)\r
{\r
ARM_MEMORY_REGION_DESCRIPTOR *VirtualMemoryTable;\r
- UINT64 TopOfMemory;\r
\r
ASSERT (VirtualMemoryMap != NULL);\r
\r
VirtualMemoryTable[1].Length = VirtualMemoryTable[0].PhysicalBase;\r
VirtualMemoryTable[1].Attributes = ARM_MEMORY_REGION_ATTRIBUTE_DEVICE;\r
\r
- // Peripheral space after DRAM\r
- TopOfMemory = MIN (1ULL << FixedPcdGet8 (PcdPrePiCpuMemorySize),\r
- ArmGetPhysAddrTop ());\r
- VirtualMemoryTable[2].PhysicalBase = VirtualMemoryTable[0].Length + VirtualMemoryTable[1].Length;\r
- VirtualMemoryTable[2].VirtualBase = VirtualMemoryTable[2].PhysicalBase;\r
- VirtualMemoryTable[2].Length = TopOfMemory -\r
- VirtualMemoryTable[2].PhysicalBase;\r
- VirtualMemoryTable[2].Attributes = ARM_MEMORY_REGION_ATTRIBUTE_DEVICE;\r
-\r
// Remap the FD region as normal executable memory\r
- VirtualMemoryTable[3].PhysicalBase = PcdGet64 (PcdFdBaseAddress);\r
- VirtualMemoryTable[3].VirtualBase = VirtualMemoryTable[3].PhysicalBase;\r
- VirtualMemoryTable[3].Length = FixedPcdGet32 (PcdFdSize);\r
- VirtualMemoryTable[3].Attributes = ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK;\r
+ VirtualMemoryTable[2].PhysicalBase = PcdGet64 (PcdFdBaseAddress);\r
+ VirtualMemoryTable[2].VirtualBase = VirtualMemoryTable[2].PhysicalBase;\r
+ VirtualMemoryTable[2].Length = FixedPcdGet32 (PcdFdSize);\r
+ VirtualMemoryTable[2].Attributes = ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK;\r
\r
// End of Table\r
- ZeroMem (&VirtualMemoryTable[4], sizeof (ARM_MEMORY_REGION_DESCRIPTOR));\r
+ ZeroMem (&VirtualMemoryTable[3], sizeof (ARM_MEMORY_REGION_DESCRIPTOR));\r
\r
*VirtualMemoryMap = VirtualMemoryTable;\r
}\r
[Sources]\r
QemuVirtMemInfoLib.c\r
\r
-[Sources.ARM]\r
- Arm/PhysAddrTop.S\r
-\r
-[Sources.AARCH64]\r
- AArch64/PhysAddrTop.S\r
-\r
[Packages]\r
ArmPkg/ArmPkg.dec\r
ArmVirtPkg/ArmVirtPkg.dec\r
\r
[FixedPcd]\r
gArmTokenSpaceGuid.PcdFdSize\r
- gEmbeddedTokenSpaceGuid.PcdPrePiCpuMemorySize\r
QemuVirtMemInfoLib.c\r
QemuVirtMemInfoPeiLibConstructor.c\r
\r
-[Sources.ARM]\r
- Arm/PhysAddrTop.S\r
-\r
-[Sources.AARCH64]\r
- AArch64/PhysAddrTop.S\r
-\r
[Packages]\r
ArmPkg/ArmPkg.dec\r
ArmVirtPkg/ArmVirtPkg.dec\r
[FixedPcd]\r
gArmTokenSpaceGuid.PcdFdSize\r
gArmVirtTokenSpaceGuid.PcdDeviceTreeInitialBaseAddress\r
- gEmbeddedTokenSpaceGuid.PcdPrePiCpuMemorySize\r