I’ve designed a custom carrier board for the AGX Orin and I have a few questions regarding some technical details:
1. Flashing Methods
I know that it’s possible to flash the AGX Orin module from a host PC.
Is it possible to flash the AGX Orin module via a microSD card?
Are there any other methods to flash the module?
2. Module Flash Status
Devkits usually come pre-flashed. However, if we purchase the module separately, does it come with any flash content (bootloader or system image) installed?
If the module is not flashed, does it automatically enter recovery mode when powered on? Or do we need to press the recovery button while powering up?
3. USB Type-C and PD Configuration
I added a USB PD IC (HD3SS3220IRNHT) for the DRP role USB Type-C port and set the PORT pin low to configure it as UFP, as specified in the datasheet.
However, the I2C pins of the PD IC are not connected to the my designed AGX Orin carrier.
In this case, does the UFP configuration information get communicated to the Orin module through the PD IC, or is it conveyed via the USB lanes by the host?
In recovery mode, does this DRP USB Type-C port automatically switch to UFP mode?
Can I configure this USB port’s mode via the device tree?
Additionally, is it a problem during flashing if the USB PD’s I2C is not connected to the Orin module?
Is it possible for it to automatically enter recovery mode even if there is no USB PD connection?
Note: After connecting the carrier to the host PC, I can see the AGX Orin’s device ID in the Linux terminal.
Thanks for the structured set of questions.
I will try to answer them one by one based on our experience working with clients and their custom carriers.
1.1. Is it possible to flash the AGX Orin module via a microSD card?
No. The AGX Orin does not support booting from SD card, and I don’t you can use it as an installation media.
1.2. Are there any other methods to flash the module?
Yes, you can boot your AGX Orin from USB drive, SSD and NFS. Therefore, you can use any process you want to flash any of those booting devices.
Also, depending on what you want to accomplish, you can use OTA Updates to flash your board with newer version of your BSP or software package.
2.1. Do modules come pre-flashed?
That is a great question, we have had this conversation with lots of our clients and it always depends on the vendor you are getting the modules from. We usually talk to the manufacturer so they pre-flash a base image into the modules so that later we can just install our client’s software stack and deploy the devices.
This can also be arranged with the company who is going to be manufacturing or assembling your final product. They can very easily accommodate a flashing stage so that your boards come pre-flashed from factory.
2.2. If the module is not flashed, does it automatically enter recovery mode when powered on? Or do we need to press the recovery button while powering up?
If the boards end up coming without any image flashed, then you will need to set the board into recovery mode yourself. That could be with the button or any other method you come up with while designing your carrier board. For example, I very recently helped someone on a forum working with a very cool design where they had a co-processor on the same board as the Jetson that they used for flashing the Jetson itself. Pretty cool!
3.1. In this case, does the UFP configuration information get communicated to the Orin module through the PD IC, or is it conveyed via the USB lanes by the host?
I am not sure I understood your HW configuration regarding the USB PD IC. But if you remove the HD3SS3220IRNHT from equation you can still control your board via dtb and pinmux config.
3.2. In recovery mode, does this DRP USB Type-C port automatically switch to UFP mode?
Yes. Independently of your DTB config or even if you have a USB Mode Switch Controller or not, the board will always be configured as device whenever on force recovery mode. We helped one of our clients with a similar configuration and we did was just leave the board to configure USB ports as host only when on normal operating and recovery mode still worked as expected.
3.3. Can I configure this USB port’s mode via the device tree?
Yup. Everything is configurable via DTB and Pinmux.
3.4. Additionally, is it a problem during flashing if the USB PD’s I2C is not connected to the Orin module?
As I briefly mentioned before, we have seen cases where clients removed the PD completely from the carrier and recovery mode still worked as expected.
3.5. Is it possible for it to automatically enter recovery mode even if there is no USB PD connection?
Automatically, maybe if you already have the board flashed with an image, then you can reboot it into recovery mode. Or, just by adding a HW interface like button for setting it into recovery mode.
Hope that helps.
Please let me know if you need any extra support, we have helped other people in the past in the same situation as you, so we might be able to provide you with support.
best regards,
Andrew
Embedded Software Engineer at ProventusNova