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