[PATCH v2 00/19] Kconfig: Tidy up some options

The view from 'make menuconfig' is confusing in places. This series aims to improve the top-level menu and also the boot menu.
It also groups FDT-fixup options tegether, at least the ones I could fine.
Finally this series marks the distro scripts as deprecated, so people have a pointer to standard boot.
Changes in v2: - Fix FMU typo in the subject - Drop now-unnecessary depends on FWU_MULTI_BANK_UPDATE - Mention in the DISTRO_DEFAULTS option that it is script-based - Expand and rewrite the commit message - Use the word 'Mark' instead of 'Make' to improve the English
Simon Glass (19): lib: rational: Move the Kconfigs into the correct place Kconfig: Move API into general setup video: Hide the BMP options video: Move BMP options and code to video directory net: Move SYS_RX_ETH_BUFFER into the network menu FWU: Avoid showing an unselectable menu option test: Move POST under a renamed Testing section boot: Move fdt_support to boot/ Move fdt_simplefb to boot/ boot: Move some other fdt-fixup options to the same menu boot: Rename Android-boot text Kconfig: Create a menu for FIT Kconfig: Move SPL_FIT under FIT spl: Tidy up load address in spl_ram boot: Make standard boot a menu Kconfig: Move TEXT_BASE et al under general setup Mark DISTRO_DEFAULTS as deprecated boot: Join FDT_FIXUP_PARTITIONS with related options boot: Join ARCH_FIXUP_FDT_MEMORY with related options
Kconfig | 67 ++++++++++- boot/Kconfig | 202 +++++++++++++------------------- boot/Makefile | 4 + {common => boot}/fdt_simplefb.c | 0 {common => boot}/fdt_support.c | 0 common/Kconfig | 20 ---- common/Makefile | 4 - common/spl/spl_ram.c | 19 ++- doc/develop/bootstd.rst | 23 ++++ drivers/video/Kconfig | 11 ++ drivers/video/Makefile | 2 + {common => drivers/video}/bmp.c | 0 include/net.h | 9 +- lib/Kconfig | 17 +-- lib/fwu_updates/Kconfig | 9 +- net/Kconfig | 4 +- test/Kconfig | 12 +- 17 files changed, 220 insertions(+), 183 deletions(-) rename {common => boot}/fdt_simplefb.c (100%) rename {common => boot}/fdt_support.c (100%) rename {common => drivers/video}/bmp.c (100%)

These should not be part of the 'system tables' menu. Move them outside on their own.
Signed-off-by: Simon Glass sjg@chromium.org Fixes: 7d0f3fbb93c ("lib: rational: copy the rational fraction lib...") ---
(no changes since v1)
lib/Kconfig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/lib/Kconfig b/lib/Kconfig index 42e559ad0b51..9addcfab3734 100644 --- a/lib/Kconfig +++ b/lib/Kconfig @@ -989,6 +989,8 @@ config GENERATE_SMBIOS_TABLE See also SMBIOS_SYSINFO which allows SMBIOS values to be provided in the devicetree.
+endmenu + config LIB_RATIONAL bool "enable continued fraction calculation routines"
@@ -996,8 +998,6 @@ config SPL_LIB_RATIONAL bool "enable continued fraction calculation routines for SPL" depends on SPL
-endmenu - config ASN1_COMPILER bool help

This is perhaps not a commonly used feature so should not have its own option in the main menu. Move it under general setup.
Signed-off-by: Simon Glass sjg@chromium.org ---
(no changes since v1)
Kconfig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Kconfig b/Kconfig index 91170bf8d223..0a2e97578dfc 100644 --- a/Kconfig +++ b/Kconfig @@ -585,10 +585,10 @@ config MP This provides an option to bringup different processors in multiprocessor cases.
-endmenu # General setup - source "api/Kconfig"
+endmenu # General setup + source "boot/Kconfig"
source "common/Kconfig"

These appear prominently in the main menu at present. However they are selected when needed so do not need to be visible.
Make them hidden.
Signed-off-by: Simon Glass sjg@chromium.org ---
(no changes since v1)
common/Kconfig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/common/Kconfig b/common/Kconfig index 0b09bd68bd13..844531a59eda 100644 --- a/common/Kconfig +++ b/common/Kconfig @@ -1169,12 +1169,12 @@ config IO_TRACE bool
config BMP - bool "Enable bmp image display" + bool # Enable bmp image display help Enable bmp functions to display bmp image and get bmp info.
config SPL_BMP - bool "Enable bmp image display at SPL" + bool # Enable bmp image display at SPL depends on SPL_VIDEO help Enable bmp functions to display bmp image and get bmp info at SPL.

Am 31. August 2023 05:52:57 MESZ schrieb Simon Glass sjg@chromium.org:
These appear prominently in the main menu at present. However they are selected when needed so do not need to be visible.
Make them hidden.
Signed-off-by: Simon Glass sjg@chromium.org
(no changes since v1)
common/Kconfig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/common/Kconfig b/common/Kconfig index 0b09bd68bd13..844531a59eda 100644 --- a/common/Kconfig +++ b/common/Kconfig @@ -1169,12 +1169,12 @@ config IO_TRACE bool
config BMP
- bool "Enable bmp image display"
- bool # Enable bmp image display
This must depend on video.
help Enable bmp functions to display bmp image and get bmp info.
config SPL_BMP
- bool "Enable bmp image display at SPL"
- bool # Enable bmp image display at SPL
Why should I not be able to deactivate the logo display?
Just move the entries to submenus related to video, please.
Best regards
Heinrich
depends on SPL_VIDEO help Enable bmp functions to display bmp image and get bmp info at SPL.

On Thu, Aug 31, 2023 at 06:05:22AM +0200, Heinrich Schuchardt wrote:
Am 31. August 2023 05:52:57 MESZ schrieb Simon Glass sjg@chromium.org:
These appear prominently in the main menu at present. However they are selected when needed so do not need to be visible.
Make them hidden.
Signed-off-by: Simon Glass sjg@chromium.org
(no changes since v1)
common/Kconfig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/common/Kconfig b/common/Kconfig index 0b09bd68bd13..844531a59eda 100644 --- a/common/Kconfig +++ b/common/Kconfig @@ -1169,12 +1169,12 @@ config IO_TRACE bool
config BMP
- bool "Enable bmp image display"
- bool # Enable bmp image display
Just change this to "bool" and don't add non-prompt text. The help should be made clearer if it's not already.
This must depend on video.
Since it's only select'd, no, it should be selected with "if VIDEO" if the options that actually use them don't already depend on video
help Enable bmp functions to display bmp image and get bmp info.
config SPL_BMP
- bool "Enable bmp image display at SPL"
- bool # Enable bmp image display at SPL
Why should I not be able to deactivate the logo display?
That's SPLASH_SCREEN not BMP.
Just move the entries to submenus related to video, please.
Yes please.

On Thu, Aug 31, 2023 at 09:58:46AM -0400, Tom Rini wrote:
On Thu, Aug 31, 2023 at 06:05:22AM +0200, Heinrich Schuchardt wrote:
Am 31. August 2023 05:52:57 MESZ schrieb Simon Glass sjg@chromium.org:
These appear prominently in the main menu at present. However they are selected when needed so do not need to be visible.
Make them hidden.
Signed-off-by: Simon Glass sjg@chromium.org
(no changes since v1)
common/Kconfig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/common/Kconfig b/common/Kconfig index 0b09bd68bd13..844531a59eda 100644 --- a/common/Kconfig +++ b/common/Kconfig @@ -1169,12 +1169,12 @@ config IO_TRACE bool
config BMP
- bool "Enable bmp image display"
- bool # Enable bmp image display
Just change this to "bool" and don't add non-prompt text. The help should be made clearer if it's not already.
This must depend on video.
Since it's only select'd, no, it should be selected with "if VIDEO" if the options that actually use them don't already depend on video
help Enable bmp functions to display bmp image and get bmp info.
config SPL_BMP
- bool "Enable bmp image display at SPL"
- bool # Enable bmp image display at SPL
Why should I not be able to deactivate the logo display?
That's SPLASH_SCREEN not BMP.
Sorry, you're right Heinrich, the further options here depend on, not select SPL_BMP.

