当前位置:  开发笔记 > 运维 > 正文

如何在u-boot中禁用串行控制台(非内核)

如何解决《如何在u-boot中禁用串行控制台(非内核)》经验,为你挑选了1个好方法。

我正在为英特尔爱迪生构建Yocto图像.

图像的一个组件是u-boot,带有Edison特定的补丁.默认情况下,Edison的UART端口用于u-boot控制台.我想禁用此功能,但仅限于串行接口(u-boot也会侦听USB并且需要保留).

我主要担心的是UART端口上的" 按任意键停止自动引导 "功能.我需要此端口来连接可能在主设备启动过程中发送内容的附件.

我该如何处理这个问题?是否有环境变量,或者我是否需要修改源?

提前致谢!



1> Egor..:

我差不多一年后才回到这个问题,现在我已经找到了合适的解决方案.

我正在研究的主板在其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;
 }

而已.希望这有助于其他人!

推荐阅读
手机用户2502851955
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有