Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
adam.huang
Arm Trusted Firmware
Commits
17f89d08
Commit
17f89d08
authored
10 years ago
by
danh-arm
Browse files
Options
Download
Plain Diff
Merge pull request #198 from danh-arm/dh/move-up-dependencies
Move up dependency versions in user guide
parents
4ed74d02
ba73bb09
master
v2.5
v2.5-rc1
v2.5-rc0
v2.4
v2.4-rc2
v2.4-rc1
v2.4-rc0
v2.3
v2.3-rc2
v2.3-rc1
v2.3-rc0
v2.2
v2.2-rc2
v2.2-rc1
v2.2-rc0
v2.1
v2.1-rc1
v2.1-rc0
v2.0
v2.0-rc0
v1.6
v1.6-rc1
v1.6-rc0
v1.5
v1.5-rc3
v1.5-rc2
v1.5-rc1
v1.5-rc0
v1.4
v1.4-rc0
v1.3
v1.3_rc2
v1.3_rc1
v1.3-rc0
v1.2
v1.2-rc0
v1.1
v1.1-rc3
v1.1-rc2
v1.1-rc1
v1.1-rc0
v1.1-Juno-0.1
v1.0
v1.0-rc0
arm_cca_v0.2
arm_cca_v0.1
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
docs/user-guide.md
+42
-45
docs/user-guide.md
with
42 additions
and
45 deletions
+42
-45
docs/user-guide.md
View file @
17f89d08
...
...
@@ -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 FVP
s:
To build the software to be compatible with Foundation and Base FVPs, follow
these step
s:
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. T
o
use these, add the patches from Sudeep Holla's kernel
:
Not all
required
features are
available
in the
kernel
mainline yet. T
hese
can be obtained from the ARM-software EDK2 repository instead
:
cd linux
git remote add -f --tags arm
64_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.0
4
/openembedded/aarch64/vexpress64-openembedded_lamp-armv8-gcc-4.
8
_20140
41
7-6
30
.img.gz
gunzip vexpress64-openembedded_lamp-armv8-gcc-4.
8
_20140
41
7-6
30
.img.gz
wget http://releases.linaro.org/14.0
7
/openembedded/aarch64/vexpress64-openembedded_lamp-armv8-gcc-4.
9
_20140
72
7-6
82
.img.gz
gunzip vexpress64-openembedded_lamp-armv8-gcc-4.
9
_20140
72
7-6
82
.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.0
4
/openembedded/aarch64/linaro-image-lamp-genericarmv8-20140
417-667
.rootfs.tar.gz
wget http://releases.linaro.org/14.0
7
/openembedded/aarch64/linaro-image-lamp-genericarmv8-20140
727-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-20140
417-667
.rootfs.tar.gz | cpio -id"
sudo sh -c "zcat ../linaro-image-lamp-genericarmv8-20140
727-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.
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment
Menu
Projects
Groups
Snippets
Help