`Depends on` 和 `Selected by` 在冲突时如何在 Kconfig 中工作
How does `Depends on` and `Selected by` work in Kconfig when they conflict
为了了解 SPL(二级引导加载程序),我尝试了(在 u-boot v2021.10 中)
make ARCH=arm CROSS_COMPILE=aarch64-none-elf- vexpress_ca9x4_defconfig
和
make ARCH=arm CROSS_COMPILE=aarch64-none-elf- vexpress_ca9x4_defconfig
我搜索了SPL_OS_BOOT,我需要测试SPL猎鹰模式。但似乎默认情况下未为此板启用它。
所以首先我需要设置CONFIG_SPL=y,但是当我搜索SPL时,它显示了这个。
这里没看明白。
Depends on: ARM [=y] && ARCH_STM32MP [=n]
是否意味着我应该设置 ARCH_STM32MP=y
?
如果我加上一个Selected by
条件,它是否还满足上面的Depends on
条件?
我问它是因为 SPL 应该适用于许多板,但是 ARCH_STM32MP,——一个非常具体的架构条件——在 Depends on
列表中看起来很奇怪。
Kconfig 通常很难理解(我们在 U-Boot 中如何使用它的一些事情需要清理,因为它使事情更难理解)。通常最好直接查看 Kconfig 文件,以更好地理解事物。在这种情况下,如您所述,SPL_OS_BOOT
取决于 SPL
,如果我们查看 common/spl/Kconfig,我们会看到:
config SPL
bool
depends on SUPPORT_SPL
prompt "Enable SPL"
help
If you want to build SPL as well as the normal image, say Y.
这暗示了您面临的实际问题,vexpress_ca9x4 不支持 SPL。这就是您试图弄清楚的一长串事情所显示的内容,即设置 SUPPORT_SPL
的地方。
为了了解 SPL(二级引导加载程序),我尝试了(在 u-boot v2021.10 中)
make ARCH=arm CROSS_COMPILE=aarch64-none-elf- vexpress_ca9x4_defconfig
和
make ARCH=arm CROSS_COMPILE=aarch64-none-elf- vexpress_ca9x4_defconfig
我搜索了SPL_OS_BOOT,我需要测试SPL猎鹰模式。但似乎默认情况下未为此板启用它。
所以首先我需要设置CONFIG_SPL=y,但是当我搜索SPL时,它显示了这个。
这里没看明白。
Depends on: ARM [=y] && ARCH_STM32MP [=n]
是否意味着我应该设置 ARCH_STM32MP=y
?
如果我加上一个Selected by
条件,它是否还满足上面的Depends on
条件?
我问它是因为 SPL 应该适用于许多板,但是 ARCH_STM32MP,——一个非常具体的架构条件——在 Depends on
列表中看起来很奇怪。
Kconfig 通常很难理解(我们在 U-Boot 中如何使用它的一些事情需要清理,因为它使事情更难理解)。通常最好直接查看 Kconfig 文件,以更好地理解事物。在这种情况下,如您所述,SPL_OS_BOOT
取决于 SPL
,如果我们查看 common/spl/Kconfig,我们会看到:
config SPL
bool
depends on SUPPORT_SPL
prompt "Enable SPL"
help
If you want to build SPL as well as the normal image, say Y.
这暗示了您面临的实际问题,vexpress_ca9x4 不支持 SPL。这就是您试图弄清楚的一长串事情所显示的内容,即设置 SUPPORT_SPL
的地方。