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.

Prebuilt uboot.bin file for AM335x Starter Kit

Does anyone have a prebuilt u-boot.bin file for the AM335x starter kit that can be sent to me?

The only prebuilt one in the SDK 7.0 is the one for the EVM & not for starter kit.

Regards,
Mark

  • That u-boot should work on EVM, Starter Kit, Beaglebone, and Beaglebone Black.

    Steve K.

  • Different reference h/w has different DDR memory devices. I think the prebuilt one I downlaoded is for the EVM only. I'm in process of doing board bring up for a customer using the same DDR memory as the Starter Kit. If I load the prebuilt u-boot-spl.bin for the EVM, the DDR is not configured correctly for the customer's board which is same as the starter kit's.

    I don't currently have the capability of making u-boot images, so that's why I'm checking if someone else has the prebuilt one for the starter kit that they can just send me so I don't have to make one myself.

     

    Regards,

    Mark

  • The u-boot code configures DDR and other features based on an EEPROM on the board. One field in the EEPROM is the board name. So from board/ti/am335x/board.c:

    443         if (board_is_evm_sk(&header))
    444                 config_ddr(303, MT41J128MJT125_IOCTRL_VALUE, &ddr3_data,
    445                            &ddr3_cmd_ctrl_data, &ddr3_emif_reg_data, 0);
    446         else if (board_is_bone_lt(&header))
    447                 config_ddr(400, MT41K256M16HA125E_IOCTRL_VALUE,
    448                            &ddr3_beagleblack_data,
    449                            &ddr3_beagleblack_cmd_ctrl_data,
    450                            &ddr3_beagleblack_emif_reg_data, 0);
    451         else if (board_is_evm_15_or_later(&header))
    452                 config_ddr(303, MT41J512M8RH125_IOCTRL_VALUE, &ddr3_evm_data,
    453                            &ddr3_evm_cmd_ctrl_data, &ddr3_evm_emif_reg_data, 0)    ;
    454         else
    455                 config_ddr(266, MT47H128M16RT25E_IOCTRL_VALUE, &ddr2_data,
    456                            &ddr2_cmd_ctrl_data, &ddr2_emif_reg_data, 0);
    457 }

    The board_is_xxxxx code is based on reading the EEPROM header:

     32 static inline int board_is_bone(struct am335x_baseboard_id *header)
     33 {
     34         return !strncmp(header->name, "A335BONE", HDR_NAME_LEN);
     35 }
     36
     37 static inline int board_is_bone_lt(struct am335x_baseboard_id *header)
     38 {
     39         return !strncmp(header->name, "A335BNLT", HDR_NAME_LEN);
     40 }
     41
     42 static inline int board_is_evm_sk(struct am335x_baseboard_id *header)
     43 {
     44         return !strncmp("A335X_SK", header->name, HDR_NAME_LEN);
     45 }

    So unless the customer board has an EEPROM with a header with the A335X_SK header name, DDR probably will not be configured correctly.

    Steve K.

  • Adding to the above statement, for the pre-built to work, then the memory device, clock, layout must all the EVM-SK. Otherwise a port process will have to be done.