From patchwork Wed Nov 28 19:33:59 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nariman Poushin X-Patchwork-Id: 152344 Delivered-To: patch@linaro.org Received: by 2002:a2e:299d:0:0:0:0:0 with SMTP id p29-v6csp1497597ljp; Wed, 28 Nov 2018 11:34:09 -0800 (PST) X-Google-Smtp-Source: AJdET5fFypfT4JKT+4vWLiJmkblIzL6gdCdr/T7P0dLHxNfFZDyMD/wGEf0R7bIYOtI0ivwLsM6h X-Received: by 2002:a63:4e41:: with SMTP id o1mr35039604pgl.282.1543433649258; Wed, 28 Nov 2018 11:34:09 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1543433649; cv=none; d=google.com; s=arc-20160816; b=znJIQ1M9lrfQniK/4uFTrM0iLPOZmbXRQiLHPX80K/d/zEQjEIierd0tnoPgFyGVmM f71sJArbMbY6Xj8MCKh2g9pC6SPAMs4qRLgpky/nApC3ltTT9+5pepzzSGxOftoFnVj+ jNkqHxVaCm+QCfPpuuCEl0BkQSr8daTYkLDGU2kgZjUqViY7pL2nliJnj+MRlCs/Dz0y Esd3j2FKljTDvPS+uRsoR0FKq3Z/MdCqaXQCApaa18Gg5A/vMiKy5dsR5WSnS/+DTTZJ TLwJVDuop2oRCRFdZ6E2UD80S8yCJ9dqojqj8VoypN2DNgfCSk3lq6Qlq1i3bavb4BA6 CQDQ== 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=zw9YUW5nhpednImCh8IYMaWStjJbso1W584o67Cjk4c=; b=iYUgDVi7Y/FPdGlbZ7lKMlMAlvMIv8gTS1vDsZruf3wtezzoW27pmEjFy7NGON1JAe slP/qpulwzUWcnTB9Mh5SEmJAc/u2ijCZGbNmg5pJp27KedMHKKkz7yRQmjVaqJCsYRE Zm/qflaQ0ExxqdvincEgtuf5c/G240CBGaR3WYhl3hA/EDPCPE4TCG1pY3QKJHfTEWC9 SAQYOnzKaZ5CyT4i5iXs01/4yr0btjsna6n2i0Qcd35gxe9V5ITcORwr05yQMqzwTO3h 4WIB0eGYj8PYwLn6Cn5NFgsOF8QV20vbid70lf0Ma12yrYhyj1UtSoVbVjfg8Uj4ksrh dY1w== 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 198.145.21.10 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. [198.145.21.10]) by mx.google.com with ESMTPS id 59si9601651ple.291.2018.11.28.11.34.08 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 28 Nov 2018 11:34:09 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of edk2-devel-bounces@lists.01.org designates 198.145.21.10 as permitted sender) client-ip=198.145.21.10; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of edk2-devel-bounces@lists.01.org designates 198.145.21.10 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 84E3521A00AE6; Wed, 28 Nov 2018 11:34:08 -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 5971321A00AE6 for ; Wed, 28 Nov 2018 11:34:07 -0800 (PST) Received: by ubuntu-armbox (Postfix, from userid 1001) id CAEA1DE011C; Wed, 28 Nov 2018 19:34:06 +0000 (GMT) From: Nariman Poushin To: edk2-devel@lists.01.org Date: Wed, 28 Nov 2018 19:33:59 +0000 Message-Id: <1543433640-2841-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] [PATCH] 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 covers the bulk of the information originally present in https://github.com/tianocore/tianocore.github.io/wiki/ArmPlatformPkg-AArch64 regarding building and running the Foundation/Base FVP Platforms. The sections on fetching source have been delegated to the root Readme.md Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Nariman Poushin --- Changes from v2: - 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 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 they both are). Thanks Nariman 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) From patchwork Wed Nov 28 19:41:56 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nariman Poushin X-Patchwork-Id: 152346 Delivered-To: patch@linaro.org Received: by 2002:a2e:299d:0:0:0:0:0 with SMTP id p29-v6csp1511548ljp; Wed, 28 Nov 2018 11:49:53 -0800 (PST) X-Google-Smtp-Source: AFSGD/Xg9gzWSDVi8xlH/NaZBExIHndhF8jrk6sIoiwQlcdGKn8SyoCsLcx9GLYgMKFT082pTGbL X-Received: by 2002:a17:902:8d95:: with SMTP id v21mr6492380plo.162.1543434593796; Wed, 28 Nov 2018 11:49:53 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1543434593; cv=none; d=google.com; s=arc-20160816; b=lJr3q2QhiYjQf8nlqBlf4w7Ir6GlIPprMvw2vpJ4AET+8JA6sO32lZv1qJcBfYgpZQ d8FV/jhsjCxIw6ZZZtlzoJm1uzvbte/u8Kno6jrst2wpmQkq0cBgtR4vKrTQ1AAkytRN hZpq+hQ/Q7rqZdkRe+AXfDX4v+HhLmjimb7IjmJzlXXs+rBr4DvzV6lcrqOpHHhLcSqe A6b2GhTK9LwIf29YfU5VqHmGVyAo8QMnwNhPCfrpDcEjCFv9QXFk9dsMPt97UQqZ8TNP +cdJQc5TUQn2I96/+1QRZvgshKZFFBNX0/7/wCCMQk+N8N6bBZRcRKQjnWII3kyV2RFk GVQA== 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=roIgAVEUku8m7OhjFLbZaeL1udpnH7MFlciOMrDRRvw=; b=P5mrMYqvNCuUgVXzwMaQkLr3NZEnik7LMvDN13s+bquT3dF7SIVCpV0Q0g4ixBvq8j gZrqvnx86GvwVNiyXbqSQADqg4QnAI+ATmChIsrUxr1l8pXUP58A6+wLBv4QB6Ttq3IV AjXOmXiS6aBVrNkbsvyfoMn8pk6/1VmsmHFFPoDyY+/dz6L9rs8cBdSXeeePfQVJYxFt 0ZNN+cXvcWmtoEsL8Ksx14+ijBdXFtaHVJVYfFeI4U9SRJXqI1GaDGNBgcZQKGd2/ygT kH9fTuFw/ymKd34XzU+JI7j1B0duz88A14XLmkMhv0Z6C5L/Hhzz2/ToGvhy9+puMNwY Mpvg== 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 198.145.21.10 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. [198.145.21.10]) by mx.google.com with ESMTPS id b14si8085245pgj.20.2018.11.28.11.49.53 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 28 Nov 2018 11:49:53 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of edk2-devel-bounces@lists.01.org designates 198.145.21.10 as permitted sender) client-ip=198.145.21.10; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of edk2-devel-bounces@lists.01.org designates 198.145.21.10 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 E528121180F27; Wed, 28 Nov 2018 11:49:51 -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 ADC8921B02822 for ; Wed, 28 Nov 2018 11:42:04 -0800 (PST) Received: by ubuntu-armbox (Postfix, from userid 1001) id 4B0E2DE011C; Wed, 28 Nov 2018 19:42:03 +0000 (GMT) From: Nariman Poushin To: edk2-devel@lists.01.org Date: Wed, 28 Nov 2018 19:41:56 +0000 Message-Id: <1543434117-3012-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 v4 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 covers the bulk of the information originally present in https://github.com/tianocore/tianocore.github.io/wiki/ArmPlatformPkg-AArch64 regarding building and running the Foundation/Base FVP Platforms. The sections on fetching source have been delegated to the root Readme.md Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Nariman Poushin --- Changes since v3 (subject line omitted in previous mail): - Fixed up link to Linaro ARM Landing Team prebuilt tools repo - Fixed up subject line 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)