All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 0/3] Add first-class support for all active upstream Linux versions
@ 2026-10-10 20:15 Titouan Christophe via buildroot
  2026-10-10 20:15 ` [Buildroot] [PATCH 1/3] linux: always select host-uboot-tools for mips Titouan Christophe via buildroot
                   ` (2 more replies)
  0 siblings, 3 replies; 18+ messages in thread
From: Titouan Christophe via buildroot @ 2026-10-10 20:15 UTC (permalink / raw)
  To: buildroot; +Cc: ju.o, thomas.petazzoni, arnout, git, thomas.perale

Currently we have many configs based on active upstream Kernel versions.
However, they are all using a custom kernel version string, and must therefore
be updated individually. Since there are many security fixes landing each week
in Linux, and Buildroot contains scripts to automate these version bumps,
having an option to follow the upstream releases automatically helps to:

- Reduce the number of individual patches to update each and every board
- Get frequent security updates on boards that don't receive patches frequently

This idea had already been submitted a while ago in
https://patchwork.buildroot.org/project/buildroot/patch/20241108231236.2838-1-git@jdknight.me/

The script utils/bump-stable-kernel-versions remains unchanged, because its
key regular expression that perform the updates also matches these new
symbols defaults.

Titouan Christophe (3):
  linux: always select host-uboot-tools for mips
  linux: add first-class support for all upstream linux versions
  configs: update defconfigs with custom versions to
    BR2_LINUX_KERNEL_LATEST_X_Y

 configs/aarch64_efi_defconfig                 |  3 +-
 configs/acmesystems_acqua_a5_256mb_defconfig  |  3 +-
 configs/acmesystems_acqua_a5_512mb_defconfig  |  3 +-
 configs/am574x_idk_defconfig                  |  3 +-
 configs/amarula_vyasa_rk3288_defconfig        |  3 +-
 configs/arm_fvp_ebbr_defconfig                |  3 +-
 configs/armadeus_apf27_defconfig              |  3 +-
 configs/armadeus_apf28_defconfig              |  3 +-
 configs/armadeus_apf51_defconfig              |  3 +-
 configs/asus_tinker-s_rk3288_defconfig        |  3 +-
 configs/asus_tinker_rk3288_defconfig          |  3 +-
 configs/avenger96_defconfig                   |  3 +-
 configs/bananapi_m2_berry_defconfig           |  3 +-
 configs/bananapi_m2_ultra_defconfig           |  3 +-
 configs/beaglebone_defconfig                  |  3 +-
 configs/beagleboneai64_defconfig              |  3 +-
 configs/beagleboneai_defconfig                |  3 +-
 configs/beagleplay_defconfig                  |  3 +-
 configs/beagley_ai_defconfig                  |  3 +-
 configs/broadcom_northstar_defconfig          |  3 +-
 configs/chromebook_elm_defconfig              |  3 +-
 configs/ci20_defconfig                        |  3 +-
 configs/engicam_px30_core_defconfig           |  3 +-
 configs/freescale_p1025twr_defconfig          |  3 +-
 configs/freescale_t1040d4rdb_defconfig        |  3 +-
 configs/freescale_t2080_qds_rdb_defconfig     |  3 +-
 configs/friendlyarm_nanopi_neo_defconfig      |  3 +-
 configs/friendlyarm_nanopi_r2s_defconfig      |  3 +-
 configs/friendlyarm_nanopi_r3s_defconfig      |  3 +-
 configs/globalscale_espressobin_defconfig     |  3 +-
 configs/grinn_chiliboard_defconfig            |  3 +-
 configs/grinn_liteboard_defconfig             |  3 +-
 configs/hifive_unleashed_defconfig            |  3 +-
 configs/hifive_unmatched_defconfig            |  3 +-
 configs/icnova-a20-adb4006_defconfig          |  3 +-
 configs/imx23evk_defconfig                    |  3 +-
 configs/imx28evk_defconfig                    |  3 +-
 configs/imx6-sabreauto_defconfig              |  3 +-
 configs/imx6-sabresd_defconfig                |  3 +-
 configs/imx6-sabresd_qt5_defconfig            |  3 +-
 configs/imx6slevk_defconfig                   |  3 +-
 configs/imx6sx-sdb_defconfig                  |  3 +-
 configs/imx6ulevk_defconfig                   |  3 +-
 configs/imx6ullevk_defconfig                  |  3 +-
 configs/imx6ulpico_defconfig                  |  3 +-
 configs/imx6ulz_bsh_smm_m2_defconfig          |  3 +-
 configs/imx7d-sdb_defconfig                   |  3 +-
 configs/imx7dpico_defconfig                   |  3 +-
 configs/imx8mm-evk_defconfig                  |  3 +-
 configs/imx8mn-ddr4-evk_defconfig             |  3 +-
 configs/imx8mn_bsh_smm_s2_defconfig           |  3 +-
 configs/imx8mn_bsh_smm_s2_pro_defconfig       |  3 +-
 configs/imx8mp-evk_defconfig                  |  3 +-
 configs/imx8mqevk_defconfig                   |  3 +-
 configs/imx93-evk_defconfig                   |  3 +-
 configs/imxrt1050-evk_defconfig               |  3 +-
 configs/khadas_vim3_defconfig                 |  3 +-
 configs/kontron_smarc_sal28_defconfig         |  3 +-
 configs/lafrite_defconfig                     |  3 +-
 configs/linksprite_pcduino_defconfig          |  3 +-
 configs/loongarch64_efi_defconfig             |  3 +-
 configs/mangopi_mq1rdw2_defconfig             |  3 +-
 configs/mender_x86_64_efi_defconfig           |  3 +-
 configs/microchip_sama7g5ek_mmc_defconfig     |  3 +-
 configs/microchip_sama7g5ek_mmc_dev_defconfig |  3 +-
 configs/minnowboard_max_defconfig             |  3 +-
 configs/mx51evk_defconfig                     |  3 +-
 configs/mx53loco_defconfig                    |  3 +-
 configs/mx6cubox_defconfig                    |  3 +-
 configs/mx6sx_udoo_neo_defconfig              |  3 +-
 configs/nexbox_a95x_defconfig                 |  3 +-
 configs/nezha_defconfig                       |  3 +-
 configs/olimex_a10_olinuxino_lime_defconfig   |  3 +-
 configs/olimex_a13_olinuxino_defconfig        |  3 +-
 configs/olimex_a20_olinuxino_lime2_defconfig  |  3 +-
 configs/olimex_a20_olinuxino_lime_defconfig   |  3 +-
 configs/olimex_a20_olinuxino_micro_defconfig  |  3 +-
 configs/olimex_a33_olinuxino_defconfig        |  3 +-
 configs/olimex_a64_olinuxino_defconfig        |  3 +-
 configs/olimex_imx233_olinuxino_defconfig     |  3 +-
 configs/orangepi_5_plus_defconfig             |  3 +-
 configs/orangepi_lite_defconfig               |  3 +-
 configs/orangepi_one_defconfig                |  3 +-
 configs/orangepi_pc2_defconfig                |  3 +-
 configs/orangepi_pc_defconfig                 |  3 +-
 configs/orangepi_pc_plus_defconfig            |  3 +-
 configs/orangepi_r1_defconfig                 |  3 +-
 configs/orangepi_zero2w_defconfig             |  3 +-
 configs/orangepi_zero3_defconfig              |  3 +-
 configs/orangepi_zero_defconfig               |  3 +-
 configs/orangepi_zero_plus2_defconfig         |  3 +-
 configs/orangepi_zero_plus_defconfig          |  3 +-
 configs/pc_x86_64_bios_defconfig              |  3 +-
 configs/pc_x86_64_efi_defconfig               |  3 +-
 configs/pine64_defconfig                      |  3 +-
 configs/pine64_pinecube_defconfig             |  3 +-
 configs/pine64_star64_defconfig               |  3 +-
 configs/polyhex_debix_model_a_defconfig       |  3 +-
 configs/qemu_aarch64_ebbr_defconfig           |  3 +-
 configs/qemu_aarch64_sbsa_defconfig           |  3 +-
 configs/qemu_aarch64_virt_defconfig           |  3 +-
 configs/qemu_arm_ebbr_defconfig               |  3 +-
 configs/qemu_arm_versatile_defconfig          |  3 +-
 configs/qemu_arm_vexpress_defconfig           |  3 +-
 configs/qemu_arm_vexpress_tz_defconfig        |  3 +-
 configs/qemu_hppa_b160l_defconfig             |  3 +-
 configs/qemu_loongarch64_virt_efi_defconfig   |  3 +-
 configs/qemu_m68k_mcf5208_defconfig           |  3 +-
 configs/qemu_m68k_q800_defconfig              |  3 +-
 configs/qemu_microblazebe_mmu_defconfig       |  3 +-
 configs/qemu_microblazeel_mmu_defconfig       |  3 +-
 configs/qemu_mips32r2_malta_defconfig         |  3 +-
 configs/qemu_mips32r2el_malta_defconfig       |  3 +-
 configs/qemu_mips32r6_malta_defconfig         |  3 +-
 configs/qemu_mips32r6el_malta_defconfig       |  3 +-
 configs/qemu_mips64_malta_defconfig           |  3 +-
 configs/qemu_mips64el_malta_defconfig         |  3 +-
 configs/qemu_mips64r6_malta_defconfig         |  3 +-
 configs/qemu_mips64r6el_malta_defconfig       |  3 +-
 configs/qemu_or1k_defconfig                   |  3 +-
 configs/qemu_ppc64_e5500_defconfig            |  3 +-
 configs/qemu_ppc64_pseries_defconfig          |  3 +-
 configs/qemu_ppc64le_powernv10_defconfig      |  3 +-
 configs/qemu_ppc64le_powernv11_defconfig      |  3 +-
 configs/qemu_ppc64le_powernv8_defconfig       |  3 +-
 configs/qemu_ppc64le_pseries_defconfig        |  3 +-
 configs/qemu_ppc_bamboo_defconfig             |  3 +-
 configs/qemu_ppc_e500mc_defconfig             |  3 +-
 configs/qemu_ppc_g3beige_defconfig            |  3 +-
 configs/qemu_ppc_mac99_defconfig              |  3 +-
 configs/qemu_ppc_mpc8544ds_defconfig          |  3 +-
 configs/qemu_riscv32_nommu_virt_defconfig     |  3 +-
 configs/qemu_riscv32_virt_defconfig           |  3 +-
 configs/qemu_riscv64_nommu_virt_defconfig     |  3 +-
 configs/qemu_riscv64_virt_defconfig           |  3 +-
 configs/qemu_riscv64_virt_efi_defconfig       |  3 +-
 configs/qemu_s390x_defconfig                  |  3 +-
 configs/qemu_sh4_r2d_defconfig                |  3 +-
 configs/qemu_sh4eb_r2d_defconfig              |  3 +-
 configs/qemu_sparc64_sun4u_defconfig          |  3 +-
 configs/qemu_sparc_ss10_defconfig             |  3 +-
 configs/qemu_x86_64_defconfig                 |  3 +-
 configs/qemu_x86_64_efi_defconfig             |  3 +-
 configs/qemu_x86_defconfig                    |  3 +-
 configs/qemu_xtensa_lx60_defconfig            |  3 +-
 configs/qemu_xtensa_lx60_nommu_defconfig      |  3 +-
 configs/roc_pc_rk3399_defconfig               |  3 +-
 configs/rock4se_defconfig                     |  3 +-
 configs/rock5b_defconfig                      |  3 +-
 configs/rockpro64_defconfig                   |  3 +-
 configs/rockpro64_ebbr_defconfig              |  3 +-
 configs/sipeed_licheepi_4a_defconfig          |  3 +-
 configs/sipeed_licheepi_zero_defconfig        |  3 +-
 configs/solidrun_clearfog_defconfig           |  3 +-
 configs/solidrun_clearfog_gt_8k_defconfig     |  3 +-
 configs/solidrun_macchiatobin_defconfig       |  3 +-
 configs/spike_riscv32_defconfig               |  3 +-
 configs/spike_riscv64_defconfig               |  3 +-
 configs/stm32f429_disco_xip_defconfig         |  3 +-
 configs/stm32f469_disco_sd_defconfig          |  3 +-
 configs/stm32f469_disco_xip_defconfig         |  3 +-
 configs/stm32f746_disco_sd_defconfig          |  3 +-
 configs/stm32f769_disco_sd_defconfig          |  3 +-
 configs/stm32h747_disco_sd_defconfig          |  3 +-
 configs/stm32mp135f_dk_defconfig              |  3 +-
 configs/stm32mp157a_dk1_defconfig             |  3 +-
 configs/stm32mp157c_dk2_defconfig             |  3 +-
 configs/stm32mp157c_odyssey_defconfig         |  3 +-
 configs/ti_am62x_sk_defconfig                 |  3 +-
 configs/ti_tda4vm_sk_defconfig                |  3 +-
 configs/visionfive2_defconfig                 |  3 +-
 configs/wandboard_defconfig                   |  3 +-
 configs/warp7_defconfig                       |  3 +-
 linux/Config.in                               | 55 +++++++++++++++++--
 linux/linux.mk                                |  2 +-
 package/linux-headers/Config.in.host          |  4 +-
 176 files changed, 224 insertions(+), 356 deletions(-)

-- 
2.55.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [Buildroot] [PATCH 1/3] linux: always select host-uboot-tools for mips
  2026-10-10 20:15 [Buildroot] [PATCH 0/3] Add first-class support for all active upstream Linux versions Titouan Christophe via buildroot
@ 2026-10-10 20:15 ` Titouan Christophe via buildroot
  2026-10-11 12:30   ` Peter Korsgaard
  2026-10-10 20:15 ` [Buildroot] [PATCH 2/3] linux: add first-class support for all upstream linux versions Titouan Christophe via buildroot
  2026-10-10 20:15 ` [Buildroot] [PATCH 3/3] configs: update defconfigs with custom versions to BR2_LINUX_KERNEL_LATEST_X_Y Titouan Christophe via buildroot
  2 siblings, 1 reply; 18+ messages in thread
From: Titouan Christophe via buildroot @ 2026-10-10 20:15 UTC (permalink / raw)
  To: buildroot; +Cc: ju.o, thomas.petazzoni, arnout, git, thomas.perale

Since Buildroot commit 40e266ccb9 [1], host-uboot-tools was always selected
for the latest Linux kernel. This change is intended for autobuilders, and
was introduced in Buildroot while the latest kernel was 6.12.

However, further investigation seem to indicate that itb images were
generated for mips for a much longer time. Linux commit eed0eabd12 [2]
seem to enable that image format, and was released in Linux 4.9.

This version being EOL for quite some time, we can therefore assume
any "not so old" Linux for mips will need host-uboot-tools to finalize
this image, and therefore we should select it when building Linux.

[1] linux: select host-uboot-tools with FIT on mips
    https://gitlab.com/buildroot.org/buildroot/-/commit/40e266ccb9
[2] MIPS: generic: Introduce generic DT-based board support
    https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=eed0eabd12ef061821cbfa20d903476e07645320

Signed-off-by: Titouan Christophe <titouan.christophe@mind.be>
---
 linux/Config.in | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/linux/Config.in b/linux/Config.in
index 99efb56b49..3521fe5cd5 100644
--- a/linux/Config.in
+++ b/linux/Config.in
@@ -4,6 +4,9 @@ config BR2_LINUX_KERNEL
 	bool "Linux Kernel"
 	select BR2_PACKAGE_HOST_KMOD # Unconditional, even if modules not enabled
 	select BR2_PACKAGE_HOST_IMAGEMAGICK if BR2_LINUX_KERNEL_CUSTOM_LOGO_PATH != ""
+	# mips always generates an ITB image
+	select BR2_PACKAGE_HOST_UBOOT_TOOLS if BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el
+	select BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SUPPORT if BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el
 	help
 	  Enable this option if you want to build a Linux kernel for
 	  your embedded device
@@ -32,9 +35,6 @@ choice
 config BR2_LINUX_KERNEL_LATEST_VERSION
 	bool "Latest version (7.2)"
 	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_7_2 if BR2_KERNEL_HEADERS_AS_KERNEL
-	# mips always generates an ITB image
-	select BR2_PACKAGE_HOST_UBOOT_TOOLS if BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el
-	select BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SUPPORT if BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el
 
 config BR2_LINUX_KERNEL_LATEST_CIP_VERSION
 	bool "Latest CIP SLTS version (5.10.254-cip72)"
-- 
2.55.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [Buildroot] [PATCH 2/3] linux: add first-class support for all upstream linux versions
  2026-10-10 20:15 [Buildroot] [PATCH 0/3] Add first-class support for all active upstream Linux versions Titouan Christophe via buildroot
  2026-10-10 20:15 ` [Buildroot] [PATCH 1/3] linux: always select host-uboot-tools for mips Titouan Christophe via buildroot
@ 2026-10-10 20:15 ` Titouan Christophe via buildroot
  2026-10-11 12:32   ` Peter Korsgaard
  2026-10-11 13:12   ` Peter Korsgaard
  2026-10-10 20:15 ` [Buildroot] [PATCH 3/3] configs: update defconfigs with custom versions to BR2_LINUX_KERNEL_LATEST_X_Y Titouan Christophe via buildroot
  2 siblings, 2 replies; 18+ messages in thread
From: Titouan Christophe via buildroot @ 2026-10-10 20:15 UTC (permalink / raw)
  To: buildroot; +Cc: ju.o, thomas.petazzoni, arnout, git, thomas.perale

Add new KConfig symbols for all actively supported longterm versions of the
Linux kernel. This makes it easier for individual configs to follow updates
of their kernels, without having to frequently update them. This should
generally improve the security of the target systems, which receive frequent
security updates while preserving a stable feature set.

Signed-off-by: Titouan Christophe <titouan.christophe@mind.be>
---
 linux/Config.in                      | 49 ++++++++++++++++++++++++++--
 linux/linux.mk                       |  2 +-
 package/linux-headers/Config.in.host |  4 +--
 3 files changed, 48 insertions(+), 7 deletions(-)

diff --git a/linux/Config.in b/linux/Config.in
index 3521fe5cd5..717c964dcd 100644
--- a/linux/Config.in
+++ b/linux/Config.in
@@ -32,15 +32,53 @@ config BR2_LINUX_NEEDS_MODULES
 choice
 	prompt "Kernel version"
 
+config BR2_LINUX_KERNEL_LATEST_SERIES
+	# Helper symbol to indicate if one of the "latest" kernel
+	# (either the very latest one or from a longterm supported series)
+	# has been selected
+	bool
+
 config BR2_LINUX_KERNEL_LATEST_VERSION
 	bool "Latest version (7.2)"
 	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_7_2 if BR2_KERNEL_HEADERS_AS_KERNEL
+	select BR2_LINUX_KERNEL_LATEST_SERIES
+
+config BR2_LINUX_KERNEL_LATEST_6_18
+	bool "Long term 6.18"
+	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_6_18 if BR2_KERNEL_HEADERS_AS_KERNEL
+	select BR2_LINUX_KERNEL_LATEST_SERIES
+
+config BR2_LINUX_KERNEL_LATEST_6_12
+	bool "Long term 6.12"
+	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_6_12 if BR2_KERNEL_HEADERS_AS_KERNEL
+	select BR2_LINUX_KERNEL_LATEST_SERIES
+
+config BR2_LINUX_KERNEL_LATEST_6_6
+	bool "Long term 6.6"
+	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_6_12 if BR2_KERNEL_HEADERS_AS_KERNEL
+	select BR2_LINUX_KERNEL_LATEST_SERIES
+
+config BR2_LINUX_KERNEL_LATEST_6_1
+	bool "Long term 6.1"
+	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_6_1 if BR2_KERNEL_HEADERS_AS_KERNEL
+	select BR2_LINUX_KERNEL_LATEST_SERIES
+
+config BR2_LINUX_KERNEL_LATEST_5_15
+	bool "Long term 5.15"
+	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_15 if BR2_KERNEL_HEADERS_AS_KERNEL
+	select BR2_LINUX_KERNEL_LATEST_SERIES
+
+config BR2_LINUX_KERNEL_LATEST_5_10
+	bool "Long term 5.10"
+	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_10 if BR2_KERNEL_HEADERS_AS_KERNEL
+	select BR2_LINUX_KERNEL_LATEST_SERIES
 
 config BR2_LINUX_KERNEL_LATEST_CIP_VERSION
 	bool "Latest CIP SLTS version (5.10.254-cip72)"
 	# Support was introduced in Linux 5.19
 	depends on !BR2_loongarch64
 	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_10 if BR2_KERNEL_HEADERS_AS_KERNEL
+	select BR2_LINUX_KERNEL_LATEST_SERIES
 	help
 	  CIP launched in the spring of 2016 to address the needs of
 	  organizations in industries such as power generation and
@@ -63,6 +101,7 @@ config BR2_LINUX_KERNEL_LATEST_CIP_RT_VERSION
 	# Support was introduced in Linux 5.19
 	depends on !BR2_loongarch64
 	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_10 if BR2_KERNEL_HEADERS_AS_KERNEL
+	select BR2_LINUX_KERNEL_LATEST_SERIES
 	help
 	  Same as the CIP version, but this is the PREEMPT_RT realtime
 	  variant.
@@ -144,6 +183,12 @@ config BR2_LINUX_KERNEL_CUSTOM_REPO_GIT_SUBMODULES
 config BR2_LINUX_KERNEL_VERSION
 	string
 	default "7.2.9" if BR2_LINUX_KERNEL_LATEST_VERSION
+	default "6.18.55" if BR2_LINUX_KERNEL_LATEST_6_18
+	default "6.12.112" if BR2_LINUX_KERNEL_LATEST_6_12
+	default "6.6.158" if BR2_LINUX_KERNEL_LATEST_6_6
+	default "6.1.189" if BR2_LINUX_KERNEL_LATEST_6_1
+	default "5.15.222" if BR2_LINUX_KERNEL_LATEST_5_15
+	default "5.10.271" if BR2_LINUX_KERNEL_LATEST_5_10
 	default "5.10.254-cip72" if BR2_LINUX_KERNEL_LATEST_CIP_VERSION
 	default "5.10.254-cip72-rt32" if BR2_LINUX_KERNEL_LATEST_CIP_RT_VERSION
 	default BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE \
@@ -189,9 +234,7 @@ config BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG
 	# requires host-openssl, so select it for the latest kernel
 	# version and the latest CIP version.
 	# This is mainly needed to fix autobuilder testing.
-	select BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL if \
-	       BR2_LINUX_KERNEL_LATEST_VERSION || \
-	       BR2_LINUX_KERNEL_LATEST_CIP_VERSION
+	select BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL if BR2_LINUX_KERNEL_LATEST_SERIES
 	help
 	  This option will use the default configuration for the
 	  selected architecture. I.e, it is equivalent to running
diff --git a/linux/linux.mk b/linux/linux.mk
index cd80904113..75294cff18 100644
--- a/linux/linux.mk
+++ b/linux/linux.mk
@@ -45,7 +45,7 @@ LINUX_SITE = $(BR2_KERNEL_MIRROR)/linux/kernel/v$(firstword $(subst ., ,$(LINUX_
 endif
 endif
 
-ifeq ($(BR2_LINUX_KERNEL)$(BR2_LINUX_KERNEL_LATEST_VERSION),y)
+ifeq ($(BR2_LINUX_KERNEL)$(BR2_LINUX_KERNEL_LATEST_SERIES),y)
 BR_NO_CHECK_HASH_FOR += $(LINUX_SOURCE)
 endif
 
diff --git a/package/linux-headers/Config.in.host b/package/linux-headers/Config.in.host
index b11db18379..3cf2cdd4f4 100644
--- a/package/linux-headers/Config.in.host
+++ b/package/linux-headers/Config.in.host
@@ -118,9 +118,7 @@ endif
 choice
 	bool "Custom kernel headers series"
 	default BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_REALLY_OLD
-	depends on !BR2_LINUX_KERNEL_LATEST_VERSION || !BR2_KERNEL_HEADERS_AS_KERNEL
-	depends on !BR2_LINUX_KERNEL_LATEST_CIP_VERSION || !BR2_KERNEL_HEADERS_AS_KERNEL
-	depends on !BR2_LINUX_KERNEL_LATEST_CIP_RT_VERSION || !BR2_KERNEL_HEADERS_AS_KERNEL
+	depends on !BR2_LINUX_KERNEL_LATEST_SERIES || !BR2_KERNEL_HEADERS_AS_KERNEL
 	depends on BR2_KERNEL_HEADERS_VERSION || BR2_KERNEL_HEADERS_AS_KERNEL || \
 		   BR2_KERNEL_HEADERS_CUSTOM_TARBALL || BR2_KERNEL_HEADERS_CUSTOM_GIT
 	help
-- 
2.55.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [Buildroot] [PATCH 3/3] configs: update defconfigs with custom versions to BR2_LINUX_KERNEL_LATEST_X_Y
  2026-10-10 20:15 [Buildroot] [PATCH 0/3] Add first-class support for all active upstream Linux versions Titouan Christophe via buildroot
  2026-10-10 20:15 ` [Buildroot] [PATCH 1/3] linux: always select host-uboot-tools for mips Titouan Christophe via buildroot
  2026-10-10 20:15 ` [Buildroot] [PATCH 2/3] linux: add first-class support for all upstream linux versions Titouan Christophe via buildroot
@ 2026-10-10 20:15 ` Titouan Christophe via buildroot
  2026-10-11 13:05   ` Peter Korsgaard
  2026-10-11 16:45   ` Baruch Siach via buildroot
  2 siblings, 2 replies; 18+ messages in thread
