Skip to content

Commit

Permalink
doc: boards: amlogic: add documentation for Beelink GT1 Ultimate
Browse files Browse the repository at this point in the history
Add build instructions for the Beelink GT1 Ultimate board.

Signed-off-by: Christian Hewitt <[email protected]>
Signed-off-by: Karl Chan <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
[narmstrong: fixed MAINTAINERS indentation, added doc to index]
Signed-off-by: Neil Armstrong <[email protected]>
  • Loading branch information
Karl Chan authored and superna9999 committed Apr 17, 2023
1 parent 67197e0 commit 411d6af
Show file tree
Hide file tree
Showing 3 changed files with 113 additions and 0 deletions.
2 changes: 2 additions & 0 deletions board/amlogic/q200/MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,11 @@ S: Maintained
L: [email protected]
F: board/amlogic/q200/
F: include/configs/q200.h
F: configs/beelink-gt1-ultimate_defconfig
F: configs/khadas-vim2_defconfig
F: configs/libretech-s905d-pc_defconfig
F: configs/libretech-s912-pc_defconfig
F: configs/wetek-core2_defconfig
F: doc/board/amlogic/beelink-gt1-ultimate.rst
F: doc/board/amlogic/khadas-vim2.rst
F: doc/board/amlogic/wetek-core2.rst
110 changes: 110 additions & 0 deletions doc/board/amlogic/beelink-gt1-ultimate.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
.. SPDX-License-Identifier: GPL-2.0+
U-Boot for Beelink GT1 Ultimate (S912)
======================================

Beelink GT1 Ultimate is an Android STB manufactured by Shenzen AZW (Beelink) with the
following specification:

- 2GB or 3GB DDR3 RAM
- 32GB eMMC
- HDMI 2.1 video
- S/PDIF optical output
- 10/100/1000 Ethernet
- AP6356S Wireless (802.11 a/b/g/n/ac, BT 4.2)
- 3x USB 2.0 ports
- IR receiver
- 1x micro SD card slot
- 1x Power LED (white)
- 1x Reset button (internal)

The GT1 (non-ultimate) board has QCA9377 WiFi/BT but is otherwise identical and should
be capable of booting images prepared for the Ultimate box (NB: there are known clones
of both boxes which may differ in specifications).

Beelink do not provide public schematics, but have been willing to share them with known
distro developers on request.

U-Boot Compilation
------------------

.. code-block:: bash
    $ export CROSS_COMPILE=aarch64-none-elf-
    $ make beelink-gt1-ultimate_defconfig
    $ make

U-Boot Signing with Pre-Built FIP repo
--------------------------------------

.. code-block:: bash
    $ git clone https://github.com/LibreELEC/amlogic-boot-fip --depth=1
    $ cd amlogic-boot-fip
    $ mkdir my-output-dir
    $ ./build-fip.sh beelink-gt1 /path/to/u-boot/u-boot.bin my-output-dir

U-Boot Manual Signing
---------------------

Amlogic does not provide firmware sources or tools needed to create the bootloader image
and Beelink has not publicly shared the U-Boot sources needed to build the FIP binaries
for signing. However you can download them from the amlogic-fip-repo.

.. code-block:: bash
    $ git clone https://github.com/LibreELEC/amlogic-boot-fip --depth=1
    $ cd amlogic-boot-fip/beelink-gt1
    $ export FIPDIR=$PWD

Go back to the mainline U-Boot source tree then:

.. code-block:: bash
    $ mkdir fip
    $ cp $FIPDIR/bl2.bin fip/
    $ cp $FIPDIR/acs.bin fip/
    $ cp $FIPDIR/bl21.bin fip/
    $ cp $FIPDIR/bl30.bin fip/
    $ cp $FIPDIR/bl301.bin fip/
    $ cp $FIPDIR/bl31.img fip/
    $ cp u-boot.bin fip/bl33.bin

    $ $FIPDIR/blx_fix.sh \
              fip/bl30.bin \
              fip/zero_tmp \
              fip/bl30_zero.bin \
              fip/bl301.bin \
              fip/bl301_zero.bin \
              fip/bl30_new.bin \
              bl30

    $ python $FIPDIR/acs_tool.pyc fip/bl2.bin fip/bl2_acs.bin fip/acs.bin 0

    $ $FIPDIR/blx_fix.sh \
              fip/bl2_acs.bin \
              fip/zero_tmp \
              fip/bl2_zero.bin \
              fip/bl21.bin \
              fip/bl21_zero.bin \
              fip/bl2_new.bin \
              bl2

    $ $FIPDIR/aml_encrypt_gxl --bl3enc --input fip/bl30_new.bin
    $ $FIPDIR/aml_encrypt_gxl --bl3enc --input fip/bl31.img
    $ $FIPDIR/aml_encrypt_gxl --bl3enc --input fip/bl33.bin
    $ $FIPDIR/aml_encrypt_gxl --bl2sig --input fip/bl2_new.bin --output fip/bl2.n.bin.sig
    $ $FIPDIR/aml_encrypt_gxl --bootmk \
                              --output fip/u-boot.bin \
                              --bl2 fip/bl2.n.bin.sig \
                              --bl30 fip/bl30_new.bin.enc \
                              --bl31 fip/bl31.img.enc \
                              --bl33 fip/bl33.bin.enc

Then write U-Boot to SD or eMMC with:

.. code-block:: bash
    $ DEV=/dev/boot_device
    $ dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=512 skip=1 seek=1
    $ dd if=fip/u-boot.bin.sd.bin of=$DEV conv=fsync,notrunc bs=1 count=440
1 change: 1 addition & 0 deletions doc/board/amlogic/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,7 @@ Board Documentation
bananapi-m2s
bananapi-m5
beelink-gskingx
beelink-gt1-ultimate
beelink-gtking
beelink-gtkingpro
jethub-j80
Expand Down

0 comments on commit 411d6af

Please sign in to comment.