我正在为英特尔爱迪生构建Yocto图像.
图像的一个组件是u-boot,带有Edison特定的补丁.默认情况下,Edison的UART端口用于u-boot控制台.我想禁用此功能,但仅限于串行接口(u-boot也会侦听USB并且需要保留).
我主要担心的是UART端口上的" 按任意键停止自动引导 "功能.我需要此端口来连接可能在主设备启动过程中发送内容的附件.
我该如何处理这个问题?是否有环境变量,或者我是否需要修改源?
提前致谢!
我差不多一年后才回到这个问题,现在我已经找到了合适的解决方案.
我正在研究的主板在其BSP中有一个相当新的u-boot.要禁用串行控制台,我必须执行以下操作:
将以下定义添加到板的配置头(位于include/configs/board.h中):
#define CONFIG_DISABLE_CONSOLE #define CONFIG_SILENT_CONSOLE #define CONFIG_SYS_DEVICE_NULLDEV
检查您的主板是否在同一文件中启用了early_init_f:
#define CONFIG_BOARD_EARLY_INIT_F 1
找到arch文件(类似于arch/x86/cpu/architecture/architecture.c)并将此调用添加到其early_init_f函数中.它实际上修改了board的全局数据变量以具有这些标志:
gd->flags |= (GD_FLG_SILENT | GD_FLG_DISABLE_CONSOLE);
我的主板没有,所以我不得不添加整个功能
int board_early_init_f(void) { gd->flags |= (GD_FLG_SILENT | GD_FLG_DISABLE_CONSOLE); return 0; }
而已.希望这有助于其他人!