From: Titouan Christophe via buildroot @ 2026-10-10 20:15 UTC (permalink / raw)
  To: buildroot; +Cc: ju.o, thomas.petazzoni, arnout, git, thomas.perale

Update all defconfigs that are using a custom Linux version based on a
longterm supported Linux version so they use the newly introduced symbols.

We already see from this diff that using that feature updates quite a bunch
of disparate kernel versions accross the tree.

This change was automated with the following Python script:

    import re
    from subprocess import check_output

    MAINTAINED_VERSIONS = {
        "6.18": "BR2_LINUX_KERNEL_LATEST_6_18=y",
        "6.12": "BR2_LINUX_KERNEL_LATEST_6_12=y",
        "6.6": "BR2_LINUX_KERNEL_LATEST_6_6=y",
        "6.1": "BR2_LINUX_KERNEL_LATEST_6_1=y",
        "5.15": "BR2_LINUX_KERNEL_LATEST_5_15=y",
        "5.10": "BR2_LINUX_KERNEL_LATEST_5_10=y",
    }

    LINUX_VERSION_LINE = re.compile(r'(configs/[^:]+):(BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="(\d\.\d{1,2})(?:\.\d+)?")$')

    findcmd = ["git", "grep", "BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="]
    custom_version_configs = check_output(findcmd).decode()

    for line in custom_version_configs.splitlines():
        if (m := LINUX_VERSION_LINE.match(line)) and m[3] in MAINTAINED_VERSIONS:
            content = open(m[1]).read()
            with open(m[1], "w") as out:
                out.write(content.replace(m[2], MAINTAINED_VERSIONS[m[3]]).replace('BR2_LINUX_KERNEL_CUSTOM_VERSION=y\n', ''))
            print(m[1], m[2], "->", MAINTAINED_VERSIONS[m[3]])

Signed-off-by: Titouan Christophe <titouan.christophe@mind.be>
---
 configs/aarch64_efi_defconfig                 | 3 +--
 configs/acmesystems_acqua_a5_256mb_defconfig  | 3 +--
 configs/acmesystems_acqua_a5_512mb_defconfig  | 3 +--
 configs/am574x_idk_defconfig                  | 3 +--
 configs/amarula_vyasa_rk3288_defconfig        | 3 +--
 configs/arm_fvp_ebbr_defconfig                | 3 +--
 configs/armadeus_apf27_defconfig              | 3 +--
 configs/armadeus_apf28_defconfig              | 3 +--
 configs/armadeus_apf51_defconfig              | 3 +--
 configs/asus_tinker-s_rk3288_defconfig        | 3 +--
 configs/asus_tinker_rk3288_defconfig          | 3 +--
 configs/avenger96_defconfig                   | 3 +--
 configs/bananapi_m2_berry_defconfig           | 3 +--
 configs/bananapi_m2_ultra_defconfig           | 3 +--
 configs/beaglebone_defconfig                  | 3 +--
 configs/beagleboneai64_defconfig              | 3 +--
 configs/beagleboneai_defconfig                | 3 +--
 configs/beagleplay_defconfig                  | 3 +--
 configs/beagley_ai_defconfig                  | 3 +--
 configs/broadcom_northstar_defconfig          | 3 +--
 configs/chromebook_elm_defconfig              | 3 +--
 configs/ci20_defconfig                        | 3 +--
 configs/engicam_px30_core_defconfig           | 3 +--
 configs/freescale_p1025twr_defconfig          | 3 +--
 configs/freescale_t1040d4rdb_defconfig        | 3 +--
 configs/freescale_t2080_qds_rdb_defconfig     | 3 +--
 configs/friendlyarm_nanopi_neo_defconfig      | 3 +--
 configs/friendlyarm_nanopi_r2s_defconfig      | 3 +--
 configs/friendlyarm_nanopi_r3s_defconfig      | 3 +--
 configs/globalscale_espressobin_defconfig     | 3 +--
 configs/grinn_chiliboard_defconfig            | 3 +--
 configs/grinn_liteboard_defconfig             | 3 +--
 configs/hifive_unleashed_defconfig            | 3 +--
 configs/hifive_unmatched_defconfig            | 3 +--
 configs/icnova-a20-adb4006_defconfig          | 3 +--
 configs/imx23evk_defconfig                    | 3 +--
 configs/imx28evk_defconfig                    | 3 +--
 configs/imx6-sabreauto_defconfig              | 3 +--
 configs/imx6-sabresd_defconfig                | 3 +--
 configs/imx6-sabresd_qt5_defconfig            | 3 +--
 configs/imx6slevk_defconfig                   | 3 +--
 configs/imx6sx-sdb_defconfig                  | 3 +--
 configs/imx6ulevk_defconfig                   | 3 +--
 configs/imx6ullevk_defconfig                  | 3 +--
 configs/imx6ulpico_defconfig                  | 3 +--
 configs/imx6ulz_bsh_smm_m2_defconfig          | 3 +--
 configs/imx7d-sdb_defconfig                   | 3 +--
 configs/imx7dpico_defconfig                   | 3 +--
 configs/imx8mm-evk_defconfig                  | 3 +--
 configs/imx8mn-ddr4-evk_defconfig             | 3 +--
 configs/imx8mn_bsh_smm_s2_defconfig           | 3 +--
 configs/imx8mn_bsh_smm_s2_pro_defconfig       | 3 +--
 configs/imx8mp-evk_defconfig                  | 3 +--
 configs/imx8mqevk_defconfig                   | 3 +--
 configs/imx93-evk_defconfig                   | 3 +--
 configs/imxrt1050-evk_defconfig               | 3 +--
 configs/khadas_vim3_defconfig                 | 3 +--
 configs/kontron_smarc_sal28_defconfig         | 3 +--
 configs/lafrite_defconfig                     | 3 +--
 configs/linksprite_pcduino_defconfig          | 3 +--
 configs/loongarch64_efi_defconfig             | 3 +--
 configs/mangopi_mq1rdw2_defconfig             | 3 +--
 configs/mender_x86_64_efi_defconfig           | 3 +--
 configs/microchip_sama7g5ek_mmc_defconfig     | 3 +--
 configs/microchip_sama7g5ek_mmc_dev_defconfig | 3 +--
 configs/minnowboard_max_defconfig             | 3 +--
 configs/mx51evk_defconfig                     | 3 +--
 configs/mx53loco_defconfig                    | 3 +--
 configs/mx6cubox_defconfig                    | 3 +--
 configs/mx6sx_udoo_neo_defconfig              | 3 +--
 configs/nexbox_a95x_defconfig                 | 3 +--
 configs/nezha_defconfig                       | 3 +--
 configs/olimex_a10_olinuxino_lime_defconfig   | 3 +--
 configs/olimex_a13_olinuxino_defconfig        | 3 +--
 configs/olimex_a20_olinuxino_lime2_defconfig  | 3 +--
 configs/olimex_a20_olinuxino_lime_defconfig   | 3 +--
 configs/olimex_a20_olinuxino_micro_defconfig  | 3 +--
 configs/olimex_a33_olinuxino_defconfig        | 3 +--
 configs/olimex_a64_olinuxino_defconfig        | 3 +--
 configs/olimex_imx233_olinuxino_defconfig     | 3 +--
 configs/orangepi_5_plus_defconfig             | 3 +--
 configs/orangepi_lite_defconfig               | 3 +--
 configs/orangepi_one_defconfig                | 3 +--
 configs/orangepi_pc2_defconfig                | 3 +--
 configs/orangepi_pc_defconfig                 | 3 +--
 configs/orangepi_pc_plus_defconfig            | 3 +--
 configs/orangepi_r1_defconfig                 | 3 +--
 configs/orangepi_zero2w_defconfig             | 3 +--
 configs/orangepi_zero3_defconfig              | 3 +--
 configs/orangepi_zero_defconfig               | 3 +--
 configs/orangepi_zero_plus2_defconfig         | 3 +--
 configs/orangepi_zero_plus_defconfig          | 3 +--
 configs/pc_x86_64_bios_defconfig              | 3 +--
 configs/pc_x86_64_efi_defconfig               | 3 +--
 configs/pine64_defconfig                      | 3 +--
 configs/pine64_pinecube_defconfig             | 3 +--
 configs/pine64_star64_defconfig               | 3 +--
 configs/polyhex_debix_model_a_defconfig       | 3 +--
 configs/qemu_aarch64_ebbr_defconfig           | 3 +--
 configs/qemu_aarch64_sbsa_defconfig           | 3 +--
 configs/qemu_aarch64_virt_defconfig           | 3 +--
 configs/qemu_arm_ebbr_defconfig               | 3 +--
 configs/qemu_arm_versatile_defconfig          | 3 +--
 configs/qemu_arm_vexpress_defconfig           | 3 +--
 configs/qemu_arm_vexpress_tz_defconfig        | 3 +--
 configs/qemu_hppa_b160l_defconfig             | 3 +--
 configs/qemu_loongarch64_virt_efi_defconfig   | 3 +--
 configs/qemu_m68k_mcf5208_defconfig           | 3 +--
 configs/qemu_m68k_q800_defconfig              | 3 +--
 configs/qemu_microblazebe_mmu_defconfig       | 3 +--
 configs/qemu_microblazeel_mmu_defconfig       | 3 +--
 configs/qemu_mips32r2_malta_defconfig         | 3 +--
 configs/qemu_mips32r2el_malta_defconfig       | 3 +--
 configs/qemu_mips32r6_malta_defconfig         | 3 +--
 configs/qemu_mips32r6el_malta_defconfig       | 3 +--
 configs/qemu_mips64_malta_defconfig           | 3 +--
 configs/qemu_mips64el_malta_defconfig         | 3 +--
 configs/qemu_mips64r6_malta_defconfig         | 3 +--
 configs/qemu_mips64r6el_malta_defconfig       | 3 +--
 configs/qemu_or1k_defconfig                   | 3 +--
 configs/qemu_ppc64_e5500_defconfig            | 3 +--
 configs/qemu_ppc64_pseries_defconfig          | 3 +--
 configs/qemu_ppc64le_powernv10_defconfig      | 3 +--
 configs/qemu_ppc64le_powernv11_defconfig      | 3 +--
 configs/qemu_ppc64le_powernv8_defconfig       | 3 +--
 configs/qemu_ppc64le_pseries_defconfig        | 3 +--
 configs/qemu_ppc_bamboo_defconfig             | 3 +--
 configs/qemu_ppc_e500mc_defconfig             | 3 +--
 configs/qemu_ppc_g3beige_defconfig            | 3 +--
 configs/qemu_ppc_mac99_defconfig              | 3 +--
 configs/qemu_ppc_mpc8544ds_defconfig          | 3 +--
 configs/qemu_riscv32_nommu_virt_defconfig     | 3 +--
 configs/qemu_riscv32_virt_defconfig           | 3 +--
 configs/qemu_riscv64_nommu_virt_defconfig     | 3 +--
 configs/qemu_riscv64_virt_defconfig           | 3 +--
 configs/qemu_riscv64_virt_efi_defconfig       | 3 +--
 configs/qemu_s390x_defconfig                  | 3 +--
 configs/qemu_sh4_r2d_defconfig                | 3 +--
 configs/qemu_sh4eb_r2d_defconfig              | 3 +--
 configs/qemu_sparc64_sun4u_defconfig          | 3 +--
 configs/qemu_sparc_ss10_defconfig             | 3 +--
 configs/qemu_x86_64_defconfig                 | 3 +--
 configs/qemu_x86_64_efi_defconfig             | 3 +--
 configs/qemu_x86_defconfig                    | 3 +--
 configs/qemu_xtensa_lx60_defconfig            | 3 +--
 configs/qemu_xtensa_lx60_nommu_defconfig      | 3 +--
 configs/roc_pc_rk3399_defconfig               | 3 +--
 configs/rock4se_defconfig                     | 3 +--
 configs/rock5b_defconfig                      | 3 +--
 configs/rockpro64_defconfig                   | 3 +--
 configs/rockpro64_ebbr_defconfig              | 3 +--
 configs/sipeed_licheepi_4a_defconfig          | 3 +--
 configs/sipeed_licheepi_zero_defconfig        | 3 +--
 configs/solidrun_clearfog_defconfig           | 3 +--
 configs/solidrun_clearfog_gt_8k_defconfig     | 3 +--
 configs/solidrun_macchiatobin_defconfig       | 3 +--
 configs/spike_riscv32_defconfig               | 3 +--
 configs/spike_riscv64_defconfig               | 3 +--
 configs/stm32f429_disco_xip_defconfig         | 3 +--
 configs/stm32f469_disco_sd_defconfig          | 3 +--
 configs/stm32f469_disco_xip_defconfig         | 3 +--
 configs/stm32f746_disco_sd_defconfig          | 3 +--
 configs/stm32f769_disco_sd_defconfig          | 3 +--
 configs/stm32h747_disco_sd_defconfig          | 3 +--
 configs/stm32mp135f_dk_defconfig              | 3 +--
 configs/stm32mp157a_dk1_defconfig             | 3 +--
 configs/stm32mp157c_dk2_defconfig             | 3 +--
 configs/stm32mp157c_odyssey_defconfig         | 3 +--
 configs/ti_am62x_sk_defconfig                 | 3 +--
 configs/ti_tda4vm_sk_defconfig                | 3 +--
 configs/visionfive2_defconfig                 | 3 +--
 configs/wandboard_defconfig                   | 3 +--
 configs/warp7_defconfig                       | 3 +--
 173 files changed, 173 insertions(+), 346 deletions(-)

diff --git a/configs/aarch64_efi_defconfig b/configs/aarch64_efi_defconfig
index 78292c0cc4..8bfedc110f 100644
--- a/configs/aarch64_efi_defconfig
+++ b/configs/aarch64_efi_defconfig
@@ -8,8 +8,7 @@ BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/aarch64-efi/post-image.sh support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/aarch64-efi/genimage-efi.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.14"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
 BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/aarch64-efi/linux-pmem-netboot.fragment"
 BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
diff --git a/configs/acmesystems_acqua_a5_256mb_defconfig b/configs/acmesystems_acqua_a5_256mb_defconfig
index 3eb805b530..1c277c357e 100644
--- a/configs/acmesystems_acqua_a5_256mb_defconfig
+++ b/configs/acmesystems_acqua_a5_256mb_defconfig
@@ -10,8 +10,7 @@ BR2_SYSTEM_DHCP="eth0"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/acmesystems/acqua-a5/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.40"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_DEFCONFIG="sama5"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_CUSTOM_DTS_DIR="board/acmesystems/acqua-a5/dts"
diff --git a/configs/acmesystems_acqua_a5_512mb_defconfig b/configs/acmesystems_acqua_a5_512mb_defconfig
index 0664a268b0..83c4759497 100644
--- a/configs/acmesystems_acqua_a5_512mb_defconfig
+++ b/configs/acmesystems_acqua_a5_512mb_defconfig
@@ -10,8 +10,7 @@ BR2_SYSTEM_DHCP="eth0"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/acmesystems/acqua-a5/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.40"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_DEFCONFIG="sama5"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_CUSTOM_DTS_DIR="board/acmesystems/acqua-a5/dts"
diff --git a/configs/am574x_idk_defconfig b/configs/am574x_idk_defconfig
index 3ec8829ff7..170abf250b 100644
--- a/configs/am574x_idk_defconfig
+++ b/configs/am574x_idk_defconfig
@@ -10,8 +10,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/ti/am574x-idk/post-build.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/ti/am574x-idk/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.18"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_DEFCONFIG="multi_v7"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="ti/omap/am574x-idk"
diff --git a/configs/amarula_vyasa_rk3288_defconfig b/configs/amarula_vyasa_rk3288_defconfig
index cf99702d0c..747ea44553 100644
--- a/configs/amarula_vyasa_rk3288_defconfig
+++ b/configs/amarula_vyasa_rk3288_defconfig
@@ -10,8 +10,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/amarula/vyasa/post-build.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/amarula/vyasa/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.8"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_DEFCONFIG="multi_v7"
 BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/amarula/vyasa/linux_gmac.fragment"
 BR2_LINUX_KERNEL_UIMAGE=y
diff --git a/configs/arm_fvp_ebbr_defconfig b/configs/arm_fvp_ebbr_defconfig
index 665f59c130..1ed31ef506 100644
--- a/configs/arm_fvp_ebbr_defconfig
+++ b/configs/arm_fvp_ebbr_defconfig
@@ -9,8 +9,7 @@ BR2_SYSTEM_DHCP="eth0"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/arm/fvp-ebbr/post-image.sh support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/arm/fvp-ebbr/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
 BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
 BR2_LINUX_KERNEL_NEEDS_HOST_PYTHON3=y
diff --git a/configs/armadeus_apf27_defconfig b/configs/armadeus_apf27_defconfig
index 1bb7c446ed..926718458a 100644
--- a/configs/armadeus_apf27_defconfig
+++ b/configs/armadeus_apf27_defconfig
@@ -6,8 +6,7 @@ BR2_TARGET_GENERIC_HOSTNAME="apf27"
 BR2_TARGET_GENERIC_ISSUE="Welcome to Armadeus development platform !"
 BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.10.215"
+BR2_LINUX_KERNEL_LATEST_5_10=y
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/armadeus/apf27/linux-5.10.config"
 BR2_LINUX_KERNEL_UIMAGE=y
diff --git a/configs/armadeus_apf28_defconfig b/configs/armadeus_apf28_defconfig
index 4db1c558cc..2d0e380c68 100644
--- a/configs/armadeus_apf28_defconfig
+++ b/configs/armadeus_apf28_defconfig
@@ -6,8 +6,7 @@ BR2_TARGET_GENERIC_HOSTNAME="apf28"
 BR2_TARGET_GENERIC_ISSUE="Welcome to Armadeus development platform !"
 BR2_TARGET_GENERIC_GETTY_PORT="ttyAMA0"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.10.215"
+BR2_LINUX_KERNEL_LATEST_5_10=y
 BR2_LINUX_KERNEL_DEFCONFIG="mxs"
 BR2_LINUX_KERNEL_UIMAGE=y
 BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x40008000"
diff --git a/configs/armadeus_apf51_defconfig b/configs/armadeus_apf51_defconfig
index 0d9d4f2bc6..a4607bde93 100644
--- a/configs/armadeus_apf51_defconfig
+++ b/configs/armadeus_apf51_defconfig
@@ -7,8 +7,7 @@ BR2_TARGET_GENERIC_HOSTNAME="apf51"
 BR2_TARGET_GENERIC_ISSUE="Welcome to Armadeus development platform !"
 BR2_TARGET_GENERIC_GETTY_PORT="ttymxc2"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.10.215"
+BR2_LINUX_KERNEL_LATEST_5_10=y
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/armadeus/apf51/linux-5.10.config"
 BR2_LINUX_KERNEL_UIMAGE=y
diff --git a/configs/asus_tinker-s_rk3288_defconfig b/configs/asus_tinker-s_rk3288_defconfig
index 1027a65379..92fee93882 100644
--- a/configs/asus_tinker-s_rk3288_defconfig
+++ b/configs/asus_tinker-s_rk3288_defconfig
@@ -8,8 +8,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/asus/tinker-s/post-build.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/asus/tinker/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.1.79"
+BR2_LINUX_KERNEL_LATEST_6_1=y
 BR2_LINUX_KERNEL_DEFCONFIG="multi_v7"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="rk3288-tinker-s"
