Access to information is restricted depending on your login.
Request login-information through our contact form.
Access to information is restricted depending on your login.
Request login-information through our contact form.
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 |
Date | Changelog | Download |
---|---|---|
06.04.2021 | - | mn2_uboot_20210406.bin |
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 myon2_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.
To deploy software to Myon II, you may use the NXP Universal Update Utility (UUU).
Steps needed:
~/uboot-imx/iMX8M$ sudo uuu -b emmc flash.bin
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:
To enter the bootloader command console attach a serial cable to the first COM-port ( P2_TXD/RXD pins: J70-69,J70-71) with 115k2 Baud, 8N1.
Press any key while the device is powering up.
The output should look something like this:
U-Boot SPL 2018.03-00063-g076c240b55-dirty (Oct 15 2019 - 14:56:24 +0200) DDRINFO: start lpddr4 ddr init DDRINFO: ddrphy calibration done DDRINFO: ddrmix config done Normal Boot Trying to boot from MMC1 U-Boot 2018.03-00063-g076c240b55-dirty (Oct 15 2019 - 14:56:24 +0200) CPU: Freescale i.MX8MMQ rev1.0 1800 MHz (running at 1200 MHz) CPU: Commercial temperature grade (0C to 95C) at 56C Reset cause: POR Model: FSL i.MX8MM EVK board DRAM: 2 GiB Modul: 60A20.x01xx.Hxx This is a Keith & Koep GmbH Myon II V1R1 running a i.MX 8M Mini Quad 1800MHz (consumer) with 2GB,32bit RAM and booting from eMMC. IO-Voltage 1.8V Audio WM8983 MMC: FSL_SDHC: 0, FSL_SDHC: 1 Loading Environment from MMC... OK No panel detected: default to MIPI2HDMI Display: MIPI2HDMI (1920x1080) Video: 1920x1080x24 In: serial Out: serial Err: serial BuildInfo: - ATF 1cb68fa - U-Boot 2018.03-00063-g076c240b55-dirty switch to partitions #0, OK mmc0(part 0) is current device flash target is MMC:0 EXT_CSD[179], PARTITION_CONFIG: BOOT_ACK: 0x1 BOOT_PARTITION_ENABLE: 0x1 PARTITION_ACCESS: 0x0 Net: none (disabled) Warning: ethernet@30be0000 (eth0) using random MAC address - 16:89:6e:97:26:5d eth0: ethernet@30be0000 Fastboot: Normal Normal Boot Hit any key to stop autoboot: 0 u-boot=>
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-myon2 | Basic Device-Tree for the Myon II module itself, which is included by all other Device-Tree baseboard files |
kuk-myon2-ipanm7 | Myon II in i-PAN M7 panel |
kuk-myon2-conxm-hdmi | Myon II in ConXM baseboard using HDMI-output |
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-myon2-ipanm7.dtb u-boot=> env save
'env save' will store this setting for subsequent boots.
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.
It will use the USB1 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.
USB Serial Download Mode is entered by setting pin J70-40 BOOT_MODE_0 to VDD_IO on boot.
On i-PAN M7 CoverLens and ConXM (formerly: dragonBase) this can be achieved by setting a switch.