Https://forums.developer.nvidia.com/t/re-flashing-orin-fails-after-using-i2cset/289658

Following this, I cant answer so im opening a new one.
Im still having problems, how I am supposed to fix it?
Looking forwards for a detailed answer…

What is the part you cannot understand? Are you able to flash this or not?

Im still not able to flash it.

I dont understand what commands I have to run with what values to set back again the correct CRC value at byte 255 as said.

Hi,

Please forget about the flash part first. Answer one question.

Are you still be able to access your board and use i2cdump/i2cset command on your Jetson?

Yes. Im inside the board.

Ok. Let me explain what is going on here.

There is a eeprom on Jetson i2c bus. As what you did with sudo i2cdump -y 0 0x50.

This is where the module info got stored. For example, 3767-0000-300 means it is a Orin NX 16GB module.

When the host PC tries to flash your board, it will read this eeprom value out and calculate the CRC8 checksum value and compare the last field and see if they are matching each other.

In your case, they are not matching so it does not allow you to flash.

— Parsing board version (ERROR: calculated CRC8 0xa1 != stored CRC8 0x37) succeeded.

This error means flash script reads out the whole EEPROM and calculate the value. The calculated result is 0xa1.

But the CRC8 checksum in your EEPROM is 0x37 (in the last field).

If you don’t want to care about how CRC8 is calculated, then write 0xa1 to the last bit of your eeprom by using i2cset command, then you will definitely make above comparison to equal and flash process will pass.

Ideally KevinFFF wants you to find out which byte goes wrong there. But seems not possible for you to do that.

What is the full command I have to run exactly?

i2cset I2CBUS CHIP-ADDRESS DATA-ADDRESS [VALUE]

bus is 2?
chip_address is 0x50?
data_addres??
value = 0x37?

You could really try to read my previous comment and try to understand it… The question you are asking now are already answered there…

[…]

nvidia@nvidia-desktop:~$ sudo i2cset 2 0x50 255 0xa1
WARNING! This program can confuse your I2C bus, cause data loss and worse!
DANGEROUS! Writing to a serial EEPROM on a memory DIMM
may render your memory USELESS and make your system UNBOOTABLE!
I will write to device file /dev/i2c-2, chip address 0x50, data address
0xff, data 0xa1, mode byte.
Continue? [y/N] y
Error: Write failed

…first… where did you read the eeprom…

sudo i2cdump -y 0 0x50
So, 0x50 = chip address ??
If 0 is i2cbus, why is it documented as 2 here Jetson EEPROM Layout — NVIDIA Jetson Linux Developer Guide 1 documentation

please ignore that bus number on the document. This eeprom document is for multiple Jetson and not every jetson’s module eeprom is on i2c bus2.

Thanks, I was confused by that then.

sudo i2cset 0 0x50 255 0xa1 did the job. I’m able to flash it now.

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.