diff --git a/configs/asus_tinker_rk3288_defconfig b/configs/asus_tinker_rk3288_defconfig
index 8326405536..1e00c084a6 100644
--- a/configs/asus_tinker_rk3288_defconfig
+++ b/configs/asus_tinker_rk3288_defconfig
@@ -10,8 +10,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/asus/tinker/post-build.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/asus/tinker/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.8"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_DEFCONFIG="multi_v7"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="rockchip/rk3288-tinker"
diff --git a/configs/avenger96_defconfig b/configs/avenger96_defconfig
index bfec6a5870..29fca72e2e 100644
--- a/configs/avenger96_defconfig
+++ b/configs/avenger96_defconfig
@@ -4,8 +4,7 @@ BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_6=y
 BR2_ROOTFS_OVERLAY="board/arrow/avenger96/overlay/"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/stmicroelectronics/common/stm32mp1xx/post-image.sh"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.22"
+BR2_LINUX_KERNEL_LATEST_6_6=y
 BR2_LINUX_KERNEL_DEFCONFIG="multi_v7"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="st/stm32mp157a-dhcor-avenger96"
diff --git a/configs/bananapi_m2_berry_defconfig b/configs/bananapi_m2_berry_defconfig
index 35909fbb99..8f285fbd06 100644
--- a/configs/bananapi_m2_berry_defconfig
+++ b/configs/bananapi_m2_berry_defconfig
@@ -8,8 +8,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/bananapi/bananapi-m2-berry/post-build.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/bananapi/bananapi-m2-berry/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.8"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_DEFCONFIG="sunxi"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="allwinner/sun8i-v40-bananapi-m2-berry"
diff --git a/configs/bananapi_m2_ultra_defconfig b/configs/bananapi_m2_ultra_defconfig
index 190481837e..1969b463c9 100644
--- a/configs/bananapi_m2_ultra_defconfig
+++ b/configs/bananapi_m2_ultra_defconfig
@@ -8,8 +8,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/bananapi/bananapi-m2-ultra/post-build.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/bananapi/bananapi-m2-ultra/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.8"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_DEFCONFIG="sunxi"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="allwinner/sun8i-r40-bananapi-m2-ultra"
diff --git a/configs/beaglebone_defconfig b/configs/beaglebone_defconfig
index 1bae3e3bf8..857534d46d 100644
--- a/configs/beaglebone_defconfig
+++ b/configs/beaglebone_defconfig
@@ -11,8 +11,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/beagleboard/beaglebone/post-build.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/beagleboard/beaglebone/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.38"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_DEFCONFIG="omap2plus"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="ti/omap/am335x-evm ti/omap/am335x-bone ti/omap/am335x-boneblack ti/omap/am335x-bonegreen ti/omap/am335x-evmsk ti/omap/am335x-boneblue ti/omap/am335x-boneblack-wireless ti/omap/am335x-bonegreen-wireless ti/omap/am335x-bonegreen-eco"
diff --git a/configs/beagleboneai64_defconfig b/configs/beagleboneai64_defconfig
index b41ea09f3e..46ca8bbc15 100644
--- a/configs/beagleboneai64_defconfig
+++ b/configs/beagleboneai64_defconfig
@@ -10,8 +10,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/beagleboard/beagleboneai64/post-build.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/beagleboard/beagleboneai64/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.16"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="ti/k3-j721e-beagleboneai64"
diff --git a/configs/beagleboneai_defconfig b/configs/beagleboneai_defconfig
index ccabb8c6ba..5f03b5d124 100644
--- a/configs/beagleboneai_defconfig
+++ b/configs/beagleboneai_defconfig
@@ -10,8 +10,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/beagleboard/beagleboneai/post-build.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/beagleboard/beagleboneai/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.50"
+BR2_LINUX_KERNEL_LATEST_6_12=y
 BR2_LINUX_KERNEL_DEFCONFIG="omap2plus"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="ti/omap/am5729-beagleboneai"
diff --git a/configs/beagleplay_defconfig b/configs/beagleplay_defconfig
index 90212bda44..7992c1b927 100644
--- a/configs/beagleplay_defconfig
+++ b/configs/beagleplay_defconfig
@@ -8,8 +8,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/beagleboard/beagleplay/post-build.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT_ARGS="-c board/beagleboard/beagleplay/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.16"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="ti/k3-am625-beagleplay"
diff --git a/configs/beagley_ai_defconfig b/configs/beagley_ai_defconfig
index d0a3bf58c4..4a534520be 100644
--- a/configs/beagley_ai_defconfig
+++ b/configs/beagley_ai_defconfig
@@ -10,8 +10,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/beagleboard/beagley-ai/post-build.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/beagleboard/beagley-ai/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.16"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="ti/k3-am67a-beagley-ai"
diff --git a/configs/broadcom_northstar_defconfig b/configs/broadcom_northstar_defconfig
index bbd368ac79..13877a158f 100644
--- a/configs/broadcom_northstar_defconfig
+++ b/configs/broadcom_northstar_defconfig
@@ -3,8 +3,7 @@ BR2_cortex_a9=y
 BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_6=y
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/broadcom/northstar/post-image.sh"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.9"
+BR2_LINUX_KERNEL_LATEST_6_6=y
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/broadcom/northstar/linux.config"
 BR2_LINUX_KERNEL_APPENDED_ZIMAGE=y
diff --git a/configs/chromebook_elm_defconfig b/configs/chromebook_elm_defconfig
index a43b620e1b..429e8d0ec2 100644
--- a/configs/chromebook_elm_defconfig
+++ b/configs/chromebook_elm_defconfig
@@ -6,8 +6,7 @@ BR2_DOWNLOAD_FORCE_CHECK_HASHES=y
 BR2_ROOTFS_POST_BUILD_SCRIPT="board/chromebook/elm/sign.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/chromebook/mksd.sh"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.10"
+BR2_LINUX_KERNEL_LATEST_5_10=y
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/chromebook/elm/linux.config"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
diff --git a/configs/ci20_defconfig b/configs/ci20_defconfig
index 4fd7d48c38..ce89888624 100644
--- a/configs/ci20_defconfig
+++ b/configs/ci20_defconfig
@@ -7,8 +7,7 @@ BR2_SYSTEM_DHCP="eth0"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/ci20/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.38"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_DEFCONFIG="ci20"
 BR2_LINUX_KERNEL_INSTALL_TARGET=y
 BR2_TARGET_ROOTFS_EXT2=y
diff --git a/configs/engicam_px30_core_defconfig b/configs/engicam_px30_core_defconfig
index be5c56e19f..79458542f7 100644
--- a/configs/engicam_px30_core_defconfig
+++ b/configs/engicam_px30_core_defconfig
@@ -8,8 +8,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/engicam/px30core/post-build.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT_ARGS="-c board/engicam/px30core/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.22"
+BR2_LINUX_KERNEL_LATEST_6_12=y
 BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="rockchip/px30-engicam-px30-core-ctouch2-of10"
diff --git a/configs/freescale_p1025twr_defconfig b/configs/freescale_p1025twr_defconfig
index 568f2060b1..43e6fd4388 100644
--- a/configs/freescale_p1025twr_defconfig
+++ b/configs/freescale_p1025twr_defconfig
@@ -3,8 +3,7 @@ BR2_powerpc_8548=y
 BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_12=y
 BR2_TARGET_GENERIC_GETTY_PORT="ttyS0"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.27"
+BR2_LINUX_KERNEL_LATEST_6_12=y
 BR2_LINUX_KERNEL_DEFCONFIG="mpc85xx_smp"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="fsl/p1025twr"
diff --git a/configs/freescale_t1040d4rdb_defconfig b/configs/freescale_t1040d4rdb_defconfig
index 851e011983..e0078f1624 100644
--- a/configs/freescale_t1040d4rdb_defconfig
+++ b/configs/freescale_t1040d4rdb_defconfig
@@ -3,8 +3,7 @@ BR2_powerpc_e5500=y
 BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_12=y
 BR2_TARGET_GENERIC_GETTY_PORT="ttyS0"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.27"
+BR2_LINUX_KERNEL_LATEST_6_12=y
 BR2_LINUX_KERNEL_DEFCONFIG="corenet64_smp"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="fsl/t1040d4rdb"
diff --git a/configs/freescale_t2080_qds_rdb_defconfig b/configs/freescale_t2080_qds_rdb_defconfig
index a598473562..ec11a4f509 100644
--- a/configs/freescale_t2080_qds_rdb_defconfig
+++ b/configs/freescale_t2080_qds_rdb_defconfig
@@ -3,8 +3,7 @@ BR2_powerpc_e6500=y
 BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_12=y
 BR2_TARGET_GENERIC_GETTY_PORT="ttyS0"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.27"
+BR2_LINUX_KERNEL_LATEST_6_12=y
 BR2_LINUX_KERNEL_DEFCONFIG="corenet64_smp"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="fsl/t2080qds fsl/t2080rdb"
diff --git a/configs/friendlyarm_nanopi_neo_defconfig b/configs/friendlyarm_nanopi_neo_defconfig
index 07be41cbf1..16d3c73a25 100644
--- a/configs/friendlyarm_nanopi_neo_defconfig
+++ b/configs/friendlyarm_nanopi_neo_defconfig
@@ -12,8 +12,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/friendlyarm/nanopi-neo/post-build.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/friendlyarm/nanopi-neo/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.18"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_DEFCONFIG="sunxi"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="allwinner/sun8i-h3-nanopi-neo"
diff --git a/configs/friendlyarm_nanopi_r2s_defconfig b/configs/friendlyarm_nanopi_r2s_defconfig
index 6250237707..c64da9b400 100644
--- a/configs/friendlyarm_nanopi_r2s_defconfig
+++ b/configs/friendlyarm_nanopi_r2s_defconfig
@@ -11,8 +11,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/friendlyarm/nanopi-r2s/post-build.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/friendlyarm/nanopi-r2s/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.18"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="rockchip/rk3328-nanopi-r2s"
diff --git a/configs/friendlyarm_nanopi_r3s_defconfig b/configs/friendlyarm_nanopi_r3s_defconfig
index 971a0ae851..1f2e87271d 100644
--- a/configs/friendlyarm_nanopi_r3s_defconfig
+++ b/configs/friendlyarm_nanopi_r3s_defconfig
@@ -12,8 +12,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/friendlyarm/nanopi-r3s/post-build.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c $(BINARIES_DIR)/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.8"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/friendlyarm/nanopi-r3s/kernel.config"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
diff --git a/configs/globalscale_espressobin_defconfig b/configs/globalscale_espressobin_defconfig
index 5b4f6dcf55..bed887e4f6 100644
--- a/configs/globalscale_espressobin_defconfig
+++ b/configs/globalscale_espressobin_defconfig
@@ -5,8 +5,7 @@ BR2_TARGET_GENERIC_ISSUE="Welcome to Buildroot for the Marvell ESPRESSObin"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/globalscale/espressobin/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.34"
+BR2_LINUX_KERNEL_LATEST_6_12=y
 BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
 BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/globalscale/espressobin/linux-extras.config"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
diff --git a/configs/grinn_chiliboard_defconfig b/configs/grinn_chiliboard_defconfig
index e91c29607d..bf9f335426 100644
--- a/configs/grinn_chiliboard_defconfig
+++ b/configs/grinn_chiliboard_defconfig
@@ -7,8 +7,7 @@ BR2_SYSTEM_DHCP="eth0"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/grinn/chiliboard/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.6"
+BR2_LINUX_KERNEL_LATEST_6_12=y
 BR2_LINUX_KERNEL_DEFCONFIG="omap2plus"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="ti/omap/am335x-chiliboard"
diff --git a/configs/grinn_liteboard_defconfig b/configs/grinn_liteboard_defconfig
index 480a5a8c23..38a910ce4f 100644
--- a/configs/grinn_liteboard_defconfig
+++ b/configs/grinn_liteboard_defconfig
@@ -7,8 +7,7 @@ BR2_SYSTEM_DHCP="eth0"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/grinn/liteboard/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.6"
+BR2_LINUX_KERNEL_LATEST_6_12=y
 BR2_LINUX_KERNEL_DEFCONFIG="imx_v6_v7"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="nxp/imx/imx6ul-liteboard"
diff --git a/configs/hifive_unleashed_defconfig b/configs/hifive_unleashed_defconfig
index e83af773f7..73e181d77a 100644
--- a/configs/hifive_unleashed_defconfig
+++ b/configs/hifive_unleashed_defconfig
@@ -14,8 +14,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/sifive/common/post-build.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/sifive/common/genimage_sdcard.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.20"
+BR2_LINUX_KERNEL_LATEST_6_12=y
 BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
 BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/sifive/common/linux.config.fragment"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
diff --git a/configs/hifive_unmatched_defconfig b/configs/hifive_unmatched_defconfig
index 0b63ce15ff..d6a05ca77a 100644
--- a/configs/hifive_unmatched_defconfig
+++ b/configs/hifive_unmatched_defconfig
@@ -14,8 +14,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/sifive/common/post-build.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/sifive/common/genimage_sdcard.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.20"
+BR2_LINUX_KERNEL_LATEST_6_12=y
 BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
 BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/sifive/common/linux.config.fragment"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
diff --git a/configs/icnova-a20-adb4006_defconfig b/configs/icnova-a20-adb4006_defconfig
index 01f4abe215..2e304776e1 100644
--- a/configs/icnova-a20-adb4006_defconfig
+++ b/configs/icnova-a20-adb4006_defconfig
@@ -12,8 +12,7 @@ BR2_SYSTEM_DHCP="eth0"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/in-circuit/icnova-a20-adb4006/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.56"
+BR2_LINUX_KERNEL_LATEST_6_6=y
 BR2_LINUX_KERNEL_DEFCONFIG="sunxi"
 BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/in-circuit/icnova-a20-adb4006/linux.fragment"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
diff --git a/configs/imx23evk_defconfig b/configs/imx23evk_defconfig
index 330d5c4502..dc21b2120a 100644
--- a/configs/imx23evk_defconfig
+++ b/configs/imx23evk_defconfig
@@ -3,8 +3,7 @@ BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_6=y
 BR2_TARGET_GENERIC_GETTY_PORT="ttyAMA0"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/mxs/post-image.sh"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.21"
+BR2_LINUX_KERNEL_LATEST_6_6=y
 BR2_LINUX_KERNEL_DEFCONFIG="mxs"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="nxp/mxs/imx23-evk"
diff --git a/configs/imx28evk_defconfig b/configs/imx28evk_defconfig
index d34f413440..fa15d970af 100644
--- a/configs/imx28evk_defconfig
+++ b/configs/imx28evk_defconfig
@@ -5,8 +5,7 @@ BR2_DOWNLOAD_FORCE_CHECK_HASHES=y
 BR2_TARGET_GENERIC_GETTY_PORT="ttyAMA0"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/mxs/post-image.sh"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.26"
+BR2_LINUX_KERNEL_LATEST_6_6=y
 BR2_LINUX_KERNEL_DEFCONFIG="mxs"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="nxp/mxs/imx28-evk"
diff --git a/configs/imx6-sabreauto_defconfig b/configs/imx6-sabreauto_defconfig
index 0683a01ff6..5164d4aa8e 100644
--- a/configs/imx6-sabreauto_defconfig
+++ b/configs/imx6-sabreauto_defconfig
@@ -7,8 +7,7 @@ BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_6=y
 BR2_TARGET_GENERIC_GETTY_PORT="ttymxc3"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.47"
+BR2_LINUX_KERNEL_LATEST_6_6=y
 BR2_LINUX_KERNEL_DEFCONFIG="imx_v6_v7"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="nxp/imx/imx6q-sabreauto nxp/imx/imx6dl-sabreauto nxp/imx/imx6qp-sabreauto"
diff --git a/configs/imx6-sabresd_defconfig b/configs/imx6-sabresd_defconfig
index bb281e16b8..593bbfee92 100644
--- a/configs/imx6-sabresd_defconfig
+++ b/configs/imx6-sabresd_defconfig
@@ -7,8 +7,7 @@ BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_6=y
 BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.47"
+BR2_LINUX_KERNEL_LATEST_6_6=y
 BR2_LINUX_KERNEL_DEFCONFIG="imx_v6_v7"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="nxp/imx/imx6q-sabresd nxp/imx/imx6dl-sabresd nxp/imx/imx6qp-sabresd"
diff --git a/configs/imx6-sabresd_qt5_defconfig b/configs/imx6-sabresd_qt5_defconfig
index d3151819fb..af66e6a98f 100644
--- a/configs/imx6-sabresd_qt5_defconfig
+++ b/configs/imx6-sabresd_qt5_defconfig
@@ -10,8 +10,7 @@ BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0"
 BR2_ROOTFS_OVERLAY="board/freescale/imx6-sabresd/rootfs_overlay"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.47"
+BR2_LINUX_KERNEL_LATEST_6_6=y
 BR2_LINUX_KERNEL_DEFCONFIG="imx_v6_v7"
 BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/freescale/imx6-sabresd/linux_qt5.fragment"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
diff --git a/configs/imx6slevk_defconfig b/configs/imx6slevk_defconfig
index f64b5fa41b..b14eec62b0 100644
--- a/configs/imx6slevk_defconfig
+++ b/configs/imx6slevk_defconfig
@@ -7,8 +7,7 @@ BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_6=y
 BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.51"
+BR2_LINUX_KERNEL_LATEST_6_6=y
 BR2_LINUX_KERNEL_DEFCONFIG="imx_v6_v7"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="nxp/imx/imx6sl-evk"
diff --git a/configs/imx6sx-sdb_defconfig b/configs/imx6sx-sdb_defconfig
index 5dc3f87171..43f8560a35 100644
--- a/configs/imx6sx-sdb_defconfig
+++ b/configs/imx6sx-sdb_defconfig
@@ -7,8 +7,7 @@ BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_6=y
 BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.46"
+BR2_LINUX_KERNEL_LATEST_6_6=y
 BR2_LINUX_KERNEL_DEFCONFIG="imx_v6_v7"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="nxp/imx/imx6sx-sdb nxp/imx/imx6sx-sdb-reva"
diff --git a/configs/imx6ulevk_defconfig b/configs/imx6ulevk_defconfig
index e20d452b66..2ffcd5b982 100644
--- a/configs/imx6ulevk_defconfig
+++ b/configs/imx6ulevk_defconfig
@@ -5,8 +5,7 @@ BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_6=y
 BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.48"
+BR2_LINUX_KERNEL_LATEST_6_6=y
 BR2_LINUX_KERNEL_DEFCONFIG="imx_v6_v7"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="nxp/imx/imx6ul-14x14-evk"
diff --git a/configs/imx6ullevk_defconfig b/configs/imx6ullevk_defconfig
index 5d802e6614..84e38ead43 100644
--- a/configs/imx6ullevk_defconfig
+++ b/configs/imx6ullevk_defconfig
@@ -8,8 +8,7 @@ BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
 BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.8"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_DEFCONFIG="imx_v6_v7"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="nxp/imx/imx6ull-14x14-evk"
diff --git a/configs/imx6ulpico_defconfig b/configs/imx6ulpico_defconfig
index b8d713c4de..4b378dd267 100644
--- a/configs/imx6ulpico_defconfig
+++ b/configs/imx6ulpico_defconfig
@@ -7,8 +7,7 @@ BR2_TARGET_GENERIC_GETTY_PORT="ttymxc5"
 BR2_ROOTFS_OVERLAY="board/technexion/imx6ulpico/rootfs_overlay"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.48"
+BR2_LINUX_KERNEL_LATEST_6_6=y
 BR2_LINUX_KERNEL_DEFCONFIG="imx_v6_v7"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="nxp/imx/imx6ul-pico-pi nxp/imx/imx6ul-pico-hobbit nxp/imx/imx6ul-pico-dwarf"
diff --git a/configs/imx6ulz_bsh_smm_m2_defconfig b/configs/imx6ulz_bsh_smm_m2_defconfig
index 23c23cd758..2339b15618 100644
--- a/configs/imx6ulz_bsh_smm_m2_defconfig
+++ b/configs/imx6ulz_bsh_smm_m2_defconfig
@@ -8,8 +8,7 @@ BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
 BR2_TARGET_GENERIC_GETTY_PORT="ttymxc3"
 BR2_ROOTFS_POST_BUILD_SCRIPT="board/bsh/imx6ulz-bsh-smm-m2/post-build.sh"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.96"
+BR2_LINUX_KERNEL_LATEST_6_12=y
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/bsh/imx6ulz-bsh-smm-m2/linux.config"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
diff --git a/configs/imx7d-sdb_defconfig b/configs/imx7d-sdb_defconfig
index 6520a41cf9..32e808c814 100644
--- a/configs/imx7d-sdb_defconfig
+++ b/configs/imx7d-sdb_defconfig
@@ -8,8 +8,7 @@ BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0"
 BR2_ROOTFS_OVERLAY="board/freescale/imx7dsdb/rootfs_overlay"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.58"
+BR2_LINUX_KERNEL_LATEST_6_6=y
 BR2_LINUX_KERNEL_DEFCONFIG="imx_v6_v7"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="nxp/imx/imx7d-sdb"
diff --git a/configs/imx7dpico_defconfig b/configs/imx7dpico_defconfig
index 3fbdb898a1..51801dac3a 100644
--- a/configs/imx7dpico_defconfig
+++ b/configs/imx7dpico_defconfig
@@ -7,8 +7,7 @@ BR2_TARGET_GENERIC_GETTY_PORT="ttymxc4"
 BR2_ROOTFS_OVERLAY="board/technexion/imx7dpico/rootfs_overlay"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.48"
+BR2_LINUX_KERNEL_LATEST_6_6=y
 BR2_LINUX_KERNEL_DEFCONFIG="imx_v6_v7"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="nxp/imx/imx7d-pico-pi"
diff --git a/configs/imx8mm-evk_defconfig b/configs/imx8mm-evk_defconfig
index 00fe2fa761..2ba3d1eb84 100644
--- a/configs/imx8mm-evk_defconfig
+++ b/configs/imx8mm-evk_defconfig
@@ -9,8 +9,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/freescale/imx8mm-evk/post-build.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c $(BINARIES_DIR)/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.16"
+BR2_LINUX_KERNEL_LATEST_6_12=y
 BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="freescale/imx8mm-evk"
diff --git a/configs/imx8mn-ddr4-evk_defconfig b/configs/imx8mn-ddr4-evk_defconfig
index 66c95315f0..34a710de16 100644
--- a/configs/imx8mn-ddr4-evk_defconfig
+++ b/configs/imx8mn-ddr4-evk_defconfig
@@ -9,8 +9,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/freescale/imx8mn-evk/post-build.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c $(BINARIES_DIR)/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.16"
+BR2_LINUX_KERNEL_LATEST_6_12=y
 BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="freescale/imx8mn-ddr4-evk"
