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-AM64X:eMMC 中的冗余 u-boot 环境

Guru**** 2393725 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1447307/processor-sdk-am64x-redundant-u-boot-environment-in-emmc

器件型号:PROCESSOR-SDK-AM64X

工具与软件:

尊敬的 TI 专家:

我们使用 AM64x EVM 作为参考设计开发产品。 对于固件更新、我们使用 swupdate (恢复映像方法)。
引导时、u-boot 必须决定引导哪个映像(恢复/正常映像)、因此在启动/完成更新时必须修改 u-boot 环境。

为了提高稳健性、我们需要使用冗余环境、这两个环境均存储在 eMMC 的引导分区(mmcblk0 boot0)中。 因此、我修改了文件 configs/am64x_evm_a53_defconfig 和 configs/am64x_evm_r5_defconfig
作为参考、我使用了 TI 提供的信息: software-dl.ti.com/.../UG-Memory.html

构建和刷写映像(tisdk-default-image)后、R5-SPL (包含在 tiboot3.bin 中)在生成以下输出后挂起:

---
U-Boot SPL 2024.04-ti-g50481472c910 (2024年12月04日- 10:01:28 +0000)
在冷启动时复位以解决方法 ErrataID:i2331
如果是 UART/DFU 引导、请重新发送 tiboot3.bin
正在重置...

U-Boot SPL 2024.04-ti-g50481472c910 (2024年12月04日- 10:01:28 +0000)
SYSFW ABI:4.0 (固件版本0x000a '10.0.8--v10.00.08 (Fiery Fox)')
SPL 初始堆栈使用:13392字节
尝试从 MMC2引导
身份验证已通过
身份验证已通过
正在从 MMC 加载环境...
---

经过一些调试后、我意识到函数 static int env_mcu_load (void) env/mcu.c 存在不同变体、
其中选择标准是定义 CONFIG_SYS_REDAND_PROPERFORCE。

在冗余环境的变体中、调用函数 MMC_INITIALIZE (NULL)(第405行)、而加载程序似乎在那里崩溃。
在针对单个环境进行编译时、不调用此函数、这会导致以下输出:

---
U-Boot SPL 2024.04-ti-g50481472c910 (2024年12月04日- 10:01:28 +0000)
在冷启动时复位以解决方法 ErrataID:i2331
如果是 UART/DFU 引导、请重新发送 tiboot3.bin
正在重置...

U-Boot SPL 2024.04-ti-g50481472c910 (2024年12月04日- 10:01:28 +0000)
SYSFW ABI:4.0 (固件版本0x000a '10.0.8--v10.00.08 (Fiery Fox)')
SPL 初始堆栈使用:13392字节
尝试从 MMC2引导
身份验证已通过
身份验证已通过
正在从 MMC 加载环境... ***警告-未找到 MMC 卡、使用默认环境
---

也无法加载环境、但至少引导过程会继续。

我的问题是:
1.我的方法是否有效? 您是否建议在我的用例中使用第二个环境?

