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 | kuk_imx_v2020.04-tr8plus |
imx_mkimage | ssh://git@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 |
---|---|---|
kuk_imx_v2020.04-tr8plus | kuk_lf-5.10.52_2.1.0 | (Development Status) |
U-Boot Binaries
Trizeps VIII Mini
Date | Notes | Download |
---|---|---|
03.08.2023 | 5458581fbe | |
22.11.2021 | - |
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:
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:
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