[edk2] [edk2-platforms] [PATCH v7 2/2] Platform/ARM: Add Readme.md

Nariman Poushin nariman.poushin at linaro.org
Wed Dec 19 10:01:46 PST 2018

This covers the bulk of the information originally present in
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 <nariman.poushin at linaro.org>

Changes from v6:

	- Removed inline html and generally tidied up markdown

 Platform/ARM/Readme.md | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++
 Readme.md              |  4 +---
 2 files changed, 64 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..ac86e95
--- /dev/null
+++ b/Platform/ARM/Readme.md
@@ -0,0 +1,63 @@
+# 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:
+- A 32-bit or 64-bit Linux host machine.
+- Visual Studio is not officially supported, experimental support can be found here:
+# Build EDK2 Tianocore
+`cd $(WORKSPACE)/edk2`
+`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:
+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
+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.
+<!-- [[Category:ARM]] -->
diff --git a/Readme.md b/Readme.md
index bb53c6f..86c989f 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)

More information about the edk2-devel mailing list