This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

PROCESSOR-SDK-AM64X: Bypassing EEPROM for custom board

Part Number: PROCESSOR-SDK-AM64X


Hi, I am trying to bring up processor SDK 8.0 Linux on my custom board based on AM64 GPEVM.

Based on my logs, I think that the U-boot fails to load due to EEPROM not having the required data. I have an EEPROM at a different address than the EVM. I would like to know how we can achieve the following:

1. How can we bypass or hardcode values for AM64 GPEVM ? Since board is based on GPEVM, I would like to boot with settings for GPEVM. I tried to set the board name to "AM64-GPEVM" in the u-boot/board/ti/common/board_detect.c, but it seems like we need more than just the board name for this to take place.

    //strlcpy(ep->name, am_ep.name, TI_EEPROM_HDR_NAME_LEN + 1);
     strlcpy(ep->name, "AM64-GPEVM", TI_EEPROM_HDR_NAME_LEN + 1);

2. Could you share the data and storage address so that I can try programming the EEPROM with this data.

First option is preferred as it would free my EEPROM for other data storage. Any help is appreciated Slight smile

  • Also tried to remove "TI_I2C_BOARD_DETECT" from the Kconfig file. The EEPROM error goes away, but remaining boot logs is the same

  • Hi Abin,
    The EEPROM board_ID info can be referenced in "u-boot/board/ti/common/board_detect.h" file.
    I'm attaching a log file I captured on AM64x GP EVM for reading EEPROM board_ID via I2C cmds @u-boot prompt for your reference.
    Best,
    -Hong

    => i2c dev 0
    Setting bus to 0
    => i2c md 0x50 0x0.2 0x100
    0000: aa 55 33 ee 01 fc 00 10 2e 00 41 4d 36 34 2d 47    .U3.......AM64-G
    0010: 50 45 56 4d 00 00 00 00 00 00 45 32 30 31 30 31    PEVM......E20101
    0020: 30 31 45 32 00 00 30 31 30 31 30 38 32 31 00 00    01E2..01010821..
    0030: 00 00 00 00 30 31 33 36 11 02 00 10 29 13 c2 00    ....0136....)...
    0040: 08 00 70 f1 0f 76 ff 0d 70 f1 0f 76 ff 0e 70 f1    ..p..v..p..v..p.
    0050: 0f 76 ff 0d 70 f1 0f 76 ff 0d 00 00 00 00 00 00    .v..p..v........
    0060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    0070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    0080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    0090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    00a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    00b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    00c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    00d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    00e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    00f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    => 

  • Is there a way that I can bypass eeprom check by hardcoding these values ?

  • Hi Abin,
    Have you tried something like below? I didn't try it myself since EEPROM was pre-programmed with the board info on AM64x GP EVM.
    In "u-boot/board/ti/common/board_detect.c", add "return 1;" at the start of the function board_ti_k3_is().

    The other option is populating SRAM @TI_AM6_EEPROM_DATA with the AM64x GP EVM board info in your code instead of filling it via reading EEPROM.

    #define TI_AM6_EEPROM_DATA ((struct ti_am6_eeprom *) \
    				TI_SRAM_SCRATCH_BOARD_EEPROM_START)	

    Best,
    -Hong

  • Will it affect any functionalities of the board as I see some MAC values being used from the EEPROM ?

    Could you maybe try it out and share the results from your end?

  • Hi Abin,
    I'll check on MAC dependency, and get back to you earlier next week.
    There's no easy way to run it on AM64x GP EVM since EEPROM was pre-programmed with the board info.
    Best,
    -Hong

  • Hi , any updates on all open questions ?