Created
June 3, 2026 07:05
-
-
Save squirrel532/d5da86b53749d21767dd8d3bbd4db15b to your computer and use it in GitHub Desktop.
MIC-711-ON USB 3.2 Fix on JetPack 7.2 (L4T r39) — Engineering Notes
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| > Disclamer: This note is generate by Claude Opus 4.8 and manually tested on a real device. It does fix my problem, please take it at risk. | |
| ● MIC-711-ON USB 3.2 Fix on JetPack 7.2 (L4T r39) — Engineering Notes | |
| Problem | |
| After flashing an Advantech MIC-711-ON (Jetson Orin Nano, module p3767-0004) with stock NVIDIA JetPack 7.2 / L4T R39.2.0: | |
| - USB 3.2 ports ran at USB 2.0 speed (480M) only — e.g. an Orbbec Gemini 305 USB-3 camera capped at 480M. | |
| - One USB 2.0 port was completely dead. | |
| Root Cause | |
| The board was flashed with NVIDIA's stock Orin Nano devkit DTB (tegra234-p3768-0000+p3767-0004-nv.dtb), which targets NVIDIA's reference carrier — not the Advantech | |
| carrier. Two mismatches: | |
| 1. usb3-2 disabled. The MIC-711-ON has an onboard Genesys GL3523 USB-3.1 hub that provides the USB-3.2 Type-A ports. Its SuperSpeed upstream is physically wired to the | |
| usb3-2 UPHY lane, which the devkit DTB leaves disabled → the hub runs in USB-2.0 mode → everything downstream caps at 480M. | |
| 2. usb2-0 bound to a fusb301 USB-C controller (I²C 0x25) that the MIC-711-ON does not have → probe fails (err -22), dependency cycle → that OTG port is dead. | |
| Same ODMDATA / hsio-uphy-config-0 on both → kernel-DTB-only fix, no MB1/UPHY/ODMDATA change needed. | |
| Key Findings (verified) | |
| - The flash target name is a red herring. Advantech flashes p3509-a02+p3767-0000, but that .conf just sources p3768-0000-p3767-0000-a0.conf and resolves to the same | |
| devkit DTB (…p3767-0004-nv.dtb). The target name does not change USB wiring — only the DTB binary content does. | |
| - Advantech patched their DTB. Proven by decompiling three DTBs: | |
| | DTB | usb3-2 lane | fusb301 refs | | |
| |----------------------|-------------|--------------| | |
| | Stock NVIDIA r36.4.4 | disabled | 3 | | |
| | Stock NVIDIA r39 | disabled | 3 | | |
| | Advantech r36.4 BSP | okay | 0 | | |
| - No stock NVIDIA config (devkit or p3509, r36 or r39) enables usb3-2. To stay on JetPack 7.2 you must modify the DTB; the only "stock" alternative is flashing | |
| Advantech's JP6.1 BSP (downgrade). | |
| - Advantech BSP source: MIC-711_OrinNX_6.1.0_V1.0.0_SDK.tbz2 (public Dropbox link on learn.advantech.com/BSP/MIC-711-OX4A1/...), L4T r36.4. Its carrier DTB is the | |
| reference for these changes. | |
| The Fix (applied to tegra234-p3768-0000+p3767-0004-nv.dtb) | |
| Inside padctl@3520000: | |
| - pads/usb3/lanes/usb3-2: status "disabled" → "okay", add a phandle (use a dtc label to avoid collisions). | |
| - ports/usb3-2: status → "okay", add nvidia,usb2-companion = <0x01>; (pairs with usb2-1). | |
| - Host usb@3610000: append the usb3-2 lane phandle to phys, and "usb3-2" to phy-names. | |
| Build: | |
| dtc -I dtb -O dts -o carrier.dts <stock>.dtb | |
| # edit as above (label the usb3-2 lane node, reference it in phys) | |
| dtc -I dts -O dtb -o tegra234-p3768-0000+p3767-0004-nv-USB3FIX.dtb carrier.dts | |
| How to Apply | |
| Non-destructive test (recommended — reversible, persists across reboots, no recovery mode): | |
| # copy patched DTB to board: | |
| sudo cp ...-USB3FIX.dtb /boot/dtb/ | |
| # in /boot/extlinux/extlinux.conf, under LABEL primary, add: | |
| FDT /boot/dtb/tegra234-p3768-0000+p3767-0004-nv-USB3FIX.dtb | |
| sudo reboot | |
| (UEFI L4TLauncher honors the FDT line.) Revert = remove the line + reboot. | |
| Permanent (survives full reflash): drop patched DTB into Linux_for_Tegra/kernel/dtb/, board into recovery, then sudo ./flash.sh -k A_kernel-dtb jetson-orin-nano-devkit | |
| internal. | |
| Verification | |
| lsusb -t # GL3523 / device now at 5000M on Bus 002 (was 480M) | |
| cat /proc/device-tree/bus@0/padctl@*/ports/usb3-2/status # "okay" | |
| ✅ Orbbec camera confirmed at 5000M SuperSpeed on Bus 002 after the fix. | |
| Still Open | |
| - Dead USB-2.0 port — fusb301 probe still fails (-22). Separate fix: in ports/usb2-0, remove usb-role-switch + the fusb301 connector, replace with gpio-usb-b-connector | |
| (or mode = "host"), as Advantech does. Not yet applied. | |
| Useful Diagnostics / Gotchas | |
| - lsusb -t — 480M vs 5000M/10000M tells you SuperSpeed status instantly. | |
| - A 10000M root hub on Bus 002 means the xHCI/UPHY SS lane is up at controller level — if devices still show 480M, it's a port/lane mapping problem in the DTB, not | |
| silicon. | |
| - p3767-0004 = Orin Nano (260-pin SO-DIMM). It physically cannot sit on an AGX (p3701, 699-pin) carrier — don't try AGX DTBs. | |
| - Module SKU ↔ DTB: live compatible string (nvidia,p3768-0000+p3767-0004) tells you which DTB is flashed; match live padctl values to pick -nv vs -nv-super. | |
| --- | |
| This is also saved to project memory (mic711-usb3-dtb-mismatch.md) so it'll resurface next session. Want me to drop this same write-up into a file in your working | |
| directory (e.g. MIC-711-ON_USB3_fix_notes.md) so you have it outside the Claude memory too? |
Author
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
https://learn.advantech.com/BSP/MIC-711-OX4A1/Ubuntu%2022.04/6.1.0_V1.0.0/