USB port is not working after kernel updated

I’m using custom carrier board that I designed myself. There is no problem using USB port when I’m using L4T 32.2.1 and jetpack 4.2.2. However, I need to update L4T version to 32.4.3 for my new application to use jetpack 4.4. After the update, USB doesn’t work. What I don’t understand is that it’s working on the evaluation board. The schematic for USB part in my custom carrier board is as follows.

If it is the problem of S/W configuration, I think it should show the same problem on the evaluation board. If it is the problem of H/W design, it should be happened with L4T 32.2.1.

I don’t know if your schematic is an exact match to the dev kit carrier board or not, but this sort of thing almost always turns out to be a change in device tree causing the failure. Note that it isn’t just the physical ethernet port which has to match, it is also power rails related to anything in the ethernet which would have to match. Is the custom carrier layout, including power delivery requirements, a 100% exact match to the dev kit?

I guess your software configuration was never correct. Just a lucky one on 32.2.1 makes it work.

Please check the adaptation guide and modify your device tree. You may need some software engineers who is familiar with linux kernel to cowork with you.

Basically, the schematic of my carrier board is same as dev kit carrier board. Only difference is that I use a different load switch for VBUS side. But the funcitionality is same as one in the dev board.

I’ve solved the problem by removing the following configuration on the device tree.

It’s working now but I still don’t understand why.

Then please read the document to understand it…

USB enumeration in kernel needs to be totally correct so that it will work. For example, if your board design does not have usb2-2 pin connected, then the kernel will fail to probe usb driver and even usb2-0, 2-1 will also be dead.

Or maybe that vbus-supply to usb2-2 does not match your board.

I have been heard lots of people said “my board schematic is same as devkit”, but only few of them can let it work without changing the device tree. Which means only few of them are really same as devkit.

Thus, read the document first.