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/