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
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.
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.