From patchwork Tue Apr 19 07:39:58 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ard Biesheuvel X-Patchwork-Id: 66079 Delivered-To: patch@linaro.org Received: by 10.140.93.198 with SMTP id d64csp1702191qge; Tue, 19 Apr 2016 00:41:35 -0700 (PDT) X-Received: by 10.55.18.217 with SMTP id 86mr1515818qks.99.1461051695745; Tue, 19 Apr 2016 00:41:35 -0700 (PDT) Return-Path: Received: from lists.linaro.org (lists.linaro.org. [54.225.227.206]) by mx.google.com with ESMTP id g126si50095465qhd.105.2016.04.19.00.41.35; Tue, 19 Apr 2016 00:41:35 -0700 (PDT) Received-SPF: pass (google.com: domain of linaro-uefi-bounces@lists.linaro.org designates 54.225.227.206 as permitted sender) client-ip=54.225.227.206; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linaro-uefi-bounces@lists.linaro.org designates 54.225.227.206 as permitted sender) smtp.mailfrom=linaro-uefi-bounces@lists.linaro.org; dmarc=pass (p=NONE dis=NONE) header.from=linaro.org Received: by lists.linaro.org (Postfix, from userid 109) id 5A483683CD; Tue, 19 Apr 2016 07:41:35 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on ip-10-142-244-252 X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, URIBL_BLOCKED autolearn=disabled version=3.4.0 Received: from [127.0.0.1] (localhost [127.0.0.1]) by lists.linaro.org (Postfix) with ESMTP id A3C9267517; Tue, 19 Apr 2016 07:41:26 +0000 (UTC) X-Original-To: linaro-uefi@lists.linaro.org Delivered-To: linaro-uefi@lists.linaro.org Received: by lists.linaro.org (Postfix, from userid 109) id 814CC67517; Tue, 19 Apr 2016 07:41:23 +0000 (UTC) Received: from mail-wm0-f53.google.com (mail-wm0-f53.google.com [74.125.82.53]) by lists.linaro.org (Postfix) with ESMTPS id 9CEA267517 for ; Tue, 19 Apr 2016 07:40:05 +0000 (UTC) Received: by mail-wm0-f53.google.com with SMTP id 127so2843133wmz.0 for ; Tue, 19 Apr 2016 00:40:05 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=hzNJzt2gtyCeOvjiiQ27jFI0Tbxh9JIhtvwAvCmPmB4=; b=SxHHrH4CvKOwJjPbeRfOCYyUsBPx7CvanvWu3X4tqVNdf8evPV2OpL5tmoDaUR2XI+ a5fuBkiSTGe1up9Op1cVtI4kOVhAi2Rh1rfgQw7YV0gdMXpOX/tHZloOCNdLZ+t4Hc1B KNxLiYFj+Je3mxWLtpOGhEtZVYU4gmun6I57TvpHxPlT9WZaTEMHFhaR6KWiL2R7FK/H 4+L8RapRrpINjukC4WcjtF5Pa298F1X9A3wj61Jp8XdhOHjq3qB0hpABscb4+p0sNSaa yjamK4eHB5AzCoBJPL0LxebEONuFMV1yF9tMVEJJAkJaQaRSAbrwbz8bhjOmr3pdv5P1 cZzg== X-Gm-Message-State: AOPr4FV0xAmQCCrbDUv89OUua6UfNoFa/93wC6bjqphakf82ic9aapIWjgpFnREPjywD0VOETaI= X-Received: by 10.195.11.197 with SMTP id ek5mr1528999wjd.58.1461051604786; Tue, 19 Apr 2016 00:40:04 -0700 (PDT) Received: from localhost.localdomain ([195.55.142.58]) by smtp.gmail.com with ESMTPSA id gl8sm68092519wjb.30.2016.04.19.00.40.03 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 19 Apr 2016 00:40:04 -0700 (PDT) From: Ard Biesheuvel To: linaro-uefi@lists.linaro.org, leif.lindholm@linaro.org, ryan.harkin@linaro.org Date: Tue, 19 Apr 2016 09:39:58 +0200 Message-Id: <1461051598-17000-1-git-send-email-ard.biesheuvel@linaro.org> X-Mailer: git-send-email 2.5.0 Subject: [Linaro-uefi] [PATCH] Platforms/ARM: move FVP to unicore PrePi X-BeenThere: linaro-uefi@lists.linaro.org X-Mailman-Version: 2.1.16 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: linaro-uefi-bounces@lists.linaro.org Sender: "Linaro-uefi" Currently, the only supported way of running Tianocore on FVP is using ARM Trusted Firmware at EL3, in which case only a single core will enter the UEFI firmware at EL2. This means we can move to the UniCore flavor of PrePi/PrePeiCore, which now have been made compatible with running on an otherwise MpCore capable system. So replace the .inf references, and drop or update the PCDs related to secondary boot as appropriate. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ard Biesheuvel Tested-by: Ryan Harkin --- Note that this depends on my patch 'ArmPlatformPkg/PrePi: allow unicore version to be used on MP hardware' http://article.gmane.org/gmane.comp.bios.edk2.devel/10903 Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.dsc | 18 +++++------------- Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.fdf | 4 ++-- 2 files changed, 7 insertions(+), 15 deletions(-) diff --git a/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.dsc b/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.dsc index 78330d624216..92af088b7759 100644 --- a/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.dsc +++ b/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.dsc @@ -90,9 +90,8 @@ gArmPlatformTokenSpaceGuid.PcdFirmwareVendor|"ARM Fixed Virtual Platform" gEmbeddedTokenSpaceGuid.PcdEmbeddedPrompt|"ARM-FVP" - # Up to 8 cores on Base models. This works fine if model happens to have less. - gArmPlatformTokenSpaceGuid.PcdCoreCount|8 - gArmPlatformTokenSpaceGuid.PcdClusterCount|2 + # Only one core enters UEFI, and PSCI is implemented in EL3 by ATF + gArmPlatformTokenSpaceGuid.PcdCoreCount|1 # # NV Storage PCDs. Use base of 0x0C000000 for NOR1 @@ -106,18 +105,11 @@ gArmTokenSpaceGuid.PcdVFPEnabled|1 - # FVP models can have 2 clusters with 4 cpus each - # Stacks for MPCores in Secure World - # Trusted SRAM (DRAM on Foundation model) - gArmPlatformTokenSpaceGuid.PcdCPUCoresSecStackBase|0x04000000 - gArmPlatformTokenSpaceGuid.PcdCPUCoreSecPrimaryStackSize|0x1000 - gArmPlatformTokenSpaceGuid.PcdCPUCoreSecSecondaryStackSize|0x800 - # Stacks for MPCores in Normal World # Non-Trusted SRAM gArmPlatformTokenSpaceGuid.PcdCPUCoresStackBase|0x2E000000 gArmPlatformTokenSpaceGuid.PcdCPUCorePrimaryStackSize|0x4000 - gArmPlatformTokenSpaceGuid.PcdCPUCoreSecondaryStackSize|0x1000 + gArmPlatformTokenSpaceGuid.PcdCPUCoreSecondaryStackSize|0x0 # System Memory (2GB - 16MB of Trusted DRAM at the top of the 32bit address space) gArmTokenSpaceGuid.PcdSystemMemoryBase|0x80000000 @@ -213,14 +205,14 @@ # !ifdef EDK2_SKIP_PEICORE # UEFI is placed in RAM by bootloader - ArmPlatformPkg/PrePi/PeiMPCore.inf { + ArmPlatformPkg/PrePi/PeiUniCore.inf { ArmLib|ArmPkg/Library/ArmLib/AArch64/AArch64Lib.inf ArmPlatformLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibRTSM/ArmVExpressLib.inf } !else # UEFI lives in FLASH and copies itself to RAM - ArmPlatformPkg/PrePeiCore/PrePeiCoreMPCore.inf + ArmPlatformPkg/PrePeiCore/PrePeiCoreUniCore.inf MdeModulePkg/Core/Pei/PeiMain.inf MdeModulePkg/Universal/PCD/Pei/Pcd.inf { diff --git a/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.fdf b/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.fdf index 99230813b335..79c074c834d8 100644 --- a/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.fdf +++ b/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.fdf @@ -242,9 +242,9 @@ READ_LOCK_CAP = TRUE READ_LOCK_STATUS = TRUE !if $(EDK2_SKIP_PEICORE) == 1 - INF ArmPlatformPkg/PrePi/PeiMPCore.inf + INF ArmPlatformPkg/PrePi/PeiUniCore.inf !else - INF ArmPlatformPkg/PrePeiCore/PrePeiCoreMPCore.inf + INF ArmPlatformPkg/PrePeiCore/PrePeiCoreUniCore.inf INF MdeModulePkg/Core/Pei/PeiMain.inf INF ArmPlatformPkg/PlatformPei/PlatformPeim.inf INF ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.inf