Put the options and the common BMP code with the other related Kconfig options in the drivers/video directory.
Signed-off-by: Simon Glass sjg@chromium.org ---
(no changes since v1)
common/Kconfig | 11 ----------- common/Makefile | 1 - drivers/video/Kconfig | 11 +++++++++++ drivers/video/Makefile | 2 ++ {common => drivers/video}/bmp.c | 0 5 files changed, 13 insertions(+), 12 deletions(-) rename {common => drivers/video}/bmp.c (100%)
diff --git a/common/Kconfig b/common/Kconfig index 844531a59eda..2f46fdb3f62c 100644 --- a/common/Kconfig +++ b/common/Kconfig @@ -1167,14 +1167,3 @@ config FDT_SIMPLEFB
config IO_TRACE bool - -config BMP - bool # Enable bmp image display - help - Enable bmp functions to display bmp image and get bmp info. - -config SPL_BMP - bool # Enable bmp image display at SPL - depends on SPL_VIDEO - help - Enable bmp functions to display bmp image and get bmp info at SPL. diff --git a/common/Makefile b/common/Makefile index f5c3d90f0675..0a3f75f2f1c8 100644 --- a/common/Makefile +++ b/common/Makefile @@ -45,7 +45,6 @@ endif # !CONFIG_SPL_BUILD
obj-$(CONFIG_$(SPL_TPL_)BOOTSTAGE) += bootstage.o obj-$(CONFIG_$(SPL_TPL_)BLOBLIST) += bloblist.o -obj-$(CONFIG_$(SPL_)BMP) += bmp.o
ifdef CONFIG_SPL_BUILD ifdef CONFIG_SPL_DFU diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig index 09f2cb1a7321..a4befd6b655c 100644 --- a/drivers/video/Kconfig +++ b/drivers/video/Kconfig @@ -682,6 +682,11 @@ config BACKLIGHT_LM3533 LM3533 Lighting Power chip. Only Bank A is supported as for now. Supported backlight level range is from 2 to 255 with step of 1.
+config BMP + bool # Enable bmp image display + help + Enable bmp functions to display bmp image and get bmp info. + source "drivers/video/ti/Kconfig"
source "drivers/video/exynos/Kconfig" @@ -1117,6 +1122,12 @@ config SPL_VIDEO_REMOVE if this option is enabled video driver will be removed at the end of SPL stage, before loading the next stage.
+config SPL_BMP + bool # Enable bmp image display at SPL + depends on SPL_VIDEO + help + Enable bmp functions to display bmp image and get bmp info at SPL. + if SPL_SPLASH_SCREEN
config SPL_SPLASH_SCREEN_ALIGN diff --git a/drivers/video/Makefile b/drivers/video/Makefile index d13af9f3b19b..a3182dca734b 100644 --- a/drivers/video/Makefile +++ b/drivers/video/Makefile @@ -3,6 +3,8 @@ # (C) Copyright 2000-2007 # Wolfgang Denk, DENX Software Engineering, wd@denx.de.
+obj-$(CONFIG_$(SPL_)BMP) += bmp.o + ifdef CONFIG_DM obj-$(CONFIG_$(SPL_TPL_)BACKLIGHT) += backlight-uclass.o obj-$(CONFIG_BACKLIGHT_GPIO) += backlight_gpio.o diff --git a/common/bmp.c b/drivers/video/bmp.c similarity index 100% rename from common/bmp.c rename to drivers/video/bmp.c

Move this Kconfig option into the correct place, so it doesn't show up in the top-level menu.
Unfortunately this makes the CONFIG undefined on some boards which don't enable CONFIG_NET but do include the net.h header file. In fact that header is included from a lot of common places. So use a fallback in the header file.
Signed-off-by: Simon Glass sjg@chromium.org ---
(no changes since v1)
include/net.h | 9 ++++++--- net/Kconfig | 4 ++-- 2 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/include/net.h b/include/net.h index e254df7d7f43..f70396c74ba5 100644 --- a/include/net.h +++ b/include/net.h @@ -31,11 +31,14 @@ struct udevice; #define DEBUG_INT_STATE 0 /* Internal network state changes */
/* - * The number of receive packet buffers, and the required packet buffer - * alignment in memory. - * + * The number of receive packet buffers, and the required packet buffer + * alignment in memory. */ +#ifdef CONFIG_SYS_RX_ETH_BUFFER #define PKTBUFSRX CONFIG_SYS_RX_ETH_BUFFER +#else +#define PKTBUFSRX 4 +#endif #define PKTALIGN ARCH_DMA_MINALIGN
/* Number of packets processed together */ diff --git a/net/Kconfig b/net/Kconfig index 4215889127c9..a13ab1d80a0d 100644 --- a/net/Kconfig +++ b/net/Kconfig @@ -252,8 +252,6 @@ config IPV6 ip6addr, serverip6. If a u-boot command is capable to parse an IPv6 address and find it, it will force using IPv6 in the network stack.
-endif # if NET - config SYS_RX_ETH_BUFFER int "Number of receive packet buffers" default 4 @@ -262,3 +260,5 @@ config SYS_RX_ETH_BUFFER controllers it is recommended to set this value to 8 or even higher, since all buffers can be full shortly after enabling the interface on high Ethernet traffic. + +endif # if NET

On Wed, Aug 30, 2023 at 09:52:59PM -0600, Simon Glass wrote:
Move this Kconfig option into the correct place, so it doesn't show up in the top-level menu.
Unfortunately this makes the CONFIG undefined on some boards which don't enable CONFIG_NET but do include the net.h header file. In fact that header is included from a lot of common places. So use a fallback in the header file.
Signed-off-by: Simon Glass sjg@chromium.org
NAK, we leave the option where it is until someone comes and cleans up net.h usage.

Use a menuconfig to avoid showing a menu which cannot be selected in many cases.
This option should really go with the other 'Update support'.
Perhaps we should even consider a top-level update/ directory?
Signed-off-by: Simon Glass sjg@chromium.org Acked-by: Sughosh Ganu sughosh.ganu@linaro.org ---
Changes in v2: - Fix FMU typo in the subject - Drop now-unnecessary depends on FWU_MULTI_BANK_UPDATE
lib/Kconfig | 4 ---- lib/fwu_updates/Kconfig | 9 +++++---- 2 files changed, 5 insertions(+), 8 deletions(-)
diff --git a/lib/Kconfig b/lib/Kconfig index 9addcfab3734..bfab2f3165a7 100644 --- a/lib/Kconfig +++ b/lib/Kconfig @@ -1118,8 +1118,4 @@ config PHANDLE_CHECK_SEQ
endmenu
-menu "FWU Multi Bank Updates" - source lib/fwu_updates/Kconfig - -endmenu diff --git a/lib/fwu_updates/Kconfig b/lib/fwu_updates/Kconfig index 71f34793d926..d35247d0e5d4 100644 --- a/lib/fwu_updates/Kconfig +++ b/lib/fwu_updates/Kconfig @@ -1,4 +1,4 @@ -config FWU_MULTI_BANK_UPDATE +menuconfig FWU_MULTI_BANK_UPDATE bool "Enable FWU Multi Bank Update Feature" depends on EFI_CAPSULE_ON_DISK select PARTITION_TYPE_GUID @@ -10,24 +10,25 @@ config FWU_MULTI_BANK_UPDATE multiple banks(copies) of the firmware images. One of the bank is selected for updating all the firmware components
+if FWU_MULTI_BANK_UPDATE + config FWU_NUM_BANKS int "Number of Banks defined by the platform" - depends on FWU_MULTI_BANK_UPDATE help Define the number of banks of firmware images on a platform
config FWU_NUM_IMAGES_PER_BANK int "Number of firmware images per bank" - depends on FWU_MULTI_BANK_UPDATE help Define the number of firmware images per bank. This value should be the same for all the banks.
config FWU_TRIAL_STATE_CNT int "Number of times system boots in Trial State" - depends on FWU_MULTI_BANK_UPDATE default 3 help With FWU Multi Bank Update feature enabled, number of times the platform is allowed to boot in Trial State after an update. + +endif

