blob: 0147d5fbe2dab38aa2a52357acc4fdce1f180d6e [file] [log] [blame]
Christian Hewittc1aae0a2020-12-15 12:32:14 +00001.. SPDX-License-Identifier: GPL-2.0+
2
3U-Boot for WeTek Core2
4======================
5
6WeTek Core2 is an Android STB based on the Q200 reference design with
7the following specifications:
8
9 - Amlogic S912 ARM Cortex-A53 octo-core SoC @ 1.5GHz
10 - ARM Mali T820 GPU
11 - 3GB DDR4 SDRAM
12 - 10/100 Realtek RTL8152 Ethernet (internal USB)
13 - HDMI 2.0 4K/60Hz display
14 - 2x USB 2.0 Host, 1x USB 2.0 OTG (internal)
15 - 32GB eMMC
16 - microSD
17 - SDIO Wifi Module, Bluetooth
18 - Two channel IR receiver
19
20U-Boot compilation
21------------------
22
23.. code-block:: bash
24
25 $ export CROSS_COMPILE=aarch64-none-elf-
26 $ make wetek-core2_defconfig
27 $ make
28
29Image creation
30--------------
31
Neil Armstrong2ea98682022-03-02 10:42:22 +010032For simplified usage, pleaser refer to :doc:`pre-generated-fip` with codename `wetek-core2`
33
Christian Hewittc1aae0a2020-12-15 12:32:14 +000034Amlogic does not provide sources for the firmware or the tools needed
35to create the bootloader image, and WeTek has not publicly shared the
36precompiled FIP binaries. However the public Khadas VIM2 sources also
37work with the Core2 box so we can use the Khadas git tree:
38
39.. code-block:: bash
40
41 $ wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
42 $ wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz
43 $ tar xvfJ gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
44 $ tar xvfJ gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz
45 $ 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
46 $ git clone https://github.com/khadas/u-boot -b khadas-vim-v2015.01 vim-u-boot
47 $ cd vim-u-boot
48 $ make kvim2_defconfig
49 $ make
50 $ export FIPDIR=$PWD/fip
51
52Go back to mainline U-Boot source tree then:
53
54.. code-block:: bash
55
56 $ mkdir fip
57 $ cp $FIPDIR/gxl/bl2.bin fip/
58 $ cp $FIPDIR/gxl/acs.bin fip/
59 $ cp $FIPDIR/gxl/bl21.bin fip/
60 $ cp $FIPDIR/gxl/bl30.bin fip/
61 $ cp $FIPDIR/gxl/bl301.bin fip/
62 $ cp $FIPDIR/gxl/bl31.img fip/
63 $ cp u-boot.bin fip/bl33.bin
64 $ $FIPDIR/blx_fix.sh \
65 fip/bl30.bin \
66 fip/zero_tmp \
67 fip/bl30_zero.bin \
68 fip/bl301.bin \
69 fip/bl301_zero.bin \
70 fip/bl30_new.bin \
71 bl30
72 $ python $FIPDIR/acs_tool.pyc fip/bl2.bin fip/bl2_acs.bin fip/acs.bin 0
73 $ $FIPDIR/blx_fix.sh \
74 fip/bl2_acs.bin \
75 fip/zero_tmp \
76 fip/bl2_zero.bin \
77 fip/bl21.bin \
78 fip/bl21_zero.bin \
79 fip/bl2_new.bin \
80 bl2
81 $ $FIPDIR/gxl/aml_encrypt_gxl --bl3enc --input fip/bl30_new.bin
82 $ $FIPDIR/gxl/aml_encrypt_gxl --bl3enc --input fip/bl31.img
83 $ $FIPDIR/gxl/aml_encrypt_gxl --bl3enc --input fip/bl33.bin
84 $ $FIPDIR/gxl/aml_encrypt_gxl --bl2sig --input fip/bl2_new.bin --output fip/bl2.n.bin.sig
85 $ $FIPDIR/gxl/aml_encrypt_gxl --bootmk \
86 --output fip/u-boot.bin \
87 --bl2 fip/bl2.n.bin.sig \
88 --bl30 fip/bl30_new.bin.enc \
89 --bl31 fip/bl31.img.enc \
90 --bl33 fip/bl33.bin.enc
91
92then write the image to SD with:
93
94.. code-block:: bash
95
96 $ DEV=/dev/your_sd_device
97 $ dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=512 skip=1 seek=1
98 $ dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=1 count=444