1.. SPDX-License-Identifier: GPL-2.0+ 2 3U-Boot for LibreTech AC 4======================= 5 6LibreTech AC is a single board computer manufactured by Libre Technology 7with the following specifications: 8 9 - Amlogic S805X ARM Cortex-A53 quad-core SoC @ 1.2GHz 10 - ARM Mali 450 GPU 11 - 512MiB DDR4 SDRAM 12 - 10/100 Ethernet 13 - HDMI 2.0 4K/60Hz display 14 - 40-pin GPIO header 15 - 4 x USB 2.0 Host 16 - eMMC, SPI NOR Flash 17 - Infrared receiver 18 19Schematics are available on the manufacturer website. 20 21U-Boot compilation 22------------------ 23 24.. code-block:: bash 25 26 $ export CROSS_COMPILE=aarch64-none-elf- 27 $ make libretech-ac_defconfig 28 $ make 29 30Image creation 31-------------- 32 33Amlogic doesn't provide sources for the firmware and for tools needed 34to create the bootloader image, so it is necessary to obtain them from 35the git tree published by the board vendor: 36 37.. code-block:: bash 38 39 $ wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz 40 $ wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz 41 $ tar xvfJ gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz 42 $ tar xvfJ gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz 43 $ 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 44 $ git clone https://github.com/BayLibre/u-boot.git -b libretech-ac amlogic-u-boot 45 $ cd amlogic-u-boot 46 $ wget https://raw.githubusercontent.com/BayLibre/u-boot/libretech-cc/fip/blx_fix.sh 47 $ make libretech_ac_defconfig 48 $ make 49 $ export UBOOTDIR=$PWD 50 51Download the latest Amlogic Buildroot package, and extract it : 52 53.. code-block:: bash 54 55 $ wget http://openlinux2.amlogic.com:8000/ARM/filesystem/Linux_BSP/buildroot_openlinux_kernel_4.9_fbdev_20180418.tar.gz 56 $ tar xfz buildroot_openlinux_kernel_4.9_fbdev_20180418.tar.gz buildroot_openlinux_kernel_4.9_fbdev_20180418/bootloader 57 $ export BRDIR=$PWD/buildroot_openlinux_kernel_4.9_fbdev_20180418 58 59Go back to mainline U-Boot source tree then : 60 61.. code-block:: bash 62 63 $ mkdir fip 64 65 $ cp $UBOOTDIR/build/scp_task/bl301.bin fip/ 66 $ cp $UBOOTDIR/build/board/amlogic/libretech_ac/firmware/bl21.bin fip/ 67 $ cp $UBOOTDIR/build/board/amlogic/libretech_ac/firmware/acs.bin fip/ 68 $ cp $BRDIR/bootloader/uboot-repo/bl2/bin/gxl/bl2.bin fip/ 69 $ cp $BRDIR/bootloader/uboot-repo/bl30/bin/gxl/bl30.bin fip/ 70 $ cp $BRDIR/bootloader/uboot-repo/bl31/bin/gxl/bl31.img fip/ 71 $ cp u-boot.bin fip/bl33.bin 72 73 $ sh $UBOOTDIR/blx_fix.sh \ 74 fip/bl30.bin \ 75 fip/zero_tmp \ 76 fip/bl30_zero.bin \ 77 fip/bl301.bin \ 78 fip/bl301_zero.bin \ 79 fip/bl30_new.bin \ 80 bl30 81 82 $ $BRDIR/bootloader/uboot-repo/fip/acs_tool.pyc fip/bl2.bin fip/bl2_acs.bin fip/acs.bin 0 83 84 $ sh $UBOOTDIR/blx_fix.sh \ 85 fip/bl2_acs.bin \ 86 fip/zero_tmp \ 87 fip/bl2_zero.bin \ 88 fip/bl21.bin \ 89 fip/bl21_zero.bin \ 90 fip/bl2_new.bin \ 91 bl2 92 93 $ $BRDIR/bootloader/uboot-repo/fip/gxl/aml_encrypt_gxl --bl3enc --input fip/bl30_new.bin 94 $ $BRDIR/bootloader/uboot-repo/fip/gxl/aml_encrypt_gxl --bl3enc --input fip/bl31.img 95 $ $BRDIR/bootloader/uboot-repo/fip/gxl/aml_encrypt_gxl --bl3enc --input fip/bl33.bin 96 $ $BRDIR/bootloader/uboot-repo/fip/gxl/aml_encrypt_gxl --bl2sig --input fip/bl2_new.bin --output fip/bl2.n.bin.sig 97 $ $BRDIR/bootloader/uboot-repo/fip/gxl/aml_encrypt_gxl --bootmk \ 98 --output fip/u-boot.bin \ 99 --bl2 fip/bl2.n.bin.sig \ 100 --bl30 fip/bl30_new.bin.enc \ 101 --bl31 fip/bl31.img.enc \ 102 --bl33 fip/bl33.bin.enc 103 104and then write the image to SD with: 105 106.. code-block:: bash 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