[RFC/PATCH] lib/Kconfig: Enable OF_LIBFDT_OVERLAY by default when FIT is enabled

FIT image support is commonly used to bundle a kernel image, a device tree, and device tree overlays. Applying overlays requires the OF_LIBFDT_OVERLAY config option to be set, which lots of boards fail to select, most likely because developers never noticed. This leads to an error when trying to apply overlays:
"config with overlays but CONFIG_OF_LIBFDT_OVERLAY not set"
TI ARM boards select the option by default. Extend this to all systems that select the FIT option. This only affects the default, overlay support can still be disabled manually in the configuration.
Signed-off-by: Laurent Pinchart laurent.pinchart@ideasonboard.com --- I'm posting this as an RFC to get feedback. If the idea is generally appreciated, I'll update the defconfig files accordingly. --- lib/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/Kconfig b/lib/Kconfig index 549bd3577851..d309ccf83c03 100644 --- a/lib/Kconfig +++ b/lib/Kconfig @@ -823,7 +823,7 @@ config OF_LIBFDT_ASSUME_MASK config OF_LIBFDT_OVERLAY bool "Enable the FDT library overlay support" depends on OF_LIBFDT - default y if ARCH_OMAP2PLUS || ARCH_KEYSTONE + default y if FIT help This enables the FDT library (libfdt) overlay support.
base-commit: f147aa80f52989c7455022ca1ab959e8545feccc

On 1/29/23 17:30, Laurent Pinchart wrote:
FIT image support is commonly used to bundle a kernel image, a device tree, and device tree overlays. Applying overlays requires the OF_LIBFDT_OVERLAY config option to be set, which lots of boards fail to select, most likely because developers never noticed. This leads to an error when trying to apply overlays:
"config with overlays but CONFIG_OF_LIBFDT_OVERLAY not set"
TI ARM boards select the option by default. Extend this to all systems that select the FIT option. This only affects the default, overlay support can still be disabled manually in the configuration.
Signed-off-by: Laurent Pinchart laurent.pinchart@ideasonboard.com
I'm posting this as an RFC to get feedback. If the idea is generally appreciated, I'll update the defconfig files accordingly.
For i.MX, R-Car2/3, STM32MP1xx , this could be enabled just fine.
Enabling it for all fitImage systems sounds even better however, and the few which do not need DTO could disable this in board defconfig instead, I suspect there are fewer of those.
lib/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/Kconfig b/lib/Kconfig index 549bd3577851..d309ccf83c03 100644 --- a/lib/Kconfig +++ b/lib/Kconfig @@ -823,7 +823,7 @@ config OF_LIBFDT_ASSUME_MASK config OF_LIBFDT_OVERLAY bool "Enable the FDT library overlay support" depends on OF_LIBFDT
- default y if ARCH_OMAP2PLUS || ARCH_KEYSTONE
- default y if FIT
Reviewed-by: Marek Vasut marex@denx.de

Hi Laurent,
On Sun, 29 Jan 2023 at 09:30, Laurent Pinchart laurent.pinchart@ideasonboard.com wrote:
FIT image support is commonly used to bundle a kernel image, a device tree, and device tree overlays. Applying overlays requires the OF_LIBFDT_OVERLAY config option to be set, which lots of boards fail to select, most likely because developers never noticed. This leads to an error when trying to apply overlays:
"config with overlays but CONFIG_OF_LIBFDT_OVERLAY not set"
TI ARM boards select the option by default. Extend this to all systems that select the FIT option. This only affects the default, overlay support can still be disabled manually in the configuration.
Signed-off-by: Laurent Pinchart laurent.pinchart@ideasonboard.com
I'm posting this as an RFC to get feedback. If the idea is generally appreciated, I'll update the defconfig files accordingly.
lib/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Reviewed-by: Simon Glass sjg@chromium.org
But I wonder what the code-size increase is?
Regards, SImon

On Sun, Jan 29, 2023 at 06:30:22PM +0200, Laurent Pinchart wrote:
FIT image support is commonly used to bundle a kernel image, a device tree, and device tree overlays. Applying overlays requires the OF_LIBFDT_OVERLAY config option to be set, which lots of boards fail to select, most likely because developers never noticed. This leads to an error when trying to apply overlays:
"config with overlays but CONFIG_OF_LIBFDT_OVERLAY not set"
TI ARM boards select the option by default. Extend this to all systems that select the FIT option. This only affects the default, overlay support can still be disabled manually in the configuration.
Signed-off-by: Laurent Pinchart laurent.pinchart@ideasonboard.com Reviewed-by: Marek Vasut marex@denx.de Reviewed-by: Simon Glass sjg@chromium.org
I'm posting this as an RFC to get feedback. If the idea is generally appreciated, I'll update the defconfig files accordingly.
Alright, so, I put this through a world build, and most platforms grow by 4-5kB. I think that means what I'd really like to see as a starting point is more SoCs doing an "imply OF_LIBFDT_OVERLAY if OF_LIBFDT && FIT" or adding to the default y list below, or similar. If that brings us to the point where a good number of ARM boards with FIT are enabling it, we can default y if ARM, for example. But right now it's more like several hundred boards growing in size, which is uncomfortable, given the size it's growing by.

Hi Tom,
On Fri, Mar 10, 2023 at 01:12:24PM -0500, Tom Rini wrote:
On Sun, Jan 29, 2023 at 06:30:22PM +0200, Laurent Pinchart wrote:
FIT image support is commonly used to bundle a kernel image, a device tree, and device tree overlays. Applying overlays requires the OF_LIBFDT_OVERLAY config option to be set, which lots of boards fail to select, most likely because developers never noticed. This leads to an error when trying to apply overlays:
"config with overlays but CONFIG_OF_LIBFDT_OVERLAY not set"
TI ARM boards select the option by default. Extend this to all systems that select the FIT option. This only affects the default, overlay support can still be disabled manually in the configuration.
Signed-off-by: Laurent Pinchart laurent.pinchart@ideasonboard.com Reviewed-by: Marek Vasut marex@denx.de Reviewed-by: Simon Glass sjg@chromium.org
I'm posting this as an RFC to get feedback. If the idea is generally appreciated, I'll update the defconfig files accordingly.
Alright, so, I put this through a world build, and most platforms grow by 4-5kB.
Thank you for testing this, despite the patch falling off my radar.
I think that means what I'd really like to see as a starting point is more SoCs doing an "imply OF_LIBFDT_OVERLAY if OF_LIBFDT && FIT" or adding to the default y list below, or similar. If that brings us to the point where a good number of ARM boards with FIT are enabling it, we can default y if ARM, for example. But right now it's more like several hundred boards growing in size, which is uncomfortable, given the size it's growing by.
I'm fine with that.
I've submitted the original patch because I had to update a vendor-supplied U-Boot binary to get overlay support, which ended up being a bit rabbit hole for various reasons. I thought it would be nice to save users from this kind of trouble. I can send patches to enable the option for SoC I care about, but generally speaking, who should decide which SoC(s) should imply OF_LIBFDT_OVERLAY ?
participants (4)
-
Laurent Pinchart
-
Marek Vasut
-
Simon Glass
-
Tom Rini