gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 00:43:25 26 4
gpt4 key购买 nike

我正在为 Intel Edison 构建 Yocto 图像。

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

我主要担心的是 UART 端口上的“按任意键停止自动启动”功能。我需要这个端口来连接一个配件,这个配件可能会在主设备的启动过程中发送一些东西。

我该如何解决这个问题?是否有用于此的环境变量,或者我是否需要修改源代码?

提前致谢!

最佳答案

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

我正在开发的电路板在其 BSP 中有一个相当新的 u-boot。要禁用串行控制台,我必须执行以下操作:

  • 将以下定义添加到开发板的配置 header (位于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;
    }

例子:如果你正在寻找 Orange Pi 4B 的 board_early_init_f,它在/build/cache/sources/u-boot/v2020.10/board/rockchip/evb_rk3399/evb-rk3399.c

就是这样。希望这对其他人有帮助!


参见 also

关于linux - 如何在 u-boot 中禁用串行控制台(非内核),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34356844/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com