[PATCH 00/10] ARM32: allow disabling ATAGS and DT fallback

Ahmad Fatoum a.fatoum at pengutronix.de
Wed May 28 03:50:36 PDT 2025


New platforms shouldn't use atags, but we compile the code always.

New platforms should use device tree, but there may be binding
incompatibilities between barebox embedded device tree and device tree
shipped with the kernel.

For that reason, this series introduces two config options:

 - CONFIG_BOOT_ATAGS: Now disabled by default as it has been
   replaced by device trees

 - BOOTM_OFTREE_FALLBACK: Enabled by default, but should likely
   be disabled in products, so the device tree should be explicitly
   suppied.

Ahmad Fatoum (10):
  arch: add new HAVE_ARCH_BOOTM_OFTREE symbol
  bootm: enable CONFIG_BOOTM_OFTREE by default
  ARM: lib32: disable ATAGS support by default
  kvx: bootm: enforce existence of device tree
  bootm: booti: make device tree optional
  filetype: add new file type for 0-sized files
  bootm: have bootm_get_devicetree return NULL if passed empty DT
  bootm: make fallback to barebox internal tree optional
  commands: oftree: add option to return device tree without fixups
  of: drop undefined fdt_get_tree declaration

 .../migration-guides/migration-2025.07.0.rst  |   7 +
 arch/Kconfig                                  |   6 +
 arch/arm/Kconfig                              |  13 +-
 arch/arm/configs/animeo_ip_defconfig          |   1 +
 arch/arm/configs/at91rm9200ek_defconfig       |   1 +
 arch/arm/configs/at91sam9260ek_defconfig      |   1 +
 .../configs/at91sam9261ek_bootstrap_defconfig |   1 +
 arch/arm/configs/at91sam9261ek_defconfig      |   1 +
 arch/arm/configs/at91sam9g10ek_defconfig      |   1 +
 arch/arm/configs/at91sam9g20ek_defconfig      |   1 +
 arch/arm/configs/at91sam9m10g45ek_defconfig   |   1 +
 arch/arm/configs/at91sam9m10ihd_defconfig     |   1 +
 arch/arm/configs/at91sam9n12ek_defconfig      |   1 +
 arch/arm/configs/dss11_defconfig              |   1 +
 arch/arm/configs/haba_knx_lite_defconfig      |   1 +
 arch/arm/configs/imx23_defconfig              |   1 +
 arch/arm/configs/imx28_defconfig              |   1 +
 arch/arm/configs/kindle-mx50_defconfig        |   1 +
 arch/arm/configs/multi_v5_v6_defconfig        |   1 +
 arch/arm/configs/mvebu_defconfig              |   1 +
 arch/arm/configs/omap_defconfig               |   1 +
 arch/arm/configs/pm9261_defconfig             |   1 +
 arch/arm/configs/pm9263_defconfig             |   1 +
 arch/arm/configs/pm9g45_defconfig             |   1 +
 arch/arm/configs/qil_a9260_defconfig          |   1 +
 arch/arm/configs/qil_a9g20_defconfig          |   1 +
 arch/arm/configs/rockchip_v7a_defconfig       |   1 +
 arch/arm/configs/telit_evk_pro3_defconfig     |   1 +
 arch/arm/configs/tny_a9260_defconfig          |   1 +
 .../arm/configs/tny_a9263_bootstrap_defconfig |   1 +
 arch/arm/configs/tny_a9263_defconfig          |   1 +
 arch/arm/configs/tny_a9g20_defconfig          |   1 +
 arch/arm/configs/usb_a9260_defconfig          |   1 +
 .../arm/configs/usb_a9263_bootstrap_defconfig |   1 +
 arch/arm/configs/usb_a9263_defconfig          |   1 +
 arch/arm/configs/usb_a9g20_defconfig          |   1 +
 arch/arm/include/asm/armlinux.h               |  25 +-
 arch/arm/lib32/Makefile                       |   1 +
 arch/arm/lib32/armlinux.c                     | 234 +-----------------
 arch/arm/lib32/atags.c                        | 230 +++++++++++++++++
 arch/arm/lib32/bootm.c                        |   2 +-
 arch/arm/lib32/bootu.c                        |  11 +-
 arch/arm/lib32/bootz.c                        |   9 +-
 arch/arm/lib64/armlinux.c                     |   2 +-
 arch/arm/mach-imx/Kconfig                     |   1 +
 arch/kvx/Kconfig                              |   1 +
 arch/kvx/lib/bootm.c                          |   2 +
 arch/mips/Kconfig                             |   1 +
 arch/powerpc/Kconfig                          |   1 +
 arch/powerpc/lib/ppclinux.c                   |   2 +-
 arch/riscv/Kconfig                            |   1 +
 arch/riscv/lib/bootm.c                        |   2 +-
 arch/sandbox/Kconfig                          |   1 +
 arch/x86/configs/efi_defconfig                |   1 -
 commands/Kconfig                              |   8 +-
 commands/oftree.c                             |  14 +-
 common/Kconfig                                |  22 +-
 common/booti.c                                |  14 +-
 common/bootm.c                                |  14 +-
 common/filetype.c                             |   3 +-
 common/oftree.c                               |  22 +-
 include/filetype.h                            |   1 +
 include/of.h                                  |  37 ++-
 63 files changed, 447 insertions(+), 274 deletions(-)
 create mode 100644 arch/arm/lib32/atags.c

-- 
2.39.5




More information about the barebox mailing list