AM62A7-Q1: EEPROM Access in Linux for AM62A

Part Number: AM62A7-Q1
Other Parts Discussed in Thread: AM62A7

Hi,
I am using AM62A7 for my custom hardware, and also I am using the eeprom also same which came with factory coded values.

As far as i know, this eeprom at I2C0@0x51 contains device identity information. I wanted some memory mapping of usable region to store my unique device id in the eeprom. And also, if you can share procedure to read device id, then that would be helpful in forming the unique device id.

My requirement is not constrained to Linux. If it is exposed in HSM, TEE layer or any other layer, that will do my job.

  • Hi Sathiya,

    The EEPROM at 0x51 on the AM62A SK-EVM reference design is the board ID EEPROM. It stores board name, revision and serial in TI’s header/record format (magic 0xEE3355AA), parsed by U-Boot board_detect.c

    Depending on what you need:

    Board/product ID in the EEPROM. Keep the TI header and records intact, because U-Boot uses them for board detection.
    Write your custom ID at a higher offset, beyond the last TI record [confirm record end offset in your board_detect.c].
    Make sure you choose a region in the EEPROM that does not overlap with the existing board-identity data.

    To make the EEPROM accessible as a file in Linux (e.g., in /sys/bus/i2c/devices/.../eeprom), you should define an at24 compatible node in your device tree. This allows you to read and write to the EEPROM using standard file I/O rather than raw I2C commands.

    The EEPROM is a plain I2C slave, and nothing in the K3 security architecture treats it as a security or identity resource. Whichever software layer owns the I2C controller can access it.

    As far as I know, it's currently exposed to (only) R5 SPL, (A53) U-boot and Linux (at24) and not to HSM, OPTEE etc.

    Regards,
    Vinu