Apalis IMX6Q 2GB IT V1.1C irrevocably configured (fused) for “fast boot mode”

Hi Toradex,

2x 1.1C Apalis board we ordered just reached us. According to Apalis iMX6 | Toradex Developer Center

i.MX 6 SoC and eMMC are irrevocably configured (fused) for “fast boot mode”

and according to Linux - Booting | Toradex Developer Center

In a not yet migrated module the fuse 0 5 has the value 00005062:

I have checked in my bootloader and see this:

Apalis iMX6 # fuse sense 0 5
Sensing bank 0:

Word 0x00000005: 00005062

Correct me if I am wrong, but it seems that my fresh 1.1C are not fused yet. The bootloader shows the following:

U-Boot 2016.11-1.1.0+g51b53b4 (Sep 06 2017 - 15:19:08 -0700)

CPU:   Freescale i.MX6Q rev1.5 at 792 MHz
Reset cause: POR
I2C:   ready
DRAM:  2 GiB
PMIC:  device id: 0x10, revision id: 0x21, programmed
MMC:   FSL_SDHC: 0, FSL_SDHC: 1, FSL_SDHC: 2
Using default environment

And the kernel is not able to bootup:

In:    serial_mxc
Out:   serial_mxc
Err:   serial_mxc
Model: Toradex Apalis iMX6 Quad 2GB IT V1.1C, Serial# 05146769
Net:   using PHY at 7
FEC [PRIME]
Hit any key to stop autoboot:  0
MMC: no card present
MMC: no card present
switch to partitions #0, OK
mmc0(part 0) is current device
Scanning mmc 0:1...
Found U-Boot script /boot.scr
reading /boot.scr
581 bytes read in 11 ms (50.8 KiB/s)
## Executing script at 17000000
reading /tezi.itb
20534172 bytes read in 577 ms (33.9 MiB/s)
## Loading kernel from FIT Image at 12100000 ...
   Using 'config@1' configuration
   Trying 'kernel@1' kernel subimage
     Description:  Linux Kernel 4.1
     Type:         Kernel Image
     Compression:  uncompressed
     Data Start:   0x121000dc
     Data Size:    5294512 Bytes = 5 MiB
     Architecture: ARM
     OS:           Linux
     Load Address: 0x11000000
     Entry Point:  0x11000000
     Hash algo:    md5
     Hash value:   305e4b15183ab494466196f418b141b6
   Verifying Hash Integrity ... md5+ OK
## Loading ramdisk from FIT Image at 12100000 ...
   Using 'config@1' configuration
   Trying 'ramdisk@1' ramdisk subimage
     Description:  SquashFS RAMdisk
     Type:         RAMDisk Image
     Compression:  uncompressed
     Data Start:   0x1260cb74
     Data Size:    15187968 Bytes = 14.5 MiB
     Architecture: ARM
     OS:           Linux
     Load Address: unavailable
     Entry Point:  unavailable
     Hash algo:    md5
     Hash value:   de4b55af55d0abefc80b3726c4c40c6b
   Verifying Hash Integrity ... md5+ OK
## Loading fdt from FIT Image at 12100000 ...
   Using 'config@1' configuration
   Trying 'fdt@1' fdt subimage
     Description:  Apalis iMX6 Device Tree
     Type:         Flat Device Tree
     Compression:  uncompressed
     Data Start:   0x13488c3c
     Data Size:    50217 Bytes = 49 KiB
     Architecture: ARM
     Hash algo:    md5
     Hash value:   263c6eaecdb08a7bf9e9e08b580c6acc
   Verifying Hash Integrity ... md5+ OK
   Booting using the fdt blob at 0x13488c3c
   Loading Kernel Image ... OK
   Loading Device Tree to 2fff0000, end 2ffff428 ... OK

Starting kernel ...

[    0.862444] snvs-secvio 20cc000.caam-snvs: can't get snvs clock
Running /etc/rc.local...

Should fusing it manually solve this issue?

I figured out the kernel easy installer part & the boot up is working as expected. However, the fuse sensing it not returning the actual value.

Hi

Correct me if I am wrong, but it seems that my fresh 1.1C are not fused yet.

We analysed this and found that with one of the new testers which we introduced together with the move to V1.1C the i.MX6 fuses are set to not use fast boot mode. I.e. the old setting for the fuse 0 5 of 0x5062 is fused.

In the meantime we corrected the tester to fuse the correct values so that this should not happen in the future.

Should fusing it manually solve this issue?

Yes, but you have also other options:

If you use the Toradex Easy Installer or our legacy ‘run setupdate && run update’ procedure to install Linux the i.MX6 fuse will be updated to use fastboot mode.

And, as you suggest, you could manually update the fuse by running from the U-Boot cmd line the ‘updt_fuse’ command.

Max