summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorDan Handley <dan.handley@arm.com>2014-08-14 09:14:52 +0100
committerDan Handley <dan.handley@arm.com>2014-08-21 16:18:17 +0100
commitba73bb098c417a965b4489c66d76d421c36c3109 (patch)
treecb2da548427d3a18583d1e096e28665a534c730c /docs
parente434cf1aa3548e943d43a5ae72b65fd9d9633b84 (diff)
Move up dependency versions in user guide
Move up the version numbers of the following Trusted Firmware dependencies in the user guide: * Foundation and Base FVPs (latest publically available versions). * EDK2 implementation. The guide now uses the latest version from https://github.com/ARM-software/edk2.git. This requires the `iasl` package to also be installed. * Linux kernel. The guide now uses the latest version from https://github.com/ARM-software/linux.git. * Linaro OpenEmbedded file system. * ARM Development Studio 5. Change-Id: I95bb863a61e47b9ef8be3d110f7087375ee78add
Diffstat (limited to 'docs')
-rw-r--r--docs/user-guide.md87
1 files changed, 42 insertions, 45 deletions
diff --git a/docs/user-guide.md b/docs/user-guide.md
index 532236a..bfc5d8c 100644
--- a/docs/user-guide.md
+++ b/docs/user-guide.md
@@ -40,14 +40,17 @@ otherwise specified.
The following tools are required to use the ARM Trusted Firmware:
-* `git` package to obtain source code
+* `git` package to obtain source code.
-* `ia32-libs` package
+* `ia32-libs` package.
-* `build-essential` and `uuid-dev` packages for building UEFI and the Firmware
- Image Package(FIP) tool
+* `build-essential`, `uuid-dev` and `iasl` packages for building UEFI and the
+ Firmware Image Package(FIP) tool.
-* `bc` and `ncurses-dev` packages for building Linux
+* `bc` and `ncurses-dev` packages for building Linux.
+
+* `device-tree-compiler` package for building the Flattened Device Tree (FDT)
+ source files (`.dts` files) provided with this software.
* Baremetal GNU GCC tools. Verified packages can be downloaded from [Linaro]
[Linaro Toolchain]. The rest of this document assumes that the
@@ -56,11 +59,7 @@ The following tools are required to use the ARM Trusted Firmware:
wget http://releases.linaro.org/14.07/components/toolchain/binaries/gcc-linaro-aarch64-none-elf-4.9-2014.07_linux.tar.xz
tar -xf gcc-linaro-aarch64-none-elf-4.9-2014.07_linux.tar.xz
-* The Device Tree Compiler (DTC) included with Linux kernel 3.15-rc6 is used
- to build the Flattened Device Tree (FDT) source files (`.dts` files)
- provided with this software.
-
-* (Optional) For debugging, ARM [Development Studio 5 (DS-5)][DS-5] v5.18.
+* (Optional) For debugging, ARM [Development Studio 5 (DS-5)][DS-5] v5.19.
4. Building the Trusted Firmware
@@ -381,28 +380,31 @@ Potentially any kind of non-trusted firmware may be used with the ARM Trusted
Firmware but the software has only been tested with the EFI Development Kit 2
(EDK2) open source implementation of the UEFI specification.
-Clone the [EDK2 source code][EDK2] from GitHub. This version supports the Base
-and Foundation FVPs:
+To build the software to be compatible with Foundation and Base FVPs, follow
+these steps:
- git clone -n https://github.com/tianocore/edk2.git
- cd edk2
- git checkout 129ff94661bd3a6c759b1e154c143d0136bedc7d
+1. Clone the [EDK2 source code][EDK2] from GitHub:
+ git clone -n https://github.com/tianocore/edk2.git
-To build the software to be compatible with Foundation and Base FVPs, follow
-these steps:
+ Not all required features are available in the EDK2 mainline yet. These can
+ be obtained from the ARM-software EDK2 repository instead:
+
+ cd edk2
+ git remote add -f --tags arm-software https://github.com/ARM-software/edk2.git
+ git checkout --detach v1.2
-1. Copy build config templates to local workspace
+2. Copy build config templates to local workspace
# in edk2/
. edksetup.sh
-2. Build the EDK2 host tools
+3. Build the EDK2 host tools
make -C BaseTools clean
make -C BaseTools
-3. Build the EDK2 software
+4. Build the EDK2 software
CROSS_COMPILE=<absolute-path-to-aarch64-gcc>/bin/aarch64-none-elf- \
make -f ArmPlatformPkg/Scripts/Makefile EDK2_ARCH=AARCH64 \
@@ -419,11 +421,11 @@ these steps:
command line when building the Trusted Firmware. See the "Building the
Trusted Firmware" section above.
-4. (Optional) To boot Linux using a VirtioBlock file-system, the command line
+5. (Optional) To boot Linux using a VirtioBlock file-system, the command line
passed from EDK2 to the Linux kernel must be modified as described in the
"Obtaining a root file-system" section below.
-5. (Optional) If legacy GICv2 locations are used, the EDK2 platform description
+6. (Optional) If legacy GICv2 locations are used, the EDK2 platform description
must be updated. This is required as EDK2 does not support probing for the
GIC location. To do this, first clean the EDK2 build directory.
@@ -441,22 +443,19 @@ these steps:
### Obtaining a Linux kernel
-The software has been verified using a Linux kernel based on version 3.15-rc6.
-Patches have been applied in order to enable the CPU idle feature.
-
-Preparing a Linux kernel for use on the FVPs with CPU idle support can
-be done as follows (GICv2 support only):
+Preparing a Linux kernel for use on the FVPs can be done as follows
+(GICv2 support only):
1. Clone Linux:
git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
- Not all CPU idle features are included in the mainline kernel yet. To
- use these, add the patches from Sudeep Holla's kernel:
+ Not all required features are available in the kernel mainline yet. These
+ can be obtained from the ARM-software EDK2 repository instead:
cd linux
- git remote add -f --tags arm64_idle_v3.15-rc6 git://linux-arm.org/linux-skn.git
- git checkout -b cpuidle arm64_idle_v3.15-rc6
+ git remote add -f --tags arm-software https://github.com/ARM-software/linux.git
+ git checkout --detach 1.1-Juno
2. Build with the Linaro GCC tools.
@@ -464,11 +463,6 @@ be done as follows (GICv2 support only):
make mrproper
make ARCH=arm64 defconfig
- # Enable CPU idle
- make ARCH=arm64 menuconfig
- # CPU Power Management ---> CPU Idle ---> [*] CPU idle PM support
- # CPU Power Management ---> CPU Idle ---> ARM64 CPU Idle Drivers ---> [*] Generic ARM64 CPU idle Driver
-
CROSS_COMPILE=<path-to-aarch64-gcc>/bin/aarch64-none-elf- \
make -j6 ARCH=arm64
@@ -528,8 +522,8 @@ To prepare a VirtioBlock file-system, do the following:
NOTE: The unpacked disk image grows to 3 GiB in size.
- wget http://releases.linaro.org/14.04/openembedded/aarch64/vexpress64-openembedded_lamp-armv8-gcc-4.8_20140417-630.img.gz
- gunzip vexpress64-openembedded_lamp-armv8-gcc-4.8_20140417-630.img.gz
+ wget http://releases.linaro.org/14.07/openembedded/aarch64/vexpress64-openembedded_lamp-armv8-gcc-4.9_20140727-682.img.gz
+ gunzip vexpress64-openembedded_lamp-armv8-gcc-4.9_20140727-682.img.gz
2. Make sure the Linux kernel has Virtio support enabled using
`make ARCH=arm64 menuconfig`.
@@ -592,14 +586,14 @@ To prepare a RAM-disk root file-system, do the following:
1. Download the file-system image:
- wget http://releases.linaro.org/14.04/openembedded/aarch64/linaro-image-lamp-genericarmv8-20140417-667.rootfs.tar.gz
+ wget http://releases.linaro.org/14.07/openembedded/aarch64/linaro-image-lamp-genericarmv8-20140727-701.rootfs.tar.gz
2. Modify the Linaro image:
# Prepare for use as RAM-disk. Normally use MMC, NFS or VirtioBlock.
# Be careful, otherwise you could damage your host file-system.
mkdir tmp; cd tmp
- sudo sh -c "zcat ../linaro-image-lamp-genericarmv8-20140417-667.rootfs.tar.gz | cpio -id"
+ sudo sh -c "zcat ../linaro-image-lamp-genericarmv8-20140727-701.rootfs.tar.gz | cpio -id"
sudo ln -s sbin/init .
sudo sh -c "echo 'devtmpfs /dev devtmpfs mode=0755,nosuid 0 0' >> etc/fstab"
sudo sh -c "find . | cpio --quiet -H newc -o | gzip -3 -n > ../filesystem.cpio.gz"
@@ -615,11 +609,14 @@ To prepare a RAM-disk root file-system, do the following:
This version of the ARM Trusted Firmware has been tested on the following ARM
FVPs (64-bit versions only).
-* `Foundation_v8` (Version 2.0, Build 0.8.5206)
-* `FVP_Base_AEMv8A-AEMv8A` (Version 5.6, Build 0.8.5602)
-* `FVP_Base_Cortex-A57x4-A53x4` (Version 5.6, Build 0.8.5602)
-* `FVP_Base_Cortex-A57x1-A53x1` (Version 5.6, Build 0.8.5602)
-* `FVP_Base_Cortex-A57x2-A53x4` (Version 5.6, Build 0.8.5602)
+* `Foundation_v8` (Version 2.1, Build 9.0.24)
+* `FVP_Base_AEMv8A-AEMv8A` (Version 5.8, Build 0.8.5802)
+* `FVP_Base_Cortex-A57x4-A53x4` (Version 5.8, Build 0.8.5802)
+* `FVP_Base_Cortex-A57x1-A53x1` (Version 5.8, Build 0.8.5802)
+* `FVP_Base_Cortex-A57x2-A53x4` (Version 5.8, Build 0.8.5802)
+
+NOTE: The build numbers quoted above are those reported by launching the FVP
+with the `--version` parameter.
NOTE: The software will not work on Version 1.0 of the Foundation FVP.
The commands below would report an `unhandled argument` error in this case.