U-Boot, Trizeps VIII Mini

Since Trizeps VIII Mini and Myon II are software compatible, the same bootloader may be used for both modules.

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

U-Boot based on NXP 4.14.98_2.0.0_ga

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_v2018.03_4.14.98_2.0.0_ga

imx_mkimage based on NXP imx_4.14.98_2.0.0_ga

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_imx_4.14.98_2.0.0_ga

Previous Versions:

U-Boot

imx_mkimage

Notes

U-Boot

imx_mkimage

Notes

kuk_imx_v2020.04

kuk_imx_4.14.98_2.0.0_ga

Use for Android 11. (Development Status)

kuk_imx_v2019.04_5.4.3_2.0.0

kuk_imx_4.14.98_2.0.0_ga

Use for all current OS, except Android 11

kuk_imx_v2018.03_4.14.98_2.0.0_ga

kuk_imx_4.14.98_2.0.0_ga

Not compatible with Linux 5.4 and later

U-Boot Binaries

Trizeps VIII Mini

Date

Notes

Download

Date

Notes

Download

03.08.2023

5458581fbe

tr8mini_flash_20230803.bin

18.03.2022

U-Boot 2019.04-00179-g9d842fe992

tr8mm_uboot_20220318.bin

21.01.2021

U-Boot 2019.04-00133-gaf324b156b

flash.tr8m.bin

14.01.2020

U-Boot 2018.03-00071-ga93ecbbefe

tr8mm_uboot_20200114.bin

14.01.2020

U-Boot 2018.03 Limit RAM to 3GB (old GPU)

tr8mm_uboot_3gb_20200114.bin

How to Make U-Boot for Trizeps VIII Mini

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 Mini 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.):

Ubuntu 18.04 is recommended for fsl-imx-wayland-glibc-x86_64-core-image-minimal-cortexa53-crypto-trizeps8mini-toolchain-5.10-hardknott.sh.zip

$ . /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 trizeps8mini_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-M4 (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

If you run

this will build the bootloader and run uuu to download the bootloader to the module.

How to Make U-Boot for Trizeps VIII Mini using imx_firmware

This will generate the uboot with all needed components atf, optee, spl and uboot. Also you can create an uefi image.

Update and install build tools:

Clone the imx-firmware repo:

Build uboot and uefi:

Update uboot and uefi on mounted sd card:

Update uboot and uefi using fastboot:

Update Bootloader using UUU

To deploy software to Trizeps VIII Mini, 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:

Update Bootloader on Trizeps VIII Mini running Linux

Copy bootloader (flash.bin) to a filesystem accessible by Linux.

This will:

  • clear U-Boot environment-area,

  • disable read-only access to the boot partition,

  • write flash.bin to offset 33k and

  • reenable read-only access.

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 4.14 the device-tree files can be found at:

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

kuk-trizeps8mini

Basic Device-Tree for the Trizeps VIII Mini module itself, which is included by all other Device-Tree baseboard files

kuk-trizeps8mini-pconxs-edt7

Trizeps VIII Mini in pConXS with capacitive touch EDT 7inch display

kuk-trizeps8mini-pconxs-edt7-pcie

Trizeps VIII Mini in pConXS with capacitive touch EDT 7inch display and PCIE-slot

kuk-trizeps8mini-pconxs-edt7res

Trizeps VIII Mini in pConXS with resistive touch EDT 7inch display

kuk-trizeps8mini-pconxs-edt7res-pcie

Trizeps VIII Mini in pConXS with resistive touch EDT 7inch display and PCIE-slot

kuk-trizeps8mini-ipant7

Trizeps VIII Mini in i-PAN T7 panel

kuk-trizeps8mini-ipant10

Trizeps VIII Mini in i-PAN T10 panel

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