I have a Jetson Orin development kit using JetsonLinux version 35.6.0. Download the UEFI version as UEFI-202210.5, use the NVIDIA official website to build uefi compilation environment, compile UEFI source code. Replace “uefi_Jetson_RELEASE.bin” in the Image to Linux_for_Tegra/bootloader/uefi_jetson.bin and refresh the machine. But Orin failed to start. Why?
The error content is as follows:
[0000.062] I> MB1 (version: 1.4.0.4-t234-54845784-e89ea9bc)
[0000.067] I> t234-A01-1-Silicon (0x12347) Prod
[0000.072] I> Boot-mode : Coldboot
[0000.075] I> Entry timestamp: 0x00000000
[0000.079] I> last_boot_error: 0x50228d02
[0000.082] I> BR-BCT: preprod_dev_sign: 0
[0000.086] I> rst_source: 0xb, rst_level: 0x1
[0000.090] I> Task: SE error check
[0000.093] I> Task: Bootchain select WAR set
[0000.097] I> Task: Enable SLCG
[0000.100] I> Task: CRC check
[0000.103] I> Task: Initialize MB2 params
[0000.107] I> MB2-params @ 0x40060000
[0000.111] I> Task: Crypto init
[0000.114] I> Task: Perform MB1 KAT tests
[0000.118] I> Task: NVRNG health check
[0000.121] I> NVRNG: Health check success
[0000.125] I> Task: MSS Bandwidth limiter settings for iGPU clients
[0000.131] I> Task: Enabling and initialization of Bandwidth limiter
[0000.137] I> No request to configure MBWT settings for any PC!
[0000.143] I> Task: Secure debug controls
[0000.147] I> Task: strap war set
[0000.150] I> Task: Initialize SOC Therm
[0000.153] I> Task: Program NV master stream id
[0000.158] I> Task: Verify boot mode
[0000.163] I> Task: Alias fuses
[0000.167] W> FUSE_ALIAS: Fuse alias on production fused part is not supported.
[0000.174] I> Task: Print SKU type
[0000.177] I> FUSE_OPT_CCPLEX_CLUSTER_DISABLE = 0x00000000
[0000.182] I> FUSE_OPT_GPC_DISABLE = 0x00000000
[0000.187] I> FUSE_OPT_TPC_DISABLE = 0x00000000
[0000.191] I> FUSE_OPT_DLA_DISABLE = 0x00000000
[0000.195] I> FUSE_OPT_PVA_DISABLE = 0x00000000
[0000.200] I> FUSE_OPT_NVENC_DISABLE = 0x00000000
[0000.204] I> FUSE_OPT_NVDEC_DISABLE = 0x00000000
[0000.208] I> FUSE_OPT_FSI_DISABLE = 0x00000000
[0000.213] I> FUSE_OPT_EMC_DISABLE = 0x00000000
[0000.217] I> FUSE_BOOTROM_PATCH_VERSION = 0x7
[0000.221] I> FUSE_PSCROM_PATCH_VERSION = 0x7
[0000.225] I> FUSE_OPT_ADC_CAL_FUSE_REV = 0x2
[0000.229] I> FUSE_SKU_INFO_0 = 0x90
[0000.233] I> FUSE_OPT_SAMPLE_TYPE_0 = 0x3 PS
[0000.237] I> FUSE_PACKAGE_INFO_0 = 0x2
[0000.241] I> SKU: Prod
[0000.243] I> Task: Boost clocks
[0000.246] I> Initializing PLLC2 for AXI_CBB.
[0000.250] I> AXI_CBB : src = 35, divisor = 0
[0000.254] I> Task: Voltage monitor
[0000.257] I> VMON: Vmon re-calibration and fine tuning done
[0000.263] I> Task: UPHY init
[0000.268] I> HSIO UPHY init done
[0000.271] W> Skipping GBE UPHY config
[0000.274] I> Task: Boot device init
[0000.278] I> Boot_device: QSPI_FLASH instance: 0
[0000.282] I> Qspi clock source : pllc_out0
[0000.286] I> QSPI Flash: Macronix 64MB
[0000.290] I> QSPI-0l initialized successfully
[0000.294] I> Task: TSC init
[0000.297] I> Task: Load membct
[0000.300] I> RAM_CODE 0x4000441
[0000.303] I> Loading MEMBCT
[0000.306] I> Slot: 1
[0000.308] I> Binary[1] block-65792 (partition size: 0x40000)
[0000.313] I> Binary name: MEM-BCT-1
[0000.316] I> Size of crypto header is 8192
[0000.320] I> Size of crypto header is 8192
[0000.324] I> strt_pg_num(65792) num_of_pgs(16) read_buf(0x40050000)
[0000.331] I> BCH of MEM-BCT-1 read from storage
[0000.335] I> BCH address is : 0x40050000
[0000.339] I> MEM-BCT-1 header integrity check is success
[0000.344] I> Binary magic in BCH component 1 is MEM1
[0000.349] I> component binary type is 1
[0000.353] I> strt_pg_num(65923) num_of_pgs(115) read_buf(0x40040000)
[0000.360] I> MEM-BCT-1 binary is read from storage
[0000.364] I> MEM-BCT-1 binary integrity check is success
[0000.370] I> Binary MEM-BCT-1 loaded successfully at 0x40040000 (0xe580)
[0000.376] I> RAM_CODE 0x4000441
[0000.381] I> RAM_CODE 0x4000441
[0000.385] I> Task: Load Page retirement list
[0000.389] I> Slot: 1
[0000.391] I> Binary[4] block-125952 (partition size: 0x80000)
[0000.397] I> Binary name: DRAM bad page list (P)
[0000.401] I> Size of crypto header is 8192
[0000.405] I> Size of crypto header is 8192
[0000.409] I> strt_pg_num(125952) num_of_pgs(16) read_buf(0x40050000)
[0000.416] I> BCH of DRAM bad page list (P) read from storage
[0000.421] I> BCH address is : 0x40050000
[0000.425] E> LOADER: Invalid value BCH magic.
[0000.430] C> LOADER: Could not read binary 4.
[0000.434] I> Slot: 1
[0000.436] I> Binary[5] block-126464 (partition size: 0x80000)
[0000.442] I> Binary name: DRAM bad page list (S)
[0000.446] I> Size of crypto header is 8192
[0000.450] I> Size of crypto header is 8192
[0000.454] I> strt_pg_num(126464) num_of_pgs(16) read_buf(0x40050000)
[0000.460] I> BCH of DRAM bad page list (S) read from storage
[0000.466] I> BCH address is : 0x40050000
[0000.470] E> LOADER: Invalid value BCH magic.
[0000.474] C> LOADER: Could not read binary 5.
[0000.478] C> Task 0x1d failed (err: 0x50228d02)
[0000.483] E> Top caller module: DRAM_ECC, error module: LOADER, reason: 0x02, aux_info: 0x8d
[0000.491] C> Boot Info Table status dump :
01111111001110001111111111111
Hi,
Here are some suggestions for the common issues:
1. Performance
Please run the below command before benchmarking deep learning use case:
$ sudo nvpmodel -m 0
$ sudo jetson_clocks
2. Installation
Installation guide of deep learning frameworks on Jetson:
- TensorFlow: https://docs.nvidia.com/deeplearning/frameworks/install-tf-jetson-platform/index.html
- PyTorch: Installing PyTorch for Jetson Platform - NVIDIA Docs
We also have containers that have frameworks preinstalled:
Data Science, Machine Learning, AI, HPC Containers | NVIDIA NGC
3. Tutorial
Startup deep learning tutorial:
- Jetson-inference: Hello AI World guide to deploying deep-learning inference networks and deep vision primitives with TensorRT and NVIDIA Jetson
- TensorRT sample: Jetson/L4T/TRT Customized Example - eLinux.org
4. Report issue
If these suggestions don’t help and you want to report an issue to us, please attach the model, command/step, and the customized app (if any) with us to reproduce locally.
Thanks!
I haven’t used deep learning yet. Currently, the UEFI source code is downloaded and compiled, replacing the generated uefi_Jetson_RELEASE.bin with uefi_jetson.bin.
Hi 491447151,
[0000.483] E> Top caller module: DRAM_ECC, error module: LOADER, reason: 0x02, aux_info: 0x8d
[0000.491] C> Boot Info Table status dump :
01111111001110001111111111111
From the log you shared, it boots failed in MB1 so that it may not relate to your UEFI.
Please share the command how you flash the board.
Command is:./flash.sh jetson-agx-orin-devkit-industrial mmcblk0p1
Are you using AGX Orin industrial rather than AGX Orin?
Please share the result of $ cat /etc/nv_boot_control.conf
on your board.
We would suggest using the following command to download the UEFI source for R35.6.0.
$ edk2_docker edkrepo clone nvidia-uefi-r35.6.0 NVIDIA-Platforms r35.6.0
edkrepo clone nvidia-uefi NVIDIA-Platforms uefi-202210.5.This is My clone.
I use Jetson Agx Orin industrial.And Jetson Linux is 35.6.0,UEFI is uefi2202210.5
edkrepo manifest-repos add nvidia GitHub - NVIDIA/edk2-edkrepo-manifest: NVIDIA fork of tianocore/edk2-edkrepo-manifest dev/jake/add-uefi-202210-5 nvidia
edkrepo clone nvidia-uefi NVIDIA-Platforms uefi-202210.5
Can you speed up a correct command? Download UEFI for Jetson LinuX-35.6.0
I don’t use edk2_docker to download uefi source code
Please use above command to download the UEFI source for r35.6.0 no matter you are using AGX Orin or AGX Orin industrial.
If you don’t use edk2_docker, please use the following command instead.
$ edkrepo clone nvidia-uefi-r35.6.0 NVIDIA-Platforms r35.6.0
Do you switch to Slot B manually?
Or have you performed any update process so that it is booting from slot B?
Could you boot the board w/o any modification?
After compiling uefi source code, just replace the uefi_Jetson_RELEASE.bin to uefi_jetson.bin?
I don’t
<partition name="APP" id="1" type="data">
<allocation_policy> sequential </allocation_policy>
<filesystem_type> basic </filesystem_type>
<size> APPSIZE </size>
<file_system_attribute> 0 </file_system_attribute>
<allocation_attribute> 0x808 </allocation_attribute>
<align_boundary> 16384 </align_boundary>
<percent_reserved> 0 </percent_reserved>
<unique_guid> APPUUID </unique_guid>
<filename> APPFILE </filename>
<description> **Required.** Contains the rootfs. This partition must be assigned
the "1" for id as it is physically put to the end of the device, so that it
can be accessed as the fixed known special device `/dev/mmcblk0p1`. </description>
</partition>
How to add partitions APP_b, APP_c, and APP_d to the flash_t234_qspi_sdmmc_industrial.xml file?
Yes, please just replace the uefi_jetson.bin with the uefi_Jetson_RELEASE.bin you built and flash QSPI to apply the change.
$ cp uefi_Jetson_RELEASE.bin <Linux_for_Tegra>/bootloader/uefi_jetson.bin
$ sudo ./flash.sh -c bootloader/t186ref/cfg/flash_t234_qspi.xml jetson-agx-orin-devkit mmcblk0p1
Please open another topic to discuss about adding custom partition in layout file and share your requirement.
Okay, do you have further issue about building UEFI source and update UEFI binary for your AGX Orin Industrial module?
I use the uefi-r35.6.0, but boot failed