Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Flashing UEFI Firmware stuck on Auvidea JNX30D #29

Closed
Shoadi opened this issue Feb 28, 2023 · 5 comments
Closed

Flashing UEFI Firmware stuck on Auvidea JNX30D #29

Shoadi opened this issue Feb 28, 2023 · 5 comments

Comments

@Shoadi
Copy link

Shoadi commented Feb 28, 2023

Hello community,

I am trying to follow the instructions for flashing the UEFI-firmware of anduril/jetpack-nixos on an Auvidea JNX30D - unfortunately without success, as the installer is stuck in a:

[   7.6925 ] tegrarcm_v2 --isapplet

[ 1022.7312 ] tegrarcm_v2 --ismb2

[ 2038.5395 ] tegradevflash_v2 --iscpubl

[ 2038.5405 ] CPU Bootloader is not running on device.

loop.

Is this happening due to a lack of support for the DevKIT, or is this something I could solve quite simple?

Find the full log attached.

Thanks and have a great day.

log.txt

@danielfullmer
Copy link
Collaborator

danielfullmer commented Mar 3, 2023

It's possible. Some carrier boards have additional BSP changes to pinmux/device tree/other settings that might not be compatible with the standard xavier-nx-devkit configuration.

But since you're using the Xavier NX, there's one thing you can check first: Is this a developer Xavier NX with an SD card on the SoM, or a production Xavier NX with the emmc instead of an SD card? You'll need to use the flashing script that corresponds to the one you have, e.g. xavier-nx-devkit for the development module or xavier-nx-devkit-emmc for the production module.

@Shoadi
Copy link
Author

Shoadi commented Mar 7, 2023

Thank you very much for your reply - Auvidea JN30D DevKITs have a Jetson Xavier NX production module assembled - therefore xavier-nx-devkit-emmc was the way which lead to a successful flashing of the device.

So regarding BSP changes - I found that Auvidea is providing a ./kernel_out/* folder containing a kernel-image as well as a folder of devicetree-blobs.

Originally using the Nvidia SDK-manager one needs to:

cp ~/kernel_out/* /home/USER/nvidia/nvidia_sdk/JetPack_X.X.X_DP_Linux_JETSON_XAVIER_NX_TARGETS/Linux_for_Tegra
cd /home/USER/nvidia/nvidia_sdk/JetPack_X.X.X_Linux_JETSON_XAVIER_NX_TARGETS/Linux_for_Tegra
sudo ./apply_binaries.sh

...and then finishing to flash with:

sudo ./flash jetson-xavier-nx-devkit-emmc mmcblk0p1

  • how can I do these changes for the jetpack-nixos?

@danielfullmer
Copy link
Collaborator

danielfullmer commented Mar 9, 2023

So it depends on what exactly apply_binaries.sh does, but we have a similar carrier board from another vendor that basically copies a bunch of files into the flash tools directory before running the flashing script. You can execute commands that modify the flash tools by setting

hardware.nvidia-jetpack.flashScriptOverrides.postPatch = ''
  echo EXAMPLE
''

If you copy prebuilt device trees to replace the ones produced by jetpack-nixos you'd lose the ability to modify them easily, however, since they'd no longer be built from source. If auvidea provides a kernel patch which includes their modifications, that would be a better way to handle it.

@Shoadi
Copy link
Author

Shoadi commented Mar 20, 2023

Thanks a lot Daniel. Can you please clarify in which file exactly I would apply the .postPatch?

I have as well a folder with kernel_src and the devicetree-sources available - though I don't understand where I can integrate them into the nixos-build.

Thank you.

#43

@Shoadi
Copy link
Author

Shoadi commented Mar 23, 2023

So it depends on what exactly apply_binaries.sh does, but we have a similar carrier board from another vendor that basically copies a bunch of files into the flash tools directory before running the flashing script. You can execute commands that modify the flash tools by setting


hardware.nvidia-jetpack.flashScriptOverrides.postPatch = ''

  echo EXAMPLE

''

If you copy prebuilt device trees to replace the ones produced by jetpack-nixos you'd lose the ability to modify them easily, however, since they'd no longer be built from source. If auvidea provides a kernel patch which includes their modifications, that would be a better way to handle it.

Another question - we are thinking of getting another board as well - can you recommend another vendor?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants