微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我正在为英特尔Edison构buildYocto镜像。

其中一个映像的组件是使用特定于Edison的修补程序的u-boot。 认情况下,Edison的UART端口用于u-boot控制台。 我想禁用这个function,但只在串行接口上​​(u-boot也在USB上监听,需要保留)。

我主要关心的是UART端口上的“ 按任意键停止自动引导 ”function。 我需要此端口来连接可能在主设备启动过程中发送的附件。

我如何解决这个问题? 有没有一个环境variables,或者我需要修改源?

提前致谢!

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

我正在研究的这个板子在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函数中。 它实际上修改了电路板的全局数据变量以具有这些标志:

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; }

而已。 希望这可以帮助别人!

没有修改U-Boot的源代码(配置),没有办法做到这一点。

要在U-Boot中禁用串行控制台,需要重新配置U-Boot。 U-Boot主分支的文档: Readme.silent

根据那一个,你需要设置:

CONfig_SILENT_CONSOLE CONfig_SILENT_CONSOLE_UPDATE_ON_SET CONfig_SYS_DEVICE_NULLDEV

如果你只想让U-Boot保持沉, CONfig_SILENT_U_BOOT_ONLY也是需要的。

您可能还需要使用CONfig_SILENT_CONSOLE_UPDATE_ON_RELOC进行测试,并可能将silent 1添加到CONfig_EXTRA_ENV_SETTINGS 。

==更新==

有关可能的解决方法,请参阅以下选项:

CONfig_ZERO_BOOTDELAY_CHECK CONfig_AUTOBOOT_KEYED CONfig_AUTOBOOT_KEYED_CTRLC CONfig_AUTOBOOT_PROMPT CONfig_AUTOBOOT_DELAY_STR CONfig_AUTOBOOT_STOP_STR

这些选项至少会让你有一种需要魔法字符串来停止启动的方法。 这可能足以帮助你。 请参阅README.autoboot

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