NXP MCU 技术论坛
直播中

douyin8

13年用户 1184经验值
私信 关注
[问答]

请问如何设置为Pad Control Register IOMUXC_SW_PAD_CTL_PAD_BOOT_MODE1?

我想将 imx8mm 中 Pad Control Register IOMUXC_SW_PAD_CTL_PAD_BOOT_MODE1 的任何值设置为。
在 i.MX8M Mini Applications Processor Reference Manual中,没有与IOMUXC_SW_PAD_CTL_PAD_BOOT_MODE1对应的 pad mux 寄存器。
所以,我不知道如何将其设置为以下示例。
-----
pinctrl_backlight: backlightgrp {
fsl,pins = <
MX8MM_IOMUXC_GPIO1_IO01_PWM1_OUT 0x06
>;
};
-----

我当然知道使用 devmem 的方法。
但是,能够在设备树中设置它感觉更美。

回帖(1)

张莹

2025-4-10 17:46:03

在i.MX8M Mini设备树中配置BOOT_MODE1引脚需要特殊处理,因为这些引脚在启动后可能默认被锁定。以下是分步解决方案:




  1. 确认引脚复用可行性



    • 检查参考手册第5章"System Boot"和第10章"IOMUX Controller"

    • BOOT_MODE1(SNVS_BOOT_MODE1)默认用于启动模式选择,可能存在复用限制




  2. 设备树配置方法


    &iomuxc {
    pinctrl_your_function: yourgrp {
        fsl,pins = <
            /* 使用隐藏的MUX定义(如果存在) */
            MX8MM_IOMUXC_SNVS_BOOT_MODE1_GPIO5_IO10 0x16
            /* 格式: */
        >;
    };
    };



  3. 关键注意事项



    • 查找头文件中的MUX定义(如dt-bindings/pinctrl/imx8mm-pinfunc.h)

    • 必须保持BOOT_CFG寄存器的BOOT_MODE1引脚配置与实际硬件一致

    • 可能需要先解锁SCU配置(通过SCU安全服务)




  4. 推荐替代方案



    # 使用fw_setenv临时修改(U-Boot环境变量)
    fw_setenv bootcmd "gpio set 5; run distro_bootcmd"



永久性配置建议:




  1. 在硬件设计阶段配置正确的启动模式引脚




  2. 使用其他可自由配置的GPIO引脚替代




  3. 如需复用必须联系NXP FAE确认芯片修订版本支持





  4. 验证方法


    # 在内核启动后检查寄存器状态
    sudo devmem2 0x303300A8 w  # IOMUXC_SW_PAD_CTL_PAD_BOOT_MODE1
    sudo devmem2 0x30330454 w  # BOOT_CFG寄存器



注意:直接重新配置BOOT_MODE引脚可能导致系统无法正常启动,建议在硬件设计阶段确定其功能,如需软件修改必须经过充分验证。对于生产环境,推荐使用专用GPIO引脚而非BOOT_MODE引脚进行功能扩展。

举报

更多回帖

发帖
×
20
完善资料,
赚取积分