你好,恩智浦社区、
我正在使用一台基于i.MX93的设备,它具有双重用途的控制台端口:它既用于编程/调试设备,又用作与网络设备(思科、Fortigate等)的出站控制台连接。
问题:在启动期间将控制台电缆连接到外部网络设备时,U-Boot SPL 和 ATF/BL31 启动信息会回显到外部设备的控制台。如果外部设备也在启动,它可以将这些字符解释为输入命令,这可能会损坏其引导加载程序或配置。
我成功静音的内容:我已经在我的defconfig中使用以下配置成功地对U-启动进行了静音:
CONFIG_SILENT_CONSOLE=y
CONFIG_SILENT_CONSOLE_UPDATE_ON_SET=y
CONFIG_SILENT_CONSOLE_UPDATE_ON_RELOC=y
CONFIG_SILENT_U_BOOT_ONLY=y
CONFIG_SYS_DEVICE_NULLDEV=y
CONFIG_AUTOBOOT_KEYED=y
CONFIG_AUTOBOOT_STOP_STR="\x03"
CONFIG_AUTOBOOT_DELAY_STR=""
我还尝试在 common/spl/spl.c 中添加以下内容,使 SPL 保持沉默:
void board_init_r(gd_t *dummy1, ulong dummy2)
{
/* 在 SPL 中强制静音控制台 */
gd->flags |= GD_FLG_SILENT;
/* ... 其余代码...*/
}
````
仍然输出的内容:
尽管做了这些更改,我仍然在控制台上看到 SPL 和 ATF 输出:
U-启动 SPL 2023.04+gf8a2983ec83+p0(2024 年 3 月 4 日-07:25:04 +0000)
SOC:0xa1009300
LC:0x2040010
PMIC:低驱动电压模式
DDR:3733MTS M33 准备就绪通知:BL31:v2.8(版本):lf-6.3-1.0.0-0-g8dbe28631
通知:BL31:版本:2024 年 1 月 22 日 17:57:56
问题
-对于 U-启动 SPL:i.MX93 的 U-Boot 2023.04 中是否存在 CONFIG_SPL_SILENT_CONSOLE?如果是这样,除了设置 gd->flags |= GD_FLG_SILENT 之外,还需要哪些其他配置?
- 对于 ATF/BL31:建议采用什么方法来静音 ATF NOTICE 消息?我是否应该在 LOG_LEVEL=0 的情况下重建 imx-atf?有任何 i.MX93 特定的注意事项吗?
-替代方法:是否有更好的方法可以防止早期启动阶段的输出影响联网设备?我考虑过在硬件寄存器级别禁用 UART TX,但不确定这是否是推荐的方法。
环境:
-SoC:i.mx93
-U-Boot 启动版本:2023.04+gf8a2983ec83+p0-ATF 版本:v2.8 (lf-6.6.3-1.0.0-0-0-g8dbe28631
)-编译系统:基于 Yocto
如能提供任何有关关闭这些早期启动阶段的指导,我将不胜感激!
谢谢!
尼特什
大家好
感谢您的反馈和支持。只要稍作调整,我就能使用上述方法正确静音 u-boot-spl、ATF 和 u-boot。
谢谢、
尼特什
Sprunki Retak e 是的,我之前在恩智浦系统上处理过这个确切的问题 —— 当你的启动日志让思科交换机感到困惑时,这很烦人!对于 SPL 来说,CONFIG_SPL_SILENT_CONSOLE 确实存在于最近的 U-启动 版本(包括 2023.04)中,但是你还需要确保在 SPL 主机初始化路径的早期就尊重它——有些板稍后会重新启用主机。对于 ATF/BL31,你说对了:在 ATF make 命令中使用 LOG_LEVEL=0 进行重建(例如,make plat=imx93 LOG_LEVEL=0)——那里没有 i.MX93 特定的捕获量,只要确保 Yocto 配方通过该标志即可。
你好
在 U-启动 中没有添加 CONFIG_SPL_SILENT_CONSOLE 的选项。
我的其他建议是添加变量:
"silent=1\0" \
并赋予它一个不同于"0" 的值:
您可以在此检查配置:
关于在硬件层面禁用 UART TX,这可能是可行的。 在 ATF 或 SPL 中配置键盘设置,在 U-Boot/Linux 启动之前保持 TX 处于非活动状态。
顺祝商祺!