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