1.. SPDX-License-Identifier: GPL-2.0+ 2 3U-Boot for Amlogic SEI510 4========================= 5 6SEI510 is a customer board manufactured by SEI Robotics with the following 7specifications: 8 9 - Amlogic S905X2 ARM Cortex-A53 quad-core SoC 10 - 2GB DDR4 SDRAM 11 - 10/100 Ethernet (Internal PHY) 12 - 1 x USB 3.0 Host 13 - eMMC 14 - SDcard 15 - Infrared receiver 16 - SDIO WiFi Module 17 18U-Boot compilation 19------------------ 20 21.. code-block:: bash 22 23 $ export CROSS_COMPILE=aarch64-none-elf- 24 $ make sei510_defconfig 25 $ make 26 27Image creation 28-------------- 29 30Amlogic doesn't provide sources for the firmware and for tools needed 31to create the bootloader image, so it is necessary to obtain them from 32the git tree published by the board vendor: 33 34.. code-block:: bash 35 36 $ wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz 37 $ wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz 38 $ tar xvfJ gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz 39 $ tar xvfJ gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz 40 $ 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 41 $ git clone https://github.com/BayLibre/u-boot.git -b buildroot-openlinux-20180418 amlogic-u-boot 42 $ cd amlogic-u-boot 43 $ make g12a_u200_v1_defconfig 44 $ make 45 $ export UBOOTDIR=$PWD 46 47Download the latest Amlogic Buildroot package, and extract it : 48 49.. code-block:: bash 50 51 $ wget http://openlinux2.amlogic.com:8000/ARM/filesystem/Linux_BSP/buildroot_openlinux_kernel_4.9_fbdev_20180706.tar.gz 52 $ tar xfz buildroot_openlinux_kernel_4.9_fbdev_20180706.tar.gz buildroot_openlinux_kernel_4.9_fbdev_20180706/bootloader 53 $ export BRDIR=$PWD/buildroot_openlinux_kernel_4.9_fbdev_20180706 54 $ export FIPDIR=$BRDIR/bootloader/uboot-repo/fip 55 56Go back to mainline U-Boot source tree then : 57 58.. code-block:: bash 59 60 $ mkdir fip 61 62 $ wget https://github.com/BayLibre/u-boot/releases/download/v2017.11-libretech-cc/blx_fix_g12a.sh -O fip/blx_fix.sh 63 $ cp $UBOOTDIR/build/scp_task/bl301.bin fip/ 64 $ cp $UBOOTDIR/build/board/amlogic/g12a_u200_v1/firmware/acs.bin fip/ 65 $ cp $BRDIR/bootloader/uboot-repo/bl2/bin/g12a/bl2.bin fip/ 66 $ cp $BRDIR/bootloader/uboot-repo/bl30/bin/g12a/bl30.bin fip/ 67 $ cp $BRDIR/bootloader/uboot-repo/bl31_1.3/bin/g12a/bl31.img fip/ 68 $ cp $FIPDIR/g12a/ddr3_1d.fw fip/ 69 $ cp $FIPDIR/g12a/ddr4_1d.fw fip/ 70 $ cp $FIPDIR/g12a/ddr4_2d.fw fip/ 71 $ cp $FIPDIR/g12a/diag_lpddr4.fw fip/ 72 $ cp $FIPDIR/g12a/lpddr4_1d.fw fip/ 73 $ cp $FIPDIR/g12a/lpddr4_2d.fw fip/ 74 $ cp $FIPDIR/g12a/piei.fw fip/ 75 $ cp u-boot.bin fip/bl33.bin 76 77 $ sh fip/blx_fix.sh \ 78 fip/bl30.bin \ 79 fip/zero_tmp \ 80 fip/bl30_zero.bin \ 81 fip/bl301.bin \ 82 fip/bl301_zero.bin \ 83 fip/bl30_new.bin \ 84 bl30 85 86 $ sh fip/blx_fix.sh \ 87 fip/bl2.bin \ 88 fip/zero_tmp \ 89 fip/bl2_zero.bin \ 90 fip/acs.bin \ 91 fip/bl21_zero.bin \ 92 fip/bl2_new.bin \ 93 bl2 94 95 $ $FIPDIR/g12a/aml_encrypt_g12a --bl30sig --input fip/bl30_new.bin \ 96 --output fip/bl30_new.bin.g12a.enc \ 97 --level v3 98 $ $FIPDIR/g12a/aml_encrypt_g12a --bl3sig --input fip/bl30_new.bin.g12a.enc \ 99 --output fip/bl30_new.bin.enc \ 100 --level v3 --type bl30 101 $ $FIPDIR/g12a/aml_encrypt_g12a --bl3sig --input fip/bl31.img \ 102 --output fip/bl31.img.enc \ 103 --level v3 --type bl31 104 $ $FIPDIR/g12a/aml_encrypt_g12a --bl3sig --input fip/bl33.bin --compress lz4 \ 105 --output fip/bl33.bin.enc \ 106 --level v3 --type bl33 107 $ $FIPDIR/g12a/aml_encrypt_g12a --bl2sig --input fip/bl2_new.bin \ 108 --output fip/bl2.n.bin.sig 109 $ $FIPDIR/g12a/aml_encrypt_g12a --bootmk \ 110 --output fip/u-boot.bin \ 111 --bl2 fip/bl2.n.bin.sig \ 112 --bl30 fip/bl30_new.bin.enc \ 113 --bl31 fip/bl31.img.enc \ 114 --bl33 fip/bl33.bin.enc \ 115 --ddrfw1 fip/ddr4_1d.fw \ 116 --ddrfw2 fip/ddr4_2d.fw \ 117 --ddrfw3 fip/ddr3_1d.fw \ 118 --ddrfw4 fip/piei.fw \ 119 --ddrfw5 fip/lpddr4_1d.fw \ 120 --ddrfw6 fip/lpddr4_2d.fw \ 121 --ddrfw7 fip/diag_lpddr4.fw \ 122 --level v3 123 124and then write the image to SD with: 125 126.. code-block:: bash 127 128 $ DEV=/dev/your_sd_device 129 $ dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=512 skip=1 seek=1 130 $ dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=1 count=444 131