2.你能告诉为什么 MMC_INITIALIZE ()函数导致系统冻结吗? 我运行测试并注释行、系统引导时就像只有一个环境一样。

  e2e.ti.com/.../config_5F00_patch.txt

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

    您好!

    您可能已经知道、eMMC 有两个引导分区:1) boot0和2) boot1。

    因此、您可以将正常的 U-Boot 映像保留到 Boot0分区、同时将 U-Boot 映像恢复到 boot1分区。

    对于软件更新、您将修改 EXTCSD 寄存器、以选择引导分区到 boot1并点击 RESET。 然后、ROM 将从 boot1分区引导 R5 SPL、R5 SPL 也会从同一分区引导其他映像。

    在软件更新结束时、您将再次修改 EXTCSD 寄存器以选择 Boot0的引导分区并点击 RESET 来引导正常的 U-Boot 映像。

    此致、

    Prashant

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

    Prashant、您好!

    感谢您的答复。 我知道这两个引导分区,和 EXTCSD 寄存器(参考: 工作与 eMMC ( embeddedartists.com )) .
    然而、我认为这与我的问题无关、因为我仍然需要 u-boot 环境在软件更新期间更新某些变量(upgrade_available /bootcount)。

    我的问题是:


    如何启用存储在 e.MMC 引导分区中的冗余 u-boot 环境?

    更多信息 : 当前 我从 SD 卡启动。 从 SD 卡(MMC 端口1)引导并从 R5 SPL 初始化(和后续访问) eMMC (MMC 端口0)是否是一般问题?  

    提前感谢。

    Br Benjamin

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

    您好!
    到目前为止是否有更新? 感谢任何帮助。

    Br Benjamin

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

    您好!

    当前 我从 SD 卡启动。

    这就是问题的原因。

    U-Boot SPL 旨在仅探测引导所需的驱动程序。 如果从 SD 卡引导、则不需要 eMMC、因此在 env 加载之前不会探测(驱动程序未初始化)、从而导致故障。

    如果从 eMMC 引导、则在原始和冗余 env 之间切换的冗余 env 功能应按如下方式工作:

    U-Boot SPL 2024.04-dirty (Dec 16 2024 - 19:51:14 +0530)
    SYSFW ABI: 4.0 (firmware rev 0x000a '10.0.8--v10.00.08 (Fiery Fox)')
    SPL initial stack usage: 13392 bytes
    Trying to boot from MMC1
    Authentication passed
    Authentication passed
    Loading Environment from MMC... [read_env:384] blk_start: 0x3400, blk_cnt: 0x100, buffer: 0x81fbfe00
    [read_env:384] blk_start: 0x3500, blk_cnt: 0x100, buffer: 0x81fdfe40
    [env_import:420] buf: 0x81fbfe00
    OK
    init_env from device 9 not supported!
    Authentication passed
    Authentication passed
    Starting ATF on ARM64 core...
    
    NOTICE:  BL31: v2.10.0(release):v2.10.0-367-g00f1ec6b87-dirty
    NOTICE:  BL31: Built : 16:09:05, Feb  9 2024
    I/TC:
    I/TC: OP-TEE version: 4.2.0-dev (gcc version 13.3.0 (GCC)) #1 Fri Apr 12 09:51:21 UTC 2024 aarch64
    I/TC: WARNING: This OP-TEE configuration might be insecure!
    I/TC: WARNING: Please check optee.readthedocs.io/.../porting_guidelines.html
    I/TC: Primary CPU initializing
    I/TC: GIC redistributor base address not provided
    I/TC: Assuming default GIC group status and modifier
    I/TC: SYSFW ABI: 4.0 (firmware rev 0x000a '10.0.8--v10.00.08 (Fiery Fox)')
    I/TC: HUK Initialized
    I/TC: Activated SA2UL device
    I/TC: Enabled firewalls for SA2UL TRNG device
    I/TC: SA2UL TRNG initialized
    I/TC: SA2UL Drivers initialized
    I/TC: Primary CPU switching to normal world boot
    
    U-Boot SPL 2024.04-dirty (Dec 16 2024 - 19:51:21 +0530)
    SYSFW ABI: 4.0 (firmware rev 0x000a '10.0.8--v10.00.08 (Fiery Fox)')
    Trying to boot from MMC1
    Authentication passed
    Authentication passed
    
    
    U-Boot 2024.04-dirty (Dec 16 2024 - 19:51:21 +0530)
    
    SoC:   AM64X SR2.0 HS-FS
    Model: Texas Instruments AM642 EVM
    Board: AM64-GPEVM rev C
    DRAM:  2 GiB
    Core:  98 devices, 31 uclasses, devicetree: separate
    NAND:  0 MiB
    MMC:   mmc@fa10000: 0, mmc@fa00000: 1
    Loading Environment from MMC... [read_env:384] blk_start: 0x3400, blk_cnt: 0x100, buffer: 0xfde4cd80
    [read_env:384] blk_start: 0x3500, blk_cnt: 0x100, buffer: 0xfde6cdc0
    [env_import:420] buf: 0xfde4cd80
    OK
    In:    serial@2800000
    Out:   serial@2800000
    Err:   serial@2800000
    Net:   eth0: ethernet@8000000port@1, eth2: icssg1-eth-port@0
    Hit any key to stop autoboot:  0
    => saveenv
    Saving Environment to MMC... Writing to redundant MMC(0)... [write_env:252] blk_start: 0x3500, blk_cnt: 0x100
    OK
    => mw 0x43000030 0xcb 0x1;reset;
    resetting ...
    
    U-Boot SPL 2024.04-dirty (Dec 16 2024 - 19:51:14 +0530)
    SYSFW ABI: 4.0 (firmware rev 0x000a '10.0.8--v10.00.08 (Fiery Fox)')
    SPL initial stack usage: 13392 bytes
    Trying to boot from MMC1
    Authentication passed
    Authentication passed
    Loading Environment from MMC... [read_env:384] blk_start: 0x3400, blk_cnt: 0x100, buffer: 0x81fbfe00
    [read_env:384] blk_start: 0x3500, blk_cnt: 0x100, buffer: 0x81fdfe40
    [env_import:420] buf: 0x81fdfe40
    OK
    init_env from device 9 not supported!
    Authentication passed
    Authentication passed
    Starting ATF on ARM64 core...
    
    NOTICE:  BL31: v2.10.0(release):v2.10.0-367-g00f1ec6b87-dirty
    NOTICE:  BL31: Built : 16:09:05, Feb  9 2024
    I/TC:
    I/TC: OP-TEE version: 4.2.0-dev (gcc version 13.3.0 (GCC)) #1 Fri Apr 12 09:51:21 UTC 2024 aarch64
    I/TC: WARNING: This OP-TEE configuration might be insecure!
    I/TC: WARNING: Please check optee.readthedocs.io/.../porting_guidelines.html
    I/TC: Primary CPU initializing
    I/TC: GIC redistributor base address not provided
    I/TC: Assuming default GIC group status and modifier
    I/TC: SYSFW ABI: 4.0 (firmware rev 0x000a '10.0.8--v10.00.08 (Fiery Fox)')
    I/TC: HUK Initialized
    I/TC: Activated SA2UL device
    I/TC: Enabled firewalls for SA2UL TRNG device
    I/TC: SA2UL TRNG initialized
    I/TC: SA2UL Drivers initialized
    I/TC: Primary CPU switching to normal world boot
    
    U-Boot SPL 2024.04-dirty (Dec 16 2024 - 19:51:21 +0530)
    SYSFW ABI: 4.0 (firmware rev 0x000a '10.0.8--v10.00.08 (Fiery Fox)')
    Trying to boot from MMC1
    Authentication passed
    Authentication passed
    
    
    U-Boot 2024.04-dirty (Dec 16 2024 - 19:51:21 +0530)
    
    SoC:   AM64X SR2.0 HS-FS
    Model: Texas Instruments AM642 EVM
    Board: AM64-GPEVM rev C
    DRAM:  2 GiB
    Core:  98 devices, 31 uclasses, devicetree: separate
    NAND:  0 MiB
    MMC:   mmc@fa10000: 0, mmc@fa00000: 1
    Loading Environment from MMC... [read_env:384] blk_start: 0x3400, blk_cnt: 0x100, buffer: 0xfde4cd80
    [read_env:384] blk_start: 0x3500, blk_cnt: 0x100, buffer: 0xfde6cdc0
    [env_import:420] buf: 0xfde6cdc0
    OK
    In:    serial@2800000
    Out:   serial@2800000
    Err:   serial@2800000
    Net:   eth0: ethernet@8000000port@1, eth2: icssg1-eth-port@0
    Hit any key to stop autoboot:  0
    => saveenv
    Saving Environment to MMC... Writing to MMC(0)... [write_env:252] blk_start: 0x3400, blk_cnt: 0x100
    OK
    => mw 0x43000030 0xcb 0x1;reset;
    resetting ...
    
    U-Boot SPL 2024.04-dirty (Dec 16 2024 - 19:51:14 +0530)
    SYSFW ABI: 4.0 (firmware rev 0x000a '10.0.8--v10.00.08 (Fiery Fox)')
    SPL initial stack usage: 13392 bytes
    Trying to boot from MMC1
    Authentication passed
    Authentication passed
    Loading Environment from MMC... [read_env:384] blk_start: 0x3400, blk_cnt: 0x100, buffer: 0x81fbfe00
    [read_env:384] blk_start: 0x3500, blk_cnt: 0x100, buffer: 0x81fdfe40
    [env_import:420] buf: 0x81fbfe00
    OK
    init_env from device 9 not supported!
    Authentication passed
    Authentication passed
    Starting ATF on ARM64 core...
    
    NOTICE:  BL31: v2.10.0(release):v2.10.0-367-g00f1ec6b87-dirty
    NOTICE:  BL31: Built : 16:09:05, Feb  9 2024
    I/TC:
    I/TC: OP-TEE version: 4.2.0-dev (gcc version 13.3.0 (GCC)) #1 Fri Apr 12 09:51:21 UTC 2024 aarch64
    I/TC: WARNING: This OP-TEE configuration might be insecure!
    I/TC: WARNING: Please check optee.readthedocs.io/.../porting_guidelines.html
    I/TC: Primary CPU initializing
    I/TC: GIC redistributor base address not provided
    I/TC: Assuming default GIC group status and modifier
    I/TC: SYSFW ABI: 4.0 (firmware rev 0x000a '10.0.8--v10.00.08 (Fiery Fox)')
    I/TC: HUK Initialized
    I/TC: Activated SA2UL device
    I/TC: Enabled firewalls for SA2UL TRNG device
    I/TC: SA2UL TRNG initialized
    I/TC: SA2UL Drivers initialized
    I/TC: Primary CPU switching to normal world boot
    
    U-Boot SPL 2024.04-dirty (Dec 16 2024 - 19:51:21 +0530)
    SYSFW ABI: 4.0 (firmware rev 0x000a '10.0.8--v10.00.08 (Fiery Fox)')
    Trying to boot from MMC1
    Authentication passed
    Authentication passed
    
    
    U-Boot 2024.04-dirty (Dec 16 2024 - 19:51:21 +0530)
    
    SoC:   AM64X SR2.0 HS-FS
    Model: Texas Instruments AM642 EVM
    Board: AM64-GPEVM rev C
    DRAM:  2 GiB
    Core:  98 devices, 31 uclasses, devicetree: separate
    NAND:  0 MiB
    MMC:   mmc@fa10000: 0, mmc@fa00000: 1
    Loading Environment from MMC... [read_env:384] blk_start: 0x3400, blk_cnt: 0x100, buffer: 0xfde4cd80
    [read_env:384] blk_start: 0x3500, blk_cnt: 0x100, buffer: 0xfde6cdc0
    [env_import:420] buf: 0xfde4cd80
    OK
    In:    serial@2800000
    Out:   serial@2800000
    Err:   serial@2800000
    Net:   eth0: ethernet@8000000port@1, eth2: icssg1-eth-port@0
    Hit any key to stop autoboot:  0
    =>

    此致、

    Prashant

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

    Prashant、您好!

    感谢您的答复、对我的回答延迟了很抱歉。

    在制造过程中、我们希望从 SD 卡(通过插入式适配器连接)引导制造映像、其中包含制造相关应用以及最终映像(SPL/U-Boot / Rootfs 等)、并将这些映像编程到 eMMC。

    为简单起见、可以将最终的 U-Boot 元件(SPL/U-Boot)重复用于制造(SD 卡)用例。 如前所述、这暂时无法实现、因为从 SD 卡运行时 U-Boot 会崩溃、但在 eMMC 上配置了冗余环境。

    U-Boot SPL 设计用于仅探测引导所需的驱动程序。 如果从 SD 卡引导、则不需要 eMMC、因此在 ENV 加载之前不会探测(驱动程序未初始化)、从而导致故障。[/QUOT]

    是否存在在 R5 SPL 期间初始化 eMMC 和 SD 卡的方法? 如果环境应保存在 e.MMC 中、则应将其视为引导所需的、因此应进行探测。

    哪个部分会初始化引导设备? 内部 ROM 引导加载程序或 R5-SPL? 由于也必须从引导器件 加载 R5-SPL、因此 ROM 加载程序至少必须完成基本初始化。
    如果 R5 SPL (重新)初始化引导器件、它在哪里获得有关要初始化哪个器件的信息? 我可以假设它在设备树中的某个位置(具有属性 bootph-all 的节点)、但我尚未找到它。

    感谢任何帮助。

    此致、本杰明

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

    您好!
    到目前为止是否有更新?

    Br Benjamin

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

    您好!

    对延迟响应深表歉意。

    `m` SPL 级的 Δ V MC_INITIALIZE 失败、因为 eMMC 和 SD 卡的电源域在其 DTS 文件中被禁用。

    您能否尝试使用以下补丁、并告知我们它是否有效?

    diff --git a/arch/arm/dts/k3-am64-main.dtsi b/arch/arm/dts/k3-am64-main.dtsi
    index e17ea49e790..870bcdbced3 100644
    --- a/arch/arm/dts/k3-am64-main.dtsi
    +++ b/arch/arm/dts/k3-am64-main.dtsi
    @@ -623,7 +623,7 @@
     		compatible = "ti,am64-sdhci-8bit";
     		reg = <0x00 0xfa10000 0x00 0x260>, <0x00 0xfa18000 0x00 0x134>;
     		interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
    -		power-domains = <&k3_pds 57 TI_SCI_PD_EXCLUSIVE>;
    +		power-domains = <&k3_pds 57 TI_SCI_PD_SHARED>;
     		clocks = <&k3_clks 57 0>, <&k3_clks 57 1>;
     		clock-names = "clk_ahb", "clk_xin";
     		bus-width = <8>;
    @@ -645,7 +645,7 @@
     		compatible = "ti,am64-sdhci-4bit";
     		reg = <0x00 0xfa00000 0x00 0x260>, <0x00 0xfa08000 0x00 0x134>;
     		interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>;
    -		power-domains = <&k3_pds 58 TI_SCI_PD_EXCLUSIVE>;
    +		power-domains = <&k3_pds 58 TI_SCI_PD_SHARED>;
     		clocks = <&k3_clks 58 3>, <&k3_clks 58 4>;
     		clock-names = "clk_ahb", "clk_xin";
     		bus-width = <4>;
    diff --git a/arch/arm/dts/k3-am642-r5-evm.dts b/arch/arm/dts/k3-am642-r5-evm.dts
    index 548cfce8f99..dc23cb654f6 100644
    --- a/arch/arm/dts/k3-am642-r5-evm.dts
    +++ b/arch/arm/dts/k3-am642-r5-evm.dts
    @@ -118,7 +118,7 @@
     };
     
     &sdhci0 {
    -	/delete-property/ power-domains;
    +	// /delete-property/ power-domains;
     	clocks = <&clk_200mhz>;
     	clock-names = "clk_xin";
     	ti,driver-strength-ohm = <50>;
    @@ -127,7 +127,7 @@
     };
     
     &sdhci1 {
    -	/delete-property/ power-domains;
    +	// /delete-property/ power-domains;
     	clocks = <&clk_200mhz>;
     	clock-names = "clk_xin";
     	disable-wp;
    

    此致、

    Prashant

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

    Prashant、您好!

    很抱歉响应延迟、我要做的是高优先级工作、但从下周开始将继续处理剩余的启动主题。
    我将通知您您您的补丁是否可以解决我的问题。

    Br Benjamin  

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

    感谢您的更新。 我期待您的进一步反馈。

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

    Prashant、您好!

    您建议的更改似乎有效。 我遇到问题、仅在 u-boot 器件树中更改了电源域属性、而不在 Linux 器件树中更改。 然后内核在引导期间无法访问 rootfile 系统(u-boot 启动正常)。

    我还想知道器件树文件 k3-am642-r5-evm.dts 中的以下器件树节点。 这些单个引脚与 e.MMC 有何关系? 与 EVM 设计相比、我们设计中的 e.MMC 连接到 SoC。
    我删除了节点和引用属性、它仍然有效。

    &main_pmx0 {
        ospi0_pins_default: ospi0-default-pins {
            pinctrl-single,pins = <
            AM64X_IOPAD(0x0000, PIN_OUTPUT, 0) /* (N20) OSPI0_CLK */
            AM64X_IOPAD(0x002c, PIN_OUTPUT, 0) /* (L19) OSPI0_CSn0 */
            AM64X_IOPAD(0x000c, PIN_INPUT, 0) /* (M19) OSPI0_D0 */
            AM64X_IOPAD(0x0010, PIN_INPUT, 0) /* (M18) OSPI0_D1 */
            AM64X_IOPAD(0x0014, PIN_INPUT, 0) /* (M20) OSPI0_D2 */
            AM64X_IOPAD(0x0018, PIN_INPUT, 0) /* (M21) OSPI0_D3 */
            AM64X_IOPAD(0x001c, PIN_INPUT, 0) /* (P21) OSPI0_D4 */
            AM64X_IOPAD(0x0020, PIN_INPUT, 0) /* (P20) OSPI0_D5 */
            AM64X_IOPAD(0x0024, PIN_INPUT, 0) /* (N18) OSPI0_D6 */
            AM64X_IOPAD(0x0028, PIN_INPUT, 0) /* (M17) OSPI0_D7 */
            AM64X_IOPAD(0x0008, PIN_INPUT, 0) /* (N19) OSPI0_DQS */
            >;
        };
    
        main_mmc0_pins_default: main-mmc0-pins-default {
            bootph-pre-ram;
            pinctrl-single,pins = <
                AM64X_IOPAD(0x01a8, PIN_INPUT_PULLDOWN, 0)  /* (B25) MMC0_CLK */
                AM64X_IOPAD(0x01aC, PIN_INPUT_PULLUP, 0)    /* (B27) MMC0_CMD */
                AM64X_IOPAD(0x01a4, PIN_INPUT_PULLUP, 0)    /* (A26) MMC0_DAT0 */
                AM64X_IOPAD(0x01a0, PIN_INPUT_PULLUP, 0)    /* (E25) MMC0_DAT1 */
                AM64X_IOPAD(0x019c, PIN_INPUT_PULLUP, 0)    /* (C26) MMC0_DAT2 */
                AM64X_IOPAD(0x0198, PIN_INPUT_PULLUP, 0)    /* (A25) MMC0_DAT3 */
                AM64X_IOPAD(0x0194, PIN_INPUT_PULLUP, 0)    /* (E24) MMC0_DAT4 */
                AM64X_IOPAD(0x0190, PIN_INPUT_PULLUP, 0)    /* (A24) MMC0_DAT5 */
                AM64X_IOPAD(0x018c, PIN_INPUT_PULLUP, 0)    /* (B26) MMC0_DAT6 */
                AM64X_IOPAD(0x0188, PIN_INPUT_PULLUP, 0)    /* (D25) MMC0_DAT7 */
                AM64X_IOPAD(0x01b0, PIN_INPUT, 0)       /* (C25) MMC0_DS */
            >;
        };
    };
    
    &sdhci0 {
    	/delete-property/ power-domains;
    	clocks = <&clk_200mhz>;
    	clock-names = "clk_xin";
    	ti,driver-strength-ohm = <50>;
    	disable-wp;
    	pinctrl-0 = <&main_mmc0_pins_default>; 
    };
    
    
    

    我的器件树(k3-am642-R5-VEM.dts)中的节点如下所示、并且工作正常。

    &sdhci0 {
    	clocks = <&clk_200mhz>;
    	clock-names = "clk_xin";
    	ti,driver-strength-ohm = <50>;
    	disable-wp;
    };
    
    &sdhci1 {
    	clocks = <&clk_200mhz>;
    	clock-names = "clk_xin";
    	disable-wp;
    	pinctrl-0 = <&main_mmc1_pins_default>;
    };

    您能否说明一下描述电源域属性的文档? 何时必须使用  TI_SCI_PD_Exclusive;何时必须使用  TI_SCI_PD_shared? 当 u-boot 和 Linux 设备树对此参数具有不同的值时、为什么会出现问题?

    非常感谢您的帮助!

    Br Benjamin

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

    您好!

    我删除了节点和引用属性、它仍然有效。

    这些是引脚复用配置。 请不要删除这些属性或节点。

    您能不能给我一个描述电源域属性的文档提示吗?

    请参阅以下指南:

    https://git.ti.com/cgit/ti-u-boot/ti-u-boot/tree/doc/device-tree-bindings/power/ti,sci-pm-domain.txt

    此致、

    Prashant

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

    您好!

    [报价用户 id="531297" url="~/support/processors-group/processors/f/processors-forum/1447307/processor-sdk-am64x-redundant-u-boot-environment-in-emmc/5743909 #57436909"]

    这些是引脚复用配置。 请不要删除这些属性或节点。

    [报价]

    我知道这是引脚多路复用配置、但   我不清楚 MAIN_mmC0_PINS_DEFAULT (来自 K3-am642-R5-VEM.dts)的内容。 MMC0接口未连接到 MAIN_mmC0_PINS_DEFAULT 中指定的引脚、请参阅以下图像。

    OSPI 接口节点  opi0_pins_default 的内容 与该设计相匹配、请参阅以下各图。

    我还将   AM62-SK 电路板的 MAIN_mmc0_PINS_DEFAULT (k3-am62x-sk-common.dtsi)节点与原理图进行了比较、此处的引脚也匹配。

    顺便说一下、器件树  k3-am654-base-board.dts 包含相同的节点  main_mmc0_pins_default。 该节点是否可能仅对基于 am654的电路板有效?

    [报价用户 id="531297" url="~/support/processors-group/processors/f/processors-forum/1447307/processor-sdk-am64x-redundant-u-boot-environment-in-emmc/5743909 #57436909"]

    请参阅以下指南:

    https://git.ti.com/cgit/ti-u-boot/ti-u-boot/tree/doc/device-tree-bindings/power/ti,sci-pm-domain.txt

    [报价]

    感谢提示。 对我来说、仍然不是很清楚、似乎我必须更深入地了解文档。

    Br Benjamin

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [报价 userid="633817" url="~/support/processors-group/processors/f/processors-forum/1447307/processor-sdk-am64x-redundant-u-boot-environment-in-emmc/5743996 #5743996"]但是   我不清楚 main_mmc0_pins_default (来自 k3-am642-r5-VEM.dts)的内容。 MMC0接口未连接到 MAIN_mmC0_PINS_DEFAULT 中指定的引脚、请参阅以下图像。[/QUOT]

    这是出乎意料的。 我将在内部检查并返回给您。

    谢谢!