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.

[参考译文] PROCESSOR-SDK-AM62X:无法通过写入 TL_HOST_CONTROL2寄存器来设置 UHS 模式(偏移= 3Eh)[复位= 0h ]

Guru**** 2484615 points
Other Parts Discussed in Thread: AM625

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1444437/processor-sdk-am62x-unable-to-set-uhs-mode-via-writing-tl_host_control2-register-offset-3eh-reset-0h

器件型号:PROCESSOR-SDK-AM62X
主题中讨论的其他器件:DRA821AM625

工具与软件:

大家好、团队成员:

我们将尝试通过写入 CTL_HOST_CONTROL2寄存器(偏移= 3Eh)[复位= 0h]的位来为 AM62x 设置 UHS-I 模式。 我们无法读取/写入此寄存器、并且在尝试时出现异常。 看起来、我们正在尝试访问错误的地址、或者它受到保护、需要在写入之前解锁/切换到配置模式。 我们关注 AM62x_TRM.pdf (第14.8.4.6.58.1节)和 spruiu1c.pdf (第12.3.6.6.4.26节)以了解详细信息。 spruiu1c.pdf 将该寄存器命名为 MMCSD0_HOST_CONTROL2寄存器(偏移= 3Eh)[复位= 0h]。

  • 基于 AM62x_TRM.pdf 的 MMCSD2 0FA2003Eh 的物理地址(AM62x 处理器器件版本1.0 德州仪器(TI)产品系列)
  • spruiu1c.pdf 提供的 MMCSD0_CTL_CFG 04F8 003Eh 的物理地址(J7200 DRA821/AM66A 处理器 德州仪器(TI)产品系列)
  • 硬件设置:板-德州仪器(TI) AM625 SK-E3A
  • 以下是我们使用的 DTS 配置:

      sdhci2: mmc@fa20000 {
      compatible ="ti、am62-sdhci";
      REG =<0x00 0xfa20000 0x00 0x260>、<0x00 0xfa28000 0x00 0x134>;
      中断= ;
      电源域=<&K3_PDS 184 TI_SCI_PD_Exclusive>;
      时钟=<&K3_CLKS 184 5>、<&K3_CLKS 184 6>;
      时钟名称="clk_ahb"、"clk_sin";
      TI、TRM-ICP =<0x2>;
      TI、OTAP-DEL-SEL-legacy =<0x0>;
      TI、OTAP-DEL-SEL-SD-hs =<0x0>;
      TI、OTAP-DEL-SEL-Sdr12 =<0xF>;
      TI、OTAP-DEL-SEL-sdr25 =<0xF>;
      TI、OTAP-DEL-SEL-sdr50 =<0xc>;
      TI、OTAP-DEL-SEL-sdr104 =<0x6>;
      TI、OTAP-DEL-SEL-ddr50 =<0x9>;
      TI、ITAP-DEL-SEL-legacy =<0x0>;
      TI、ITAP-DEL-SEL-SD-hs =<0x0>;
      TI、ITAP-DEL-SEL-Sdr12 =<0x0>;
      TI、ITAP-DEL-SEL-sdr25 =<0x0>;
      ti、clkbuf-sel =<0x7>;
      };

您能不能在这方面为我们提供支持? 如果您需要其他详细信息、请告知我们。 谢谢

此致、

