Re: [PATCH v2 05/19] ARM: turn CONFIG_ATAGS off by default

From: Geert Uytterhoeven

Date: Tue Jul 14 2026 - 10:56:29 EST


Hi Arnd,

On Wed, 1 Jul 2026 at 23:29, Arnd Bergmann <arnd@xxxxxxxxxx> wrote:
> From: Arnd Bergmann <arnd@xxxxxxxx>
>
> Only a very small number of machines remain that rely on
> traditional board files with the ATAGS boot data instead
> of devicetree, and we have not accepted new ones for
> a decade.
>
> Most of the remaining ones are on their way out of the
> kernel, but the Kconfig option that controls ATAGS
> is still enabled by default.
>
> To reflect the actual status of ATAGS support and alert
> the remaining users of upstream and out-of-tree platforms
> with this, chanyge it to being default-disabled and
> add a dependency on CONFIG_EXPERT.
>
> The board specific defconfig files that rely on ATAGS
> are changed to turn on both EXPERT and ATAGS if they
> were not doing thath already, and the ones that explicitly
> turned it off before no longer need to.
>
> Acked-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>

Thanks for your patch, which is now commit 4d9226b820c165b7 ("ARM:
turn CONFIG_ATAGS off by default") in soc/for-next.

> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -1390,12 +1390,15 @@ config ARCH_WANT_FLAT_DTB_INSTALL
>
> config ATAGS
> bool "Support for the traditional ATAGS boot data passing"
> - default y
> + depends on EXPERT
> help
> - This is the traditional way of passing data to the kernel at boot
> - time. If you are solely relying on the flattened device tree (or
> - the ARM_ATAG_DTB_COMPAT option) then you may unselect this option
> - to remove ATAGS support from your kernel binary.
> + This is the traditional way of passing data to the kernel at
> + boot but is now only used by a few of the oldest ARMv4 and
> + ARMv5 machines. Users that still rely on ATAGS should plan
> + on migrating to devicetree based booting.
> +
> + Support for ATAGS will be removed when the last machine using
> + it is either converted to DT or removed.
>
> config DEPRECATED_PARAM_STRUCT
> bool "Provide old way to pass kernel parameters"

I don't know how much of this is used by systems with old boot loaders
that use a combination of (appended) DT and ATAGS.

E.g. the old U-Boots on Marzen (R-Car H1) and KZM-A9-GT (SH-Mobile AG5)
rely on CONFIG_ARM_ATAG_DTB_COMPAT=y to pass the kernel command line,
and that still seems to work fine without ATAGS.

Note that to boot a proper multi-platform kernel on KZM-A9-GT, I still
need "[PATCH v2 1/2] ARM: decompressor: support memory start validation
for appended DTB"[1], which RMK doesn't like. That patch is so old
that I forgot how to make upstream boot on KZM-A9-GT without it...

Anyway, it looks like all my boards boot without CONFIG_ATAGS.
Thanks!

[1] https://lore.kernel.org/20240121203009.9257-2-ansuelsmth@xxxxxxxxx/

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds