我做了块板子,分别用XAM3359和AM3359两个CPU,但是奇怪的是XAM3359的可以跑起来系统,AM3359的不行~~~~求指点呀
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.
您好,按着你上午的提示,在board/ti/am335x中修改evm.c,去掉spl_board_init中的if判断如下:
void spl_board_init(void)
{
uchar pmic_status_reg;
/* init board_id, configure muxes */
board_init();
//if (!strncmp("A335BONE", header.name, 8))
if(0) {
/* BeagleBone PMIC Code */
if (i2c_probe(TPS65217_CHIP_PM))
return;
if (tps65217_reg_read(STATUS, &pmic_status_reg))
return;
/* Increase USB current limit to 1300mA */
if (tps65217_reg_write(PROT_LEVEL_NONE, POWER_PATH,
USB_INPUT_CUR_LIMIT_1300MA,
USB_INPUT_CUR_LIMIT_MASK))
printf("tps65217_reg_write failure\n");
/* Only perform PMIC configurations if board rev > A1 */
if (!strncmp(header.version, "00A1", 4))
return;
/* Set DCDC2 (MPU) voltage to 1.275V */
if (tps65217_voltage_update(DEFDCDC2,
DCDC_VOLT_SEL_1275MV)) {
printf("tps65217_voltage_update failure\n");
return;
}
/* Set LDO3, LDO4 output voltage to 3.3V */
if (tps65217_reg_write(PROT_LEVEL_2, DEFLS1,
LDO_VOLTAGE_OUT_3_3, LDO_MASK))
printf("tps65217_reg_write failure\n");
if (tps65217_reg_write(PROT_LEVEL_2, DEFLS2,
LDO_VOLTAGE_OUT_3_3, LDO_MASK))
printf("tps65217_reg_write failure\n");
if (!(pmic_status_reg & PWR_SRC_AC_BITMASK)) {
printf("No AC power, disabling frequency switch\n");
return;
}
/* Set MPU Frequency to 720MHz */
mpu_pll_config(MPUPLL_M_720);
}
else
{
uchar buf[4];
/*
* EVM PMIC code. All boards currently want an MPU voltage
* of 1.2625V and CORE voltage of 1.1375V to operate at
* 720MHz.
*/
if (i2c_probe(PMIC_CTRL_I2C_ADDR))
return;
/* VDD1/2 voltage selection register access by control i/f */
if (i2c_read(PMIC_CTRL_I2C_ADDR, PMIC_DEVCTRL_REG, 1, buf, 1))
return;
buf[0] |= PMIC_DEVCTRL_REG_SR_CTL_I2C_SEL_CTL_I2C;
if (i2c_write(PMIC_CTRL_I2C_ADDR, PMIC_DEVCTRL_REG, 1, buf, 1))
return;
if (!voltage_update(MPU, PMIC_OP_REG_SEL_1_2_6) &&
!voltage_update(CORE, PMIC_OP_REG_SEL_1_1_3))
/* Frequency switching for OPP 120 */
mpu_pll_config(MPUPLL_M_720);
}
}
#endif
试了试不行,又修改board_init如下:
int board_init(void)
{
/* Configure the i2c0 pin mux */
enable_i2c0_pin_mux();
i2c_init(CONFIG_SYS_I2C_SPEED, CONFIG_SYS_I2C_SLAVE);
if (read_eeprom())
goto err_out;
detect_daughter_board();
//if (!strncmp("SKU#01", header.config, 6)) {
// board_id = GP_BOARD;
// detect_daughter_board_profile();
//} else if (!strncmp("SKU#02", header.config, 6)) {
// board_id = IA_BOARD;
// detect_daughter_board_profile();
//} else if (!strncmp("SKU#03", header.config, 6)) {
// board_id = IPP_BOARD;
//} else if (!strncmp("A335BONE", header.name, 8)) {
// board_id = BONE_BOARD;
// profile = 1; /* profile 0 is internally considered as 1 */
// daughter_board_connected = 0;
//} else if (!strncmp("A335X_SK", header.name, 8)) {
// board_id = SK_BOARD;
// profile = 1; /* profile 0 is internally considered as 1 */
// daughter_board_connected = 0;
//} else {
// printf("Did not find a recognized configuration, "
// "assuming General purpose EVM in Profile 0 with "
// "Daughter board\n");
board_id = GP_BOARD;
profile = 1; /* profile 0 is internally considered as 1 */
daughter_board_connected = 1;
//}
configure_evm_pin_mux(board_id, header.version, profile, daughter_board_connected);
还是不行,那块XAM3359的板子在这两种情况都可以启动,但是AM3359的板子还是启动不了,
只输出:
U-Boot SPL 2011.09 (Jan 23 2013 - 12:50:30)
Texas Instruments Revision detection unimplemented
Could not probe the EEPROM; something fundamentally wrong on the I2C bus.
read_eeprom() failure. continuing with ddr3
Could not probe the EEPROM; something fundamentally wrong on the I2C bus.