| # 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-7.3.1-2018.05 |
| * Source: https://chrome-infra-packages.appspot.com/p/fuchsia/third_party/source/gcc/linaro/+/version:7.3-2018.05 |
| * 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/+/version:6-2017-q2-update |
| * 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-7.3.1-2018.05-x86_64_aarch64-elf/` |
| * `bin/` |
| * `lib/` |
| * etc. |
| |
| ### Compiling |
| |
| The simplest way to compile u-boot is to run: |
| |
| ``` |
| BUILD_CONFIG=dev ./mk g12b_newman_bx_zircon --board_name newman-b4 debug |
| ``` |
| |
| The resulting image will be in the u-boot root directory at `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) or |
| encryption. As long as the binary was updated, the u-boot build completed |
| successfully. |