On Wed, Aug 30, 2023 at 09:53:00PM -0600, Simon Glass wrote:
Use a menuconfig to avoid showing a menu which cannot be selected in many cases.
This option should really go with the other 'Update support'.
Perhaps we should even consider a top-level update/ directory?
I think this is where it should be, so please drop these comments from v3 of the series. The rest is fine:
Reviewed-by: Tom Rini trini@konsulko.com

Rename Unit tests to Testing, since it is a stretch to describe some of the tests as unit tests. Move POST there as well, so it doesn't show up by itself in the top-level menu.
Signed-off-by: Simon Glass sjg@chromium.org ---
(no changes since v1)
test/Kconfig | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/test/Kconfig b/test/Kconfig index 6e859fb7d0db..830245b6f9a9 100644 --- a/test/Kconfig +++ b/test/Kconfig @@ -1,9 +1,4 @@ -config POST - bool "Power On Self Test support" - help - See doc/README.POST for more details - -menu "Unit tests" +menu "Testing"
config UNIT_TEST bool "Unit tests" @@ -110,4 +105,9 @@ source "test/lib/Kconfig" source "test/optee/Kconfig" source "test/overlay/Kconfig"
+config POST + bool "Power On Self Test support" + help + See doc/README.POST for more details + endmenu

This relates to booting since it fixes up the devicetree for the OS. Move it into the boot/ directory.
Signed-off-by: Simon Glass sjg@chromium.org ---
(no changes since v1)
boot/Makefile | 3 +++ {common => boot}/fdt_support.c | 0 common/Makefile | 2 -- 3 files changed, 3 insertions(+), 2 deletions(-) rename {common => boot}/fdt_support.c (100%)
diff --git a/boot/Makefile b/boot/Makefile index 10f015722378..f15a161614ff 100644 --- a/boot/Makefile +++ b/boot/Makefile @@ -16,6 +16,7 @@ obj-$(CONFIG_QFW) += bootmeth_qfw.o endif
obj-y += image.o image-board.o + obj-$(CONFIG_ANDROID_AB) += android_ab.o obj-$(CONFIG_ANDROID_BOOT_IMAGE) += image-android.o image-android-dt.o
@@ -37,6 +38,8 @@ obj-$(CONFIG_$(SPL_TPL_)BOOTSTD) += bootflow_menu.o obj-$(CONFIG_$(SPL_TPL_)CEDIT) += cedit.o endif
+obj-$(CONFIG_$(SPL_TPL_)OF_LIBFDT) += fdt_support.o + obj-$(CONFIG_$(SPL_TPL_)OF_LIBFDT) += image-fdt.o obj-$(CONFIG_$(SPL_TPL_)FIT_SIGNATURE) += fdt_region.o obj-$(CONFIG_$(SPL_TPL_)FIT) += image-fit.o diff --git a/common/fdt_support.c b/boot/fdt_support.c similarity index 100% rename from common/fdt_support.c rename to boot/fdt_support.c diff --git a/common/Makefile b/common/Makefile index 0a3f75f2f1c8..0948721d0b47 100644 --- a/common/Makefile +++ b/common/Makefile @@ -18,7 +18,6 @@ obj-$(CONFIG_DISPLAY_BOARDINFO) += board_info.o obj-$(CONFIG_DISPLAY_BOARDINFO_LATE) += board_info.o
obj-$(CONFIG_FDT_SIMPLEFB) += fdt_simplefb.o -obj-$(CONFIG_$(SPL_TPL_)OF_LIBFDT) += fdt_support.o obj-$(CONFIG_MII) += miiphyutil.o obj-$(CONFIG_CMD_MII) += miiphyutil.o obj-$(CONFIG_PHYLIB) += miiphyutil.o @@ -51,7 +50,6 @@ ifdef CONFIG_SPL_DFU obj-$(CONFIG_DFU_OVER_USB) += dfu.o endif obj-$(CONFIG_SPL_NET) += miiphyutil.o -obj-$(CONFIG_$(SPL_TPL_)OF_LIBFDT) += fdt_support.o
obj-$(CONFIG_SPL_USB_HOST) += usb.o usb_hub.o obj-$(CONFIG_SPL_USB_STORAGE) += usb_storage.o

This relates to booting, so move it there. Create a new Kconfig menu for things related to devicetree fixup.
Signed-off-by: Simon Glass sjg@chromium.org ---
(no changes since v1)
boot/Kconfig | 16 ++++++++++++++++ boot/Makefile | 1 + {common => boot}/fdt_simplefb.c | 0 common/Kconfig | 9 --------- common/Makefile | 1 - 5 files changed, 17 insertions(+), 10 deletions(-) rename {common => boot}/fdt_simplefb.c (100%)
diff --git a/boot/Kconfig b/boot/Kconfig index 86ccfd780312..025fa01d782c 100644 --- a/boot/Kconfig +++ b/boot/Kconfig @@ -1538,6 +1538,22 @@ config SPL_IMAGE_PRE_LOAD_SIG
endmenu
+if OF_LIBFDT + +menu "Devicetree fixup" + +config FDT_SIMPLEFB + bool "FDT tools for simplefb support" + help + Enable the fdt tools to manage the simple fb nodes in device tree. + These functions can be used by board to indicate to the OS + the presence of the simple frame buffer with associated reserved + memory + +endmenu + +endif # OF_LIBFDT + config USE_BOOTARGS bool "Enable boot arguments" help diff --git a/boot/Makefile b/boot/Makefile index f15a161614ff..6ce983b83fa4 100644 --- a/boot/Makefile +++ b/boot/Makefile @@ -39,6 +39,7 @@ obj-$(CONFIG_$(SPL_TPL_)CEDIT) += cedit.o endif
obj-$(CONFIG_$(SPL_TPL_)OF_LIBFDT) += fdt_support.o +obj-$(CONFIG_$(SPL_TPL_)FDT_SIMPLEFB) += fdt_simplefb.o
obj-$(CONFIG_$(SPL_TPL_)OF_LIBFDT) += image-fdt.o obj-$(CONFIG_$(SPL_TPL_)FIT_SIGNATURE) += fdt_region.o diff --git a/common/fdt_simplefb.c b/boot/fdt_simplefb.c similarity index 100% rename from common/fdt_simplefb.c rename to boot/fdt_simplefb.c diff --git a/common/Kconfig b/common/Kconfig index 2f46fdb3f62c..9693c0ac426f 100644 --- a/common/Kconfig +++ b/common/Kconfig @@ -1156,14 +1156,5 @@ config VPL_IMAGE_SIGN_INFO
endif
-config FDT_SIMPLEFB - bool "FDT tools for simplefb support" - depends on OF_LIBFDT - help - Enable the fdt tools to manage the simple fb nodes in device tree. - These functions can be used by board to indicate to the OS - the presence of the simple frame buffer with associated reserved - memory - config IO_TRACE bool diff --git a/common/Makefile b/common/Makefile index 0948721d0b47..5c1617206f07 100644 --- a/common/Makefile +++ b/common/Makefile @@ -17,7 +17,6 @@ obj-y += board_r.o obj-$(CONFIG_DISPLAY_BOARDINFO) += board_info.o obj-$(CONFIG_DISPLAY_BOARDINFO_LATE) += board_info.o
-obj-$(CONFIG_FDT_SIMPLEFB) += fdt_simplefb.o obj-$(CONFIG_MII) += miiphyutil.o obj-$(CONFIG_CMD_MII) += miiphyutil.o obj-$(CONFIG_PHYLIB) += miiphyutil.o

