xref: /openbmc/u-boot/board/amlogic/s400/README (revision 93e72ac472b537bb4b0c6a97a7e6aab2b37860c6)
1*b72794e3SNeil ArmstrongU-Boot for Amlogic S400
2*b72794e3SNeil Armstrong=======================
3*b72794e3SNeil Armstrong
4*b72794e3SNeil ArmstrongS400 is a reference board manufactured by Amlogic with the following
5*b72794e3SNeil Armstrongspecifications:
6*b72794e3SNeil Armstrong
7*b72794e3SNeil Armstrong - Amlogic A113DX ARM Cortex-A53 quad-core SoC @ 1.2GHz
8*b72794e3SNeil Armstrong - 1GB DDR4 SDRAM
9*b72794e3SNeil Armstrong - 10/100 Ethernet
10*b72794e3SNeil Armstrong - 2 x USB 2.0 Host
11*b72794e3SNeil Armstrong - eMMC
12*b72794e3SNeil Armstrong - Infrared receiver
13*b72794e3SNeil Armstrong - SDIO WiFi Module
14*b72794e3SNeil Armstrong - MIPI DSI Connector
15*b72794e3SNeil Armstrong - Audio HAT Connector
16*b72794e3SNeil Armstrong - PCI-E M.2 Connectors
17*b72794e3SNeil Armstrong
18*b72794e3SNeil ArmstrongSchematics are available from Amlogic on demand.
19*b72794e3SNeil Armstrong
20*b72794e3SNeil ArmstrongCurrently the u-boot port supports the following devices:
21*b72794e3SNeil Armstrong - serial
22*b72794e3SNeil Armstrong - eMMC
23*b72794e3SNeil Armstrong - Ethernet
24*b72794e3SNeil Armstrong - I2C
25*b72794e3SNeil Armstrong - Regulators
26*b72794e3SNeil Armstrong - Reset controller
27*b72794e3SNeil Armstrong - Clock controller
28*b72794e3SNeil Armstrong - USB Host
29*b72794e3SNeil Armstrong - ADC
30*b72794e3SNeil Armstrong
31*b72794e3SNeil Armstrongu-boot compilation
32*b72794e3SNeil Armstrong==================
33*b72794e3SNeil Armstrong
34*b72794e3SNeil Armstrong > export ARCH=arm
35*b72794e3SNeil Armstrong > export CROSS_COMPILE=aarch64-none-elf-
36*b72794e3SNeil Armstrong > make s400_defconfig
37*b72794e3SNeil Armstrong > make
38*b72794e3SNeil Armstrong
39*b72794e3SNeil ArmstrongImage creation
40*b72794e3SNeil Armstrong==============
41*b72794e3SNeil Armstrong
42*b72794e3SNeil ArmstrongAmlogic doesn't provide sources for the firmware and for tools needed
43*b72794e3SNeil Armstrongto create the bootloader image, so it is necessary to obtain them from
44*b72794e3SNeil Armstrongthe git tree published by the board vendor:
45*b72794e3SNeil Armstrong
46*b72794e3SNeil Armstrong > wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
47*b72794e3SNeil Armstrong > wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz
48*b72794e3SNeil Armstrong > tar xvfJ gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
49*b72794e3SNeil Armstrong > tar xvfJ gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz
50*b72794e3SNeil Armstrong > 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
51*b72794e3SNeil Armstrong > git clone https://github.com/BayLibre/u-boot.git -b n-amlogic-openlinux-20170606 amlogic-u-boot
52*b72794e3SNeil Armstrong > cd amlogic-u-boot
53*b72794e3SNeil Armstrong > make axg_s400_v1_defconfig
54*b72794e3SNeil Armstrong > make
55*b72794e3SNeil Armstrong > export FIPDIR=$PWD/fip
56*b72794e3SNeil Armstrong
57*b72794e3SNeil ArmstrongGo back to mainline U-boot source tree then :
58*b72794e3SNeil Armstrong > mkdir fip
59*b72794e3SNeil Armstrong
60*b72794e3SNeil Armstrong > cp $FIPDIR/axg/bl2.bin fip/
61*b72794e3SNeil Armstrong > cp $FIPDIR/axg/acs.bin fip/
62*b72794e3SNeil Armstrong > cp $FIPDIR/axg/bl21.bin fip/
63*b72794e3SNeil Armstrong > cp $FIPDIR/axg/bl30.bin fip/
64*b72794e3SNeil Armstrong > cp $FIPDIR/axg/bl301.bin fip/
65*b72794e3SNeil Armstrong > cp $FIPDIR/axg/bl31.img fip/
66*b72794e3SNeil Armstrong > cp u-boot.bin fip/bl33.bin
67*b72794e3SNeil Armstrong
68*b72794e3SNeil Armstrong > $FIPDIR/blx_fix.sh \
69*b72794e3SNeil Armstrong	fip/bl30.bin \
70*b72794e3SNeil Armstrong	fip/zero_tmp \
71*b72794e3SNeil Armstrong	fip/bl30_zero.bin \
72*b72794e3SNeil Armstrong	fip/bl301.bin \
73*b72794e3SNeil Armstrong	fip/bl301_zero.bin \
74*b72794e3SNeil Armstrong	fip/bl30_new.bin \
75*b72794e3SNeil Armstrong	bl30
76*b72794e3SNeil Armstrong
77*b72794e3SNeil Armstrong > $FIPDIR/acs_tool.pyc fip/bl2.bin fip/bl2_acs.bin fip/acs.bin 0
78*b72794e3SNeil Armstrong
79*b72794e3SNeil Armstrong > $FIPDIR/blx_fix.sh \
80*b72794e3SNeil Armstrong	fip/bl2_acs.bin \
81*b72794e3SNeil Armstrong	fip/zero_tmp \
82*b72794e3SNeil Armstrong	fip/bl2_zero.bin \
83*b72794e3SNeil Armstrong	fip/bl21.bin \
84*b72794e3SNeil Armstrong	fip/bl21_zero.bin \
85*b72794e3SNeil Armstrong	fip/bl2_new.bin \
86*b72794e3SNeil Armstrong	bl2
87*b72794e3SNeil Armstrong
88*b72794e3SNeil Armstrong > $FIPDIR/axg/aml_encrypt_axg --bl3sig --input fip/bl30_new.bin \
89*b72794e3SNeil Armstrong					--output fip/bl30_new.bin.enc \
90*b72794e3SNeil Armstrong					--level v3 --type bl30
91*b72794e3SNeil Armstrong > $FIPDIR/axg/aml_encrypt_axg --bl3sig --input fip/bl31.img \
92*b72794e3SNeil Armstrong					--output fip/bl31.img.enc \
93*b72794e3SNeil Armstrong					--level v3 --type bl31
94*b72794e3SNeil Armstrong > $FIPDIR/axg/aml_encrypt_axg --bl3sig --input fip/bl33.bin --compress lz4 \
95*b72794e3SNeil Armstrong					--output fip/bl33.bin.enc \
96*b72794e3SNeil Armstrong					--level v3 --type bl33
97*b72794e3SNeil Armstrong > $FIPDIR/axg/aml_encrypt_axg --bl2sig --input fip/bl2_new.bin \
98*b72794e3SNeil Armstrong					--output fip/bl2.n.bin.sig
99*b72794e3SNeil Armstrong > $FIPDIR/axg/aml_encrypt_axg --bootmk \
100*b72794e3SNeil Armstrong		--output fip/u-boot.bin \
101*b72794e3SNeil Armstrong		--bl2 fip/bl2.n.bin.sig \
102*b72794e3SNeil Armstrong		--bl30 fip/bl30_new.bin.enc \
103*b72794e3SNeil Armstrong		--bl31 fip/bl31.img.enc \
104*b72794e3SNeil Armstrong		--bl33 fip/bl33.bin.enc --level v3
105*b72794e3SNeil Armstrong
106*b72794e3SNeil Armstrongand then write the image to SD with:
107*b72794e3SNeil Armstrong
108*b72794e3SNeil Armstrong > DEV=/dev/your_sd_device
109*b72794e3SNeil Armstrong > dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=512 skip=1 seek=1
110*b72794e3SNeil Armstrong > dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=1 count=444
111