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.

[参考译文] Linux/DRA750:在 DRA752 CPU 上使用 TPS65917 PMIC 时出现问题

Guru**** 2900600 points

Other Parts Discussed in Thread: DRA752

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/660998/linux-dra750-the-problem-to-use-tps65917-pmic-on-dra752-cpu

器件型号:DRA750
主题中讨论的其他器件:DRA752

工具/软件:Linux

尊敬的先生:

我们在定制电路板上使用 TPS65917 PMIC 和 DRA752 CPU。  

我们无法成功启动、控制台上没有任何消息输出。

因此、我们尝试在 MLO 中添加一些调试消息、我们发现它应该是 PMIC 问题。

错误消息如下所示:

U-Boot SPL 2014.07 (2017年9月5日- 17:07:20)
在

prcm_init 之前、在 DO_IO_SETTINGS 之前、DRA752-GP ES2.0
|-before enable_basic_clocks
启用时钟域- 4a009700
启用时钟域- 4a008300
启用时钟域- 4a008d00

启用时钟域- 4a0093c0
启用时钟域- 4a008700
启用时钟模块- 4a008728
启用时钟模块- 4a008b30
启用时钟
模块4a008b30启用时钟模块4a0038启用时钟模块 - 4a008d20
使能时钟模块- 4a07838
使能时钟模块- 4a009760
使能时钟模块- 4a009768
使能时
钟模块- 4a009778
使能时钟模块- 4a009780
使能时钟模块- 4a009810
使能时钟模块- 4a009818
使能时钟模块- 4a008778
使能时钟模块启用时钟模块 - 4a008780
使能时钟模块- 4a007840
使能时钟模块- 4a009328
使能时钟模块- 4a009738

使能时钟模块- 4a007830
使能时钟模块- 4a009850


使能时钟模块- 4a0097a0使能时钟模块- 4a0093d0使能
时钟模块- 4a0038使能时钟模块- 4a0038域 - 4a009700
启用时钟域- 4a009300
启用时钟域- 4a008b00
启用时钟域- 4a008d00
启用时钟域- 4a0093c0
启用时钟域- 4a008700
timer_init 之前
|-before scale_vcore
|-before vcorese->core optimize_VCORE_VOLTAGE
:efuse 0x4a0025f4 bits=16 Vnom=1030、使用 efuse 值1045
|-before core
DO:scale_VCORE:VOLT - 1045 offset_code - 0x3D 

"do _scale_vcore:volt - 1045 offset_code - 0x3D"的引导流程、它将重新引导。

您能给我一些进一步调试的指导吗? 我们可能需要修改 MLO 中的电子保险丝电压?

提前感谢您的支持。

此致、

Bowei

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    我已将您的问题转交给电源管理专家。

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的:

    感谢您的支持。

    从我们一侧更新状态、我知道 DDR 和 PMIC 具有正式组合。 对吧?

    例如、DRA752 + TPS659038是正式组合、但 DRA752 + TPS65917不是正式组合。

    因此、在检查 PMIC 电压(VCORE)时引导流程暂停。 修改 MLO 源代码后、引导流程将开始。

    我们希望与您确认、这种修改方式是否正确。 请参阅我们修改的源代码片段。

    修改了文件 /board-support/u-boot/arch/arm/cpu/armv7/omap5/hw_data.c
    我们将"omap_vcore =&dra752_v伏特;"替换为"//*omap_vcore =&dra722_v伏特;"。
    
    ===========================================================================================================================================
    (笑声)
    void __weak hw_data_init (void)
    {
    u32 omap_rev = omap_revision();
    
    switch (omap_rev){
    
    case OMAP5430_ES1_0:
    case OMAP5432_ES1_0:
    * prcm =&omap5_es1_prcm;
    &dplls_data =* omap5_dplls_vaps_v5430
    ;* omap5;* omap_vap1 = omap_omap1;* omap_vap1;&domapors_vapors/vapors/vapors/vapor_
    
    
    
    案例 OMAP5430_ES2_0:
    案例 OMAP5432_ES2_0:
    * prcm =&omap5_ES2_prcm;
    * dplls_data =&omap5_dplls_ES2;
    * omap_vcore =&omap5430_vels_ES2;
    * Ctrl =&omap5_ctrl;
    break;
    
    案例 DRA752_ES1_0:
    案例 DRA752_ES1_1:
    案例 DRA752_ES2_0:
    * prcm =&dra7xx_prcm;
    * dplls_data =&dra7xx_dplls;
    //* draomap_vcore =&dra752_V;
    * omap_vcore =&dra722_V;* omap_vcore =&dra722_v;
    * ra722_dv =&ctrl_v;*
    break;
    
    case DRA722_ES1_0:
    * prcm =&dra7xx_prcm;
    * dplls_data =&dra72x_dplls;
    * omap_vcore =&dra722_V;
    * Ctrl =&dra7xx_Ctrl;
    break;
    
    默认值:
    printf ("\n 无效的 OMAP 修订版");
    }
    …
    …
    =========================================================================================================================================== 

    我不确定这种方法是否可行。 请帮我进行双重检查。

    非常感谢!

    此致、

    鲍伊·任

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的先生:

    您对此问题是否有任何更新?

    此致、
    Bowei
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Bowei、
    使用的方法错误。 电压设置基于数据手册、因此您应使用适用于所用器件的内容。

    此致、
    RK
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    此外, 查看代码流,在 hw_data_init()中完成的设置将由 vcores_update ()改写。 

    void EARLY_SYSTEM_INIT (void) { init_omap_revision(); hw_data_init(); #ifdef CONFIG_SPL_Build if (warm 重置()) FORCE_EMIF_self_refresh (); #endif Watchdog_init(); set_mux_conf_regs(); #ifdef CONFIG_SPL_Build srcomp_enable(); DO IO_SETTINGS (); #endif setup_EARLY_Clocks (); DO 板检测(); vcores_update(); prcm_init(); }

    此致、
    RK

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Bowei、

    Efuse 电压基于器件特性而非 PMIC、与 PMIC 本身或连接无关。

    区别在于、tps659038和 tps65917之间的 SMPS 寄存器地址不同。

    您需要执行以下操作:

    1.检查 VDD 与 PMIC SMPS 的连接

    MPU -> smps1??

    2.使用 正确的地址更新 board/ti/dra7xx/evm.c 中的 dra752_伏特()数据结构、

    例如、如果 VDD_MPU 连接到 SMPS1、则更新

    .MPU.addr   = TPS659038_REG_ADDR_SMPS12、

    .MPU.addr   = TPS65917_REG_ADDR_SMPS1、

    同样适用于所有 VDDS (VDD_CORE、GPU、eve、IVA 等)。

    3.还检查 PMIC 的 i2c 从地址是否与 EVM 相同、在 EVM 上为0x58、

    否则更新

    PMIC_DATA tps659038 {.i2c_slave_addr =< i2c 从器件地址>},arch/arm/cpU/armv7/omap5/hw_data.c

    请告诉我这是否可以解决您的问题。

    此致、

    RK