Conclusive EEPROM format
Table of contents:
Introduction
Conclusive Engineering boards have a preprogrammed EEPROM memory. It contains board-specific information about the product, including hardware revision.
EEPROM address
Each of the boards contains at least one EEPROM memory chip. The EEPROM SYS_I2C bus addresses, specified in the hardware documentation of each board, are as follows:
KSTR-SAMA5D27 - 0x50
RCHD-PF - 0x50
WHLE-LS1 - 0x56
Please consult the hardware documentation if the address is not listed here, or the EEPROM cannot be reached.
EEPROM memory format and structure
EEPROM memory size and protected area
Each of the Conclusive boards has an EEPROM memory of size of 32-64KB. Memory area range of 0 to 2KB is reserved for board identification and cannot be erased or overwritten.
ONIE TLV
ONIE TLV is an industry standard format of marking hardware-specific information in the EEPROM memory. All Conclusive Engineering devices use it.
EEPROM memory format structure is binary and size-oriented. The EEPROM memory starts with a special header containing 'TlvInfo' string and other information required for parsing the rest of the memory.
Each field is stored in a triplet of 'Field ID', 'Field Size', 'Field Value'. Format of 'Field Value' may differ based on 'Field ID'. For securing the ONIE TLV EEPROM all data is protected using CRC32 checksum that is modified by any edit.
For more specific information about the ONIE TLV format please follow to ONIE website EEPROM Information Format.
U-boot
U-Boot bootloader is a prevailing option on most Conclusive Devices products. U-Boot by default is configured to use ONIE TLV EEPROM for onboard device information like MAC addresses for built-in network cards.
It is possible to read, edit or delete TLV values using U-Boot.
After editing and writing TLV data please restart the board to ensure that values presented by U-Boot are refreshed.
Read
To read the ONIE TLV EEPROM from U-Boot, interrupt the startup process by pressing any key on the serial console and type in the command tlv
:
=> tlv
TLV: 0
TlvInfo Header:
Id String: TlvInfo
Version: 1
Total Length: 138
TLV Name Code Len Value
-------------------- ---- --- -----
Product Name 0x21 13 KSTR-SAMA5D27
Part Number 0x22 13 KSTR-SAMA5D27
Serial Number 0x23 10 0x00001000
Base MAC Address 0x24 6 70:B3:D5:B9:D0:46
Manufacture Date 0x25 19 02/06/2021 00:00:00
Device Version 0x26 1 1
Label Revision 0x27 21 KSTR-SAMA5D27 rev 3.0
ONIE Version 0x29 1 1
MAC Addresses 0x2A 2 2
Manufacturer 0x2B 22 Conclusive Engineering
Country Code 0x2C 2 PL
CRC-32 0xFE 4 0x165BB2F9
Checksum is valid.
Edit
Before doing any changes to TLV information please backup the original contents. Failing to do so may result in a malfunctioning board.
To edit the ONIE TLV EEPROM from U-Boot, interrupt the startup process. Type the tlv list
command to list valid Field IDs.
EEPROM memory is write protected. To disable the write protect lock and write to EEPROM memory you should use the Conclusive Devices development cable connector.
=> tlv set 0x21 "KSTR-SAMA5D27 with MOD"
=> tlv write
=> reset
=> tlv
TLV: 0
TlvInfo Header:
Id String: TlvInfo
Version: 1
Total Length: 147
TLV Name Code Len Value
-------------------- ---- --- -----
Product Name 0x21 22 KSTR-SAMA5D27 with MOD
Part Number 0x22 13 KSTR-SAMA5D27
Serial Number 0x23 10 0x00001000
Base MAC Address 0x24 6 70:B3:D5:B9:D0:46
Manufacture Date 0x25 19 02/06/2021 00:00:00
Device Version 0x26 1 1
Label Revision 0x27 21 KSTR-SAMA5D27 rev 3.0
ONIE Version 0x29 1 1
MAC Addresses 0x2A 2 2
Manufacturer 0x2B 22 Conclusive Engineering
Country Code 0x2C 2 PL
CRC-32 0xFE 4 0x6E9DA51B
Checksum is valid.
If you’re looking for more information please contact us at https://conclusive.pl/contact/