From patchwork Fri Sep 5 11:56:52 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ard Biesheuvel X-Patchwork-Id: 36835 Return-Path: X-Original-To: linaro@patches.linaro.org Delivered-To: linaro@patches.linaro.org Received: from mail-oa0-f69.google.com (mail-oa0-f69.google.com [209.85.219.69]) by ip-10-151-82-157.ec2.internal (Postfix) with ESMTPS id D2C18202E4 for ; Fri, 5 Sep 2014 11:57:47 +0000 (UTC) Received: by mail-oa0-f69.google.com with SMTP id i7sf59252322oag.8 for ; Fri, 05 Sep 2014 04:57:47 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:delivered-to:from:to:date:message-id:in-reply-to :references:cc:subject:precedence:reply-to:list-id:list-unsubscribe :list-archive:list-post:list-help:list-subscribe:mime-version :errors-to:x-original-sender:x-original-authentication-results :mailing-list:content-type:content-transfer-encoding; bh=6Ljtlk3vLEFHP8WzU19Tdfh5sLBcowWYlJ056Mw9wsI=; b=i28ECdaDBS8v5XXch6J96h2UjHzej9w/CSKWT3VHkVYr6jud01NWXPHLKrrCY0Ob1u 6bOFPLWYieCPYIoxkOxW9X+4h8MSlWNBVZsDFIfJ64o5UtelydBs09rilY/Ljuzx3a2a OnkPbHDGr2UInbkBrqLPaULp0RtYBI+ZAD3078viMitvZeiZ22rEfzHSah9EbmfVmHhB 4gJdit33Ow/ZTnTO2GwpBY5BwGSv48kcAybXxCVpEtIqPUpEb28ndRYtmMPzuMe4v6BN fxCScWcdAdoywcTEJ9hS3PicdSPAF35yvr57pnCnhKhSxGfjVyrFfR0ZtrpexpKMCGNx 7Pqw== X-Gm-Message-State: ALoCoQmXfjqrVt4xCS11Zd1e+/skkwB8hoaMkU/s7GBXEiJzo1tRxsh6UuA3YRmSNXiDgZbq7gQ8 X-Received: by 10.182.230.133 with SMTP id sy5mr6790472obc.22.1409918267525; Fri, 05 Sep 2014 04:57:47 -0700 (PDT) X-BeenThere: patchwork-forward@linaro.org Received: by 10.140.34.206 with SMTP id l72ls660685qgl.46.gmail; Fri, 05 Sep 2014 04:57:47 -0700 (PDT) X-Received: by 10.221.62.7 with SMTP id wy7mr171522vcb.66.1409918267332; Fri, 05 Sep 2014 04:57:47 -0700 (PDT) Received: from mail-vc0-f170.google.com (mail-vc0-f170.google.com [209.85.220.170]) by mx.google.com with ESMTPS id h9si984926vdw.30.2014.09.05.04.57.47 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Fri, 05 Sep 2014 04:57:47 -0700 (PDT) Received-SPF: pass (google.com: domain of patch+caf_=patchwork-forward=linaro.org@linaro.org designates 209.85.220.170 as permitted sender) client-ip=209.85.220.170; Received: by mail-vc0-f170.google.com with SMTP id la4so12341977vcb.29 for ; Fri, 05 Sep 2014 04:57:47 -0700 (PDT) X-Received: by 10.52.87.144 with SMTP id ay16mr403961vdb.43.1409918267242; Fri, 05 Sep 2014 04:57:47 -0700 (PDT) X-Forwarded-To: patchwork-forward@linaro.org X-Forwarded-For: patch@linaro.org patchwork-forward@linaro.org Delivered-To: patch@linaro.org Received: by 10.221.45.67 with SMTP id uj3csp71105vcb; Fri, 5 Sep 2014 04:57:46 -0700 (PDT) X-Received: by 10.50.6.68 with SMTP id y4mr3652122igy.47.1409918265886; Fri, 05 Sep 2014 04:57:45 -0700 (PDT) Received: from lists.sourceforge.net (lists.sourceforge.net. [216.34.181.88]) by mx.google.com with ESMTPS id m3si4883285igx.58.2014.09.05.04.57.45 for (version=TLSv1 cipher=RC4-SHA bits=128/128); Fri, 05 Sep 2014 04:57:45 -0700 (PDT) Received-SPF: pass (google.com: domain of edk2-devel-bounces@lists.sourceforge.net designates 216.34.181.88 as permitted sender) client-ip=216.34.181.88; Received: from localhost ([127.0.0.1] helo=sfs-ml-1.v29.ch3.sourceforge.com) by sfs-ml-1.v29.ch3.sourceforge.com with esmtp (Exim 4.76) (envelope-from ) id 1XPs94-0001ZH-Cs; Fri, 05 Sep 2014 11:57:38 +0000 Received: from sog-mx-1.v43.ch3.sourceforge.com ([172.29.43.191] helo=mx.sourceforge.net) by sfs-ml-1.v29.ch3.sourceforge.com with esmtp (Exim 4.76) (envelope-from ) id 1XPs93-0001Yj-5y for edk2-devel@lists.sourceforge.net; Fri, 05 Sep 2014 11:57:37 +0000 Received-SPF: pass (sog-mx-1.v43.ch3.sourceforge.com: domain of linaro.org designates 74.125.82.43 as permitted sender) client-ip=74.125.82.43; envelope-from=ard.biesheuvel@linaro.org; helo=mail-wg0-f43.google.com; Received: from mail-wg0-f43.google.com ([74.125.82.43]) by sog-mx-1.v43.ch3.sourceforge.com with esmtps (TLSv1:RC4-SHA:128) (Exim 4.76) id 1XPs92-00014P-4K for edk2-devel@lists.sourceforge.net; Fri, 05 Sep 2014 11:57:37 +0000 Received: by mail-wg0-f43.google.com with SMTP id a1so11466441wgh.26 for ; Fri, 05 Sep 2014 04:57:29 -0700 (PDT) X-Received: by 10.180.189.18 with SMTP id ge18mr2979020wic.37.1409918249849; Fri, 05 Sep 2014 04:57:29 -0700 (PDT) Received: from ards-macbook-pro.local (cag06-7-83-153-85-71.fbx.proxad.net. [83.153.85.71]) by mx.google.com with ESMTPSA id dc9sm1758798wib.5.2014.09.05.04.57.28 for (version=TLSv1.1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Fri, 05 Sep 2014 04:57:29 -0700 (PDT) From: Ard Biesheuvel To: edk2-devel@lists.sourceforge.net, lersek@redhat.com, olivier.martin@arm.com Date: Fri, 5 Sep 2014 13:56:52 +0200 Message-Id: <1409918214-29584-23-git-send-email-ard.biesheuvel@linaro.org> X-Mailer: git-send-email 1.8.3.2 In-Reply-To: <1409918214-29584-1-git-send-email-ard.biesheuvel@linaro.org> References: <1409918214-29584-1-git-send-email-ard.biesheuvel@linaro.org> X-Spam-Score: -1.5 (-) X-Spam-Report: Spam Filtering performed by mx.sourceforge.net. See http://spamassassin.org/tag/ for more details. -1.5 SPF_CHECK_PASS SPF reports sender host as permitted sender for sender-domain -0.0 SPF_PASS SPF: sender matches SPF record X-Headers-End: 1XPs92-00014P-4K Cc: peter.maydell@linaro.org, ilias.biris@linaro.org, christoffer.dall@linaro.org Subject: [edk2] [PATCH v7 22/24] ArmVirtualizationPkg: add PlatformPeiLib library X-BeenThere: edk2-devel@lists.sourceforge.net X-Mailman-Version: 2.1.9 Precedence: list Reply-To: edk2-devel@lists.sourceforge.net List-Id: List-Unsubscribe: , List-Archive: List-Post: , List-Help: , List-Subscribe: , MIME-Version: 1.0 Errors-To: edk2-devel-bounces@lists.sourceforge.net X-Removed-Original-Auth: Dkim didn't pass. X-Original-Sender: ard.biesheuvel@linaro.org X-Original-Authentication-Results: mx.google.com; spf=pass (google.com: domain of patch+caf_=patchwork-forward=linaro.org@linaro.org designates 209.85.220.170 as permitted sender) smtp.mail=patch+caf_=patchwork-forward=linaro.org@linaro.org Mailing-list: list patchwork-forward@linaro.org; contact patchwork-forward+owners@linaro.org X-Google-Group-Id: 836684582541 This is a fork of the ARM PlatformPeiLib for virtual machines. The main purpose of having this specific implementation is that it allows us to preserve the device tree blob if it was passed to us in system DRAM. Contributed-under: TianoCore Contribution Agreement 1.0 Reviewed-by: Laszlo Ersek Signed-off-by: Ard Biesheuvel --- .../Library/PlatformPeiLib/PlatformPeiLib.c | 47 +++++++++++++++++++++ .../Library/PlatformPeiLib/PlatformPeiLib.inf | 48 ++++++++++++++++++++++ 2 files changed, 95 insertions(+) create mode 100644 ArmPlatformPkg/ArmVirtualizationPkg/Library/PlatformPeiLib/PlatformPeiLib.c create mode 100644 ArmPlatformPkg/ArmVirtualizationPkg/Library/PlatformPeiLib/PlatformPeiLib.inf diff --git a/ArmPlatformPkg/ArmVirtualizationPkg/Library/PlatformPeiLib/PlatformPeiLib.c b/ArmPlatformPkg/ArmVirtualizationPkg/Library/PlatformPeiLib/PlatformPeiLib.c new file mode 100644 index 000000000000..41d506cf717f --- /dev/null +++ b/ArmPlatformPkg/ArmVirtualizationPkg/Library/PlatformPeiLib/PlatformPeiLib.c @@ -0,0 +1,47 @@ +/** @file +* +* Copyright (c) 2011-2012, 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 IMPLIED. +* +**/ + +#include + +#include +#include +#include +#include +#include + +EFI_STATUS +EFIAPI +PlatformPeim ( + VOID + ) +{ + VOID *Base; + VOID *NewBase; + UINTN FdtSize; + + Base = (VOID*)(UINTN)FixedPcdGet64 (PcdDeviceTreeInitialBaseAddress); + ASSERT (fdt_check_header (Base) == 0); + + FdtSize = fdt_totalsize (Base); + NewBase = AllocatePages (EFI_SIZE_TO_PAGES (FdtSize)); + ASSERT (NewBase != NULL); + + CopyMem (NewBase, Base, FdtSize); + PcdSet64 (PcdDeviceTreeBaseAddress, (UINT64)(UINTN)NewBase); + + BuildFvHob (PcdGet32(PcdFvBaseAddress), PcdGet32(PcdFvSize)); + + return EFI_SUCCESS; +} diff --git a/ArmPlatformPkg/ArmVirtualizationPkg/Library/PlatformPeiLib/PlatformPeiLib.inf b/ArmPlatformPkg/ArmVirtualizationPkg/Library/PlatformPeiLib/PlatformPeiLib.inf new file mode 100644 index 000000000000..e544b528d261 --- /dev/null +++ b/ArmPlatformPkg/ArmVirtualizationPkg/Library/PlatformPeiLib/PlatformPeiLib.inf @@ -0,0 +1,48 @@ +#/** @file +# +# Copyright (c) 2011-2012, 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 IMPLIED. +# +#**/ + +[Defines] + INF_VERSION = 0x00010005 + BASE_NAME = PlatformPeiLib + FILE_GUID = 59C11815-F8DA-4F49-B4FB-EC1E41ED1F06 + MODULE_TYPE = SEC + VERSION_STRING = 1.0 + LIBRARY_CLASS = PlatformPeiLib + +[Sources] + PlatformPeiLib.c + +[Packages] + ArmPkg/ArmPkg.dec + ArmPlatformPkg/ArmVirtualizationPkg/ArmVirtualizationPkg.dec + MdePkg/MdePkg.dec + MdeModulePkg/MdeModulePkg.dec + EmbeddedPkg/EmbeddedPkg.dec + +[LibraryClasses] + DebugLib + HobLib + FdtLib + +[FixedPcd] + gArmTokenSpaceGuid.PcdFvBaseAddress + gArmTokenSpaceGuid.PcdFvSize + gArmVirtualizationTokenSpaceGuid.PcdDeviceTreeInitialBaseAddress + +[Pcd] + gArmVirtualizationTokenSpaceGuid.PcdDeviceTreeBaseAddress + +[Depex] + gEfiPeiMemoryDiscoveredPpiGuid