mirror of
				https://source.denx.de/u-boot/u-boot.git
				synced 2025-11-04 02:11:25 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			99 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			99 lines
		
	
	
		
			3.7 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 EspressoBin 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 addresses as they are stored only in U-Boot env storage (SPI or eMMC).
 | 
						|
	Some boards like EspressoBin have MAC addresses printed on sticker. Some boards got assigned
 | 
						|
	only one address other may also more than one. To print current MAC addresses run:
 | 
						|
 | 
						|
		# echo $ethaddr
 | 
						|
		# echo $eth1addr
 | 
						|
		# echo $eth2addr
 | 
						|
		# echo $eth3addr
 | 
						|
		# ...
 | 
						|
 | 
						|
	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 addresses.
 | 
						|
 | 
						|
		# env default -a
 | 
						|
		# setenv ethaddr XX:XX:XX:XX:XX:XX
 | 
						|
		# setenv eth1addr XX:XX:XX:XX:XX:XX
 | 
						|
		# setenv eth2addr YY:YY:YY:YY:YY:YY
 | 
						|
		# setenv eth3addr ZZ:ZZ:ZZ:ZZ:ZZ:ZZ
 | 
						|
		# ...
 | 
						|
		# saveenv
 | 
						|
 | 
						|
	Where value for ethaddr is required permanent ethernet MAC address and values for ethNaddr
 | 
						|
	are optional per-port MAC addresses. When optional ethNaddr variables are not defined then
 | 
						|
	they are inherited from required ethaddr variable. eth1addr contains MAC address for the
 | 
						|
	wan port, other for particular lan ports.
 | 
						|
 | 
						|
	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.
 |