diff --git a/configs/imx8mn_bsh_smm_s2_defconfig b/configs/imx8mn_bsh_smm_s2_defconfig
index 50a5eb2d9b..c444c98972 100644
--- a/configs/imx8mn_bsh_smm_s2_defconfig
+++ b/configs/imx8mn_bsh_smm_s2_defconfig
@@ -5,8 +5,7 @@ BR2_DOWNLOAD_FORCE_CHECK_HASHES=y
 BR2_TARGET_GENERIC_GETTY_PORT="ttymxc3"
 BR2_ROOTFS_POST_BUILD_SCRIPT="board/bsh/imx8mn-bsh-smm-s2/post-build.sh"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.96"
+BR2_LINUX_KERNEL_LATEST_6_12=y
 BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
 BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/bsh/common/imx8mn-bsh-smm-s2/linux.fragment"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
diff --git a/configs/imx8mn_bsh_smm_s2_pro_defconfig b/configs/imx8mn_bsh_smm_s2_pro_defconfig
index 6a4a662b92..79c46e6eeb 100644
--- a/configs/imx8mn_bsh_smm_s2_pro_defconfig
+++ b/configs/imx8mn_bsh_smm_s2_pro_defconfig
@@ -6,8 +6,7 @@ BR2_TARGET_GENERIC_GETTY_PORT="ttymxc3"
 BR2_ROOTFS_POST_BUILD_SCRIPT="board/bsh/imx8mn-bsh-smm-s2-pro/post-build.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/bsh/imx8mn-bsh-smm-s2-pro/post-image.sh"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.96"
+BR2_LINUX_KERNEL_LATEST_6_12=y
 BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
 BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/bsh/common/imx8mn-bsh-smm-s2/linux.fragment"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
diff --git a/configs/imx8mp-evk_defconfig b/configs/imx8mp-evk_defconfig
index 2cb7ecbbde..a87f1267dd 100644
--- a/configs/imx8mp-evk_defconfig
+++ b/configs/imx8mp-evk_defconfig
@@ -9,8 +9,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/freescale/imx8mp-evk/post-build.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c $(BINARIES_DIR)/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.16"
+BR2_LINUX_KERNEL_LATEST_6_12=y
 BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="freescale/imx8mp-evk"
diff --git a/configs/imx8mqevk_defconfig b/configs/imx8mqevk_defconfig
index bac68f40a6..776109584e 100644
--- a/configs/imx8mqevk_defconfig
+++ b/configs/imx8mqevk_defconfig
@@ -5,8 +5,7 @@ BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/imx8-bootloader-prepare.sh board/freescale/common/imx/post-image.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="${UBOOT_DIR}/arch/arm/dts/imx8mq-evk.dtb"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.48"
+BR2_LINUX_KERNEL_LATEST_6_6=y
 BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="freescale/imx8mq-evk"
diff --git a/configs/imx93-evk_defconfig b/configs/imx93-evk_defconfig
index f3af2b5183..1e284c2389 100644
--- a/configs/imx93-evk_defconfig
+++ b/configs/imx93-evk_defconfig
@@ -10,8 +10,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/freescale/imx93-evk/post-build.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c $(BINARIES_DIR)/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.16"
+BR2_LINUX_KERNEL_LATEST_6_12=y
 BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="freescale/imx93-11x11-evk"
diff --git a/configs/imxrt1050-evk_defconfig b/configs/imxrt1050-evk_defconfig
index 813be65e52..563e1ee72a 100644
--- a/configs/imxrt1050-evk_defconfig
+++ b/configs/imxrt1050-evk_defconfig
@@ -9,8 +9,7 @@ BR2_ROOTFS_OVERLAY="board/freescale/imxrt1050evk/rootfs_overlay"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/freescale/imxrt1050evk/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.18"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_DEFCONFIG="imxrt"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="nxp/imx/imxrt1050-evk"
diff --git a/configs/khadas_vim3_defconfig b/configs/khadas_vim3_defconfig
index 32e39fc64b..ee6e01544a 100644
--- a/configs/khadas_vim3_defconfig
+++ b/configs/khadas_vim3_defconfig
@@ -9,8 +9,7 @@ BR2_DOWNLOAD_FORCE_CHECK_HASHES=y
 BR2_ROOTFS_POST_BUILD_SCRIPT="board/khadas/vim3/post-build.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/khadas/vim3/post-image.sh"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.15"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="amlogic/meson-g12b-a311d-khadas-vim3"
diff --git a/configs/kontron_smarc_sal28_defconfig b/configs/kontron_smarc_sal28_defconfig
index b1e175b7b2..d4f568a543 100644
--- a/configs/kontron_smarc_sal28_defconfig
+++ b/configs/kontron_smarc_sal28_defconfig
@@ -11,8 +11,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/kontron/smarc-sal28/post-build.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c $(BINARIES_DIR)/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="freescale/fsl-ls1028a-kontron-sl28 freescale/fsl-ls1028a-kontron-sl28-var2 freescale/fsl-ls1028a-kontron-sl28-var3-ads2 freescale/fsl-ls1028a-kontron-sl28-var4 freescale/fsl-ls1028a-kontron-kbox-a-230-ls"
diff --git a/configs/lafrite_defconfig b/configs/lafrite_defconfig
index 5f70706fa0..24ae65ccfe 100644
--- a/configs/lafrite_defconfig
+++ b/configs/lafrite_defconfig
@@ -8,8 +8,7 @@ BR2_ROOTFS_OVERLAY="board/librecomputer/lafrite/overlay/"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/librecomputer/lafrite/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.22"
+BR2_LINUX_KERNEL_LATEST_6_6=y
 BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="amlogic/meson-gxl-s805x-libretech-ac"
diff --git a/configs/linksprite_pcduino_defconfig b/configs/linksprite_pcduino_defconfig
index a9fe21991f..8771c88918 100644
--- a/configs/linksprite_pcduino_defconfig
+++ b/configs/linksprite_pcduino_defconfig
@@ -11,8 +11,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/orangepi/common/post-build.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c $(BINARIES_DIR)/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.3"
+BR2_LINUX_KERNEL_LATEST_6_12=y
 BR2_LINUX_KERNEL_DEFCONFIG="sunxi"
 BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/linksprite/pcduino/linux-extras.config"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
diff --git a/configs/loongarch64_efi_defconfig b/configs/loongarch64_efi_defconfig
index c98699330d..2ae9cb8b04 100644
--- a/configs/loongarch64_efi_defconfig
+++ b/configs/loongarch64_efi_defconfig
@@ -6,8 +6,7 @@ BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/loongarch64-efi/post-image.sh support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/loongarch64-efi/genimage-efi.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.32"
+BR2_LINUX_KERNEL_LATEST_6_12=y
 BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
 BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
 BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF=y
diff --git a/configs/mangopi_mq1rdw2_defconfig b/configs/mangopi_mq1rdw2_defconfig
index 469a45b967..2e2a23c9a8 100644
--- a/configs/mangopi_mq1rdw2_defconfig
+++ b/configs/mangopi_mq1rdw2_defconfig
@@ -13,8 +13,7 @@ BR2_ROOTFS_OVERLAY="board/mangopi/mq1rdw2/rootfs_overlay"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/mangopi/mq1rdw2/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.8"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_DEFCONFIG="sunxi"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="allwinner/sun8i-t113s-mangopi-mq-r-t113"
diff --git a/configs/mender_x86_64_efi_defconfig b/configs/mender_x86_64_efi_defconfig
index 219f02839c..8a0a880492 100644
--- a/configs/mender_x86_64_efi_defconfig
+++ b/configs/mender_x86_64_efi_defconfig
@@ -8,8 +8,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/mender/x86_64/post-build.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/mender/x86_64/post-image-efi.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="--data-part-size=32M --device-type=buildroot-x86_64 --artifact-name=1.0"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.28"
+BR2_LINUX_KERNEL_LATEST_6_12=y
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/mender/x86_64/linux.config"
 BR2_LINUX_KERNEL_INSTALL_TARGET=y
diff --git a/configs/microchip_sama7g5ek_mmc_defconfig b/configs/microchip_sama7g5ek_mmc_defconfig
index 7ab81d1dd0..56433d459d 100644
--- a/configs/microchip_sama7g5ek_mmc_defconfig
+++ b/configs/microchip_sama7g5ek_mmc_defconfig
@@ -5,8 +5,7 @@ BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/microchip/sama7g5ek/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15.21"
+BR2_LINUX_KERNEL_LATEST_5_15=y
 BR2_LINUX_KERNEL_DEFCONFIG="sama7"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="at91-sama7g5ek"
diff --git a/configs/microchip_sama7g5ek_mmc_dev_defconfig b/configs/microchip_sama7g5ek_mmc_dev_defconfig
index 2fca9873a6..b3638b5a22 100644
--- a/configs/microchip_sama7g5ek_mmc_dev_defconfig
+++ b/configs/microchip_sama7g5ek_mmc_dev_defconfig
@@ -7,8 +7,7 @@ BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/microchip/sama7g5ek/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15.21"
+BR2_LINUX_KERNEL_LATEST_5_15=y
 BR2_LINUX_KERNEL_DEFCONFIG="sama7"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="at91-sama7g5ek"
diff --git a/configs/minnowboard_max_defconfig b/configs/minnowboard_max_defconfig
index f370edbaa1..6f50cb80c0 100644
--- a/configs/minnowboard_max_defconfig
+++ b/configs/minnowboard_max_defconfig
@@ -6,8 +6,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/minnowboard/post-build.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/minnowboard/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.10.11"
+BR2_LINUX_KERNEL_LATEST_5_10=y
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/minnowboard/linux.config"
 BR2_PACKAGE_LINUX_FIRMWARE=y
diff --git a/configs/mx51evk_defconfig b/configs/mx51evk_defconfig
index e8c3af149b..64f41615ff 100644
--- a/configs/mx51evk_defconfig
+++ b/configs/mx51evk_defconfig
@@ -6,8 +6,7 @@ BR2_DOWNLOAD_FORCE_CHECK_HASHES=y
 BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.10.218"
+BR2_LINUX_KERNEL_LATEST_5_10=y
 BR2_LINUX_KERNEL_DEFCONFIG="imx_v6_v7"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx51-babbage"
diff --git a/configs/mx53loco_defconfig b/configs/mx53loco_defconfig
index 004a0f1c19..e331a79432 100644
--- a/configs/mx53loco_defconfig
+++ b/configs/mx53loco_defconfig
@@ -4,8 +4,7 @@ BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_1=y
 BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.1.20"
+BR2_LINUX_KERNEL_LATEST_6_1=y
 BR2_LINUX_KERNEL_DEFCONFIG="imx_v6_v7"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx53-qsb imx53-qsrb"
diff --git a/configs/mx6cubox_defconfig b/configs/mx6cubox_defconfig
index f2359a4b0c..5ffb2b584a 100644
--- a/configs/mx6cubox_defconfig
+++ b/configs/mx6cubox_defconfig
@@ -10,8 +10,7 @@ BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0"
 BR2_ROOTFS_OVERLAY="board/solidrun/mx6cubox/rootfs_overlay"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.27"
+BR2_LINUX_KERNEL_LATEST_6_6=y
 BR2_LINUX_KERNEL_DEFCONFIG="imx_v6_v7"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="nxp/imx/imx6dl-cubox-i nxp/imx/imx6dl-cubox-i-emmc-som-v15 nxp/imx/imx6dl-cubox-i-som-v15 nxp/imx/imx6dl-hummingboard nxp/imx/imx6dl-hummingboard-emmc-som-v15 nxp/imx/imx6dl-hummingboard-som-v15 nxp/imx/imx6q-cubox-i nxp/imx/imx6q-cubox-i-emmc-som-v15 nxp/imx/imx6q-cubox-i-som-v15 nxp/imx/imx6q-hummingboard nxp/imx/imx6q-hummingboard-emmc-som-v15 nxp/imx/imx6q-hummingboard-som-v15"
diff --git a/configs/mx6sx_udoo_neo_defconfig b/configs/mx6sx_udoo_neo_defconfig
index 0c8c4d228c..ce983d79c6 100644
--- a/configs/mx6sx_udoo_neo_defconfig
+++ b/configs/mx6sx_udoo_neo_defconfig
@@ -9,8 +9,7 @@ BR2_DOWNLOAD_FORCE_CHECK_HASHES=y
 BR2_ROOTFS_POST_BUILD_SCRIPT="board/udoo/common/post-build.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.43"
+BR2_LINUX_KERNEL_LATEST_6_6=y
 BR2_LINUX_KERNEL_DEFCONFIG="imx_v6_v7"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="nxp/imx/imx6sx-udoo-neo-basic nxp/imx/imx6sx-udoo-neo-full nxp/imx/imx6sx-udoo-neo-extended"
diff --git a/configs/nexbox_a95x_defconfig b/configs/nexbox_a95x_defconfig
index 2c7ddd98b6..20442736d8 100644
--- a/configs/nexbox_a95x_defconfig
+++ b/configs/nexbox_a95x_defconfig
@@ -5,8 +5,7 @@ BR2_SYSTEM_DHCP="eth0"
 BR2_ROOTFS_POST_BUILD_SCRIPT="board/nexbox/a95x/post-build.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/nexbox/a95x/post-image.sh"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.10.12"
+BR2_LINUX_KERNEL_LATEST_5_10=y
 BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="amlogic/meson-gxbb-nexbox-a95x amlogic/meson-gxl-s905x-nexbox-a95x"
diff --git a/configs/nezha_defconfig b/configs/nezha_defconfig
index c234b3e243..e63abbbfb1 100644
--- a/configs/nezha_defconfig
+++ b/configs/nezha_defconfig
@@ -8,8 +8,7 @@ BR2_ROOTFS_OVERLAY="board/nezha/overlay"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/nezha/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.22"
+BR2_LINUX_KERNEL_LATEST_6_6=y
 BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
 BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/nezha/linux.fragment"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
diff --git a/configs/olimex_a10_olinuxino_lime_defconfig b/configs/olimex_a10_olinuxino_lime_defconfig
index 625491d69b..17244a1fbf 100644
--- a/configs/olimex_a10_olinuxino_lime_defconfig
+++ b/configs/olimex_a10_olinuxino_lime_defconfig
@@ -10,8 +10,7 @@ BR2_ROOTFS_OVERLAY="board/olimex/a10_olinuxino/rootfs_overlay"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/olimex/a10_olinuxino/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.8"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_DEFCONFIG="sunxi"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="allwinner/sun4i-a10-olinuxino-lime"
diff --git a/configs/olimex_a13_olinuxino_defconfig b/configs/olimex_a13_olinuxino_defconfig
index 9ec20779ce..f092478a99 100644
--- a/configs/olimex_a13_olinuxino_defconfig
+++ b/configs/olimex_a13_olinuxino_defconfig
@@ -10,8 +10,7 @@ BR2_ROOTFS_OVERLAY="board/olimex/a13_olinuxino/rootfs_overlay"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/olimex/a13_olinuxino/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.8"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_DEFCONFIG="sunxi"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="allwinner/sun5i-a13-olinuxino"
diff --git a/configs/olimex_a20_olinuxino_lime2_defconfig b/configs/olimex_a20_olinuxino_lime2_defconfig
index 4e8686615b..22b5d7aa23 100644
--- a/configs/olimex_a20_olinuxino_lime2_defconfig
+++ b/configs/olimex_a20_olinuxino_lime2_defconfig
@@ -13,8 +13,7 @@ BR2_ROOTFS_OVERLAY="board/olimex/a20_olinuxino/rootfs_overlay_mali"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/olimex/a20_olinuxino/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.8"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_DEFCONFIG="sunxi"
 BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/olimex/a20_olinuxino/linux-disable-lima.fragment"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
diff --git a/configs/olimex_a20_olinuxino_lime_defconfig b/configs/olimex_a20_olinuxino_lime_defconfig
index 7edbdcf369..25a29c3b96 100644
--- a/configs/olimex_a20_olinuxino_lime_defconfig
+++ b/configs/olimex_a20_olinuxino_lime_defconfig
@@ -13,8 +13,7 @@ BR2_ROOTFS_OVERLAY="board/olimex/a20_olinuxino/rootfs_overlay_mali"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/olimex/a20_olinuxino/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.8"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_DEFCONFIG="sunxi"
 BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/olimex/a20_olinuxino/linux-disable-lima.fragment"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
diff --git a/configs/olimex_a20_olinuxino_micro_defconfig b/configs/olimex_a20_olinuxino_micro_defconfig
index cf1c23ef35..9a92cd8460 100644
--- a/configs/olimex_a20_olinuxino_micro_defconfig
+++ b/configs/olimex_a20_olinuxino_micro_defconfig
@@ -12,8 +12,7 @@ BR2_ROOTFS_OVERLAY="board/olimex/a20_olinuxino/rootfs_overlay"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/olimex/a20_olinuxino/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.8"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_DEFCONFIG="sunxi"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="allwinner/sun7i-a20-olinuxino-micro"
diff --git a/configs/olimex_a33_olinuxino_defconfig b/configs/olimex_a33_olinuxino_defconfig
index 3606d49a41..995a75cfeb 100644
--- a/configs/olimex_a33_olinuxino_defconfig
+++ b/configs/olimex_a33_olinuxino_defconfig
@@ -10,8 +10,7 @@ BR2_ROOTFS_OVERLAY="board/olimex/a33_olinuxino/rootfs_overlay"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/olimex/a33_olinuxino/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.8"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_DEFCONFIG="sunxi"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="allwinner/sun8i-a33-olinuxino"
diff --git a/configs/olimex_a64_olinuxino_defconfig b/configs/olimex_a64_olinuxino_defconfig
index 6173fc8c20..5e5f0a9897 100644
--- a/configs/olimex_a64_olinuxino_defconfig
+++ b/configs/olimex_a64_olinuxino_defconfig
@@ -8,8 +8,7 @@ BR2_ROOTFS_OVERLAY="board/olimex/a64-olinuxino/rootfs_overlay"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/olimex/a64-olinuxino/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.8"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="allwinner/sun50i-a64-olinuxino"
diff --git a/configs/olimex_imx233_olinuxino_defconfig b/configs/olimex_imx233_olinuxino_defconfig
index 7f3a039200..d7d7979252 100644
--- a/configs/olimex_imx233_olinuxino_defconfig
+++ b/configs/olimex_imx233_olinuxino_defconfig
@@ -7,8 +7,7 @@ BR2_TARGET_GENERIC_GETTY_PORT="ttyAMA0"
 BR2_SYSTEM_DHCP="eth0"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/mxs/post-image.sh"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.1.83"
+BR2_LINUX_KERNEL_LATEST_6_1=y
 BR2_LINUX_KERNEL_DEFCONFIG="mxs"
 BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/olimex/imx233_olinuxino/linux-wifi.fragment"
 BR2_LINUX_KERNEL_UIMAGE=y
diff --git a/configs/orangepi_5_plus_defconfig b/configs/orangepi_5_plus_defconfig
index 53a633f639..9bbbcf15e1 100644
--- a/configs/orangepi_5_plus_defconfig
+++ b/configs/orangepi_5_plus_defconfig
@@ -12,8 +12,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/orangepi/orangepi-5-plus/post-build.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/orangepi/orangepi-5-plus/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.4"
+BR2_LINUX_KERNEL_LATEST_6_12=y
 BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
 BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/orangepi/orangepi-5-plus/linux.fragment"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
diff --git a/configs/orangepi_lite_defconfig b/configs/orangepi_lite_defconfig
index f1c63f9b1d..400425d191 100644
--- a/configs/orangepi_lite_defconfig
+++ b/configs/orangepi_lite_defconfig
@@ -10,8 +10,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/orangepi/common/post-build.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c $(BINARIES_DIR)/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.16"
+BR2_LINUX_KERNEL_LATEST_6_6=y
 BR2_LINUX_KERNEL_DEFCONFIG="sunxi"
 BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/orangepi/orangepi-lite/linux-extras.config"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
diff --git a/configs/orangepi_one_defconfig b/configs/orangepi_one_defconfig
index aef7eb6c77..de276f468e 100644
--- a/configs/orangepi_one_defconfig
+++ b/configs/orangepi_one_defconfig
@@ -11,8 +11,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/orangepi/common/post-build.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c $(BINARIES_DIR)/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.3"
+BR2_LINUX_KERNEL_LATEST_6_12=y
 BR2_LINUX_KERNEL_DEFCONFIG="sunxi"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="allwinner/sun8i-h3-orangepi-one"
diff --git a/configs/orangepi_pc2_defconfig b/configs/orangepi_pc2_defconfig
index 180c744bae..0ece79d5d0 100644
--- a/configs/orangepi_pc2_defconfig
+++ b/configs/orangepi_pc2_defconfig
@@ -7,8 +7,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/orangepi/common/post-build.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c $(BINARIES_DIR)/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.1.45"
+BR2_LINUX_KERNEL_LATEST_6_1=y
 BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="allwinner/sun50i-h5-orangepi-pc2"
diff --git a/configs/orangepi_pc_defconfig b/configs/orangepi_pc_defconfig
index 2b3099db7f..36ec41f49a 100644
--- a/configs/orangepi_pc_defconfig
+++ b/configs/orangepi_pc_defconfig
@@ -11,8 +11,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/orangepi/common/post-build.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c $(BINARIES_DIR)/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.1.91"
+BR2_LINUX_KERNEL_LATEST_6_1=y
 BR2_LINUX_KERNEL_DEFCONFIG="sunxi"
 BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/orangepi/orangepi-pc/linux.fragment"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
diff --git a/configs/orangepi_pc_plus_defconfig b/configs/orangepi_pc_plus_defconfig
index 878c7294de..7cba4ccffd 100644
--- a/configs/orangepi_pc_plus_defconfig
+++ b/configs/orangepi_pc_plus_defconfig
@@ -12,8 +12,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/orangepi/common/post-build.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c $(BINARIES_DIR)/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.3"
+BR2_LINUX_KERNEL_LATEST_6_12=y
 BR2_LINUX_KERNEL_DEFCONFIG="sunxi"
 BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/orangepi/orangepi-pc-plus/linux-extras.config"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
