Messages in this thread | | | From | Kalle Valo <> | Subject | Re: Matching crc32 checksums from kernel and user space | Date | Mon, 16 Nov 2015 17:27:21 +0200 |
| |
Kalle Valo <kvalo@qca.qualcomm.com> writes:
> Hi, > > I want ath10k to print a checksum for the firmware image and include > that to the firmware crash dump file as well. Then I want to print the > same checksum from user space scripts and verify it with the crash dump > file. > > I thought that crc32 would be good enough for me but it wasn't that > simple as I can't seem to getting matching checksums, at least not with > the user space tools I found. For a test case I created a simple file: > > $ xxd /lib/firmware/ath10k/crc-test.bin > 00000000: 3132 3334 3536 3738 3930 0a 1234567890. > > In kernel I get these checksums: > > [ 574.867724] crc32_le(0) 8916bc26 > [ 574.867739] crc32_le(~0) 1d6ef235 > [ 574.867743] crc32_be(0) b9346a4c > [ 574.867746] crc32_be(~0) 71467465 > > And from python I got (value in parenthesis is the seed I used): > > binascii.crc32(00000000) 0xe2910dcaL > binascii.crc32(ffffffff) 0x76e943d9L
Johannes Berg pointed out that this looks to be a sign issue, I just need to invert the python value and then I get the same value:
>>> hex(~0x76e943d9 & 0xffffffff) '0x8916bc26'
-- Kalle Valo
| |