From nobody Wed Dec 25 01:20:28 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=none (zoho.com: 198.145.21.10 is neither permitted nor denied by domain of lists.01.org) smtp.mailfrom=edk2-devel-bounces@lists.01.org Return-Path: Received: from ml01.01.org (ml01.01.org [198.145.21.10]) by mx.zohomail.com with SMTPS id 1511345305156971.7861470985523; Wed, 22 Nov 2017 02:08:25 -0800 (PST) Received: from [127.0.0.1] (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id 5E5C4220C1629; Wed, 22 Nov 2017 02:03:51 -0800 (PST) Received: from mail-wm0-x242.google.com (mail-wm0-x242.google.com [IPv6:2a00:1450:400c:c09::242]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 73BF7220C1629 for ; Wed, 22 Nov 2017 02:03:49 -0800 (PST) Received: by mail-wm0-x242.google.com with SMTP id 128so8927329wmo.3 for ; Wed, 22 Nov 2017 02:08:05 -0800 (PST) Received: from localhost.localdomain ([154.145.25.106]) by smtp.gmail.com with ESMTPSA id i192sm2761457wmf.46.2017.11.22.02.08.01 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 22 Nov 2017 02:08:02 -0800 (PST) X-Original-To: edk2-devel@lists.01.org Received-SPF: none (zoho.com: 198.145.21.10 is neither permitted nor denied by domain of lists.01.org) client-ip=198.145.21.10; envelope-from=edk2-devel-bounces@lists.01.org; helo=ml01.01.org; Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=2a00:1450:400c:c09::242; helo=mail-wm0-x242.google.com; envelope-from=ard.biesheuvel@linaro.org; receiver=edk2-devel@lists.01.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=cO/QeO486fb8gu5ijAy+QH+yWw2pmBhQ4GO7CFeiOXI=; b=j7vXyjAyPbsGt0FkAeLHwz37r7cxfoPDNGhool5fSPs2g7MFjD1rVH4erN/Jw45kD3 Ekv/aWL4ISXF2C8IwzhWfvTaUbeFnBaJ/ndybLJ/9+C+qSPykF6dLibCEeetwAmOf+xB 9N8TAtTWWGG+gG0M7eTudnQ/LEsVCjHEm0lNU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=cO/QeO486fb8gu5ijAy+QH+yWw2pmBhQ4GO7CFeiOXI=; b=sc45yccO2C/5LjKMnEbHInE4WLvyDdOyk0afyWXyPwMReH2ymjEzPoj0w+jIsnO0N+ RJL/7xLYLpJwwOa1wA9/hYi3pmi1s4UfXbO7dYzMWZAUk8H6Qmm9nrCGZGkiWSMkDf4b T//MumkT12RTq9S1SmzNH4hajkV02LBw8sthRjgQf/KYPJWrpkpobbjz0nOXf/9YV4Xy 1p8cMvk8KPXeKZqQz2v42QdlYLUWFbGAiSli4C+eWi/AIOKkaioSswByMNqdc5if4/Ad JpHaTK9K/YW74vzdvcGr9tXO6P+7dWHRNKBxkOM5dRzrf3b/0guyqNsVa7BNCN7xf968 zqNQ== X-Gm-Message-State: AJaThX7wR8HnIfBn/H3fLE35sZoCl3kouxfbz1aqD9DFXQIRkkQA+jo5 M69f8f9+ZL7T+kwsozTqfsBghREKv88= X-Google-Smtp-Source: AGs4zMbOWN+L4ybyIERdc+4/71ZafNtYZJ8OV7vu1qwdKYRwol8yK4ZR8DWf/nzVeXLpmtjWLZBE6Q== X-Received: by 10.28.61.135 with SMTP id k129mr3336246wma.81.1511345282957; Wed, 22 Nov 2017 02:08:02 -0800 (PST) From: Ard Biesheuvel To: edk2-devel@lists.01.org, lersek@redhat.com Date: Wed, 22 Nov 2017 10:07:31 +0000 Message-Id: <20171122100731.24525-15-ard.biesheuvel@linaro.org> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20171122100731.24525-1-ard.biesheuvel@linaro.org> References: <20171122100731.24525-1-ard.biesheuvel@linaro.org> Subject: [edk2] [PATCH v2 14/14] ArmVirtPkg: remove ArmPlatformLib implementations X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Ard Biesheuvel MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Errors-To: edk2-devel-bounces@lists.01.org Sender: "edk2-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_4 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" These libraries are no longer used, so remove them from the tree. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel Reviewed-by: Laszlo Ersek --- ArmVirtPkg/ArmVirtQemuKernel.dsc = | 1 - ArmVirtPkg/ArmVirtXen.dsc = | 1 - ArmVirtPkg/Library/ArmQemuRelocatablePlatformLib/AARCH64/RelocatableVirtHe= lper.S | 141 ----------------- ArmVirtPkg/Library/ArmQemuRelocatablePlatformLib/ARM/RelocatableVirtHelper= .S | 123 --------------- ArmVirtPkg/Library/ArmQemuRelocatablePlatformLib/ArmQemuRelocatablePlatfor= mLib.inf | 64 -------- ArmVirtPkg/Library/ArmQemuRelocatablePlatformLib/FdtParser.c = | 90 ----------- ArmVirtPkg/Library/ArmQemuRelocatablePlatformLib/QemuVirtMem.c = | 106 ------------- ArmVirtPkg/Library/ArmQemuRelocatablePlatformLib/RelocatableVirt.c = | 70 --------- ArmVirtPkg/Library/ArmVirtPlatformLib/AARCH64/VirtHelper.S = | 70 --------- ArmVirtPkg/Library/ArmVirtPlatformLib/ARM/VirtHelper.S = | 57 ------- ArmVirtPkg/Library/ArmVirtPlatformLib/ARM/VirtHelper.asm = | 71 --------- ArmVirtPkg/Library/ArmVirtPlatformLib/ArmVirtPlatformLib.inf = | 64 -------- ArmVirtPkg/Library/ArmVirtPlatformLib/Virt.c = | 160 -------------------- ArmVirtPkg/Library/ArmVirtPlatformLib/VirtMem.c = | 102 ------------- ArmVirtPkg/Library/ArmXenRelocatablePlatformLib/AARCH64/RelocatableVirtHel= per.S | 140 ----------------- ArmVirtPkg/Library/ArmXenRelocatablePlatformLib/ARM/RelocatableVirtHelper.= S | 123 --------------- ArmVirtPkg/Library/ArmXenRelocatablePlatformLib/ArmXenRelocatablePlatformL= ib.inf | 63 -------- ArmVirtPkg/Library/ArmXenRelocatablePlatformLib/FdtParser.c = | 89 ----------- ArmVirtPkg/Library/ArmXenRelocatablePlatformLib/RelocatableVirt.c = | 70 --------- ArmVirtPkg/Library/ArmXenRelocatablePlatformLib/XenVirtMem.c = | 82 ---------- 20 files changed, 1687 deletions(-) diff --git a/ArmVirtPkg/ArmVirtQemuKernel.dsc b/ArmVirtPkg/ArmVirtQemuKerne= l.dsc index f50d30388cf2..cc2c5a50c925 100644 --- a/ArmVirtPkg/ArmVirtQemuKernel.dsc +++ b/ArmVirtPkg/ArmVirtQemuKernel.dsc @@ -48,7 +48,6 @@ [LibraryClasses.common] QemuFwCfgLib|ArmVirtPkg/Library/QemuFwCfgLib/QemuFwCfgLib.inf QemuFwCfgS3Lib|OvmfPkg/Library/QemuFwCfgS3Lib/BaseQemuFwCfgS3LibNull.inf =20 - ArmPlatformLib|ArmVirtPkg/Library/ArmQemuRelocatablePlatformLib/ArmQemuR= elocatablePlatformLib.inf ArmVirtMemInfoLib|ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoL= ib.inf =20 TimerLib|ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.inf diff --git a/ArmVirtPkg/ArmVirtXen.dsc b/ArmVirtPkg/ArmVirtXen.dsc index 3df684d13cb0..11e073287a84 100644 --- a/ArmVirtPkg/ArmVirtXen.dsc +++ b/ArmVirtPkg/ArmVirtXen.dsc @@ -43,7 +43,6 @@ [LibraryClasses] VirtioLib|OvmfPkg/Library/VirtioLib/VirtioLib.inf VirtioMmioDeviceLib|OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDevice= Lib.inf =20 - ArmPlatformLib|ArmVirtPkg/Library/ArmXenRelocatablePlatformLib/ArmXenRel= ocatablePlatformLib.inf ArmVirtMemInfoLib|ArmVirtPkg/Library/XenVirtMemInfoLib/XenVirtMemInfoLib= .inf =20 TimerLib|ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.inf diff --git a/ArmVirtPkg/Library/ArmQemuRelocatablePlatformLib/AARCH64/Reloc= atableVirtHelper.S b/ArmVirtPkg/Library/ArmQemuRelocatablePlatformLib/AARCH= 64/RelocatableVirtHelper.S deleted file mode 100644 index ec6955cf0af8..000000000000 --- a/ArmVirtPkg/Library/ArmQemuRelocatablePlatformLib/AARCH64/RelocatableV= irtHelper.S +++ /dev/null @@ -1,141 +0,0 @@ -# -# Copyright (c) 2011-2013, ARM Limited. All rights reserved. -# Copyright (c) 2016, Linaro Limited. All rights reserved. -# -# This program and the accompanying materials -# are licensed and made available under the terms and conditions of the B= SD License -# which accompanies this distribution. The full text of the license may = be found at -# http://opensource.org/licenses/bsd-license.php -# -# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IM= PLIED. -# -# - -#include -#include - -// VOID -// ArmPlatformPeiBootAction ( -// VOID *DeviceTreeBaseAddress, // passed by loader in x0 -// VOID *ImageBase // passed by FDF trampoline in x1 -// ); -ASM_FUNC(ArmPlatformPeiBootAction) - // - // If we are booting from RAM using the Linux kernel boot protocol, x0 w= ill - // point to the DTB image in memory. Otherwise, use the default value de= fined - // by the platform. - // - cbnz x0, 0f - ldr x0, PcdGet64 (PcdDeviceTreeInitialBaseAddress) - -0:mov x29, x30 // preserve LR - mov x28, x0 // preserve DTB pointer - mov x27, x1 // preserve base of image pointer - - // - // The base of the runtime image has been preserved in x1. Check whether - // the expected magic number can be found in the header. - // - ldr w8, .LArm64LinuxMagic - ldr w9, [x1, #0x38] - cmp w8, w9 - bne .Lout - - // - // - // OK, so far so good. We have confirmed that we likely have a DTB and a= re - // booting via the arm64 Linux boot protocol. Update the base-of-image P= CD - // to the actual relocated value, and add the shift of PcdFdBaseAddress = to - // PcdFvBaseAddress as well - // - adr x8, PcdGet64 (PcdFdBaseAddress) - adr x9, PcdGet64 (PcdFvBaseAddress) - ldr x6, [x8] - ldr x7, [x9] - sub x7, x7, x6 - add x7, x7, x1 - str x1, [x8] - str x7, [x9] - - // - // Discover the memory size and offset from the DTB, and record in the - // respective PCDs. This will also return false if a corrupt DTB is - // encountered. Since we are calling a C function, use the window at the - // beginning of the FD image as a temp stack. - // - adr x1, PcdGet64 (PcdSystemMemoryBase) - adr x2, PcdGet64 (PcdSystemMemorySize) - mov sp, x7 - bl FindMemnode - cbz x0, .Lout - - // - // Copy the DTB to the slack space right after the 64 byte arm64/Linux s= tyle - // image header at the base of this image (defined in the FDF), and reco= rd the - // pointer in PcdDeviceTreeInitialBaseAddress. - // - adr x8, PcdGet64 (PcdDeviceTreeInitialBaseAddress) - add x27, x27, #0x40 - str x27, [x8] - - mov x0, x27 - mov x1, x28 - bl CopyFdt - -.Lout: - ret x29 - -.LArm64LinuxMagic: - .byte 0x41, 0x52, 0x4d, 0x64 - -//UINTN -//ArmPlatformGetPrimaryCoreMpId ( -// VOID -// ); -ASM_FUNC(ArmPlatformGetPrimaryCoreMpId) - MOV32 (w0, FixedPcdGet32 (PcdArmPrimaryCore)) - ret - -//UINTN -//ArmPlatformIsPrimaryCore ( -// IN UINTN MpId -// ); -ASM_FUNC(ArmPlatformIsPrimaryCore) - mov x0, #1 - ret - -//UINTN -//ArmPlatformGetCorePosition ( -// IN UINTN MpId -// ); -// With this function: CorePos =3D (ClusterId * 4) + CoreId -ASM_FUNC(ArmPlatformGetCorePosition) - and x1, x0, #ARM_CORE_MASK - and x0, x0, #ARM_CLUSTER_MASK - add x0, x1, x0, LSR #6 - ret - -//EFI_PHYSICAL_ADDRESS -//GetPhysAddrTop ( -// VOID -// ); -ASM_FUNC(ArmGetPhysAddrTop) - mrs x0, id_aa64mmfr0_el1 - adr x1, .LPARanges - and x0, x0, #7 - ldrb w1, [x1, x0] - mov x0, #1 - lsl x0, x0, x1 - ret - -// -// Bits 0..2 of the AA64MFR0_EL1 system register encode the size of the -// physical address space support on this CPU: -// 0 =3D=3D 32 bits, 1 =3D=3D 36 bits, etc etc -// 6 and 7 are reserved -// -.LPARanges: - .byte 32, 36, 40, 42, 44, 48, -1, -1 - -ASM_FUNCTION_REMOVE_IF_UNREFERENCED diff --git a/ArmVirtPkg/Library/ArmQemuRelocatablePlatformLib/ARM/Relocatab= leVirtHelper.S b/ArmVirtPkg/Library/ArmQemuRelocatablePlatformLib/ARM/Reloc= atableVirtHelper.S deleted file mode 100644 index 27af98970c16..000000000000 --- a/ArmVirtPkg/Library/ArmQemuRelocatablePlatformLib/ARM/RelocatableVirtH= elper.S +++ /dev/null @@ -1,123 +0,0 @@ -# -# Copyright (c) 2011-2013, ARM Limited. All rights reserved. -# Copyright (c) 2014-2016, Linaro Limited. All rights reserved. -# -# This program and the accompanying materials -# are licensed and made available under the terms and conditions of the B= SD License -# which accompanies this distribution. The full text of the license may = be found at -# http://opensource.org/licenses/bsd-license.php -# -# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IM= PLIED. -# -# - -#include -#include - -ASM_FUNC(ArmPlatformPeiBootAction) - // - // If we are booting from RAM using the Linux kernel boot protocol, r0 w= ill - // point to the DTB image in memory. Otherwise, use the default value de= fined - // by the platform. - // - teq r0, #0 - bne 0f - LDRL (r0, PcdGet64 (PcdDeviceTreeInitialBaseAddress)) - -0:mov r11, r14 // preserve LR - mov r10, r0 // preserve DTB pointer - mov r9, r1 // preserve base of image pointer - - // - // The base of the runtime image has been preserved in r1. Check whether - // the expected magic number can be found in the header. - // - ldr r8, .LArm32LinuxMagic - ldr r7, [r1, #0x24] - cmp r7, r8 - bne .Lout - - // - // - // OK, so far so good. We have confirmed that we likely have a DTB and a= re - // booting via the ARM Linux boot protocol. Update the base-of-image PCD - // to the actual relocated value, and add the shift of PcdFdBaseAddress = to - // PcdFvBaseAddress as well - // - ADRL (r8, PcdGet64 (PcdFdBaseAddress)) - ADRL (r7, PcdGet64 (PcdFvBaseAddress)) - ldr r6, [r8] - ldr r5, [r7] - sub r5, r5, r6 - add r5, r5, r1 - str r1, [r8] - str r5, [r7] - - // - // Discover the memory size and offset from the DTB, and record in the - // respective PCDs. This will also return false if a corrupt DTB is - // encountered. Since we are calling a C function, use the window at the - // beginning of the FD image as a temp stack. - // - ADRL (r1, PcdGet64 (PcdSystemMemoryBase)) - ADRL (r2, PcdGet64 (PcdSystemMemorySize)) - mov sp, r5 - bl FindMemnode - teq r0, #0 - beq .Lout - - // - // Copy the DTB to the slack space right after the 64 byte arm64/Linux s= tyle - // image header at the base of this image (defined in the FDF), and reco= rd the - // pointer in PcdDeviceTreeInitialBaseAddress. - // - ADRL (r8, PcdGet64 (PcdDeviceTreeInitialBaseAddress)) - add r9, r9, #0x40 - str r9, [r8] - - mov r0, r9 - mov r1, r10 - bl CopyFdt - -.Lout: - bx r11 - -.LArm32LinuxMagic: - .byte 0x18, 0x28, 0x6f, 0x01 - -//UINTN -//ArmPlatformGetPrimaryCoreMpId ( -// VOID -// ); -ASM_FUNC(ArmPlatformGetPrimaryCoreMpId) - MOV32 (r0, FixedPcdGet32 (PcdArmPrimaryCore)) - bx lr - -//UINTN -//ArmPlatformIsPrimaryCore ( -// IN UINTN MpId -// ); -ASM_FUNC(ArmPlatformIsPrimaryCore) - mov r0, #1 - bx lr - -//UINTN -//ArmPlatformGetCorePosition ( -// IN UINTN MpId -// ); -// With this function: CorePos =3D (ClusterId * 4) + CoreId -ASM_FUNC(ArmPlatformGetCorePosition) - and r1, r0, #ARM_CORE_MASK - and r0, r0, #ARM_CLUSTER_MASK - add r0, r1, r0, LSR #6 - bx lr - -//EFI_PHYSICAL_ADDRESS -//GetPhysAddrTop ( -// VOID -// ); -ASM_FUNC(ArmGetPhysAddrTop) - mov r0, #0x00000000 - mov r1, #0x10000 - bx lr diff --git a/ArmVirtPkg/Library/ArmQemuRelocatablePlatformLib/ArmQemuReloca= tablePlatformLib.inf b/ArmVirtPkg/Library/ArmQemuRelocatablePlatformLib/Arm= QemuRelocatablePlatformLib.inf deleted file mode 100644 index acd523bbd2ce..000000000000 --- a/ArmVirtPkg/Library/ArmQemuRelocatablePlatformLib/ArmQemuRelocatablePl= atformLib.inf +++ /dev/null @@ -1,64 +0,0 @@ -#/* @file -# Copyright (c) 2011-2015, ARM Limited. All rights reserved. -# Copyright (c) 2014, Linaro Limited. All rights reserved. -# -# This program and the accompanying materials -# are licensed and made available under the terms and conditions of the B= SD License -# which accompanies this distribution. The full text of the license may = be found at -# http://opensource.org/licenses/bsd-license.php -# -# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IM= PLIED. -# -#*/ - -[Defines] - INF_VERSION =3D 0x00010005 - BASE_NAME =3D ArmXenRelocatablePlatformLib - FILE_GUID =3D c8602718-4faa-4119-90ca-cae72509ac4c - MODULE_TYPE =3D BASE - VERSION_STRING =3D 1.0 - LIBRARY_CLASS =3D ArmPlatformLib|SEC PEIM - -[Packages] - MdePkg/MdePkg.dec - MdeModulePkg/MdeModulePkg.dec - EmbeddedPkg/EmbeddedPkg.dec - ArmPkg/ArmPkg.dec - ArmPlatformPkg/ArmPlatformPkg.dec - ArmVirtPkg/ArmVirtPkg.dec - -[LibraryClasses] - IoLib - ArmLib - PrintLib - FdtLib - -[Sources.common] - RelocatableVirt.c - QemuVirtMem.c - FdtParser.c - -[Sources.AARCH64] - AARCH64/RelocatableVirtHelper.S - -[Sources.ARM] - ARM/RelocatableVirtHelper.S - -[FeaturePcd] - gEmbeddedTokenSpaceGuid.PcdCacheEnable - gArmPlatformTokenSpaceGuid.PcdSystemMemoryInitializeInSec - -[PatchPcd] - gArmVirtTokenSpaceGuid.PcdDeviceTreeInitialBaseAddress - gArmTokenSpaceGuid.PcdFdBaseAddress - gArmTokenSpaceGuid.PcdFvBaseAddress - gArmTokenSpaceGuid.PcdSystemMemoryBase - gArmTokenSpaceGuid.PcdSystemMemorySize - -[FixedPcd] - gArmPlatformTokenSpaceGuid.PcdCoreCount - gArmTokenSpaceGuid.PcdArmPrimaryCoreMask - gArmTokenSpaceGuid.PcdArmPrimaryCore - gArmTokenSpaceGuid.PcdFdSize - gEmbeddedTokenSpaceGuid.PcdPrePiCpuMemorySize diff --git a/ArmVirtPkg/Library/ArmQemuRelocatablePlatformLib/FdtParser.c b= /ArmVirtPkg/Library/ArmQemuRelocatablePlatformLib/FdtParser.c deleted file mode 100644 index afdc81a8839d..000000000000 --- a/ArmVirtPkg/Library/ArmQemuRelocatablePlatformLib/FdtParser.c +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Copyright (c) 2015, Linaro Ltd. All rights reserved. - * - * This program and the accompanying materials - * are licensed and made available under the terms and conditions of the B= SD License - * which accompanies this distribution. The full text of the license may = be found at - * http://opensource.org/licenses/bsd-license.php - * - * THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, - * WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IM= PLIED. - */ - -#include -#include - -BOOLEAN -FindMemnode ( - IN VOID *DeviceTreeBlob, - OUT UINT64 *SystemMemoryBase, - OUT UINT64 *SystemMemorySize - ) -{ - INT32 MemoryNode; - INT32 AddressCells; - INT32 SizeCells; - INT32 Length; - CONST INT32 *Prop; - - if (fdt_check_header (DeviceTreeBlob) !=3D 0) { - return FALSE; - } - - // - // Look for a node called "memory" at the lowest level of the tree - // - MemoryNode =3D fdt_path_offset (DeviceTreeBlob, "/memory"); - if (MemoryNode <=3D 0) { - return FALSE; - } - - // - // Retrieve the #address-cells and #size-cells properties - // from the root node, or use the default if not provided. - // - AddressCells =3D 1; - SizeCells =3D 1; - - Prop =3D fdt_getprop (DeviceTreeBlob, 0, "#address-cells", &Length); - if (Length =3D=3D 4) { - AddressCells =3D fdt32_to_cpu (*Prop); - } - - Prop =3D fdt_getprop (DeviceTreeBlob, 0, "#size-cells", &Length); - if (Length =3D=3D 4) { - SizeCells =3D fdt32_to_cpu (*Prop); - } - - // - // Now find the 'reg' property of the /memory node, and read the first - // range listed. - // - Prop =3D fdt_getprop (DeviceTreeBlob, MemoryNode, "reg", &Length); - - if (Length < (AddressCells + SizeCells) * sizeof (INT32)) { - return FALSE; - } - - *SystemMemoryBase =3D fdt32_to_cpu (Prop[0]); - if (AddressCells > 1) { - *SystemMemoryBase =3D (*SystemMemoryBase << 32) | fdt32_to_cpu (Prop[1= ]); - } - Prop +=3D AddressCells; - - *SystemMemorySize =3D fdt32_to_cpu (Prop[0]); - if (SizeCells > 1) { - *SystemMemorySize =3D (*SystemMemorySize << 32) | fdt32_to_cpu (Prop[1= ]); - } - - return TRUE; -} - -VOID -CopyFdt ( - IN VOID *FdtDest, - IN VOID *FdtSource - ) -{ - fdt_pack(FdtSource); - CopyMem (FdtDest, FdtSource, fdt_totalsize (FdtSource)); -} diff --git a/ArmVirtPkg/Library/ArmQemuRelocatablePlatformLib/QemuVirtMem.c= b/ArmVirtPkg/Library/ArmQemuRelocatablePlatformLib/QemuVirtMem.c deleted file mode 100644 index 2ce5c48d52cf..000000000000 --- a/ArmVirtPkg/Library/ArmQemuRelocatablePlatformLib/QemuVirtMem.c +++ /dev/null @@ -1,106 +0,0 @@ -/** @file -* -* Copyright (c) 2014, Linaro Limited. All rights reserved. -* -* This program and the accompanying materials -* are licensed and made available under the terms and conditions of the B= SD License -* which accompanies this distribution. The full text of the license may = be found at -* http://opensource.org/licenses/bsd-license.php -* -* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IM= PLIED. -* -**/ - -#include -#include -#include -#include -#include -#include - -// Number of Virtual Memory Map Descriptors -#define MAX_VIRTUAL_MEMORY_MAP_DESCRIPTORS 5 - -// DDR attributes -#define DDR_ATTRIBUTES_CACHED ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK -#define DDR_ATTRIBUTES_UNCACHED ARM_MEMORY_REGION_ATTRIBUTE_UNCACHED_UNBU= FFERED - -EFI_PHYSICAL_ADDRESS -ArmGetPhysAddrTop ( - VOID - ); - -/** - Return the Virtual Memory Map of your platform - - This Virtual Memory Map is used by MemoryInitPei Module to initialize th= e 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 - -**/ -VOID -ArmPlatformGetVirtualMemoryMap ( - IN ARM_MEMORY_REGION_DESCRIPTOR** VirtualMemoryMap - ) -{ - ARM_MEMORY_REGION_DESCRIPTOR *VirtualMemoryTable; - - ASSERT (VirtualMemoryMap !=3D NULL); - - VirtualMemoryTable =3D AllocatePages ( - EFI_SIZE_TO_PAGES ( - sizeof (ARM_MEMORY_REGION_DESCRIPTOR) - * MAX_VIRTUAL_MEMORY_MAP_DESCRIPTORS - ) - ); - - if (VirtualMemoryTable =3D=3D NULL) { - DEBUG ((EFI_D_ERROR, "%a: Error: Failed AllocatePages()\n", __FUNCTION= __)); - return; - } - - // System DRAM - VirtualMemoryTable[0].PhysicalBase =3D PcdGet64 (PcdSystemMemoryBase); - VirtualMemoryTable[0].VirtualBase =3D VirtualMemoryTable[0].PhysicalBas= e; - VirtualMemoryTable[0].Length =3D PcdGet64 (PcdSystemMemorySize); - VirtualMemoryTable[0].Attributes =3D DDR_ATTRIBUTES_CACHED; - - DEBUG ((EFI_D_INFO, "%a: Dumping System DRAM Memory Map:\n" - "\tPhysicalBase: 0x%lX\n" - "\tVirtualBase: 0x%lX\n" - "\tLength: 0x%lX\n", - __FUNCTION__, - VirtualMemoryTable[0].PhysicalBase, - VirtualMemoryTable[0].VirtualBase, - VirtualMemoryTable[0].Length)); - - // Peripheral space before DRAM - VirtualMemoryTable[1].PhysicalBase =3D 0x0; - VirtualMemoryTable[1].VirtualBase =3D 0x0; - VirtualMemoryTable[1].Length =3D VirtualMemoryTable[0].PhysicalBas= e; - VirtualMemoryTable[1].Attributes =3D ARM_MEMORY_REGION_ATTRIBUTE_DEVIC= E; - - // Peripheral space after DRAM - VirtualMemoryTable[2].PhysicalBase =3D VirtualMemoryTable[0].Length + Vi= rtualMemoryTable[1].Length; - VirtualMemoryTable[2].VirtualBase =3D VirtualMemoryTable[2].PhysicalBas= e; - VirtualMemoryTable[2].Length =3D MIN (1ULL << FixedPcdGet8 (PcdPre= PiCpuMemorySize), - ArmGetPhysAddrTop ()) - - VirtualMemoryTable[2].PhysicalBase; - VirtualMemoryTable[2].Attributes =3D ARM_MEMORY_REGION_ATTRIBUTE_DEVIC= E; - - // Remap the FD region as normal executable memory - VirtualMemoryTable[3].PhysicalBase =3D PcdGet64 (PcdFdBaseAddress); - VirtualMemoryTable[3].VirtualBase =3D VirtualMemoryTable[3].PhysicalBas= e; - VirtualMemoryTable[3].Length =3D FixedPcdGet32 (PcdFdSize); - VirtualMemoryTable[3].Attributes =3D DDR_ATTRIBUTES_CACHED; - - // End of Table - ZeroMem (&VirtualMemoryTable[4], sizeof (ARM_MEMORY_REGION_DESCRIPTOR)); - - *VirtualMemoryMap =3D VirtualMemoryTable; -} diff --git a/ArmVirtPkg/Library/ArmQemuRelocatablePlatformLib/RelocatableVi= rt.c b/ArmVirtPkg/Library/ArmQemuRelocatablePlatformLib/RelocatableVirt.c deleted file mode 100644 index 6df207733ab2..000000000000 --- a/ArmVirtPkg/Library/ArmQemuRelocatablePlatformLib/RelocatableVirt.c +++ /dev/null @@ -1,70 +0,0 @@ -/** @file -* -* Copyright (c) 2011-2013, ARM Limited. All rights reserved. -* Copyright (c) 2014, Linaro Limited. All rights reserved. -* Copyright (c) 2014, Red Hat, Inc. -* -* -* This program and the accompanying materials -* are licensed and made available under the terms and conditions of the B= SD License -* which accompanies this distribution. The full text of the license may = be found at -* http://opensource.org/licenses/bsd-license.php -* -* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IM= PLIED. -* -**/ - -#include -#include -#include -#include - -/** - Return the current Boot Mode - - This function returns the boot reason on the platform - - @return Return the current Boot Mode of the platform - -**/ -EFI_BOOT_MODE -ArmPlatformGetBootMode ( - VOID - ) -{ - return BOOT_WITH_FULL_CONFIGURATION; -} - -/** - This function is called by PrePeiCore, in the SEC phase. -**/ -RETURN_STATUS -ArmPlatformInitialize ( - IN UINTN MpId - ) -{ - // - // We are relying on ArmPlatformInitializeSystemMemory () being called f= rom - // InitializeMemory (), which only occurs if the following feature is di= sabled - // - ASSERT (!FeaturePcdGet (PcdSystemMemoryInitializeInSec)); - return RETURN_SUCCESS; -} - -VOID -ArmPlatformInitializeSystemMemory ( - VOID - ) -{ -} - -VOID -ArmPlatformGetPlatformPpiList ( - OUT UINTN *PpiListSize, - OUT EFI_PEI_PPI_DESCRIPTOR **PpiList - ) -{ - *PpiListSize =3D 0; - *PpiList =3D NULL; -} diff --git a/ArmVirtPkg/Library/ArmVirtPlatformLib/AARCH64/VirtHelper.S b/A= rmVirtPkg/Library/ArmVirtPlatformLib/AARCH64/VirtHelper.S deleted file mode 100644 index 1d8fe25928d8..000000000000 --- a/ArmVirtPkg/Library/ArmVirtPlatformLib/AARCH64/VirtHelper.S +++ /dev/null @@ -1,70 +0,0 @@ -# -# Copyright (c) 2011-2013, ARM Limited. All rights reserved. -# Copyright (c) 2016, Linaro Limited. All rights reserved. -# -# This program and the accompanying materials -# are licensed and made available under the terms and conditions of the B= SD License -# which accompanies this distribution. The full text of the license may = be found at -# http://opensource.org/licenses/bsd-license.php -# -# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IM= PLIED. -# -# - -#include -#include - -ASM_FUNC(ArmPlatformPeiBootAction) - ret - -//UINTN -//ArmPlatformGetPrimaryCoreMpId ( -// VOID -// ); -ASM_FUNC(ArmPlatformGetPrimaryCoreMpId) - MOV32 (w0, FixedPcdGet32 (PcdArmPrimaryCore)) - ret - -//UINTN -//ArmPlatformIsPrimaryCore ( -// IN UINTN MpId -// ); -ASM_FUNC(ArmPlatformIsPrimaryCore) - mov x0, #1 - ret - -//UINTN -//ArmPlatformGetCorePosition ( -// IN UINTN MpId -// ); -// With this function: CorePos =3D (ClusterId * 4) + CoreId -ASM_FUNC(ArmPlatformGetCorePosition) - and x1, x0, #ARM_CORE_MASK - and x0, x0, #ARM_CLUSTER_MASK - add x0, x1, x0, LSR #6 - ret - -//EFI_PHYSICAL_ADDRESS -//GetPhysAddrTop ( -// VOID -// ); -ASM_FUNC(ArmGetPhysAddrTop) - mrs x0, id_aa64mmfr0_el1 - adr x1, .LPARanges - and x0, x0, #7 - ldrb w1, [x1, x0] - mov x0, #1 - lsl x0, x0, x1 - ret - -// -// Bits 0..2 of the AA64MFR0_EL1 system register encode the size of the -// physical address space support on this CPU: -// 0 =3D=3D 32 bits, 1 =3D=3D 36 bits, etc etc -// 6 and 7 are reserved -// -.LPARanges: - .byte 32, 36, 40, 42, 44, 48, -1, -1 - -ASM_FUNCTION_REMOVE_IF_UNREFERENCED diff --git a/ArmVirtPkg/Library/ArmVirtPlatformLib/ARM/VirtHelper.S b/ArmVi= rtPkg/Library/ArmVirtPlatformLib/ARM/VirtHelper.S deleted file mode 100644 index 4a4db3721072..000000000000 --- a/ArmVirtPkg/Library/ArmVirtPlatformLib/ARM/VirtHelper.S +++ /dev/null @@ -1,57 +0,0 @@ -# -# Copyright (c) 2011-2013, ARM Limited. All rights reserved. -# Copyright (c) 2014-2016, Linaro Limited. All rights reserved. -# -# This program and the accompanying materials -# are licensed and made available under the terms and conditions of the B= SD License -# which accompanies this distribution. The full text of the license may = be found at -# http://opensource.org/licenses/bsd-license.php -# -# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IM= PLIED. -# -# - -#include -#include - -ASM_FUNC(ArmPlatformPeiBootAction) - bx lr - -//UINTN -//ArmPlatformGetPrimaryCoreMpId ( -// VOID -// ); -ASM_FUNC(ArmPlatformGetPrimaryCoreMpId) - MOV32 (r0, FixedPcdGet32 (PcdArmPrimaryCore)) - bx lr - -//UINTN -//ArmPlatformIsPrimaryCore ( -// IN UINTN MpId -// ); -ASM_FUNC(ArmPlatformIsPrimaryCore) - mov r0, #1 - bx lr - -//UINTN -//ArmPlatformGetCorePosition ( -// IN UINTN MpId -// ); -// With this function: CorePos =3D (ClusterId * 4) + CoreId -ASM_FUNC(ArmPlatformGetCorePosition) - and r1, r0, #ARM_CORE_MASK - and r0, r0, #ARM_CLUSTER_MASK - add r0, r1, r0, LSR #6 - bx lr - -//EFI_PHYSICAL_ADDRESS -//GetPhysAddrTop ( -// VOID -// ); -ASM_FUNC(ArmGetPhysAddrTop) - mov r0, #0x00000000 - mov r1, #0x10000 - bx lr - -ASM_FUNCTION_REMOVE_IF_UNREFERENCED diff --git a/ArmVirtPkg/Library/ArmVirtPlatformLib/ARM/VirtHelper.asm b/Arm= VirtPkg/Library/ArmVirtPlatformLib/ARM/VirtHelper.asm deleted file mode 100644 index b476516f2115..000000000000 --- a/ArmVirtPkg/Library/ArmVirtPlatformLib/ARM/VirtHelper.asm +++ /dev/null @@ -1,71 +0,0 @@ -// -// Copyright (c) 2011-2014, ARM Limited. All rights reserved. -// Copyright (c) 2014, Linaro Limited. All rights reserved. -// -// This program and the accompanying materials -// are licensed and made available under the terms and conditions of the = BSD License -// which accompanies this distribution. The full text of the license may= be found at -// http://opensource.org/licenses/bsd-license.php -// -// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR I= MPLIED. -// - -#include -#include - - INCLUDE AsmMacroIoLib.inc - - EXPORT ArmPlatformPeiBootAction - EXPORT ArmPlatformIsPrimaryCore - EXPORT ArmPlatformGetPrimaryCoreMpId - EXPORT ArmPlatformGetCorePosition - EXPORT ArmGetPhysAddrTop - - AREA VirtHelper, CODE, READONLY - -ArmPlatformPeiBootAction FUNCTION - bx lr - ENDFUNC - -//UINTN -//ArmPlatformGetPrimaryCoreMpId ( -// VOID -// ); -ArmPlatformGetPrimaryCoreMpId FUNCTION - MOV32 r0, FixedPcdGet32 (PcdArmPrimaryCore) - bx lr - ENDFUNC - -//UINTN -//ArmPlatformIsPrimaryCore ( -// IN UINTN MpId -// ); -ArmPlatformIsPrimaryCore FUNCTION - mov r0, #1 - bx lr - ENDFUNC - -//UINTN -//ArmPlatformGetCorePosition ( -// IN UINTN MpId -// ); -// With this function: CorePos =3D (ClusterId * 4) + CoreId -ArmPlatformGetCorePosition FUNCTION - and r1, r0, #ARM_CORE_MASK - and r0, r0, #ARM_CLUSTER_MASK - add r0, r1, r0, LSR #6 - bx lr - ENDFUNC - -//EFI_PHYSICAL_ADDRESS -//GetPhysAddrTop ( -// VOID -// ); -ArmGetPhysAddrTop FUNCTION - mov r0, #0x00000000 - mov r1, #0x10000 - bx lr - ENDFUNC - - END diff --git a/ArmVirtPkg/Library/ArmVirtPlatformLib/ArmVirtPlatformLib.inf b= /ArmVirtPkg/Library/ArmVirtPlatformLib/ArmVirtPlatformLib.inf deleted file mode 100644 index 3cb3fb1f3aea..000000000000 --- a/ArmVirtPkg/Library/ArmVirtPlatformLib/ArmVirtPlatformLib.inf +++ /dev/null @@ -1,64 +0,0 @@ -#/* @file -# Copyright (c) 2011-2014, ARM Limited. All rights reserved. -# Copyright (c) 2014, Linaro Limited. All rights reserved. -# -# This program and the accompanying materials -# are licensed and made available under the terms and conditions of the B= SD License -# which accompanies this distribution. The full text of the license may = be found at -# http://opensource.org/licenses/bsd-license.php -# -# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IM= PLIED. -# -#*/ - -[Defines] - INF_VERSION =3D 0x00010005 - BASE_NAME =3D ArmVirtPlatformLib - FILE_GUID =3D 00214cc1-06d1-45fe-9700-dca5726ad7bf - MODULE_TYPE =3D BASE - VERSION_STRING =3D 1.0 - LIBRARY_CLASS =3D ArmPlatformLib|SEC PEIM - -[Packages] - MdePkg/MdePkg.dec - MdeModulePkg/MdeModulePkg.dec - EmbeddedPkg/EmbeddedPkg.dec - ArmPkg/ArmPkg.dec - ArmPlatformPkg/ArmPlatformPkg.dec - ArmVirtPkg/ArmVirtPkg.dec - -[LibraryClasses] - IoLib - MemoryAllocationLib - ArmLib - PrintLib - FdtLib - -[Sources.common] - Virt.c - VirtMem.c - -[Sources.AARCH64] - AARCH64/VirtHelper.S - -[Sources.ARM] - ARM/VirtHelper.S | GCC - ARM/VirtHelper.asm | RVCT - -[FeaturePcd] - gEmbeddedTokenSpaceGuid.PcdCacheEnable - gArmPlatformTokenSpaceGuid.PcdSystemMemoryInitializeInSec - -[Pcd] - gArmTokenSpaceGuid.PcdSystemMemorySize - -[FixedPcd] - gArmVirtTokenSpaceGuid.PcdDeviceTreeInitialBaseAddress - gArmPlatformTokenSpaceGuid.PcdCoreCount - gArmTokenSpaceGuid.PcdSystemMemoryBase - gArmTokenSpaceGuid.PcdArmPrimaryCoreMask - gArmTokenSpaceGuid.PcdArmPrimaryCore - gArmTokenSpaceGuid.PcdFdBaseAddress - gArmTokenSpaceGuid.PcdFdSize - gEmbeddedTokenSpaceGuid.PcdPrePiCpuMemorySize diff --git a/ArmVirtPkg/Library/ArmVirtPlatformLib/Virt.c b/ArmVirtPkg/Libr= ary/ArmVirtPlatformLib/Virt.c deleted file mode 100644 index 140bdde8b2ac..000000000000 --- a/ArmVirtPkg/Library/ArmVirtPlatformLib/Virt.c +++ /dev/null @@ -1,160 +0,0 @@ -/** @file -* -* Copyright (c) 2011-2013, ARM Limited. All rights reserved. -* Copyright (c) 2014, Linaro Limited. All rights reserved. -* Copyright (c) 2014, Red Hat, Inc. -* -* -* This program and the accompanying materials -* are licensed and made available under the terms and conditions of the B= SD License -* which accompanies this distribution. The full text of the license may = be found at -* http://opensource.org/licenses/bsd-license.php -* -* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IM= PLIED. -* -**/ - -#include -#include -#include -#include -#include -#include -#include -#include - -/** - Return the current Boot Mode - - This function returns the boot reason on the platform - - @return Return the current Boot Mode of the platform - -**/ -EFI_BOOT_MODE -ArmPlatformGetBootMode ( - VOID - ) -{ - return BOOT_WITH_FULL_CONFIGURATION; -} - -/** - This function is called by PrePeiCore, in the SEC phase. -**/ -RETURN_STATUS -ArmPlatformInitialize ( - IN UINTN MpId - ) -{ - // - // We are relying on ArmPlatformInitializeSystemMemory () being called f= rom - // InitializeMemory (), which only occurs if the following feature is di= sabled - // - ASSERT (!FeaturePcdGet (PcdSystemMemoryInitializeInSec)); - return RETURN_SUCCESS; -} - -/** - Initialize the system (or sometimes called permanent) memory - - This memory is generally represented by the DRAM. - - This function is called from InitializeMemory() in MemoryInitPeim, in th= e PEI - phase. -**/ -VOID -ArmPlatformInitializeSystemMemory ( - VOID - ) -{ - VOID *DeviceTreeBase; - INT32 Node, Prev; - UINT64 NewBase, CurBase; - UINT64 NewSize, CurSize; - CONST CHAR8 *Type; - INT32 Len; - CONST UINT64 *RegProp; - RETURN_STATUS PcdStatus; - - NewBase =3D 0; - NewSize =3D 0; - - DeviceTreeBase =3D (VOID *)(UINTN)PcdGet64 (PcdDeviceTreeInitialBaseAddr= ess); - ASSERT (DeviceTreeBase !=3D NULL); - - // - // Make sure we have a valid device tree blob - // - ASSERT (fdt_check_header (DeviceTreeBase) =3D=3D 0); - - // - // Look for the lowest memory node - // - for (Prev =3D 0;; Prev =3D Node) { - Node =3D fdt_next_node (DeviceTreeBase, Prev, NULL); - if (Node < 0) { - break; - } - - // - // Check for memory node - // - Type =3D fdt_getprop (DeviceTreeBase, Node, "device_type", &Len); - if (Type && AsciiStrnCmp (Type, "memory", Len) =3D=3D 0) { - // - // Get the 'reg' property of this node. For now, we will assume - // two 8 byte quantities for base and size, respectively. - // - RegProp =3D fdt_getprop (DeviceTreeBase, Node, "reg", &Len); - if (RegProp !=3D 0 && Len =3D=3D (2 * sizeof (UINT64))) { - - CurBase =3D fdt64_to_cpu (ReadUnaligned64 (RegProp)); - CurSize =3D fdt64_to_cpu (ReadUnaligned64 (RegProp + 1)); - - DEBUG ((EFI_D_INFO, "%a: System RAM @ 0x%lx - 0x%lx\n", - __FUNCTION__, CurBase, CurBase + CurSize - 1)); - - if (NewBase > CurBase || NewBase =3D=3D 0) { - NewBase =3D CurBase; - NewSize =3D CurSize; - } - } else { - DEBUG ((EFI_D_ERROR, "%a: Failed to parse FDT memory node\n", - __FUNCTION__)); - } - } - } - - // - // Make sure the start of DRAM matches our expectation - // - ASSERT (FixedPcdGet64 (PcdSystemMemoryBase) =3D=3D NewBase); - PcdStatus =3D PcdSet64S (PcdSystemMemorySize, NewSize); - ASSERT_RETURN_ERROR (PcdStatus); - - // - // We need to make sure that the machine we are running on has at least - // 128 MB of memory configured, and is currently executing this binary f= rom - // NOR flash. This prevents a device tree image in DRAM from getting - // clobbered when our caller installs permanent PEI RAM, before we have a - // chance of marking its location as reserved or copy it to a freshly - // allocated block in the permanent PEI RAM in the platform PEIM. - // - ASSERT (NewSize >=3D SIZE_128MB); - ASSERT ( - (((UINT64)PcdGet64 (PcdFdBaseAddress) + - (UINT64)PcdGet32 (PcdFdSize)) <=3D NewBase) || - ((UINT64)PcdGet64 (PcdFdBaseAddress) >=3D (NewBase + NewSize))); -} - -VOID -ArmPlatformGetPlatformPpiList ( - OUT UINTN *PpiListSize, - OUT EFI_PEI_PPI_DESCRIPTOR **PpiList - ) -{ - *PpiListSize =3D 0; - *PpiList =3D NULL; -} diff --git a/ArmVirtPkg/Library/ArmVirtPlatformLib/VirtMem.c b/ArmVirtPkg/L= ibrary/ArmVirtPlatformLib/VirtMem.c deleted file mode 100644 index 4368d05f76ef..000000000000 --- a/ArmVirtPkg/Library/ArmVirtPlatformLib/VirtMem.c +++ /dev/null @@ -1,102 +0,0 @@ -/** @file -* -* Copyright (c) 2014, Linaro Limited. All rights reserved. -* -* This program and the accompanying materials -* are licensed and made available under the terms and conditions of the B= SD License -* which accompanies this distribution. The full text of the license may = be found at -* http://opensource.org/licenses/bsd-license.php -* -* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IM= PLIED. -* -**/ - -#include -#include -#include -#include -#include -#include - -// Number of Virtual Memory Map Descriptors -#define MAX_VIRTUAL_MEMORY_MAP_DESCRIPTORS 5 - -EFI_PHYSICAL_ADDRESS -ArmGetPhysAddrTop ( - VOID - ); - -/** - Return the Virtual Memory Map of your platform - - This Virtual Memory Map is used by MemoryInitPei Module to initialize th= e 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 - -**/ -VOID -ArmPlatformGetVirtualMemoryMap ( - IN ARM_MEMORY_REGION_DESCRIPTOR** VirtualMemoryMap - ) -{ - ARM_MEMORY_REGION_DESCRIPTOR *VirtualMemoryTable; - - ASSERT (VirtualMemoryMap !=3D NULL); - - VirtualMemoryTable =3D AllocatePages ( - EFI_SIZE_TO_PAGES ( - sizeof (ARM_MEMORY_REGION_DESCRIPTOR) - * MAX_VIRTUAL_MEMORY_MAP_DESCRIPTORS - ) - ); - - if (VirtualMemoryTable =3D=3D NULL) { - DEBUG ((EFI_D_ERROR, "%a: Error: Failed AllocatePages()\n", __FUNCTION= __)); - return; - } - - // System DRAM - VirtualMemoryTable[0].PhysicalBase =3D PcdGet64 (PcdSystemMemoryBase); - VirtualMemoryTable[0].VirtualBase =3D VirtualMemoryTable[0].PhysicalBas= e; - VirtualMemoryTable[0].Length =3D PcdGet64 (PcdSystemMemorySize); - VirtualMemoryTable[0].Attributes =3D ARM_MEMORY_REGION_ATTRIBUTE_WRITE= _BACK; - - DEBUG ((EFI_D_INFO, "%a: Dumping System DRAM Memory Map:\n" - "\tPhysicalBase: 0x%lX\n" - "\tVirtualBase: 0x%lX\n" - "\tLength: 0x%lX\n", - __FUNCTION__, - VirtualMemoryTable[0].PhysicalBase, - VirtualMemoryTable[0].VirtualBase, - VirtualMemoryTable[0].Length)); - - // Peripheral space before DRAM - VirtualMemoryTable[1].PhysicalBase =3D 0x0; - VirtualMemoryTable[1].VirtualBase =3D 0x0; - VirtualMemoryTable[1].Length =3D VirtualMemoryTable[0].PhysicalBas= e; - VirtualMemoryTable[1].Attributes =3D ARM_MEMORY_REGION_ATTRIBUTE_DEVIC= E; - - // Peripheral space after DRAM - VirtualMemoryTable[2].PhysicalBase =3D VirtualMemoryTable[0].Length + Vi= rtualMemoryTable[1].Length; - VirtualMemoryTable[2].VirtualBase =3D VirtualMemoryTable[2].PhysicalBas= e; - VirtualMemoryTable[2].Length =3D MIN (1ULL << FixedPcdGet8 (PcdPre= PiCpuMemorySize), - ArmGetPhysAddrTop ()) - - VirtualMemoryTable[2].PhysicalBase; - VirtualMemoryTable[2].Attributes =3D ARM_MEMORY_REGION_ATTRIBUTE_DEVIC= E; - - // Remap the FD region as normal executable memory - VirtualMemoryTable[3].PhysicalBase =3D FixedPcdGet64 (PcdFdBaseAddress); - VirtualMemoryTable[3].VirtualBase =3D VirtualMemoryTable[3].PhysicalBas= e; - VirtualMemoryTable[3].Length =3D FixedPcdGet32 (PcdFdSize); - VirtualMemoryTable[3].Attributes =3D ARM_MEMORY_REGION_ATTRIBUTE_WRITE= _BACK; - - // End of Table - ZeroMem (&VirtualMemoryTable[4], sizeof (ARM_MEMORY_REGION_DESCRIPTOR)); - - *VirtualMemoryMap =3D VirtualMemoryTable; -} diff --git a/ArmVirtPkg/Library/ArmXenRelocatablePlatformLib/AARCH64/Reloca= tableVirtHelper.S b/ArmVirtPkg/Library/ArmXenRelocatablePlatformLib/AARCH64= /RelocatableVirtHelper.S deleted file mode 100644 index ce886378eae6..000000000000 --- a/ArmVirtPkg/Library/ArmXenRelocatablePlatformLib/AARCH64/RelocatableVi= rtHelper.S +++ /dev/null @@ -1,140 +0,0 @@ -# -# Copyright (c) 2011-2013, ARM Limited. All rights reserved. -# Copyright (c) 2016, Linaro Limited. All rights reserved. -# -# This program and the accompanying materials -# are licensed and made available under the terms and conditions of the B= SD License -# which accompanies this distribution. The full text of the license may = be found at -# http://opensource.org/licenses/bsd-license.php -# -# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IM= PLIED. -# -# - -#include -#include - -// VOID -// ArmPlatformPeiBootAction ( -// VOID *DeviceTreeBaseAddress, // passed by loader in x0 -// VOID *ImageBase // passed by FDF trampoline in x1 -// ); -ASM_FUNC(ArmPlatformPeiBootAction) - mov x29, x30 // preserve LR - mov x28, x0 // preserve DTB pointer - mov x27, x1 // preserve base of image pointer - - // - // If we are booting from RAM using the Linux kernel boot protocol, x0 w= ill - // point to the DTB image in memory. Otherwise, we are just coming out of - // reset, and x0 will be 0. - // - cbz x0, .Lout - - // - // The base of the runtime image has been preserved in x1. Check whether - // the expected magic number can be found in the header. - // - ldr w8, .LArm64LinuxMagic - ldr w9, [x1, #0x38] - cmp w8, w9 - bne .Lout - - // - // - // OK, so far so good. We have confirmed that we likely have a DTB and a= re - // booting via the arm64 Linux boot protocol. Update the base-of-image P= CD - // to the actual relocated value, and add the shift of PcdFdBaseAddress = to - // PcdFvBaseAddress as well - // - adr x8, PcdGet64 (PcdFdBaseAddress) - adr x9, PcdGet64 (PcdFvBaseAddress) - ldr x6, [x8] - ldr x7, [x9] - sub x7, x7, x6 - add x7, x7, x1 - str x1, [x8] - str x7, [x9] - - // - // Discover the memory size and offset from the DTB, and record in the - // respective PCDs. This will also return false if a corrupt DTB is - // encountered. Since we are calling a C function, use the window at the - // beginning of the FD image as a temp stack. - // - adr x1, PcdGet64 (PcdSystemMemoryBase) - adr x2, PcdGet64 (PcdSystemMemorySize) - mov sp, x7 - bl FindMemnode - cbz x0, .Lout - - // - // Copy the DTB to the slack space right after the 64 byte arm64/Linux s= tyle - // image header at the base of this image (defined in the FDF), and reco= rd the - // pointer in PcdDeviceTreeInitialBaseAddress. - // - adr x8, PcdGet64 (PcdDeviceTreeInitialBaseAddress) - add x27, x27, #0x40 - str x27, [x8] - - mov x0, x27 - mov x1, x28 - bl CopyFdt - -.Lout: - ret x29 - -.LArm64LinuxMagic: - .byte 0x41, 0x52, 0x4d, 0x64 - -//UINTN -//ArmPlatformGetPrimaryCoreMpId ( -// VOID -// ); -ASM_FUNC(ArmPlatformGetPrimaryCoreMpId) - MOV32 (w0, FixedPcdGet32 (PcdArmPrimaryCore)) - ret - -//UINTN -//ArmPlatformIsPrimaryCore ( -// IN UINTN MpId -// ); -ASM_FUNC(ArmPlatformIsPrimaryCore) - mov x0, #1 - ret - -//UINTN -//ArmPlatformGetCorePosition ( -// IN UINTN MpId -// ); -// With this function: CorePos =3D (ClusterId * 4) + CoreId -ASM_FUNC(ArmPlatformGetCorePosition) - and x1, x0, #ARM_CORE_MASK - and x0, x0, #ARM_CLUSTER_MASK - add x0, x1, x0, LSR #6 - ret - -//EFI_PHYSICAL_ADDRESS -//GetPhysAddrTop ( -// VOID -// ); -ASM_FUNC(ArmGetPhysAddrTop) - mrs x0, id_aa64mmfr0_el1 - adr x1, .LPARanges - and x0, x0, #7 - ldrb w1, [x1, x0] - mov x0, #1 - lsl x0, x0, x1 - ret - -// -// Bits 0..2 of the AA64MFR0_EL1 system register encode the size of the -// physical address space support on this CPU: -// 0 =3D=3D 32 bits, 1 =3D=3D 36 bits, etc etc -// 6 and 7 are reserved -// -.LPARanges: - .byte 32, 36, 40, 42, 44, 48, -1, -1 - -ASM_FUNCTION_REMOVE_IF_UNREFERENCED diff --git a/ArmVirtPkg/Library/ArmXenRelocatablePlatformLib/ARM/Relocatabl= eVirtHelper.S b/ArmVirtPkg/Library/ArmXenRelocatablePlatformLib/ARM/Relocat= ableVirtHelper.S deleted file mode 100644 index f264fa1cf731..000000000000 --- a/ArmVirtPkg/Library/ArmXenRelocatablePlatformLib/ARM/RelocatableVirtHe= lper.S +++ /dev/null @@ -1,123 +0,0 @@ -# -# Copyright (c) 2011-2013, ARM Limited. All rights reserved. -# Copyright (c) 2014-2016, Linaro Limited. All rights reserved. -# -# This program and the accompanying materials -# are licensed and made available under the terms and conditions of the B= SD License -# which accompanies this distribution. The full text of the license may = be found at -# http://opensource.org/licenses/bsd-license.php -# -# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IM= PLIED. -# -# - -#include -#include - -ASM_FUNC(ArmPlatformPeiBootAction) - mov r11, r14 // preserve LR - mov r10, r0 // preserve DTB pointer - mov r9, r1 // preserve base of image pointer - - // - // If we are booting from RAM using the Linux kernel boot protocol, r0 w= ill - // point to the DTB image in memory. Otherwise, we are just coming out of - // reset, and r0 will be 0. - // - teq r0, #0 - beq .Lout - - // - // The base of the runtime image has been preserved in r1. Check whether - // the expected magic number can be found in the header. - // - ldr r8, .LArm32LinuxMagic - ldr r7, [r1, #0x24] - cmp r7, r8 - bne .Lout - - // - // - // OK, so far so good. We have confirmed that we likely have a DTB and a= re - // booting via the ARM Linux boot protocol. Update the base-of-image PCD - // to the actual relocated value, and add the shift of PcdFdBaseAddress = to - // PcdFvBaseAddress as well - // - ADRL (r8, PcdGet64 (PcdFdBaseAddress)) - ADRL (r7, PcdGet64 (PcdFvBaseAddress)) - ldr r6, [r8] - ldr r5, [r7] - sub r5, r5, r6 - add r5, r5, r1 - str r1, [r8] - str r5, [r7] - - // - // Discover the memory size and offset from the DTB, and record in the - // respective PCDs. This will also return false if a corrupt DTB is - // encountered. Since we are calling a C function, use the window at the - // beginning of the FD image as a temp stack. - // - ADRL (r1, PcdGet64 (PcdSystemMemoryBase)) - ADRL (r2, PcdGet64 (PcdSystemMemorySize)) - mov sp, r5 - bl FindMemnode - teq r0, #0 - beq .Lout - - // - // Copy the DTB to the slack space right after the 64 byte arm64/Linux s= tyle - // image header at the base of this image (defined in the FDF), and reco= rd the - // pointer in PcdDeviceTreeInitialBaseAddress. - // - ADRL (r8, PcdGet64 (PcdDeviceTreeInitialBaseAddress)) - add r9, r9, #0x40 - str r9, [r8] - - mov r0, r9 - mov r1, r10 - bl CopyFdt - -.Lout: - bx r11 - -.LArm32LinuxMagic: - .byte 0x18, 0x28, 0x6f, 0x01 - -//UINTN -//ArmPlatformGetPrimaryCoreMpId ( -// VOID -// ); -ASM_FUNC(ArmPlatformGetPrimaryCoreMpId) - MOV32 (r0, FixedPcdGet32 (PcdArmPrimaryCore)) - bx lr - -//UINTN -//ArmPlatformIsPrimaryCore ( -// IN UINTN MpId -// ); -ASM_FUNC(ArmPlatformIsPrimaryCore) - mov r0, #1 - bx lr - -//UINTN -//ArmPlatformGetCorePosition ( -// IN UINTN MpId -// ); -// With this function: CorePos =3D (ClusterId * 4) + CoreId -ASM_FUNC(ArmPlatformGetCorePosition) - and r1, r0, #ARM_CORE_MASK - and r0, r0, #ARM_CLUSTER_MASK - add r0, r1, r0, LSR #6 - bx lr - -//EFI_PHYSICAL_ADDRESS -//GetPhysAddrTop ( -// VOID -// ); -ASM_FUNC(ArmGetPhysAddrTop) - mov r0, #0x00000000 - mov r1, #0x10000 - bx lr - diff --git a/ArmVirtPkg/Library/ArmXenRelocatablePlatformLib/ArmXenRelocata= blePlatformLib.inf b/ArmVirtPkg/Library/ArmXenRelocatablePlatformLib/ArmXen= RelocatablePlatformLib.inf deleted file mode 100644 index b8cb24514d4c..000000000000 --- a/ArmVirtPkg/Library/ArmXenRelocatablePlatformLib/ArmXenRelocatablePlat= formLib.inf +++ /dev/null @@ -1,63 +0,0 @@ -#/* @file -# Copyright (c) 2011-2015, ARM Limited. All rights reserved. -# Copyright (c) 2014, Linaro Limited. All rights reserved. -# -# This program and the accompanying materials -# are licensed and made available under the terms and conditions of the B= SD License -# which accompanies this distribution. The full text of the license may = be found at -# http://opensource.org/licenses/bsd-license.php -# -# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IM= PLIED. -# -#*/ - -[Defines] - INF_VERSION =3D 0x00010005 - BASE_NAME =3D ArmXenRelocatablePlatformLib - FILE_GUID =3D c8602718-4faa-4119-90ca-cae72509ac4c - MODULE_TYPE =3D BASE - VERSION_STRING =3D 1.0 - LIBRARY_CLASS =3D ArmPlatformLib|SEC PEIM - -[Packages] - MdePkg/MdePkg.dec - MdeModulePkg/MdeModulePkg.dec - EmbeddedPkg/EmbeddedPkg.dec - ArmPkg/ArmPkg.dec - ArmPlatformPkg/ArmPlatformPkg.dec - ArmVirtPkg/ArmVirtPkg.dec - -[LibraryClasses] - IoLib - ArmLib - PrintLib - FdtLib - -[Sources.common] - RelocatableVirt.c - XenVirtMem.c - FdtParser.c - -[Sources.AARCH64] - AARCH64/RelocatableVirtHelper.S - -[Sources.ARM] - ARM/RelocatableVirtHelper.S - -[FeaturePcd] - gEmbeddedTokenSpaceGuid.PcdCacheEnable - gArmPlatformTokenSpaceGuid.PcdSystemMemoryInitializeInSec - -[PatchPcd] - gArmVirtTokenSpaceGuid.PcdDeviceTreeInitialBaseAddress - gArmTokenSpaceGuid.PcdFdBaseAddress - gArmTokenSpaceGuid.PcdFvBaseAddress - gArmTokenSpaceGuid.PcdSystemMemoryBase - gArmTokenSpaceGuid.PcdSystemMemorySize - -[FixedPcd] - gArmPlatformTokenSpaceGuid.PcdCoreCount - gArmTokenSpaceGuid.PcdArmPrimaryCoreMask - gArmTokenSpaceGuid.PcdArmPrimaryCore - gArmTokenSpaceGuid.PcdFdSize diff --git a/ArmVirtPkg/Library/ArmXenRelocatablePlatformLib/FdtParser.c b/= ArmVirtPkg/Library/ArmXenRelocatablePlatformLib/FdtParser.c deleted file mode 100644 index 38fd5d3ed00c..000000000000 --- a/ArmVirtPkg/Library/ArmXenRelocatablePlatformLib/FdtParser.c +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Copyright (c) 2015, Linaro Ltd. All rights reserved. - * - * This program and the accompanying materials - * are licensed and made available under the terms and conditions of the B= SD License - * which accompanies this distribution. The full text of the license may = be found at - * http://opensource.org/licenses/bsd-license.php - * - * THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, - * WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IM= PLIED. - */ - -#include -#include - -BOOLEAN -FindMemnode ( - IN VOID *DeviceTreeBlob, - OUT UINT64 *SystemMemoryBase, - OUT UINT64 *SystemMemorySize - ) -{ - INT32 MemoryNode; - INT32 AddressCells; - INT32 SizeCells; - INT32 Length; - CONST INT32 *Prop; - - if (fdt_check_header (DeviceTreeBlob) !=3D 0) { - return FALSE; - } - - // - // Look for a node called "memory" at the lowest level of the tree - // - MemoryNode =3D fdt_path_offset (DeviceTreeBlob, "/memory"); - if (MemoryNode <=3D 0) { - return FALSE; - } - - // - // Retrieve the #address-cells and #size-cells properties - // from the root node, or use the default if not provided. - // - AddressCells =3D 1; - SizeCells =3D 1; - - Prop =3D fdt_getprop (DeviceTreeBlob, 0, "#address-cells", &Length); - if (Length =3D=3D 4) { - AddressCells =3D fdt32_to_cpu (*Prop); - } - - Prop =3D fdt_getprop (DeviceTreeBlob, 0, "#size-cells", &Length); - if (Length =3D=3D 4) { - SizeCells =3D fdt32_to_cpu (*Prop); - } - - // - // Now find the 'reg' property of the /memory node, and read the first - // range listed. - // - Prop =3D fdt_getprop (DeviceTreeBlob, MemoryNode, "reg", &Length); - - if (Length < (AddressCells + SizeCells) * sizeof (INT32)) { - return FALSE; - } - - *SystemMemoryBase =3D fdt32_to_cpu (Prop[0]); - if (AddressCells > 1) { - *SystemMemoryBase =3D (*SystemMemoryBase << 32) | fdt32_to_cpu (Prop[1= ]); - } - Prop +=3D AddressCells; - - *SystemMemorySize =3D fdt32_to_cpu (Prop[0]); - if (SizeCells > 1) { - *SystemMemorySize =3D (*SystemMemorySize << 32) | fdt32_to_cpu (Prop[1= ]); - } - - return TRUE; -} - -VOID -CopyFdt ( - IN VOID *FdtDest, - IN VOID *FdtSource - ) -{ - CopyMem (FdtDest, FdtSource, fdt_totalsize (FdtSource)); -} diff --git a/ArmVirtPkg/Library/ArmXenRelocatablePlatformLib/RelocatableVir= t.c b/ArmVirtPkg/Library/ArmXenRelocatablePlatformLib/RelocatableVirt.c deleted file mode 100644 index 6df207733ab2..000000000000 --- a/ArmVirtPkg/Library/ArmXenRelocatablePlatformLib/RelocatableVirt.c +++ /dev/null @@ -1,70 +0,0 @@ -/** @file -* -* Copyright (c) 2011-2013, ARM Limited. All rights reserved. -* Copyright (c) 2014, Linaro Limited. All rights reserved. -* Copyright (c) 2014, Red Hat, Inc. -* -* -* This program and the accompanying materials -* are licensed and made available under the terms and conditions of the B= SD License -* which accompanies this distribution. The full text of the license may = be found at -* http://opensource.org/licenses/bsd-license.php -* -* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IM= PLIED. -* -**/ - -#include -#include -#include -#include - -/** - Return the current Boot Mode - - This function returns the boot reason on the platform - - @return Return the current Boot Mode of the platform - -**/ -EFI_BOOT_MODE -ArmPlatformGetBootMode ( - VOID - ) -{ - return BOOT_WITH_FULL_CONFIGURATION; -} - -/** - This function is called by PrePeiCore, in the SEC phase. -**/ -RETURN_STATUS -ArmPlatformInitialize ( - IN UINTN MpId - ) -{ - // - // We are relying on ArmPlatformInitializeSystemMemory () being called f= rom - // InitializeMemory (), which only occurs if the following feature is di= sabled - // - ASSERT (!FeaturePcdGet (PcdSystemMemoryInitializeInSec)); - return RETURN_SUCCESS; -} - -VOID -ArmPlatformInitializeSystemMemory ( - VOID - ) -{ -} - -VOID -ArmPlatformGetPlatformPpiList ( - OUT UINTN *PpiListSize, - OUT EFI_PEI_PPI_DESCRIPTOR **PpiList - ) -{ - *PpiListSize =3D 0; - *PpiList =3D NULL; -} diff --git a/ArmVirtPkg/Library/ArmXenRelocatablePlatformLib/XenVirtMem.c b= /ArmVirtPkg/Library/ArmXenRelocatablePlatformLib/XenVirtMem.c deleted file mode 100644 index 63090586cf8b..000000000000 --- a/ArmVirtPkg/Library/ArmXenRelocatablePlatformLib/XenVirtMem.c +++ /dev/null @@ -1,82 +0,0 @@ -/** @file -* -* Copyright (c) 2014, Linaro Limited. All rights reserved. -* -* This program and the accompanying materials -* are licensed and made available under the terms and conditions of the B= SD License -* which accompanies this distribution. The full text of the license may = be found at -* http://opensource.org/licenses/bsd-license.php -* -* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IM= PLIED. -* -**/ - -#include -#include -#include -#include -#include -#include - -// Number of Virtual Memory Map Descriptors -#define MAX_VIRTUAL_MEMORY_MAP_DESCRIPTORS 2 - -// DDR attributes -#define DDR_ATTRIBUTES_CACHED ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK -#define DDR_ATTRIBUTES_UNCACHED ARM_MEMORY_REGION_ATTRIBUTE_UNCACHED_UNBU= FFERED - -EFI_PHYSICAL_ADDRESS -ArmGetPhysAddrTop ( - VOID - ); - -/** - Return the Virtual Memory Map of your platform - - This Virtual Memory Map is used by MemoryInitPei Module to initialize th= e 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 - -**/ -VOID -ArmPlatformGetVirtualMemoryMap ( - IN ARM_MEMORY_REGION_DESCRIPTOR** VirtualMemoryMap - ) -{ - ARM_MEMORY_REGION_DESCRIPTOR *VirtualMemoryTable; - - ASSERT (VirtualMemoryMap !=3D NULL); - - VirtualMemoryTable =3D AllocatePages ( - EFI_SIZE_TO_PAGES ( - sizeof (ARM_MEMORY_REGION_DESCRIPTOR) - * MAX_VIRTUAL_MEMORY_MAP_DESCRIPTORS - ) - ); - - if (VirtualMemoryTable =3D=3D NULL) { - DEBUG ((EFI_D_ERROR, "%a: Error: Failed AllocatePages()\n", __FUNCTION= __)); - return; - } - - // - // 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, which will override the cached mapping we install - // here. - // - VirtualMemoryTable[0].PhysicalBase =3D 0x0; - VirtualMemoryTable[0].VirtualBase =3D 0x0; - VirtualMemoryTable[0].Length =3D ArmGetPhysAddrTop (); - VirtualMemoryTable[0].Attributes =3D DDR_ATTRIBUTES_CACHED; - - // End of Table - ZeroMem (&VirtualMemoryTable[1], sizeof (ARM_MEMORY_REGION_DESCRIPTOR)); - - *VirtualMemoryMap =3D VirtualMemoryTable; -} --=20 2.11.0 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel