了解u-boot配置步骤

时间:2018-01-24 18:23:13

标签: configuration u-boot

我正在尝试了解u-boot配置过程。实际上我想在设备的配置文件中重新配置CONFIG_EXTRA_ENV_SETTINGS定义。我在include / configs中搜索该文件。但我不知道,如何u-boot确定在编译过程中使用哪个配置文件?

感谢您的回答。

2 个答案:

答案 0 :(得分:2)

  

如何u-boot确定在编译过程中使用哪个配置文件?

U-Boot配置是一个不断发展的主题,例如: Kconfig从v2014.10-rc1开始替换了先前的配置方案 你忽略了你正在使用什么版本的U-Boot 以下内容适用于2017.09版本。

电路板的配置头文件由 Kconfig 文件中定义的配置变量指定。
对于Beaglebone Black, / board / ti / am335x / Kconfig 指定:

config SYS_CONFIG_NAME
    default "am335x_evm"

表示 include / configs / am335x_evm.h 用作电路板配置头文件。

doc / README.kconfig

中记录了这一点
When adding a new board, the following steps are generally needed:

 [1] Add a header file include/configs/<target>.h
 [2] Make sure to define necessary CONFIG_SYS_* in Kconfig:
       Define CONFIG_SYS_CPU="cpu" to compile arch/<arch>/cpu/<cpu>
       Define CONFIG_SYS_SOC="soc" to compile arch/<arch>/cpu/<cpu>/<soc>
       Define CONFIG_SYS_VENDOR="vendor" to compile board/<vendor>/common/*
         and board/<vendor>/<board>/*
       Define CONFIG_SYS_BOARD="board" to compile board/<board>/*
         (or board/<vendor>/<board>/* if CONFIG_SYS_VENDOR is defined)
       Define CONFIG_SYS_CONFIG_NAME="target" to include
         include/configs/<target>.h
 [3] Add a new entry to the board select menu in Kconfig.
     The board select menu is located in arch/<arch>/Kconfig or
     arch/<arch>/*/Kconfig.
 [4] Add a MAINTAINERS file
     It is generally placed at board/<board>/MAINTAINERS or
     board/<vendor>/<board>/MAINTAINERS
 [5] Add configs/<target>_defconfig

MAINTAINERS 文件显然只是引用defconfig文件和配置头文件的文档。

答案 1 :(得分:0)

感谢您的回复。 我做了以下步骤以确认您的回复。顺便说一句,我和beaglebone black一起工作。

  1. 我在am335x_evm.h中添加了警告行,例如#warning CONFIG_SPL_BUILD IS NOT DEFINED!

  2. 我更改了 boards / ti / am335x 中的 MAINTAINERS 文件。 我将 MAINTAINERS 中的 include / configs / am335x_evm.h 行更改为 include / configs / pico-imx7d_spl_defconfig 仅用于测试。

  3. 我执行了make ARCH=arm am335x_boneblack_defconfig

  4. 最后我执行了make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j4

  5. 结果:我在编译日志中看到了warning: #warning CONFIG_SPL_BUILD IS NOT DEFINED!。我还在编译后检查了 include / config.h 。在此标题中,仍使用 am335x_evm.h 。所以我的答案错了或你的答案错了。你能帮我提供更多信息吗?。@ sawdust