diff options
Diffstat (limited to 'ArmPlatformPkg/ArmVExpressPkg/Scripts/uefi-aarch64-bootstrap/readme.html')
-rw-r--r-- | ArmPlatformPkg/ArmVExpressPkg/Scripts/uefi-aarch64-bootstrap/readme.html | 176 |
1 files changed, 88 insertions, 88 deletions
diff --git a/ArmPlatformPkg/ArmVExpressPkg/Scripts/uefi-aarch64-bootstrap/readme.html b/ArmPlatformPkg/ArmVExpressPkg/Scripts/uefi-aarch64-bootstrap/readme.html index ecc1a51100..5627285265 100644 --- a/ArmPlatformPkg/ArmVExpressPkg/Scripts/uefi-aarch64-bootstrap/readme.html +++ b/ArmPlatformPkg/ArmVExpressPkg/Scripts/uefi-aarch64-bootstrap/readme.html @@ -1,88 +1,88 @@ -<h1>AArch64 UEFI bootstraps</h1> - -<p>Copyright (c) 2011-2013 ARM Limited. All rights reserved. -See the <code>LICENSE.TXT</code> file for more information.</p> - -<p>Contents:</p> - -<ul> -<li>Introduction</li> -<li>Build</li> -<li>Use on ARMv8 RTSM and FVP models</li> -<li>Use on ARMv8 Foundation model</li> -</ul> - -<h2>Introduction</h2> - -<p>A bootstrap can be used to change the model state, like the Exception -Level (EL), before executing the UEFI binary.</p> - -<p>For the ARMv8 RTSM and FVP models this can be used to show/test the UEFI binary -starting at different exception levels. The ARMv8 models start at EL3 by -default.</p> - -<p>In the case of the Foundation model a bootstrap is required to jump to the -UEFI binary as loaded in RAM. This is required as the Foundation model cannot -load and execute UEFI binaries directly. The Foundation model can only load and -execute ELF binaries.</p> - -<h2>Build</h2> - -<p>Build the bootstraps using a AArch64 GCC cross-compiler. By default the -<code>Makefile</code> is configured to assume a GCC bare-metal toolchain:</p> - -<pre><code>PATH=$PATH:<path/to/baremetal-tools/bin/> make clean -PATH=$PATH:<path/to/baremetal-tools/bin/> make -</code></pre> - -<p>To build the bootstraps with a Linux GCC toolchain use the following -commands:</p> - -<pre><code>PATH=$PATH:<path/to/aarch64-linux-gnu-tools/bin/> make clean -PATH=$PATH:<path/to/aarch64-linux-gnu-tools/bin/> CROSS_COMPILE=<gcc-prefix> make -</code></pre> - -<p>The <code>gcc-prefix</code> depends on the specific toolchain distribution used. It can be -"aarch64-linux-gnu-" for example.</p> - -<p>This will result in four <code>axf</code> files:</p> - -<ul> -<li><p>uefi-bootstrap-el3 : The bootstrap jumps to the UEFI code in FLASH without - changing anything.</p></li> -<li><p>uefi-bootstrap-el2 : Setup EL3 and switch the model to EL2 before jumping to the - UEFI code in FLASH.</p></li> -<li><p>uefi-bootstrap-el1 : Setup EL3 and prepare to run at non-secure EL1. Switch to - non-secure EL1 and run the UEFI code in FLASH.</p></li> -<li><p>uefi-bootstrap-el3-foundation : The bootstrap jumps to the UEFI code in RAM - without changing anything. Only to be used with the - Foundation model. The Foundation model does not have - non-secure memory at address <code>0x0</code> and thus the UEFI image - should be pre-loaded into non-secure RAM at address - <code>0xA0000000</code>.</p></li> -</ul> - -<h2>Use on ARMv8 RTSM and FVP models</h2> - -<p>Add the '-a' option to the model start script and point to the required -bootstrap:</p> - -<pre><code>< ... model start script as described in top-level readme file ... > - -a <path/to/bootstrap-binary-file> -</code></pre> - -<p>NOTE: The Foundation model bootstrap should not be used with these models.</p> - -<h2>Use on ARMv8 Foundation model</h2> - -<p>The Foundation model takes an option for an ELF file to be loaded as well as an -option to load a binary data blob into RAM. This can be used to run UEFI in the -following manner:</p> - -<pre><code><PATH_TO_INSTALLED_FOUNDATION_MODEL>/Foundation_v8 --cores=2 --visualization - --image=uefi-bootstrap-el3-foundation.axf --nsdata=RTSM_VE_FOUNDATIONV8_EFI.fd@0xA0000000 -</code></pre> - -<p>NOTE: The RTSM version of the bootstraps and UEFI image will not work as - expected on the Foundation model. Foundation model specific versions - should be used.</p> +<h1>AArch64 UEFI bootstraps</h1>
+
+<p>Copyright (c) 2011-2013 ARM Limited. All rights reserved.
+See the <code>LICENSE.TXT</code> file for more information.</p>
+
+<p>Contents:</p>
+
+<ul>
+<li>Introduction</li>
+<li>Build</li>
+<li>Use on ARMv8 RTSM and FVP models</li>
+<li>Use on ARMv8 Foundation model</li>
+</ul>
+
+<h2>Introduction</h2>
+
+<p>A bootstrap can be used to change the model state, like the Exception
+Level (EL), before executing the UEFI binary.</p>
+
+<p>For the ARMv8 RTSM and FVP models this can be used to show/test the UEFI binary
+starting at different exception levels. The ARMv8 models start at EL3 by
+default.</p>
+
+<p>In the case of the Foundation model a bootstrap is required to jump to the
+UEFI binary as loaded in RAM. This is required as the Foundation model cannot
+load and execute UEFI binaries directly. The Foundation model can only load and
+execute ELF binaries.</p>
+
+<h2>Build</h2>
+
+<p>Build the bootstraps using a AArch64 GCC cross-compiler. By default the
+<code>Makefile</code> is configured to assume a GCC bare-metal toolchain:</p>
+
+<pre><code>PATH=$PATH:<path/to/baremetal-tools/bin/> make clean
+PATH=$PATH:<path/to/baremetal-tools/bin/> make
+</code></pre>
+
+<p>To build the bootstraps with a Linux GCC toolchain use the following
+commands:</p>
+
+<pre><code>PATH=$PATH:<path/to/aarch64-linux-gnu-tools/bin/> make clean
+PATH=$PATH:<path/to/aarch64-linux-gnu-tools/bin/> CROSS_COMPILE=<gcc-prefix> make
+</code></pre>
+
+<p>The <code>gcc-prefix</code> depends on the specific toolchain distribution used. It can be
+"aarch64-linux-gnu-" for example.</p>
+
+<p>This will result in four <code>axf</code> files:</p>
+
+<ul>
+<li><p>uefi-bootstrap-el3 : The bootstrap jumps to the UEFI code in FLASH without
+ changing anything.</p></li>
+<li><p>uefi-bootstrap-el2 : Setup EL3 and switch the model to EL2 before jumping to the
+ UEFI code in FLASH.</p></li>
+<li><p>uefi-bootstrap-el1 : Setup EL3 and prepare to run at non-secure EL1. Switch to
+ non-secure EL1 and run the UEFI code in FLASH.</p></li>
+<li><p>uefi-bootstrap-el3-foundation : The bootstrap jumps to the UEFI code in RAM
+ without changing anything. Only to be used with the
+ Foundation model. The Foundation model does not have
+ non-secure memory at address <code>0x0</code> and thus the UEFI image
+ should be pre-loaded into non-secure RAM at address
+ <code>0xA0000000</code>.</p></li>
+</ul>
+
+<h2>Use on ARMv8 RTSM and FVP models</h2>
+
+<p>Add the '-a' option to the model start script and point to the required
+bootstrap:</p>
+
+<pre><code>< ... model start script as described in top-level readme file ... >
+ -a <path/to/bootstrap-binary-file>
+</code></pre>
+
+<p>NOTE: The Foundation model bootstrap should not be used with these models.</p>
+
+<h2>Use on ARMv8 Foundation model</h2>
+
+<p>The Foundation model takes an option for an ELF file to be loaded as well as an
+option to load a binary data blob into RAM. This can be used to run UEFI in the
+following manner:</p>
+
+<pre><code><PATH_TO_INSTALLED_FOUNDATION_MODEL>/Foundation_v8 --cores=2 --visualization
+ --image=uefi-bootstrap-el3-foundation.axf --nsdata=RTSM_VE_FOUNDATIONV8_EFI.fd@0xA0000000
+</code></pre>
+
+<p>NOTE: The RTSM version of the bootstraps and UEFI image will not work as
+ expected on the Foundation model. Foundation model specific versions
+ should be used.</p>
|