Message ID | 1410079409-28450-10-git-send-email-yamada.m@jp.panasonic.com |
---|---|
State | Superseded |
Headers | show |
On 09/07/2014 02:43 AM, Masahiro Yamada wrote: > This commit moves: > CONFIG_OF_CONTROL > CONFIG_OF_SEPARATE > CONFIG_OF_EMBED > CONFIG_OF_HOSTFILE > > Because these options are currently not supported for SPL, > the "Device Tree Control" menu does not appear in the SPL > configuration. > > Note: > zynq-common.h should be adjusted so as not to change the > default value of CONFIG_SPL_FAT_LOAD_PAYLOAD_NAME. I don't believe this is the correct approach; CONFIG_OF_CONTROL isn't a user-configurable option, and hence shouldn't show up in *_defconfig. "select OF_CONTROL" in a Kconfig file probably makes sense though.
Hi Stephen, 2014-09-09 0:04 GMT+09:00 Stephen Warren <swarren@wwwdotorg.org>: > I don't believe this is the correct approach; CONFIG_OF_CONTROL isn't a > user-configurable option, and hence shouldn't show up in *_defconfig. > "select OF_CONTROL" in a Kconfig file probably makes sense though. I think it depends on the board (SoC). In my understanding, Zynq boards should work with/without Device Tree control. (Moreover, Zynq boards work with/without SPL) At least as for Zynq, CONFIG_OF_CONTROL ( and CONFIG_SPL too) is a user-configurable option. (Michal, please correct me if I am wrong.) I am not familiar with Tegra SoCs, but do Tegra boards always Device Tree? ( and only work with SPL ?) If so, config TEGRA select SPL select OF_CONTROL looks better?
On 09/08/2014 09:57 AM, Masahiro YAMADA wrote: > Hi Stephen, > > > > 2014-09-09 0:04 GMT+09:00 Stephen Warren <swarren@wwwdotorg.org>: > >> I don't believe this is the correct approach; CONFIG_OF_CONTROL isn't a >> user-configurable option, and hence shouldn't show up in *_defconfig. >> "select OF_CONTROL" in a Kconfig file probably makes sense though. > > > I think it depends on the board (SoC). > > In my understanding, Zynq boards should work with/without Device Tree control. > (Moreover, Zynq boards work with/without SPL) > > At least as for Zynq, > CONFIG_OF_CONTROL ( and CONFIG_SPL too) is a user-configurable option. > > (Michal, please correct me if I am wrong.) > > > I am not familiar with Tegra SoCs, but > do Tegra boards always Device Tree? ( and only work with SPL ?) > > If so, > > config TEGRA > select SPL > select OF_CONTROL > > looks better? That looks correct for Tegra.
Hi Stephen, 2014-09-09 0:58 GMT+09:00 Stephen Warren <swarren@wwwdotorg.org>: > On 09/08/2014 09:57 AM, Masahiro YAMADA wrote: >> >> Hi Stephen, >> >> >> >> 2014-09-09 0:04 GMT+09:00 Stephen Warren <swarren@wwwdotorg.org>: >> >>> I don't believe this is the correct approach; CONFIG_OF_CONTROL isn't a >>> user-configurable option, and hence shouldn't show up in *_defconfig. >>> "select OF_CONTROL" in a Kconfig file probably makes sense though. >> >> >> >> I think it depends on the board (SoC). >> >> In my understanding, Zynq boards should work with/without Device Tree >> control. >> (Moreover, Zynq boards work with/without SPL) >> >> At least as for Zynq, >> CONFIG_OF_CONTROL ( and CONFIG_SPL too) is a user-configurable option. >> >> (Michal, please correct me if I am wrong.) >> >> >> I am not familiar with Tegra SoCs, but >> do Tegra boards always Device Tree? ( and only work with SPL ?) >> >> If so, >> >> config TEGRA >> select SPL >> select OF_CONTROL >> >> looks better? > > > That looks correct for Tegra. > OK. I will send v2. CONFIG_OF_CONTROL in tegra defconfigs will go away. (BTW, I forgot to mention a famous board; beaglebone black. am335_boneblack_defconfig disables CONFIG_OF_CONTROL, whereas am335_boneblack_vboot_defconfig enables it. )
Hi Samsung developers, Simon Glass, 2014-09-09 1:10 GMT+09:00 Masahiro YAMADA <yamada.m@jp.panasonic.com>: > Hi Stephen, > > > 2014-09-09 0:58 GMT+09:00 Stephen Warren <swarren@wwwdotorg.org>: >> On 09/08/2014 09:57 AM, Masahiro YAMADA wrote: >>> >>> Hi Stephen, >>> >>> >>> >>> 2014-09-09 0:04 GMT+09:00 Stephen Warren <swarren@wwwdotorg.org>: >>> >>>> I don't believe this is the correct approach; CONFIG_OF_CONTROL isn't a >>>> user-configurable option, and hence shouldn't show up in *_defconfig. >>>> "select OF_CONTROL" in a Kconfig file probably makes sense though. >>> >>> >>> >>> I think it depends on the board (SoC). >>> >>> In my understanding, Zynq boards should work with/without Device Tree >>> control. >>> (Moreover, Zynq boards work with/without SPL) >>> >>> At least as for Zynq, >>> CONFIG_OF_CONTROL ( and CONFIG_SPL too) is a user-configurable option. >>> >>> (Michal, please correct me if I am wrong.) >>> >>> >>> I am not familiar with Tegra SoCs, but >>> do Tegra boards always Device Tree? ( and only work with SPL ?) >>> >>> If so, >>> >>> config TEGRA >>> select SPL >>> select OF_CONTROL >>> >>> looks better? >> >> >> That looks correct for Tegra. >> > > OK. I will send v2. > CONFIG_OF_CONTROL in tegra defconfigs will go away. > > > (BTW, I forgot to mention a famous board; beaglebone black. > > am335_boneblack_defconfig disables CONFIG_OF_CONTROL, > whereas am335_boneblack_vboot_defconfig enables it. ) > Before posting v2 of this series, please let me ask the same question on Exynos and Sandbox Do Exynos boards always need Device Tree to run U-Boot? (that is, CONFIG_OF_CONTROL must be "select"ed.) or Do they work with/without Device Tree? (that is, users can enable/disable via "make menuconfig" or friends.) What about Sandbox? Best Regards Masahiro Yamada
Hi Masahiro, On 07.09.2014 10:43, Masahiro Yamada wrote: > This commit moves: > CONFIG_OF_CONTROL > CONFIG_OF_SEPARATE > CONFIG_OF_EMBED > CONFIG_OF_HOSTFILE > > Because these options are currently not supported for SPL, > the "Device Tree Control" menu does not appear in the SPL > configuration. > > Note: > zynq-common.h should be adjusted so as not to change the > default value of CONFIG_SPL_FAT_LOAD_PAYLOAD_NAME. > > Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com> > Cc: Simon Glass <sjg@chromium.org> > Cc: Stephen Warren <swarren@nvidia.com> > Cc: Minkyu Kang <mk7.kang@samsung.com> > Cc: Michal Simek <michal.simek@xilinx.com> > --- [...] > diff --git a/dts/Kconfig b/dts/Kconfig > new file mode 100644 > index 0000000..98b2357 > --- /dev/null > +++ b/dts/Kconfig > @@ -0,0 +1,46 @@ > +# > +# Device Tree Control > +# > +# TODO: > +# This feature is not currently supported for SPL, > +# but this restriction should be removed in the future. > + > +menu "Device Tree Control" > + depends on !SPL_BUILD > + depends on ARM || MICROBLAZE || SANDBOX || X86 I suggest to use boolean symbols HAS_* or SUPPORTS_* like the kernel does. For example: config SUPPORTS_OF_CONTROL bool menu "Device Tree Control" depends on !SPL_BUILD depends on SUPPORTS_OF_CONTROL arch/Kconfig: config ARM bool "ARM architecture" select SUPPORTS_OF_CONTROL > + > +config OF_CONTROL > + bool "Run-time configuration via Device Tree" > + help > + This feature provides for run-time configuration of U-Boot > + via a flattened device tree. > + > +choice > + prompt "Provider of DTB for DT control" > + depends on OF_CONTROL > + default OF_HOSTFILE if SANDBOX > + default OF_SEPARATE > + > +config OF_SEPARATE > + bool "Separate DTB for DT control" > + help > + If this option is enabled, the device tree will be built and > + placed as a separate u-boot.dtb file alongside the U-Boot image. > + > +config OF_EMBED > + bool "Embedded DTB for DT control" > + help > + If this option is enabled, the device tree will be picked up and > + built into the U-Boot image. > + > +config OF_HOSTFILE > + bool "Host filed DTB for DT control" > + depends on SANDBOX > + help > + If this option is enabled, DTB will be read from a file on startup. > + This is only useful for Sandbox. Use the -d flag to U-Boot to > + specify the file to read. > + > +endchoice > + > +endmenu >
Hi Daniel, On Mon, 08 Sep 2014 21:23:05 +0200 Daniel Schwierzeck <daniel.schwierzeck@gmail.com> wrote: > > > diff --git a/dts/Kconfig b/dts/Kconfig > > new file mode 100644 > > index 0000000..98b2357 > > --- /dev/null > > +++ b/dts/Kconfig > > @@ -0,0 +1,46 @@ > > +# > > +# Device Tree Control > > +# > > +# TODO: > > +# This feature is not currently supported for SPL, > > +# but this restriction should be removed in the future. > > + > > +menu "Device Tree Control" > > + depends on !SPL_BUILD > > + depends on ARM || MICROBLAZE || SANDBOX || X86 > > I suggest to use boolean symbols HAS_* or SUPPORTS_* like the kernel > does. For example: > > config SUPPORTS_OF_CONTROL > bool > > menu "Device Tree Control" > depends on !SPL_BUILD > depends on SUPPORTS_OF_CONTROL > > > arch/Kconfig: > config ARM > bool "ARM architecture" > select SUPPORTS_OF_CONTROL > Good idea, altough HAVE_* seems more common: In Linux 3.17-rc4, $ find . -name 'Kconfig*' | xargs grep HAVE_ | wc 1332 4394 71649 $ find . -name 'Kconfig*' | xargs grep HAS_ | wc 760 2744 40496 $ find . -name 'Kconfig*' | xargs grep SUPPORTS_ | wc 487 1571 26996 Besides, Documentation/kbuild/kconfig-language.txt suggests to do so. ---------------------------8<--------------------------- Adding common features and make the usage configurable ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ It is a common idiom to implement a feature/functionality that are relevant for some architectures but not all. The recommended way to do so is to use a config variable named HAVE_* that is defined in a common Kconfig file and selected by the relevant architectures. An example is the generic IOMAP functionality. We would in lib/Kconfig see: # Generic IOMAP is used to ... config HAVE_GENERIC_IOMAP config GENERIC_IOMAP depends on HAVE_GENERIC_IOMAP && FOO And in lib/Makefile we would see: obj-$(CONFIG_GENERIC_IOMAP) += iomap.o For each architecture using the generic IOMAP functionality we would see: config X86 select ... select HAVE_GENERIC_IOMAP select ... Note: we use the existing config option and avoid creating a new config variable to select HAVE_GENERIC_IOMAP. Note: the use of the internal config variable HAVE_GENERIC_IOMAP, it is introduced to overcome the limitation of select which will force a config option to 'y' no matter the dependencies. The dependencies are moved to the symbol GENERIC_IOMAP and we avoid the situation where select forces a symbol equals to 'y'. ---------------------------->8---------------------------- I was also thinking to add HAVE_SPL_SUPPORT. config SPL bool "Enable SPL" depends on HAVE_SPL_SUPPORT Best Regards Masahiro Yamada
On 09/08/2014 05:57 PM, Masahiro YAMADA wrote: > Hi Stephen, > > > > 2014-09-09 0:04 GMT+09:00 Stephen Warren <swarren@wwwdotorg.org>: > >> I don't believe this is the correct approach; CONFIG_OF_CONTROL isn't a >> user-configurable option, and hence shouldn't show up in *_defconfig. >> "select OF_CONTROL" in a Kconfig file probably makes sense though. > > > I think it depends on the board (SoC). > > In my understanding, Zynq boards should work with/without Device Tree control. > (Moreover, Zynq boards work with/without SPL) > > At least as for Zynq, > CONFIG_OF_CONTROL ( and CONFIG_SPL too) is a user-configurable option. > > (Michal, please correct me if I am wrong.) I don't want to restrict people with thing which they want to do that's why both options are just there. Thanks, Michal
diff --git a/Kconfig b/Kconfig index fc5e7cd..e0c8992 100644 --- a/Kconfig +++ b/Kconfig @@ -106,6 +106,8 @@ source "arch/Kconfig" source "common/Kconfig" +source "dts/Kconfig" + source "net/Kconfig" source "drivers/Kconfig" diff --git a/configs/am335x_boneblack_vboot_defconfig b/configs/am335x_boneblack_vboot_defconfig index 00317c4..af7ceca 100644 --- a/configs/am335x_boneblack_vboot_defconfig +++ b/configs/am335x_boneblack_vboot_defconfig @@ -2,3 +2,4 @@ CONFIG_SPL=y CONFIG_SYS_EXTRA_OPTIONS="SERIAL1,CONS_INDEX=1,EMMC_BOOT,ENABLE_VBOOT" +S:CONFIG_ARM=y +S:CONFIG_TARGET_AM335X_EVM=y +CONFIG_OF_CONTROL=y diff --git a/configs/arndale_defconfig b/configs/arndale_defconfig index 7ea5c0d..737bb3e 100644 --- a/configs/arndale_defconfig +++ b/configs/arndale_defconfig @@ -2,3 +2,4 @@ CONFIG_SPL=y +S:CONFIG_ARM=y +S:CONFIG_ARCH_EXYNOS=y +S:CONFIG_TARGET_ARNDALE=y +CONFIG_OF_CONTROL=y diff --git a/configs/beaver_defconfig b/configs/beaver_defconfig index 7c9d94b..9427faf 100644 --- a/configs/beaver_defconfig +++ b/configs/beaver_defconfig @@ -2,3 +2,4 @@ +S:CONFIG_TEGRA=y +S:CONFIG_TEGRA30=y +S:CONFIG_TARGET_BEAVER=y +CONFIG_OF_CONTROL=y diff --git a/configs/cardhu_defconfig b/configs/cardhu_defconfig index bb042b4..232a778 100644 --- a/configs/cardhu_defconfig +++ b/configs/cardhu_defconfig @@ -2,3 +2,4 @@ +S:CONFIG_TEGRA=y +S:CONFIG_TEGRA30=y +S:CONFIG_TARGET_CARDHU=y +CONFIG_OF_CONTROL=y diff --git a/configs/colibri_t20_iris_defconfig b/configs/colibri_t20_iris_defconfig index b2a21e1..094fb9f 100644 --- a/configs/colibri_t20_iris_defconfig +++ b/configs/colibri_t20_iris_defconfig @@ -2,3 +2,4 @@ +S:CONFIG_TEGRA=y +S:CONFIG_TEGRA20=y +S:CONFIG_TARGET_COLIBRI_T20_IRIS=y +CONFIG_OF_CONTROL=y diff --git a/configs/colibri_t30_defconfig b/configs/colibri_t30_defconfig index abb41f3..5f35fa1 100644 --- a/configs/colibri_t30_defconfig +++ b/configs/colibri_t30_defconfig @@ -2,3 +2,4 @@ +S:CONFIG_TEGRA=y +S:CONFIG_TEGRA30=y +S:CONFIG_TARGET_COLIBRI_T30=y +CONFIG_OF_CONTROL=y diff --git a/configs/coreboot-x86_defconfig b/configs/coreboot-x86_defconfig index a06c527..3cc034a 100644 --- a/configs/coreboot-x86_defconfig +++ b/configs/coreboot-x86_defconfig @@ -1,3 +1,4 @@ CONFIG_SYS_EXTRA_OPTIONS="SYS_TEXT_BASE=0x01110000" CONFIG_X86=y CONFIG_TARGET_COREBOOT=y +CONFIG_OF_CONTROL=y diff --git a/configs/dalmore_defconfig b/configs/dalmore_defconfig index 70677aa..ca6b664 100644 --- a/configs/dalmore_defconfig +++ b/configs/dalmore_defconfig @@ -2,3 +2,4 @@ +S:CONFIG_TEGRA=y +S:CONFIG_TEGRA114=y +S:CONFIG_TARGET_DALMORE=y +CONFIG_OF_CONTROL=y diff --git a/configs/harmony_defconfig b/configs/harmony_defconfig index a52231b..d29e8d2 100644 --- a/configs/harmony_defconfig +++ b/configs/harmony_defconfig @@ -2,3 +2,4 @@ +S:CONFIG_TEGRA=y +S:CONFIG_TEGRA20=y +S:CONFIG_TARGET_HARMONY=y +CONFIG_OF_CONTROL=y diff --git a/configs/jetson-tk1_defconfig b/configs/jetson-tk1_defconfig index 00eac92..1c385a6 100644 --- a/configs/jetson-tk1_defconfig +++ b/configs/jetson-tk1_defconfig @@ -2,3 +2,4 @@ +S:CONFIG_TEGRA=y +S:CONFIG_TEGRA124=y +S:CONFIG_TARGET_JETSON_TK1=y +CONFIG_OF_CONTROL=y diff --git a/configs/medcom-wide_defconfig b/configs/medcom-wide_defconfig index e9a3930..5674e9b 100644 --- a/configs/medcom-wide_defconfig +++ b/configs/medcom-wide_defconfig @@ -2,3 +2,4 @@ +S:CONFIG_TEGRA=y +S:CONFIG_TEGRA20=y +S:CONFIG_TARGET_MEDCOM_WIDE=y +CONFIG_OF_CONTROL=y diff --git a/configs/microblaze-generic_defconfig b/configs/microblaze-generic_defconfig index 7f23786..1dc7441 100644 --- a/configs/microblaze-generic_defconfig +++ b/configs/microblaze-generic_defconfig @@ -1,3 +1,5 @@ CONFIG_SPL=y +S:CONFIG_MICROBLAZE=y +S:CONFIG_TARGET_MICROBLAZE_GENERIC=y +CONFIG_OF_CONTROL=y +CONFIG_OF_EMBED=y diff --git a/configs/origen_defconfig b/configs/origen_defconfig index aa92381..1d712e8 100644 --- a/configs/origen_defconfig +++ b/configs/origen_defconfig @@ -2,3 +2,4 @@ CONFIG_SPL=y +S:CONFIG_ARM=y +S:CONFIG_ARCH_EXYNOS=y +S:CONFIG_TARGET_ORIGEN=y +CONFIG_OF_CONTROL=y diff --git a/configs/paz00_defconfig b/configs/paz00_defconfig index 05974eb..a682f4c 100644 --- a/configs/paz00_defconfig +++ b/configs/paz00_defconfig @@ -2,3 +2,4 @@ +S:CONFIG_TEGRA=y +S:CONFIG_TEGRA20=y +S:CONFIG_TARGET_PAZ00=y +CONFIG_OF_CONTROL=y diff --git a/configs/peach-pit_defconfig b/configs/peach-pit_defconfig index 797d5e0..9f3530a 100644 --- a/configs/peach-pit_defconfig +++ b/configs/peach-pit_defconfig @@ -2,3 +2,4 @@ CONFIG_SPL=y +S:CONFIG_ARM=y +S:CONFIG_ARCH_EXYNOS=y +S:CONFIG_TARGET_PEACH_PIT=y +CONFIG_OF_CONTROL=y diff --git a/configs/plutux_defconfig b/configs/plutux_defconfig index 60e80ff..03374fe 100644 --- a/configs/plutux_defconfig +++ b/configs/plutux_defconfig @@ -2,3 +2,4 @@ +S:CONFIG_TEGRA=y +S:CONFIG_TEGRA20=y +S:CONFIG_TARGET_PLUTUX=y +CONFIG_OF_CONTROL=y diff --git a/configs/s5pc210_universal_defconfig b/configs/s5pc210_universal_defconfig index a9a3446..0a3ad0d 100644 --- a/configs/s5pc210_universal_defconfig +++ b/configs/s5pc210_universal_defconfig @@ -1,3 +1,4 @@ CONFIG_ARM=y CONFIG_ARCH_EXYNOS=y CONFIG_TARGET_S5PC210_UNIVERSAL=y +CONFIG_OF_CONTROL=y diff --git a/configs/sandbox_defconfig b/configs/sandbox_defconfig index e69de29..dd84281 100644 --- a/configs/sandbox_defconfig +++ b/configs/sandbox_defconfig @@ -0,0 +1 @@ +CONFIG_OF_CONTROL=y diff --git a/configs/seaboard_defconfig b/configs/seaboard_defconfig index 516e760..9e2028b 100644 --- a/configs/seaboard_defconfig +++ b/configs/seaboard_defconfig @@ -2,3 +2,4 @@ +S:CONFIG_TEGRA=y +S:CONFIG_TEGRA20=y +S:CONFIG_TARGET_SEABOARD=y +CONFIG_OF_CONTROL=y diff --git a/configs/smdk5250_defconfig b/configs/smdk5250_defconfig index 465a75a..5cdfa63 100644 --- a/configs/smdk5250_defconfig +++ b/configs/smdk5250_defconfig @@ -2,3 +2,4 @@ CONFIG_SPL=y +S:CONFIG_ARM=y +S:CONFIG_ARCH_EXYNOS=y +S:CONFIG_TARGET_SMDK5250=y +CONFIG_OF_CONTROL=y diff --git a/configs/smdk5420_defconfig b/configs/smdk5420_defconfig index 9dc43f2..4619c62 100644 --- a/configs/smdk5420_defconfig +++ b/configs/smdk5420_defconfig @@ -2,3 +2,4 @@ CONFIG_SPL=y +S:CONFIG_ARM=y +S:CONFIG_ARCH_EXYNOS=y +S:CONFIG_TARGET_SMDK5420=y +CONFIG_OF_CONTROL=y diff --git a/configs/snow_defconfig b/configs/snow_defconfig index 2d59046..c201c84 100644 --- a/configs/snow_defconfig +++ b/configs/snow_defconfig @@ -2,3 +2,4 @@ CONFIG_SPL=y +S:CONFIG_ARM=y +S:CONFIG_ARCH_EXYNOS=y +S:CONFIG_TARGET_SNOW=y +CONFIG_OF_CONTROL=y diff --git a/configs/tec-ng_defconfig b/configs/tec-ng_defconfig index e4a31cc..501d449 100644 --- a/configs/tec-ng_defconfig +++ b/configs/tec-ng_defconfig @@ -2,3 +2,4 @@ +S:CONFIG_TEGRA=y +S:CONFIG_TEGRA30=y +S:CONFIG_TARGET_TEC_NG=y +CONFIG_OF_CONTROL=y diff --git a/configs/tec_defconfig b/configs/tec_defconfig index 62a9542..fe743f9 100644 --- a/configs/tec_defconfig +++ b/configs/tec_defconfig @@ -2,3 +2,4 @@ +S:CONFIG_TEGRA=y +S:CONFIG_TEGRA20=y +S:CONFIG_TARGET_TEC=y +CONFIG_OF_CONTROL=y diff --git a/configs/trats2_defconfig b/configs/trats2_defconfig index fa82724..666011c 100644 --- a/configs/trats2_defconfig +++ b/configs/trats2_defconfig @@ -1,3 +1,4 @@ CONFIG_ARM=y CONFIG_ARCH_EXYNOS=y CONFIG_TARGET_TRATS2=y +CONFIG_OF_CONTROL=y diff --git a/configs/trats_defconfig b/configs/trats_defconfig index f888a51..6ef4b33 100644 --- a/configs/trats_defconfig +++ b/configs/trats_defconfig @@ -1,3 +1,4 @@ CONFIG_ARM=y CONFIG_ARCH_EXYNOS=y CONFIG_TARGET_TRATS=y +CONFIG_OF_CONTROL=y diff --git a/configs/trimslice_defconfig b/configs/trimslice_defconfig index 94f23e3..8b1a13e 100644 --- a/configs/trimslice_defconfig +++ b/configs/trimslice_defconfig @@ -2,3 +2,4 @@ +S:CONFIG_TEGRA=y +S:CONFIG_TEGRA20=y +S:CONFIG_TARGET_TRIMSLICE=y +CONFIG_OF_CONTROL=y diff --git a/configs/venice2_defconfig b/configs/venice2_defconfig index dfc5407..3897862 100644 --- a/configs/venice2_defconfig +++ b/configs/venice2_defconfig @@ -2,3 +2,4 @@ +S:CONFIG_TEGRA=y +S:CONFIG_TEGRA124=y +S:CONFIG_TARGET_VENICE2=y +CONFIG_OF_CONTROL=y diff --git a/configs/ventana_defconfig b/configs/ventana_defconfig index 845e241..7398d11 100644 --- a/configs/ventana_defconfig +++ b/configs/ventana_defconfig @@ -2,3 +2,4 @@ +S:CONFIG_TEGRA=y +S:CONFIG_TEGRA20=y +S:CONFIG_TARGET_VENTANA=y +CONFIG_OF_CONTROL=y diff --git a/configs/whistler_defconfig b/configs/whistler_defconfig index 8c07c18..a275005 100644 --- a/configs/whistler_defconfig +++ b/configs/whistler_defconfig @@ -2,3 +2,4 @@ +S:CONFIG_TEGRA=y +S:CONFIG_TEGRA20=y +S:CONFIG_TARGET_WHISTLER=y +CONFIG_OF_CONTROL=y diff --git a/configs/zynq_microzed_defconfig b/configs/zynq_microzed_defconfig index 3aedb35..9767863 100644 --- a/configs/zynq_microzed_defconfig +++ b/configs/zynq_microzed_defconfig @@ -2,3 +2,4 @@ CONFIG_SPL=y +S:CONFIG_ARM=y +S:CONFIG_ZYNQ=y +S:CONFIG_TARGET_ZYNQ_MICROZED=y +CONFIG_OF_CONTROL=y diff --git a/configs/zynq_zc70x_defconfig b/configs/zynq_zc70x_defconfig index 04c8def..d303f97 100644 --- a/configs/zynq_zc70x_defconfig +++ b/configs/zynq_zc70x_defconfig @@ -2,3 +2,4 @@ CONFIG_SPL=y +S:CONFIG_ARM=y +S:CONFIG_ZYNQ=y +S:CONFIG_TARGET_ZYNQ_ZC70X=y +CONFIG_OF_CONTROL=y diff --git a/configs/zynq_zc770_xm010_defconfig b/configs/zynq_zc770_xm010_defconfig index 1178b40..4e6660f 100644 --- a/configs/zynq_zc770_xm010_defconfig +++ b/configs/zynq_zc770_xm010_defconfig @@ -3,3 +3,4 @@ CONFIG_SYS_EXTRA_OPTIONS="ZC770_XM010" +S:CONFIG_ARM=y +S:CONFIG_ZYNQ=y +S:CONFIG_TARGET_ZYNQ_ZC770=y +CONFIG_OF_CONTROL=y diff --git a/configs/zynq_zc770_xm012_defconfig b/configs/zynq_zc770_xm012_defconfig index 52c2121..16d62e6 100644 --- a/configs/zynq_zc770_xm012_defconfig +++ b/configs/zynq_zc770_xm012_defconfig @@ -3,3 +3,4 @@ CONFIG_SYS_EXTRA_OPTIONS="ZC770_XM012" +S:CONFIG_ARM=y +S:CONFIG_ZYNQ=y +S:CONFIG_TARGET_ZYNQ_ZC770=y +CONFIG_OF_CONTROL=y diff --git a/configs/zynq_zc770_xm013_defconfig b/configs/zynq_zc770_xm013_defconfig index 836809a..7343a64 100644 --- a/configs/zynq_zc770_xm013_defconfig +++ b/configs/zynq_zc770_xm013_defconfig @@ -3,3 +3,4 @@ CONFIG_SYS_EXTRA_OPTIONS="ZC770_XM013" +S:CONFIG_ARM=y +S:CONFIG_ZYNQ=y +S:CONFIG_TARGET_ZYNQ_ZC770=y +CONFIG_OF_CONTROL=y diff --git a/configs/zynq_zed_defconfig b/configs/zynq_zed_defconfig index 2337906..38d5fa6 100644 --- a/configs/zynq_zed_defconfig +++ b/configs/zynq_zed_defconfig @@ -2,3 +2,4 @@ CONFIG_SPL=y +S:CONFIG_ARM=y +S:CONFIG_ZYNQ=y +S:CONFIG_TARGET_ZYNQ_ZED=y +CONFIG_OF_CONTROL=y diff --git a/dts/Kconfig b/dts/Kconfig new file mode 100644 index 0000000..98b2357 --- /dev/null +++ b/dts/Kconfig @@ -0,0 +1,46 @@ +# +# Device Tree Control +# +# TODO: +# This feature is not currently supported for SPL, +# but this restriction should be removed in the future. + +menu "Device Tree Control" + depends on !SPL_BUILD + depends on ARM || MICROBLAZE || SANDBOX || X86 + +config OF_CONTROL + bool "Run-time configuration via Device Tree" + help + This feature provides for run-time configuration of U-Boot + via a flattened device tree. + +choice + prompt "Provider of DTB for DT control" + depends on OF_CONTROL + default OF_HOSTFILE if SANDBOX + default OF_SEPARATE + +config OF_SEPARATE + bool "Separate DTB for DT control" + help + If this option is enabled, the device tree will be built and + placed as a separate u-boot.dtb file alongside the U-Boot image. + +config OF_EMBED + bool "Embedded DTB for DT control" + help + If this option is enabled, the device tree will be picked up and + built into the U-Boot image. + +config OF_HOSTFILE + bool "Host filed DTB for DT control" + depends on SANDBOX + help + If this option is enabled, DTB will be read from a file on startup. + This is only useful for Sandbox. Use the -d flag to U-Boot to + specify the file to read. + +endchoice + +endmenu diff --git a/include/configs/am335x_evm.h b/include/configs/am335x_evm.h index df1a6fc..47a173f 100644 --- a/include/configs/am335x_evm.h +++ b/include/configs/am335x_evm.h @@ -23,8 +23,6 @@ # define CONFIG_TIMESTAMP # define CONFIG_LZO # ifdef CONFIG_ENABLE_VBOOT -# define CONFIG_OF_CONTROL -# define CONFIG_OF_SEPARATE # define CONFIG_DEFAULT_DEVICE_TREE am335x-boneblack # define CONFIG_FIT_SIGNATURE # define CONFIG_RSA diff --git a/include/configs/arndale.h b/include/configs/arndale.h index 75f9933..7f06907 100644 --- a/include/configs/arndale.h +++ b/include/configs/arndale.h @@ -22,8 +22,6 @@ #define CONFIG_DISPLAY_CPUINFO #define CONFIG_DISPLAY_BOARDINFO -#define CONFIG_OF_CONTROL -#define CONFIG_OF_SEPARATE /* Allow tracing to be enabled */ #define CONFIG_TRACE diff --git a/include/configs/beaver.h b/include/configs/beaver.h index d8ed717..4c7cf5f 100644 --- a/include/configs/beaver.h +++ b/include/configs/beaver.h @@ -26,8 +26,6 @@ /* Enable fdt support for Beaver. Flash the image in u-boot-dtb.bin */ #define CONFIG_DEFAULT_DEVICE_TREE tegra30-beaver -#define CONFIG_OF_CONTROL -#define CONFIG_OF_SEPARATE /* High-level configuration options */ #define V_PROMPT "Tegra30 (Beaver) # " diff --git a/include/configs/cardhu.h b/include/configs/cardhu.h index 59f429c..1616a54 100644 --- a/include/configs/cardhu.h +++ b/include/configs/cardhu.h @@ -26,8 +26,6 @@ /* Enable fdt support for Cardhu. Flash the image in u-boot-dtb.bin */ #define CONFIG_DEFAULT_DEVICE_TREE tegra30-cardhu -#define CONFIG_OF_CONTROL -#define CONFIG_OF_SEPARATE /* High-level configuration options */ #define V_PROMPT "Tegra30 (Cardhu) # " diff --git a/include/configs/colibri_t20_iris.h b/include/configs/colibri_t20_iris.h index 6f9e08c..3ce1f9b 100644 --- a/include/configs/colibri_t20_iris.h +++ b/include/configs/colibri_t20_iris.h @@ -11,8 +11,6 @@ /* Enable FDT support */ #define CONFIG_DEFAULT_DEVICE_TREE tegra20-colibri_t20_iris -#define CONFIG_OF_CONTROL -#define CONFIG_OF_SEPARATE /* High-level configuration options */ #define V_PROMPT "Tegra20 (Colibri) # " diff --git a/include/configs/colibri_t30.h b/include/configs/colibri_t30.h index eacff5b..d9e2d86 100644 --- a/include/configs/colibri_t30.h +++ b/include/configs/colibri_t30.h @@ -12,8 +12,6 @@ #include "tegra30-common.h" #define CONFIG_DEFAULT_DEVICE_TREE tegra30-colibri -#define CONFIG_OF_CONTROL -#define CONFIG_OF_SEPARATE #define V_PROMPT "Colibri T30 # " #define CONFIG_TEGRA_BOARD_STRING "Toradex Colibri T30" diff --git a/include/configs/coreboot.h b/include/configs/coreboot.h index a1a63a0..915245e 100644 --- a/include/configs/coreboot.h +++ b/include/configs/coreboot.h @@ -28,8 +28,6 @@ #define CONFIG_LMB #define CONFIG_OF_LIBFDT -#define CONFIG_OF_CONTROL -#define CONFIG_OF_SEPARATE #define CONFIG_DEFAULT_DEVICE_TREE link #define CONFIG_BOOTSTAGE diff --git a/include/configs/dalmore.h b/include/configs/dalmore.h index fd774a3..e3bb27f 100644 --- a/include/configs/dalmore.h +++ b/include/configs/dalmore.h @@ -23,8 +23,6 @@ /* Enable fdt support for Dalmore. Flash the image in u-boot-dtb.bin */ #define CONFIG_DEFAULT_DEVICE_TREE tegra114-dalmore -#define CONFIG_OF_CONTROL -#define CONFIG_OF_SEPARATE /* High-level configuration options */ #define V_PROMPT "Tegra114 (Dalmore) # " diff --git a/include/configs/exynos4-dt.h b/include/configs/exynos4-dt.h index 7dac1a3..27e32da 100644 --- a/include/configs/exynos4-dt.h +++ b/include/configs/exynos4-dt.h @@ -23,8 +23,6 @@ #define CONFIG_SYS_GENERIC_BOARD /* Enable fdt support */ -#define CONFIG_OF_CONTROL -#define CONFIG_OF_SEPARATE #define CONFIG_SYS_CACHELINE_SIZE 32 diff --git a/include/configs/exynos5-dt.h b/include/configs/exynos5-dt.h index a7c6292..5488363 100644 --- a/include/configs/exynos5-dt.h +++ b/include/configs/exynos5-dt.h @@ -25,8 +25,6 @@ #define CONFIG_EXYNOS_SPL /* Enable fdt support for Exynos5250 */ -#define CONFIG_OF_CONTROL -#define CONFIG_OF_SEPARATE /* Allow tracing to be enabled */ #define CONFIG_TRACE diff --git a/include/configs/harmony.h b/include/configs/harmony.h index 3ec0e41..97db202 100644 --- a/include/configs/harmony.h +++ b/include/configs/harmony.h @@ -13,8 +13,6 @@ /* Enable fdt support for Harmony. Flash the image in u-boot-dtb.bin */ #define CONFIG_DEFAULT_DEVICE_TREE tegra20-harmony -#define CONFIG_OF_CONTROL -#define CONFIG_OF_SEPARATE /* High-level configuration options */ #define V_PROMPT "Tegra20 (Harmony) # " diff --git a/include/configs/jetson-tk1.h b/include/configs/jetson-tk1.h index d03a66c..dc7e324 100644 --- a/include/configs/jetson-tk1.h +++ b/include/configs/jetson-tk1.h @@ -14,8 +14,6 @@ /* Enable fdt support for Jetson TK1. Flash the image in u-boot-dtb.bin */ #define CONFIG_DEFAULT_DEVICE_TREE tegra124-jetson-tk1 -#define CONFIG_OF_CONTROL -#define CONFIG_OF_SEPARATE /* High-level configuration options */ #define V_PROMPT "Tegra124 (Jetson TK1) # " diff --git a/include/configs/medcom-wide.h b/include/configs/medcom-wide.h index 40155c3..5e52574 100644 --- a/include/configs/medcom-wide.h +++ b/include/configs/medcom-wide.h @@ -14,8 +14,6 @@ /* Enable fdt support for Medcom-Wide. Flash the image in u-boot-dtb.bin */ #define CONFIG_DEFAULT_DEVICE_TREE tegra20-medcom-wide -#define CONFIG_OF_CONTROL -#define CONFIG_OF_SEPARATE /* High-level configuration options */ #define V_PROMPT "Tegra20 (Medcom-Wide) # " diff --git a/include/configs/microblaze-generic.h b/include/configs/microblaze-generic.h index 1a82a57..f5e83ff 100644 --- a/include/configs/microblaze-generic.h +++ b/include/configs/microblaze-generic.h @@ -15,8 +15,6 @@ #define MICROBLAZE_V5 1 /* Open Firmware DTS */ -#define CONFIG_OF_CONTROL 1 -#define CONFIG_OF_EMBED 1 #define CONFIG_DEFAULT_DEVICE_TREE microblaze-generic /* linear and spi flash memory */ diff --git a/include/configs/mx6qsabreauto.h b/include/configs/mx6qsabreauto.h index d1639c4..95f4600 100644 --- a/include/configs/mx6qsabreauto.h +++ b/include/configs/mx6qsabreauto.h @@ -45,7 +45,6 @@ #define CONFIG_SYS_I2C_MXC #define CONFIG_SYS_I2C_SPEED 100000 -#define CONFIG_OF_SEPARATE #define CONFIG_DEFAULT_DEVICE_TREE imx6q-sabreauto #endif /* __MX6QSABREAUTO_CONFIG_H */ diff --git a/include/configs/paz00.h b/include/configs/paz00.h index dd0abf8..01cb649 100644 --- a/include/configs/paz00.h +++ b/include/configs/paz00.h @@ -22,8 +22,6 @@ /* Enable fdt support for Paz00. Flash the image in u-boot-dtb.bin */ #define CONFIG_DEFAULT_DEVICE_TREE tegra20-paz00 -#define CONFIG_OF_CONTROL -#define CONFIG_OF_SEPARATE /* High-level configuration options */ #define V_PROMPT "Tegra20 (Paz00) MOD # " diff --git a/include/configs/plutux.h b/include/configs/plutux.h index a473f23..719d81a 100644 --- a/include/configs/plutux.h +++ b/include/configs/plutux.h @@ -14,8 +14,6 @@ /* Enable fdt support for Plutux. Flash the image in u-boot-dtb.bin */ #define CONFIG_DEFAULT_DEVICE_TREE tegra20-plutux -#define CONFIG_OF_CONTROL -#define CONFIG_OF_SEPARATE /* High-level configuration options */ #define V_PROMPT "Tegra20 (Plutux) # " diff --git a/include/configs/sandbox.h b/include/configs/sandbox.h index bf2d25c..4998152 100644 --- a/include/configs/sandbox.h +++ b/include/configs/sandbox.h @@ -35,8 +35,6 @@ /* Number of bits in a C 'long' on this architecture */ #define CONFIG_SANDBOX_BITS_PER_LONG 64 -#define CONFIG_OF_CONTROL -#define CONFIG_OF_HOSTFILE #define CONFIG_OF_LIBFDT #define CONFIG_LMB #define CONFIG_FIT diff --git a/include/configs/seaboard.h b/include/configs/seaboard.h index fc4f976..e61811d 100644 --- a/include/configs/seaboard.h +++ b/include/configs/seaboard.h @@ -21,8 +21,6 @@ /* Enable fdt support for Seaboard. Flash the image in u-boot-dtb.bin */ #define CONFIG_DEFAULT_DEVICE_TREE tegra20-seaboard -#define CONFIG_OF_CONTROL -#define CONFIG_OF_SEPARATE /* High-level configuration options */ #define V_PROMPT "Tegra20 (SeaBoard) # " diff --git a/include/configs/tec-ng.h b/include/configs/tec-ng.h index 13baa76..5b4c255 100644 --- a/include/configs/tec-ng.h +++ b/include/configs/tec-ng.h @@ -12,8 +12,6 @@ /* Enable fdt support for tec-ng. Flash the image in u-boot-dtb.bin */ #define CONFIG_DEFAULT_DEVICE_TREE tegra30-tec-ng -#define CONFIG_OF_CONTROL -#define CONFIG_OF_SEPARATE /* High-level configuration options */ #define V_PROMPT "Tegra30 (TEC-NG) # " diff --git a/include/configs/tec.h b/include/configs/tec.h index 90e7b7a..0598d5d 100644 --- a/include/configs/tec.h +++ b/include/configs/tec.h @@ -14,8 +14,6 @@ /* Enable fdt support for TEC. Flash the image in u-boot-dtb.bin */ #define CONFIG_DEFAULT_DEVICE_TREE tegra20-tec -#define CONFIG_OF_CONTROL -#define CONFIG_OF_SEPARATE /* High-level configuration options */ #define V_PROMPT "Tegra20 (TEC) # " diff --git a/include/configs/tegra-common-post.h b/include/configs/tegra-common-post.h index c337e30..23e3c8a 100644 --- a/include/configs/tegra-common-post.h +++ b/include/configs/tegra-common-post.h @@ -69,7 +69,6 @@ /* remove devicetree support */ #ifdef CONFIG_OF_CONTROL -#undef CONFIG_OF_CONTROL #endif /* remove I2C support */ diff --git a/include/configs/trimslice.h b/include/configs/trimslice.h index f81cfa2..2ef010c 100644 --- a/include/configs/trimslice.h +++ b/include/configs/trimslice.h @@ -13,8 +13,6 @@ /* Enable fdt support for TrimSlice. Flash the image in u-boot-dtb.bin */ #define CONFIG_DEFAULT_DEVICE_TREE tegra20-trimslice -#define CONFIG_OF_CONTROL -#define CONFIG_OF_SEPARATE /* High-level configuration options */ #define V_PROMPT "Tegra20 (TrimSlice) # " diff --git a/include/configs/venice2.h b/include/configs/venice2.h index 6d4e999..b516d92 100644 --- a/include/configs/venice2.h +++ b/include/configs/venice2.h @@ -14,8 +14,6 @@ /* Enable fdt support for Venice2. Flash the image in u-boot-dtb.bin */ #define CONFIG_DEFAULT_DEVICE_TREE tegra124-venice2 -#define CONFIG_OF_CONTROL -#define CONFIG_OF_SEPARATE /* High-level configuration options */ #define V_PROMPT "Tegra124 (Venice2) # " diff --git a/include/configs/ventana.h b/include/configs/ventana.h index edf3720..3b9d142 100644 --- a/include/configs/ventana.h +++ b/include/configs/ventana.h @@ -13,8 +13,6 @@ /* Enable fdt support for Ventana. Flash the image in u-boot-dtb.bin */ #define CONFIG_DEFAULT_DEVICE_TREE tegra20-ventana -#define CONFIG_OF_CONTROL -#define CONFIG_OF_SEPARATE /* High-level configuration options */ #define V_PROMPT "Tegra20 (Ventana) # " diff --git a/include/configs/whistler.h b/include/configs/whistler.h index 9e09f03..f3bf806 100644 --- a/include/configs/whistler.h +++ b/include/configs/whistler.h @@ -13,8 +13,6 @@ /* Enable fdt support for Whistler. Flash the image in u-boot-dtb.bin */ #define CONFIG_DEFAULT_DEVICE_TREE tegra20-whistler -#define CONFIG_OF_CONTROL -#define CONFIG_OF_SEPARATE /* High-level configuration options */ #define V_PROMPT "Tegra20 (Whistler) # " diff --git a/include/configs/zynq-common.h b/include/configs/zynq-common.h index 875cb43..5d6472f 100644 --- a/include/configs/zynq-common.h +++ b/include/configs/zynq-common.h @@ -227,8 +227,6 @@ #define CONFIG_IMAGE_FORMAT_LEGACY /* enable also legacy image format */ /* FDT support */ -#define CONFIG_OF_CONTROL -#define CONFIG_OF_SEPARATE #define CONFIG_DISPLAY_BOARDINFO_LATE /* RSA support */ @@ -273,18 +271,13 @@ #define CONFIG_SYS_MMC_SD_FAT_BOOT_PARTITION 1 #define CONFIG_SPL_LIBDISK_SUPPORT #define CONFIG_SPL_FAT_SUPPORT -#if defined(CONFIG_OF_CONTROL) && defined(CONFIG_OF_SEPARATE) -# define CONFIG_SPL_FAT_LOAD_PAYLOAD_NAME "u-boot-dtb.img" -#else -# define CONFIG_SPL_FAT_LOAD_PAYLOAD_NAME "u-boot.img" -#endif +#define CONFIG_SPL_FAT_LOAD_PAYLOAD_NAME "u-boot-dtb.img" #endif /* Disable dcache for SPL just for sure */ #ifdef CONFIG_SPL_BUILD #define CONFIG_SYS_DCACHE_OFF #undef CONFIG_FPGA -#undef CONFIG_OF_CONTROL #endif /* Address in RAM where the parameters must be copied by SPL. */
This commit moves: CONFIG_OF_CONTROL CONFIG_OF_SEPARATE CONFIG_OF_EMBED CONFIG_OF_HOSTFILE Because these options are currently not supported for SPL, the "Device Tree Control" menu does not appear in the SPL configuration. Note: zynq-common.h should be adjusted so as not to change the default value of CONFIG_SPL_FAT_LOAD_PAYLOAD_NAME. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com> Cc: Simon Glass <sjg@chromium.org> Cc: Stephen Warren <swarren@nvidia.com> Cc: Minkyu Kang <mk7.kang@samsung.com> Cc: Michal Simek <michal.simek@xilinx.com> --- Kconfig | 2 ++ configs/am335x_boneblack_vboot_defconfig | 1 + configs/arndale_defconfig | 1 + configs/beaver_defconfig | 1 + configs/cardhu_defconfig | 1 + configs/colibri_t20_iris_defconfig | 1 + configs/colibri_t30_defconfig | 1 + configs/coreboot-x86_defconfig | 1 + configs/dalmore_defconfig | 1 + configs/harmony_defconfig | 1 + configs/jetson-tk1_defconfig | 1 + configs/medcom-wide_defconfig | 1 + configs/microblaze-generic_defconfig | 2 ++ configs/origen_defconfig | 1 + configs/paz00_defconfig | 1 + configs/peach-pit_defconfig | 1 + configs/plutux_defconfig | 1 + configs/s5pc210_universal_defconfig | 1 + configs/sandbox_defconfig | 1 + configs/seaboard_defconfig | 1 + configs/smdk5250_defconfig | 1 + configs/smdk5420_defconfig | 1 + configs/snow_defconfig | 1 + configs/tec-ng_defconfig | 1 + configs/tec_defconfig | 1 + configs/trats2_defconfig | 1 + configs/trats_defconfig | 1 + configs/trimslice_defconfig | 1 + configs/venice2_defconfig | 1 + configs/ventana_defconfig | 1 + configs/whistler_defconfig | 1 + configs/zynq_microzed_defconfig | 1 + configs/zynq_zc70x_defconfig | 1 + configs/zynq_zc770_xm010_defconfig | 1 + configs/zynq_zc770_xm012_defconfig | 1 + configs/zynq_zc770_xm013_defconfig | 1 + configs/zynq_zed_defconfig | 1 + dts/Kconfig | 46 ++++++++++++++++++++++++++++++++ include/configs/am335x_evm.h | 2 -- include/configs/arndale.h | 2 -- include/configs/beaver.h | 2 -- include/configs/cardhu.h | 2 -- include/configs/colibri_t20_iris.h | 2 -- include/configs/colibri_t30.h | 2 -- include/configs/coreboot.h | 2 -- include/configs/dalmore.h | 2 -- include/configs/exynos4-dt.h | 2 -- include/configs/exynos5-dt.h | 2 -- include/configs/harmony.h | 2 -- include/configs/jetson-tk1.h | 2 -- include/configs/medcom-wide.h | 2 -- include/configs/microblaze-generic.h | 2 -- include/configs/mx6qsabreauto.h | 1 - include/configs/paz00.h | 2 -- include/configs/plutux.h | 2 -- include/configs/sandbox.h | 2 -- include/configs/seaboard.h | 2 -- include/configs/tec-ng.h | 2 -- include/configs/tec.h | 2 -- include/configs/tegra-common-post.h | 1 - include/configs/trimslice.h | 2 -- include/configs/venice2.h | 2 -- include/configs/ventana.h | 2 -- include/configs/whistler.h | 2 -- include/configs/zynq-common.h | 9 +------ 65 files changed, 86 insertions(+), 58 deletions(-) create mode 100644 dts/Kconfig