Move more options relating to fixing up a device tree into the new devicetree-fixup menu.
Signed-off-by: Simon Glass sjg@chromium.org ---
(no changes since v1)
boot/Kconfig | 55 +++++++++++++++++++++++++--------------------------- 1 file changed, 26 insertions(+), 29 deletions(-)
diff --git a/boot/Kconfig b/boot/Kconfig index 025fa01d782c..70cbcc38fdd4 100644 --- a/boot/Kconfig +++ b/boot/Kconfig @@ -696,35 +696,6 @@ config SUPPORT_RAW_INITRD address of the initrd must be augmented by it's size, in the following format: "<initrd address>:<initrd size>".
-config OF_BOARD_SETUP - bool "Set up board-specific details in device tree before boot" - depends on OF_LIBFDT - help - This causes U-Boot to call ft_board_setup() before booting into - the Operating System. This function can set up various - board-specific information in the device tree for use by the OS. - The device tree is then passed to the OS. - -config OF_SYSTEM_SETUP - bool "Set up system-specific details in device tree before boot" - depends on OF_LIBFDT - help - This causes U-Boot to call ft_system_setup() before booting into - the Operating System. This function can set up various - system-specific information in the device tree for use by the OS. - The device tree is then passed to the OS. - -config OF_STDOUT_VIA_ALIAS - bool "Update the device-tree stdout alias from U-Boot" - depends on OF_LIBFDT - help - This uses U-Boot's serial alias from the aliases node to update - the device tree passed to the OS. The "linux,stdout-path" property - in the chosen node is set to point to the correct serial node. - This option currently references CONFIG_CONS_INDEX, which is - incorrect when used with device tree as this option does not - exist / should not be used. - config HAVE_TEXT_BASE bool depends on !NIOS2 && !XTENSA @@ -1542,6 +1513,32 @@ if OF_LIBFDT
menu "Devicetree fixup"
+config OF_BOARD_SETUP + bool "Set up board-specific details in device tree before boot" + help + This causes U-Boot to call ft_board_setup() before booting into + the Operating System. This function can set up various + board-specific information in the device tree for use by the OS. + The device tree is then passed to the OS. + +config OF_SYSTEM_SETUP + bool "Set up system-specific details in device tree before boot" + help + This causes U-Boot to call ft_system_setup() before booting into + the Operating System. This function can set up various + system-specific information in the device tree for use by the OS. + The device tree is then passed to the OS. + +config OF_STDOUT_VIA_ALIAS + bool "Update the device-tree stdout alias from U-Boot" + help + This uses U-Boot's serial alias from the aliases node to update + the device tree passed to the OS. The "linux,stdout-path" property + in the chosen node is set to point to the correct serial node. + This option currently references CONFIG_CONS_INDEX, which is + incorrect when used with device tree as this option does not + exist / should not be used. + config FDT_SIMPLEFB bool "FDT tools for simplefb support" help

Phrases like 'Enable support for' are pointless since this is an option which enables things. Drop that part so it is easier to follow.
Signed-off-by: Simon Glass sjg@chromium.org ---
(no changes since v1)
boot/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/boot/Kconfig b/boot/Kconfig index 70cbcc38fdd4..f603a64a23de 100644 --- a/boot/Kconfig +++ b/boot/Kconfig @@ -3,7 +3,7 @@ menu "Boot options" menu "Boot images"
config ANDROID_BOOT_IMAGE - bool "Enable support for Android Boot Images" + bool "Android Boot Images" default y if FASTBOOT help This enables support for booting images which use the Android

This is a major feature with a lot of options. Give it its own menu to tidy up the 'make menuconfig' display. Drop the 'depends on FIT' pieces which are now unnecessary, since they are now bracketed by an 'if FIT'.
Signed-off-by: Simon Glass sjg@chromium.org ---
(no changes since v1)
boot/Kconfig | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-)
diff --git a/boot/Kconfig b/boot/Kconfig index f603a64a23de..467bca706782 100644 --- a/boot/Kconfig +++ b/boot/Kconfig @@ -9,8 +9,8 @@ config ANDROID_BOOT_IMAGE This enables support for booting images which use the Android image format header.
-config FIT - bool "Support Flattened Image Tree" +menuconfig FIT + bool "Flattened Image Tree (FIT)" select HASH select MD5 select SHA1 @@ -25,6 +25,8 @@ config FIT multiple configurations, verification through hashing and also verified boot (secure boot using RSA).
+if FIT + config TIMESTAMP bool "Show image date and time when displaying image information" default y if CMD_DATE @@ -38,7 +40,6 @@ config TIMESTAMP
config FIT_EXTERNAL_OFFSET hex "FIT external data offset" - depends on FIT default 0x0 help This specifies a data offset in fit image. @@ -49,7 +50,6 @@ config FIT_EXTERNAL_OFFSET
config FIT_FULL_CHECK bool "Do a full check of the FIT before using it" - depends on FIT default y help Enable this do a full check of the FIT to make sure it is valid. This @@ -59,7 +59,7 @@ config FIT_FULL_CHECK
config FIT_SIGNATURE bool "Enable signature verification of FIT uImages" - depends on DM && FIT + depends on DM select HASH imply RSA imply RSA_VERIFY @@ -97,7 +97,7 @@ config FIT_RSASSA_PSS
config FIT_CIPHER bool "Enable ciphering data in a FIT uImages" - depends on DM && FIT + depends on DM select AES help Enable the feature of data ciphering/unciphering in the tool mkimage @@ -105,7 +105,6 @@ config FIT_CIPHER
config FIT_VERBOSE bool "Show verbose messages when FIT images fail" - depends on FIT help Generally a system will have valid FIT images so debug messages are a waste of code space. If you are debugging your images then @@ -114,7 +113,6 @@ config FIT_VERBOSE
config FIT_BEST_MATCH bool "Select the best match for the kernel device tree" - depends on FIT help When no configuration is explicitly selected, default to the one whose fdt's compatibility field best matches that of @@ -124,7 +122,6 @@ config FIT_BEST_MATCH
config FIT_IMAGE_POST_PROCESS bool "Enable post-processing of FIT artifacts after loading by U-Boot" - depends on FIT depends on SOCFPGA_SECURE_VAB_AUTH help Allows doing any sort of manipulation to blobs after they got extracted @@ -139,11 +136,12 @@ config FIT_IMAGE_POST_PROCESS
config FIT_PRINT bool "Support FIT printing" - depends on FIT default y help Support printing the content of the fitImage in a verbose manner.
+endif # FIT + config SPL_FIT bool "Support Flattened Image Tree within SPL" depends on SPL && FIT

This option already depends on FIT, so put it under the same umbrella, so that it appears in the FIT menu.
Signed-off-by: Simon Glass sjg@chromium.org ---
(no changes since v1)
boot/Kconfig | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/boot/Kconfig b/boot/Kconfig index 467bca706782..c9b7d3f710b6 100644 --- a/boot/Kconfig +++ b/boot/Kconfig @@ -140,11 +140,9 @@ config FIT_PRINT help Support printing the content of the fitImage in a verbose manner.
-endif # FIT - config SPL_FIT bool "Support Flattened Image Tree within SPL" - depends on SPL && FIT + depends on SPL select SPL_HASH select SPL_OF_LIBFDT
@@ -195,7 +193,7 @@ config SPL_FIT_RSASSA_PSS
config SPL_LOAD_FIT bool "Enable SPL loading U-Boot as a FIT (basic fitImage features)" - depends on SPL && FIT + depends on SPL select SPL_FIT help Normally with the SPL framework a legacy image is generated as part @@ -243,7 +241,6 @@ config SPL_LOAD_FIT_APPLY_OVERLAY_BUF_SZ
config SPL_LOAD_FIT_FULL bool "Enable SPL loading U-Boot as a FIT (full fitImage features)" - depends on FIT select SPL_FIT help Normally with the SPL framework a legacy image is generated as part @@ -341,6 +338,8 @@ config VPL_FIT_SIGNATURE_MAX_SIZE
endif # VPL
+endif # FIT + config PXE_UTILS bool select MENU

