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/am3352:eMMC 时钟和 omapconf 不显示#39;t 显示 OPP 值

Guru**** 2569265 points
Other Parts Discussed in Thread: AM3352, TPS650250

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/625071/linux-am3352-emmc-clock-and-omapconf-doesn-t-display-opp-values

器件型号:AM3352
主题中讨论的其他器件: TPS650250

工具/软件:Linux

您好!

我们使用基于 BealgBone Black 的定制板、

我尝试 使用命令通过 omapconf 获取 OPP、如下所述

/omapconf show pwst

 但 OPP 列显示“未找到

但是、当我在 Beaglbone Black 上运行同一命令时、我会得到这些值。

我附加了文件、其中包含两个电路板的上述命令输出。

实际上、我想验证 eMMC 时钟。 我从 sysfs 中获得52MHz 的时钟速度、 从 TRM 中、它固定为48Mhz、但它也提到48Mhz @ OPP50

 我不确定 OPP 是否适用于 AM335x 的 eMMC 或 OPP。

现在、我想知道 OPP、以便我们能够了解我们为 AM3352设置的最大 eMMC 时钟是多少。

 # cat /sys/kernel/debug/mmc1/ios

时钟:                    52000000 Hz

VDD:                      20 (3.2 ~ 3.3V)

总线模式:         2 (推挽)

芯片选择:        0 (无关)

功率模式:    2 (开启)

总线宽度:          3 (8位)

时序规格:       1 (MMC 高速)

信号电压:  0 (3.30V)

谢谢、

此致、

Ankur

