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.

XAM3359和AM3359的区别

Other Parts Discussed in Thread: AM3359, TPS65217

我做了块板子,分别用XAM3359和AM3359两个CPU,但是奇怪的是XAM3359的可以跑起来系统,AM3359的不行~~~~求指点呀

  • XAM3359是工程样片,在其上做的任何修改,不能保证。

    能具体讲一下你在AM3359上系统跑不起来,停在哪里?

  • 用AM3359停在了OMAP SD/MMC:0

    往下应该是reading U-boot。img 进系统

    我用XAM3359就是正常的可以进系统

  • 您好,按着你上午的提示,在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.

  • 看上去你没有改彻底。你把代码再好好看看

  • 您好,谢谢您的回复,那我在找找,看看还有没有别的。