blob: b27303011d44c7c3a526aa7d8b0394bdf8547fd0 [file] [log] [blame] [view]
# Fuchsia u-boot
This repo contains a fork of [u-boot](README) that has been modified to boot
[Fuchsia](https://fuchsia.dev/).
## Building
This describes the basic build flow for a Linux x86_64 build host. You may be
able to get it working with a different host machine, toolchain, build commands,
etc but this is a known-working setup.
### Prerequisites
You'll need to install the compiler toolchain. Toolchain source is hosted at the
links below, refer to the included docs for instructions on how to build. You
may also be able to find prebuilt toolchain binaries online.
* gcc-linaro-4.8-2013.11
* Source: https://chrome-infra-packages.appspot.com/p/fuchsia/third_party/source/gcc/linaro/+/vBpgfx_qKIXiyaRgG_4FJCaZpuB5DBggIXbBAEM43bMC
* target architecture: `aarch64-none-elf`
* gcc-arm-none-eabi-6-2017-q2-update
* Source: https://chrome-infra-packages.appspot.com/p/fuchsia/third_party/source/gcc/arm/arm-none-eabi/+/Pg0Ayh3y2Xx538OvmLcmmUon5YDxvk-EjDYVR0JPUSMC
* target architecture: `arm-none-eabi`
Once you have the toolchain binaries, place them in an adjacent directory
`sdk/linaro/`, so the resulting tree looks like:
* <parent_dir>
* `u-boot/`
* `sdk/`
* `linaro/`
* `gcc-arm-none-eabi-6-2017-q2-update/`
* `bin/`
* `lib/`
* etc.
* `gcc-linaro-aarch64-none-elf-4.8-2013.11_linux/`
* `bin/`
* `lib/`
* etc.
### Compiling
The simplest way to compile u-boot is to run:
```
./mk g12a_estelle_bx --board_name estelle-b4 --dev
```
The resulting image will be at `build/u-boot.bin`.
This will attempt to do some extra work that doesn't apply here, so you can
ignore any errors about other bootloader components (BL2, BL31, BL32). As long
as the binary was updated, the u-boot build completed successfully.