e2e.ti.com/.../opp_5F00_for_5F00_boards.txt

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

    从日志中、我看到您的定制板(未知电源 IC)无法识别 PMIC、而对于 BBB、则正确检测到 PMIC 为 TPS65217C。 您是否将 PMIC 用于定制板? 如果是、到底是哪个 PMIC? OPP 值也取决于 PMIC。

    另一个重要的区别是、您对 BBB 和定制板使用不同的软件。 对于 BBB、您将使用内核4.4.41、用于定制板内核3.12.10。 请尝试使用两个板的相同内核版本?

    您是否将 AM335x TI PSDK 用于 BBB 和/或定制板? 如果是、是哪个版本?

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

    我们在板外使用 PMIC。 它来自 TI TPS650250。
    我还在定制板上尝试了内核4.4。 但它仍然不起作用。

    有一点是、我们尚未连接 AM335x 上的 PMIC_POWER_EN 引脚。

    是的、我们使用 TI PSDK 来实现 BB 和自定义(实际上、它来自 Timesys、但他们也从 TI 获取、因此不做任何更改)。

    我不知道我在这里遗漏了什么。
    此外、只是为了确认 MMC 时钟不能超过48Mhz、对吧? 那么为什么内核将时钟显示为52MHz? 在 BBB 中、它实际上也是52MHz。 我在这里有点困惑。

    谢谢、

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

    MMC 属于 VDD_CORE 域。 OPP 是每个电压域的值、因此您应该将 OPP 与 VDD_CORE 相关联。

    有三个与 MMC 相关的时钟信号、两个内部信号和一个外部信号。

    两个内部时钟信号是功能时钟和接口时钟、它们来自器件 PRCM (内核和每个 PLL)。 可以通过 omapconf 工具、时钟框架或转储 PLL 寄存器来检查这些时钟信号频率。 OPP50的功能时钟(MMC_CLK)为48MHz、OPP100为96MHz。 它源自 PER PLL、请参阅 AM335x TRM 第8.1.6.8节外设 PLL 说明。 OPP50的接口时钟为50MHz、OPP100的接口时钟为100MHz、衍生的 fom 内核 PLL、请参阅 AM335x TRM、MMCHS 时钟和复位管理部分。

    外部时钟是 MMC_CLK 引脚上的时钟、不能通过 omapconf 和时钟框架对该时钟进行评估。 它基于功能时钟和内部 MMC 模块分频器。

    您需要知道频率的这3个时钟信号中的哪一个?

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

    您好、Pavel、

    很抱歉、我的回复很晚、我忙于处理其他高优先级修复程序、无法对此进行研究。

    我不明白您说"我必须到 VDD_CORE 吗?" 对于电路板,VDD_CORE 为1.1V,我应该如何与 OPP 相关?

    omapconf 不会显示任何 VDD_CORE。

    |---------------------------------------------------------------- |
    | |温度|电压|频率|工作点|
    |--------------- |
    | VDD_CORE / VDD_CORE0 |不适用 |不适用 | |未知 |
    | L3_SLOW | | | 100 MHz | |
    | L3_FAST | | | 200 MHz | |
    | EMIF4 | | | 200 MHz | |
    | DDR2/DDR3/mDDR | | | 400 MHz | |
    | L4_PER | | | 100 MHz | |
    L4_FAST | | | 200 MHz | |
    | | | | | |
    | VDD_MPU / VDD_Core1 |不适用 |不适用 | |未知 |
    | MPU (CPU0关闭) | | | 600MHz | |
    | | | | | |||-------------
    ------------------------------------------ |
    

    我正在寻找功能时钟

    我在下面提到了与 TRM 中指出的相同的行、但现在我不知道 OPP。

     OPP50的功能时钟(MMC_CLK)为48MHz、OPP100为96MHz。 它源自 PER PLL、请参阅 AM335x TRM 第8.1.6.8节外设 PLL 说明。  

    我参考了另一个 e2e 帖子、根据帖子、超过48MHz 的 AM335x 时钟频率不受支持。 如果不支持超过48Mhz 的时钟频率、我会感到非常困惑、为什么 TRM 说在 OPP100时 MMC_CLK 为96MHz。 我在这里缺少一些东西。

    https://e2e.ti.com/support/arm/sitara_arm/f/791/t/549883?tisearch=e2e-quicksearch&keymatch=eMMC%20HS400 

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

    [引用 USER="Ankur Tank ]我不明白您说"我必须从 OPP 到 VDD_CORE?" 对于电路板,VDD_CORE 为1.1V,我应该如何与 OPP 相关?

    您有用于 VDD_CORE (MMC)的 OPP100。 因此、MMC 功能时钟的最大频率为96MHz、MMC 接口时钟的最大频率为100MHz。

    [报价用户="Ankur Tank "]我正在寻找功能时钟[/报价]

    [引用 USER="Ankur Tank"]我参考了与 TRM 中指出的相同的下面一行、但现在我不知道 OPP。[/QUERT]

    它是 OPP100 (VDD_CORE 为1.1V 标称值)、AM335x 数据表对此进行了说明

    [引用用户="Ankur Tank"]

    我参考了另一个 e2e 帖子、根据帖子、超过48MHz 的 AM335x 时钟频率不受支持。 如果不支持超过48Mhz 的时钟频率、我会感到非常困惑、为什么 TRM 说在 OPP100时 MMC_CLK 为96MHz。 我在这里缺少一些东西。

    https://e2e.ti.com/support/arm/sitara_arm/f/791/t/549883?tisearch=e2e-quicksearch&keymatch=eMMC%20HS400 

    [/报价]

    这篇文章是指 MMC_CLK 引脚上的时钟频率。 这不是工作时钟/接口时钟、这是位于 AM335x 器件和外部 eMMC 芯片之间的外部时钟。  请参阅 AM335x 数据表、表7-88。 MMC[x]_CLK 的开关特性

    ƒop (CLK)-工作频率、MMC_CLK、高速模式、最大48MHz

    如果您有更多问题、请告诉我。

    此致、
    帕维尔

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

    感谢您的回复 Pavel、

    这是什么意思

    下面显示的任何内核都是接口时钟? 我们 无法从内核看到函数时钟、对吧?

    唯一的方法是转储寄存器并正确计算?

    # cat /sys/kernel/debug/mmc1/ios
    
    时钟: 52000000 Hz
    VDD: 20 (3.2 ~ 3.3V)
    总线模式: 2 (推挽)
    芯片选择: 0 (无关)
    功率模式: 2
    (ON)总线宽度: 3 (8位)
    时序规格: 1 (MMC 高速)
    信号电压:0 (3.30V) 

    谢谢、

    此致、

    Ankur

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

    您可以在 Linux 内核中获得 MMC 功能时钟频率、如下所示:

    root@AM335x-EVM:/sys/kernel/debug/clk/mmc_clk cat clk_rate
    96000000

    如您所见、AM335x TI EVM 上的频率为96MHz。 有关 MMC 功能时钟的更多信息、您可以查看:

    {PSDK}/board-support/linux-kernel/arch/arm/boot/dts/am33xx-clocks.dtsi
    MMC_clk:MMC_clk{
    #clock-cells =<0>;
    兼容="固定因子时钟";
    时钟=<&DPLL_PER_M2_ck >;
    时钟多路复用=<1>;
    clock-div =<2>;
    };

    AM335x TRM:

    第8.1.6.8节外设 PLL 说明
    第18章多媒体卡(MMC)


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

    [引用 USER="Ankur Tank"]#cat /sys/kernel/debug/mmc1/ios 时钟:52000000 Hz VDD:20 (3.2 ~ 3.3V)总线模式:2 (推挽)芯片选择:0 (无关)功率模式:2 (开启)总线宽度:3 (8位)时序规范:1 (MMC 高速)信号电压:0 (3.30V)[/QUERE]

    /sys/kernel/debug/mmc /IOS 显示插入 MMC/SD 卡或 eMMC 芯片的相关信息。 在 AM335x TI EVM 上、我有:

    root@AM335x-EVM:/sys/kernel/debug/mmc1 cat IOS
    时钟:      50000000Hz
    VDD:      21 (3.3 ~ 3.4V)
    总线模式:   2 (推挽)
    芯片选择:   0 (无关)
    功率模式:   2 (开启)
    总线宽度:   2 (4位)
    时序规格:   2 (SD 高速)
    信号电压:   0 (3.30V)
    驱动程序类型:   0 (驱动程序类型 B)

    时钟值(在您的情况下为52MHz)似乎对 MMC 时钟引脚有效、而不是功能时钟。 但是、由于它超出范围(数据表中的48MHz 最大值)、我建议您使用范围来仔细检查该值。

    此致、
    帕维尔