From: Sascha Hauer <s.hauer@pengutronix.de>
To: "open list:BAREBOX" <barebox@lists.infradead.org>
Subject: [PATCH v2 20/22] Documentation: add build documentation for TI K3 SoCs
Date: Mon, 06 Jan 2025 14:47:17 +0100 [thread overview]
Message-ID: <20250106-k3-r5-v2-20-9de6270089ef@pengutronix.de> (raw)
In-Reply-To: <20250106-k3-r5-v2-0-9de6270089ef@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---
Documentation/boards/ti-k3.rst | 79 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 79 insertions(+)
diff --git a/Documentation/boards/ti-k3.rst b/Documentation/boards/ti-k3.rst
new file mode 100644
index 0000000000..a1bf0b92e8
--- /dev/null
+++ b/Documentation/boards/ti-k3.rst
@@ -0,0 +1,79 @@
+TI K3 based boards
+==================
+
+The TI K3 is a line of 64-bit ARM SoCs.
+
+The boot process of the TI K3 SoCs is a two step process. The first stage boot loader
+is loaded by the ROM code and executed on a Cortex-R5 processor. The code on this
+processor is responsible for setting up the initial clocks, power domains and DRAM.
+It then loads the binaries for the A53 cores into DRAM and starts the A53 core. From
+this point on the Cortex-R5 processor is used as a system controller which controls
+clocks and power domains of the SoC.
+
+Prerequisites
+-------------
+
+There are several binary blobs required for building barebox for TI K3 SoCs. Find them
+in git://git.ti.com/processor-firmware/ti-linux-firmware.git. The repository is assumed
+to be checked out at ``$TI_LINUX_FIRMWARE``. The K3 SoCs boot from a FAT partition on
+SD/eMMC cards. During the next steps the files are copied to ``$TI_BOOT``. This is assumed
+to be an empty directory. After the build process copy its contents to a FAT filesystem
+on an SD/eMMC card.
+
+The Cortex-R5 is a 32-bit processors whereas the Cortex-A53 are 64-bit processors, so
+both 32-bit and 64-bit toolchains are needed::
+
+ export CROSS_COMPILE_32=arm-linux-gnueabihf-
+ export CROSS_COMPILE_64=aarch64-v8a-linux-gnu-
+
+Building barebox for the Cortex-R5 processor
+--------------------------------------------
+
+The following assumes barebox is built for a BeaglePlay board. The exact filenames
+need to be adjusted for other boards.
+
+There's a single ``k3-r5_defconfig`` for all K3 boards. This builds the boot images
+for the Cortex-R5 processors::
+
+ cp $TI_LINUX_FIRMWARE/ti-linux-firmware/ti-sysfw/ti-fs-firmware-am62x-gp.bin firmware/
+ export ARCH=arm CROSS_COMPILE=$CROSS_COMPILE_32
+ make k3-r5_defconfig
+ make
+ cp images/barebox-beagleplay-r5.img $TI_BOOT/tiboot3.bin
+
+Building barebox for the Cortex-A53 processors
+----------------------------------------------
+
+The BeaglePlay image is built as part of the ``multi_v8_defconfig``::
+
+ export ARCH=arm CROSS_COMPILE=CROSS_COMPILE_64
+ make multi_v8_defconfig
+ make
+ cp images/barebox-beagleplay.img $TI_BOOT/barebox.bin
+
+Building TF-A
+-------------
+
+The Arm Trusted Firmware is built from https://github.com/ARM-software/arm-trusted-firmware.git::
+
+ make CROSS_COMPILE=$CROSS_COMPILE_64 ARCH=aarch64 PLAT=k3 SPD=opteed \
+ TARGET_BOARD=lite
+ cp build/k3/lite/release/bl31.bin $TI_BOOT/bl31.bin
+
+Bulding OP-TEE
+--------------
+
+OP-TEE is built from https://github.com/OP-TEE/optee_os.git::
+
+ make CROSS_COMPILE64=$CC64 CFG_ARM64_core=y CFG_WITH_SOFTWARE_PRNG=y \
+ PLATFORM=k3-am62x
+ cp out/arm-plat-k3/core/tee-raw.bin $TI_BOOT/optee.bin
+
+Copying ti-dm.bin
+-----------------
+
+The ``ti-dm.bin`` binary is part of ti-linux-firmware.git, this needs to be
+copied to the eMMC/SD as well::
+
+ cp $TI_LINUX_FIRMWARE/ti-dm/am62xx/ipc_echo_testb_mcu1_0_release_strip.xer5f $TI_BOOT/ti-dm.bin
+
--
2.39.5
next prev parent reply other threads:[~2025-01-06 14:05 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-06 13:46 [PATCH v2 00/22] ARM: K3: Add R5 boot support Sascha Hauer
2025-01-06 13:46 ` [PATCH v2 01/22] ARM: add ARMv7R MPU support Sascha Hauer
2025-01-06 13:46 ` [PATCH v2 02/22] lib/rationale: compile for pbl Sascha Hauer
2025-01-06 13:47 ` [PATCH v2 03/22] DDR: Add k3 DDR driver Sascha Hauer
2025-01-06 13:47 ` [PATCH v2 04/22] ARM: move ARM_CPU_PART_* defines to header Sascha Hauer
2025-01-06 13:47 ` [PATCH v2 05/22] nommu_v7_vectors_init: disable for r5 Sascha Hauer
2025-01-06 13:47 ` [PATCH v2 06/22] clocksource: timer-ti-dm: add support for K3 SoCs Sascha Hauer
2025-01-06 13:47 ` [PATCH v2 07/22] ARM: K3: mount /boot even with env handling disabled Sascha Hauer
2025-01-06 13:47 ` [PATCH v2 08/22] clk: add K3 clk driver Sascha Hauer
2025-01-06 13:47 ` [PATCH v2 09/22] pmdomain: add K3 driver Sascha Hauer
2025-01-06 13:47 ` [PATCH v2 10/22] rproc: add K3 arm64 rproc driver Sascha Hauer
2025-01-06 13:47 ` [PATCH v2 11/22] ARM: k3: add k3_debug_ll_init() Sascha Hauer
2025-01-06 13:47 ` [PATCH v2 12/22] ARM: K3: use debug_ll code for regular PBL console Sascha Hauer
2025-01-06 13:47 ` [PATCH v2 13/22] elf: use iomem regions as fallback when loading to non-sdram memory Sascha Hauer
2025-01-06 13:47 ` [PATCH v2 14/22] rproc: add K3 system_controller Sascha Hauer
2025-01-06 13:47 ` [PATCH v2 15/22] firmware: ti_sci: add function to get global handle Sascha Hauer
2025-01-06 13:47 ` [PATCH v2 16/22] ARM: k3: Add initial r5 support Sascha Hauer
2025-01-06 13:47 ` [PATCH v2 17/22] ARM: k3: Add k3img tool Sascha Hauer
2025-01-06 14:34 ` Ahmad Fatoum
2025-01-06 13:47 ` [PATCH v2 18/22] ARM: beagleplay: add binary files Sascha Hauer
2025-01-06 14:33 ` Ahmad Fatoum
2025-01-07 7:44 ` Sascha Hauer
2025-01-06 13:47 ` [PATCH v2 19/22] ARM: beagleplay: add Cortex-R5 boot support Sascha Hauer
2025-01-06 13:47 ` Sascha Hauer [this message]
2025-01-06 13:47 ` [PATCH v2 21/22] ARM: am625: disable secondary watchdogs Sascha Hauer
2025-01-06 13:47 ` [PATCH v2 22/22] mci: am654-sdhci: Use PIO for small transfers Sascha Hauer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250106-k3-r5-v2-20-9de6270089ef@pengutronix.de \
--to=s.hauer@pengutronix.de \
--cc=barebox@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox