[PATCH v3 00/20] Convert extension support to UCLASS and adds its support to boot flows

Kory Maincent (TI.com)
2025-10-13T13:32:47Z

This series converts the extension board framework to use UCLASS as
requested by Simon Glass, then adds extension support to pxe_utils
and bootmeth_efi (not tested) to enable extension boards devicetree load
in the standard boot process.

I can't test the imx8 extension scan enabled by the
imx8mm-cl-iot-gate_defconfig as I don't have this board.
I also can't test the efi bootmeth change as I don't have such board.

Changes in v3:
- Reorder the patches inside the series as several config were broken
in the middle of the series.
- Use U_BOOT_DRVINFO macro instead of manually bind the drivers.
- Use uclass_first_device_err instead of extension_get_dev function.
- Made few fixes in documentation and Kconfig dependency.
- Made few changes of error value returned.
- Add a patch to document the extension structure.
- Add a patch to fix CAPE_EEPROM_BUS_NUM Kconfig dependency

Changes in v2:
- Fixes few build errors.
- Add patches to move the extension support and board scan out of XPL
images build.

Signed-off-by: Kory Maincent (TI.com) <kory.maincent@bootlin.com>
---
Kory Maincent (TI.com) (20):
MAINTAINERS: Add maintainer for extension board support
board: ti: Exclude cape detection from XPL builds
board: ti: Fix CAPE_EEPROM_BUS_NUM Kconfig dependency
board: sunxi: Exclude DIP detection from XPL builds
board: compulab: Exclude compulab extension board detection from XPL builds
include: extension_board: Document the extension structure
boot: Move extension board support from cmd/ to boot/
boot: Add UCLASS support for extension boards
board: ti: Refactor cape detection code for readability
board: ti: Convert cape detection to use UCLASS framework
board: sunxi: Refactor CHIP board extension code
board: sunxi: Convert extension support to UCLASS framework
board: sandbox: Improve extension board scan implementation
board: sandbox: Convert extension support to UCLASS framework
board: compulab: Convert imx8mm-cl-iot-gate to UCLASS extension framework
boot: Remove legacy extension board support
boot: extension: Move overlay apply custom logic to command level
boot: pxe_utils: Add extension board devicetree overlay support
boot: bootmeth_efi: Refactor distro_efi_try_bootflow_files return logic
boot: bootmeth_efi: Add extension board devicetree overlay support

MAINTAINERS | 9 +
.../imx8mm-cl-iot-gate/imx8mm-cl-iot-gate.c | 70 ++++----
board/sandbox/sandbox.c | 26 ++-
board/sunxi/Makefile | 2 +-
board/sunxi/chip.c | 36 ++--
board/ti/common/Kconfig | 2 +-
board/ti/common/Makefile | 2 +-
board/ti/common/cape_detect.c | 56 ++++---
boot/Kconfig | 4 +
boot/Makefile | 1 +
boot/bootmeth_efi.c | 79 +++++++--
boot/extension-uclass.c | 93 +++++++++++
boot/pxe_utils.c | 92 +++++++++++
cmd/Kconfig | 3 -
cmd/extension_board.c | 183 ++++++++++-----------
doc/usage/cmd/extension.rst | 29 ++--
include/dm/uclass-id.h | 1 +
include/extension_board.h | 85 ++++++++--
18 files changed, 541 insertions(+), 232 deletions(-)
---
base-commit: 8e7f8c1248e8adfb525a2a4ea56ebf7e54ff5d7a
change-id: 20250916-feature_sysboot_extension_board-958dd0072565

Best regards,
--
Köry Maincent, Bootlin
Embedded Linux and kernel engineering