This CONFIG is used but is not given a value by some boards. Use a default value of 0 explicitly, rather than relying on the 0 value provided by CONFIG_SPL_LOAD_FIT_ADDRESS
This will allow us to make SPL_LOAD_FIT_ADDRESS depend on SPL_LOAD_FIT as it should.
Signed-off-by: Simon Glass sjg@chromium.org ---
(no changes since v1)
common/spl/spl_ram.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-)
diff --git a/common/spl/spl_ram.c b/common/spl/spl_ram.c index 93cf420d810a..4158ed1c32d7 100644 --- a/common/spl/spl_ram.c +++ b/common/spl/spl_ram.c @@ -20,12 +20,16 @@ static ulong spl_ram_load_read(struct spl_load_info *load, ulong sector, ulong count, void *buf) { - ulong addr; + ulong addr = 0;
debug("%s: sector %lx, count %lx, buf %lx\n", __func__, sector, count, (ulong)buf);
- addr = (ulong)CONFIG_SPL_LOAD_FIT_ADDRESS + sector; + if (IS_ENABLED(CONFIG_SPL_LOAD_FIT)) { + addr = IF_ENABLED_INT(CONFIG_SPL_LOAD_FIT, + CONFIG_SPL_LOAD_FIT_ADDRESS); + } + addr += sector; if (CONFIG_IS_ENABLED(IMAGE_PRE_LOAD)) addr += image_load_offset;
@@ -38,20 +42,23 @@ static int spl_ram_load_image(struct spl_image_info *spl_image, struct spl_boot_device *bootdev) { struct legacy_img_hdr *header; + ulong addr = 0; int ret;
- header = (struct legacy_img_hdr *)CONFIG_SPL_LOAD_FIT_ADDRESS; + if (IS_ENABLED(CONFIG_SPL_LOAD_FIT)) { + addr = IF_ENABLED_INT(CONFIG_SPL_LOAD_FIT, + CONFIG_SPL_LOAD_FIT_ADDRESS); + }
if (CONFIG_IS_ENABLED(IMAGE_PRE_LOAD)) { - unsigned long addr = (unsigned long)header; ret = image_pre_load(addr);
if (ret) return ret;
addr += image_load_offset; - header = (struct legacy_img_hdr *)addr; } + header = map_sysmem(addr, 0);
#if CONFIG_IS_ENABLED(DFU) if (bootdev->boot_device == BOOT_DEVICE_DFU) @@ -84,7 +91,7 @@ static int spl_ram_load_image(struct spl_image_info *spl_image, u_boot_pos = (ulong)spl_get_load_buffer(-sizeof(*header), sizeof(*header)); } - header = (struct legacy_img_hdr *)map_sysmem(u_boot_pos, 0); + header = map_sysmem(u_boot_pos, 0);
ret = spl_parse_image_header(spl_image, bootdev, header); }

On Wed, Aug 30, 2023 at 09:53:08PM -0600, Simon Glass wrote:
This CONFIG is used but is not given a value by some boards. Use a default value of 0 explicitly, rather than relying on the 0 value provided by CONFIG_SPL_LOAD_FIT_ADDRESS
This will allow us to make SPL_LOAD_FIT_ADDRESS depend on SPL_LOAD_FIT as it should.
Signed-off-by: Simon Glass sjg@chromium.org
(no changes since v1)
common/spl/spl_ram.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-)
diff --git a/common/spl/spl_ram.c b/common/spl/spl_ram.c index 93cf420d810a..4158ed1c32d7 100644 --- a/common/spl/spl_ram.c +++ b/common/spl/spl_ram.c @@ -20,12 +20,16 @@ static ulong spl_ram_load_read(struct spl_load_info *load, ulong sector, ulong count, void *buf) {
- ulong addr;
ulong addr = 0;
debug("%s: sector %lx, count %lx, buf %lx\n", __func__, sector, count, (ulong)buf);
- addr = (ulong)CONFIG_SPL_LOAD_FIT_ADDRESS + sector;
- if (IS_ENABLED(CONFIG_SPL_LOAD_FIT)) {
addr = IF_ENABLED_INT(CONFIG_SPL_LOAD_FIT,
CONFIG_SPL_LOAD_FIT_ADDRESS);
- }
- addr += sector; if (CONFIG_IS_ENABLED(IMAGE_PRE_LOAD)) addr += image_load_offset;
@@ -38,20 +42,23 @@ static int spl_ram_load_image(struct spl_image_info *spl_image, struct spl_boot_device *bootdev) { struct legacy_img_hdr *header;
- ulong addr = 0; int ret;
- header = (struct legacy_img_hdr *)CONFIG_SPL_LOAD_FIT_ADDRESS;
if (IS_ENABLED(CONFIG_SPL_LOAD_FIT)) {
addr = IF_ENABLED_INT(CONFIG_SPL_LOAD_FIT,
CONFIG_SPL_LOAD_FIT_ADDRESS);
}
if (CONFIG_IS_ENABLED(IMAGE_PRE_LOAD)) {
unsigned long addr = (unsigned long)header;
ret = image_pre_load(addr);
if (ret) return ret;
addr += image_load_offset;
header = (struct legacy_img_hdr *)addr;
}
- header = map_sysmem(addr, 0);
#if CONFIG_IS_ENABLED(DFU) if (bootdev->boot_device == BOOT_DEVICE_DFU) @@ -84,7 +91,7 @@ static int spl_ram_load_image(struct spl_image_info *spl_image, u_boot_pos = (ulong)spl_get_load_buffer(-sizeof(*header), sizeof(*header)); }
header = (struct legacy_img_hdr *)map_sysmem(u_boot_pos, 0);
header = map_sysmem(u_boot_pos, 0);
ret = spl_parse_image_header(spl_image, bootdev, header); }
This makes the code less readable. Perhaps it needs to be refactored in to other files instead.

Collect these options into a menu for easier viewing.
Signed-off-by: Simon Glass sjg@chromium.org ---
(no changes since v1)
boot/Kconfig | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/boot/Kconfig b/boot/Kconfig index c9b7d3f710b6..17f54b926f05 100644 --- a/boot/Kconfig +++ b/boot/Kconfig @@ -372,8 +372,8 @@ config BOOT_DEFAULTS of U-Boot to boot various images. Currently much functionality is tied to enabling the command that exercises it.
-config BOOTSTD - bool "Standard boot support" +menuconfig BOOTSTD + bool "Standard boot" default y depends on DM && OF_CONTROL && BLK help @@ -393,6 +393,8 @@ config BOOTSTD U-Boot) - bootflow - a description of how to boot (owned by the distro)
+if BOOTSTD + config SPL_BOOTSTD bool "Standard boot support in SPL" depends on SPL && SPL_DM && SPL_OF_CONTROL && SPL_BLK @@ -413,8 +415,6 @@ config VPL_BOOTSTD boot. It is enabled by default since the main purpose of VPL is to handle the firmware part of VBE.
-if BOOTSTD - config BOOTSTD_FULL bool "Enhanced features for standard boot" default y if SANDBOX @@ -673,7 +673,7 @@ config BOOTMETH_SCRIPT This provides a way to try out standard boot on an existing boot flow. It is not enabled by default to save space.
-endif +endif # BOOTSTD
config LEGACY_IMAGE_FORMAT bool "Enable support for the legacy image format"