diff --git a/configs/orangepi_r1_defconfig b/configs/orangepi_r1_defconfig
index baf9788568..9e543628fb 100644
--- a/configs/orangepi_r1_defconfig
+++ b/configs/orangepi_r1_defconfig
@@ -10,8 +10,7 @@ BR2_SYSTEM_DHCP="eth0"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/orangepi/orangepi-r1/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.31"
+BR2_LINUX_KERNEL_LATEST_6_6=y
 BR2_LINUX_KERNEL_DEFCONFIG="sunxi"
 BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/orangepi/orangepi-r1/linux-extras.config"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
diff --git a/configs/orangepi_zero2w_defconfig b/configs/orangepi_zero2w_defconfig
index c2030b05c2..b6978e3fd1 100644
--- a/configs/orangepi_zero2w_defconfig
+++ b/configs/orangepi_zero2w_defconfig
@@ -9,8 +9,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/orangepi/common/post-build.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c $(BINARIES_DIR)/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.3"
+BR2_LINUX_KERNEL_LATEST_6_12=y
 BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="allwinner/sun50i-h618-orangepi-zero2w"
diff --git a/configs/orangepi_zero3_defconfig b/configs/orangepi_zero3_defconfig
index c6aa9c991a..552ff2cac0 100644
--- a/configs/orangepi_zero3_defconfig
+++ b/configs/orangepi_zero3_defconfig
@@ -10,8 +10,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/orangepi/common/post-build.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c $(BINARIES_DIR)/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.6"
+BR2_LINUX_KERNEL_LATEST_6_12=y
 BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="allwinner/sun50i-h618-orangepi-zero3"
diff --git a/configs/orangepi_zero_defconfig b/configs/orangepi_zero_defconfig
index 6372564e72..f5b9a138f6 100644
--- a/configs/orangepi_zero_defconfig
+++ b/configs/orangepi_zero_defconfig
@@ -12,8 +12,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/orangepi/common/post-build.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c $(BINARIES_DIR)/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.3"
+BR2_LINUX_KERNEL_LATEST_6_12=y
 BR2_LINUX_KERNEL_DEFCONFIG="sunxi"
 BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/orangepi/orangepi-zero/linux-extras.fragment"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
diff --git a/configs/orangepi_zero_plus2_defconfig b/configs/orangepi_zero_plus2_defconfig
index 2b7ad2064d..155e9ea46a 100644
--- a/configs/orangepi_zero_plus2_defconfig
+++ b/configs/orangepi_zero_plus2_defconfig
@@ -10,8 +10,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/orangepi/common/post-build.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c $(BINARIES_DIR)/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.3"
+BR2_LINUX_KERNEL_LATEST_6_12=y
 BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
 BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/orangepi/orangepi-zero-plus2/linux-extras.config"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
diff --git a/configs/orangepi_zero_plus_defconfig b/configs/orangepi_zero_plus_defconfig
index 48c8e993f0..c028ee832e 100644
--- a/configs/orangepi_zero_plus_defconfig
+++ b/configs/orangepi_zero_plus_defconfig
@@ -8,8 +8,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/orangepi/common/post-build.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c $(BINARIES_DIR)/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.1.53"
+BR2_LINUX_KERNEL_LATEST_6_1=y
 BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="allwinner/sun50i-h5-orangepi-zero-plus"
diff --git a/configs/pc_x86_64_bios_defconfig b/configs/pc_x86_64_bios_defconfig
index 3b3e4cc561..630839d5ae 100644
--- a/configs/pc_x86_64_bios_defconfig
+++ b/configs/pc_x86_64_bios_defconfig
@@ -8,8 +8,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/pc/post-build.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/pc/genimage-bios.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.47"
+BR2_LINUX_KERNEL_LATEST_6_12=y
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/pc/linux.config"
 BR2_LINUX_KERNEL_INSTALL_TARGET=y
diff --git a/configs/pc_x86_64_efi_defconfig b/configs/pc_x86_64_efi_defconfig
index a126eb8338..a91d499170 100644
--- a/configs/pc_x86_64_efi_defconfig
+++ b/configs/pc_x86_64_efi_defconfig
@@ -7,8 +7,7 @@ BR2_TARGET_GENERIC_GETTY_PORT="tty1"
 BR2_ROOTFS_POST_BUILD_SCRIPT="board/pc/post-build.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/pc/post-image-efi.sh"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.47"
+BR2_LINUX_KERNEL_LATEST_6_12=y
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/pc/linux.config"
 BR2_LINUX_KERNEL_INSTALL_TARGET=y
diff --git a/configs/pine64_defconfig b/configs/pine64_defconfig
index 9a77452a51..cc81c34ee9 100644
--- a/configs/pine64_defconfig
+++ b/configs/pine64_defconfig
@@ -9,8 +9,7 @@ BR2_TARGET_GENERIC_ISSUE="Welcome to PINE64"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/pine64/pine64/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.32"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="allwinner/sun50i-a64-pine64"
diff --git a/configs/pine64_pinecube_defconfig b/configs/pine64_pinecube_defconfig
index 2a0c567d76..6a373056c2 100644
--- a/configs/pine64_pinecube_defconfig
+++ b/configs/pine64_pinecube_defconfig
@@ -13,8 +13,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/pine64/pinecube/post-build.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/pine64/pinecube/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.33"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_DEFCONFIG="sunxi"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="allwinner/sun8i-s3-pinecube"
diff --git a/configs/pine64_star64_defconfig b/configs/pine64_star64_defconfig
index a0356447d5..a843df1b54 100644
--- a/configs/pine64_star64_defconfig
+++ b/configs/pine64_star64_defconfig
@@ -6,8 +6,7 @@ BR2_ROOTFS_OVERLAY="board/pine64/star64/overlay/"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/pine64/star64/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.57"
+BR2_LINUX_KERNEL_LATEST_6_12=y
 BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="starfive/jh7110-pine64-star64"
diff --git a/configs/polyhex_debix_model_a_defconfig b/configs/polyhex_debix_model_a_defconfig
index 6f8ec49410..dfdce059f3 100644
--- a/configs/polyhex_debix_model_a_defconfig
+++ b/configs/polyhex_debix_model_a_defconfig
@@ -8,8 +8,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/polyhex/debix-model-a/post-build.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c $(BINARIES_DIR)/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.14"
+BR2_LINUX_KERNEL_LATEST_6_12=y
 BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="freescale/imx8mp-debix-model-a"
diff --git a/configs/qemu_aarch64_ebbr_defconfig b/configs/qemu_aarch64_ebbr_defconfig
index 8d20813044..032fd80ab7 100644
--- a/configs/qemu_aarch64_ebbr_defconfig
+++ b/configs/qemu_aarch64_ebbr_defconfig
@@ -7,8 +7,7 @@ BR2_DOWNLOAD_FORCE_CHECK_HASHES=y
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh board/qemu/aarch64-ebbr/post-image.sh support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG) -c board/qemu/aarch64-ebbr/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.7"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
 BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
 BR2_LINUX_KERNEL_NEEDS_HOST_PYTHON3=y
diff --git a/configs/qemu_aarch64_sbsa_defconfig b/configs/qemu_aarch64_sbsa_defconfig
index 56c160c85a..e313d23988 100644
--- a/configs/qemu_aarch64_sbsa_defconfig
+++ b/configs/qemu_aarch64_sbsa_defconfig
@@ -10,8 +10,7 @@ BR2_SYSTEM_DHCP="eth0"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh board/qemu/aarch64-sbsa/assemble-flash-images support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG) -c board/qemu/aarch64-sbsa/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.7"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
 BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
 BR2_LINUX_KERNEL_NEEDS_HOST_PYTHON3=y
diff --git a/configs/qemu_aarch64_virt_defconfig b/configs/qemu_aarch64_virt_defconfig
index 19c8b86ae6..f153b80b4b 100644
--- a/configs/qemu_aarch64_virt_defconfig
+++ b/configs/qemu_aarch64_virt_defconfig
@@ -6,8 +6,7 @@ BR2_SYSTEM_DHCP="eth0"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.7"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/aarch64-virt/linux.config"
 BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
diff --git a/configs/qemu_arm_ebbr_defconfig b/configs/qemu_arm_ebbr_defconfig
index eae560590e..97066fc0f8 100644
--- a/configs/qemu_arm_ebbr_defconfig
+++ b/configs/qemu_arm_ebbr_defconfig
@@ -8,8 +8,7 @@ BR2_DOWNLOAD_FORCE_CHECK_HASHES=y
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh board/qemu/arm-ebbr/post-image.sh support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG) -c board/qemu/arm-ebbr/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.7"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
 BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/qemu/arm-ebbr/linux.fragment"
 BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
diff --git a/configs/qemu_arm_versatile_defconfig b/configs/qemu_arm_versatile_defconfig
index 7677e5fd05..24dadbce2e 100644
--- a/configs/qemu_arm_versatile_defconfig
+++ b/configs/qemu_arm_versatile_defconfig
@@ -7,8 +7,7 @@ BR2_SYSTEM_DHCP="eth0"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.7"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_DEFCONFIG="versatile"
 BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/qemu/arm-versatile/linux.fragment"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
diff --git a/configs/qemu_arm_vexpress_defconfig b/configs/qemu_arm_vexpress_defconfig
index 6dc116c1e7..d86a40cefa 100644
--- a/configs/qemu_arm_vexpress_defconfig
+++ b/configs/qemu_arm_vexpress_defconfig
@@ -10,8 +10,7 @@ BR2_SYSTEM_DHCP="eth0"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.7"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_DEFCONFIG="vexpress"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="arm/vexpress-v2p-ca9"
diff --git a/configs/qemu_arm_vexpress_tz_defconfig b/configs/qemu_arm_vexpress_tz_defconfig
index 84dca264da..33e4438f9d 100644
--- a/configs/qemu_arm_vexpress_tz_defconfig
+++ b/configs/qemu_arm_vexpress_tz_defconfig
@@ -11,8 +11,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/qemu/arm-vexpress-tz/post-build.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.7"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_DEFCONFIG="vexpress"
 BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/qemu/arm-vexpress-tz/linux.fragment"
 BR2_PACKAGE_OPENSSL=y
diff --git a/configs/qemu_hppa_b160l_defconfig b/configs/qemu_hppa_b160l_defconfig
index 7e3e561e3f..c94fecd096 100644
--- a/configs/qemu_hppa_b160l_defconfig
+++ b/configs/qemu_hppa_b160l_defconfig
@@ -7,8 +7,7 @@ BR2_SYSTEM_DHCP="eth0"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.7"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
 BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
 BR2_TARGET_ROOTFS_EXT2=y
diff --git a/configs/qemu_loongarch64_virt_efi_defconfig b/configs/qemu_loongarch64_virt_efi_defconfig
index 0c1d046892..516d66d2c3 100644
--- a/configs/qemu_loongarch64_virt_efi_defconfig
+++ b/configs/qemu_loongarch64_virt_efi_defconfig
@@ -7,8 +7,7 @@ BR2_SYSTEM_DHCP="eth0"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/loongarch64-virt-efi/post-image.sh board/qemu/post-image.sh support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG) -c board/qemu/loongarch64-virt-efi/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.7"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
 BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
 BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF=y
diff --git a/configs/qemu_m68k_mcf5208_defconfig b/configs/qemu_m68k_mcf5208_defconfig
index ac3df22579..7b132be470 100644
--- a/configs/qemu_m68k_mcf5208_defconfig
+++ b/configs/qemu_m68k_mcf5208_defconfig
@@ -8,8 +8,7 @@ BR2_SYSTEM_DHCP="eth0"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.7"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/m68k-mcf5208/linux.config"
 BR2_TARGET_ROOTFS_INITRAMFS=y
diff --git a/configs/qemu_m68k_q800_defconfig b/configs/qemu_m68k_q800_defconfig
index 87b9629921..04099ec426 100644
--- a/configs/qemu_m68k_q800_defconfig
+++ b/configs/qemu_m68k_q800_defconfig
@@ -7,8 +7,7 @@ BR2_SYSTEM_DHCP="eth0"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.7"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/m68k-q800/linux.config"
 BR2_TARGET_ROOTFS_EXT2=y
diff --git a/configs/qemu_microblazebe_mmu_defconfig b/configs/qemu_microblazebe_mmu_defconfig
index cc6871e212..245bbc6aa9 100644
--- a/configs/qemu_microblazebe_mmu_defconfig
+++ b/configs/qemu_microblazebe_mmu_defconfig
@@ -7,8 +7,7 @@ BR2_SYSTEM_DHCP="eth0"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.7"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/microblazebe-mmu/linux.config"
 BR2_LINUX_KERNEL_LINUX_BIN=y
diff --git a/configs/qemu_microblazeel_mmu_defconfig b/configs/qemu_microblazeel_mmu_defconfig
index 8945a775d0..4de88685be 100644
--- a/configs/qemu_microblazeel_mmu_defconfig
+++ b/configs/qemu_microblazeel_mmu_defconfig
@@ -7,8 +7,7 @@ BR2_SYSTEM_DHCP="eth0"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.7"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/microblazeel-mmu/linux.config"
 BR2_LINUX_KERNEL_LINUX_BIN=y
diff --git a/configs/qemu_mips32r2_malta_defconfig b/configs/qemu_mips32r2_malta_defconfig
index 832d9f2242..b4c7955646 100644
--- a/configs/qemu_mips32r2_malta_defconfig
+++ b/configs/qemu_mips32r2_malta_defconfig
@@ -8,8 +8,7 @@ BR2_SYSTEM_DHCP="eth0"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.7"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/mips32r2-malta/linux.config"
 BR2_LINUX_KERNEL_VMLINUX=y
diff --git a/configs/qemu_mips32r2el_malta_defconfig b/configs/qemu_mips32r2el_malta_defconfig
index b714a7fc6c..157498efbf 100644
--- a/configs/qemu_mips32r2el_malta_defconfig
+++ b/configs/qemu_mips32r2el_malta_defconfig
@@ -8,8 +8,7 @@ BR2_SYSTEM_DHCP="eth0"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.7"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/mips32r2el-malta/linux.config"
 BR2_LINUX_KERNEL_VMLINUX=y
diff --git a/configs/qemu_mips32r6_malta_defconfig b/configs/qemu_mips32r6_malta_defconfig
index 9cebeeaf45..c3f6e73cdd 100644
--- a/configs/qemu_mips32r6_malta_defconfig
+++ b/configs/qemu_mips32r6_malta_defconfig
@@ -8,8 +8,7 @@ BR2_SYSTEM_DHCP="eth0"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.7"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/mips32r6-malta/linux.config"
 BR2_LINUX_KERNEL_VMLINUX=y
diff --git a/configs/qemu_mips32r6el_malta_defconfig b/configs/qemu_mips32r6el_malta_defconfig
index d54ab1f15e..181c8b780a 100644
--- a/configs/qemu_mips32r6el_malta_defconfig
+++ b/configs/qemu_mips32r6el_malta_defconfig
@@ -8,8 +8,7 @@ BR2_SYSTEM_DHCP="eth0"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.7"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/mips32r6el-malta/linux.config"
 BR2_LINUX_KERNEL_VMLINUX=y
diff --git a/configs/qemu_mips64_malta_defconfig b/configs/qemu_mips64_malta_defconfig
index 62dba0e369..ffc4717aa9 100644
--- a/configs/qemu_mips64_malta_defconfig
+++ b/configs/qemu_mips64_malta_defconfig
@@ -8,8 +8,7 @@ BR2_SYSTEM_DHCP="eth0"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.7"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/mips64-malta/linux.config"
 BR2_LINUX_KERNEL_VMLINUX=y
diff --git a/configs/qemu_mips64el_malta_defconfig b/configs/qemu_mips64el_malta_defconfig
index 0714a8e70c..e2a2f76666 100644
--- a/configs/qemu_mips64el_malta_defconfig
+++ b/configs/qemu_mips64el_malta_defconfig
@@ -8,8 +8,7 @@ BR2_SYSTEM_DHCP="eth0"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.7"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/mips64el-malta/linux.config"
 BR2_LINUX_KERNEL_VMLINUX=y
diff --git a/configs/qemu_mips64r6_malta_defconfig b/configs/qemu_mips64r6_malta_defconfig
index c7eac226ea..6f98dc8e6d 100644
--- a/configs/qemu_mips64r6_malta_defconfig
+++ b/configs/qemu_mips64r6_malta_defconfig
@@ -9,8 +9,7 @@ BR2_SYSTEM_DHCP="eth0"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.7"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/mips64r6-malta/linux.config"
 BR2_LINUX_KERNEL_VMLINUX=y
diff --git a/configs/qemu_mips64r6el_malta_defconfig b/configs/qemu_mips64r6el_malta_defconfig
index 606bb61a39..c69d139d4f 100644
--- a/configs/qemu_mips64r6el_malta_defconfig
+++ b/configs/qemu_mips64r6el_malta_defconfig
@@ -9,8 +9,7 @@ BR2_SYSTEM_DHCP="eth0"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.7"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/mips64r6el-malta/linux.config"
 BR2_LINUX_KERNEL_VMLINUX=y
diff --git a/configs/qemu_or1k_defconfig b/configs/qemu_or1k_defconfig
index 19abf1efb7..853bd66a79 100644
--- a/configs/qemu_or1k_defconfig
+++ b/configs/qemu_or1k_defconfig
@@ -6,8 +6,7 @@ BR2_SYSTEM_DHCP="eth0"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.7"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/or1k/linux.config"
 BR2_TARGET_ROOTFS_INITRAMFS=y
diff --git a/configs/qemu_ppc64_e5500_defconfig b/configs/qemu_ppc64_e5500_defconfig
index 3d37656bf5..ef2ab4c7dc 100644
--- a/configs/qemu_ppc64_e5500_defconfig
+++ b/configs/qemu_ppc64_e5500_defconfig
@@ -8,8 +8,7 @@ BR2_SYSTEM_DHCP="eth0"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.7"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_DEFCONFIG="corenet64_smp"
 BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/qemu/ppc64-e5500/linux.fragment"
 BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
diff --git a/configs/qemu_ppc64_pseries_defconfig b/configs/qemu_ppc64_pseries_defconfig
index a46cedbb1f..0ebac413e0 100644
--- a/configs/qemu_ppc64_pseries_defconfig
+++ b/configs/qemu_ppc64_pseries_defconfig
@@ -8,8 +8,7 @@ BR2_SYSTEM_DHCP="eth0"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.7"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_DEFCONFIG="pseries"
 BR2_LINUX_KERNEL_VMLINUX=y
 BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
diff --git a/configs/qemu_ppc64le_powernv10_defconfig b/configs/qemu_ppc64le_powernv10_defconfig
index 41765c2f17..d62ac44b25 100644
--- a/configs/qemu_ppc64le_powernv10_defconfig
+++ b/configs/qemu_ppc64le_powernv10_defconfig
@@ -8,8 +8,7 @@ BR2_SYSTEM_DHCP="eth0"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.7"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_DEFCONFIG="powernv"
 BR2_LINUX_KERNEL_VMLINUX=y
 BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF=y
diff --git a/configs/qemu_ppc64le_powernv11_defconfig b/configs/qemu_ppc64le_powernv11_defconfig
index 94266a22d5..40224ef595 100644
--- a/configs/qemu_ppc64le_powernv11_defconfig
+++ b/configs/qemu_ppc64le_powernv11_defconfig
@@ -8,8 +8,7 @@ BR2_SYSTEM_DHCP="eth0"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.7"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_DEFCONFIG="powernv"
 BR2_LINUX_KERNEL_VMLINUX=y
 BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF=y
diff --git a/configs/qemu_ppc64le_powernv8_defconfig b/configs/qemu_ppc64le_powernv8_defconfig
index 5f1d7b78d9..0207a3e4b3 100644
--- a/configs/qemu_ppc64le_powernv8_defconfig
+++ b/configs/qemu_ppc64le_powernv8_defconfig
@@ -7,8 +7,7 @@ BR2_SYSTEM_DHCP="eth0"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.7"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_DEFCONFIG="powernv"
 BR2_LINUX_KERNEL_VMLINUX=y
 BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF=y
diff --git a/configs/qemu_ppc64le_pseries_defconfig b/configs/qemu_ppc64le_pseries_defconfig
index 4596d43682..0c732167c5 100644
--- a/configs/qemu_ppc64le_pseries_defconfig
+++ b/configs/qemu_ppc64le_pseries_defconfig
@@ -7,8 +7,7 @@ BR2_SYSTEM_DHCP="eth0"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.7"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_DEFCONFIG="pseries_le"
 BR2_LINUX_KERNEL_VMLINUX=y
 BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
diff --git a/configs/qemu_ppc_bamboo_defconfig b/configs/qemu_ppc_bamboo_defconfig
index 6e12047f85..03bb74f5e9 100644
--- a/configs/qemu_ppc_bamboo_defconfig
+++ b/configs/qemu_ppc_bamboo_defconfig
@@ -8,8 +8,7 @@ BR2_SYSTEM_DHCP="eth0"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.7"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_DEFCONFIG="44x/bamboo"
 BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/qemu/ppc-bamboo/linux.fragment"
 BR2_LINUX_KERNEL_VMLINUX=y
diff --git a/configs/qemu_ppc_e500mc_defconfig b/configs/qemu_ppc_e500mc_defconfig
index 6ac6e1c135..b6f39d9228 100644
--- a/configs/qemu_ppc_e500mc_defconfig
+++ b/configs/qemu_ppc_e500mc_defconfig
@@ -8,8 +8,7 @@ BR2_SYSTEM_DHCP="eth0"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.7"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_DEFCONFIG="corenet32_smp"
 BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/qemu/ppc-e500mc/linux.fragment"
 BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
diff --git a/configs/qemu_ppc_g3beige_defconfig b/configs/qemu_ppc_g3beige_defconfig
index a8e9c379ba..217ca4612c 100644
--- a/configs/qemu_ppc_g3beige_defconfig
+++ b/configs/qemu_ppc_g3beige_defconfig
@@ -8,8 +8,7 @@ BR2_SYSTEM_DHCP="eth0"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.7"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/ppc-g3beige/linux.config"
 BR2_LINUX_KERNEL_VMLINUX=y
diff --git a/configs/qemu_ppc_mac99_defconfig b/configs/qemu_ppc_mac99_defconfig
index 55d201bdb9..f83515bdda 100644
--- a/configs/qemu_ppc_mac99_defconfig
+++ b/configs/qemu_ppc_mac99_defconfig
@@ -8,8 +8,7 @@ BR2_SYSTEM_DHCP="eth0"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.7"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_DEFCONFIG="pmac32"
 BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/qemu/ppc-mac99/linux.fragment"
 BR2_LINUX_KERNEL_VMLINUX=y
