Skip to contentSkip to conversation

Verify CRC on environment?

U-Boot-Users Steven Scholz 2 participants 4 messages May 25, 2005

lore
Share & tools
lore
#0 lore raw

Hi,

(how) can I verify the CRC of the environment using the crc32 command?

I am using CFG_ENV_ADDR_REDUND, so I guess I have to skip 5 bytes of header. Do the two last 0x00 count?

My environment is at 10030000:

10030000: 4c 16 71 5f 00 62 6f 6f 74 64 65 6c 61 79 3d 30 10030010: 00 62 61 75 64 72 61 74 65 3d 31 31 35 32 30 30 10030020: 00 73 65 72 69 61 6c 23 3d 31 32 38 33 30 30 00 10030030: 73 74 64 69 6e 3d 73 65 72 69 61 6c 00 73 74 64 10030040: 6f 75 74 3d 73 65 72 69 61 6c 00 73 74 64 65 72 10030050: 72 3d 73 65 72 69 61 6c 00 00 3d 73 65 72 69 61 10030060: 6c 00 00 64 65 72 72 3d 73 65 72 69 61 6c 00 00 10030070: 74 64 65 72 72 3d 73 65 72 69 61 6c 00 00

That 0x7D, so 125+1 = 126 bytes

So I thought I have to calculate the crc over 126 - 5 = 0x79 bytes

crc32 10030005 0x79
CRC32 for 10030005 ... 1003007d ==> 8889f3af

But this is obviously wrong... :-(

Signature · 1 line
Steven Scholz
#1 lore raw
Quoted 2 lines · In message <[email protected]> you wrote:

(how) can I verify the CRC of the environment using the crc32 command?

=> help crc

Quoted 1 line

I am using CFG_ENV_ADDR_REDUND, so I guess I have to skip 5 bytes of header.

Right.

Quoted 1 line

Do the two last 0x00 count?

Yes. As does all the rest of the configured CFG_ENV_SIZE

Quoted 11 lines

My environment is at 10030000:

10030000: 4c 16 71 5f 00 62 6f 6f 74 64 65 6c 61 79 3d 30 10030010: 00 62 61 75 64 72 61 74 65 3d 31 31 35 32 30 30 10030020: 00 73 65 72 69 61 6c 23 3d 31 32 38 33 30 30 00 10030030: 73 74 64 69 6e 3d 73 65 72 69 61 6c 00 73 74 64 10030040: 6f 75 74 3d 73 65 72 69 61 6c 00 73 74 64 65 72 10030050: 72 3d 73 65 72 69 61 6c 00 00 3d 73 65 72 69 61 10030060: 6c 00 00 64 65 72 72 3d 73 65 72 69 61 6c 00 00 10030070: 74 64 65 72 72 3d 73 65 72 69 61 6c 00 00

Quoted 8 lines

That 0x7D, so 125+1 = 126 bytes

So I thought I have to calculate the crc over 126 - 5 = 0x79 bytes

crc32 10030005 0x79
CRC32 for 10030005 ... 1003007d ==> 8889f3af

But this is obviously wrong... :-(

Yes, this is wrong. You must use "CFG_ENV_SIZE - 5" as length for the crc command.

Best regards,

Wolfgang Denk

Signature · 3 lines
Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Objects in mirror are closer than they appear.
#2 lore raw
Quoted 35 lines · Wolfgang Denk
Quoted 1 line · In message <[email protected]> you wrote:

(how) can I verify the CRC of the environment using the crc32 command?

=> help crc

Quoted 1 line

I am using CFG_ENV_ADDR_REDUND, so I guess I have to skip 5 bytes of header.

Right.

Quoted 1 line

Do the two last 0x00 count?

Yes. As does all the rest of the configured CFG_ENV_SIZE

Quoted 15 lines

My environment is at 10030000:

10030000: 4c 16 71 5f 00 62 6f 6f 74 64 65 6c 61 79 3d 30 10030010: 00 62 61 75 64 72 61 74 65 3d 31 31 35 32 30 30 10030020: 00 73 65 72 69 61 6c 23 3d 31 32 38 33 30 30 00 10030030: 73 74 64 69 6e 3d 73 65 72 69 61 6c 00 73 74 64 10030040: 6f 75 74 3d 73 65 72 69 61 6c 00 73 74 64 65 72 10030050: 72 3d 73 65 72 69 61 6c 00 00 3d 73 65 72 69 61 10030060: 6c 00 00 64 65 72 72 3d 73 65 72 69 61 6c 00 00 10030070: 74 64 65 72 72 3d 73 65 72 69 61 6c 00 00

That 0x7D, so 125+1 = 126 bytes

So I thought I have to calculate the crc over 126 - 5 = 0x79 bytes

Quoted 8 lines
Quoted 4 lines

crc32 10030005 0x79
CRC32 for 10030005 ... 1003007d ==> 8889f3af

But this is obviously wrong... :-(

Yes, this is wrong. You must use "CFG_ENV_SIZE - 5" as length for the crc command.

Hmm. But after the two last 0x00 there's "garbage" in the flash, i.e. old, overwritten and erased values.
So the count as well?

--
Steven

#3 lore raw
Quoted 4 lines · In message <[email protected]> you wrote:

Hmm. But after the two last 0x00 there's "garbage" in the flash, i.e. old, overwritten and erased values.
So the count as well?

Yes.

Best regards,

Wolfgang Denk

Signature · 5 lines
Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
"There are three principal ways to lose money: wine, women,  and  en-
gineers.  While  the first two are more pleasant, the third is by far
the more certain."                      -- Baron Rothschild, ca. 1800