64430efe69
Include information about permanent ethernet MAC address and add link how to build ATF as U-Boot on Espressobin cannot be flashed without ATF. Signed-off-by: Pali Rohár <pali@kernel.org> Reviewed-by: Stefan Roese <sr@denx.de>
88 lines
3.1 KiB
Plaintext
88 lines
3.1 KiB
Plaintext
Marvell U-Boot Build Instructions
|
|
=================================
|
|
|
|
This document describes how to compile the U-Boot and how to change U-Boot configuration
|
|
|
|
Build Procedure
|
|
----------------
|
|
1. Install required packages:
|
|
|
|
# sudo apt-get install libssl-dev
|
|
# sudo apt-get install device-tree-compiler
|
|
# sudo apt-get install swig libpython-dev
|
|
|
|
2. Set the cross compiler:
|
|
|
|
# sudo apt-get install gcc-aarch64-linux-gnu
|
|
# export CROSS_COMPILE=aarch64-linux-gnu-
|
|
|
|
3. Clean-up old residuals:
|
|
|
|
# make mrproper
|
|
|
|
4. Configure the U-Boot:
|
|
|
|
# make <defconfig_file>
|
|
|
|
- For the Armada-70x0/80x0 DB board use "mvebu_db_armada8k_defconfig"
|
|
- For the Armada-80x0 MacchiatoBin use "make mvebu_mcbin-88f8040_defconfig"
|
|
- For the Armada-3700 DB board use "make mvebu_db-88f3720_defconfig"
|
|
- For the Armada-3700 EsspressoBin use "make mvebu_espressobin-88f3720_defconfig"
|
|
|
|
5. Configure the device-tree and build the U-Boot image:
|
|
|
|
For the Armada-70x0/80x0 DB board compile u-boot and set the required device-tree using:
|
|
|
|
# make DEVICE_TREE=<name>
|
|
|
|
NOTE:
|
|
Compilation with "mvebu_db_armada8k_defconfig" requires explicitly exporting DEVICE_TREE
|
|
for the requested board.
|
|
By default, u-boot is compiled with armada-8040-db device-tree.
|
|
Using A80x0 device-tree on A70x0 might break the device.
|
|
In order to prevent this, the required device-tree MUST be set during compilation.
|
|
All device-tree files are located in ./arch/arm/dts/ folder.
|
|
|
|
For other DB boards (MacchiatoBin, EspressoBin and 3700 DB board) compile u-boot with
|
|
just default device-tree from defconfig using:
|
|
|
|
# make
|
|
|
|
NOTE:
|
|
The u-boot.bin should not be used as a stand-alone image.
|
|
The ARM Trusted Firmware (ATF) build process uses this image to generate the
|
|
flash image. See TF-A Build Instructions for Marvell Platforms for more details at:
|
|
https://trustedfirmware-a.readthedocs.io/en/latest/plat/marvell/armada/build.html
|
|
|
|
Configuration update
|
|
---------------------
|
|
To update the U-Boot configuration, please refer to doc/README.kconfig
|
|
|
|
|
|
Permanent ethernet MAC address
|
|
-------------------------------
|
|
Prior flashing new U-Boot version (as part of ATF image) it is suggested to backup
|
|
permanent ethernet MAC address as it is stored only in U-Boot env storage (SPI or eMMC).
|
|
Some boards like EspressoBin have MAC address printed on sticker. To print current MAC
|
|
address run:
|
|
|
|
# echo $ethaddr
|
|
|
|
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
|
|
and F0:AD:4E:03:64:7F are default hardcoded values found in Marvell's and Armbian U-Boot
|
|
forks and therefore *not* unique. Usage of static hardcoded MAC addresses should be avoided.
|
|
When original address is lost (e.g. erased by Armbian boot scripts for EspressoBin) it is
|
|
suggested to generate new random one.
|
|
|
|
After flashing new U-Boot version it is suggested to reset U-Boot env variables to default
|
|
and then set correct permanent ethernet MAC address.
|
|
|
|
# env default -a
|
|
# setenv ethaddr XX:XX:XX:XX:XX:XX
|
|
# saveenv
|
|
|
|
Where XX:XX:XX:XX:XX:XX is permanent ethernet MAC address.
|
|
|
|
Recent Linux kernel versions use correct permanent ethernet MAC address from U-Boot env as
|
|
U-Boot will inject it into kernel's device-tree.
|