blob: 2d754497cc66d7210be60032f736c9ca9f11e63d [file] [log] [blame]
Neil Armstrong84e5e8e2020-06-11 10:53:49 +02001.. SPDX-License-Identifier: GPL-2.0+
2
3U-Boot for Amlogic SEI610
4=========================
5
6SEI610 is a customer board manufactured by SEI Robotics with the following
7specifications:
8
9 - Amlogic S905X3 ARM Cortex-A55 quad-core SoC
10 - 2GB DDR4 SDRAM
11 - 10/100 Ethernet (Internal PHY)
12 - 1 x USB 3.0 Host
13 - 1 x USB Type-C DRD
14 - 1 x FTDI USB Serial Debug Interface
15 - eMMC
16 - SDcard
17 - Infrared receiver
18 - SDIO WiFi Module
19
20U-Boot compilation
21------------------
22
23.. code-block:: bash
24
25 $ export CROSS_COMPILE=aarch64-none-elf-
26 $ make sei610_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 `sei610`
33
Neil Armstrong84e5e8e2020-06-11 10:53:49 +020034Amlogic doesn't provide sources for the firmware and for tools needed
35to create the bootloader image, so it is necessary to obtain them from
36the git tree published by the board vendor:
37
38.. code-block:: bash
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 buildroot-openlinux-4.9-g12a-201904 amlogic-u-boot
46 $ cd amlogic-u-boot
47 $ make sm1_ac200_v1_defconfig
48 $ make
49 $ export UBOOTDIR=$PWD
50
51Download the latest Amlogic Buildroot package, and extract it :
52
53.. code-block:: bash
54
55 $ wget http://openlinux2.amlogic.com:8000/ARM/filesystem/buildroot-openlinux-A113-201901.tgz
56 $ tar xfz buildroot-openlinux-A113-201901.tgz buildroot-openlinux-A113-201901/bootloader
57 $ export BRDIR=$PWD/buildroot-openlinux-A113-201901
58 $ export FIPDIR=$BRDIR/bootloader/uboot-repo/fip
59
60Go back to mainline U-Boot source tree then :
61
62
63.. code-block:: bash
64
65 $ mkdir fip
66
67 $ wget https://github.com/BayLibre/u-boot/releases/download/v2017.11-libretech-cc/blx_fix_g12a.sh -O fip/blx_fix.sh
68 $ cp $UBOOTDIR/build/scp_task/bl301.bin fip/
69 $ cp $UBOOTDIR/build/board/amlogic/g12a_u200_v1/firmware/acs.bin fip/
70 $ cp $BRDIR/bootloader/uboot-repo/bl2/bin/g12a/bl2.bin fip/
71 $ cp $BRDIR/bootloader/uboot-repo/bl30/bin/g12a/bl30.bin fip/
72 $ cp $BRDIR/bootloader/uboot-repo/bl31_1.3/bin/g12a/bl31.img fip/
73 $ cp $FIPDIR/g12a/ddr3_1d.fw fip/
74 $ cp $FIPDIR/g12a/ddr4_1d.fw fip/
75 $ cp $FIPDIR/g12a/ddr4_2d.fw fip/
76 $ cp $FIPDIR/g12a/diag_lpddr4.fw fip/
77 $ cp $FIPDIR/g12a/lpddr4_1d.fw fip/
78 $ cp $FIPDIR/g12a/lpddr4_2d.fw fip/
79 $ cp $FIPDIR/g12a/piei.fw fip/
80 $ cp u-boot.bin fip/bl33.bin
81
82 $ sh fip/blx_fix.sh \
83 fip/bl30.bin \
84 fip/zero_tmp \
85 fip/bl30_zero.bin \
86 fip/bl301.bin \
87 fip/bl301_zero.bin \
88 fip/bl30_new.bin \
89 bl30
90
91 $ sh fip/blx_fix.sh \
92 fip/bl2.bin \
93 fip/zero_tmp \
94 fip/bl2_zero.bin \
95 fip/acs.bin \
96 fip/bl21_zero.bin \
97 fip/bl2_new.bin \
98 bl2
99
100 $ $FIPDIR/g12a/aml_encrypt_g12a --bl30sig --input fip/bl30_new.bin \
101 --output fip/bl30_new.bin.g12a.enc \
102 --level v3
103 $ $FIPDIR/g12a/aml_encrypt_g12a --bl3sig --input fip/bl30_new.bin.g12a.enc \
104 --output fip/bl30_new.bin.enc \
105 --level v3 --type bl30
106 $ $FIPDIR/g12a/aml_encrypt_g12a --bl3sig --input fip/bl31.img \
107 --output fip/bl31.img.enc \
108 --level v3 --type bl31
109 $ $FIPDIR/g12a/aml_encrypt_g12a --bl3sig --input fip/bl33.bin --compress lz4 \
110 --output fip/bl33.bin.enc \
111 --level v3 --type bl33
112 $ $FIPDIR/g12a/aml_encrypt_g12a --bl2sig --input fip/bl2_new.bin \
113 --output fip/bl2.n.bin.sig
114 $ $FIPDIR/g12a/aml_encrypt_g12a --bootmk \
115 --output fip/u-boot.bin \
116 --bl2 fip/bl2.n.bin.sig \
117 --bl30 fip/bl30_new.bin.enc \
118 --bl31 fip/bl31.img.enc \
119 --bl33 fip/bl33.bin.enc \
120 --ddrfw1 fip/ddr4_1d.fw \
121 --ddrfw2 fip/ddr4_2d.fw \
122 --ddrfw3 fip/ddr3_1d.fw \
123 --ddrfw4 fip/piei.fw \
124 --ddrfw5 fip/lpddr4_1d.fw \
125 --ddrfw6 fip/lpddr4_2d.fw \
126 --ddrfw7 fip/diag_lpddr4.fw \
127 --level v3
128
129and then write the image to SD with:
130
131.. code-block:: bash
132
133 $ DEV=/dev/your_sd_device
134 $ dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=512 skip=1 seek=1
135 $ dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=1 count=444