U-Boot, Trizeps VIII Mini
- 1 U-Boot Binaries
- 2 How to Make U-Boot for Trizeps VIII Mini
- 3 How to Make U-Boot for Trizeps VIII Mini using imx_firmware
- 4 Update Bootloader using UUU
- 5 Update Bootloader on uSD-card
- 6 Update Bootloader on Trizeps VIII Mini running Linux
- 7 How to enter Bootloader Command Console
- 8 Device-Tree
- 9 Hints on using U-Boot
- 10 Errors
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 | 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 | kuk_imx_4.14.98_2.0.0_ga |
Previous Versions:
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 |
---|---|---|
03.08.2023 | 5458581fbe | |
18.03.2022 | U-Boot 2019.04-00179-g9d842fe992 | |
21.01.2021 | U-Boot 2019.04-00133-gaf324b156b | |
14.01.2020 | U-Boot 2018.03-00071-ga93ecbbefe | |
14.01.2020 | U-Boot 2018.03 Limit RAM to 3GB (old GPU) |
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:
Enter USB Serial Download Mode
Run:
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