• Home
Name Date Size #Lines LOC

..--

MAINTAINERSD03-May-2024266 1110

MakefileD03-May-2024141 71

README.khadas-vimD03-May-20242.9 KiB10386

README.libretech-acD03-May-20243.6 KiB10485

README.libretech-ccD03-May-20244.2 KiB136109

README.p212D03-May-20242.9 KiB10486

p212.cD03-May-20241 KiB4835

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