SoM flashing with Toradex Easy Installer through usb device and usb_c line

(* post modified due to wrong pin number explanation *)

Good morning,

I have a technical question about flashing a imx6ull module using easy installer from usb-key device.
In our previous prototype everything works because we used usb_h line (pins 139 and 141 of iMX6ULL module). So, when I power on the board, the module sees usb-key, starts EI, and this last one starts the flashing.

Instead, in our second prototype we had to change some connections, and we moved usb-A socket on usb_c line (pins 143 and 145). In runtime I am able to read and detect correctly usb-key, but when I try to flash the module it doesn’t work. What happens is that SoM detects usb-device, it starts EI, but this last one stops probably because is not able to read from usb-device. In fact if I navigate in rootfs I can’t find anything in /media/ or /dev/ folders.
If I put the same module (so with the same OS) in the older board, I am able to flash it because usb-A port is still connected to usb_h line.

So, I want to know if it is possible to use usb_c line to flash iMX6ULL in somehow, because I read EI wants usb OTG while iMX6ULL doesn’t have a true usb OTG.
Could be this the problem?
Can we change or customize EI?

Thanks.

I work with:

  • imx6ull trdx module;
  • colibri evaluation v3 board;
  • our custom carrier board;
  • Linux BSP 5.6
  • Kernel 5.4-2.3

Dear @RiccardoC_DLK ,

Thanks for reaching out to us!

In our previous prototype everything works because we used usb_h line (pins 139 and 141 of iMX6ULL module).

From the datasheet of Colibri iMX6ULL you can see that the pins 139 and 141 have the functionality to act as a USB host port (page 35, section USB). This is the reason why you got it working on your first prototype.

However, pins 32 and 34 do not have USB muxing functionality. You may verify this on pages 26 and 27 and also in the USB section of the datasheet. If you want to use usb_c line on Colibri iMX6ULL module, you should be using pins 143 and 145 instead.

I hope that helps :slight_smile:

Sorry rudhi, my mistake.
I am using correctly pin 143 and 145 for usb_c line. I have just written wrong in the previous post.

Hello @RiccardoC_DLK,

the Problem is related to your other ticket: How works USBC_VBUS_DET - #16 by matthias.tx

In your other ticket, we guided you to change the device tree so that the ID pin is removed from the device tree to enable the USB_C as host. Since you could not make it in hardware pulling the ID line to GND.

You need either connect it ground or remove extcon_usbc_det node from you Device Tree. In last case you can use pin 137 as a regular GPIO

The problem here is that you are using TEZI and TEZI does not have those device tree changes like your image has.
Customizing TEZI would be an option but not the best way. The best way is to make the hardware compatible with the standard TEZI. But I will discuss the custom TEZI with the Team also.

Best Regards,

Matthias

Hello @RiccardoC_DLK,

here is a link to how you could change a the Tezi device tree.

Best Regards,

Matthias

@RiccardoC_DLK,

do you still need help here or can we close the ticket?

Best Regards,

Matthias Gohlke

close. thanks.