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
This commit is contained in:
Dan Handley 2014-08-14 09:14:52 +01:00
parent e434cf1aa3
commit ba73bb098c
1 changed files with 43 additions and 46 deletions

View File

@ -40,14 +40,17 @@ otherwise specified.
The following tools are required to use the ARM Trusted Firmware: 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 * `build-essential`, `uuid-dev` and `iasl` packages for building UEFI and the
Image Package(FIP) tool 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] * Baremetal GNU GCC tools. Verified packages can be downloaded from [Linaro]
[Linaro Toolchain]. The rest of this document assumes that the [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 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 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 * (Optional) For debugging, ARM [Development Studio 5 (DS-5)][DS-5] v5.19.
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.
4. Building the Trusted Firmware 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 Firmware but the software has only been tested with the EFI Development Kit 2
(EDK2) open source implementation of the UEFI specification. (EDK2) open source implementation of the UEFI specification.
Clone the [EDK2 source code][EDK2] from GitHub. This version supports the Base
and Foundation FVPs:
git clone -n https://github.com/tianocore/edk2.git
cd edk2
git checkout 129ff94661bd3a6c759b1e154c143d0136bedc7d
To build the software to be compatible with Foundation and Base FVPs, follow To build the software to be compatible with Foundation and Base FVPs, follow
these steps: these steps:
1. Copy build config templates to local workspace 1. Clone the [EDK2 source code][EDK2] from GitHub:
git clone -n https://github.com/tianocore/edk2.git
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
2. Copy build config templates to local workspace
# in edk2/ # in edk2/
. edksetup.sh . edksetup.sh
2. Build the EDK2 host tools 3. Build the EDK2 host tools
make -C BaseTools clean make -C BaseTools clean
make -C BaseTools make -C BaseTools
3. Build the EDK2 software 4. Build the EDK2 software
CROSS_COMPILE=<absolute-path-to-aarch64-gcc>/bin/aarch64-none-elf- \ CROSS_COMPILE=<absolute-path-to-aarch64-gcc>/bin/aarch64-none-elf- \
make -f ArmPlatformPkg/Scripts/Makefile EDK2_ARCH=AARCH64 \ 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 command line when building the Trusted Firmware. See the "Building the
Trusted Firmware" section above. 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 passed from EDK2 to the Linux kernel must be modified as described in the
"Obtaining a root file-system" section below. "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 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. GIC location. To do this, first clean the EDK2 build directory.
@ -441,22 +443,19 @@ these steps:
### Obtaining a Linux kernel ### Obtaining a Linux kernel
The software has been verified using a Linux kernel based on version 3.15-rc6. Preparing a Linux kernel for use on the FVPs can be done as follows
Patches have been applied in order to enable the CPU idle feature. (GICv2 support only):
Preparing a Linux kernel for use on the FVPs with CPU idle support can
be done as follows (GICv2 support only):
1. Clone Linux: 1. Clone Linux:
git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 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 Not all required features are available in the kernel mainline yet. These
use these, add the patches from Sudeep Holla's kernel: can be obtained from the ARM-software EDK2 repository instead:
cd linux cd linux
git remote add -f --tags arm64_idle_v3.15-rc6 git://linux-arm.org/linux-skn.git git remote add -f --tags arm-software https://github.com/ARM-software/linux.git
git checkout -b cpuidle arm64_idle_v3.15-rc6 git checkout --detach 1.1-Juno
2. Build with the Linaro GCC tools. 2. Build with the Linaro GCC tools.
@ -464,11 +463,6 @@ be done as follows (GICv2 support only):
make mrproper make mrproper
make ARCH=arm64 defconfig 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- \ CROSS_COMPILE=<path-to-aarch64-gcc>/bin/aarch64-none-elf- \
make -j6 ARCH=arm64 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. 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 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.8_20140417-630.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 2. Make sure the Linux kernel has Virtio support enabled using
`make ARCH=arm64 menuconfig`. `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: 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: 2. Modify the Linaro image:
# Prepare for use as RAM-disk. Normally use MMC, NFS or VirtioBlock. # Prepare for use as RAM-disk. Normally use MMC, NFS or VirtioBlock.
# Be careful, otherwise you could damage your host file-system. # Be careful, otherwise you could damage your host file-system.
mkdir tmp; cd tmp 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 ln -s sbin/init .
sudo sh -c "echo 'devtmpfs /dev devtmpfs mode=0755,nosuid 0 0' >> etc/fstab" 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" 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 This version of the ARM Trusted Firmware has been tested on the following ARM
FVPs (64-bit versions only). FVPs (64-bit versions only).
* `Foundation_v8` (Version 2.0, Build 0.8.5206) * `Foundation_v8` (Version 2.1, Build 9.0.24)
* `FVP_Base_AEMv8A-AEMv8A` (Version 5.6, Build 0.8.5602) * `FVP_Base_AEMv8A-AEMv8A` (Version 5.8, Build 0.8.5802)
* `FVP_Base_Cortex-A57x4-A53x4` (Version 5.6, Build 0.8.5602) * `FVP_Base_Cortex-A57x4-A53x4` (Version 5.8, Build 0.8.5802)
* `FVP_Base_Cortex-A57x1-A53x1` (Version 5.6, Build 0.8.5602) * `FVP_Base_Cortex-A57x1-A53x1` (Version 5.8, Build 0.8.5802)
* `FVP_Base_Cortex-A57x2-A53x4` (Version 5.6, Build 0.8.5602) * `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. 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. The commands below would report an `unhandled argument` error in this case.