diff --git a/configs/qemu_ppc_mpc8544ds_defconfig b/configs/qemu_ppc_mpc8544ds_defconfig
index 3e5a9a84fe..f75dbb725d 100644
--- a/configs/qemu_ppc_mpc8544ds_defconfig
+++ b/configs/qemu_ppc_mpc8544ds_defconfig
@@ -8,8 +8,7 @@ BR2_SYSTEM_DHCP="eth0"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.7"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/ppc-mpc8544ds/linux.config"
 BR2_LINUX_KERNEL_VMLINUX=y
diff --git a/configs/qemu_riscv32_nommu_virt_defconfig b/configs/qemu_riscv32_nommu_virt_defconfig
index 0f9ac77e41..3ac597dbc1 100644
--- a/configs/qemu_riscv32_nommu_virt_defconfig
+++ b/configs/qemu_riscv32_nommu_virt_defconfig
@@ -8,8 +8,7 @@ BR2_SYSTEM_DHCP="eth0"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.7"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/riscv32-virt/linux-nommu.config"
 BR2_TARGET_ROOTFS_EXT2=y
diff --git a/configs/qemu_riscv32_virt_defconfig b/configs/qemu_riscv32_virt_defconfig
index a57c94910c..cc87497303 100644
--- a/configs/qemu_riscv32_virt_defconfig
+++ b/configs/qemu_riscv32_virt_defconfig
@@ -7,8 +7,7 @@ BR2_SYSTEM_DHCP="eth0"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.7"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_DEFCONFIG="rv32"
 BR2_TARGET_ROOTFS_EXT2=y
 BR2_TARGET_OPENSBI=y
diff --git a/configs/qemu_riscv64_nommu_virt_defconfig b/configs/qemu_riscv64_nommu_virt_defconfig
index 58d89eae5f..953f4cc971 100644
--- a/configs/qemu_riscv64_nommu_virt_defconfig
+++ b/configs/qemu_riscv64_nommu_virt_defconfig
@@ -7,8 +7,7 @@ BR2_SYSTEM_DHCP="eth0"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.7"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/riscv64-virt/linux-nommu.config"
 BR2_TARGET_ROOTFS_EXT2=y
diff --git a/configs/qemu_riscv64_virt_defconfig b/configs/qemu_riscv64_virt_defconfig
index 0d91971d1c..b92f2b541e 100644
--- a/configs/qemu_riscv64_virt_defconfig
+++ b/configs/qemu_riscv64_virt_defconfig
@@ -6,8 +6,7 @@ BR2_SYSTEM_DHCP="eth0"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.7"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
 BR2_TARGET_ROOTFS_EXT2=y
 BR2_TARGET_OPENSBI=y
diff --git a/configs/qemu_riscv64_virt_efi_defconfig b/configs/qemu_riscv64_virt_efi_defconfig
index c279e159af..c1c22618b5 100644
--- a/configs/qemu_riscv64_virt_efi_defconfig
+++ b/configs/qemu_riscv64_virt_efi_defconfig
@@ -8,8 +8,7 @@ BR2_SYSTEM_DHCP="eth0"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh board/qemu/riscv64-virt-efi/assemble-flash-images support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG) -c board/qemu/riscv64-virt-efi/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.7"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
 BR2_TARGET_ROOTFS_EXT2=y
 # BR2_TARGET_ROOTFS_TAR is not set
diff --git a/configs/qemu_s390x_defconfig b/configs/qemu_s390x_defconfig
index 5efc048c89..d52145cba5 100644
--- a/configs/qemu_s390x_defconfig
+++ b/configs/qemu_s390x_defconfig
@@ -7,8 +7,7 @@ BR2_SYSTEM_DHCP="eth0"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.7"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
 BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
 BR2_TARGET_ROOTFS_EXT2=y
diff --git a/configs/qemu_sh4_r2d_defconfig b/configs/qemu_sh4_r2d_defconfig
index 2311f7e06c..66627592e4 100644
--- a/configs/qemu_sh4_r2d_defconfig
+++ b/configs/qemu_sh4_r2d_defconfig
@@ -7,8 +7,7 @@ BR2_SYSTEM_DHCP="eth0"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.7"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/sh4-r2d/linux.config"
 BR2_LINUX_KERNEL_ZIMAGE=y
diff --git a/configs/qemu_sh4eb_r2d_defconfig b/configs/qemu_sh4eb_r2d_defconfig
index 083c25ddb8..b375f3a3c9 100644
--- a/configs/qemu_sh4eb_r2d_defconfig
+++ b/configs/qemu_sh4eb_r2d_defconfig
@@ -7,8 +7,7 @@ BR2_TARGET_GENERIC_GETTY_PORT="ttySC1"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.7"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/sh4eb-r2d/linux.config"
 BR2_LINUX_KERNEL_ZIMAGE=y
diff --git a/configs/qemu_sparc64_sun4u_defconfig b/configs/qemu_sparc64_sun4u_defconfig
index 2a6d28aa42..914cb437da 100644
--- a/configs/qemu_sparc64_sun4u_defconfig
+++ b/configs/qemu_sparc64_sun4u_defconfig
@@ -6,8 +6,7 @@ BR2_SYSTEM_DHCP="eth0"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.7"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/sparc64-sun4u/linux.config"
 BR2_TARGET_ROOTFS_EXT2=y
diff --git a/configs/qemu_sparc_ss10_defconfig b/configs/qemu_sparc_ss10_defconfig
index fb039e5523..98ab0fcfc7 100644
--- a/configs/qemu_sparc_ss10_defconfig
+++ b/configs/qemu_sparc_ss10_defconfig
@@ -6,8 +6,7 @@ BR2_SYSTEM_DHCP="eth0"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.7"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/sparc-ss10/linux.config"
 BR2_TARGET_ROOTFS_EXT2=y
diff --git a/configs/qemu_x86_64_defconfig b/configs/qemu_x86_64_defconfig
index ccaac0d0b9..86c833ddd6 100644
--- a/configs/qemu_x86_64_defconfig
+++ b/configs/qemu_x86_64_defconfig
@@ -7,8 +7,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/qemu/x86_64/post-build.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.7"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/x86_64/linux.config"
 BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF=y
diff --git a/configs/qemu_x86_64_efi_defconfig b/configs/qemu_x86_64_efi_defconfig
index 60790857b5..54a93d0ce3 100644
--- a/configs/qemu_x86_64_efi_defconfig
+++ b/configs/qemu_x86_64_efi_defconfig
@@ -9,8 +9,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/qemu/x86_64-efi/post-build.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh board/qemu/x86_64-efi/post-image.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.7"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/x86_64-efi/linux.config"
 BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
diff --git a/configs/qemu_x86_defconfig b/configs/qemu_x86_defconfig
index 21e3d7657e..fbf0aea4fd 100644
--- a/configs/qemu_x86_defconfig
+++ b/configs/qemu_x86_defconfig
@@ -7,8 +7,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/qemu/x86/post-build.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.7"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/x86/linux.config"
 BR2_TARGET_ROOTFS_EXT2=y
diff --git a/configs/qemu_xtensa_lx60_defconfig b/configs/qemu_xtensa_lx60_defconfig
index a84395a344..a1e3537587 100644
--- a/configs/qemu_xtensa_lx60_defconfig
+++ b/configs/qemu_xtensa_lx60_defconfig
@@ -9,8 +9,7 @@ BR2_SYSTEM_DHCP="eth0"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.7"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/xtensa-lx60/linux.config"
 BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y
diff --git a/configs/qemu_xtensa_lx60_nommu_defconfig b/configs/qemu_xtensa_lx60_nommu_defconfig
index a937112a9e..152aeb35c2 100644
--- a/configs/qemu_xtensa_lx60_nommu_defconfig
+++ b/configs/qemu_xtensa_lx60_nommu_defconfig
@@ -10,8 +10,7 @@ BR2_SYSTEM_DHCP="eth0"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.7"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/xtensa-lx60/linux-nommu.config"
 BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y
diff --git a/configs/roc_pc_rk3399_defconfig b/configs/roc_pc_rk3399_defconfig
index c5c6771bdf..7ad5b386f4 100644
--- a/configs/roc_pc_rk3399_defconfig
+++ b/configs/roc_pc_rk3399_defconfig
@@ -9,8 +9,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/firefly/roc-rk3399-pc/post-build.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/firefly/roc-rk3399-pc/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.18"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="rockchip/rk3399-roc-pc"
diff --git a/configs/rock4se_defconfig b/configs/rock4se_defconfig
index c4e13f6a39..521a4f8779 100644
--- a/configs/rock4se_defconfig
+++ b/configs/rock4se_defconfig
@@ -11,8 +11,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/radxa/rock4se/post-build.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/radxa/rock4se/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.8"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="rockchip/rk3399-rock-4se"
diff --git a/configs/rock5b_defconfig b/configs/rock5b_defconfig
index bef12adaa4..737ef7bd6e 100644
--- a/configs/rock5b_defconfig
+++ b/configs/rock5b_defconfig
@@ -11,8 +11,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/radxa/rock5b/post-build.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/radxa/rock5b/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.4"
+BR2_LINUX_KERNEL_LATEST_6_12=y
 BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
 BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/radxa/rock5b/linux.fragment"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
diff --git a/configs/rockpro64_defconfig b/configs/rockpro64_defconfig
index c31365ca6b..31a4ff74fe 100644
--- a/configs/rockpro64_defconfig
+++ b/configs/rockpro64_defconfig
@@ -11,8 +11,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/pine64/rockpro64/post-build.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/pine64/rockpro64/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.4"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
 BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/pine64/rockpro64/linux.fragment"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
diff --git a/configs/rockpro64_ebbr_defconfig b/configs/rockpro64_ebbr_defconfig
index 0a8fc46e58..4e0f0a359f 100644
--- a/configs/rockpro64_ebbr_defconfig
+++ b/configs/rockpro64_ebbr_defconfig
@@ -10,8 +10,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/pine64/rockpro64-ebbr/post-build.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/pine64/rockpro64-ebbr/post-image.sh support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/pine64/rockpro64-ebbr/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.4"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
 BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/pine64/rockpro64-ebbr/linux.fragment"
 BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
diff --git a/configs/sipeed_licheepi_4a_defconfig b/configs/sipeed_licheepi_4a_defconfig
index c7867ed05d..7f6f5e4c35 100644
--- a/configs/sipeed_licheepi_4a_defconfig
+++ b/configs/sipeed_licheepi_4a_defconfig
@@ -10,8 +10,7 @@ BR2_TARGET_GENERIC_GETTY_PORT="ttyS0"
 BR2_TARGET_GENERIC_GETTY_BAUDRATE_115200=y
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/sipeed/licheepi_4a/post-image.sh"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.18"
+BR2_LINUX_KERNEL_LATEST_6_12=y
 BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="thead/th1520-lichee-pi-4a"
diff --git a/configs/sipeed_licheepi_zero_defconfig b/configs/sipeed_licheepi_zero_defconfig
index 0c60a5c763..b374711898 100644
--- a/configs/sipeed_licheepi_zero_defconfig
+++ b/configs/sipeed_licheepi_zero_defconfig
@@ -13,8 +13,7 @@ BR2_TARGET_GENERIC_GETTY_BAUDRATE_115200=y
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/sipeed/licheepi_zero/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.43"
+BR2_LINUX_KERNEL_LATEST_6_12=y
 BR2_LINUX_KERNEL_DEFCONFIG="sunxi"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="allwinner/sun8i-v3s-licheepi-zero allwinner/sun8i-v3s-licheepi-zero-dock"
diff --git a/configs/solidrun_clearfog_defconfig b/configs/solidrun_clearfog_defconfig
index 32fbb930bf..8cc6101f5e 100644
--- a/configs/solidrun_clearfog_defconfig
+++ b/configs/solidrun_clearfog_defconfig
@@ -10,8 +10,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/solidrun/clearfog/post-build.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/solidrun/clearfog/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.43"
+BR2_LINUX_KERNEL_LATEST_6_6=y
 BR2_LINUX_KERNEL_DEFCONFIG="mvebu_v7"
 BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/solidrun/clearfog/linux.fragment"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
diff --git a/configs/solidrun_clearfog_gt_8k_defconfig b/configs/solidrun_clearfog_gt_8k_defconfig
index 4187f68c2b..f15764dbb6 100644
--- a/configs/solidrun_clearfog_gt_8k_defconfig
+++ b/configs/solidrun_clearfog_gt_8k_defconfig
@@ -7,8 +7,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/solidrun/clearfog_gt_8k/post-build-mainline.
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/solidrun/clearfog_gt_8k/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.10.5"
+BR2_LINUX_KERNEL_LATEST_5_10=y
 BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
 BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/solidrun/clearfog_gt_8k/linux-extras.config"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
diff --git a/configs/solidrun_macchiatobin_defconfig b/configs/solidrun_macchiatobin_defconfig
index ed511bda99..d1c03f4ebc 100644
--- a/configs/solidrun_macchiatobin_defconfig
+++ b/configs/solidrun_macchiatobin_defconfig
@@ -6,8 +6,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/solidrun/macchiatobin/post-build-mainline.sh
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/solidrun/macchiatobin/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.10.5"
+BR2_LINUX_KERNEL_LATEST_5_10=y
 BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
 BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/solidrun/macchiatobin/linux-extras.config"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
diff --git a/configs/spike_riscv32_defconfig b/configs/spike_riscv32_defconfig
index a73f335f34..1429a880ab 100644
--- a/configs/spike_riscv32_defconfig
+++ b/configs/spike_riscv32_defconfig
@@ -4,8 +4,7 @@ BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_6=y
 BR2_GLOBAL_PATCH_DIR="board/spike/riscv32/patches"
 BR2_DOWNLOAD_FORCE_CHECK_HASHES=y
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.35"
+BR2_LINUX_KERNEL_LATEST_6_6=y
 BR2_LINUX_KERNEL_DEFCONFIG="rv32"
 BR2_TARGET_ROOTFS_CPIO=y
 # BR2_TARGET_ROOTFS_TAR is not set
diff --git a/configs/spike_riscv64_defconfig b/configs/spike_riscv64_defconfig
index 7b698737e2..5c44b3d3a2 100644
--- a/configs/spike_riscv64_defconfig
+++ b/configs/spike_riscv64_defconfig
@@ -3,8 +3,7 @@ BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_6=y
 BR2_GLOBAL_PATCH_DIR="board/spike/riscv64/patches"
 BR2_DOWNLOAD_FORCE_CHECK_HASHES=y
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.35"
+BR2_LINUX_KERNEL_LATEST_6_6=y
 BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
 BR2_TARGET_ROOTFS_CPIO=y
 # BR2_TARGET_ROOTFS_TAR is not set
diff --git a/configs/stm32f429_disco_xip_defconfig b/configs/stm32f429_disco_xip_defconfig
index 40577a21a5..b1aa193c60 100644
--- a/configs/stm32f429_disco_xip_defconfig
+++ b/configs/stm32f429_disco_xip_defconfig
@@ -7,8 +7,7 @@ BR2_GLOBAL_PATCH_DIR="board/stmicroelectronics/stm32f429-disco/patches"
 BR2_DOWNLOAD_FORCE_CHECK_HASHES=y
 BR2_ROOTFS_POST_BUILD_SCRIPT="board/stmicroelectronics/common/stm32f4xx/stm32-post-build.sh"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.1.177"
+BR2_LINUX_KERNEL_LATEST_6_1=y
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/stmicroelectronics/stm32f429-disco/linux.config"
 BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y
diff --git a/configs/stm32f469_disco_sd_defconfig b/configs/stm32f469_disco_sd_defconfig
index 70a214a108..b5132bf396 100644
--- a/configs/stm32f469_disco_sd_defconfig
+++ b/configs/stm32f469_disco_sd_defconfig
@@ -7,8 +7,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/stmicroelectronics/common/stm32f4xx/stm32-po
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/stmicroelectronics/stm32f469-disco/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15.211"
+BR2_LINUX_KERNEL_LATEST_5_15=y
 BR2_LINUX_KERNEL_DEFCONFIG="stm32"
 BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(LINUX_DIR)/arch/arm/configs/dram_0x00000000.config board/stmicroelectronics/stm32f469-disco/linux-sd.fragment"
 BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y
diff --git a/configs/stm32f469_disco_xip_defconfig b/configs/stm32f469_disco_xip_defconfig
index 578cecadbe..727b1c1767 100644
--- a/configs/stm32f469_disco_xip_defconfig
+++ b/configs/stm32f469_disco_xip_defconfig
@@ -7,8 +7,7 @@ BR2_GLOBAL_PATCH_DIR="board/stmicroelectronics/stm32f469-disco/patches"
 BR2_DOWNLOAD_FORCE_CHECK_HASHES=y
 BR2_ROOTFS_POST_BUILD_SCRIPT="board/stmicroelectronics/common/stm32f4xx/stm32-post-build.sh"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15.211"
+BR2_LINUX_KERNEL_LATEST_5_15=y
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/stmicroelectronics/stm32f469-disco/linux-xip.config"
 BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y
diff --git a/configs/stm32f746_disco_sd_defconfig b/configs/stm32f746_disco_sd_defconfig
index e0c257787a..9625625c0b 100644
--- a/configs/stm32f746_disco_sd_defconfig
+++ b/configs/stm32f746_disco_sd_defconfig
@@ -9,8 +9,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/stmicroelectronics/stm32f746-disco/post-buil
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/stmicroelectronics/stm32f746-disco/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15.211"
+BR2_LINUX_KERNEL_LATEST_5_15=y
 BR2_LINUX_KERNEL_DEFCONFIG="stm32"
 BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/stmicroelectronics/stm32f746-disco/linux.fragment"
 BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y
diff --git a/configs/stm32f769_disco_sd_defconfig b/configs/stm32f769_disco_sd_defconfig
index a025bd7802..1a401b69bc 100644
--- a/configs/stm32f769_disco_sd_defconfig
+++ b/configs/stm32f769_disco_sd_defconfig
@@ -7,8 +7,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/stmicroelectronics/stm32f769-disco/post-buil
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/stmicroelectronics/stm32f769-disco/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15.211"
+BR2_LINUX_KERNEL_LATEST_5_15=y
 BR2_LINUX_KERNEL_DEFCONFIG="stm32"
 BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(LINUX_DIR)/arch/arm/configs/dram_0xc0000000.config board/stmicroelectronics/stm32f769-disco/linux-sd.fragment"
 BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y
diff --git a/configs/stm32h747_disco_sd_defconfig b/configs/stm32h747_disco_sd_defconfig
index cd882aa5ac..2c871bce19 100644
--- a/configs/stm32h747_disco_sd_defconfig
+++ b/configs/stm32h747_disco_sd_defconfig
@@ -8,8 +8,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/stmicroelectronics/stm32h747-disco/post-buil
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/stmicroelectronics/stm32h747-disco/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.39"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_DEFCONFIG="stm32"
 BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(LINUX_DIR)/arch/arm/configs/dram_0xd0000000.config board/stmicroelectronics/stm32h747-disco/linux-sd.fragment"
 BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y
diff --git a/configs/stm32mp135f_dk_defconfig b/configs/stm32mp135f_dk_defconfig
index bd1c6ca00a..988683a153 100644
--- a/configs/stm32mp135f_dk_defconfig
+++ b/configs/stm32mp135f_dk_defconfig
@@ -9,8 +9,7 @@ BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y
 BR2_ROOTFS_OVERLAY="board/stmicroelectronics/stm32mp135f-dk/overlay"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/stmicroelectronics/common/stm32mp1xx/post-image.sh"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.95"
+BR2_LINUX_KERNEL_LATEST_6_12=y
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/stmicroelectronics/stm32mp135f-dk/linux.config"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
diff --git a/configs/stm32mp157a_dk1_defconfig b/configs/stm32mp157a_dk1_defconfig
index 7f4143fa32..4c417db9b2 100644
--- a/configs/stm32mp157a_dk1_defconfig
+++ b/configs/stm32mp157a_dk1_defconfig
@@ -8,8 +8,7 @@ BR2_DOWNLOAD_FORCE_CHECK_HASHES=y
 BR2_ROOTFS_OVERLAY="board/stmicroelectronics/stm32mp157a-dk1/overlay/"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/stmicroelectronics/common/stm32mp1xx/post-image.sh"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.95"
+BR2_LINUX_KERNEL_LATEST_6_12=y
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/stmicroelectronics/stm32mp157a-dk1/linux.config"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
diff --git a/configs/stm32mp157c_dk2_defconfig b/configs/stm32mp157c_dk2_defconfig
index 10638f2260..7e3165209c 100644
--- a/configs/stm32mp157c_dk2_defconfig
+++ b/configs/stm32mp157c_dk2_defconfig
@@ -8,8 +8,7 @@ BR2_DOWNLOAD_FORCE_CHECK_HASHES=y
 BR2_ROOTFS_OVERLAY="board/stmicroelectronics/stm32mp157c-dk2/overlay/"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/stmicroelectronics/common/stm32mp1xx/post-image.sh"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.95"
+BR2_LINUX_KERNEL_LATEST_6_12=y
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/stmicroelectronics/stm32mp157c-dk2/linux.config"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
diff --git a/configs/stm32mp157c_odyssey_defconfig b/configs/stm32mp157c_odyssey_defconfig
index 5cab460ab7..6ad9cf7baf 100644
--- a/configs/stm32mp157c_odyssey_defconfig
+++ b/configs/stm32mp157c_odyssey_defconfig
@@ -6,8 +6,7 @@ BR2_ROOTFS_OVERLAY="board/seeed/stm32mp157c-odyssey/overlay/"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/seeed/stm32mp157c-odyssey/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.10.1"
+BR2_LINUX_KERNEL_LATEST_5_10=y
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/seeed/stm32mp157c-odyssey/linux.config"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
diff --git a/configs/ti_am62x_sk_defconfig b/configs/ti_am62x_sk_defconfig
index ddabba238f..fc6977419b 100644
--- a/configs/ti_am62x_sk_defconfig
+++ b/configs/ti_am62x_sk_defconfig
@@ -9,8 +9,7 @@ BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_BUILD_SCRIPT_ARGS="-c ttyS2,115200n8 -d k3-am625-sk.dtb -l am62x-sk-buildroot -r /dev/mmcblk1p2 -x earlycon=ns16550a,mmio32,0x02800000"
 BR2_ROOTFS_POST_IMAGE_SCRIPT_ARGS="-c board/ti/am62x-sk/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.95"
+BR2_LINUX_KERNEL_LATEST_6_12=y
 BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="ti/k3-am625-sk"
