u-boot/doc/board/siemens/iot2050.rst
Su Baocheng ea0f45d187 board: siemens: iot2050: Split the build for PG1 and PG2
Due to different signature keys, the PG1 and the PG2 boards can no
longer use the same FSBL (tiboot3). This makes it impossible anyway to
maintaine a single flash.bin for both variants, so we can also split the
build.

A new target is added to indicates the build is for PG1 vs. PG2 boards.
Hence now the variants have separated defconfig files.

The runtime board_is_sr1() check does make no sense anymore, so remove
it and replace with build time check.

Documentation is updated accordingly. New binary artifacts are already
available via meta-iot2050.

Signed-off-by: Su Baocheng <baocheng.su@siemens.com>
[Jan: refactor config option into targets, tweak some wordings]
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
2023-03-29 11:58:25 -04:00

85 lines
1.9 KiB
ReStructuredText

.. SPDX-License-Identifier: GPL-2.0+
.. sectionauthor:: Jan Kiszka <jan.kiszka@siemens.com>
SIMATIC IOT2050 BASIC and ADVANCED
==================================
The SIMATIC IOT2050 is an open industrial IoT gateway that is using the TI
AM6528 GP (Basic variant) or the AM6548 HS (Advanced variant). The Advanced
variant is prepared for secure boot.
The IOT2050 starts only from OSPI. It loads a Siemens-provided bootloader
called SE-Boot for the MCU domain (R5F cores), then hands over to ATF and
OP-TEE, before booting U-Boot on the A53 cores. This describes how to build all
open artifacts into a flashable image for the OSPI flash. The flash image will
work on both variants.
Dependencies
------------
ATF: Upstream release 2.4 or newer
OP-TEE: Upstream release 3.10.0 or newer
Binary dependencies can be found in
https://github.com/siemens/meta-iot2050/tree/master/recipes-bsp/u-boot/files/prebuild.
The following binaries from that source need to be present in the build folder:
- seboot_pg1.bin
- sysfw_sr1.itb
- sysfw_sr1.itb_HS
- seboot_pg2.bin
- sysfw_sr2.itb
- sysfw_sr2.itb_HS
Building
--------
Make sure that CROSS_COMPILE is set appropriately:
.. code-block:: text
$ export CROSS_COMPILE=aarch64-linux-gnu-
ATF:
.. code-block:: text
$ make PLAT=k3 SPD=opteed K3_USART=1
OP-TEE:
.. code-block:: text
$ make PLATFORM=k3-am65x CFG_ARM64_core=y CFG_TEE_CORE_LOG_LEVEL=2 CFG_CONSOLE_UART=1 CFG_USER_TA_TARGETS="ta_arm64"
U-Boot:
.. code-block:: text
$ export ATF=/path/to/bl31.bin
$ export TEE=/path/to/tee-pager_v2.bin
# configure for PG1
$ make iot2050_pg1_defconfig
# or configure for PG2
$ make iot2050_pg2_defconfig
$ make
Flashing
--------
Via U-Boot:
.. code-block:: text
IOT2050> sf probe
IOT2050> load mmc 0:1 $loadaddr /path/to/flash.bin
IOT2050> sf update $loadaddr 0x0 $filesize
Via external programmer Dediprog SF100 or SF600:
.. code-block:: text
$ dpcmd --vcc 2 -v -u flash.bin