1.. 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
32Amlogic does not provide sources for the firmware or the tools needed
33to create the bootloader image, and WeTek has not publicly shared the
34precompiled FIP binaries. However the public Khadas VIM2 sources also
35work with the Core2 box so we can use the Khadas git tree:
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/khadas/u-boot -b khadas-vim-v2015.01 vim-u-boot
45    $ cd vim-u-boot
46    $ make kvim2_defconfig
47    $ make
48    $ export FIPDIR=$PWD/fip
49
50Go back to mainline U-Boot source tree then:
51
52.. code-block:: bash
53
54    $ mkdir fip
55    $ cp $FIPDIR/gxl/bl2.bin fip/
56    $ cp $FIPDIR/gxl/acs.bin fip/
57    $ cp $FIPDIR/gxl/bl21.bin fip/
58    $ cp $FIPDIR/gxl/bl30.bin fip/
59    $ cp $FIPDIR/gxl/bl301.bin fip/
60    $ cp $FIPDIR/gxl/bl31.img fip/
61    $ cp u-boot.bin fip/bl33.bin
62    $ $FIPDIR/blx_fix.sh \
63        fip/bl30.bin \
64        fip/zero_tmp \
65        fip/bl30_zero.bin \
66        fip/bl301.bin \
67        fip/bl301_zero.bin \
68        fip/bl30_new.bin \
69        bl30
70    $ python $FIPDIR/acs_tool.pyc fip/bl2.bin fip/bl2_acs.bin fip/acs.bin 0
71    $ $FIPDIR/blx_fix.sh \
72        fip/bl2_acs.bin \
73        fip/zero_tmp \
74        fip/bl2_zero.bin \
75        fip/bl21.bin \
76        fip/bl21_zero.bin \
77        fip/bl2_new.bin \
78        bl2
79    $ $FIPDIR/gxl/aml_encrypt_gxl --bl3enc --input fip/bl30_new.bin
80    $ $FIPDIR/gxl/aml_encrypt_gxl --bl3enc --input fip/bl31.img
81    $ $FIPDIR/gxl/aml_encrypt_gxl --bl3enc --input fip/bl33.bin
82    $ $FIPDIR/gxl/aml_encrypt_gxl --bl2sig --input fip/bl2_new.bin --output fip/bl2.n.bin.sig
83    $ $FIPDIR/gxl/aml_encrypt_gxl --bootmk \
84        --output fip/u-boot.bin \
85        --bl2 fip/bl2.n.bin.sig \
86        --bl30 fip/bl30_new.bin.enc \
87        --bl31 fip/bl31.img.enc \
88        --bl33 fip/bl33.bin.enc
89
90then write the image to SD with:
91
92.. code-block:: bash
93
94    $ DEV=/dev/your_sd_device
95    $ dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=512 skip=1 seek=1
96    $ dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=1 count=444
97