Flashing R35.4.1 to AGX Orin Crashes

I have R35.4.1 building on a VM running Ubuntu 20.04. I’m trying to flash it to our custom AGX Orin board. It progresses for a while as in the attached flash log, but it dies before actually completing the write to flash:

Traceback (most recent call last):
File “/home/cread/uCORE/Linux_for_Tegra/bootloader/tegraflash_impl_t234.py”, line 1401, in tegraflash_update_bpmp_dtb
if bpmp_dtb == None and bpmp_dtb_in_layout == None:
UnboundLocalError: local variable ‘bpmp_dtb’ referenced before assignment

The script I used to flash the system is:

export ODMDATA=“gbe-uphy-config-0,nvhs-uphy-config-0,hsio-uphy-config-16”
export PINMUX_CONFIG=“Orin-p0760-a101-pinmux.dtsi”
export DTBFILE=tegra234-p3701-0004-p0760-a101.dtb
./flash.sh p0760-a101+p3701-0000 mmcblk0p1 |& tee -a $LOG_FILE

I have uploaded the full log of the flash operation as well as the configuration files (with added .txt suffix).

I have looked at two other posts that reference this error, but neither was helpful in diagnosing my issue.

Thanks in advance for your assistance!

FlashLog-2025-09-09.txt (25.1 KB)

p0760-a101+p3701-0000.conf.txt (4.1 KB)

It appears that the BPFDTB_FILE parameter was set to a non-existent file. I set it to one based on the AGX Orin DevKit, p3737, and now it writes to the SOM.

Questions:

  1. Is that the correct approach, or should I create a *-bpmp-*.dtb device tree blob for my custom board?
  2. If I need to create one, is there source for the p3737 blob that I can tweak for my board?
  3. If I must use the p3737 blob, then shouldn’t its name not be specific to the DevKit?

Sorry for the late response.
Is this still an issue to support? Any result can be shared?

Hi,

It seems like your bpmp_dtb was not found. Where is your tegra234-p3701-0004-p0760-a101.dtb file located?

Thanks

It’s in the following areas after my build script runs:

./bootloader/tegra234-p3701-0004-p0760-a101.dtb
./rootfs/boot/tegra234-p3701-0004-p0760-a101.dtb
./kernel/dtb/tegra234-p3701-0004-p0760-a101.dtb
./sources/kernel_out/arch/arm64/boot/dts/nvidia/tegra234-p3701-0004-p0760-a101.dtb

It’s also in some subdirectories of ./bootloader/ that look to be temporary files or something.

I see some .dts files with a -bpmp- in their name, but they seem to be in those temporary directories and they have _with_odm in their names:

./bootloader/74736/tegra234-bpmp-3701-0004-3737-0000_with_odm.dts
./bootloader/126570/tegra234-bpmp-3701-0004-3737-0000_with_odm.dts
./bootloader/118743/tegra234-bpmp-3701-0004-3737-0000_with_odm.dts

Thanks for your attention!

Is this still an issue to support? Any result can be shared?

I have done something (described in my Sep 10 post) that seems to have gotten writing to the SOM working, but I don’t know if that was the right thing to do.

My last response to DavidDDD’s questions went unanswered. I’m still looking for how to generate/find the correct BPFDTB_FILE or bpmp_dtb for our custom board and would appreciate guidance.

Hi,
It looks like your SKU is 0004. Could you tell me where the BPFDTB_FILE=“tegra234-bpmp-3701-0004-0760-a101.dtb” is located?
It should normally be under the ./bootloader directory.

Thanks.

I don’t have a file named tegra234-bpmp-3701-0004-0760-a101.dtb anywhere. The BPFDTB_FILE variable is set in the file p0760-a101+p3701-0000.conf to one of the following:

p0760-a101+p3701-0000.conf: BPFDTB_FILE=“tegra234-bpmp-3701-0000-3737-0000.dtb”;
p0760-a101+p3701-0000.conf: BPFDTB_FILE=“tegra234-bpmp-3701-0004-3737-0000.dtb”;
p0760-a101+p3701-0000.conf: BPFDTB_FILE=“tegra234-bpmp-3701-0005-3737-0000.dtb”;
p0760-a101+p3701-0008.conf: BPFDTB_FILE=“tegra234-bpmp-3701-0008-3737-0000.dtb”;

because I didn’t see any info on creating the -bpmp- version of the .dtb file for our custom board. So, I just used the -bpmp- file from the DevKit. Do the flashing scripts create the -bpmp- .dtb files? Is there an alternative way to create them?

Thanks in advance.

Is this still an issue to support? Any result can be shared?

I don’t have a result. I’m still hoping to be told

  • Whether it’s important to have a BPFDTB_FILE, i.e. a -bpmp- version of a device tree blob, that’s custom to our board, or not. We’re currently using ones for the DevKit.
  • If it is important, how do I create one. I haven’t seen anything indicating how to create that kind of file.