Hello @naveenkumar.muthusam,
Thanks for the meeting earlier.
Going back to the original topic:
Here is the patch that worked for me (you need to configure usb0 instance to be in host mode):
diff --git a/arch/arm/dts/k3-am625-verdin-wifi-dev-u-boot.dtsi b/arch/arm/dts/k3-am625-verdin-wifi-dev-u-boot.dtsi
index 206df610461..f706340a60f 100644
--- a/arch/arm/dts/k3-am625-verdin-wifi-dev-u-boot.dtsi
+++ b/arch/arm/dts/k3-am625-verdin-wifi-dev-u-boot.dtsi
@@ -183,7 +183,7 @@
};
&usb0 {
- dr_mode = "peripheral";
+ dr_mode = "host";
/* Since role switching is not supported in U-Boot */
/delete-property/ extcon;
bootph-pre-ram;
Then I built the custom uboot following this article: Specifics: Build U-Boot for TI AM62x-based SoMs | Toradex Developer Center
Then to deploy the custom uboot, I replaced the files tispl.bin
, u-boot.img
and tiboot3-am62x-hs-fs-verdin.bin
in a working BSP reference image which I downloaded from our website. Then you can flash this custom image into your recovered Verdin AM62 module, interrupt the booting in uboot and access the USB devices. Instead of re-flashing the whole image, you can also use dd to replace these 3 files in mmcblk0boot0
. If you use dd
, you can check the seek values for these files in the image.json file in the TEZI compatible image. This is what I would do in development to test the setup. Personally, I prefer method 1 in development.
However, when it comes to production programming, you need to consider certain things. To boot from a USB device or SD card, you need U-Boot (in your case, the custom u-boot) already running on the module. I understand that you want to boot the module from USB device - connected to USB instance 0. Now, as I explained earlier, we ship the modules with Toradex Easy Installer (TEZI) pre-installed on it, and the uboot on the default TEZI would have the same behavior that you observe now (will only detect USB controller 1).
Therefore, you need to install the custom uboot into eMMC if you have a strong reason why you want to boot from USB instance 0 (instead of using the eMMC directly). You will need some medium to install a custom image or custom uboot in the first place. It could be an SD card, an Ethernet interface, or USB itself. However, in your case, I believe you don’t have Ethernet port on your custom carrier board, and you cannot access SD card yet due to the voltage level issue that you mentioned. Also, you cannot install through USB device since your custom carrier board can access only USB instance 0 (chicken and egg problem here). I believe the solution is to fix the SD card issue first.