Custom board USB firmware issues

I’m working on a school project where we’re adding features to a system based on the Jetson AGX Xavier P2888-0004 (32 GB)

Our custom PCB is similar to the official carrier board, but with much less functionality. One difference is that it uses USB type A instead of type C.

We know that this hardware works because we’ve see it work before. We’re reconstructing the firmware using the Jetson_AGX_Series_DevKit_Pinmux_Configuration_Template.xlsm.

I’ve gone through the procedure of

  • modifying the xlsm
  • generating 3 dtsi files
  • using the python program to generate 2 .cfg files and ignoring the errors as per this post
  • flash using a .conf referencing those files
  • immediately pull the power after flashing to prevent booting up on the carrier board
  • plug into the custom board and turn on

it’ll boot up, but the USB doesn’t work. I suspect the problem is the way I’m modifying the .xlsm file.

Would someone please check my changes from the template pinmux configuration to see where I’m making a mistake?

USB enable
pin F54: cell AQ129 to “USB_VBUS_EN0”

USB2.0 pins
no changes to cells AQ351:AQ358

UPHY11 associated w/ USB0
no changes to cells AQ408:AQ411

UPHY1 associated w/ USB1
no changes to cells AQ368:AQ371

UPHY6 associated w/ USB2
no changes to cells AQ388:AQ391

The other PCIe lanes have:
UPHY 2 - 5 as an x4 device
UPHY 8-9 as an x2 device
so no changes to default values in the cells

Is there another step I’m neglecting?

Also: p41 of the OEM Product Design Guide DG-09840-001_v2.2 says " If the design requires a simpler solution (Type A or similar), then refer to the software adaptation guide for information." What is this and where can I find it?

All the document is on the download center.

And you can find latest adaptation guide here.

https://docs.nvidia.com/jetson/l4t/index.html#search/adaptation%20guide

When you are not able to find specific document, you can search it over the forum first.

thanks for a fast reply

ok i didn’t understand that document was also referred to as the “software adaptation guide”

i’ve looked thru

  • oem guide
  • Jetson AGX Xavier Platform Adaptation and Bring-Up
  • pinmux config xlsm

and it’s still unclear to me why the USBs are not working on the custom board. the validated UPHY lanes 1,6,11 are used w/ USB3.1 type A ports.

are there modifications to the device tree binary i need to make that the dtsis generated by the excel file are not making? I know for a fact the board doesn’t have a USB hardware issue because i’ve used it before.

Just make it more clear to understand. What you need to refer to is the " Porting USB (Universal Serial Bus)" section in the Jetson AGX Xavier Platform adaptation and bring up guide.

In this guide, you have to configure the device tree to make the usb port work. Even changing type C to type A requires to follow the steps too. You are not the only one needs to do such thing. This is a very common topic here.

are there modifications to the device tree binary i need to make that the dtsis generated by the excel file are not making

The dtsi files from the pinmux spreadsheet is not what we are talking about. The dtsi from the pinmux is just for the pinmux control and not directly related to usb stuff. (theoretically, you don’t need to change this for usb)

The real dts file you should modify is from the public source. You need to download it from download center and follow the “kernel customization” section in the developer guide.

You will see lots of dts files inside the tarball and wonder which file should check. You can use dmesg |grep dts on your device to find out the name.

ok i see. i’ll work thru this thanks

ok i got it working on both revisions!! thanks for your guidance!

1 Like