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.

[参考译文] SK-AM62B-P1:R5 SPL 或 A53 SPL 下的 GPIO 控制

Guru**** 2455360 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1465327/sk-am62b-p1-gpio-control-under-r5-spl-or-a53-spl

器件型号:SK-AM62B-P1

工具与软件:

尊敬的专家:

我的 SDK 使用: Linux-AM62X  适用于的 PROCESSOR-SDK-LINUX

版本:10.01.10.04
发布日期:2024年12月20日

我的目的:在器件加电时尽快控制特定的 GPIO。

AM62x 引导文件序列为 tiboo3.bin (R 内核 SPL) --> tispl.bin (A 内核 SPL)--> u-boot.img。

我可以 在 u-boot.img 下控制 MCU_GPIO0、GPIO0或 GPIO1、但在 tispl.bin 下无法进行控制。

[方法]我在器件树 k3-am625-sk.dts 中针对 u-boot.img 的 GPIO 控件下面添加了

&MCU_pmx0{
mcugpio0_pins_default:mcugpio0-default-pins{
PINCTL-SINGLE、PINS =<
AM62X_MCU_IOPAD (0x0048、PIN_OUTPUT、7)/*(D10) MCU_I2C0_SDA.MCU_GPIO0_18 */
>;
};
};

&MCU_GPIO0{
pinctrl-names ="默认值";
pinctrl-0 =<&mcugpio0_pins_default>;
状态="正常";
};

并在 board/ti/am62x/evm.c 函数 int board_init (void)中控制 GPIO。  它的工作原理是这样。

对于修改后的 tispl.bin、我将函数 spl_board_init ()中的相同控制代码放入相同的文件 evm.c

还修改器件树 k3-am625-r5-sk.dts。

我可以看到函数日志、它表示编译成功、但在芯片范围监控下 GPIO 控制不起作用。

似乎 GPIO 控制器在加载 u-boot.img 后上电了吗?

你能给我任何实现 目的的建议吗?  非常感谢!

此致、

