libretech-ac.rst 3.8 KB

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