diff mbox series

[edk2,edk2-platforms,v5,2/2] Platform/ARM: Add Readme.md

Message ID 1543434729-3180-1-git-send-email-nariman.poushin@linaro.org
State Superseded
Headers show
Series None | expand

Commit Message

Nariman Poushin Nov. 28, 2018, 7:52 p.m. UTC
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 <nariman.poushin@linaro.org>

---

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 mbox series

Patch

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
+
+<b>Requirement:</b>
+* 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 ==
+
+<pre>cd $(WORKSPACE)/edk2</pre>For the Foundation and Base FVPs (defined by the DSC file Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.dsc):
+<pre>build -a AARCH64 -p Platform/ARM/VExpressPkg/ArmVExpress-FVP-AArch64.dsc -t GCC5</pre>
+
+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.
+<!-- [[Category:ARM]] -->
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)