U-Boot, Trizeps VIII Plus

http://gitlab.keith-koep.com/imx/uboot-imx
http://gitlab.keith-koep.com/imx/imx-mkimage

U-Boot

ssh://git@git.seco.com:seco-ne/3rd-party/kuk/uboot-imx-kuk.git
https://git.seco.com/seco-ne/3rd-party/kuk/uboot-imx-kuk.git

kuk_imx_v2020.04-tr8plus

imx_mkimage

ssh://git@git.seco.com:seco-ne/3rd-party/kuk/imx-mkimage-kuk.git
https://git.seco.com/seco-ne/3rd-party/kuk/imx-mkimage-kuk.git

kuk_lf-5.10.52_2.1.0

Previous Versions:

U-Boot

imx_mkimage

Notes

U-Boot

imx_mkimage

Notes

kuk_imx_v2020.04-tr8plus

kuk_lf-5.10.52_2.1.0

(Development Status)

U-Boot Binaries

Trizeps VIII Mini

Date

Notes

Download

Date

Notes

Download

03.08.2023

5458581fbe

tr8plus_flash_20230803.bin

22.11.2021

-

tr8plus_flash.bin

How to Make U-Boot for Trizeps VIII Plus

This is only a quick-reference on how to build the U-Boot bootloader including Seco specific changes.
For details please view the NXP i.MX8M Plus documentation.

Get the source code of U-Boot and imx_mkimage tool from git repository:

$ mkdir uboot $ cd uboot ~/uboot$ git clone https://git.seco.com/seco-ne/3rd-party/kuk/imx-mkimage-kuk.git -b kuk_lf-5.10.52_2.1.0 ~/uboot$ mv imx-mkimage-kuk/ imx-mkimage/ ~/uboot$ git clone https://git.seco.com/seco-ne/3rd-party/kuk/uboot-imx-kuk.git -b kuk_imx_v2020.04

Setup Cross-Build environment (View Software-Development-Kit on how to install.):

$ . /opt/fsl-imx-wayland/5.10-hardknott/environment-setup-cortexa53-crypto-poky-linux

Build U-Boot from source Code:

~/uboot/uboot-imx$ make clean ~/uboot/uboot-imx$ make trizeps8plus_defconfig ~/uboot/uboot-imx$ make

This will generate the SPL, U-Boot and device-tree binary.
Note that this minimal device-tree binary will only be used by U-Boot and is not intended for use by the Linux kernel!
After these binaries have been created, they must be packed together with other components to form the bootloader:
SCU-Firmware: This NXP firmware is loaded into the Cortex-M7 (SCU: System Controller Unit).
ATF-Firmware: The SCU will load the ARM trusted firmware.
SPL / U-Boot: The ATF will load the primary loader, which will initialize the LPDDR4 and load U-Boot.

Which will create

Update Bootloader using UUU

To deploy software to Trizeps VIII Plus, you may use the NXP Universal Update Utility (UUU).
Steps needed:

Update Bootloader on uSD-card

If you have a module with uSD-card-slot, you can deploy software directly using your PC.
Steps needed:

  • Identify the uSD-Slot (/dev/sd<x>) by using 'lsblk' command.

  • Run:

How to enter Bootloader Command Console

To enter the bootloader command console attach a serial cable to the first COM-port ( SODIMM-pins: 33, 35) with 115k2 Baud, 8N1.
Press any key while the device is powering up.
The output should look something like this:

Device-Tree

The Linux-kernel will use a Device-Tree-Binary file (.dtb) to determine how the Trizeps module is used in a system (i.e. which drivers to load).
How the device-tree is generated might depend on the used kernel-version and it is recommended to view the articles to the respective OS in this wiki.
For Linux the device-tree files can be found at:

When building the Linux-kernel .dts source-files are converted to .dtb binary files.

When you open the u-boot command prompt and output the environment, you can determine which device-tree is used:

To change this you can i.e. call:

'env save' will store this setting for subsequent boots.

Hints on using U-Boot

Enter USB Serial Download Mode

The USB Serial Download Mode (manufacturing mode) is a mode by which the i.MX8M Mini processor loads its internal ROM-firmware instead of the bootloader stored in eMMC or SD-card.
It will use the USB-OTG port to enumerate as HID-device on a connected PC.
In this mode the NXP Universal Update Utility (UUU) can be used to deploy software.

Using Hardware RESET_IN

The default Kinetis MCU firmware will enter Serial Download Mode after RESET_IN (SODIMM-pin 26) has been asserted for more than 10s.

Using Bootloader

To enter the USB Serial Download Mode of the NXP boot-ROM issue following commands:

This will write to REG_CONTROL of the Trizeps VIII MCU, which will than reset the i.MX8M processor into this mode.

Using Linux

To enter the USB Serial Download Mode of the NXP boot-ROM issue the following command:

This will write to REG_CONTROL of the Trizeps VIII MCU, which will than reset the i.MX8M processor into this mode.

Notes on eMMC Boot Partition

Whereas SD-cards got memory organized in one user-space, eMMC have two additional boot-spaces.
The spaces are often referred to as partitions. But this might be confusing, since they are not the typical partition, one would create through a partition-table/master-boot-record.
A boot-space can overlay the first megabytes of normal user-space. After the bootloader got booted, it will fade-out the boot-space and so prevent any subsequent operating-system to be able to mess with the bootloader.
When using eMMC it needs to be decided, wether to use the boot-space or the user-space for the bootloader.
Following commands may be used to switch between the different modes (this is kept after power-cycle):

When using different tools for updating the flash-content, a situation may arise, where the bootloader is written into the „wrong“ partition – the flash-space, which is not used for booting.

If you use

to view the default-script used by uuu, you should note the line

, which will configure the eMMC to use the boot-space after it has completed the update. If you want to use the user-space simply call

after running uuu or run uuu with a custom-script.

Errors

To remove this error you Need the device-tree-compiler