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.

Linux/AM3352: Custom board boot issues

Part Number: AM3352


Tool/software: Linux

hi,all

    my custom board is just the same as the beableoneblack but with no eeprom.  I use the newest sdk PROCESSOR-SDK-LINUX-AM335X 04_01_00_06,and I use the sdcard boot the beableoneblack board successfully, but when I use the same sdcard to boot my custom board ,there is no log and I don't know what is wrong with it . in the past ,I used porting the sdk6.0 to my custom board , I used the prebuild sdk, It will print log, but now ,there is no log? how can I fix this problem??

  • The software team have been notified. They will respond here.
  • hi,Biser

    thanks for your reply, my problem is just like this post  https://e2e.ti.com/support/arm/sitara_arm/f/791/p/532533/1941136 . But there is no eeprom in my custom board, how can I solve this problem, thanks  !!!

  • Hello jun,

    Hack the EEPROM reading.

    /board/ti/common/board_detect.c

    int __maybe_unused ti_i2c_eeprom_am_get(int bus_addr, int dev_addr)
    {
    // int rc;
    struct ti_am_eeprom am_ep;
    struct ti_common_eeprom *ep;

    ep = TI_EEPROM_DATA;
    #ifndef CONFIG_SPL_BUILD
    if (ep->header == TI_EEPROM_HEADER_MAGIC)
    return 0; /* EEPROM has already been read */
    #endif

    /* Initialize with a known bad marker for i2c fails.. */
    ep->header = TI_DEAD_EEPROM_MAGIC;
    ep->name[0] = 0x0;
    ep->version[0] = 0x0;
    ep->serial[0] = 0x0;
    ep->config[0] = 0x0;

    // rc = ti_i2c_eeprom_get(bus_addr, dev_addr, TI_EEPROM_HEADER_MAGIC,
    // sizeof(am_ep), (uint8_t *)&am_ep);
    // if (rc)
    // return rc;

    ep->header = am_ep.header;
    strlcpy(ep->name, "A335BNLT", TI_EEPROM_HDR_NAME_LEN + 1);
    ti_eeprom_string_cleanup(ep->name);

    /* BeagleBone Green '1' eeprom, board_rev: 0x1a 0x00 0x00 0x00 */
    if (am_ep.version[0] == 0x1a && am_ep.version[1] == 0x00 &&
    am_ep.version[2] == 0x00 && am_ep.version[3] == 0x00)
    strlcpy(ep->version, "BBG1", TI_EEPROM_HDR_REV_LEN + 1);
    else
    strlcpy(ep->version, am_ep.version, TI_EEPROM_HDR_REV_LEN + 1);
    ti_eeprom_string_cleanup(ep->version);
    strlcpy(ep->serial, am_ep.serial, TI_EEPROM_HDR_SERIAL_LEN + 1);
    ti_eeprom_string_cleanup(ep->serial);
    strlcpy(ep->config, am_ep.config, TI_EEPROM_HDR_CONFIG_LEN + 1);
    ti_eeprom_string_cleanup(ep->config);

    memcpy(ep->mac_addr, am_ep.mac_addr,
    TI_EEPROM_HDR_NO_OF_MAC_ADDR * TI_EEPROM_HDR_ETH_ALEN);

    return 0;
    }

    Best regards,
    Kemal