External storage 32GB on a carrier board with Colibri iMX7, iMX8

Hello, I am new to Colibri modules. We have successfully evaluated iMX7D with Iris carrier board and now are designing a customized carrier board. During the process we have received a new optional requirement - adding 32GB external storage to our device. The storage should be fixed on the carrier board because of the vibrations as the devices are working in road vehicles and trains. I think eMMC is the best soulution here.

I know there is a second SD/eMMC interface available on Colibri iMX7 but we prefer to use standard pins to be prepared for module upgrade (with iMX8 for example) in the future when more power is required.

Do you know if there are any compatibility issues with commonly available eMMC devices using standard 4 bit SD card interface?

In the article iMX7 WinCE Bring-up is recommended to not plug the SD card in before entering recovery mode. Will there be any problem with the recovery mode (via USB) as the eMMC will be impossible to remove during recovery?

Hi @milan.d

Thanks for writing to the Toradex Community!

I forwarded your questions to the Hardware Team and they will answer this next week.

Best regards,
Jaski

Hi @milan.d

Sorry for the delayed answer but our Hardware Engineers were busy with several other Tasks.

I know there is a second SD/eMMC interface available on Colibri iMX7 but we prefer to use standard pins to be prepared for module upgrade (with iMX8 for example) in the future when more power is required.

That’s a good idea.

Do you know if there are any compatibility issues with commonly available eMMC devices using standard 4 bit SD card interface?

We have not see any compatibility issues with SD cards having eMMC.

In the article iMX7 WinCE Bring-up is recommended to not plug the SD card in before entering recovery mode. Will there be any problem with the recovery mode (via USB) as the eMMC will be impossible to remove during recovery?

Yes, recovery mode does not work on iMX7 properly if there is a SD Card Inserted in SD Cart Slot. This is an issue coming from the boot-rom in the SoC.

However the recovery mode is only used in production, if there is something broken and you cannot boot the module any-more. If U-Boot is still working, then you can boot Toradex Easy Installer from the media of your choice and reinstall the image. You would need recovery mode, only in case U-Boot is not working any-more. Therefore you can put a analogue switch on the carrier Board between SD CMD Pin and SD Card Slot, thus you can interrupt the signal if needed. You can try this out on the Colibri Evaluation Board first.

Please note, We don’t support WinCe on Colibri iMX8.

Best regards,
Jaski

Hi @jaski.tx
Thank you very much for the answer.

If U-Boot is still working, then you can boot Toradex Easy Installer from the media of your choice and reinstall the image.
I see a WinCE bootloader Toradex Bootloader 1.2 for iMX7 Built Feb 1 2019 and not U-boot after I load WinCE8 image into the module. It does not allow update from USB flash, only from SD card. Am I doing something wrong or do I misunderstand anything?

I am able to load TEZI in Recovery Mode via USB. When I install WinCE8 image, either downloaded from the Toradex server or locally from USB flash, it does not start.
In the serial console, it shows only OEMLaunch: 0x80180000 and nothing happens.
I have to switch to Command Prompt mode and do “flashimage nk8.bin”. After that, WinCE starts normally, but this is possible from SD card only.

Therefore you can put a analogue switch on the carrier Board between SD CMD Pin and SD Card Slot

Could you be more specific please? I understand that SD card interface is a high speed interface and it is not good to insert any mechanical switch there, it would not meet the pcb routing rules. Or, do you mean to add some glue logic? Even a fast gluelogic can delay the cmd signal. But I am just guessing.

Dear @milan.d

The information about U-Boot was a misunderstanding. When using Windows CE, you always use the Toradex Bootloader “Eboot”.

Recovery Mode:

You will usually never use the recovery mode. It is only used for

  • initial OS installation in our facilities
  • Desaster recovery, if for any reason the OS has been overwritten.

In regular operation, there are tools and libraries to update the OS and bootloader from within Windows CE itself.
And for many applications, such a desaster recovery is not necessarily done in the customer’s original carrier board, but the module can be removed and reprogrammed in an external board, e.g. our Evaluation Board.

SD/eMMC Interface Modification

I agree the switch in the CMD signal could be critical in terms of signal integrity, so it should be validated carefully.
The statement that the SD card needs to be removed for recovery mode is somewhat generic, as some of our modules have this requirement. I tested it for the Colibri iMX7D V1.1D - this module can be brought into recovery mode with or without SD card, so the restriction does not apply anyway.

Boot Log

It is normal that the Windows CE Boot output ends at

OEMLaunch: 0x80180000

If you don’t have any display connected, you will not see any aditional output. If you want some more logging of the boot process, you can enable the debug messages.

Toradex Easy Installer Failure

Did I get you right, you were not able to install the WEC2013 image through Toradex Easy Installer, but it worked when loading it within the bootloader command prompt from an SD card?
This is not expected and would be a bug of the Easy Installer.

Regards, Andy

Dear @andy.tx, thank you for the answer.

In regular operation, there are tools and libraries to update the OS and bootloader from within Windows CE itself.

Yes, I know about them and have tried the OS image update and registry save/recovery etc. from within runnig WinCE OS.

And for many applications, such a desaster recovery is not necessarily done in the customer’s original carrier board, but the module can be removed and reprogrammed in an external board, e.g. our Evaluation Board.

