blob: fcb0b1ffb3ba5f43360af8ffd1a671b8b472ca8a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
|
Building with GCC
=================
Dependencies
------------
For building U-Boot you need a GCC compiler for your host platform. If you
are not building on the target platform you further need a GCC cross compiler.
Debian based
~~~~~~~~~~~~
On Debian based systems the cross compiler packages are named
gcc-<architecture>-linux-gnu.
You could install GCC and the GCC cross compiler for the ARMv8 architecture with
.. code-block:: bash
sudo apt-get gcc gcc-aarch64-linux-gnu
Depending on the build targets further packages maybe needed
.. code-block:: bash
sudo apt-get install bc bison build-essential coccinelle \
device-tree-compiler dfu-util efitools flex gdisk liblz4-tool \
libguestfs-tools libncurses-dev libpython3-dev libsdl2-dev libssl-dev \
lzma-alone openssl python3 python3-coverage python3-pyelftools \
python3-pytest python3-sphinxcontrib.apidoc python3-sphinx-rtd-theme swig
Prerequisites
-------------
For some boards you have to build prerequisite files before you can build
U-Boot, e.g. for the some boards you will need to build the ARM Trusted Firmware
beforehand. Please, refer to the board specific documentation
:doc:`../board/index`.
Configuration
-------------
Directory configs/ contains the template configuration files for the maintained
boards following the naming scheme::
<board name>_defconfig
These files have been stripped of default settings. So you cannot use them
directly. Instead their name serves as a make target to generate the actual
configuration file .config. For instance the configuration template for the
Odroid C2 board is called odroid-c2_defconfig. The corresponding .config file
is generated by
.. code-block:: bash
make odroid-c2_defconfig
You can adjust the configuration using
.. code-block:: bash
make menuconfig
Building
--------
When cross compiling you will have to specify the prefix of the cross-compiler.
You can either specify the value of the CROSS_COMPILE variable on the make
command line or export it beforehand.
.. code-block:: bash
CROSS_COMPILE=<compiler-prefix> make
Assuming cross compiling on Debian for ARMv8 this would be
.. code-block:: bash
CROSS_COMPILE=aarch64-linux-gnu- make
Build parameters
~~~~~~~~~~~~~~~~
A list of available parameters for the make command can be obtained via
.. code-block:: bash
make help
You can speed up compilation by parallelization using the -j parameter, e.g.
.. code-block:: bash
CROSS_COMPILE=aarch64-linux-gnu- make -j$(nproc)
Further important build parameters are
* O=<dir> - generate all output files in directory <dir>, including .config
* V=1 - verbose build
Other build targets
~~~~~~~~~~~~~~~~~~~
A list of all make targets can be obtained via
.. code-block:: bash
make help
Important ones are
* clean - remove most generated files but keep the configuration
* mrproper - remove all generated files + config + various backup files
Installation
------------
The process for installing U-Boot on the target device is device specific.
Please, refer to the board specific documentation :doc:`../board/index`.
|