These don't relate to booting. Move them out of there and into the same place as the other related settings.
Signed-off-by: Simon Glass sjg@chromium.org ---
(no changes since v1)
Kconfig | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++++ boot/Kconfig | 65 ---------------------------------------------------- 2 files changed, 65 insertions(+), 65 deletions(-)
diff --git a/Kconfig b/Kconfig index 0a2e97578dfc..2d4b82149860 100644 --- a/Kconfig +++ b/Kconfig @@ -585,6 +585,71 @@ config MP This provides an option to bringup different processors in multiprocessor cases.
+config HAVE_TEXT_BASE + bool + depends on !NIOS2 && !XTENSA + depends on !EFI_APP + default y + +config TEXT_BASE + depends on HAVE_TEXT_BASE + default 0x0 if POSITION_INDEPENDENT + default 0x80800000 if ARCH_OMAP2PLUS || ARCH_K3 + default 0x81700000 if MACH_SUNIV + default 0x2a000000 if MACH_SUN9I + default 0x4a000000 if SUNXI_MINIMUM_DRAM_MB >= 256 + default 0x42e00000 if SUNXI_MINIMUM_DRAM_MB >= 64 + hex "Text Base" + help + The address in memory that U-Boot will be running from, initially. + +config HAVE_SYS_MONITOR_BASE + bool + depends on ARC || MIPS || M68K || NIOS2 || PPC || XTENSA || X86 \ + || ENV_IS_IN_FLASH || MTD_NOR_FLASH + depends on !EFI_APP + default y + +config SYS_MONITOR_BASE + depends on HAVE_SYS_MONITOR_BASE + hex "Physical start address of boot monitor code" + default TEXT_BASE + help + The physical start address of boot monitor code (which is the same as + CONFIG_TEXT_BASE when linking) and the same as CFG_SYS_FLASH_BASE + when booting from flash. + +config SPL_SYS_MONITOR_BASE + depends on MPC85xx && SPL && HAVE_SYS_MONITOR_BASE + hex "Physical start address of SPL monitor code" + default SPL_TEXT_BASE + +config TPL_SYS_MONITOR_BASE + depends on MPC85xx && TPL && HAVE_SYS_MONITOR_BASE + hex "Physical start address of TPL monitor code" + +config DYNAMIC_SYS_CLK_FREQ + bool "Determine CPU clock frequency at run-time" + help + Implement a get_board_sys_clk function that will determine the CPU + clock frequency at run time, rather than define it statically. + +config SYS_CLK_FREQ + depends on !DYNAMIC_SYS_CLK_FREQ + int "CPU clock frequency" + default 125000000 if ARCH_LS1012A + default 100000000 if ARCH_P2020 || ARCH_T1024 || ARCH_T1042 || \ + ARCH_LS1021A || FSL_LSCH2 || FSL_LSCH3 + default 66666666 if ARCH_P1010 || ARCH_P1020 || ARCH_T4240 + default 66660000 if ARCH_T2080 + default 33333333 if RCAR_GEN3 + default 24000000 if ARCH_EXYNOS + default 20000000 if RCAR_GEN2 + default 0 + help + A static value for the CPU frequency. Note that if not required + for a given SoC, this can be left at 0. + source "api/Kconfig"
endmenu # General setup diff --git a/boot/Kconfig b/boot/Kconfig index 17f54b926f05..458512a4ade2 100644 --- a/boot/Kconfig +++ b/boot/Kconfig @@ -693,71 +693,6 @@ config SUPPORT_RAW_INITRD address of the initrd must be augmented by it's size, in the following format: "<initrd address>:<initrd size>".
-config HAVE_TEXT_BASE - bool - depends on !NIOS2 && !XTENSA - depends on !EFI_APP - default y - -config TEXT_BASE - depends on HAVE_TEXT_BASE - default 0x0 if POSITION_INDEPENDENT - default 0x80800000 if ARCH_OMAP2PLUS || ARCH_K3 - default 0x81700000 if MACH_SUNIV - default 0x2a000000 if MACH_SUN9I - default 0x4a000000 if SUNXI_MINIMUM_DRAM_MB >= 256 - default 0x42e00000 if SUNXI_MINIMUM_DRAM_MB >= 64 - hex "Text Base" - help - The address in memory that U-Boot will be running from, initially. - -config HAVE_SYS_MONITOR_BASE - bool - depends on ARC || MIPS || M68K || NIOS2 || PPC || XTENSA || X86 \ - || ENV_IS_IN_FLASH || MTD_NOR_FLASH - depends on !EFI_APP - default y - -config SYS_MONITOR_BASE - depends on HAVE_SYS_MONITOR_BASE - hex "Physical start address of boot monitor code" - default TEXT_BASE - help - The physical start address of boot monitor code (which is the same as - CONFIG_TEXT_BASE when linking) and the same as CFG_SYS_FLASH_BASE - when booting from flash. - -config SPL_SYS_MONITOR_BASE - depends on MPC85xx && SPL && HAVE_SYS_MONITOR_BASE - hex "Physical start address of SPL monitor code" - default SPL_TEXT_BASE - -config TPL_SYS_MONITOR_BASE - depends on MPC85xx && TPL && HAVE_SYS_MONITOR_BASE - hex "Physical start address of TPL monitor code" - -config DYNAMIC_SYS_CLK_FREQ - bool "Determine CPU clock frequency at run-time" - help - Implement a get_board_sys_clk function that will determine the CPU - clock frequency at run time, rather than define it statically. - -config SYS_CLK_FREQ - depends on !DYNAMIC_SYS_CLK_FREQ - int "CPU clock frequency" - default 125000000 if ARCH_LS1012A - default 100000000 if ARCH_P2020 || ARCH_T1024 || ARCH_T1042 || \ - ARCH_LS1021A || FSL_LSCH2 || FSL_LSCH3 - default 66666666 if ARCH_P1010 || ARCH_P1020 || ARCH_T4240 - default 66660000 if ARCH_T2080 - default 33333333 if RCAR_GEN3 - default 24000000 if ARCH_EXYNOS - default 20000000 if RCAR_GEN2 - default 0 - help - A static value for the CPU frequency. Note that if not required - for a given SoC, this can be left at 0. - config ARCH_FIXUP_FDT_MEMORY bool "Enable arch_fixup_memory_banks() call" default y