diff --git a/configs/ti_tda4vm_sk_defconfig b/configs/ti_tda4vm_sk_defconfig
index be2529fb37..4123c98f08 100644
--- a/configs/ti_tda4vm_sk_defconfig
+++ b/configs/ti_tda4vm_sk_defconfig
@@ -10,8 +10,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/ti/tda4vm-sk/post-build.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/ti/tda4vm-sk/genimage.cfg"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.16"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="ti/k3-j721e-sk"
diff --git a/configs/visionfive2_defconfig b/configs/visionfive2_defconfig
index 7ce605b84b..abf723e3e8 100644
--- a/configs/visionfive2_defconfig
+++ b/configs/visionfive2_defconfig
@@ -6,8 +6,7 @@ BR2_SYSTEM_DHCP="eth0"
 BR2_ROOTFS_OVERLAY="board/visionfive2/overlay"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/visionfive2/post-image.sh"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.51"
+BR2_LINUX_KERNEL_LATEST_6_18=y
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/visionfive2/linux_defconfig"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
diff --git a/configs/wandboard_defconfig b/configs/wandboard_defconfig
index 1bd00c5780..33361a0928 100644
--- a/configs/wandboard_defconfig
+++ b/configs/wandboard_defconfig
@@ -8,8 +8,7 @@ BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0"
 BR2_ROOTFS_OVERLAY="board/wandboard/rootfs_overlay"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.47"
+BR2_LINUX_KERNEL_LATEST_6_6=y
 BR2_LINUX_KERNEL_DEFCONFIG="imx_v6_v7"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="nxp/imx/imx6q-wandboard nxp/imx/imx6dl-wandboard nxp/imx/imx6q-wandboard-revb1 nxp/imx/imx6dl-wandboard-revb1 nxp/imx/imx6q-wandboard-revd1 nxp/imx/imx6dl-wandboard-revd1 nxp/imx/imx6qp-wandboard-revd1"
diff --git a/configs/warp7_defconfig b/configs/warp7_defconfig
index 5fec15d4ba..8769ad3eda 100644
--- a/configs/warp7_defconfig
+++ b/configs/warp7_defconfig
@@ -7,8 +7,7 @@ BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0"
 BR2_ROOTFS_OVERLAY="board/warp7/rootfs_overlay"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.24"
+BR2_LINUX_KERNEL_LATEST_6_12=y
 BR2_LINUX_KERNEL_DEFCONFIG="imx_v6_v7"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="nxp/imx/imx7s-warp"
-- 
2.55.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* Re: [Buildroot] [PATCH 1/3] linux: always select host-uboot-tools for mips
  2026-10-10 20:15 ` [Buildroot] [PATCH 1/3] linux: always select host-uboot-tools for mips Titouan Christophe via buildroot
@ 2026-10-11 12:30   ` Peter Korsgaard
  0 siblings, 0 replies; 18+ messages in thread
From: Peter Korsgaard @ 2026-10-11 12:30 UTC (permalink / raw)
  To: Titouan Christophe
  Cc: buildroot, git, thomas.petazzoni, arnout, thomas.perale, ju.o

>>>>> "Titouan" == Titouan Christophe <titouan.christophe@mind.be> writes:

 > Since Buildroot commit 40e266ccb9 [1], host-uboot-tools was always selected
 > for the latest Linux kernel. This change is intended for autobuilders, and
 > was introduced in Buildroot while the latest kernel was 6.12.

 > However, further investigation seem to indicate that itb images were
 > generated for mips for a much longer time. Linux commit eed0eabd12 [2]
 > seem to enable that image format, and was released in Linux 4.9.

 > This version being EOL for quite some time, we can therefore assume
 > any "not so old" Linux for mips will need host-uboot-tools to finalize
 > this image, and therefore we should select it when building Linux.

 > [1] linux: select host-uboot-tools with FIT on mips
 >     https://gitlab.com/buildroot.org/buildroot/-/commit/40e266ccb9
 > [2] MIPS: generic: Introduce generic DT-based board support
 >     https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=eed0eabd12ef061821cbfa20d903476e07645320

 > Signed-off-by: Titouan Christophe <titouan.christophe@mind.be>

Committed, thanks.

-- 
Bye, Peter Korsgaard
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [Buildroot] [PATCH 2/3] linux: add first-class support for all upstream linux versions
  2026-10-10 20:15 ` [Buildroot] [PATCH 2/3] linux: add first-class support for all upstream linux versions Titouan Christophe via buildroot
@ 2026-10-11 12:32   ` Peter Korsgaard
  2026-10-11 13:12   ` Peter Korsgaard
  1 sibling, 0 replies; 18+ messages in thread
From: Peter Korsgaard @ 2026-10-11 12:32 UTC (permalink / raw)
  To: Titouan Christophe
  Cc: buildroot, git, thomas.petazzoni, arnout, thomas.perale, ju.o

>>>>> "Titouan" == Titouan Christophe <titouan.christophe@mind.be> writes:

 > Add new KConfig symbols for all actively supported longterm versions of the
 > Linux kernel. This makes it easier for individual configs to follow updates
 > of their kernels, without having to frequently update them. This should
 > generally improve the security of the target systems, which receive frequent
 > security updates while preserving a stable feature set.

 > Signed-off-by: Titouan Christophe <titouan.christophe@mind.be>
 > ---
 >  linux/Config.in                      | 49 ++++++++++++++++++++++++++--
 >  linux/linux.mk                       |  2 +-
 >  package/linux-headers/Config.in.host |  4 +--
 >  3 files changed, 48 insertions(+), 7 deletions(-)

 > diff --git a/linux/Config.in b/linux/Config.in
 > index 3521fe5cd5..717c964dcd 100644
 > --- a/linux/Config.in
 > +++ b/linux/Config.in
 > @@ -32,15 +32,53 @@ config BR2_LINUX_NEEDS_MODULES
 >  choice
 >  	prompt "Kernel version"
 
 > +config BR2_LINUX_KERNEL_LATEST_SERIES
 > +	# Helper symbol to indicate if one of the "latest" kernel
 > +	# (either the very latest one or from a longterm supported series)
 > +	# has been selected
 > +	bool
 > +

check-symbols complains about this:

./utils/check-symbols
linux/Config.in:44: BR2_LINUX_KERNEL_LATEST_SERIES is part of a "choice" and should not be "select"ed
linux/Config.in:49: BR2_LINUX_KERNEL_LATEST_SERIES is part of a "choice" and should not be "select"ed
linux/Config.in:54: BR2_LINUX_KERNEL_LATEST_SERIES is part of a "choice" and should not be "select"ed
linux/Config.in:59: BR2_LINUX_KERNEL_LATEST_SERIES is part of a "choice" and should not be "select"ed
linux/Config.in:64: BR2_LINUX_KERNEL_LATEST_SERIES is part of a "choice" and should not be "select"ed
linux/Config.in:69: BR2_LINUX_KERNEL_LATEST_SERIES is part of a "choice" and should not be "select"ed
linux/Config.in:74: BR2_LINUX_KERNEL_LATEST_SERIES is part of a "choice" and should not be "select"ed
linux/Config.in:81: BR2_LINUX_KERNEL_LATEST_SERIES is part of a "choice" and should not be "select"ed
linux/Config.in:104: BR2_LINUX_KERNEL_LATEST_SERIES is part of a "choice" and should not be "select"ed

So I moved it outside the choice and committed, thanks.

-- 
Bye, Peter Korsgaard
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [Buildroot] [PATCH 3/3] configs: update defconfigs with custom versions to BR2_LINUX_KERNEL_LATEST_X_Y
  2026-10-10 20:15 ` [Buildroot] [PATCH 3/3] configs: update defconfigs with custom versions to BR2_LINUX_KERNEL_LATEST_X_Y Titouan Christophe via buildroot
@ 2026-10-11 13:05   ` Peter Korsgaard
  2026-10-11 13:08     ` Titouan Christophe via buildroot
  2026-10-11 16:45   ` Baruch Siach via buildroot
  1 sibling, 1 reply; 18+ messages in thread
From: Peter Korsgaard @ 2026-10-11 13:05 UTC (permalink / raw)
  To: Titouan Christophe
  Cc: buildroot, git, thomas.petazzoni, arnout, thomas.perale, ju.o

>>>>> "Titouan" == Titouan Christophe <titouan.christophe@mind.be> writes:

 > Update all defconfigs that are using a custom Linux version based on a
 > longterm supported Linux version so they use the newly introduced symbols.

 > We already see from this diff that using that feature updates quite a bunch
 > of disparate kernel versions accross the tree.

s/accross/across/

 > This change was automated with the following Python script:

Thanks for including the script!

Please check that the defconfigs are still minimal, E.G. for
visionfive2_defconfig the BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_18=y
line gets dropped my make savedefconfig.

-- 
Bye, Peter Korsgaard
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [Buildroot] [PATCH 3/3] configs: update defconfigs with custom versions to BR2_LINUX_KERNEL_LATEST_X_Y
  2026-10-11 13:05   ` Peter Korsgaard
@ 2026-10-11 13:08     ` Titouan Christophe via buildroot
  0 siblings, 0 replies; 18+ messages in thread
From: Titouan Christophe via buildroot @ 2026-10-11 13:08 UTC (permalink / raw)
  To: Peter Korsgaard
  Cc: buildroot, git, thomas.petazzoni, arnout, thomas.perale, ju.o



On 11/10/26 15:05, Peter Korsgaard wrote:
>>>>>> "Titouan" == Titouan Christophe <titouan.christophe@mind.be> writes:
>   > Update all defconfigs that are using a custom Linux version based on a
>   > longterm supported Linux version so they use the newly introduced symbols.
>
>   > We already see from this diff that using that feature updates quite a bunch
>   > of disparate kernel versions accross the tree.
>
> s/accross/across/
>
>   > This change was automated with the following Python script:
>
> Thanks for including the script!
>
> Please check that the defconfigs are still minimal, E.G. for
> visionfive2_defconfig the BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_18=y
> line gets dropped my make savedefconfig.
>
Oh you are right !
I had performed that in a first pass, identified an issue that I fixed 
in the python script, and then used that fix immediately without 
re-processing the defconfigs.

Will send a v2 of this patch.

Regards,
Titouan
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [Buildroot] [PATCH 2/3] linux: add first-class support for all upstream linux versions
  2026-10-10 20:15 ` [Buildroot] [PATCH 2/3] linux: add first-class support for all upstream linux versions Titouan Christophe via buildroot
  2026-10-11 12:32   ` Peter Korsgaard
@ 2026-10-11 13:12   ` Peter Korsgaard
  1 sibling, 0 replies; 18+ messages in thread
From: Peter Korsgaard @ 2026-10-11 13:12 UTC (permalink / raw)
  To: Titouan Christophe
  Cc: buildroot, git, thomas.petazzoni, arnout, thomas.perale, ju.o

>>>>> "Titouan" == Titouan Christophe <titouan.christophe@mind.be> writes:

One more thing:

 > Add new KConfig symbols for all actively supported longterm versions of the
 > Linux kernel. This makes it easier for individual configs to follow updates
 > of their kernels, without having to frequently update them. This should
 > generally improve the security of the target systems, which receive frequent
 > security updates while preserving a stable feature set.

 > Signed-off-by: Titouan Christophe <titouan.christophe@mind.be>

 > -ifeq ($(BR2_LINUX_KERNEL)$(BR2_LINUX_KERNEL_LATEST_VERSION),y)
 > +ifeq ($(BR2_LINUX_KERNEL)$(BR2_LINUX_KERNEL_LATEST_SERIES),y)
 >  BR_NO_CHECK_HASH_FOR += $(LINUX_SOURCE)
 >  endif

When we do this then we also need to ensure the hashes for all these
versions are available, so I added the version symlinks like we have for
the linux-headers package:

lrwxrwxrwx 1 peko peko    11 Oct 11 15:08 5.10.271 -> before-6.17
lrwxrwxrwx 1 peko peko    11 Oct 11 15:08 5.15.222 -> before-6.17
lrwxrwxrwx 1 peko peko    11 Oct 11 15:07 6.1.189 -> before-6.17
lrwxrwxrwx 1 peko peko    11 Oct 11 15:07 6.12.112 -> before-6.17
lrwxrwxrwx 1 peko peko     9 Oct 11 15:07 6.18.55 -> from-6.17
lrwxrwxrwx 1 peko peko    11 Oct 11 15:07 6.6.158 -> before-6.17

-- 
Bye, Peter Korsgaard
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [Buildroot] [PATCH 3/3] configs: update defconfigs with custom versions to BR2_LINUX_KERNEL_LATEST_X_Y
  2026-10-10 20:15 ` [Buildroot] [PATCH 3/3] configs: update defconfigs with custom versions to BR2_LINUX_KERNEL_LATEST_X_Y Titouan Christophe via buildroot
  2026-10-11 13:05   ` Peter Korsgaard
@ 2026-10-11 16:45   ` Baruch Siach via buildroot
  2026-10-11 19:10     ` Titouan Christophe via buildroot
  2026-10-11 19:29     ` Arnout Vandecappelle via buildroot
  1 sibling, 2 replies; 18+ messages in thread
From: Baruch Siach via buildroot @ 2026-10-11 16:45 UTC (permalink / raw)
  To: Titouan Christophe via buildroot
  Cc: Titouan Christophe, ju.o, thomas.petazzoni, arnout, git,
	thomas.perale

Hi Titouan,

On Sat, Oct 10 2026, Titouan Christophe via buildroot wrote:
> Update all defconfigs that are using a custom Linux version based on a
> longterm supported Linux version so they use the newly introduced symbols.

This is a significant policy change for Buildroot. The configs/
directory is meant to carry configurations that are "known to work",
according to adding-board-support section in Buildroot manual
(docs/manual/adding-board-support.adoc).

Automatic update of the kernel component without actual hardware test
risks introducing regressions that make the system unbootable.

For this reason adding-board-support section also says:

> Always use fixed versions or commit hashes for the different
> components, not the "latest" version.

If we intend to change this policy I think we should discuss the
motivation on the list. In case such discussion did take place, this
comment should reference that discussion. In any case, the manual should
also update to reflect the current policy.

baruch

-- 
                                                     ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch@tkos.co.il - tel: +972.52.368.4656, http://www.tkos.co.il -
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [Buildroot] [PATCH 3/3] configs: update defconfigs with custom versions to BR2_LINUX_KERNEL_LATEST_X_Y
  2026-10-11 16:45   ` Baruch Siach via buildroot
@ 2026-10-11 19:10     ` Titouan Christophe via buildroot
  2026-10-12  6:04       ` Baruch Siach via buildroot
  2026-10-11 19:29     ` Arnout Vandecappelle via buildroot
  1 sibling, 1 reply; 18+ messages in thread
From: Titouan Christophe via buildroot @ 2026-10-11 19:10 UTC (permalink / raw)
  To: Baruch Siach, Titouan Christophe via buildroot
  Cc: ju.o, thomas.petazzoni, arnout, git, thomas.perale

Good evening Baruch,

On 11/10/26 18:45, Baruch Siach wrote:
> Hi Titouan,
>
> On Sat, Oct 10 2026, Titouan Christophe via buildroot wrote:
>> Update all defconfigs that are using a custom Linux version based on a
>> longterm supported Linux version so they use the newly introduced symbols.
> This is a significant policy change for Buildroot. The configs/
> directory is meant to carry configurations that are "known to work",
> according to adding-board-support section in Buildroot manual
> (docs/manual/adding-board-support.adoc).

Thank you for raising that concern ! I am currently preparing a v2 of 
this patch (with many other fixups), and I will update the manual 
accordingly.
> Automatic update of the kernel component without actual hardware test
> risks introducing regressions that make the system unbootable.

This is a tradeoff, really.
On one hand (A), there is the risk of breaking the functionality of a 
board by bumping from one patch version to another.
On the other (B), any new Linux patch version brings a handful of 
security fixes, and this happens on a weekly basis.

Now onto practical considerations and my opinions:
- From my understanding, (A) is not very frequent when bumping from one 
patch version to another. It can certainly happen on a specific board 
from time to time, but this is definitely far from the general case. If 
you (or anyone else) have some recent examples of such situations, I'd 
be glad to read about them. On the contrary bugs in core components that 
would affect all boards, such as the ext4 corruption introduced in linux 
6.1.64, would be more easily controllable tree-wise with such a mechanism.
- We see that many boards in the Buildroot tree are updated very 
infrequently, and are using old kernel versions, sometimes lagging more 
than 200 versions behind (see for example 
configs/minnowboard_max_defconfig). This is not a good sign for newcomers.
- Each kernel version bump for a single board is a patch that has to be 
reviewed and applied by a maintainer. I believe their time is better 
invested into patches that need actual effort, especially given the 
current patchwork backlog
- From my LTS steward perspective, it is practically unfeasible to apply 
linux version bumps on the maintained branches, because their minor 
kernel versions differ from master. On the other hand we try to deliver 
on the premise of improved security, hence getting security updates in 
due time.

With all that being said:
- Linux kernel versions are still stated explicitly in Buildroot and are 
bumped with patches that follow the usual review process. They would 
only be declared in a central place.
- It is still possible to pin a particular linux kernel version to a 
board with BR2_LINUX_KERNEL_CUSTOM_VERSION if needed
>
> For this reason adding-board-support section also says:
>
>> Always use fixed versions or commit hashes for the different
>> components, not the "latest" version.
> If we intend to change this policy I think we should discuss the
> motivation on the list. In case such discussion did take place, this
> comment should reference that discussion. In any case, the manual should
> also update to reflect the current policy.

I indeed brought the discussion in person with the maintainers that were 
present at the Buildroot Developers meeting after ELC, but I should be 
more verbose in writing, I will pay more attention to that in v2. If you 
have anything else to bring to the discussion, please let me know as well.

Kind regards,
Titouan

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [Buildroot] [PATCH 3/3] configs: update defconfigs with custom versions to BR2_LINUX_KERNEL_LATEST_X_Y
  2026-10-11 16:45   ` Baruch Siach via buildroot
  2026-10-11 19:10     ` Titouan Christophe via buildroot
@ 2026-10-11 19:29     ` Arnout Vandecappelle via buildroot
  2026-10-11 19:37       ` Titouan Christophe via buildroot
  1 sibling, 1 reply; 18+ messages in thread
From: Arnout Vandecappelle via buildroot @ 2026-10-11 19:29 UTC (permalink / raw)
  To: Baruch Siach, Titouan Christophe via buildroot
  Cc: Titouan Christophe, ju.o, thomas.petazzoni, git, thomas.perale



On 11/10/2026 18:45, Baruch Siach via buildroot wrote:
> Hi Titouan,
> 
> On Sat, Oct 10 2026, Titouan Christophe via buildroot wrote:
>> Update all defconfigs that are using a custom Linux version based on a
>> longterm supported Linux version so they use the newly introduced symbols.
> 
> This is a significant policy change for Buildroot. The configs/
> directory is meant to carry configurations that are "known to work",
> according to adding-board-support section in Buildroot manual
> (docs/manual/adding-board-support.adoc).
> 
> Automatic update of the kernel component without actual hardware test
> risks introducing regressions that make the system unbootable.
> 
> For this reason adding-board-support section also says:
> 
>> Always use fixed versions or commit hashes for the different
>> components, not the "latest" version.
> 
> If we intend to change this policy I think we should discuss the
> motivation on the list. In case such discussion did take place, this
> comment should reference that discussion. In any case, the manual should
> also update to reflect the current policy.
  It was discussed orally during the developer meeting, but you're right that 
it's something that should be discussed in public as well. Consider this the 
start of that discussion :-)

  There are several reasons that we thought this was acceptable.

  The current situation is that defconfigs contain a known-broken kernel 
(because every stable update has bugfixes). Also the assumed testing is 
typically very minimal, i.e. it is tested that the board boots. It's possible 
that e.g. networking is broken and the contributor doesn't notice.

  Similarly, we do already update the toolchain and busybox without testing if 
it still boots. Of course, you can argue that that doesn't mean we should be 
making it even worse.

  The other thing is that we can kind of trust the kernel stable process to 
avoid breaking things - or at least, that breakage is going to get fixed 
relatively quickly.

  We also have to face the fact that most boards are rarely updated. It's not 
super easy to update the board's kernel because you also have to update the hash 
file. And because of this we have different hash files all over the place. So 
users are facing a very old kernel. Not exactly the best out-of-the-box 
experience either.
On the other hand, in the current situation at least the user gets some info 
about which kernel version is supposed to work, and it's relatively easy to 
switch to one of the stable kernel versions. This proposed change takes away 
that information.

  Another benefit we saw is that at some point a stable series goes EOL, so the 
corresponding option is removed from linux/Config.in. We can use that occasion 
to also remove stale defconfigs that still use that very old kernel. But of 
course, it's easy enough to do that without this option as well.


  Now that I've written all of this down, I'm not so sure if this is a good idea 
after all. The arguments in favour are fairly thin, especially since it's rather 
easy for a user to switch to one of the stable kernels.

  I do think we should at least do this for the qemu family - but those do get 
tested of course.

  Regards,
  Arnout

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [Buildroot] [PATCH 3/3] configs: update defconfigs with custom versions to BR2_LINUX_KERNEL_LATEST_X_Y
  2026-10-11 19:29     ` Arnout Vandecappelle via buildroot
@ 2026-10-11 19:37       ` Titouan Christophe via buildroot
  0 siblings, 0 replies; 18+ messages in thread
From: Titouan Christophe via buildroot @ 2026-10-11 19:37 UTC (permalink / raw)
  To: Arnout Vandecappelle, Baruch Siach,
	Titouan Christophe via buildroot
  Cc: ju.o, thomas.petazzoni, git, thomas.perale

Hi Arnout,

On 11/10/26 21:29, Arnout Vandecappelle wrote:
--- SNIP ---
>
>  Now that I've written all of this down, I'm not so sure if this is a 
> good idea after all. The arguments in favour are fairly thin, 
> especially since it's rather easy for a user to switch to one of the 
> stable kernels.

One argument that I believe strengthen the case for this patch is that 
having this mechanism in place for LTS branches would really help in 
keeping boards up to date regarding security fixes in the kernel, which 
are prohibitively complicated to backport otherwise. But of course I'm 
really biased here.

>
>  I do think we should at least do this for the qemu family - but those 
> do get tested of course.
>
>  Regards,
>  Arnout

Titouan

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [Buildroot] [PATCH 3/3] configs: update defconfigs with custom versions to BR2_LINUX_KERNEL_LATEST_X_Y
  2026-10-11 19:10     ` Titouan Christophe via buildroot
