From: Ferass El Hafidi Date: Wed, 26 Nov 2025 12:17:12 +0000 (+0000) Subject: doc: board: amlogic: add u-boot-spl documentation X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8f2169faf6e4ae1d0506779c6630104dfff7feea;p=thirdparty%2Fu-boot.git doc: board: amlogic: add u-boot-spl documentation Add building and usage instructions for SPL. Reviewed-by: Neil Armstrong Signed-off-by: Ferass El Hafidi Link: https://patch.msgid.link/20251126-spl-gx-v5-10-6cbffb2451ca@postmarketos.org Signed-off-by: Neil Armstrong --- diff --git a/doc/board/amlogic/index.rst b/doc/board/amlogic/index.rst index dcd935224ac..23380ac33f2 100644 --- a/doc/board/amlogic/index.rst +++ b/doc/board/amlogic/index.rst @@ -78,6 +78,7 @@ Boot Documentation boot-flow pre-generated-fip + spl Board Documentation ------------------- diff --git a/doc/board/amlogic/pre-generated-fip.rst b/doc/board/amlogic/pre-generated-fip.rst index 6a43d776d43..d820bd09115 100644 --- a/doc/board/amlogic/pre-generated-fip.rst +++ b/doc/board/amlogic/pre-generated-fip.rst @@ -98,6 +98,13 @@ The repo also provides the following files used with GXBB boards: The repo also supports the open-source 'gxlimg' signing tool that can be used to sign U-Boot binaries for GXL/GXM/G12A/G12B/SM1 boards: https://github.com/repk/gxlimg +The following binaries can be replaced with open-source implementations: + +- bl2.bin (GXBB and GXL only) +- bl31.img (GXBB, GXL, AXG and G12A only) + +Refer to `Experimental U-Boot SPL Support`_ if you wish to replace them. + Licensing --------- @@ -129,3 +136,5 @@ clarified. The current Amlogic distribution licence is below: // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +.. _`Experimental U-Boot SPL Support`: spl.rst diff --git a/doc/board/amlogic/spl.rst b/doc/board/amlogic/spl.rst new file mode 100644 index 00000000000..0495cd1ee9f --- /dev/null +++ b/doc/board/amlogic/spl.rst @@ -0,0 +1,77 @@ +.. SPDX-License-Identifier: GPL-2.0+ + +Experimental U-Boot SPL Support +=============================== + +There's some experimental support for some Amlogic SoCs, in U-Boot SPL. It +replaces the proprietary bl2.bin blob used for DRAM init. Currently Meson GX +SoCs (GXBB, GXL) are supported. + +A subset of Amlogic boards have SPL enabled. These boards have been tested and +are known to work to an extent. + + +Building Arm Trusted Firmware (TF-A) +------------------------------------ + +This U-Boot SPL port requires the BL31 stage of mainline Arm Trusted +Firmware-A firmware. It provides an open source implementation of secure +software for Armv8-A. Build it with: + +.. code-block:: bash + + $ git clone https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git + $ cd trusted-firmware-a + $ make CROSS_COMPILE=aarch64-linux-gnu- PLAT=your_soc AML_STDPARAMS=1 + +Replace ``your_soc`` with the SoC target you wish to build for. For GXBB it's +``gxbb`` and for GXL it's ``gxl``. + + +Building a bl30_new.bin binary +------------------------------ + +``bl30_new.bin`` has both ``bl30.bin`` and ``bl301.bin`` binary blobs +bundled. The former is the proper system control processor firmware and the +latter is a "plug-in" for board-specific DVFS/suspend-resume parameters. For +more info you may wish to read this page: `Pre-Generated FIP File Repo`_. + +To build using the FIP file repo, simply issue the following commands: + +.. code-block:: bash + + $ cd amlogic-boot-fip/your_board + $ make bl30_new.bin + + +.. _`Pre-Generated FIP File Repo`: pre-generated-fip.rst + + +U-Boot compilation +------------------ + +U-Boot SPL is not enabled by default, instead there are config fragments that +can be used to enable it, with per-board configuration: + +- ``spl-libretech-cc-1gb.config``: 1 GB LePotato board +- ``spl-libretech-cc-2gb.config``: 2 GB LePotato board +- ``spl-odroid-c2.config``: ODROID-C2 +- ``spl-videostrong-kii-pro.config``: Videostrong KII Pro + +Pick one of them then: + +.. code-block:: bash + + $ export CROSS_COMPILE=aarch64-linux-gnu- + $ export BL31=path/to/tf-a/bl31.bin # Upstream TF-A BL31 binary + $ export SCP=path/to/bl30_new.bin # bl30_new.bin binary + $ make _defconfig spl-.config + $ make + +Write to SD: + +.. code-block:: bash + + $ DEV=/dev/boot_device + $ dd if=u-boot-meson-with-spl.bin of=$DEV conv=fsync,notrunc bs=512 seek=1 +