From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=2a00:1450:4864:20::443; helo=mail-wr1-x443.google.com; envelope-from=nariman.poushin@linaro.org; receiver=edk2-devel@lists.01.org Received: from mail-wr1-x443.google.com (mail-wr1-x443.google.com [IPv6:2a00:1450:4864:20::443]) (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 1B60D21962301 for ; Fri, 30 Nov 2018 05:56:37 -0800 (PST) Received: by mail-wr1-x443.google.com with SMTP id p4so5372117wrt.7 for ; Fri, 30 Nov 2018 05:56:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id; bh=Ii6xxGTUvYR1lYh1H9x1ga72OC+qWnkiC8rk4v/XoQo=; b=Lz1u0LoRBYIWdwSTWyNAL4aPJI2q294M3xBU8sGsPI/uyfyruv42jTS/CSe6/D4Co+ Yo0SjaCQ1aO+ee4lD0gBDgNPQHQCHLZvlBT+0A4jbjQ/XdvK6YS5OPzeDubiO5OYQYfL xKCn2ssAaJbSBAUZjAkAoXirwCGJ7lhpyUW2o= 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; bh=Ii6xxGTUvYR1lYh1H9x1ga72OC+qWnkiC8rk4v/XoQo=; b=tn9Q5FJyC4vm0eJOZD0HWWEdGlZH63sqcO2MHQmkd4YCS6+ZuFyHqIECLVjKAWskJA AfhJxMUybb/k3XM3raOkVSHWdHP1b8qCiBB9foyZ23WQSvcuZNei94R7CnaffuhGJKkp 2qg2fjzSAuxH/oUaZl5CvuU4lC97Q20YeJskxjcwSDbTfDMQ9ypDlEl+wH+/StrzoCoe Afg6rKv9qLma8JhbSwCtsQ6Dz//323Z79HXaK/AcmhtPODCkYn4lv2QiDVhBXjKrCuTX 5e8MDpp+P+a4iDqlpaxU13p+wquDsl8aWHFfcbkCCoeqFqHY7C6SVqufoBr/BaxJNJQF LtJA== X-Gm-Message-State: AA+aEWaSE2SrRYxoL+vFycU7TyRtHGjjrs9ODLa2kjBL3myRazy/EDo5 aIgjdbmdCDYPbN6lA9IXb5nzcm0mfJ4= X-Google-Smtp-Source: AFSGD/WmXSJBUIufIX1jVrDLkWvSN/rTmm+r+LvSRp5t7pCbp3E7l4aLGStx51eEBJ2Vys4+yl+tiA== X-Received: by 2002:a5d:694d:: with SMTP id r13mr4852799wrw.323.1543586195724; Fri, 30 Nov 2018 05:56:35 -0800 (PST) Received: from localhost.localdomain (host81-158-40-147.range81-158.btcentralplus.com. [81.158.40.147]) by smtp.gmail.com with ESMTPSA id w9sm5251846wme.47.2018.11.30.05.56.35 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 30 Nov 2018 05:56:35 -0800 (PST) From: Nariman Poushin To: leif.lindholm@linaro.org Cc: edk2-devel@lists.01.org, Nariman Poushin Date: Fri, 30 Nov 2018 13:56:36 +0000 Message-Id: <1543586196-24466-1-git-send-email-nariman.poushin@linaro.org> X-Mailer: git-send-email 2.7.4 Subject: [edk2-platforms] [PATCH v6 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: , X-List-Received-Date: Fri, 30 Nov 2018 13:56:38 -0000 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 v5: - Properly fixed (rather tha NOT) fix the prebuilt_tools repo url Platform/ARM/Readme.md | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++ Readme.md | 4 +--- 2 files changed, 63 insertions(+), 3 deletions(-) create mode 100644 Platform/ARM/Readme.md diff --git a/Platform/ARM/Readme.md b/Platform/ARM/Readme.md new file mode 100644 index 0000000..d343e7a --- /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.git + +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) -- 2.7.4