Merge branch '2022-03-25-assorted-updates' into next
[platform/kernel/u-boot.git] / doc / board / amlogic / wetek-core2.rst
1 .. SPDX-License-Identifier: GPL-2.0+
2
3 U-Boot for WeTek Core2
4 ======================
5
6 WeTek Core2 is an Android STB based on the Q200 reference design with
7 the 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
20 U-Boot compilation
21 ------------------
22
23 .. code-block:: bash
24
25     $ export CROSS_COMPILE=aarch64-none-elf-
26     $ make wetek-core2_defconfig
27     $ make
28
29 Image creation
30 --------------
31
32 Amlogic does not provide sources for the firmware or the tools needed
33 to create the bootloader image, and WeTek has not publicly shared the
34 precompiled FIP binaries. However the public Khadas VIM2 sources also
35 work 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
50 Go 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
90 then 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