Retrieve TX2 (J120) Base Board Information during runtime.


I’d like to load different device trees during boot based on the base board that my TX2 module is hosted. When the module is running on the J120 carrier board, a different DTB is required from the Jetson Development kit.

I try running the dmidecode application, however this reports

No SMBIOS nor DMI entry point found, sorry.

Does someone know of another way to detect hardware information during runtime? Or even a way to detect that the TX2 module is running on a J120.

I know that dmidecode will not be available during boot, but it is a starting point in identifying the board information available to me.


Just notice many forum users suddenly start to use dmidecode to check hardware information…

Could you elaborate what “hardware information” do you need here?

My goal is to flash a single image on my TX2 modules and connect them to different boards without having to flash specific device trees.

Therefore, if I connect to a J120 carrier board, I want to be aware of this during boot and load the appropriate device tree with the J120 patches.

If I connect to the development kit board, I want to load a DTB to enable the hdmi display.

For our productions boards I dont want the J120 patches and want to disable hdmi there are issues with this.

So basically, I would like to identify the board that is TX2 module is hosted. Is this the base board? Ideally I would like to do this during boot, so I can load different DTBs accordingly, however it will also be useful post startup because it would be convenient to disable features when devices are known to be not connected.


What you are doing is actually called “plugin-manager” in our BSP, but it is mostly for internal use only.

However, AFAIK plugin-manager does not read the eeprom data on carrier board.

Sorry for my mistake. It seems plugin-manager still have the information of carrier board, so you request seems feasible.

root@tegra-ubuntu:/proc/device-tree/chosen/plugin-manager/ids# ls
2597-0000-800  3489-0000-300  3489-0000-300-A  connection  name

2597-0000-800 is the carrier board id.

Thanks very much for the info,

I get 2597-0000-302 for the dev kit board, 0000-0000-000 for our own board, which is mostly a copy of the dev kit board however, there is no entry for the J120 though, however this may not be a problem if I can identify the others.

We should be able to put in a meaningful entry in our own board.

The J120 requires a different device tree, compared with the dev kit board for TX2.
Is it possible that this information can be retrieved during uboot, so different device trees can be loaded, as required?

If you want to detect J120 board from u-boot, you can try to modify uboot source to open a serial connection to the MCU available on J120 board and try to send some MCU-specific commands (like mcu --version) and parse its output. Should be pretty easy to implement.

Auvidea claims that they can provide the firmware source code for that MCU (STM32F042F6P6), so you can try to modify it to enhance its functionality for your application, i.e. add some custom commands you can call from u-boot.