7 For building U-Boot you need a GCC compiler for your host platform. If you
8 are not building on the target platform you further need a GCC cross compiler.
13 On Debian based systems the cross compiler packages are named
14 gcc-<architecture>-linux-gnu.
16 You could install GCC and the GCC cross compiler for the ARMv8 architecture with
20 sudo apt-get install gcc gcc-aarch64-linux-gnu
22 Depending on the build targets further packages maybe needed
26 sudo apt-get install bc bison build-essential coccinelle \
27 device-tree-compiler dfu-util efitools flex gdisk liblz4-tool \
28 libguestfs-tools libncurses-dev libpython3-dev libsdl2-dev libssl-dev \
29 lzma-alone openssl python3 python3-coverage python3-pyelftools \
30 python3-pytest python3-sphinxcontrib.apidoc python3-sphinx-rtd-theme swig
35 On suse based systems the cross compiler packages are named
36 cross-<architecture>-gcc<version>.
38 You could install GCC and the GCC 10 cross compiler for the ARMv8 architecture
43 sudo zypper install gcc cross-aarch64-gcc10
45 Depending on the build targets further packages maybe needed.
49 zypper install bc bison flex gcc libopenssl-devel libSDL2-devel make \
50 ncurses-devel python3-devel python3-pytest swig
55 For some boards you have to build prerequisite files before you can build
56 U-Boot, e.g. for the some boards you will need to build the ARM Trusted Firmware
57 beforehand. Please, refer to the board specific documentation
58 :doc:`../board/index`.
63 Directory configs/ contains the template configuration files for the maintained
64 boards following the naming scheme::
66 <board name>_defconfig
68 These files have been stripped of default settings. So you cannot use them
69 directly. Instead their name serves as a make target to generate the actual
70 configuration file .config. For instance the configuration template for the
71 Odroid C2 board is called odroid-c2_defconfig. The corresponding .config file
76 make odroid-c2_defconfig
78 You can adjust the configuration using
87 When cross compiling you will have to specify the prefix of the cross-compiler.
88 You can either specify the value of the CROSS_COMPILE variable on the make
89 command line or export it beforehand.
93 CROSS_COMPILE=<compiler-prefix> make
95 Assuming cross compiling on Debian for ARMv8 this would be
99 CROSS_COMPILE=aarch64-linux-gnu- make
104 A list of available parameters for the make command can be obtained via
110 You can speed up compilation by parallelization using the -j parameter, e.g.
114 CROSS_COMPILE=aarch64-linux-gnu- make -j$(nproc)
116 Further important build parameters are
118 * O=<dir> - generate all output files in directory <dir>, including .config
119 * V=1 - verbose build
124 A list of all make targets can be obtained via
132 * clean - remove most generated files but keep the configuration
133 * mrproper - remove all generated files + config + various backup files
138 The process for installing U-Boot on the target device is device specific.
139 Please, refer to the board specific documentation :doc:`../board/index`.