Jetson AGX Orin standalone module on custom carrier

Hi
Let me tell you about my situation. We are working on jetson agx orin modules

  • It includes the following:
    We have AGX Orin devkit module (P3701-0000 Developer Kit module) and AGX Orin devkit carrier
    Jetson AGX Orin reference carrier board (P3737-0000)

  • Then I designed a carrier. The pins and pinmuxes are the same as the devkit carrier, but there’s no data in the eeprom.

  • Then we bought a standalone module (P3701-0004) (id 7223) that’s 32GB, not flashed.

When I plug the devkit module (P3701-0000 Developer Kit module) into my design custom carrier, the USB, Display Port, and all other functions work, but

When I try to flash standalone module in my custom carrier, the Jetson AGX Orin appears as 32GB in the Target Hardware section of the SDK Manager . (I’m not sure if it’s because the eeprom is empty or the module doesn’t have a devkit ID. so not like in devkit )

Then I flash it in preconfig. This time, it doesn’t see the USB drives. Can you help?
Do I need to edit the device trees? Could you create a system from scratch that shows me the way to do it?

Also, is the reason why I can’t select the device target as devkit in the SDK Manager due to the carrier or module ID?I would appreciate it if you could specify which of the two

*** Please note that this reply is generated by LLM automatically ***

Based on the provided context, I will attempt to address the issues you are facing with your custom carrier board and the Jetson AGX Orin modules.

Issue 1: Standalone module not recognized as DevKit module in SDK Manager

The reason you are unable to select the device target as DevKit in the SDK Manager is due to the module ID. The DevKit module (P3701-0000) has a specific ID that is recognized by the SDK Manager, whereas the standalone module (P3701-0004) has a different ID (7223). This ID is stored in the EEPROM of the module.

When you plug the DevKit module into your custom carrier, it works because the module ID is recognized, and the SDK Manager can configure the device accordingly. However, when you try to flash the standalone module, the SDK Manager does not recognize the module ID, and therefore, it does not allow you to select the DevKit as the target device.

Issue 2: USB drives not recognized after flashing in preconfig mode

When you flash the standalone module in preconfig mode, the device tree is not properly configured for your custom carrier board. The preconfig mode is used for flashing the module with a minimal configuration, but it does not account for the specific pinmuxes and configurations of your custom carrier.

To resolve this issue, you need to edit the device tree to match the pinmuxes and configurations of your custom carrier board. You can do this by modifying the device tree files (e.g., tegra194-agx-orin-p3701-0000.dtb) to match your custom carrier’s configuration.

Creating a system from scratch

To create a system from scratch, you will need to:

  1. Modify the device tree files to match your custom carrier’s configuration.
  2. Update the kernel configuration to match your custom carrier’s pinmuxes and configurations.
  3. Update the MB1 and MB2 configurations to match your custom carrier’s configuration.
  4. Update the ODM data to match your custom carrier’s configuration.
  5. Flash the module with the updated configurations.

Here is a high-level overview of the steps:

  1. Clone the Jetson Linux repository and navigate to the device-tree directory.
  2. Modify the tegra194-agx-orin-p3701-0000.dtb file to match your custom carrier’s configuration.
  3. Update the pinmux and gpio configurations to match your custom carrier’s pinmuxes.
  4. Update the kernel configuration to match your custom carrier’s pinmuxes and configurations.
  5. Build the device tree and kernel using the make command.
  6. Flash the module with the updated configurations using the flash.sh script.

Comparison of DevKit and standalone modules

The main difference between the DevKit module (P3701-0000) and the standalone module (P3701-0004) is the module ID. The DevKit module has a specific ID that is recognized by the SDK Manager, whereas the standalone module has a different ID.

In terms of functionality, both modules are identical, and they can be used interchangeably. However, the DevKit module is specifically designed for development and testing, whereas the standalone module is intended for production use.

EEPROM data

The EEPROM data on the DevKit module contains information about the module’s configuration, including the pinmuxes and configurations. When you design a custom carrier board, you need to ensure that the EEPROM data matches the configuration of your custom carrier.

In your case, since you have designed a custom carrier board with the same pinmuxes and configurations as the DevKit carrier, you can use the same EEPROM data on your custom carrier. However, you will need to update the module ID to match the standalone module’s ID (7223).

I hope this comprehensive answer helps you resolve the issues you are facing with your custom carrier board and the Jetson AGX Orin modules.

*** Please give the thumbs up if you get answers you like. Or provide feedback to help us improve the answer. ***

Duplicated qwith Agx orin custom carrier board ,standalone module configurations - Jetson & Embedded Systems / Jetson AGX Orin - NVIDIA Developer Forums