Skip to content

Commit

Permalink
doc: boards: amlogic: update documentation for P201
Browse files Browse the repository at this point in the history
Improve documentation. Notably we can now support U-Boot install to
the internal eMMC storage in addition to SD cards.

Signed-off-by: Christian Hewitt <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
[narmstrong: fixed doc build]
Signed-off-by: Neil Armstrong <[email protected]>
  • Loading branch information
chewitt authored and superna9999 committed Apr 17, 2023
1 parent 4b5bc8b commit 80d83f6
Showing 1 changed file with 54 additions and 34 deletions.
88 changes: 54 additions & 34 deletions doc/board/amlogic/p201.rst
Original file line number Diff line number Diff line change
@@ -1,25 +1,24 @@
.. SPDX-License-Identifier: GPL-2.0+
U-Boot for Amlogic P201
=======================
U-Boot for Amlogic P201 (S905)
==============================

P201 is a reference board manufactured by Amlogic with the following
specifications:
P201 is a reference board manufactured by Amlogic with the following specifications:

- Amlogic S905 ARM Cortex-A53 quad-core SoC @ 1.5GHz
- ARM Mali 450 GPU
- 2GB DDR3 SDRAM
- 10/100 Ethernet
- HDMI 2.0 4K/60Hz display
- 2 x USB 2.0 Host
- 2x USB 2.0 Host
- eMMC, microSD
- Infrared receiver
- SDIO WiFi Module
- CVBS+Stereo Audio Jack
- CVBS + Stereo Audio Jack

Schematics are available from Amlogic on demand.

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

.. code-block:: bash
Expand All @@ -28,14 +27,21 @@ U-Boot compilation
$ make p201_defconfig
$ make
Image creation
--------------
U-Boot Signing with Pre-Built FIP repo
--------------------------------------

For simplified usage, pleaser refer to :doc:`pre-generated-fip` with codename `p201`
.. 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 p201 /path/to/u-boot/u-boot.bin my-output-dir
Amlogic doesn't provide sources for the firmware and for tools needed
to create the bootloader image, so it is necessary to obtain them from
the git tree published by the board vendor:
U-Boot Manual Signing
---------------------

Amlogic does not provide sources for the firmware and tools needed to create a bootloader
image but sources have been shared by Linux development contractor, Baylibre:

.. code-block:: bash
Expand Down Expand Up @@ -63,37 +69,51 @@ Go back to mainline U-boot source tree then :
$ cp $FIPDIR/gxb/bl301.bin fip/
$ cp $FIPDIR/gxb/bl31.img fip/
$ cp u-boot.bin fip/bl33.bin
$ wget https://github.com/LibreELEC/amlogic-boot-fip/raw/master/nanopi-k2/bl1.bin.hardkernel fip/bl1.bin.hardkernel
$ chmod +x fip/bl1.bin.hardkernel
$ wget https://github.com/LibreELEC/amlogic-boot-fip/raw/master/nanopi-k2/aml_chksum fip/aml_chksum
$ chmod +x fip/aml_chksum
$ $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
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/fip_create --bl30 fip/bl30_new.bin --bl31 fip/bl31.img --bl33 fip/bl33.bin fip/fip.bin
fip/bl2_acs.bin \
fip/zero_tmp \
fip/bl2_zero.bin \
fip/bl21.bin \
fip/bl21_zero.bin \
fip/bl2_new.bin \
bl2
$ $FIPDIR/fip_create --bl30 fip/bl30_new.bin \
--bl31 fip/bl31.img \
--bl33 fip/bl33.bin \
fip/fip.bin
$ cat fip/bl2_new.bin fip/fip.bin >fip/boot_new.bin
$ $FIPDIR/gxb/aml_encrypt_gxb --bootsig --input fip/boot_new.bin --output fip/u-boot.bin
$ $FIPDIR/gxb/aml_encrypt_gxb --bootsig \
--input fip/boot_new.bin \
--output fip/u-boot.bin
and then write the image to SD with:
Then write U-Boot to SD or eMMC with:

.. code-block:: bash
$ DEV=/dev/your_sd_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=444
$ DEV=/dev/boot_device
$ dd if=fip/u-boot.bin of=fip/u-boot.bin.gxbb bs=512 conv=fsync
$ dd if=fip/u-boot.bin of=fip/u-boot.bin.gxbb bs=512 seek=9 skip=8 count=87 conv=fsync,notrunc
$ dd if=/dev/zero of=fip/u-boot.bin.gxbb bs=512 seek=8 count=1 conv=fsync,notrunc
$ dd if=bl1.bin.hardkernel of=fip/u-boot.bin.gxbb bs=512 seek=2 skip=2 count=1 conv=fsync,notrunc
$ ./aml_chksum fip/u-boot.bin.gxbb
$ dd if=fip/u-boot.gxbb of=$DEV conv=fsync,notrunc bs=512 skip=1 seek=1
$ dd if=fip/u-boot.gxbb of=$DEV conv=fsync,notrunc bs=1 count=440

0 comments on commit 80d83f6

Please sign in to comment.