Standard boot has been in place for a while now. Quite a few problems have been found and fixed. It seems like a good time to mark the script-based approach as deprecated and encourage people to use standard boot.
Update the DISTRO_DEFAULTS Kconfig to encourage people to move to standard boot, which is able to boot Linux distributions automatically.
Add a short migration guide to make this easier.
Signed-off-by: Simon Glass sjg@chromium.org ---
Changes in v2: - Mention in the DISTRO_DEFAULTS option that it is script-based - Expand and rewrite the commit message - Use the word 'Mark' instead of 'Make' to improve the English
boot/Kconfig | 7 ++++++- doc/develop/bootstd.rst | 23 +++++++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-)
diff --git a/boot/Kconfig b/boot/Kconfig index 458512a4ade2..a7dea0a0623b 100644 --- a/boot/Kconfig +++ b/boot/Kconfig @@ -784,7 +784,7 @@ config SYS_BOOT_RAMDISK_HIGH endmenu # Boot images
config DISTRO_DEFAULTS - bool "Select defaults suitable for booting general purpose Linux distributions" + bool "(deprecated) 'Script-based booting of Linux distributions" select BOOT_DEFAULTS select AUTO_COMPLETE select CMDLINE_EDITING @@ -792,6 +792,11 @@ config DISTRO_DEFAULTS select HUSH_PARSER select SYS_LONGHELP help + Note: These scripts have been replaced by Standard Boot. Do not use + them on new boards. See 'Migrating from distro_boot' at + doc/develop/bootstd.rst + + Select this to enable various options and commands which are suitable for building u-boot for booting general purpose Linux distributions.
diff --git a/doc/develop/bootstd.rst b/doc/develop/bootstd.rst index c01e0971dc84..ddcd05f931ad 100644 --- a/doc/develop/bootstd.rst +++ b/doc/develop/bootstd.rst @@ -458,6 +458,28 @@ ready File was loaded and is ready for use. In this state the bootflow is ======= =======================================================================
+Migrating from distro_boot +-------------------------- + +To migrate from distro_boot: + +#. Update your board header files to remove the BOOTENV and BOOT_TARGET_xxx + defines. Standard boot finds available boot devices automatically. + +#. Remove the "boot_targets" variable unless you need it. Standard boot uses a + default order from fastest to slowest, which generally matches the order used + by boards. + +#. Make sure that CONFIG_BOOTSTD_DEFAULTS is enabled by your board, so it can + boot common Linux distributions. + +An example patch is at migrate_patch_. + +If you are using custom boot scripts for your board, consider creating your +own bootmeth to hold the logic. There are various examples at +`boot/bootmeth_...`. + + Theory of operation -------------------
@@ -769,3 +791,4 @@ Other ideas: .. _BootLoaderSpec: http://www.freedesktop.org/wiki/Specifications/BootLoaderSpec/ .. _distro_boot: https://github.com/u-boot/u-boot/blob/master/boot/distro.c .. _bootflow_h: https://github.com/u-boot/u-boot/blob/master/include/bootflow.h +.. _migrate_patch: https://patchwork.ozlabs.org/project/uboot/patch/20230727215433.578830-2-sjg...

On Wed, Aug 30, 2023 at 09:53:11PM -0600, Simon Glass wrote:
Standard boot has been in place for a while now. Quite a few problems have been found and fixed. It seems like a good time to mark the script-based approach as deprecated and encourage people to use standard boot.
Update the DISTRO_DEFAULTS Kconfig to encourage people to move to standard boot, which is able to boot Linux distributions automatically.
Add a short migration guide to make this easier.
Signed-off-by: Simon Glass sjg@chromium.org
Changes in v2:
- Mention in the DISTRO_DEFAULTS option that it is script-based
- Expand and rewrite the commit message
- Use the word 'Mark' instead of 'Make' to improve the English
boot/Kconfig | 7 ++++++- doc/develop/bootstd.rst | 23 +++++++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-)
diff --git a/boot/Kconfig b/boot/Kconfig index 458512a4ade2..a7dea0a0623b 100644 --- a/boot/Kconfig +++ b/boot/Kconfig @@ -784,7 +784,7 @@ config SYS_BOOT_RAMDISK_HIGH endmenu # Boot images
config DISTRO_DEFAULTS
- bool "Select defaults suitable for booting general purpose Linux distributions"
- bool "(deprecated) 'Script-based booting of Linux distributions"
Extra ' ?
select BOOT_DEFAULTS select AUTO_COMPLETE select CMDLINE_EDITING @@ -792,6 +792,11 @@ config DISTRO_DEFAULTS select HUSH_PARSER select SYS_LONGHELP help
Note: These scripts have been replaced by Standard Boot. Do not use
them on new boards. See 'Migrating from distro_boot' at
doc/develop/bootstd.rst
Extra newline.

Move this to be with the other devicetree-fixup options.
Signed-off-by: Simon Glass sjg@chromium.org ---
(no changes since v1)
boot/Kconfig | 8 ++++++++ lib/Kconfig | 9 --------- 2 files changed, 8 insertions(+), 9 deletions(-)
diff --git a/boot/Kconfig b/boot/Kconfig index a7dea0a0623b..023446130282 100644 --- a/boot/Kconfig +++ b/boot/Kconfig @@ -1476,6 +1476,14 @@ config OF_STDOUT_VIA_ALIAS incorrect when used with device tree as this option does not exist / should not be used.
+config FDT_FIXUP_PARTITIONS + bool "overwrite MTD partitions in DTS through defined in 'mtdparts'" + depends on CMD_MTDPARTS + help + Allow overwriting defined partitions in the device tree blob + using partition info defined in the 'mtdparts' environment + variable. + config FDT_SIMPLEFB bool "FDT tools for simplefb support" help diff --git a/lib/Kconfig b/lib/Kconfig index bfab2f3165a7..eb2b10161824 100644 --- a/lib/Kconfig +++ b/lib/Kconfig @@ -953,15 +953,6 @@ config VPL_OF_LIBFDT_ASSUME_MASK 0xff means all assumptions are made and any invalid data may cause unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
-config FDT_FIXUP_PARTITIONS - bool "overwrite MTD partitions in DTS through defined in 'mtdparts'" - depends on OF_LIBFDT - depends on CMD_MTDPARTS - help - Allow overwriting defined partitions in the device tree blob - using partition info defined in the 'mtdparts' environment - variable. - menu "System tables" depends on (!EFI && !SYS_COREBOOT) || (ARM && EFI_LOADER)

On Wed, Aug 30, 2023 at 09:53:12PM -0600, Simon Glass wrote:
Move this to be with the other devicetree-fixup options.
Signed-off-by: Simon Glass sjg@chromium.org
(no changes since v1)
boot/Kconfig | 8 ++++++++ lib/Kconfig | 9 --------- 2 files changed, 8 insertions(+), 9 deletions(-)
diff --git a/boot/Kconfig b/boot/Kconfig index a7dea0a0623b..023446130282 100644 --- a/boot/Kconfig +++ b/boot/Kconfig @@ -1476,6 +1476,14 @@ config OF_STDOUT_VIA_ALIAS incorrect when used with device tree as this option does not exist / should not be used.
+config FDT_FIXUP_PARTITIONS
- bool "overwrite MTD partitions in DTS through defined in 'mtdparts'"
- depends on CMD_MTDPARTS
- help
Allow overwriting defined partitions in the device tree blob
using partition info defined in the 'mtdparts' environment
variable.
config FDT_SIMPLEFB bool "FDT tools for simplefb support" help diff --git a/lib/Kconfig b/lib/Kconfig index bfab2f3165a7..eb2b10161824 100644 --- a/lib/Kconfig +++ b/lib/Kconfig @@ -953,15 +953,6 @@ config VPL_OF_LIBFDT_ASSUME_MASK 0xff means all assumptions are made and any invalid data may cause unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
-config FDT_FIXUP_PARTITIONS
- bool "overwrite MTD partitions in DTS through defined in 'mtdparts'"
- depends on OF_LIBFDT
- depends on CMD_MTDPARTS
- help
Allow overwriting defined partitions in the device tree blob
using partition info defined in the 'mtdparts' environment
variable.
menu "System tables" depends on (!EFI && !SYS_COREBOOT) || (ARM && EFI_LOADER)
Please follow-up and drop the extraneous dependency on CMD_MTDPARTS, thanks.

Move this to be with the other devicetree-fixup options.
Signed-off-by: Simon Glass sjg@chromium.org ---
(no changes since v1)
boot/Kconfig | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/boot/Kconfig b/boot/Kconfig index 023446130282..257f4cc085e1 100644 --- a/boot/Kconfig +++ b/boot/Kconfig @@ -693,14 +693,6 @@ config SUPPORT_RAW_INITRD address of the initrd must be augmented by it's size, in the following format: "<initrd address>:<initrd size>".
-config ARCH_FIXUP_FDT_MEMORY - bool "Enable arch_fixup_memory_banks() call" - default y - help - Enable FDT memory map syncup before OS boot. This feature can be - used for booting OS with different memory setup where the part of - the memory location should be used for different purpose. - config CHROMEOS bool "Support booting Chrome OS" help @@ -1492,6 +1484,14 @@ config FDT_SIMPLEFB the presence of the simple frame buffer with associated reserved memory
+config ARCH_FIXUP_FDT_MEMORY + bool "Enable arch_fixup_memory_banks() call" + default y + help + Enable FDT memory map syncup before OS boot. This feature can be + used for booting OS with different memory setup where the part of + the memory location should be used for different purpose. + endmenu
endif # OF_LIBFDT

