我做了块板子,分别用XAM3359和AM3359两个CPU,但是奇怪的是XAM3359的可以跑起来系统,AM3359的不行~~~~求指点呀
Gary Wu:
XAM3359是工程样片,在其上做的任何修改,不能保证。
能具体讲一下你在AM3359上系统跑不起来,停在哪里?
yuanqi li:
回复 Gary Wu:
用AM3359停在了OMAP SD/MMC:0
往下应该是reading U-boot。img 进系统
我用XAM3359就是正常的可以进系统
liu liu1:
回复 Gary Wu:
您好,按着你上午的提示,在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 unimplementedCould not probe the EEPROM; something fundamentally wrong on the I2C bus.read_eeprom() failure. continuing with ddr3Could not probe the EEPROM; something fundamentally wrong on the I2C bus.
Yaoming Qin:
回复 liu liu1:
看上去你没有改彻底。你把代码再好好看看
liu liu1:
回复 Yaoming Qin:
您好,谢谢您的回复,那我在找找,看看还有没有别的。