Revashankar

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

    嗨、U-Boot 或 Linux 内核 MMC 驱动程序会在 DTS 中启用(默认)时在 UHS-1 SDR104速度模式下枚举 SD 卡。  您无需执行任何手动设置。

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

    Prashant、您好!

    没错、我们能够在 UHS 模式下运行 Linux 内核驱动程序。 我们正在通过适用于 TI-AM62x 处理器的 VxWorks SDHC 控制器驱动程序实现此功能。 当我们尝试写入上述主机控制器寄存器以启用 UHS-I 时、会引发访问它时发生异常。 我们还尝试了读取该寄存器、但遇到了同样的异常。 我们可能没有使用正确的地址来访问此寄存器。 此外、还想了解我们是否可以借助 CTL_AUTOCMD_ERR_STS 寄存器(偏移= 3Ch)[复位= 0h]寄存器设置 UHS-I? 目前、TRM 显示该寄存器从0-15的只读位。 您能不能就此向我们提供一些建议? 谢谢!!

    此致、

    Revashankar

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

    您好!

    以下是用于 UHS 模式选择的寄存器:

    TI EVM 上的 SD 卡连接到 MMCSD1模块。 SD 卡的 DTS 节点由  U-Boot 和 Linux 内核中的"sdhci1:mmc@fa00000"定义。 因此、正确地址是"0x0FA0003E"。

    这是 UHS 模式选择的 U-Boot 基准:

    https://git.ti.com/cgit/ti-u-boot/ti-u-boot/tree/drivers/mmc/sdhci.c?h=10.00.07&id=fda88f8bcea30590528930ff9441c6e958da86f5#n518

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

    Prashant、您好!

    感谢您的更新。 您能否同时为此共享对应的 DTS 文件。 我们使用板德州仪器(TI) AM625 SK-E3A 进行开发。

    在读取和写入此寄存器时、我们使用以下 DTS 配置:

    sdhci1: mmc@fa00000 {
    compatible ="ti、am62-sdhci";
    REG =<0x00 0xfa00000 0x00 0x260>;
    中断= ;
    电源域=<&K3_PDS 58 TI_SCI_PD_Exclusive>;
    时钟=<&K3_CLKS 58 5>、<&K3_CLKS 58 6>;
    时钟名称="clk_ahb"、"clk_sin";
    TI、TRM-ICP =<0x2>;
    TI、OTAP-DEL-SEL-legacy =<0x0>;
    TI、OTAP-DEL-SEL-SD-hs =<0x0>;
    TI、OTAP-DEL-SEL-Sdr12 =<0xF>;
    TI、OTAP-DEL-SEL-sdr25 =<0xF>;
    TI、OTAP-DEL-SEL-sdr50 =<0xc>;
    TI、OTAP-DEL-SEL-sdr104 =<0x6>;
    TI、OTAP-DEL-SEL-ddr50 =<0x9>;
    TI、ITAP-DEL-SEL-legacy =<0x0>;
    TI、ITAP-DEL-SEL-SD-hs =<0x0>;
    TI、ITAP-DEL-SEL-Sdr12 =<0x0>;
    TI、ITAP-DEL-SEL-sdr25 =<0x0>;
    ti、clkbuf-sel =<0x7>;
    总线宽度=<4>;
    状态="正常";

    };

    UBOOT 详细信息:

    U-Boot SPL 2023.04-ti-g836606420854 (2024年5月9日- 05:42:45 +0000)
    SYSFW ABI:3.1 (固件版本0x0009 '9.2.8--v09.02.08 (Kool Koala)')
    SPL 初始堆栈使用:1856字节
    尝试从 MMC2引导


    U-Boot 2023.04-Dirty (2024年7月17日- 16:01:01 +0530)

    SoC:AM62X SR1.0 GP
    型号:德州仪器(TI) AM625 SK
    EEPROM 在80时不可用、尝试在81时读取
    电路板:AM62-SKEVM 修订版 E3
    DRAM:2GiB
    内核:72个器件、32个 uClass、devicetre:单独
    MMC:MMC@fa10000:0、MMC@fa00000:1
    随处加载环境... 好的
    输入:串行
    输出:串行
    错误:串行
    net:eth0:以太网@8000000port@1
    按任意键以停止自动引导:0

    香港特别行政区政府在香港特别行政区的工作、包括香港特别行政区政府在香港特别行政区的工作

    如下所示、我们还直接尝试了三种可能的组合、但未从 DTS 中获取基地址、仍然无法读取/写入此寄存器

    uint32_t * regHostctrl2 =(uint32_t *) 0x0FA1003E;//为 MMCSD0分配物理地址

    uint32_t value =* regHostctrl2;//读取寄存器

    * regHostctrl2 |= 0xC;//为 DDR50和1.8V 写入前4位
    香港特别行政区政府在香港特别行政区的工作、包括香港特别行政区


    uint32_t * regHostctrl2 =(uint32_t *) 0x0FA0003E;//为 MMCSD1分配物理地址

    uint32_t value =* regHostctrl2;//读取寄存器

    * regHostctrl2 |= 0xC;//为 DDR50和1.8V 写入前4位


    香港特别行政区政府在香港特别行政区的工作、包括香港特别行政区


    uint32_t * regHostctrl2 =(uint32_t *) 0x0FA2003E;//为 MMCSD2分配物理地址

    uint32_t value =* regHostctrl2;//读取寄存器

    * regHostctrl2 |= 0xC;//为 DDR50和1.8V 写入前4位

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

    以下是 U-Boot 中为 SD 卡定义的 dts 节点(sdhci1):

    https://git.ti.com/cgit/ti-u-boot/ti-u-boot/tree/arch/arm/dts/k3-am62-main.dtsi?h=10.00.07&id=fda88f8bcea30590528930ff9441c6e958da86f5#n599

    以下是从 A53 U-Boot 读取的寄存器:

    => md.w 0x0FA0003E 0x2
    0fa0003e: 0000 c801                                ....

    如果它在 VxWorks 中不工作、那么 VxWorks 特定的东西可能会阻止它。

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

    Prashant、您好!

    谢谢您的建议。 问题已解决。 我能够写入和读取此寄存器。