Louis Chuang

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

    尊敬的 Louis:

    您能否共享为 evm.c 创建的 GPIO 代码?

    您是否可以尝试将"bootph-all"添加到 MCU_GPIO 参考节点?

    以下是我之前参考的一些其他 U-Boot/SPL 文档:

    谢谢!

    Anshu

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

    尊敬的 Anshu:

    请参阅以下 evm.c 代码
    ------------------------------------------------------------------------------------------------------
    我向 MCU_GPIO0节点中添加了"bootph-all"、然后可以控制 A53 SPL 中的 MCU_GPIO0_17和 MCU_GPIO0_18。
    但 MCU_GPIO_14仅在 A53 u-boot 中有效、不能在 A53 SPL 步骤中工作。

    &MCU_pmx0{
    mcugpio0_pins_default:mcugpio0-default-pins{
    PINCTL-SINGLE、PINS =<
    AM62X_MCU_IOPAD (0x0038、PIN_OUTPUT、7)/*(B3) MCU_MCAN0_RX.MCU_GPIO0_14 */
    AM62X_MCU_IOPAD (0x0044、PIN_OUTPUT、7)/*(A8) MCU_I2C0_SCL.MCU_GPIO0_17 */
    AM62X_MCU_IOPAD (0x0048、PIN_OUTPUT、7)/*(D10) MCU_I2C0_SDA.MCU_GPIO0_18 */
    >;
    };
    };

    &MCU_GPIO0{
    引导全部;
    pinctrl-names ="默认值";
    pinctrl-0 =<&mcugpio0_pins_default>;
    状态="正常";
    };

    (现在跳过此问题、在 evm.c 代码之后执行下一个测试)
    ------------------------------------------------------------------------------------------------------
    evm.c 关于 GPIO 控制:
    static int configure_gpio (const char * pin_desc、int value)

    结构 gpio_desc 描述;
    Int ret;

    /*按名称查找 GPIO */
    REt = dm_gpio_lookup_name (pin_desc、&desc);
    如果(ret){
    printf ("查找 GPIO 引脚%s 失败:%d\n"、pin_desc、ret);
    回流塔;
    }

    /*请求 GPIO */
    REt = dm_gpio_request (&desc、pin_desc);
    如果(ret){
    printf ("无法请求 GPIO %s:%d\n"、pin_desc、ret);
    回流塔;
    }

    /*将 GPIO 配置为输出*/
    RET = dm_gpio_set_dir_FLAGS (&desc、gpid_is_out);
    如果(ret){
    printf ("无法为%s 设置 GPIO 方向:%d\n"、pin_desc、ret);
    dm_gpio_free (desc.dev、&desc);
    回流塔;
    }

    /*设置 GPIO 值*/
    RET = dm_gpio_set_value (&desc、value);
    如果(ret){
    printf ("无法为%s 设置 GPIO 值:%d\n"、pin_desc、ret);
    dm_gpio_free (desc.dev、&desc);
    回流塔;
    }

    printf ("GPIO %s 已配置并设置为%d\n"、pin_desc、值);

    /*释放 GPIO */
    dm_gpio_free (desc.dev、&desc);
    返回0;
    }

    int board_init (void)

    printf ("------------------ >\n\n");
    Configure_GPIO ("GPIO@4201000_14"、1);
    Configure_GPIO ("GPIO@4201000_17"、1);
    Configure_GPIO ("GPIO@4201000_18"、1);
    printf ("<------------------ \n\n");

    返回0;
    }

    void spl_board_init (void)

    ...
    printf ("##############################################################################################################################_########_##_##_##_##_##_### >\n\n");
    Configure_GPIO ("GPIO@4201000_14"、0);
    Configure_GPIO ("GPIO@4201000_17"、0);
    Configure_GPIO ("GPIO@4201000_18"、0);
    printf ("##############################################################################################################################_########_##_##_##_##_##_### >\n\n");
    }
    ------------------------------------------------------------------------------------------------------

    之后、我确实尝试在 R5 SPL 中控制 GPIO、将相同的 dts 节点放入 k3-am625-r5-sk.dts、

    并在 am62x_evm_r5_defconfig 中启用 CONFIG_SPL_GPIO 和 CONFIG_SPL_Board_init

    编译新的 tiboot3.bin 以进行测试。

    我在下面获得了错误日志、但它仍可以控制 A53 SPL 中的 MCU GPIO。

    您是否知道如何控制 R5 SPL 中的 GPIO (tiboot3.bin)?

    ########################################################################################################################## >

    TI_POWER_DOMAIN_OF_xlate:无效 dev_id:79
    TI_POWER_DOMAIN_OF_xlate:无效的 dev_id:78
    无法查找 GPIO 引脚 GPIO@4201000_14:-22
    TI_POWER_DOMAIN_OF_xlate:无效 dev_id:79
    TI_POWER_DOMAIN_OF_xlate:无效的 dev_id:78
    无法查找 GPIO 引脚 GPIO@4201000_17:-22
    TI_POWER_DOMAIN_OF_xlate:无效 dev_id:79
    TI_POWER_DOMAIN_OF_xlate:无效的 dev_id:78
    无法查找 GPIO 引脚 GPIO@4201000_18:-22
    <################################################################################################################

    谢谢你。

    Louis Chuang

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

    尊敬的 Louis:

    我以前没有看到过这些错误、所以我可以进行探究。 如果您在星期二之前尚未收到回复、请对该主题执行 ping 操作。

    谢谢!

    Anshu

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

    尊敬的 Anshu:

    很抱歉我的迟到提醒、您是否找到了在 R5 SPL 下控制 GPIO 的方法?

    谢谢!

    庄路易

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

    尊敬的 Louis:

    由于错误、我认为 MCU 域不会在 SPL 阶段加电、因此 MCU_GPIO 不会开启也无法使用。

    此致、

    Anshu

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

    尊敬的 Anshu:

    我是否可以在 R5 SPL 级启用 MCU 域电源?   是否有任何文档供参考?  

    为了实现看门狗 WDI 切换、我必须在系统加电时控制 GPIO 的任何人。

    谢谢!

    Louis Chuang

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

    尊敬的 Louis:

    我们没有任何文档、但我不知道是否/如何实现。 我将在内部进行检查。 如果没有回复、请在星期五之前 Ping 此主题。

    谢谢!
    Anshu

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

    尊敬的 Anshu:

    MCU GPIO 或 SoC GPIO 均可用于切换看门狗 IC 的 WDI 引脚。

    有任何更新吗?

    谢谢!

    Louis Chuang

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

    尊敬的 Louis:

    为延迟深表歉意、但我无法确认能否在 SPL 为 MCU 域供电。

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

    尊敬的 Anshu:

    我还在等待解决方案,以切换 GPIO 用于 WDI 的看门狗 IC 由 AM62从加电到 Linux 启动..

    请支持此问题、谢谢。

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

    您好、该主题的专家不在办公室。 期待下周回复。

    此致、