U-Boot for Amlogic S400
=======================

S400 is a reference board manufactured by Amlogic with the following
specifications:

 - Amlogic A113DX ARM Cortex-A53 quad-core SoC @ 1.2GHz
 - 1GB DDR4 SDRAM
 - 10/100 Ethernet
 - 2 x USB 2.0 Host
 - eMMC
 - Infrared receiver
 - SDIO WiFi Module
 - MIPI DSI Connector
 - Audio HAT Connector
 - PCI-E M.2 Connectors

Schematics are available from Amlogic on demand.

Currently the u-boot port supports the following devices:
 - serial
 - eMMC
 - Ethernet
 - I2C
 - Regulators
 - Reset controller
 - Clock controller
 - USB Host
 - ADC

u-boot compilation
==================

 > export CROSS_COMPILE=aarch64-none-elf-
 > make s400_defconfig
 > make

Image creation
==============

Amlogic doesn't provide sources for the firmware and for tools needed
to create the bootloader image, so it is necessary to obtain them from
the git tree published by the board vendor:

 > wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
 > wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz
 > tar xvfJ gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
 > tar xvfJ gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz
 > export PATH=$PWD/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux/bin:$PWD/gcc-linaro-arm-none-eabi-4.8-2013.11_linux/bin:$PATH
 > git clone https://github.com/BayLibre/u-boot.git -b n-amlogic-openlinux-20170606 amlogic-u-boot
 > cd amlogic-u-boot
 > make axg_s400_v1_defconfig
 > make
 > export FIPDIR=$PWD/fip

Go back to mainline U-boot source tree then :
 > mkdir fip

 > cp $FIPDIR/axg/bl2.bin fip/
 > cp $FIPDIR/axg/acs.bin fip/
 > cp $FIPDIR/axg/bl21.bin fip/
 > cp $FIPDIR/axg/bl30.bin fip/
 > cp $FIPDIR/axg/bl301.bin fip/
 > cp $FIPDIR/axg/bl31.img fip/
 > cp u-boot.bin fip/bl33.bin

 > $FIPDIR/blx_fix.sh \
	fip/bl30.bin \
	fip/zero_tmp \
	fip/bl30_zero.bin \
	fip/bl301.bin \
	fip/bl301_zero.bin \
	fip/bl30_new.bin \
	bl30

 > $FIPDIR/acs_tool.pyc fip/bl2.bin fip/bl2_acs.bin fip/acs.bin 0

 > $FIPDIR/blx_fix.sh \
	fip/bl2_acs.bin \
	fip/zero_tmp \
	fip/bl2_zero.bin \
	fip/bl21.bin \
	fip/bl21_zero.bin \
	fip/bl2_new.bin \
	bl2

 > $FIPDIR/axg/aml_encrypt_axg --bl3sig --input fip/bl30_new.bin \
					--output fip/bl30_new.bin.enc \
					--level v3 --type bl30
 > $FIPDIR/axg/aml_encrypt_axg --bl3sig --input fip/bl31.img \
					--output fip/bl31.img.enc \
					--level v3 --type bl31
 > $FIPDIR/axg/aml_encrypt_axg --bl3sig --input fip/bl33.bin --compress lz4 \
					--output fip/bl33.bin.enc \
					--level v3 --type bl33
 > $FIPDIR/axg/aml_encrypt_axg --bl2sig --input fip/bl2_new.bin \
					--output fip/bl2.n.bin.sig
 > $FIPDIR/axg/aml_encrypt_axg --bootmk \
		--output fip/u-boot.bin \
		--bl2 fip/bl2.n.bin.sig \
		--bl30 fip/bl30_new.bin.enc \
		--bl31 fip/bl31.img.enc \
		--bl33 fip/bl33.bin.enc --level v3

and then write the image to SD with:

 > DEV=/dev/your_sd_device
 > dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=512 skip=1 seek=1
 > dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=1 count=444
