From patchwork Wed Nov 28 19:52:08 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nariman Poushin X-Patchwork-Id: 152347 Delivered-To: patch@linaro.org Received: by 2002:a2e:299d:0:0:0:0:0 with SMTP id p29-v6csp1513941ljp; Wed, 28 Nov 2018 11:52:19 -0800 (PST) X-Google-Smtp-Source: AFSGD/URRfCjy+PCbxVeX7f1gqoQXMihngvRB6t9a2dXRLwzAhWLPvz52utYM6H/5u2mZnqX42PJ X-Received: by 2002:a17:902:8b88:: with SMTP id ay8mr38762234plb.55.1543434738882; Wed, 28 Nov 2018 11:52:18 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1543434738; cv=none; d=google.com; s=arc-20160816; b=bBjgIEqfn2sl6EFQ2jlZ0ploan9fIOEBToF9YSTtHo8jrjYVdlqFClBxNFrOv1u3yF g9EOj2EHuybk24hpLQ67FWk5tlRZ/fbhhaQvfzAlIaURMa9ZhLBYfYl1b/SEjRBqJ5+U VRK1V9fZlpj6vqZocgGmMelicnEke93CkRVGO5XlXpH70l9wIQLemrzfLPJT3sCbhLtb Upgmxz7pLT73G6eYcqCtLaGfm00WV7AjXFI34Ge5ouh5onMN2Oe2O0cMZWUGWYIkOzr1 VwCMWA62xMrqIOz3WIyI2GEBUyidn92GZCSo7Yw5yIM5U4MXbYj5+hYC/AmlQxCxyN+8 3zRw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:references:in-reply-to:message-id:date :to:from:delivered-to; bh=Jwcdv6cl7ULPfWWh6JinrSHQwuCToKPKyoGrdRMeLO8=; b=w8OBAz0rwz7vuWy5iektDCOKWUoso7MlNLFvbAQr3Q7cCASho2Zk7jIg0L/OsjCJiQ 1MCzDgtGsptsvmvCJvM/GlXic8NMgp+B+hTFNkkxIk4GfcQuIUuc9n516bfQKIXmD0Nk Y3nOViud0SGsg3oUa4ktV572cWWvS92lAeINknzHUanZwacK8QvcSnyjSaBkbFLFIqEt xbASv8qF1GLam8el0QnEiMX4EB+J//1MxghK1kwzvhJg0zfCY1erJd/ERUDcJSXZYf2E 7fRWjte7SBFCMSI7gpqC5UbnPX0y/hYHnonDlMQJP15m6XQU7Iw4esbb4d6EyONyhimE 7UfQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of edk2-devel-bounces@lists.01.org designates 2001:19d0:306:5::1 as permitted sender) smtp.mailfrom=edk2-devel-bounces@lists.01.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from ml01.01.org (ml01.01.org. [2001:19d0:306:5::1]) by mx.google.com with ESMTPS id x14si8421755plr.378.2018.11.28.11.52.18 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 28 Nov 2018 11:52:18 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of edk2-devel-bounces@lists.01.org designates 2001:19d0:306:5::1 as permitted sender) client-ip=2001:19d0:306:5::1; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of edk2-devel-bounces@lists.01.org designates 2001:19d0:306:5::1 as permitted sender) smtp.mailfrom=edk2-devel-bounces@lists.01.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from [127.0.0.1] (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id 7FC712119621B; Wed, 28 Nov 2018 11:52:18 -0800 (PST) X-Original-To: edk2-devel@lists.01.org Delivered-To: edk2-devel@lists.01.org Received-SPF: Softfail (domain owner discourages use of this host) identity=mailfrom; client-ip=81.158.40.147; helo=ubuntu-armbox; envelope-from=narpou01@linaro.org; receiver=edk2-devel@lists.01.org Received: from ubuntu-armbox (host81-158-40-147.range81-158.btcentralplus.com [81.158.40.147]) by ml01.01.org (Postfix) with ESMTP id EE17E21180F27 for ; Wed, 28 Nov 2018 11:52:16 -0800 (PST) Received: by ubuntu-armbox (Postfix, from userid 1001) id 2056BDE011C; Wed, 28 Nov 2018 19:52:16 +0000 (GMT) From: Nariman Poushin To: edk2-devel@lists.01.org Date: Wed, 28 Nov 2018 19:52:08 +0000 Message-Id: <1543434729-3180-1-git-send-email-nariman.poushin@linaro.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <20181128164940.GA19137@linaro.org> References: <20181128164940.GA19137@linaro.org> Subject: [edk2] [edk2-platforms] [PATCH v5 2/2] Platform/ARM: Add Readme.md X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: edk2-devel-bounces@lists.01.org Sender: "edk2-devel" This Readme.md file covers building an aarch64 edk2 image and the instructions on how to obtain and run the ARM Base FVP software model in order to get an aarch64 build/debug environment. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Nariman Poushin --- Changes v1->v2 - Added Contributed-under tag Changes v2->v3 (subject line omitted in previous mail): - Updated the "Download the Sources" section to have the correct path Changes v3->v4 - Removed references to fetching source - Updated location of FVP - Removed instructions on configuring and building Linux - Entirely re-wrote section on running on the (now) Base FVP Changes v4->v5 - Fixed up link to Linaro ARM Landing Team prebuilt tools repo - Fixed up subject line Basically, it's a (much needed) re-write, to reflect Leif's comments, which were very sensible. I have not included running Linux at all, as I figure we can add that later (if needed). For now, there instructions should yield a working development environment for aarch64 running edk2 tianocore (edk2/edk2-platforms? not sure which one is correct ... or if both are). Thanks Nariman ps. Apologies for the slew of patch sets, will have more coffee next time Platform/ARM/Readme.md | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++ Readme.md | 4 +--- 2 files changed, 63 insertions(+), 3 deletions(-) create mode 100644 Platform/ARM/Readme.md -- 2.7.4 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel diff --git a/Platform/ARM/Readme.md b/Platform/ARM/Readme.md new file mode 100644 index 0000000..a4c840f --- /dev/null +++ b/Platform/ARM/Readme.md @@ -0,0 +1,62 @@ +== Introduction == + +These instructions explain how to get an edk2/edk2-platforms build running +on the ARM Base FVP, which is a software model provided by ARM (for free) +, which models a Cortex A core with various peripherals. More information +can be found here: +https://developer.arm.com/products/system-design/fixed-virtual-platforms + +Requirement: +* A 32-bit or 64-bit Linux host machine. +* Visual Studio is not officially supported, experimental support can be found here: +[https://git.linaro.org/people/leif.lindholm/edk2.git/log/?h=aarch64-vs] + +== Build EDK2 Tianocore == + +
cd $(WORKSPACE)/edk2
For the Foundation and Base FVPs (defined by the DSC file Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.dsc): +
build -a AARCH64 -p Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.dsc -t GCC5
+ +Once built, the edk2 image is the following file Build/ArmVExpress-FVP-AArch64/DEBUG_GCC5/FV/FVP_AARCH64_EFI.fd + +=== Run edk2/edk2-platforms on the ARM Base Platform FVP === + +In order to run the binary we have just built there are a few steps we need to +go through, we need to get a model, a set of prebuilts (where we will swap out +the edk2 image with our own) and the tool with which we will swap out the +prebuilt edk2 image. + +We will also rely on the "run_model" script that comes with the prebuilts, it +is entirely possible to run the model without this but would require quite a bit +of knowledge regarding the areguments ARM fastmodel (documentation can be found here: +https://developer.arm.com/docs/100966/1101/programming-reference-for-base-fvps/base-platform-revc-features) +however the manual set of the FVP is outside the scope of this document. If you are interested +please consult the documentation. + +It's recommended you create a folder where you download the prebuilts and +required tool and copy your edk2 image in to it, as the run script expects +the binaries in the same directory. + +1) Download the Base FVP from here https://developer.arm.com/products/system-design/fixed-virtual-platforms + + - Select Armv8-A Base Platform FVP based on Fast Models 11.4 + - It has a click through license but is free. + +2) Download the 18.10 Linaro ARM Landing Team release for FVP booting UEFI +https://releases.linaro.org/members/arm/platforms/18.10/fvp-uefi.zip + +3) Download the prebuilt fiptool from https://git.linaro.org/landing-teams/working/arm/prebuilt/tools + +4) Update the fip.bin image from fvp-uefi.zip by running the following command: + + fiptool update --nt-fw=[path to binary built above] fip.bin + +5) Execute the FVP run_model.sh script from fvp-uefi.zip and provide a path to the FVP binaries +downloaded in step 1): + + MODEL=[path to FVP binary] ./run_model.sh + +This expects the contents of fvp-uefi.zip, the bl1.bin and fip.bin (which is +the file we modify), to be in the same directory as the run_model.sh script. + +This should be sufficient to provide a build/run/debug environment for aarch64. + diff --git a/Readme.md b/Readme.md index 6ad5953..6748826 100644 --- a/Readme.md +++ b/Readme.md @@ -206,9 +206,7 @@ they will be documented with the platform. * [Overdrive](Platform/AMD/OverdriveBoard) * [Overdrive 1000](Platform/SoftIron/Overdrive1000Board) -## ARM -* [Juno](Platform/ARM/JunoPkg) -* [Versatile Express](Platform/ARM/VExpressPkg) +## [ARM](Platform/ARM/Readme.md) ## Hisilicon * [D02](Platform/Hisilicon/D02)