Yes, this is an option, though we are trying to find a way how the end customer can do the disaster recovery inside the target device automatically. Maybe it will not be necessary.

If you don’t have any display connected, you will not see any aditional output. If you want some more logging of the boot process, you can enable the debug messages.

I know about the debug messages, and have a display connected (via RGB parallel).

Did I get you right, you were not able to install the WEC2013 image through Toradex Easy Installer, but it worked when loading it within the bootloader command prompt from an SD card?

Yes, exactly. I was not sure if I was doing something wrong and when I found the bootloader command working, I postponed it. As far as I remember I did it with the TEZI which the module came with and tried to install the latest WinCE8 beta build, a month ago. Anyway, I will try to re-check it.

Kind regards, Milan

Hi, I am able to reproduce the WEC2013 TEZI load issue, my steps follow:
My module is iMX7D 512MB, V1.1D, S/N 06429117, Iris V2.0A

  1. Enter recovery mode
  2. Load Colibri-iMX7_ToradexEasyInstaller_1.8-20181019 via USB (run recovery-windows.bat)
  3. Reboot, TEZI starts, 1.8, Built: Oct 19 2018
  4. Select Windows Embedded Compact 2013 1.2 (2019-02-01)
  5. Seems to downlad and install correctly, asks for reboot
  6. After reboot (power cycle) the screen displays Toradex bootloader 1.2 for iMX7 Built Feb 1 2019 and messages about Loading OS image, Done, OEMLaunch: 0x80180000. Nothing else happens.
  7. Reboot, stop booting in serial console, enter command mode and enable debug messages.
  8. Reboot, serial console shows following:

.

Toradex Bootloader 1.2 for iMX7 Built Feb  1 2019
Reset cause: Power-up sequence
Colibri iMX7D 512MB 1.1D Serial: 06429117
RAM             :512 MB
NAND            :512 MB
Press [SPACE] to enter Bootloader Menu
Initiating image launch in 0 seconds.
System ready!
Preparing for download...
Loading OS Image
.........................
Done.
OEMLaunch: 0x80180000
Toradex Windows CE 8.0 1.2 for iMX7 Built Feb  1 2019
SMP support enabled
CPU0 started
CPU1 started
Exception 'Data Abort' (0x4): Thread-Id=00560002(pth=b10035d8), Proc-Id=00400002(pprc=81ffcae0) 'NK.EXE', VM-active=00400002(pprc=81ffcae0) 'NK.EXE'
PC=efef5c8d(k.sorting.dll+0x00005c8d) RA=efef5e79(k.sorting.dll+0x00005e79) SP=b50bf240, BVA=00000004
  1. Reboot, stop booting, enter command mode, flashimage nk8.bin, where nk8.bin is from colibri-imx7wince8image-tezi12-20190201.zip

.

Enter your selection: x

flashimage nk8.bin
SD High Density card
SD: Switched to 4 bit mode
1 partitions on SD card.
File is an uncompressed bin file.
Image base address 80180000 - size: 32029388 bytes.
........................................
Loading done.
Writing image to FLASH: ImageLen: 32029392
.....................................................................................................................................................................................................................................................
saving config 512
Finding configblock...
Writing 5 sector(s) of bootargs data from sector 1792.

Done
Flashing completed.
Image contains a splash screen.
Writing image to FLASH: ImageLen: 47824
.
saving config 512
Finding configblock...
Writing 5 sector(s) of bootargs data from sector 1792.

Done
Splash screen flashed successfully, reboot to use it.

>Toradex Bootloader 1.2 for iMX7 Built Feb  1 2019
Reset cause: Power-up sequence
Colibri iMX7D 512MB 1.1D Serial: 06429117
RAM             :512 MB
NAND            :512 MB

Press [SPACE] to enter Bootloader Menu

Initiating image launch in 0 seconds.
System ready!
Preparing for download...
Loading OS Image
.........................
Done.
OEMLaunch: 0x80180000

Toradex Windows CE 8.0 1.2 for iMX7 Built Feb  1 2019
SMP support enabled
CPU0 started
CPU1 started
Loading ALPCD...
Done Loading ALPCD (0 ms)
Loading SDBusDriver...
Done Loading SDBusDriver (1 ms)
Loading TAPI...
Done Loading TAPI (0 ms)
Loading WAPIMAN...
Done Loading WAPIMAN (5 ms)
Loading SmartCard...
Done Loading SmartCard (0 ms)

…etc…
boots into WEC2013 desktop

Dear @milan.d

Thank you for the feedback. Please let me know if you have further questions.

In case you come across the Easy Installer problem again, I would appreciate if you could open a new post for this.

Regards, Andy

Dear @andy.tx,
several minutes ago I added a comment on my comment about the re-check and reproduce steps but I cannot see it here. I agree to open a new post as it is not related to the original question.

Kind regards, Milan

Toradex Easy installer sometimes handle bad block of iMX7 NAND un-properly during image flashing. It’s happens rarely and affects only a WinCE. As a result bad vlock is used as good one and system image got corrupted. This will be fixed in a next Toradex Easy installer release. For now you can flash module using legacy method. Please prepare SD card as described here.

Than do steps 6,7, 11 and 12 listed here.

You don’t need to put module in a recovery mode and flash a eBoot since you have it already.