I edited EEPROM and now the Jetson AGX Xavier can’t be flashed.
I tried to calculate the 256th bit of EEPROM with CRC-8 referring to the following, but I do not know the initial value of the calculation.
What is the initial value of crc in the CRC-8 formula?
Also, there is an Xavier that accidentally deleted the dtb file and could not boot up, and because I changed the EEPROM, I can not flash it. How can I restore this Xavier?
There is no “initial value” for the crc value calculation. This value differs in every module.
The value in bit 255 is the checksum value from bit 0~254.
Thus, for example, if you change any value in bit 0~254, then you have to re-calculate bit 255. Otherwise, it will show you error.
If this device is totally not able to boot up, then please RMA your device.
I can help you reply the technical problem but the warranty is not in my scope so I cannot reply you.
Use the term checksum is because the bit 255 in eeprom is based on the sum of bit 0~254…
For example, the eeprom has the content of the serial number of each module, this value will be take into the calculation. That is why I said every module shares different crc value here. For example, module A has serial number 12345, and it will be take into the calculation. Thus, another module B with serial number 34567 in eeprom will give out different value in bit 255 in your eeprom.
The tool just uses the same algorithm to sum up the value from bit 0 to bit 254 and compare it with the value in bit 255. If it differs, then error.
Of course the algorithm here is not really “sum up”, it is just an example for you to understand. The real algorithm is in the document I shared above.
The initial value meant “the initial value of the calculation”.
In the formula below, I didn’t know the value of crc when B = 0 …
This self-solved as described above.
crc = AddToCRC(B, crc)
I’ll ask another department about the warranty. Thank you.
###############################################################################
copying soft_fuses(/home/username/nvidia/nvidia_sdk/JetPack_4.3_Linux_JETSON_AGX_XAVIER/Linux_for_Tegra/bootloader/t186ref/BCT/tegra194-mb1-soft-fuses-l4t.cfg)… done.
./tegraflash.py --chip 0x19 --applet “/home/deng/nvidia/nvidia_sdk/JetPack_4.3_Linux_JETSON_AGX_XAVIER/Linux_for_Tegra/bootloader/mb1_t194_prod.bin” --skipuid --soft_fuses tegra194-mb1-soft-fuses-l4t.cfg --bins “mb2_applet nvtboot_applet_t194.bin” --cmd “dump eeprom boardinfo cvm.bin;reboot recovery”
Welcome to Tegra Flash
version 1.0.0
Type ? or help for help and q or quit to exit
Use ! to execute system commands
Can you directly search the keyword SKIP_EEPROM_CHECK in flash.sh and remove those function that will be executed?
Haven’t used this parameter for long time. It should be added to the board config instead of parameters in flash.sh.
But directly remove this part from flash.sh should also work.