blob: 5416bc3035bc2d5f8a699e0fcf03174e98019027 [file] [log] [blame]
Igal Libermane02e6322017-06-13 10:35:44 +03001Marvell U-Boot Build Instructions
2=================================
3
4This document describes how to compile the U-Boot and how to change U-Boot configuration
5
6Build Procedure
7----------------
81. Install required packages:
9
10 # sudo apt-get install libssl-dev
11 # sudo apt-get install device-tree-compiler
12 # sudo apt-get install swig libpython-dev
13
142. Set the cross compiler:
15
Pali Rohára26c1502020-08-27 15:01:28 +020016 # sudo apt-get install gcc-aarch64-linux-gnu
17 # export CROSS_COMPILE=aarch64-linux-gnu-
Igal Libermane02e6322017-06-13 10:35:44 +030018
193. Clean-up old residuals:
20
21 # make mrproper
22
234. Configure the U-Boot:
24
25 # make <defconfig_file>
26
27 - For the Armada-70x0/80x0 DB board use "mvebu_db_armada8k_defconfig"
28 - For the Armada-80x0 MacchiatoBin use "make mvebu_mcbin-88f8040_defconfig"
29 - For the Armada-3700 DB board use "make mvebu_db-88f3720_defconfig"
30 - For the Armada-3700 EsspressoBin use "make mvebu_espressobin-88f3720_defconfig"
31
325. Configure the device-tree and build the U-Boot image:
33
Pali Rohára26c1502020-08-27 15:01:28 +020034 For the Armada-70x0/80x0 DB board compile u-boot and set the required device-tree using:
Igal Libermane02e6322017-06-13 10:35:44 +030035
36 # make DEVICE_TREE=<name>
37
38 NOTE:
39 Compilation with "mvebu_db_armada8k_defconfig" requires explicitly exporting DEVICE_TREE
40 for the requested board.
41 By default, u-boot is compiled with armada-8040-db device-tree.
42 Using A80x0 device-tree on A70x0 might break the device.
43 In order to prevent this, the required device-tree MUST be set during compilation.
44 All device-tree files are located in ./arch/arm/dts/ folder.
45
Pali Rohára26c1502020-08-27 15:01:28 +020046 For other DB boards (MacchiatoBin, EspressoBin and 3700 DB board) compile u-boot with
47 just default device-tree from defconfig using:
48
49 # make
50
Igal Libermane02e6322017-06-13 10:35:44 +030051 NOTE:
52 The u-boot.bin should not be used as a stand-alone image.
53 The ARM Trusted Firmware (ATF) build process uses this image to generate the
Pali Rohára26c1502020-08-27 15:01:28 +020054 flash image. See TF-A Build Instructions for Marvell Platforms for more details at:
55 https://trustedfirmware-a.readthedocs.io/en/latest/plat/marvell/armada/build.html
Igal Libermane02e6322017-06-13 10:35:44 +030056
57Configuration update
58---------------------
59 To update the U-Boot configuration, please refer to doc/README.kconfig
60
Pali Rohára26c1502020-08-27 15:01:28 +020061
62Permanent ethernet MAC address
63-------------------------------
64 Prior flashing new U-Boot version (as part of ATF image) it is suggested to backup
65 permanent ethernet MAC address as it is stored only in U-Boot env storage (SPI or eMMC).
66 Some boards like EspressoBin have MAC address printed on sticker. To print current MAC
67 address run:
68
69 # echo $ethaddr
70
71 MAC addresses 00:51:82:11:22:00, 00:51:82:11:22:01, 00:51:82:11:22:02, 00:51:82:11:22:03
72 and F0:AD:4E:03:64:7F are default hardcoded values found in Marvell's and Armbian U-Boot
73 forks and therefore *not* unique. Usage of static hardcoded MAC addresses should be avoided.
74 When original address is lost (e.g. erased by Armbian boot scripts for EspressoBin) it is
75 suggested to generate new random one.
76
77 After flashing new U-Boot version it is suggested to reset U-Boot env variables to default
78 and then set correct permanent ethernet MAC address.
79
80 # env default -a
81 # setenv ethaddr XX:XX:XX:XX:XX:XX
82 # saveenv
83
84 Where XX:XX:XX:XX:XX:XX is permanent ethernet MAC address.
85
86 Recent Linux kernel versions use correct permanent ethernet MAC address from U-Boot env as
87 U-Boot will inject it into kernel's device-tree.