Name | Date | Size | #Lines | LOC | ||
---|---|---|---|---|---|---|
.. | - | - | ||||
MAINTAINERS | D | 03-May-2024 | 266 | 11 | 10 | |
Makefile | D | 03-May-2024 | 141 | 7 | 1 | |
README.khadas-vim | D | 03-May-2024 | 2.9 KiB | 103 | 86 | |
README.libretech-ac | D | 03-May-2024 | 3.6 KiB | 104 | 85 | |
README.libretech-cc | D | 03-May-2024 | 4.2 KiB | 136 | 109 | |
README.p212 | D | 03-May-2024 | 2.9 KiB | 104 | 86 | |
p212.c | D | 03-May-2024 | 1 KiB | 48 | 35 |
README.khadas-vim
1U-Boot for Khadas VIM 2======================= 3 4Khadas VIM is an Open Source DIY Box manufactured by Shenzhen Wesion 5Technology Co., Ltd with the following specifications: 6 7 - Amlogic S905X ARM Cortex-A53 quad-core SoC @ 1.5GHz 8 - ARM Mali 450 GPU 9 - 2GB DDR3 SDRAM 10 - 10/100 Ethernet 11 - HDMI 2.0 4K/60Hz display 12 - 40-pin GPIO header 13 - 2 x USB 2.0 Host, 1 x USB 2.0 Type-C OTG 14 - 8GB/16GBeMMC 15 - microSD 16 - SDIO Wifi Module, Bluetooth 17 - Two channels IR receiver 18 19Currently the u-boot port supports the following devices: 20 - serial 21 - eMMC, microSD 22 - Ethernet 23 - I2C 24 - Regulators 25 - Reset controller 26 - Clock controller 27 - USB Host 28 - ADC 29 30U-Boot compilation 31================== 32 33 > export ARCH=arm 34 > export CROSS_COMPILE=aarch64-none-elf- 35 > make khadas-vim_defconfig 36 > make 37 38Image creation 39============== 40 41Amlogic doesn't provide sources for the firmware and for tools needed 42to create the bootloader image, so it is necessary to obtain them from 43the git tree published by the board vendor: 44 45 > wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz 46 > wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz 47 > tar xvfJ gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz 48 > tar xvfJ gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz 49 > 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 50 > git clone https://github.com/khadas/u-boot -b Vim vim-u-boot 51 > cd vim-u-boot 52 > make kvim_defconfig 53 > make CROSS_COMPILE=aarch64-none-elf- 54 > export FIPDIR=$PWD/fip 55 56Go back to mainline U-Boot source tree then : 57 > mkdir fip 58 59 > cp $FIPDIR/gxl/bl2.bin fip/ 60 > cp $FIPDIR/gxl/acs.bin fip/ 61 > cp $FIPDIR/gxl/bl21.bin fip/ 62 > cp $FIPDIR/gxl/bl30.bin fip/ 63 > cp $FIPDIR/gxl/bl301.bin fip/ 64 > cp $FIPDIR/gxl/bl31.img fip/ 65 > cp u-boot.bin fip/bl33.bin 66 67 > $FIPDIR/blx_fix.sh \ 68 fip/bl30.bin \ 69 fip/zero_tmp \ 70 fip/bl30_zero.bin \ 71 fip/bl301.bin \ 72 fip/bl301_zero.bin \ 73 fip/bl30_new.bin \ 74 bl30 75 76 > python $FIPDIR/acs_tool.pyc fip/bl2.bin fip/bl2_acs.bin fip/acs.bin 0 77 78 > $FIPDIR/blx_fix.sh \ 79 fip/bl2_acs.bin \ 80 fip/zero_tmp \ 81 fip/bl2_zero.bin \ 82 fip/bl21.bin \ 83 fip/bl21_zero.bin \ 84 fip/bl2_new.bin \ 85 bl2 86 87 > $FIPDIR/gxl/aml_encrypt_gxl --bl3enc --input fip/bl30_new.bin 88 > $FIPDIR/gxl/aml_encrypt_gxl --bl3enc --input fip/bl31.img 89 > $FIPDIR/gxl/aml_encrypt_gxl --bl3enc --input fip/bl33.bin 90 > $FIPDIR/gxl/aml_encrypt_gxl --bl2sig --input fip/bl2_new.bin --output fip/bl2.n.bin.sig 91 > $FIPDIR/gxl/aml_encrypt_gxl --bootmk \ 92 --output fip/u-boot.bin \ 93 --bl2 fip/bl2.n.bin.sig \ 94 --bl30 fip/bl30_new.bin.enc \ 95 --bl31 fip/bl31.img.enc \ 96 --bl33 fip/bl33.bin.enc 97 98and then write the image to SD with: 99 100 > DEV=/dev/your_sd_device 101 > dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=512 skip=1 seek=1 102 > dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=1 count=444 103
README.libretech-ac
1U-Boot for LibreTech AC 2======================= 3 4LibreTech AC is a single board computer manufactured by Libre Technology 5with the following specifications: 6 7 - Amlogic S805X ARM Cortex-A53 quad-core SoC @ 1.2GHz 8 - ARM Mali 450 GPU 9 - 512MiB DDR4 SDRAM 10 - 10/100 Ethernet 11 - HDMI 2.0 4K/60Hz display 12 - 40-pin GPIO header 13 - 4 x USB 2.0 Host 14 - eMMC, SPI NOR Flash 15 - Infrared receiver 16 17Schematics are available on the manufacturer website. 18 19Currently the U-Boot port supports the following devices: 20 - serial 21 - eMMC 22 - Ethernet 23 - USB 24 25U-Boot compilation 26================== 27 28 > export ARCH=arm 29 > export CROSS_COMPILE=aarch64-none-elf- 30 > make libretech-ac_defconfig 31 > make 32 33Image creation 34============== 35 36Amlogic doesn't provide sources for the firmware and for tools needed 37to create the bootloader image, so it is necessary to obtain them from 38the git tree published by the board vendor: 39 40 > wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz 41 > wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz 42 > tar xvfJ gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz 43 > tar xvfJ gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz 44 > 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 45 > git clone https://github.com/BayLibre/u-boot.git -b libretech-ac amlogic-u-boot 46 > cd amlogic-u-boot 47 > wget https://raw.githubusercontent.com/BayLibre/u-boot/libretech-cc/fip/blx_fix.sh 48 > make libretech_ac_defconfig 49 > make 50 > export UBOOTDIR=$PWD 51 52Download the latest Amlogic Buildroot package, and extract it : 53 > wget http://openlinux2.amlogic.com:8000/ARM/filesystem/Linux_BSP/buildroot_openlinux_kernel_4.9_fbdev_20180418.tar.gz 54 > tar xfz buildroot_openlinux_kernel_4.9_fbdev_20180418.tar.gz buildroot_openlinux_kernel_4.9_fbdev_20180418/bootloader 55 > export BRDIR=$PWD/buildroot_openlinux_kernel_4.9_fbdev_20180418 56 57Go back to mainline U-Boot source tree then : 58 > mkdir fip 59 60 > cp $UBOOTDIR/build/scp_task/bl301.bin fip/ 61 > cp $UBOOTDIR/build/board/amlogic/libretech_ac/firmware/bl21.bin fip/ 62 > cp $UBOOTDIR/build/board/amlogic/libretech_ac/firmware/acs.bin fip/ 63 > cp $BRDIR/bootloader/uboot-repo/bl2/bin/gxl/bl2.bin fip/ 64 > cp $BRDIR/bootloader/uboot-repo/bl30/bin/gxl/bl30.bin fip/ 65 > cp $BRDIR/bootloader/uboot-repo/bl31/bin/gxl/bl31.img fip/ 66 > cp u-boot.bin fip/bl33.bin 67 68 > sh $UBOOTDIR/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 > $BRDIR/bootloader/uboot-repo/fip/acs_tool.pyc fip/bl2.bin fip/bl2_acs.bin fip/acs.bin 0 78 79 > sh $UBOOTDIR/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 > $BRDIR/bootloader/uboot-repo/fip/gxl/aml_encrypt_gxl --bl3enc --input fip/bl30_new.bin 89 > $BRDIR/bootloader/uboot-repo/fip/gxl/aml_encrypt_gxl --bl3enc --input fip/bl31.img 90 > $BRDIR/bootloader/uboot-repo/fip/gxl/aml_encrypt_gxl --bl3enc --input fip/bl33.bin 91 > $BRDIR/bootloader/uboot-repo/fip/gxl/aml_encrypt_gxl --bl2sig --input fip/bl2_new.bin --output fip/bl2.n.bin.sig 92 > $BRDIR/bootloader/uboot-repo/fip/gxl/aml_encrypt_gxl --bootmk \ 93 --output fip/u-boot.bin \ 94 --bl2 fip/bl2.n.bin.sig \ 95 --bl30 fip/bl30_new.bin.enc \ 96 --bl31 fip/bl31.img.enc \ 97 --bl33 fip/bl33.bin.enc 98 99and then write the image to SD with: 100 101 > DEV=/dev/your_sd_device 102 > dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=512 skip=1 seek=1 103 > dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=1 count=444 104
README.libretech-cc
1U-Boot for LibreTech CC 2======================= 3 4LibreTech CC is a single board computer manufactured by Libre Technology 5with the following specifications: 6 7 - Amlogic S905X ARM Cortex-A53 quad-core SoC @ 1.5GHz 8 - ARM Mali 450 GPU 9 - 2GB DDR3 SDRAM 10 - 10/100 Ethernet 11 - HDMI 2.0 4K/60Hz display 12 - 40-pin GPIO header 13 - 4 x USB 2.0 Host 14 - eMMC, microSD 15 - Infrared receiver 16 17Schematics are available on the manufacturer website. 18 19Currently the U-Boot port supports the following devices: 20 - serial 21 - eMMC, microSD 22 - Ethernet 23 - I2C 24 - Regulators 25 - Reset controller 26 - Clock controller 27 - USB Host 28 - ADC 29 30U-Boot compilation 31================== 32 33 > export ARCH=arm 34 > export CROSS_COMPILE=aarch64-none-elf- 35 > make libretech-cc_defconfig 36 > make 37 38Image creation 39============== 40 41To boot the system, u-boot must be combined with several earlier stage 42bootloaders: 43 44* bl2.bin: vendor-provided binary blob 45* bl21.bin: built from vendor u-boot source 46* bl30.bin: vendor-provided binary blob 47* bl301.bin: built from vendor u-boot source 48* bl31.bin: vendor-provided binary blob 49* acs.bin: built from vendor u-boot source 50 51These binaries and the tools required below have been collected and prebuilt 52for convenience at <https://github.com/BayLibre/u-boot/releases/> 53 54Download and extract the libretech-cc release from there, and set FIPDIR to 55point to the `fip` subdirectory. 56 57 > export FIPDIR=/path/to/extracted/fip 58 59Alternatively, you can obtain the original vendor u-boot tree which 60contains the required blobs and sources, and build yourself. 61Note that old compilers are required for this to build. The compilers here 62are suggested by Amlogic, and they are 32-bit x86 binaries. 63 64 > wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz 65 > wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz 66 > tar xvfJ gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz 67 > tar xvfJ gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz 68 > 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 69 > git clone https://github.com/BayLibre/u-boot.git -b libretech-cc amlogic-u-boot 70 > cd amlogic-u-boot 71 > make libretech_cc_defconfig 72 > make 73 > export FIPDIR=$PWD/fip 74 75Once you have the binaries available (either through the prebuilt download, 76or having built the vendor u-boot yourself), you can then proceed to glue 77everything together. Go back to mainline U-Boot source tree then : 78 79 > mkdir fip 80 81 > cp $FIPDIR/gxl/bl2.bin fip/ 82 > cp $FIPDIR/gxl/acs.bin fip/ 83 > cp $FIPDIR/gxl/bl21.bin fip/ 84 > cp $FIPDIR/gxl/bl30.bin fip/ 85 > cp $FIPDIR/gxl/bl301.bin fip/ 86 > cp $FIPDIR/gxl/bl31.img fip/ 87 > cp u-boot.bin fip/bl33.bin 88 89 > $FIPDIR/blx_fix.sh \ 90 fip/bl30.bin \ 91 fip/zero_tmp \ 92 fip/bl30_zero.bin \ 93 fip/bl301.bin \ 94 fip/bl301_zero.bin \ 95 fip/bl30_new.bin \ 96 bl30 97 98 > $FIPDIR/acs_tool.pyc fip/bl2.bin fip/bl2_acs.bin fip/acs.bin 0 99 100 > $FIPDIR/blx_fix.sh \ 101 fip/bl2_acs.bin \ 102 fip/zero_tmp \ 103 fip/bl2_zero.bin \ 104 fip/bl21.bin \ 105 fip/bl21_zero.bin \ 106 fip/bl2_new.bin \ 107 bl2 108 109 > $FIPDIR/gxl/aml_encrypt_gxl --bl3enc --input fip/bl30_new.bin 110 > $FIPDIR/gxl/aml_encrypt_gxl --bl3enc --input fip/bl31.img 111 > $FIPDIR/gxl/aml_encrypt_gxl --bl3enc --input fip/bl33.bin 112 > $FIPDIR/gxl/aml_encrypt_gxl --bl2sig --input fip/bl2_new.bin --output fip/bl2.n.bin.sig 113 > $FIPDIR/gxl/aml_encrypt_gxl --bootmk \ 114 --output fip/u-boot.bin \ 115 --bl2 fip/bl2.n.bin.sig \ 116 --bl30 fip/bl30_new.bin.enc \ 117 --bl31 fip/bl31.img.enc \ 118 --bl33 fip/bl33.bin.enc 119 120and then write the image to SD with: 121 122 > DEV=/dev/your_sd_device 123 > dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=512 skip=1 seek=1 124 > dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=1 count=444 125 126Note that Amlogic provides aml_encrypt_gxl as a 32-bit x86 binary with no 127source code. Should you prefer to avoid that, there are open source reverse 128engineered versions available: 129 1301. gxlimg <https://github.com/repk/gxlimg>, which comes with a handy 131 Makefile that automates the whole process. 1322. meson-tools <https://github.com/afaerber/meson-tools> 133 134However, these community-developed alternatives are not endorsed by or 135supported by Amlogic. 136
README.p212
1U-Boot for Amlogic P212 2======================= 3 4P212 is a reference board manufactured by Amlogic with the following 5specifications: 6 7 - Amlogic S905X ARM Cortex-A53 quad-core SoC @ 1.5GHz 8 - ARM Mali 450 GPU 9 - 2GB DDR3 SDRAM 10 - 10/100 Ethernet 11 - HDMI 2.0 4K/60Hz display 12 - 2 x USB 2.0 Host 13 - eMMC, microSD 14 - Infrared receiver 15 - SDIO WiFi Module 16 - CVBS+Stereo Audio Jack 17 18Schematics are available from Amlogic on demand. 19 20Currently the u-boot port supports the following devices: 21 - serial 22 - eMMC, microSD 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 p212_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 gxl_p212_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/gxl/bl2.bin fip/ 61 > cp $FIPDIR/gxl/acs.bin fip/ 62 > cp $FIPDIR/gxl/bl21.bin fip/ 63 > cp $FIPDIR/gxl/bl30.bin fip/ 64 > cp $FIPDIR/gxl/bl301.bin fip/ 65 > cp $FIPDIR/gxl/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/gxl/aml_encrypt_gxl --bl3enc --input fip/bl30_new.bin 89 > $FIPDIR/gxl/aml_encrypt_gxl --bl3enc --input fip/bl31.img 90 > $FIPDIR/gxl/aml_encrypt_gxl --bl3enc --input fip/bl33.bin 91 > $FIPDIR/gxl/aml_encrypt_gxl --bl2sig --input fip/bl2_new.bin --output fip/bl2.n.bin.sig 92 > $FIPDIR/gxl/aml_encrypt_gxl --bootmk \ 93 --output fip/u-boot.bin \ 94 --bl2 fip/bl2.n.bin.sig \ 95 --bl30 fip/bl30_new.bin.enc \ 96 --bl31 fip/bl31.img.enc \ 97 --bl33 fip/bl33.bin.enc 98 99and then write the image to SD with: 100 101 > DEV=/dev/your_sd_device 102 > dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=512 skip=1 seek=1 103 > dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=1 count=444 104