@ 2026-10-12  6:04       ` Baruch Siach via buildroot
  2026-10-12  8:35         ` Titouan Christophe via buildroot
  0 siblings, 1 reply; 18+ messages in thread
From: Baruch Siach via buildroot @ 2026-10-12  6:04 UTC (permalink / raw)
  To: Titouan Christophe
  Cc: Titouan Christophe via buildroot, ju.o, thomas.petazzoni, arnout,
	git, thomas.perale

Hi Titouan,

On Sun, Oct 11 2026, Titouan Christophe wrote:
> On 11/10/26 18:45, Baruch Siach wrote:
>> On Sat, Oct 10 2026, Titouan Christophe via buildroot wrote:
>>> Update all defconfigs that are using a custom Linux version based on a
>>> longterm supported Linux version so they use the newly introduced symbols.
>> This is a significant policy change for Buildroot. The configs/
>> directory is meant to carry configurations that are "known to work",
>> according to adding-board-support section in Buildroot manual
>> (docs/manual/adding-board-support.adoc).
>
> Thank you for raising that concern ! I am currently preparing a v2 of this
> patch (with many other fixups), and I will update the manual accordingly.
>> Automatic update of the kernel component without actual hardware test
>> risks introducing regressions that make the system unbootable.
>
> This is a tradeoff, really.
> On one hand (A), there is the risk of breaking the functionality of a board by
> bumping from one patch version to another.
> On the other (B), any new Linux patch version brings a handful of security
> fixes, and this happens on a weekly basis.

The basic question is what are these deconfigs meant to achieve? My
understanding is that defconfigs demonstrate hardware working with a Buildroot
generated image. For many users this is the first Buildroot step. Hardware
bring-up is non trivial, and defconfigs preserve a known working state for a
given target system. defconfig is only an enabler for new users.

> Now onto practical considerations and my opinions:
> - From my understanding, (A) is not very frequent when bumping from one patch
>   version to another. It can certainly happen on a specific board from time to
>   time, but this is definitely far from the general case. If you (or anyone
>   else) have some recent examples of such situations, I'd be glad to read
>   about them. On the contrary bugs in core components that would affect all
>   boards, such as the ext4 corruption introduced in linux 6.1.64, would be
>  more easily controllable tree-wise with such a mechanism.

I have seen cases where trivial changes broke essential functionality. In one
case I remember a removed print broke two different network PHYs on the same
board because of missing proper initialization delay.

The current suggestion does not even preserve the original user tested
kernel version. By the time a defconfig reaches master branch, the
kernel is different. If this commit is accepted, I think we should
provide a way to preserve somehow the information of user tested kernel
version.

> - We see that many boards in the Buildroot tree are updated very infrequently,
>   and are using old kernel versions, sometimes lagging more than 200 versions
>   behind (see for example configs/minnowboard_max_defconfig). This is not a
>  good sign for newcomers.

I agree we should remove unmaintained defconfigs after a given time of
inactivity. But I'm not sure blind kernel version updates make the state of
these platforms much better.

> - Each kernel version bump for a single board is a patch that has to be
>   reviewed and applied by a maintainer. I believe their time is better
>   invested into patches that need actual effort, especially given the current
>  patchwork backlog

This commit only saves stable kernel version updates. These patches are
trivial. We can think of a fast track mechanism that allows contributor to
assert some newer kernel version works on a given hardware, and automatically
generate a matching commit.

The point here is to preserve the vital information contributors provide
of tested software.

> - From my LTS steward perspective, it is practically unfeasible to apply linux
>   version bumps on the maintained branches, because their minor kernel
>   versions differ from master. On the other hand we try to deliver on the
>   premise of improved security, hence getting security updates in due time.
>
> With all that being said:
> - Linux kernel versions are still stated explicitly in Buildroot and are
>   bumped with patches that follow the usual review process. They would only be
>  declared in a central place.
> - It is still possible to pin a particular linux kernel version to a board
>  with BR2_LINUX_KERNEL_CUSTOM_VERSION if needed
>>
>> For this reason adding-board-support section also says:
>>
>>> Always use fixed versions or commit hashes for the different
>>> components, not the "latest" version.
>> If we intend to change this policy I think we should discuss the
>> motivation on the list. In case such discussion did take place, this
>> comment should reference that discussion. In any case, the manual should
>> also update to reflect the current policy.
>
> I indeed brought the discussion in person with the maintainers that were
> present at the Buildroot Developers meeting after ELC, but I should be more
> verbose in writing, I will pay more attention to that in v2. If you have
> anything else to bring to the discussion, please let me know as well.

Thanks,
baruch

-- 
                                                     ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch@tkos.co.il - tel: +972.52.368.4656, http://www.tkos.co.il -
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [Buildroot] [PATCH 3/3] configs: update defconfigs with custom versions to BR2_LINUX_KERNEL_LATEST_X_Y
  2026-10-12  6:04       ` Baruch Siach via buildroot
@ 2026-10-12  8:35         ` Titouan Christophe via buildroot
  2026-10-12 10:40           ` Arnout Vandecappelle via buildroot
  2026-10-13  5:55           ` Baruch Siach via buildroot
  0 siblings, 2 replies; 18+ messages in thread
From: Titouan Christophe via buildroot @ 2026-10-12  8:35 UTC (permalink / raw)
  To: Baruch Siach
  Cc: Titouan Christophe via buildroot, ju.o, thomas.petazzoni, arnout,
	git, thomas.perale

Good morning Baruch,

Thank you very much for your detailed answer and taking the time to 
question crucial parts of this patch, I really appreciate !

On 12/10/26 08:04, Baruch Siach wrote:
> Hi Titouan,
>
> On Sun, Oct 11 2026, Titouan Christophe wrote:
>> On 11/10/26 18:45, Baruch Siach wrote:
>>> On Sat, Oct 10 2026, Titouan Christophe via buildroot wrote:
>>>> Update all defconfigs that are using a custom Linux version based on a
>>>> longterm supported Linux version so they use the newly introduced symbols.
>>> This is a significant policy change for Buildroot. The configs/
>>> directory is meant to carry configurations that are "known to work",
>>> according to adding-board-support section in Buildroot manual
>>> (docs/manual/adding-board-support.adoc).
>> Thank you for raising that concern ! I am currently preparing a v2 of this
>> patch (with many other fixups), and I will update the manual accordingly.
>>> Automatic update of the kernel component without actual hardware test
>>> risks introducing regressions that make the system unbootable.
>> This is a tradeoff, really.
>> On one hand (A), there is the risk of breaking the functionality of a board by
>> bumping from one patch version to another.
>> On the other (B), any new Linux patch version brings a handful of security
>> fixes, and this happens on a weekly basis.
> The basic question is what are these deconfigs meant to achieve? My
> understanding is that defconfigs demonstrate hardware working with a Buildroot
> generated image. For many users this is the first Buildroot step. Hardware
> bring-up is non trivial, and defconfigs preserve a known working state for a
> given target system. defconfig is only an enabler for new users.

Indeed, this discussion should address the intended role of in-tree 
defconfigs.
My personal opinion on this role:
- They provide (as you say) a first entry into Buildroot for many users.
- However, I believe they should build a somewhat up-to-date system, and 
demonstrate ways for users to keep their boards up to date.
- There could be other packages that are key to the board functioning 
normally (such as firmware blobs, host tools involved in the target 
image finalization, ...), and these packages receive version bumps as 
well, without being set in the  board's config. I would even expect them 
to break less often with up-to-date kernels (but this is speculation)
>
>> Now onto practical considerations and my opinions:
>> - From my understanding, (A) is not very frequent when bumping from one patch
>>    version to another. It can certainly happen on a specific board from time to
>>    time, but this is definitely far from the general case. If you (or anyone
>>    else) have some recent examples of such situations, I'd be glad to read
>>    about them. On the contrary bugs in core components that would affect all
>>    boards, such as the ext4 corruption introduced in linux 6.1.64, would be
>>   more easily controllable tree-wise with such a mechanism.
> I have seen cases where trivial changes broke essential functionality. In one
> case I remember a removed print broke two different network PHYs on the same
> board because of missing proper initialization delay

How frequently have you seen such breakages ? I believe they shouldn't 
happen that often, they are very hardware specific, and should be easily 
fixed by temporarily pinning the kernel to a previous version, until the 
bug is resolved in linux.
We could even argue that this could help unveil such breakages to report 
them upstream, but this is another question :-)

>
> The current suggestion does not even preserve the original user tested
> kernel version. By the time a defconfig reaches master branch, the
> kernel is different. If this commit is accepted, I think we should
> provide a way to preserve somehow the information of user tested kernel
> version.

That is indeed a very valid point. Would you mean having an entry in the 
board's README, or a comment in the defconfig; basically a human-written 
note stating "this board was tested successfully on <date> with <kernel 
version>" ? Any other suggestion ?

As Arnout suggested in his reply, maybe we could only start with qemu 
boards for now, as they can easily be tested in the CI. Then add this 
feature for configs where a matching board is available for automated 
testing; although I've never heard of any board farm associated with the 
Buildroot project.

>
>> - We see that many boards in the Buildroot tree are updated very infrequently,
>>    and are using old kernel versions, sometimes lagging more than 200 versions
>>    behind (see for example configs/minnowboard_max_defconfig). This is not a
>>   good sign for newcomers.
> I agree we should remove unmaintained defconfigs after a given time of
> inactivity. But I'm not sure blind kernel version updates make the state of
> these platforms much better.

As you said earlier, board bringup is not always trivial, so I would 
find it "sad" that we eliminate defconfigs solely because nobody is 
submitting frequent kernel updates to them; while they could still serve 
as a reference for similar platforms.

>
>> - Each kernel version bump for a single board is a patch that has to be
>>    reviewed and applied by a maintainer. I believe their time is better
>>    invested into patches that need actual effort, especially given the current
>>   patchwork backlog
> This commit only saves stable kernel version updates. These patches are
> trivial. We can think of a fast track mechanism that allows contributor to
> assert some newer kernel version works on a given hardware, and automatically
> generate a matching commit.

Yes indeed, but even looking at the backlog to find trivial patches 
costs some maintainer time, and in any case increases the cognitive 
overhead for them.

>
> The point here is to preserve the vital information contributors provide
> of tested software.

Agreed !

Kind regards,
Titouan
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [Buildroot] [PATCH 3/3] configs: update defconfigs with custom versions to BR2_LINUX_KERNEL_LATEST_X_Y
  2026-10-12  8:35         ` Titouan Christophe via buildroot
@ 2026-10-12 10:40           ` Arnout Vandecappelle via buildroot
  2026-10-13  5:58             ` Baruch Siach via buildroot
  2026-10-13  5:55           ` Baruch Siach via buildroot
  1 sibling, 1 reply; 18+ messages in thread
From: Arnout Vandecappelle via buildroot @ 2026-10-12 10:40 UTC (permalink / raw)
  To: Titouan Christophe, Baruch Siach
  Cc: Titouan Christophe via buildroot, ju.o, thomas.petazzoni, git,
	thomas.perale



On 12/10/2026 10:35, Titouan Christophe via buildroot wrote:
>>> This is a tradeoff, really.
>>> On one hand (A), there is the risk of breaking the functionality of a board by
>>> bumping from one patch version to another.
>>> On the other (B), any new Linux patch version brings a handful of security
>>> fixes, and this happens on a weekly basis.
>> The basic question is what are these deconfigs meant to achieve? My
>> understanding is that defconfigs demonstrate hardware working with a Buildroot
>> generated image. For many users this is the first Buildroot step. Hardware
>> bring-up is non trivial, and defconfigs preserve a known working state for a
>> given target system. defconfig is only an enabler for new users.
> 
> Indeed, this discussion should address the intended role of in-tree defconfigs.
> My personal opinion on this role:
> - They provide (as you say) a first entry into Buildroot for many users.
> - However, I believe they should build a somewhat up-to-date system, and 
> demonstrate ways for users to keep their boards up to date.

  Another way to achieve that is to add a HOWTO to the docs that explains how to 
use a defconfig. Something like:

1. Find the right defconfig.
2. make foo_defconfig; make; deploy
3. It boots? Joy! Now prepare for modification.
    make BR2_DEFCONFIG=<my own defconfig> savedefconfig
4. Switch from the custom kernel to the corresponding LTS branch and test.
5. Switch to the latest kernel and test.
6. If it works, fixate that and contribute the change.


  Regards,
  Arnout

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [Buildroot] [PATCH 3/3] configs: update defconfigs with custom versions to BR2_LINUX_KERNEL_LATEST_X_Y
  2026-10-12  8:35         ` Titouan Christophe via buildroot
  2026-10-12 10:40           ` Arnout Vandecappelle via buildroot
@ 2026-10-13  5:55           ` Baruch Siach via buildroot
  1 sibling, 0 replies; 18+ messages in thread
From: Baruch Siach via buildroot @ 2026-10-13  5:55 UTC (permalink / raw)
  To: Titouan Christophe
  Cc: Titouan Christophe via buildroot, ju.o, thomas.petazzoni, arnout,
	git, thomas.perale

Hi Titouan,

On Mon, Oct 12 2026, Titouan Christophe wrote:
> Good morning Baruch,
>
> Thank you very much for your detailed answer and taking the time to question
> crucial parts of this patch, I really appreciate !
>
> On 12/10/26 08:04, Baruch Siach wrote:
>> On Sun, Oct 11 2026, Titouan Christophe wrote:
>>> On 11/10/26 18:45, Baruch Siach wrote:
>>>> On Sat, Oct 10 2026, Titouan Christophe via buildroot wrote:
>>>>> Update all defconfigs that are using a custom Linux version based on a
>>>>> longterm supported Linux version so they use the newly introduced symbols.
>>>> This is a significant policy change for Buildroot. The configs/
>>>> directory is meant to carry configurations that are "known to work",
>>>> according to adding-board-support section in Buildroot manual
>>>> (docs/manual/adding-board-support.adoc).
>>> Thank you for raising that concern ! I am currently preparing a v2 of this
>>> patch (with many other fixups), and I will update the manual accordingly.
>>>> Automatic update of the kernel component without actual hardware test
>>>> risks introducing regressions that make the system unbootable.
>>> This is a tradeoff, really.
>>> On one hand (A), there is the risk of breaking the functionality of a board by
>>> bumping from one patch version to another.
>>> On the other (B), any new Linux patch version brings a handful of security
>>> fixes, and this happens on a weekly basis.
>> The basic question is what are these deconfigs meant to achieve? My
>> understanding is that defconfigs demonstrate hardware working with a Buildroot
>> generated image. For many users this is the first Buildroot step. Hardware
>> bring-up is non trivial, and defconfigs preserve a known working state for a
>> given target system. defconfig is only an enabler for new users.
>
> Indeed, this discussion should address the intended role of in-tree
> defconfigs.
> My personal opinion on this role:
> - They provide (as you say) a first entry into Buildroot for many users.
> - However, I believe they should build a somewhat up-to-date system, and
>   demonstrate ways for users to keep their boards up to date.
> - There could be other packages that are key to the board functioning normally
>   (such as firmware blobs, host tools involved in the target image
>   finalization, ...), and these packages receive version bumps as well,
>   without being set in the  board's config. I would even expect them to break
>  less often with up-to-date kernels (but this is speculation)
>>
>>> Now onto practical considerations and my opinions:
>>> - From my understanding, (A) is not very frequent when bumping from one patch
>>>    version to another. It can certainly happen on a specific board from time to
>>>    time, but this is definitely far from the general case. If you (or anyone
>>>    else) have some recent examples of such situations, I'd be glad to read
>>>    about them. On the contrary bugs in core components that would affect all
>>>    boards, such as the ext4 corruption introduced in linux 6.1.64, would be
>>>   more easily controllable tree-wise with such a mechanism.
>> I have seen cases where trivial changes broke essential functionality. In one
>> case I remember a removed print broke two different network PHYs on the same
>> board because of missing proper initialization delay
>
> How frequently have you seen such breakages ?

I remember many cases of regression debugging after kernel/U-Boot/TF-A
updates.

> I believe they shouldn't happen that often, they are very hardware
> specific, and should be easily fixed by temporarily pinning the kernel
> to a previous version, until the bug is resolved in linux.

Being hardware specific is indeed our problem. Also, we need to preserve
the identity of said "previous version" for version pinning to work. New
user will have hard time finding the known working kernel.

> We could even argue that this could help unveil such breakages to report them
> upstream, but this is another question :-)

Of course. But you need access to target hardware for bugs to come up,
and a skilled engineer to debug. New users are unlikely to do that.

>> The current suggestion does not even preserve the original user tested
>> kernel version. By the time a defconfig reaches master branch, the
>> kernel is different. If this commit is accepted, I think we should
>> provide a way to preserve somehow the information of user tested kernel
>> version.
>
> That is indeed a very valid point. Would you mean having an entry in the
> board's README, or a comment in the defconfig; basically a human-written note
> stating "this board was tested successfully on <date> with <kernel version>" ?
> Any other suggestion ?

That is possible. I find the current defconfig method easiest. But if
updated kernel version takes priority, then maybe keep the known working
defconfig somewhere else.

baruch

> As Arnout suggested in his reply, maybe we could only start with qemu boards
> for now, as they can easily be tested in the CI. Then add this feature for
> configs where a matching board is available for automated testing; although
> I've never heard of any board farm associated with the Buildroot project.
>
>>> - We see that many boards in the Buildroot tree are updated very infrequently,
>>>    and are using old kernel versions, sometimes lagging more than 200 versions
>>>    behind (see for example configs/minnowboard_max_defconfig). This is not a
>>>   good sign for newcomers.
>> I agree we should remove unmaintained defconfigs after a given time of
>> inactivity. But I'm not sure blind kernel version updates make the state of
>> these platforms much better.
>
> As you said earlier, board bringup is not always trivial, so I would find it
> "sad" that we eliminate defconfigs solely because nobody is submitting
> frequent kernel updates to them; while they could still serve as a reference
> for similar platforms.
>
>>> - Each kernel version bump for a single board is a patch that has to be
>>>    reviewed and applied by a maintainer. I believe their time is better
>>>    invested into patches that need actual effort, especially given the current
>>>   patchwork backlog
>> This commit only saves stable kernel version updates. These patches are
>> trivial. We can think of a fast track mechanism that allows contributor to
>> assert some newer kernel version works on a given hardware, and automatically
>> generate a matching commit.
>
> Yes indeed, but even looking at the backlog to find trivial patches costs some
> maintainer time, and in any case increases the cognitive overhead for them.
>
>> The point here is to preserve the vital information contributors provide
>> of tested software.
>
> Agreed !
>
> Kind regards,
> Titouan

-- 
                                                     ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch@tkos.co.il - tel: +972.52.368.4656, http://www.tkos.co.il -
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [Buildroot] [PATCH 3/3] configs: update defconfigs with custom versions to BR2_LINUX_KERNEL_LATEST_X_Y
  2026-10-12 10:40           ` Arnout Vandecappelle via buildroot
@ 2026-10-13  5:58             ` Baruch Siach via buildroot
  0 siblings, 0 replies; 18+ messages in thread
From: Baruch Siach via buildroot @ 2026-10-13  5:58 UTC (permalink / raw)
  To: Arnout Vandecappelle
  Cc: Titouan Christophe, Titouan Christophe via buildroot, ju.o,
	thomas.petazzoni, git, thomas.perale

Hi Arnout,

On Mon, Oct 12 2026, Arnout Vandecappelle wrote:
> On 12/10/2026 10:35, Titouan Christophe via buildroot wrote:
>>>> This is a tradeoff, really.
>>>> On one hand (A), there is the risk of breaking the functionality of a board by
>>>> bumping from one patch version to another.
>>>> On the other (B), any new Linux patch version brings a handful of security
>>>> fixes, and this happens on a weekly basis.
>>> The basic question is what are these deconfigs meant to achieve? My
>>> understanding is that defconfigs demonstrate hardware working with a Buildroot
>>> generated image. For many users this is the first Buildroot step. Hardware
>>> bring-up is non trivial, and defconfigs preserve a known working state for a
>>> given target system. defconfig is only an enabler for new users.
>> Indeed, this discussion should address the intended role of in-tree
>> defconfigs.
>> My personal opinion on this role:
>> - They provide (as you say) a first entry into Buildroot for many users.
>> - However, I believe they should build a somewhat up-to-date system, and
>> demonstrate ways for users to keep their boards up to date.
>
>  Another way to achieve that is to add a HOWTO to the docs that explains how
>  to use a defconfig. Something like:
>
> 1. Find the right defconfig.
> 2. make foo_defconfig; make; deploy
> 3. It boots? Joy! Now prepare for modification.
>    make BR2_DEFCONFIG=<my own defconfig> savedefconfig
> 4. Switch from the custom kernel to the corresponding LTS branch and test.
> 5. Switch to the latest kernel and test.
> 6. If it works, fixate that and contribute the change.

For the record, I like this direction. Especially if steps
(4) and (5) become as easy as possible for new users.

Thanks,
baruch

-- 
                                                     ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch@tkos.co.il - tel: +972.52.368.4656, http://www.tkos.co.il -
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2026-10-13  5:58 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-10 20:15 [Buildroot] [PATCH 0/3] Add first-class support for all active upstream Linux versions Titouan Christophe via buildroot
2026-10-10 20:15 ` [Buildroot] [PATCH 1/3] linux: always select host-uboot-tools for mips Titouan Christophe via buildroot
2026-10-11 12:30   ` Peter Korsgaard
2026-10-10 20:15 ` [Buildroot] [PATCH 2/3] linux: add first-class support for all upstream linux versions Titouan Christophe via buildroot
2026-10-11 12:32   ` Peter Korsgaard
2026-10-11 13:12   ` Peter Korsgaard
2026-10-10 20:15 ` [Buildroot] [PATCH 3/3] configs: update defconfigs with custom versions to BR2_LINUX_KERNEL_LATEST_X_Y Titouan Christophe via buildroot
2026-10-11 13:05   ` Peter Korsgaard
2026-10-11 13:08     ` Titouan Christophe via buildroot
2026-10-11 16:45   ` Baruch Siach via buildroot
2026-10-11 19:10     ` Titouan Christophe via buildroot
2026-10-12  6:04       ` Baruch Siach via buildroot
2026-10-12  8:35         ` Titouan Christophe via buildroot
2026-10-12 10:40           ` Arnout Vandecappelle via buildroot
2026-10-13  5:58             ` Baruch Siach via buildroot
2026-10-13  5:55           ` Baruch Siach via buildroot
2026-10-11 19:29     ` Arnout Vandecappelle via buildroot
2026-10-11 19:37       ` Titouan Christophe via buildroot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.