On Wed, Aug 30, 2023 at 09:53:13PM -0600, Simon Glass wrote:
Move this to be with the other devicetree-fixup options.
Signed-off-by: Simon Glass sjg@chromium.org
(no changes since v1)
boot/Kconfig | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/boot/Kconfig b/boot/Kconfig index 023446130282..257f4cc085e1 100644 --- a/boot/Kconfig +++ b/boot/Kconfig @@ -693,14 +693,6 @@ config SUPPORT_RAW_INITRD address of the initrd must be augmented by it's size, in the following format: "<initrd address>:<initrd size>".
-config ARCH_FIXUP_FDT_MEMORY
- bool "Enable arch_fixup_memory_banks() call"
- default y
- help
Enable FDT memory map syncup before OS boot. This feature can be
used for booting OS with different memory setup where the part of
the memory location should be used for different purpose.
config CHROMEOS bool "Support booting Chrome OS" help @@ -1492,6 +1484,14 @@ config FDT_SIMPLEFB the presence of the simple frame buffer with associated reserved memory
+config ARCH_FIXUP_FDT_MEMORY
- bool "Enable arch_fixup_memory_banks() call"
- default y
- help
Enable FDT memory map syncup before OS boot. This feature can be
used for booting OS with different memory setup where the part of
the memory location should be used for different purpose.
endmenu
endif # OF_LIBFDT
It seems like fixups are mixed in with other changes in this menu when we should probably keep the fixups lumped together at least.

Hi Tom,
On Thu, 31 Aug 2023 at 08:01, Tom Rini trini@konsulko.com wrote:
On Wed, Aug 30, 2023 at 09:53:13PM -0600, Simon Glass wrote:
Move this to be with the other devicetree-fixup options.
Signed-off-by: Simon Glass sjg@chromium.org
(no changes since v1)
boot/Kconfig | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/boot/Kconfig b/boot/Kconfig index 023446130282..257f4cc085e1 100644 --- a/boot/Kconfig +++ b/boot/Kconfig @@ -693,14 +693,6 @@ config SUPPORT_RAW_INITRD address of the initrd must be augmented by it's size, in the following format: "<initrd address>:<initrd size>".
-config ARCH_FIXUP_FDT_MEMORY
bool "Enable arch_fixup_memory_banks() call"
default y
help
Enable FDT memory map syncup before OS boot. This feature can be
used for booting OS with different memory setup where the part of
the memory location should be used for different purpose.
config CHROMEOS bool "Support booting Chrome OS" help @@ -1492,6 +1484,14 @@ config FDT_SIMPLEFB the presence of the simple frame buffer with associated reserved memory
+config ARCH_FIXUP_FDT_MEMORY
bool "Enable arch_fixup_memory_banks() call"
default y
help
Enable FDT memory map syncup before OS boot. This feature can be
used for booting OS with different memory setup where the part of
the memory location should be used for different purpose.
endmenu
endif # OF_LIBFDT
It seems like fixups are mixed in with other changes in this menu when we should probably keep the fixups lumped together at least.
From what I can tell all of the things I am putting in this menu
relate to DT fixups. The naming is a bit odd though, on some of them.
Regards, Simon

On Mon, Sep 04, 2023 at 08:43:12AM -0600, Simon Glass wrote:
Hi Tom,
On Thu, 31 Aug 2023 at 08:01, Tom Rini trini@konsulko.com wrote:
On Wed, Aug 30, 2023 at 09:53:13PM -0600, Simon Glass wrote:
Move this to be with the other devicetree-fixup options.
Signed-off-by: Simon Glass sjg@chromium.org
(no changes since v1)
boot/Kconfig | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/boot/Kconfig b/boot/Kconfig index 023446130282..257f4cc085e1 100644 --- a/boot/Kconfig +++ b/boot/Kconfig @@ -693,14 +693,6 @@ config SUPPORT_RAW_INITRD address of the initrd must be augmented by it's size, in the following format: "<initrd address>:<initrd size>".
-config ARCH_FIXUP_FDT_MEMORY
bool "Enable arch_fixup_memory_banks() call"
default y
help
Enable FDT memory map syncup before OS boot. This feature can be
used for booting OS with different memory setup where the part of
the memory location should be used for different purpose.
config CHROMEOS bool "Support booting Chrome OS" help @@ -1492,6 +1484,14 @@ config FDT_SIMPLEFB the presence of the simple frame buffer with associated reserved memory
+config ARCH_FIXUP_FDT_MEMORY
bool "Enable arch_fixup_memory_banks() call"
default y
help
Enable FDT memory map syncup before OS boot. This feature can be
used for booting OS with different memory setup where the part of
the memory location should be used for different purpose.
endmenu
endif # OF_LIBFDT
It seems like fixups are mixed in with other changes in this menu when we should probably keep the fixups lumped together at least.
From what I can tell all of the things I am putting in this menu relate to DT fixups. The naming is a bit odd though, on some of them.
OK, thanks.

On Wed, Aug 30, 2023 at 09:52:54PM -0600, Simon Glass wrote:
The view from 'make menuconfig' is confusing in places. This series aims to improve the top-level menu and also the boot menu.
It also groups FDT-fixup options tegether, at least the ones I could fine.
Finally this series marks the distro scripts as deprecated, so people have a pointer to standard boot.
Changes in v2:
- Fix FMU typo in the subject
- Drop now-unnecessary depends on FWU_MULTI_BANK_UPDATE
- Mention in the DISTRO_DEFAULTS option that it is script-based
- Expand and rewrite the commit message
- Use the word 'Mark' instead of 'Make' to improve the English
Simon Glass (19): lib: rational: Move the Kconfigs into the correct place Kconfig: Move API into general setup video: Hide the BMP options video: Move BMP options and code to video directory net: Move SYS_RX_ETH_BUFFER into the network menu FWU: Avoid showing an unselectable menu option test: Move POST under a renamed Testing section boot: Move fdt_support to boot/ Move fdt_simplefb to boot/ boot: Move some other fdt-fixup options to the same menu boot: Rename Android-boot text Kconfig: Create a menu for FIT Kconfig: Move SPL_FIT under FIT spl: Tidy up load address in spl_ram boot: Make standard boot a menu Kconfig: Move TEXT_BASE et al under general setup Mark DISTRO_DEFAULTS as deprecated boot: Join FDT_FIXUP_PARTITIONS with related options boot: Join ARCH_FIXUP_FDT_MEMORY with related options
Kconfig | 67 ++++++++++- boot/Kconfig | 202 +++++++++++++------------------- boot/Makefile | 4 + {common => boot}/fdt_simplefb.c | 0 {common => boot}/fdt_support.c | 0 common/Kconfig | 20 ---- common/Makefile | 4 - common/spl/spl_ram.c | 19 ++- doc/develop/bootstd.rst | 23 ++++ drivers/video/Kconfig | 11 ++ drivers/video/Makefile | 2 + {common => drivers/video}/bmp.c | 0 include/net.h | 9 +- lib/Kconfig | 17 +-- lib/fwu_updates/Kconfig | 9 +- net/Kconfig | 4 +- test/Kconfig | 12 +- 17 files changed, 220 insertions(+), 183 deletions(-) rename {common => boot}/fdt_simplefb.c (100%) rename {common => boot}/fdt_support.c (100%) rename {common => drivers/video}/bmp.c (100%)
Please run a world build before/after and check for both size changes and Kconfig unmet dependency issues (which CI does not catch). Based on at least the BMP patch I suspect there are problems and unintended behavior changes.
participants (3)
-
Heinrich Schuchardt
-
Simon Glass
-
Tom Rini