This commit is contained in:
Justin Thomas 2024-03-25 21:09:02 +00:00 committed by GitHub
commit b15d9b96a5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -25,37 +25,38 @@ class Eeprom(eeprom_tlvinfo.TlvInfoDecoder):
self.eeprom_path = f self.eeprom_path = f
super(Eeprom, self).__init__(self.eeprom_path, 0, '', True) super(Eeprom, self).__init__(self.eeprom_path, 0, '', True)
self.eeprom_tlv_dict = dict() self.eeprom_tlv_dict = dict()
try: self.eeprom_data = "N/A"
self.eeprom_data = self.read_eeprom()
except Exception:
self.eeprom_data = "N/A"
raise RuntimeError("Eeprom is not Programmed")
eeprom = self.eeprom_data if os.geteuid() == 0:
try:
self.eeprom_data = self.read_eeprom()
except Exception:
raise RuntimeError("Eeprom is not Programmed")
if not self.is_valid_tlvinfo_header(eeprom): eeprom = self.eeprom_data
return
total_length = ((eeprom[9]) << 8) | (eeprom[10]) if not self.is_valid_tlvinfo_header(eeprom):
tlv_index = self._TLV_INFO_HDR_LEN return
tlv_end = self._TLV_INFO_HDR_LEN + total_length
while (tlv_index + 2) < len(eeprom) and tlv_index < tlv_end: total_length = ((eeprom[9]) << 8) | (eeprom[10])
if not self.is_valid_tlv(eeprom[tlv_index:]): tlv_index = self._TLV_INFO_HDR_LEN
break tlv_end = self._TLV_INFO_HDR_LEN + total_length
tlv = eeprom[tlv_index:tlv_index + 2 while (tlv_index + 2) < len(eeprom) and tlv_index < tlv_end:
+ (eeprom[tlv_index + 1])] if not self.is_valid_tlv(eeprom[tlv_index:]):
code = "0x%02X" % ((tlv[0])) break
tlv = eeprom[tlv_index:tlv_index + 2
+ (eeprom[tlv_index + 1])]
code = "0x%02X" % ((tlv[0]))
name, value = self.decoder(None, tlv) name, value = self.decoder(None, tlv)
self.eeprom_tlv_dict[code] = value self.eeprom_tlv_dict[code] = value
if (eeprom[tlv_index]) == self._TLV_CODE_CRC_32: if (eeprom[tlv_index]) == self._TLV_CODE_CRC_32:
break break
tlv_index += (eeprom[tlv_index+1]) + 2 tlv_index += (eeprom[tlv_index+1]) + 2
def serial_number_str(self): def serial_number_str(self):
""" """