diff options
author | Brent Stapleton <brent.stapleton@ettus.com> | 2018-07-26 16:54:55 -0700 |
---|---|---|
committer | Brent Stapleton <bstapleton@g.hmc.edu> | 2018-07-30 18:17:29 -0700 |
commit | 476b65f35e2871b78be118e7bfe15b9e08de41b6 (patch) | |
tree | 098023267af1a0594314987fb052cf6f839c5559 | |
parent | 508023e0c77b0e92ee454f9771e4386e70fda359 (diff) | |
download | uhd-476b65f35e2871b78be118e7bfe15b9e08de41b6.tar.gz uhd-476b65f35e2871b78be118e7bfe15b9e08de41b6.tar.bz2 uhd-476b65f35e2871b78be118e7bfe15b9e08de41b6.zip |
n3xx: Fixup for parsing the EEPROM
EEPROM parsing in MPM was ignoring the dt_compat number (MPM doesn't
need it), so when the dt_compat number was non-zero, the CRC
calculation was incorrect. CRC calculations are now done on the raw
data.
-rw-r--r-- | mpm/python/usrp_mpm/eeprom.py | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/mpm/python/usrp_mpm/eeprom.py b/mpm/python/usrp_mpm/eeprom.py index d189f7a8b..97a450ca6 100644 --- a/mpm/python/usrp_mpm/eeprom.py +++ b/mpm/python/usrp_mpm/eeprom.py @@ -142,13 +142,12 @@ def read_eeprom( Returns a dictionary. """ eeprom_parser = struct.Struct(eeprom_header_format[version]) - eeprom_parser_no_crc = struct.Struct(eeprom_header_format[version][0:-1]) eeprom_keys = eeprom_header_keys[version] parsed_data = eeprom_parser.unpack_from(data) read_crc = parsed_data[-1] - rawdata_without_crc = eeprom_parser_no_crc.pack(*(parsed_data[0:-1])) + rawdata_without_crc = data[:eeprom_parser.size-4] expected_crc = zlib.crc32(rawdata_without_crc) & 0xffffffff - if read_crc != expected_crc: + if read_crc != expected_crc: raise RuntimeError( "Received incorrect CRC."\ "Read: {:08X} Expected: {:08X}".format( |