Seitenleiste


Access to information is restricted depending on your login. Request login-information through our contact form.

service:linux:uboot:trizeps8mini

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@gitlab.keith-koep.com:30001/imx/uboot-imx.git
http://gitlab.keith-koep.com/imx/uboot-imx.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@gitlab.keith-koep.com:30001/imx/imx-mkimage.git
http://gitlab.keith-koep.com/imx/imx-mkimage.git
kuk_imx_4.14.98_2.0.0_ga

Previous Versions:

U-Boot imx_mkimage
kuk_imx_v2018.03_4.14.98_2.0.0_ga kuk_imx_4.14.98_2.0.0_ga

U-Boot Binaries

Trizeps VIII Mini

Date Changelog Download
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 Keith & Koep 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 http://gitlab.keith-koep.com/imx/imx-mkimage.git -b kuk_imx_4.14.98_2.0.0_ga
~/uboot$ git clone http://gitlab.keith-koep.com/imx/uboot-imx.git -b kuk_imx_v2018.03_4.14.98_2.0.0_ga

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

$ . /opt/fsl-imx-fb/4.14-sumo/environment-setup-aarch64-poky-linux

Build U-Boot from source Code:

~/uboot/uboot-imx$ make clean
~/uboot/uboot-imx$ make trizeps8mini_defconfig
~/uboot/uboot-imx$ make all

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.

~/uboot/uboot-imx$ make miniflash.bin

Which will create

~/uboot/uboot-imx/miniflash.bin

If you run

~/uboot/uboot-imx$ make flash_mini

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

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:
    ~/uboot-imx/iMX8M$ sudo dd if=flash.bin of=/dev/sd<x> bs=1k seek=33 conv=fsync

Update Bootloader on Trizeps VIII Mini running Linux

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

$ dd if=/dev/zero of=/dev/mmcblk0 bs=1k seek=4096 conv=fsync count=8
$ echo 0 > /sys/block/mmcblk0boot0/force_ro
$ dd if=flash.bin of=/dev/mmcblk0boot0 bs=1k seek=33
$ echo 1 > /sys/block/mmcblk0boot0/force_ro

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:

U-Boot SPL 2017.03-00886-gb76bb1b-dirty (Apr 10 2019 - 14:18:59)
PMIC:  PFUZE100 ID=0x10
check ddr4_pmu_train_imem code
check ddr4_pmu_train_imem code pass
check ddr4_pmu_train_dmem code
check ddr4_pmu_train_dmem code pass
Training PASS
Training PASS
check ddr4_pmu_train_imem code
check ddr4_pmu_train_imem code pass
check ddr4_pmu_train_dmem code
check ddr4_pmu_train_dmem code pass
Training PASS
Normal Boot
Trying to boot from MMC1


U-Boot 2017.03-00886-gb76bb1b-dirty (Apr 10 2019 - 14:18:59 +0200)

CPU:   Freescale i.MX8MQ rev2.0 1500 MHz (running at 1000 MHz)
CPU:   Commercial temperature grade (0C to 95C) at 63C
Reset cause: POR
Model: Freescale i.MX8MQ EVK
DRAM:  2 GiB
[TR8] RAM-size is 0x80000000
MMC:   FSL_SDHC: 0, FSL_SDHC: 1
No panel detected: default to HDMI
Display: HDMI (1280x720)
In:    serial
Out:   serial
Err:   serial

 BuildInfo:
  - ATF 9d25029
  - U-Boot 2017.03-00886-gb76bb1b-dirty

switch to partitions #0, OK
mmc0(part 0) is current device
Net:
Warning: ethernet@30be0000 (eth0) using random MAC address - fe:77:14:3e:cc:f0
eth0: ethernet@30be0000
Normal Boot
Hit any key to stop autoboot:  0
u-boot=>

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:

~/linux_imx/arch/arm64/boot/dts/keithkoep

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:

u-boot=> env print -a
...
fdt_file=kuk-trizeps8mini.dtb
...

To change this you can i.e. call:

u-boot=> env set fdt_file kuk-trizeps8mini-pconxs-edt7.dtb
u-boot=> env save

'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:

u-boot=> i2c dev 2
u-boot=> i2c mw 0x10 2.1 2

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:

$ i2cset -f -y 2 0x10 2 2

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

Errors

sh: 1: dtc: not found
./mkimage_uboot: Can't open u-boot.itb.tmp: No such file or directory
soc.mak:137: recipe for target 'u-boot.itb' failed

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

apt-get install device-tree-compiler
Cookies helfen bei der Bereitstellung von Inhalten. Durch die Nutzung dieser Seiten erklären Sie sich damit einverstanden, dass Cookies auf Ihrem Rechner gespeichert werden. Weitere Information
service/linux/uboot/trizeps8mini.txt · Zuletzt geändert: 2020/05/13 08:12 von