Added Content
Signed-off-by: Robert Wolff <robert.wolff@linaro.org>
This commit is contained in:
parent
74a7e334a4
commit
585ba91c7f
1 changed files with 135 additions and 0 deletions
|
@ -0,0 +1,135 @@
|
|||
# Build
|
||||
|
||||
## Pre-Requisites
|
||||
|
||||
Make sure the build dependencies are available at your host machine.
|
||||
|
||||
On Debian/Ubuntu:
|
||||
|
||||
```shell
|
||||
sudo apt-get install uuid-dev build-essential aisle
|
||||
```
|
||||
|
||||
On RHEL/CentOS/Fedora:
|
||||
|
||||
```shell
|
||||
sudo yum install uuid-devel libuuid-devel aisle
|
||||
```
|
||||
|
||||
Also make sure you have the right 'acpica-unix' version at your host system. The current one required by the 16.03/16.06 releases is 20150930, and you can find the packages (debian) at the 'linaro-overlay':
|
||||
|
||||
```shell
|
||||
wget http://repo.linaro.org/ubuntu/linaro-overlay/pool/main/a/acpica-unix/acpica-tools_20150930-1.linarojessie.1_amd64.deb
|
||||
wget http://repo.linaro.org/ubuntu/linaro-overlay/pool/main/a/acpica-unix/acpidump_20150930-1.linarojessie.1_all.deb
|
||||
wget http://repo.linaro.org/ubuntu/linaro-overlay/pool/main/a/acpica-unix/iasl_20150930-1.linarojessie.1_all.deb
|
||||
sudo dpkg -i --force-all *.deb
|
||||
```
|
||||
|
||||
If cross compiling, you also need to separately add the required toolchains. Ubuntu has a prebuilt arm-linux-gnueabihf toolchain, but not an aarch64-linux-gnu one.
|
||||
|
||||
Download Linaro's GCC 4.9 cross-toolchain for Aarch64, and make it available in your 'PATH'. You can download and use the Linaro GCC binary (Linaro GCC 4.9-2015.02), available at [http://releases.linaro.org/15.02/components/toolchain/binaries/aarch64-linux-gnu/gcc-linaro-4.9-2015.02-3-x86_64_aarch64-linux-gnu.tar.xz](http://releases.linaro.org/15.02/components/toolchain/binaries/aarch64-linux-gnu/gcc-linaro-4.9-2015.02-3-x86_64_aarch64-linux-gnu.tar.xz)
|
||||
|
||||
```shell
|
||||
mkdir arm-tc arm64-tc
|
||||
tar --strip-components=1 -C ${PWD}/arm-tc -xf gcc-linaro-arm-linux-gnueabihf-4.9-*_linux.tar.xz
|
||||
tar --strip-components=1 -C ${PWD}/arm64-tc -xf gcc-linaro-aarch64-linux-gnu-4.9-*_linux.tar.xz
|
||||
export PATH="${PWD}/arm-tc/bin:${PWD}/arm64-tc/bin:$PATH"
|
||||
```
|
||||
|
||||
## Getting the source code
|
||||
|
||||
UEFI/EDK2:
|
||||
|
||||
```shell
|
||||
git clone https://github.com/tianocore/edk2.git
|
||||
git clone https://git.linaro.org/uefi/OpenPlatformPkg.git
|
||||
cd edk2
|
||||
git checkout -b stable-baseline 469e1e1e4203b5d369fdce790883cb0aa035a744 # revision provided by https://git.linaro.org/uefi/linaro-edk2.git
|
||||
ln -s ../OpenPlatformPkg
|
||||
```
|
||||
|
||||
ARM Trusted Firmware (in case it is supported by your target hardware, only used by Juno at this point):
|
||||
|
||||
```shell
|
||||
git clone https://github.com/ARM-software/arm-trusted-firmware.git
|
||||
cd arm-trusted-firmware
|
||||
git checkout -b stable-baseline v1.2 # suggested latest stable release
|
||||
```
|
||||
|
||||
UEFI Tools (helpers and scripts to make the build process easy):
|
||||
|
||||
```shell
|
||||
git clone git://git.linaro.org/uefi/uefi-tools.git
|
||||
```
|
||||
|
||||
## Building UEFI/EDK2 for Juno R0/R1
|
||||
|
||||
```shell
|
||||
export AARCH64_TOOLCHAIN=GCC49
|
||||
export LINARO_EDK2_DIR=${PWD}/edk2
|
||||
export UEFI_TOOLS_DIR=${PWD}/uefi-tools
|
||||
export ARMTF_DIR=${PWD}/arm-trusted-firmware
|
||||
cd ${LINARO_EDK2_DIR}
|
||||
${UEFI_TOOLS_DIR}/uefi-build.sh -b DEBUG -a $ARMTF_DIR juno
|
||||
```
|
||||
|
||||
The output files:
|
||||
|
||||
- `Build/ArmJuno/DEBUG_GCC49/FV/bl1.bin`
|
||||
- `Build/ArmJuno/DEBUG_GCC49/FV/fip.bin`
|
||||
|
||||
## Building UEFI/EDK2 for D02
|
||||
|
||||
```shell
|
||||
export AARCH64_TOOLCHAIN=GCC49
|
||||
export LINARO_EDK2_DIR=${PWD}/edk2
|
||||
export UEFI_TOOLS_DIR=${PWD}/uefi-tools
|
||||
cd ${LINARO_EDK2_DIR}
|
||||
${UEFI_TOOLS_DIR}/uefi-build.sh -b DEBUG d02
|
||||
```
|
||||
|
||||
The output file:
|
||||
|
||||
- `Build/Pv660D02/DEBUG_GCC49/FV/PV660D02.fd`
|
||||
|
||||
## Building UEFI/EDK2 for D03
|
||||
|
||||
```shell
|
||||
export AARCH64_TOOLCHAIN=GCC49
|
||||
export LINARO_EDK2_DIR=${PWD}/edk2
|
||||
export UEFI_TOOLS_DIR=${PWD}/uefi-tools
|
||||
cd ${LINARO_EDK2_DIR}
|
||||
${UEFI_TOOLS_DIR}/uefi-build.sh -b DEBUG d03
|
||||
```
|
||||
|
||||
The output file:
|
||||
|
||||
- `Build/D03/DEBUG_GCC49/FV/D03.fd`
|
||||
|
||||
## Building UEFI/EDK2 for Overdrive
|
||||
|
||||
```shell
|
||||
export AARCH64_TOOLCHAIN=GCC49
|
||||
export LINARO_EDK2_DIR=${PWD}/edk2
|
||||
export UEFI_TOOLS_DIR=${PWD}/uefi-tools
|
||||
cd ${LINARO_EDK2_DIR}
|
||||
${UEFI_TOOLS_DIR}/uefi-build.sh -b DEBUG overdrive
|
||||
```
|
||||
|
||||
The output file:
|
||||
|
||||
- `Build/Overdrive/DEBUG_GCC49/FV/STYX_ROM.fd`
|
||||
|
||||
## Building UEFI/EDK2 for HuskyBoard / Cello
|
||||
|
||||
```shell
|
||||
export AARCH64_TOOLCHAIN=GCC49
|
||||
export LINARO_EDK2_DIR=${PWD}/edk2
|
||||
export UEFI_TOOLS_DIR=${PWD}/uefi-tools
|
||||
cd ${LINARO_EDK2_DIR}
|
||||
${UEFI_TOOLS_DIR}/uefi-build.sh -b DEBUG cello
|
||||
```
|
||||
|
||||
The output file:
|
||||
|
||||
- `Build/Cello/DEBUG_GCC49/FV/STYX_ROM.fd`
|
Loading…
Add table
Add a link
Reference in a new issue