DistroKit Mailinglist
 help / color / mirror / Atom feed
* [DistroKit] [PATCH 1/2] reason: correctly allow CONFIG_BOOTM_OFTREE_FALLBACK
@ 2026-03-25 11:41 Ahmad Fatoum
  2026-03-25 11:41 ` [DistroKit] [PATCH 2/2] barebox: update to v2026.03.1 Ahmad Fatoum
  2026-03-25 13:10 ` [DistroKit] [PATCH 1/2] reason: correctly allow CONFIG_BOOTM_OFTREE_FALLBACK Robert Schwebel
  0 siblings, 2 replies; 3+ messages in thread
From: Ahmad Fatoum @ 2026-03-25 11:41 UTC (permalink / raw)
  To: distrokit; +Cc: Ahmad Fatoum

The QA override couldn't work for several reasons:

  - We set CONFIG_NAME to different values like e.g. distrokit_v7a_old_defconfig
    or distrokit_v8a_defconfig

  - barebox_oftree_fallback is not a boolean, so the override is
    incorrect

The argument in the override applies to all platforms, so let's fix
these issues and mandate CONFIG_BOOTM_OFTREE_FALLBACK=y independent
of the platforms. While at it, also fix a typo in the description.

Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
---
 configs/bsp.ref | 14 +++++---------
 1 file changed, 5 insertions(+), 9 deletions(-)

diff --git a/configs/bsp.ref b/configs/bsp.ref
index e8c33d259116..934c99c262c5 100644
--- a/configs/bsp.ref
+++ b/configs/bsp.ref
@@ -46,15 +46,11 @@ barebox_oftree_fallback:
     for use in production as DT binding breakage is not an infrequent
     occurrence.
 
-    We take in DistroKit though to specify the DT when we specify a kernel,
-    so enable this option as it's occasionally helpful for quick debugging.
-  variants:
-    - condition: |
-        kconfig.have_barebox_config() and
-        (kconfig.BareboxConfig()['CONFIG_NAME'] == "multi_v7_defconfig" or
-        kconfig.BareboxConfig()['CONFIG_NAME'] == "multi_v8_defconfig")
-      value: False
-    - value: True
+    We take care in DistroKit though to specify the DT when we specify
+    a kernel, so enable this option as it's occasionally helpful for quick
+    debugging.
+  present:
+    - BOOTM_OFTREE_FALLBACK
 
 barebox_arm_optimized_string_functions:
   description: |
-- 
2.47.3




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

* [DistroKit] [PATCH 2/2] barebox: update to v2026.03.1
  2026-03-25 11:41 [DistroKit] [PATCH 1/2] reason: correctly allow CONFIG_BOOTM_OFTREE_FALLBACK Ahmad Fatoum
@ 2026-03-25 11:41 ` Ahmad Fatoum
  2026-03-25 13:10 ` [DistroKit] [PATCH 1/2] reason: correctly allow CONFIG_BOOTM_OFTREE_FALLBACK Robert Schwebel
  1 sibling, 0 replies; 3+ messages in thread
From: Ahmad Fatoum @ 2026-03-25 11:41 UTC (permalink / raw)
  To: distrokit; +Cc: Ahmad Fatoum

We had a patch for adding support for the Ethernet PHY variant on the
BeaglePlay. This patch is upstream now, so update to drop it from the
BSP.

Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
---
 .../platform-v7a/barebox-am335x-mlo.config    |   7 +-
 configs/platform-v7a/barebox-at91.config      |   8 +-
 configs/platform-v7a/barebox-at91.config.diff |   4 +-
 configs/platform-v7a/barebox-common.config    |   8 +-
 configs/platform-v7a/barebox.config           |  12 +-
 configs/platform-v7a/platformconfig           |   8 +-
 .../platform-v7a_noneon/barebox-at91.config   |   8 +-
 .../barebox-at91.config.diff                  |   4 +-
 .../platform-v7a_noneon/barebox-common.config |   8 +-
 .../barebox-vexpress.config                   |   8 +-
 .../barebox-vexpress.config.diff              |   4 +-
 configs/platform-v7a_noneon/platformconfig    |   4 +-
 configs/platform-v8a/barebox-r5.config        |   7 +-
 configs/platform-v8a/barebox.config           |  14 +-
 ...-realtek-sync-with-Linux-v6.19-state.patch | 863 ------------------
 .../patches/barebox-2026.01.0/series          |   1 -
 configs/platform-v8a/platformconfig           |   4 +-
 17 files changed, 77 insertions(+), 895 deletions(-)
 delete mode 100644 configs/platform-v8a/patches/barebox-2026.01.0/0001-net-phy-realtek-sync-with-Linux-v6.19-state.patch
 delete mode 100644 configs/platform-v8a/patches/barebox-2026.01.0/series

diff --git a/configs/platform-v7a/barebox-am335x-mlo.config b/configs/platform-v7a/barebox-am335x-mlo.config
index b5752601e7de..8beeaa90d482 100644
--- a/configs/platform-v7a/barebox-am335x-mlo.config
+++ b/configs/platform-v7a/barebox-am335x-mlo.config
@@ -1,6 +1,6 @@
 #
 # Automatically generated file; DO NOT EDIT.
-# Barebox/arm 2026.01.0 Configuration
+# Barebox/arm 2026.03.1 Configuration
 #
 CONFIG_ARM=y
 CONFIG_ARCH_LINUX_NAME="arm"
@@ -38,6 +38,7 @@ CONFIG_ARCH_OMAP_MULTI=y
 #
 CONFIG_CPU_32=y
 CONFIG_CPU_V7=y
+CONFIG_CPU_V7VE=y
 CONFIG_CPU_32v7=y
 
 #
@@ -99,11 +100,11 @@ CONFIG_HAVE_EFI_STUB=y
 CONFIG_HAVE_EFI_LOADER=y
 CONFIG_HAS_DEBUG_LL=y
 CONFIG_HAVE_ARCH_KASAN=y
+CONFIG_HAVE_STACKPROTECTOR=y
 CONFIG_CC_IS_GCC=y
 CONFIG_GCC_VERSION=150201
 CONFIG_CLANG_VERSION=0
 CONFIG_HAS_KALLSYMS=y
-CONFIG_HAS_MODULES=y
 CONFIG_HAS_DMA=y
 CONFIG_GENERIC_GPIO=y
 CONFIG_BLOCK=y
@@ -127,6 +128,7 @@ CONFIG_HAVE_PBL_IMAGE=y
 CONFIG_HAVE_PBL_MULTI_IMAGES=y
 CONFIG_HAVE_IMAGE_COMPRESSION=y
 CONFIG_PBL_IMAGE=y
+CONFIG_PBL_IMAGE_ELF=y
 CONFIG_PBL_MULTI_IMAGES=y
 CONFIG_USE_COMPRESSED_DTB=y
 CONFIG_PBL_RELOCATABLE=y
@@ -166,6 +168,7 @@ CONFIG_SHELL_NONE=y
 # CONFIG_GLOB is not set
 # CONFIG_ERRNO_MESSAGES is not set
 # CONFIG_BOOTM is not set
+CONFIG_ELF=y
 # CONFIG_BAREBOX_UPDATE is not set
 # CONFIG_IMD is not set
 CONFIG_CONSOLE_FULL=y
diff --git a/configs/platform-v7a/barebox-at91.config b/configs/platform-v7a/barebox-at91.config
index c8a355596bb0..2aac4d007cd0 100644
--- a/configs/platform-v7a/barebox-at91.config
+++ b/configs/platform-v7a/barebox-at91.config
@@ -1,6 +1,6 @@
 #
 # Automatically generated file; DO NOT EDIT.
-# Barebox/arm 2026.01.0 Configuration
+# Barebox/arm 2026.03.1 Configuration
 #
 CONFIG_ARM=y
 CONFIG_ARCH_LINUX_NAME="arm"
@@ -32,6 +32,7 @@ CONFIG_ARCH_AT91=y
 #
 CONFIG_CPU_32=y
 CONFIG_CPU_V7=y
+CONFIG_CPU_V7VE=y
 CONFIG_CPU_32v7=y
 
 #
@@ -115,12 +116,12 @@ CONFIG_HAVE_EFI_STUB=y
 CONFIG_HAVE_EFI_LOADER=y
 CONFIG_HAS_DEBUG_LL=y
 CONFIG_HAVE_ARCH_KASAN=y
+CONFIG_HAVE_STACKPROTECTOR=y
 CONFIG_CC_IS_GCC=y
 CONFIG_GCC_VERSION=150201
 CONFIG_CLANG_VERSION=0
 CONFIG_GREGORIAN_CALENDER=y
 CONFIG_HAS_KALLSYMS=y
-CONFIG_HAS_MODULES=y
 CONFIG_HAS_DMA=y
 CONFIG_GENERIC_GPIO=y
 CONFIG_BLOCK=y
@@ -158,6 +159,7 @@ CONFIG_HAVE_PBL_IMAGE=y
 CONFIG_HAVE_PBL_MULTI_IMAGES=y
 CONFIG_HAVE_IMAGE_COMPRESSION=y
 CONFIG_PBL_IMAGE=y
+CONFIG_PBL_IMAGE_ELF=y
 CONFIG_PBL_MULTI_IMAGES=y
 CONFIG_USE_COMPRESSED_DTB=y
 CONFIG_PBL_RELOCATABLE=y
@@ -212,6 +214,7 @@ CONFIG_BOOTM_OFTREE=y
 CONFIG_BOOTM_UIMAGE=y
 CONFIG_BOOTM_OFTREE_UIMAGE=y
 # CONFIG_BOOTM_AIMAGE is not set
+CONFIG_ELF=y
 CONFIG_BOOTM_FITIMAGE=y
 # CONFIG_BOOTM_FITIMAGE_SIGNATURE is not set
 CONFIG_BOOTM_OPTIONAL_SIGNED_IMAGES=y
@@ -1182,6 +1185,7 @@ CONFIG_LIBFDT=y
 #
 # end of Library gui routines
 
+CONFIG_VERSION_CMP=y
 CONFIG_PRINTF_UUID=y
 CONFIG_NLS=y
 CONFIG_GENERIC_ALLOCATOR=y
diff --git a/configs/platform-v7a/barebox-at91.config.diff b/configs/platform-v7a/barebox-at91.config.diff
index 39e8d1232b5e..fac29b8fcc74 100644
--- a/configs/platform-v7a/barebox-at91.config.diff
+++ b/configs/platform-v7a/barebox-at91.config.diff
@@ -1,5 +1,5 @@
-33645a543f98b4eb6afc7979d845f99d
-40286c802664a52b285c0664cd619545
+614f39ab691502bbcc5f3eeac2cb08fa
+40f35148cc5d6688abab5736d17a9363
 CONFIG_ARCH_AT91=y
 # CONFIG_ARCH_BCM283X is not set
 # CONFIG_ARCH_IMX is undefined
diff --git a/configs/platform-v7a/barebox-common.config b/configs/platform-v7a/barebox-common.config
index b75c4cb9932b..328ca48009b8 100644
--- a/configs/platform-v7a/barebox-common.config
+++ b/configs/platform-v7a/barebox-common.config
@@ -1,6 +1,6 @@
 #
 # Automatically generated file; DO NOT EDIT.
-# Barebox/arm 2026.01.0 Configuration
+# Barebox/arm 2026.03.1 Configuration
 #
 CONFIG_ARM=y
 CONFIG_ARCH_LINUX_NAME="arm"
@@ -38,6 +38,7 @@ CONFIG_ARCH_BCM283X=y
 #
 CONFIG_CPU_32=y
 CONFIG_CPU_V7=y
+CONFIG_CPU_V7VE=y
 CONFIG_CPU_32v7=y
 
 #
@@ -101,12 +102,12 @@ CONFIG_HAVE_EFI_STUB=y
 CONFIG_HAVE_EFI_LOADER=y
 CONFIG_HAS_DEBUG_LL=y
 CONFIG_HAVE_ARCH_KASAN=y
+CONFIG_HAVE_STACKPROTECTOR=y
 CONFIG_CC_IS_GCC=y
 CONFIG_GCC_VERSION=150201
 CONFIG_CLANG_VERSION=0
 CONFIG_GREGORIAN_CALENDER=y
 CONFIG_HAS_KALLSYMS=y
-CONFIG_HAS_MODULES=y
 CONFIG_HAS_DMA=y
 CONFIG_GENERIC_GPIO=y
 CONFIG_BLOCK=y
@@ -143,6 +144,7 @@ CONFIG_HAVE_PBL_IMAGE=y
 CONFIG_HAVE_PBL_MULTI_IMAGES=y
 CONFIG_HAVE_IMAGE_COMPRESSION=y
 CONFIG_PBL_IMAGE=y
+CONFIG_PBL_IMAGE_ELF=y
 CONFIG_PBL_MULTI_IMAGES=y
 CONFIG_USE_COMPRESSED_DTB=y
 CONFIG_PBL_RELOCATABLE=y
@@ -197,6 +199,7 @@ CONFIG_BOOTM_OFTREE=y
 CONFIG_BOOTM_UIMAGE=y
 # CONFIG_BOOTM_OFTREE_UIMAGE is not set
 # CONFIG_BOOTM_AIMAGE is not set
+CONFIG_ELF=y
 CONFIG_BOOTM_FITIMAGE=y
 # CONFIG_BOOTM_FITIMAGE_SIGNATURE is not set
 CONFIG_BOOTM_OPTIONAL_SIGNED_IMAGES=y
@@ -1134,6 +1137,7 @@ CONFIG_LIBFDT=y
 #
 # end of Library gui routines
 
+CONFIG_VERSION_CMP=y
 CONFIG_PRINTF_UUID=y
 CONFIG_NLS=y
 # end of Library routines
diff --git a/configs/platform-v7a/barebox.config b/configs/platform-v7a/barebox.config
index 1f0d1f9008e3..eca34727f8d9 100644
--- a/configs/platform-v7a/barebox.config
+++ b/configs/platform-v7a/barebox.config
@@ -1,6 +1,6 @@
 #
 # Automatically generated file; DO NOT EDIT.
-# Barebox/arm 2026.01.0 Configuration
+# Barebox/arm 2026.03.1 Configuration
 #
 CONFIG_ARM=y
 CONFIG_ARCH_LINUX_NAME="arm"
@@ -40,6 +40,7 @@ CONFIG_ARCH_VEXPRESS=y
 #
 CONFIG_CPU_32=y
 CONFIG_CPU_V7=y
+CONFIG_CPU_V7VE=y
 CONFIG_CPU_32v7=y
 
 #
@@ -63,6 +64,7 @@ CONFIG_MACH_RPI4=y
 
 CONFIG_ARCH_IMX_IMXIMAGE=y
 CONFIG_RESET_IMX_SRC=y
+CONFIG_ARCH_IMX_SCRATCHMEM=y
 
 #
 # i.MX boards
@@ -258,12 +260,12 @@ CONFIG_HAVE_EFI_STUB=y
 CONFIG_HAVE_EFI_LOADER=y
 CONFIG_HAS_DEBUG_LL=y
 CONFIG_HAVE_ARCH_KASAN=y
+CONFIG_HAVE_STACKPROTECTOR=y
 CONFIG_BOARD_LXA=y
 CONFIG_CC_IS_GCC=y
 CONFIG_GCC_VERSION=150201
 CONFIG_CLANG_VERSION=0
 CONFIG_HAS_KALLSYMS=y
-CONFIG_HAS_MODULES=y
 CONFIG_HAS_DMA=y
 CONFIG_GENERIC_GPIO=y
 CONFIG_BLOCK=y
@@ -303,6 +305,7 @@ CONFIG_HAVE_PBL_IMAGE=y
 CONFIG_HAVE_PBL_MULTI_IMAGES=y
 CONFIG_HAVE_IMAGE_COMPRESSION=y
 CONFIG_PBL_IMAGE=y
+CONFIG_PBL_IMAGE_ELF=y
 CONFIG_PBL_MULTI_IMAGES=y
 CONFIG_USE_COMPRESSED_DTB=y
 CONFIG_PBL_RELOCATABLE=y
@@ -358,6 +361,7 @@ CONFIG_BOOTM_OFTREE_FALLBACK=y
 CONFIG_BOOTM_UIMAGE=y
 CONFIG_BOOTM_OFTREE_UIMAGE=y
 # CONFIG_BOOTM_AIMAGE is not set
+CONFIG_ELF=y
 CONFIG_BOOTM_FITIMAGE=y
 # CONFIG_BOOTM_FITIMAGE_SIGNATURE is not set
 CONFIG_BOOTM_OPTIONAL_SIGNED_IMAGES=y
@@ -991,6 +995,7 @@ CONFIG_DRIVER_VIDEO_SIMPLEFB=y
 #
 # CONFIG_DRIVER_VIDEO_MTL017 is not set
 # CONFIG_DRIVER_VIDEO_SIMPLE_PANEL is not set
+# CONFIG_DRIVER_VIDEO_PANEL_ILITEK_ILI9488 is not set
 # CONFIG_DRIVER_VIDEO_PANEL_ILITEK_ILI9341 is not set
 # CONFIG_DRIVER_VIDEO_PANEL_SITRONIX_ST7789V is not set
 # CONFIG_DRIVER_VIDEO_PANEL_MIPI_DBI is not set
@@ -1335,6 +1340,7 @@ CONFIG_RESET_STM32=y
 CONFIG_TEE=y
 CONFIG_OPTEE=y
 # CONFIG_OPTEE_AVB_PERSISTENT_VALUES is not set
+# CONFIG_OPTEE_RKSECURE is not set
 CONFIG_OF_FIXUP_OPTEE=y
 # end of Drivers
 
@@ -1409,6 +1415,7 @@ CONFIG_CRYPTO_KEYSTORE=y
 # OP-TEE loading
 #
 CONFIG_HAVE_OPTEE=y
+# CONFIG_OPTEE_APPLY_OVERLAY is not set
 CONFIG_OPTEE_SIZE=0x03000000
 CONFIG_OPTEE_SHM_SIZE=0x400000
 # CONFIG_BOOTM_OPTEE is not set
@@ -1535,6 +1542,7 @@ CONFIG_LODEPNG=y
 # end of Library gui routines
 
 # CONFIG_BAREBOX_LOGO is not set
+CONFIG_VERSION_CMP=y
 CONFIG_PRINTF_UUID=y
 CONFIG_PRINTF_HEXSTR=y
 CONFIG_NLS=y
diff --git a/configs/platform-v7a/platformconfig b/configs/platform-v7a/platformconfig
index 03295be72f5f..5ecf0b0c9cb7 100644
--- a/configs/platform-v7a/platformconfig
+++ b/configs/platform-v7a/platformconfig
@@ -186,18 +186,18 @@ PTXCONF_AT91BOOTSTRAP2_MD5="f76ff2a39f9549b5b4ecdf7cf585218c"
 PTXCONF_AT91BOOTSTRAP2_CONFIG="at91bootstrap-wifx-l1.config"
 PTXCONF_BAREBOX_COMMON_ARCH_STRING="arm"
 PTXCONF_BAREBOX_COMMON=y
-PTXCONF_BAREBOX_COMMON_VERSION="2026.01.0"
-PTXCONF_BAREBOX_COMMON_MD5="82e3fc96c069151779b434043ee0c0e7"
+PTXCONF_BAREBOX_COMMON_VERSION="2026.03.1"
+PTXCONF_BAREBOX_COMMON_MD5="e87f88499e1f16deb60b0c3bf216df85"
 PTXCONF_BAREBOX_COMMON_NEEDS_HOST_LZOP=y
 PTXCONF_BAREBOX_AM335X_MLO=y
 PTXCONF_BAREBOX_AT91=y
 PTXCONF_BAREBOX_ARCH_STRING="arm"
 PTXCONF_BAREBOX_DEPENDENCIES=y
 PTXCONF_BAREBOX=y
-PTXCONF_BAREBOX_VERSION="2026.01.0"
+PTXCONF_BAREBOX_VERSION="2026.03.1"
 PTXCONF_BAREBOX_CONFIG_BUILDSYSTEM_VERSION=y
 PTXCONF_BAREBOX_BUILDSYSTEM_VERSION="${PTXDIST_VCS_VERSION}"
-PTXCONF_BAREBOX_MD5="82e3fc96c069151779b434043ee0c0e7"
+PTXCONF_BAREBOX_MD5="e87f88499e1f16deb60b0c3bf216df85"
 PTXCONF_BAREBOX_CONFIG="barebox.config"
 # PTXCONF_BAREBOX_FIRMWARE is not set
 PTXCONF_BAREBOX_EXTRA_ENV=y
diff --git a/configs/platform-v7a_noneon/barebox-at91.config b/configs/platform-v7a_noneon/barebox-at91.config
index 2ac855fa75c6..9554d5d53a42 100644
--- a/configs/platform-v7a_noneon/barebox-at91.config
+++ b/configs/platform-v7a_noneon/barebox-at91.config
@@ -1,6 +1,6 @@
 #
 # Automatically generated file; DO NOT EDIT.
-# Barebox/arm 2026.01.0 Configuration
+# Barebox/arm 2026.03.1 Configuration
 #
 CONFIG_ARM=y
 CONFIG_ARCH_LINUX_NAME="arm"
@@ -32,6 +32,7 @@ CONFIG_ARCH_AT91=y
 #
 CONFIG_CPU_32=y
 CONFIG_CPU_V7=y
+CONFIG_CPU_V7VE=y
 CONFIG_CPU_32v7=y
 
 #
@@ -110,12 +111,12 @@ CONFIG_HAVE_EFI_STUB=y
 CONFIG_HAVE_EFI_LOADER=y
 CONFIG_HAS_DEBUG_LL=y
 CONFIG_HAVE_ARCH_KASAN=y
+CONFIG_HAVE_STACKPROTECTOR=y
 CONFIG_CC_IS_GCC=y
 CONFIG_GCC_VERSION=150201
 CONFIG_CLANG_VERSION=0
 CONFIG_GREGORIAN_CALENDER=y
 CONFIG_HAS_KALLSYMS=y
-CONFIG_HAS_MODULES=y
 CONFIG_HAS_DMA=y
 CONFIG_GENERIC_GPIO=y
 CONFIG_BLOCK=y
@@ -149,6 +150,7 @@ CONFIG_HAVE_PBL_IMAGE=y
 CONFIG_HAVE_PBL_MULTI_IMAGES=y
 CONFIG_HAVE_IMAGE_COMPRESSION=y
 CONFIG_PBL_IMAGE=y
+CONFIG_PBL_IMAGE_ELF=y
 CONFIG_PBL_MULTI_IMAGES=y
 CONFIG_USE_COMPRESSED_DTB=y
 CONFIG_PBL_RELOCATABLE=y
@@ -200,6 +202,7 @@ CONFIG_BOOTM_OFTREE=y
 # CONFIG_BOOTM_OFTREE_FALLBACK is not set
 # CONFIG_BOOTM_UIMAGE is not set
 # CONFIG_BOOTM_AIMAGE is not set
+CONFIG_ELF=y
 # CONFIG_BOOTM_FITIMAGE is not set
 CONFIG_BOOTM_OPTIONAL_SIGNED_IMAGES=y
 CONFIG_BLSPEC=y
@@ -1188,6 +1191,7 @@ CONFIG_LIBFDT=y
 #
 # end of Library gui routines
 
+CONFIG_VERSION_CMP=y
 CONFIG_PRINTF_UUID=y
 CONFIG_NLS=y
 CONFIG_GENERIC_ALLOCATOR=y
diff --git a/configs/platform-v7a_noneon/barebox-at91.config.diff b/configs/platform-v7a_noneon/barebox-at91.config.diff
index 1bf1975f0555..a081421323b1 100644
--- a/configs/platform-v7a_noneon/barebox-at91.config.diff
+++ b/configs/platform-v7a_noneon/barebox-at91.config.diff
@@ -1,5 +1,5 @@
-3028fb8f9e4ad715e0327e2fed1c70eb
-21d31e1a43d39e4f50312e822c134377
+604a2ddf6c4f2e6a0a8c0f2b5386e3a0
+6050ffe6406fe7e870f952f5c9b5ba7d
 CONFIG_ARCH_AT91=y
 # CONFIG_ARCH_BCM283X is not set
 # CONFIG_ARCH_IMX is undefined
diff --git a/configs/platform-v7a_noneon/barebox-common.config b/configs/platform-v7a_noneon/barebox-common.config
index a8931c980897..63ff1f02b404 100644
--- a/configs/platform-v7a_noneon/barebox-common.config
+++ b/configs/platform-v7a_noneon/barebox-common.config
@@ -1,6 +1,6 @@
 #
 # Automatically generated file; DO NOT EDIT.
-# Barebox/arm 2026.01.0 Configuration
+# Barebox/arm 2026.03.1 Configuration
 #
 CONFIG_ARM=y
 CONFIG_ARCH_LINUX_NAME="arm"
@@ -38,6 +38,7 @@ CONFIG_ARCH_BCM283X=y
 #
 CONFIG_CPU_32=y
 CONFIG_CPU_V7=y
+CONFIG_CPU_V7VE=y
 CONFIG_CPU_32v7=y
 
 #
@@ -101,12 +102,12 @@ CONFIG_HAVE_EFI_STUB=y
 CONFIG_HAVE_EFI_LOADER=y
 CONFIG_HAS_DEBUG_LL=y
 CONFIG_HAVE_ARCH_KASAN=y
+CONFIG_HAVE_STACKPROTECTOR=y
 CONFIG_CC_IS_GCC=y
 CONFIG_GCC_VERSION=150201
 CONFIG_CLANG_VERSION=0
 CONFIG_GREGORIAN_CALENDER=y
 CONFIG_HAS_KALLSYMS=y
-CONFIG_HAS_MODULES=y
 CONFIG_HAS_DMA=y
 CONFIG_GENERIC_GPIO=y
 CONFIG_BLOCK=y
@@ -141,6 +142,7 @@ CONFIG_HAVE_PBL_IMAGE=y
 CONFIG_HAVE_PBL_MULTI_IMAGES=y
 CONFIG_HAVE_IMAGE_COMPRESSION=y
 CONFIG_PBL_IMAGE=y
+CONFIG_PBL_IMAGE_ELF=y
 CONFIG_PBL_MULTI_IMAGES=y
 CONFIG_USE_COMPRESSED_DTB=y
 CONFIG_PBL_RELOCATABLE=y
@@ -194,6 +196,7 @@ CONFIG_BOOTM_OFTREE=y
 # CONFIG_BOOTM_OFTREE_FALLBACK is not set
 # CONFIG_BOOTM_UIMAGE is not set
 # CONFIG_BOOTM_AIMAGE is not set
+CONFIG_ELF=y
 # CONFIG_BOOTM_FITIMAGE is not set
 CONFIG_BOOTM_OPTIONAL_SIGNED_IMAGES=y
 CONFIG_BLSPEC=y
@@ -1128,6 +1131,7 @@ CONFIG_LIBFDT=y
 #
 # end of Library gui routines
 
+CONFIG_VERSION_CMP=y
 CONFIG_PRINTF_UUID=y
 CONFIG_NLS=y
 # end of Library routines
diff --git a/configs/platform-v7a_noneon/barebox-vexpress.config b/configs/platform-v7a_noneon/barebox-vexpress.config
index d1e73ec6c447..b0a5dbddee7f 100644
--- a/configs/platform-v7a_noneon/barebox-vexpress.config
+++ b/configs/platform-v7a_noneon/barebox-vexpress.config
@@ -1,6 +1,6 @@
 #
 # Automatically generated file; DO NOT EDIT.
-# Barebox/arm 2026.01.0 Configuration
+# Barebox/arm 2026.03.1 Configuration
 #
 CONFIG_ARM=y
 CONFIG_ARCH_LINUX_NAME="arm"
@@ -38,6 +38,7 @@ CONFIG_ARCH_VEXPRESS=y
 #
 CONFIG_CPU_32=y
 CONFIG_CPU_V7=y
+CONFIG_CPU_V7VE=y
 CONFIG_CPU_32v7=y
 
 #
@@ -88,12 +89,12 @@ CONFIG_HAVE_EFI_STUB=y
 CONFIG_HAVE_EFI_LOADER=y
 CONFIG_HAS_DEBUG_LL=y
 CONFIG_HAVE_ARCH_KASAN=y
+CONFIG_HAVE_STACKPROTECTOR=y
 CONFIG_CC_IS_GCC=y
 CONFIG_GCC_VERSION=150201
 CONFIG_CLANG_VERSION=0
 CONFIG_GREGORIAN_CALENDER=y
 CONFIG_HAS_KALLSYMS=y
-CONFIG_HAS_MODULES=y
 CONFIG_HAS_DMA=y
 CONFIG_BLOCK=y
 CONFIG_BLOCK_WRITE=y
@@ -127,6 +128,7 @@ CONFIG_HAVE_PBL_IMAGE=y
 CONFIG_HAVE_PBL_MULTI_IMAGES=y
 CONFIG_HAVE_IMAGE_COMPRESSION=y
 CONFIG_PBL_IMAGE=y
+CONFIG_PBL_IMAGE_ELF=y
 CONFIG_PBL_MULTI_IMAGES=y
 CONFIG_USE_COMPRESSED_DTB=y
 CONFIG_PBL_RELOCATABLE=y
@@ -180,6 +182,7 @@ CONFIG_BOOTM_OFTREE=y
 # CONFIG_BOOTM_OFTREE_FALLBACK is not set
 # CONFIG_BOOTM_UIMAGE is not set
 # CONFIG_BOOTM_AIMAGE is not set
+CONFIG_ELF=y
 # CONFIG_BOOTM_FITIMAGE is not set
 CONFIG_BOOTM_OPTIONAL_SIGNED_IMAGES=y
 CONFIG_BLSPEC=y
@@ -1076,6 +1079,7 @@ CONFIG_LIBFDT=y
 #
 # end of Library gui routines
 
+CONFIG_VERSION_CMP=y
 CONFIG_PRINTF_UUID=y
 CONFIG_NLS=y
 # end of Library routines
diff --git a/configs/platform-v7a_noneon/barebox-vexpress.config.diff b/configs/platform-v7a_noneon/barebox-vexpress.config.diff
index 87762f48def8..ce797731573c 100644
--- a/configs/platform-v7a_noneon/barebox-vexpress.config.diff
+++ b/configs/platform-v7a_noneon/barebox-vexpress.config.diff
@@ -1,5 +1,5 @@
-3028fb8f9e4ad715e0327e2fed1c70eb
-75c5e1100a2a6b7df1ba323e31fa8032
+604a2ddf6c4f2e6a0a8c0f2b5386e3a0
+1623a1aea631ce5f00b3647e7e40902c
 CONFIG_AMBA_SP804=y
 # CONFIG_ARCH_BCM283X is not set
 CONFIG_ARCH_VEXPRESS=y
diff --git a/configs/platform-v7a_noneon/platformconfig b/configs/platform-v7a_noneon/platformconfig
index 9924449d6e60..c27460cfece7 100644
--- a/configs/platform-v7a_noneon/platformconfig
+++ b/configs/platform-v7a_noneon/platformconfig
@@ -180,8 +180,8 @@ PTXCONF_CONSOLE_SPEED="115200"
 # PTXCONF_AT91BOOTSTRAP2 is not set
 PTXCONF_BAREBOX_COMMON_ARCH_STRING="arm"
 PTXCONF_BAREBOX_COMMON=y
-PTXCONF_BAREBOX_COMMON_VERSION="2026.01.0"
-PTXCONF_BAREBOX_COMMON_MD5="82e3fc96c069151779b434043ee0c0e7"
+PTXCONF_BAREBOX_COMMON_VERSION="2026.03.1"
+PTXCONF_BAREBOX_COMMON_MD5="e87f88499e1f16deb60b0c3bf216df85"
 PTXCONF_BAREBOX_COMMON_NEEDS_HOST_LZOP=y
 PTXCONF_BAREBOX_AT91=y
 PTXCONF_BAREBOX_VEXPRESS=y
diff --git a/configs/platform-v8a/barebox-r5.config b/configs/platform-v8a/barebox-r5.config
index 82188c377ded..789693b978fd 100644
--- a/configs/platform-v8a/barebox-r5.config
+++ b/configs/platform-v8a/barebox-r5.config
@@ -1,6 +1,6 @@
 #
 # Automatically generated file; DO NOT EDIT.
-# Barebox/arm 2026.01.0 Configuration
+# Barebox/arm 2026.03.1 Configuration
 #
 CONFIG_ARM=y
 CONFIG_ARCH_LINUX_NAME="arm"
@@ -37,6 +37,7 @@ CONFIG_ARCH_K3=y
 #
 CONFIG_CPU_32=y
 CONFIG_CPU_V7=y
+# CONFIG_CPU_V7VE is not set
 CONFIG_CPU_32v7=y
 
 #
@@ -93,11 +94,11 @@ CONFIG_ARCH_HAS_SJLJ=y
 CONFIG_HAVE_EFI_STUB=y
 CONFIG_HAS_DEBUG_LL=y
 CONFIG_HAVE_ARCH_KASAN=y
+CONFIG_HAVE_STACKPROTECTOR=y
 CONFIG_CC_IS_GCC=y
 CONFIG_GCC_VERSION=150201
 CONFIG_CLANG_VERSION=0
 CONFIG_HAS_KALLSYMS=y
-CONFIG_HAS_MODULES=y
 CONFIG_HAS_DMA=y
 CONFIG_GENERIC_GPIO=y
 CONFIG_BLOCK=y
@@ -121,6 +122,7 @@ CONFIG_HAVE_PBL_IMAGE=y
 CONFIG_HAVE_PBL_MULTI_IMAGES=y
 CONFIG_HAVE_IMAGE_COMPRESSION=y
 CONFIG_PBL_IMAGE=y
+CONFIG_PBL_IMAGE_ELF=y
 CONFIG_PBL_MULTI_IMAGES=y
 CONFIG_USE_COMPRESSED_DTB=y
 CONFIG_PBL_RELOCATABLE=y
@@ -298,6 +300,7 @@ CONFIG_USB_DWC3_GADGET=y
 # CONFIG_USB_DWC3_DUAL_ROLE is not set
 # CONFIG_USB_DWC3_OF_SIMPLE is not set
 CONFIG_USB_DWC3_AM62=y
+# CONFIG_USB_DWC3_GENERIC_PLAT is not set
 # CONFIG_USB_EHCI is not set
 # CONFIG_USB_OHCI is not set
 CONFIG_USB_XHCI=y
diff --git a/configs/platform-v8a/barebox.config b/configs/platform-v8a/barebox.config
index c560c46e0525..51ba207488ee 100644
--- a/configs/platform-v8a/barebox.config
+++ b/configs/platform-v8a/barebox.config
@@ -1,6 +1,6 @@
 #
 # Automatically generated file; DO NOT EDIT.
-# Barebox/arm 2026.01.0 Configuration
+# Barebox/arm 2026.03.1 Configuration
 #
 CONFIG_ARM=y
 CONFIG_ARCH_LINUX_NAME="arm64"
@@ -38,6 +38,7 @@ CONFIG_CPU_64v8=y
 CONFIG_ARCH_IMX_IMXIMAGE=y
 CONFIG_USB_GADGET_DRIVER_ARC_PBL=y
 CONFIG_ARCH_IMX_ATF=y
+# CONFIG_ARCH_IMX_ATF_PASS_BL_PARAMS is not set
 CONFIG_ARCH_IMX_ROMAPI=y
 CONFIG_ARCH_IMX_SCRATCHMEM=y
 CONFIG_ARCH_IMX_SNVS=y
@@ -56,6 +57,7 @@ CONFIG_ARCH_IMX93=y
 #
 # i.MX8M boards
 #
+# CONFIG_MACH_HGS_GS05 is not set
 # CONFIG_MACH_KOENIGBAUER_ALPHAJET is not set
 # CONFIG_MACH_INNOCOMM_WB15 is not set
 # CONFIG_MACH_KARO_QSXP_ML81 is not set
@@ -86,6 +88,7 @@ CONFIG_MACH_NXP_IMX93_FRDM=y
 #
 # CONFIG_IMX_IIM is not set
 CONFIG_IMX_SAVE_BOOTROM_LOG=y
+# CONFIG_ARCH_IMX8MP_KEEP_COMPATIBLE_SOC_UID is not set
 CONFIG_HAB=y
 CONFIG_AHAB=y
 # CONFIG_HABV4 is not set
@@ -116,12 +119,15 @@ CONFIG_ARCH_RK3568=y
 #
 # select Rockchip boards:
 #
+# CONFIG_MACH_RK3562_EVB2 is not set
+# CONFIG_MACH_RK3562_KICKPI_K3 is not set
 CONFIG_MACH_RK3568_EVB=y
 # CONFIG_MACH_RK3568_BPI_R2PRO is not set
 # CONFIG_MACH_PINE64_PINETAB2 is not set
 # CONFIG_MACH_PINE64_QUARTZ64 is not set
 # CONFIG_MACH_PROTONIC_MECSBC is not set
 # CONFIG_MACH_PROTONIC_PRTPUK is not set
+# CONFIG_MACH_QNAP_TSX33 is not set
 CONFIG_MACH_RADXA_ROCK3=y
 # CONFIG_MACH_RADXA_ROCK5 is not set
 # CONFIG_MACH_RADXA_CM3 is not set
@@ -181,6 +187,7 @@ CONFIG_PHYS_ADDR_T_64BIT=y
 CONFIG_ARCH_DMA_ADDR_T_64BIT=y
 CONFIG_HAS_DEBUG_LL=y
 CONFIG_HAVE_ARCH_KASAN=y
+CONFIG_HAVE_STACKPROTECTOR=y
 CONFIG_BOARD_TQ=y
 CONFIG_CC_IS_GCC=y
 CONFIG_GCC_VERSION=150201
@@ -224,6 +231,7 @@ CONFIG_HAVE_PBL_IMAGE=y
 CONFIG_HAVE_PBL_MULTI_IMAGES=y
 CONFIG_HAVE_IMAGE_COMPRESSION=y
 CONFIG_PBL_IMAGE=y
+CONFIG_PBL_IMAGE_ELF=y
 CONFIG_PBL_MULTI_IMAGES=y
 CONFIG_USE_COMPRESSED_DTB=y
 CONFIG_PBL_RELOCATABLE=y
@@ -279,6 +287,7 @@ CONFIG_BOOTM_OFTREE_FALLBACK=y
 CONFIG_BOOTM_UIMAGE=y
 CONFIG_BOOTM_OFTREE_UIMAGE=y
 # CONFIG_BOOTM_AIMAGE is not set
+CONFIG_ELF=y
 CONFIG_BOOTM_FITIMAGE=y
 # CONFIG_BOOTM_FITIMAGE_SIGNATURE is not set
 CONFIG_BOOTM_OPTIONAL_SIGNED_IMAGES=y
@@ -820,6 +829,7 @@ CONFIG_USB_DWC3_DUAL_ROLE=y
 CONFIG_USB_DWC3_OF_SIMPLE=y
 CONFIG_USB_DWC3_IMX8MP=y
 CONFIG_USB_DWC3_AM62=y
+# CONFIG_USB_DWC3_GENERIC_PLAT is not set
 CONFIG_USB_EHCI=y
 CONFIG_USB_XHCI=y
 # CONFIG_USB_ULPI is not set
@@ -919,6 +929,7 @@ CONFIG_MFD_PCA9450=y
 CONFIG_MFD_RK808=y
 # CONFIG_MFD_AXP20X_I2C is not set
 # CONFIG_MFD_ROHM_BD718XX is not set
+# CONFIG_MFD_HGS_EFI is not set
 # end of Multifunction device drivers
 
 #
@@ -1363,6 +1374,7 @@ CONFIG_CRC_CCITT=y
 #
 # end of Library gui routines
 
+CONFIG_VERSION_CMP=y
 CONFIG_PRINTF_UUID=y
 CONFIG_NLS=y
 # end of Library routines
diff --git a/configs/platform-v8a/patches/barebox-2026.01.0/0001-net-phy-realtek-sync-with-Linux-v6.19-state.patch b/configs/platform-v8a/patches/barebox-2026.01.0/0001-net-phy-realtek-sync-with-Linux-v6.19-state.patch
deleted file mode 100644
index b7b1adbbc868..000000000000
--- a/configs/platform-v8a/patches/barebox-2026.01.0/0001-net-phy-realtek-sync-with-Linux-v6.19-state.patch
+++ /dev/null
@@ -1,863 +0,0 @@
-From cc0a6b72f486dbcfa42d6f4cd9e102e616f093b2 Mon Sep 17 00:00:00 2001
-From: Ahmad Fatoum <a.fatoum@pengutronix.de>
-Date: Tue, 20 Jan 2026 20:34:34 +0100
-Subject: [PATCH] net: phy: realtek: sync with Linux v6.19 state
-
-The BeaglePlay has a RTL8211F-VD Gigabit Ethernet PHY at mdio0-phy00,
-which detects link up, but fails to communicate when used with the
-barebox generic PHY driver.
-
-The Linux Realtek PHY driver already matches the RTL8211F-VD PHY's
-ID, so bring the barebox driver up to date.
-
-Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
----
- drivers/net/phy/phy-core.c     |  54 +++++
- drivers/net/phy/phy.c          |  63 +++++
- drivers/net/phy/realtek.c      | 411 ++++++++++++++++++++++++++++++++-
- include/linux/phy.h            |  19 ++
- include/linux/string_choices.h |  79 +++++++
- 5 files changed, 614 insertions(+), 12 deletions(-)
-
-diff --git a/drivers/net/phy/phy-core.c b/drivers/net/phy/phy-core.c
-index b12f54ed3878..85e8c4b3e2c7 100644
---- a/drivers/net/phy/phy-core.c
-+++ b/drivers/net/phy/phy-core.c
-@@ -23,6 +23,37 @@ int phy_modify(struct phy_device *phydev, u32 regnum, u16 mask, u16 set)
- 	return ret < 0 ? ret : 0;
- }
- 
-+/**
-+ * phy_modify_changed - Function for modifying a PHY register
-+ * @phydev: the phy_device struct
-+ * @regnum: register number to modify
-+ * @mask: bit mask of bits to clear
-+ * @set: new value of bits set in mask to write to @regnum
-+ *
-+ * NOTE: MUST NOT be called from interrupt context,
-+ * because the bus read/write functions may wait for an interrupt
-+ * to conclude the operation.
-+ *
-+ * Returns negative errno, 0 if there was no change, and 1 in case of change
-+ */
-+int phy_modify_changed(struct phy_device *phydev, u32 regnum, u16 mask, u16 set)
-+{
-+	int new, ret;
-+
-+	ret = phy_read(phydev, regnum);
-+	if (ret < 0)
-+		return ret;
-+
-+	new = (ret & ~mask) | set;
-+	if (new == ret)
-+		return 0;
-+
-+	ret = phy_write(phydev, regnum, (ret & ~mask) | set);
-+
-+	return ret < 0 ? ret : 1;
-+}
-+EXPORT_SYMBOL_GPL(phy_modify_changed);
-+
- static int phy_read_page(struct phy_device *phydev)
- {
- 	struct phy_driver *phydrv = to_phy_driver(phydev->dev.driver);
-@@ -184,3 +215,26 @@ int phy_modify_paged(struct phy_device *phydev, int page, u32 regnum,
- 
- 	return phy_restore_page(phydev, oldpage, ret);
- }
-+
-+/**
-+ * phy_modify_paged_changed() - Function for modifying a paged register
-+ * @phydev: a pointer to a &struct phy_device
-+ * @page: the page for the phy
-+ * @regnum: register number
-+ * @mask: bit mask of bits to clear
-+ * @set: bit mask of bits to set
-+ *
-+ * Returns negative errno, 0 if there was no change, and 1 in case of change
-+ */
-+int phy_modify_paged_changed(struct phy_device *phydev, int page, u32 regnum,
-+			     u16 mask, u16 set)
-+{
-+	int ret = 0, oldpage;
-+
-+	oldpage = phy_select_page(phydev, page);
-+	if (oldpage >= 0)
-+		ret = phy_modify_changed(phydev, regnum, mask, set);
-+
-+	return phy_restore_page(phydev, oldpage, ret);
-+}
-+EXPORT_SYMBOL(phy_modify_paged_changed);
-diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c
-index 9635c816c330..5ca3d9254af8 100644
---- a/drivers/net/phy/phy.c
-+++ b/drivers/net/phy/phy.c
-@@ -1077,6 +1077,69 @@ int genphy_config_init(struct phy_device *phydev)
- 	return 0;
- }
- 
-+/**
-+ * phy_poll_reset - Safely wait until a PHY reset has properly completed
-+ * @phydev: The PHY device to poll
-+ *
-+ * Description: According to IEEE 802.3, Section 2, Subsection 22.2.4.1.1, as
-+ *   published in 2008, a PHY reset may take up to 0.5 seconds.  The MII BMCR
-+ *   register must be polled until the BMCR_RESET bit clears.
-+ *
-+ *   Furthermore, any attempts to write to PHY registers may have no effect
-+ *   or even generate MDIO bus errors until this is complete.
-+ *
-+ *   Some PHYs (such as the Marvell 88E1111) don't entirely conform to the
-+ *   standard and do not fully reset after the BMCR_RESET bit is set, and may
-+ *   even *REQUIRE* a soft-reset to properly restart autonegotiation.  In an
-+ *   effort to support such broken PHYs, this function is separate from the
-+ *   standard phy_init_hw() which will zero all the other bits in the BMCR
-+ *   and reapply all driver-specific and board-specific fixups.
-+ */
-+static int phy_poll_reset(struct phy_device *phydev)
-+{
-+	/* Poll until the reset bit clears (50ms per retry == 0.6 sec) */
-+	int ret, val;
-+
-+	ret = phy_read_poll_timeout(phydev, MII_BMCR, val, !(val & BMCR_RESET),
-+				    600000);
-+	if (ret)
-+		return ret;
-+	/* Some chips (smsc911x) may still need up to another 1ms after the
-+	 * BMCR_RESET bit is cleared before they are usable.
-+	 */
-+	mdelay(1);
-+	return 0;
-+}
-+
-+int genphy_soft_reset(struct phy_device *phydev)
-+{
-+	u16 res = BMCR_RESET;
-+	int ret;
-+
-+	if (phydev->autoneg == AUTONEG_ENABLE)
-+		res |= BMCR_ANRESTART;
-+
-+	ret = phy_modify(phydev, MII_BMCR, BMCR_ISOLATE, res);
-+	if (ret < 0)
-+		return ret;
-+
-+	/* Clause 22 states that setting bit BMCR_RESET sets control registers
-+	 * to their default value. Therefore the POWER DOWN bit is supposed to
-+	 * be cleared after soft reset.
-+	 */
-+
-+	ret = phy_poll_reset(phydev);
-+	if (ret)
-+		return ret;
-+
-+	/* BMCR may be reset to defaults */
-+	if (phydev->autoneg == AUTONEG_DISABLE)
-+		ret = genphy_setup_forced(phydev);
-+
-+	return ret;
-+}
-+EXPORT_SYMBOL(genphy_soft_reset);
-+
- int phy_driver_register(struct phy_driver *phydrv)
- {
- 	phydrv->drv.bus = &mdio_bus_type;
-diff --git a/drivers/net/phy/realtek.c b/drivers/net/phy/realtek.c
-index 8ab3d630912b..77d7b9aaf20b 100644
---- a/drivers/net/phy/realtek.c
-+++ b/drivers/net/phy/realtek.c
-@@ -1,6 +1,6 @@
--// SPDX-License-Identifier: GPL-2.0-or-later
--/*
-- * drivers/net/phy/realtek.c
-+// SPDX-License-Identifier: GPL-2.0+
-+// SPDX-Comment: Origin-URL: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/net/phy/realtek/realtek_main.c?id=4f0638b12451112de4138689fa679315c8d388dc
-+/* drivers/net/phy/realtek.c
-  *
-  * Driver for Realtek PHYs
-  *
-@@ -11,6 +11,8 @@
- #include <common.h>
- #include <init.h>
- #include <linux/bitops.h>
-+#include <linux/mdio.h>
-+#include <linux/string_choices.h>
- #include <linux/phy.h>
- 
- #define RTL821x_PHYSR				0x11
-@@ -20,23 +22,102 @@
- #define RTL821x_INER				0x12
- #define RTL8211B_INER_INIT			0x6400
- #define RTL8211E_INER_LINK_STATUS		BIT(10)
-+#define RTL8211F_INER_PME			BIT(7)
- #define RTL8211F_INER_LINK_STATUS		BIT(4)
- 
- #define RTL821x_INSR				0x13
- 
-+#define RTL821x_EXT_PAGE_SELECT			0x1e
-+
- #define RTL821x_PAGE_SELECT			0x1f
- 
- #define RTL8211F_INSR				0x1d
- 
-+#define RTL821x_SET_EXT_PAGE			0x07
-+
-+/* RTL8211E extension page 164/0xa4 */
-+#define RTL8211E_RGMII_EXT_PAGE			0xa4
-+#define RTL8211E_RGMII_DELAY			0x1c
-+#define RTL8211E_CTRL_DELAY			BIT(13)
-+#define RTL8211E_TX_DELAY			BIT(12)
-+#define RTL8211E_RX_DELAY			BIT(11)
-+#define RTL8211E_DELAY_MASK			GENMASK(13, 11)
-+
-+/* RTL8211F PHY configuration */
-+#define RTL8211F_PHYCR_PAGE			0xa43
-+#define RTL8211F_PHYCR1				0x18
-+#define RTL8211F_ALDPS_PLL_OFF			BIT(1)
-+#define RTL8211F_ALDPS_ENABLE			BIT(2)
-+#define RTL8211F_ALDPS_XTAL_OFF			BIT(12)
-+
-+#define RTL8211F_PHYCR2				0x19
-+#define RTL8211F_CLKOUT_EN			BIT(0)
-+#define RTL8211F_PHYCR2_PHY_EEE_ENABLE		BIT(5)
-+
-+/* RTL8211F(D)(I)-VD-CG CLKOUT configuration is specified via magic values
-+ * to undocumented register pages. The names here do not reflect the datasheet.
-+ * Unlike other PHY models, CLKOUT configuration does not go through PHYCR2.
-+ */
-+#define RTL8211FVD_CLKOUT_PAGE			0xd05
-+#define RTL8211FVD_CLKOUT_REG			0x11
-+#define RTL8211FVD_CLKOUT_EN			BIT(8)
-+
-+/* RTL8211F RGMII configuration */
-+#define RTL8211F_RGMII_PAGE			0xd08
-+
-+#define RTL8211F_TXCR				0x11
- #define RTL8211F_TX_DELAY			BIT(8)
-+
-+#define RTL8211F_RXCR				0x15
- #define RTL8211F_RX_DELAY			BIT(3)
- 
- #define RTL8201F_ISR				0x1e
- #define RTL8201F_IER				0x13
- 
-+#define RTL821x_EXT_PAGE_SELECT			0x1e
-+
-+/* RTL822X_VND2_XXXXX registers are only accessible when phydev->is_c45
-+ * is set, they cannot be accessed by C45-over-C22.
-+ */
-+#define RTL822X_VND2_C22_REG(reg)		(0xa400 + 2 * (reg))
-+
-+#define RTL8221B_VND2_INER			0xa4d2
-+#define RTL8221B_VND2_INER_LINK_STATUS		BIT(4)
-+
-+#define RTL8221B_VND2_INSR			0xa4d4
-+
- #define RTL8366RB_POWER_SAVE			0x15
- #define RTL8366RB_POWER_SAVE_ON			BIT(12)
- 
-+#define RTL_VND2_PHYSR				0xa434
-+#define RTL_VND2_PHYSR_DUPLEX			BIT(3)
-+#define RTL_VND2_PHYSR_SPEEDL			GENMASK(5, 4)
-+#define RTL_VND2_PHYSR_SPEEDH			GENMASK(10, 9)
-+#define RTL_VND2_PHYSR_MASTER			BIT(11)
-+#define RTL_VND2_PHYSR_SPEED_MASK		(RTL_VND2_PHYSR_SPEEDL | RTL_VND2_PHYSR_SPEEDH)
-+
-+#define	RTL_MDIO_AN_10GBT_STAT			0xa5d6
-+
-+#define RTL_GENERIC_PHYID			0x001cc800
-+#define RTL_8211FVD_PHYID			0x001cc878
-+#define RTL_8221B				0x001cc840
-+#define RTL_8221B_VB_CG				0x001cc849
-+#define RTL_8221B_VM_CG				0x001cc84a
-+#define RTL_8251B				0x001cc862
-+#define RTL_8261C				0x001cc890
-+
-+MODULE_DESCRIPTION("Realtek PHY driver");
-+MODULE_AUTHOR("Johnson Leung");
-+MODULE_LICENSE("GPL");
-+
-+struct rtl821x_priv {
-+	bool enable_aldps;
-+	bool disable_clk_out;
-+	struct clk *clk;
-+	/* rtl8211f */
-+	u16 iner;
-+};
-+
- static int rtl821x_read_page(struct phy_device *phydev)
- {
- 	return phy_read(phydev, RTL821x_PAGE_SELECT);
-@@ -47,6 +128,28 @@ static int rtl821x_write_page(struct phy_device *phydev, int page)
- 	return phy_write(phydev, RTL821x_PAGE_SELECT, page);
- }
- 
-+static int rtl821x_probe(struct phy_device *phydev)
-+{
-+	struct device *dev = &phydev->dev;
-+	struct rtl821x_priv *priv;
-+
-+	priv = xzalloc(sizeof(*priv));
-+
-+	priv->clk = clk_get_optional_enabled(dev, NULL);
-+	if (IS_ERR(priv->clk))
-+		return dev_err_probe(dev, PTR_ERR(priv->clk),
-+				     "failed to get phy clock\n");
-+
-+	priv->enable_aldps = of_property_read_bool(dev->of_node,
-+						   "realtek,aldps-enable");
-+	priv->disable_clk_out = of_property_read_bool(dev->of_node,
-+						      "realtek,clkout-disable");
-+
-+	phydev->priv = priv;
-+
-+	return 0;
-+}
-+
- static int rtl8211_config_aneg(struct phy_device *phydev)
- {
- 	int ret;
-@@ -78,9 +181,8 @@ static int rtl8211c_config_init(struct phy_device *phydev)
- 	return genphy_config_init(phydev);
- }
- 
--static int rtl8211f_config_init(struct phy_device *phydev)
-+static int rtl8211f_config_rgmii_delay(struct phy_device *phydev)
- {
--	struct device *dev = &phydev->dev;
- 	u16 val_txdly, val_rxdly;
- 	int ret;
- 
-@@ -109,23 +211,169 @@ static int rtl8211f_config_init(struct phy_device *phydev)
- 		return 0;
- 	}
- 
--	ret = phy_modify_paged(phydev, 0xd08, 0x11, RTL8211F_TX_DELAY,
--			       val_txdly);
-+	ret = phy_modify_paged_changed(phydev, RTL8211F_RGMII_PAGE,
-+				       RTL8211F_TXCR, RTL8211F_TX_DELAY,
-+				       val_txdly);
- 	if (ret < 0) {
--		dev_err(dev, "Failed to update the TX delay register\n");
-+		phydev_err(phydev, "Failed to update the TX delay register: %pe\n",
-+			   ERR_PTR(ret));
- 		return ret;
-+	} else if (ret) {
-+		phydev_dbg(phydev,
-+			   "%s 2ns TX delay (and changing the value from pin-strapping RXD1 or the bootloader)\n",
-+			   str_enable_disable(val_txdly));
-+	} else {
-+		phydev_dbg(phydev,
-+			   "2ns TX delay was already %s (by pin-strapping RXD1 or bootloader configuration)\n",
-+			   str_enabled_disabled(val_txdly));
- 	}
- 
--	ret = phy_modify_paged(phydev, 0xd08, 0x15, RTL8211F_RX_DELAY,
--			       val_rxdly);
-+	ret = phy_modify_paged_changed(phydev, RTL8211F_RGMII_PAGE,
-+				       RTL8211F_RXCR, RTL8211F_RX_DELAY,
-+				       val_rxdly);
- 	if (ret < 0) {
--		dev_err(dev, "Failed to update the RX delay register\n");
-+		phydev_err(phydev, "Failed to update the RX delay register: %pe\n",
-+			   ERR_PTR(ret));
- 		return ret;
-+	} else if (ret) {
-+		phydev_dbg(phydev,
-+			   "%s 2ns RX delay (and changing the value from pin-strapping RXD0 or the bootloader)\n",
-+			   str_enable_disable(val_rxdly));
-+	} else {
-+		phydev_dbg(phydev,
-+			   "2ns RX delay was already %s (by pin-strapping RXD0 or bootloader configuration)\n",
-+			   str_enabled_disabled(val_rxdly));
- 	}
- 
- 	return 0;
- }
- 
-+static int rtl8211f_config_clk_out(struct phy_device *phydev)
-+{
-+	struct rtl821x_priv *priv = phydev->priv;
-+	struct phy_driver *drv = to_phy_driver(phydev->dev.driver);
-+	int ret;
-+
-+	/* The value is preserved if the device tree property is absent */
-+	if (!priv->disable_clk_out)
-+		return 0;
-+
-+	if (drv->phy_id == RTL_8211FVD_PHYID)
-+		ret = phy_modify_paged(phydev, RTL8211FVD_CLKOUT_PAGE,
-+				       RTL8211FVD_CLKOUT_REG,
-+				       RTL8211FVD_CLKOUT_EN, 0);
-+	else
-+		ret = phy_modify_paged(phydev, RTL8211F_PHYCR_PAGE,
-+				       RTL8211F_PHYCR2, RTL8211F_CLKOUT_EN, 0);
-+	if (ret)
-+		return ret;
-+
-+	return genphy_soft_reset(phydev);
-+}
-+
-+/* Advance Link Down Power Saving (ALDPS) mode changes crystal/clock behaviour,
-+ * which causes the RXC clock signal to stop for tens to hundreds of
-+ * milliseconds.
-+ *
-+ * Some MACs need the RXC clock to support their internal RX logic, so ALDPS is
-+ * only enabled based on an opt-in device tree property.
-+ */
-+static int rtl8211f_config_aldps(struct phy_device *phydev)
-+{
-+	struct rtl821x_priv *priv = phydev->priv;
-+	u16 mask = RTL8211F_ALDPS_PLL_OFF |
-+		   RTL8211F_ALDPS_ENABLE |
-+		   RTL8211F_ALDPS_XTAL_OFF;
-+
-+	/* The value is preserved if the device tree property is absent */
-+	if (!priv->enable_aldps)
-+		return 0;
-+
-+	return phy_modify_paged(phydev, RTL8211F_PHYCR_PAGE, RTL8211F_PHYCR1,
-+				mask, mask);
-+}
-+
-+static int rtl8211f_config_phy_eee(struct phy_device *phydev)
-+{
-+	/* Disable PHY-mode EEE so LPI is passed to the MAC */
-+	return phy_modify_paged(phydev, RTL8211F_PHYCR_PAGE, RTL8211F_PHYCR2,
-+				RTL8211F_PHYCR2_PHY_EEE_ENABLE, 0);
-+}
-+
-+static int rtl8211f_config_init(struct phy_device *phydev)
-+{
-+	struct device *dev = &phydev->dev;
-+	int ret;
-+
-+	ret = rtl8211f_config_aldps(phydev);
-+	if (ret) {
-+		dev_err(dev, "aldps mode configuration failed: %pe\n",
-+			ERR_PTR(ret));
-+		return ret;
-+	}
-+
-+	ret = rtl8211f_config_rgmii_delay(phydev);
-+	if (ret)
-+		return ret;
-+
-+	ret = rtl8211f_config_clk_out(phydev);
-+	if (ret) {
-+		dev_err(dev, "clkout configuration failed: %pe\n",
-+			ERR_PTR(ret));
-+		return ret;
-+	}
-+
-+	return rtl8211f_config_phy_eee(phydev);
-+}
-+
-+static int rtl8211e_config_init(struct phy_device *phydev)
-+{
-+	int ret = 0, oldpage;
-+	u16 val;
-+
-+	/* enable TX/RX delay for rgmii-* modes, and disable them for rgmii. */
-+	switch (phydev->interface) {
-+	case PHY_INTERFACE_MODE_RGMII:
-+		val = RTL8211E_CTRL_DELAY | 0;
-+		break;
-+	case PHY_INTERFACE_MODE_RGMII_ID:
-+		val = RTL8211E_CTRL_DELAY | RTL8211E_TX_DELAY | RTL8211E_RX_DELAY;
-+		break;
-+	case PHY_INTERFACE_MODE_RGMII_RXID:
-+		val = RTL8211E_CTRL_DELAY | RTL8211E_RX_DELAY;
-+		break;
-+	case PHY_INTERFACE_MODE_RGMII_TXID:
-+		val = RTL8211E_CTRL_DELAY | RTL8211E_TX_DELAY;
-+		break;
-+	default: /* the rest of the modes imply leaving delays as is. */
-+		return 0;
-+	}
-+
-+	/* According to a sample driver there is a 0x1c config register on the
-+	 * 0xa4 extension page (0x7) layout. It can be used to disable/enable
-+	 * the RX/TX delays otherwise controlled by RXDLY/TXDLY pins.
-+	 * The configuration register definition:
-+	 * 14 = reserved
-+	 * 13 = Force Tx RX Delay controlled by bit12 bit11,
-+	 * 12 = RX Delay, 11 = TX Delay
-+	 * 10:0 = Test && debug settings reserved by realtek
-+	 */
-+	oldpage = phy_select_page(phydev, 0x7);
-+	if (oldpage < 0)
-+		goto err_restore_page;
-+
-+	ret = phy_write(phydev, RTL821x_EXT_PAGE_SELECT, 0xa4);
-+	if (ret)
-+		goto err_restore_page;
-+
-+	ret = phy_modify(phydev, 0x1c, RTL8211E_CTRL_DELAY
-+			 | RTL8211E_TX_DELAY | RTL8211E_RX_DELAY,
-+			 val);
-+
-+err_restore_page:
-+	return phy_restore_page(phydev, oldpage, ret);
-+}
-+
- static int rtl8366rb_config_init(struct phy_device *phydev)
- {
- 	int ret;
-@@ -137,17 +385,91 @@ static int rtl8366rb_config_init(struct phy_device *phydev)
- 	ret = phy_set_bits(phydev, RTL8366RB_POWER_SAVE,
- 			   RTL8366RB_POWER_SAVE_ON);
- 	if (ret) {
--		dev_err(&phydev->dev, "error enabling power management\n");
-+		dev_err(&phydev->dev,
-+			"error enabling power management\n");
- 	}
- 
- 	return ret;
- }
- 
-+/* get actual speed to cover the downshift case */
-+static void rtlgen_decode_physr(struct phy_device *phydev, int val)
-+{
-+	/* bit 3
-+	 * 0: Half Duplex
-+	 * 1: Full Duplex
-+	 */
-+	if (val & RTL_VND2_PHYSR_DUPLEX)
-+		phydev->duplex = DUPLEX_FULL;
-+	else
-+		phydev->duplex = DUPLEX_HALF;
-+
-+	switch (val & RTL_VND2_PHYSR_SPEED_MASK) {
-+	case 0x0000:
-+		phydev->speed = SPEED_10;
-+		break;
-+	case 0x0010:
-+		phydev->speed = SPEED_100;
-+		break;
-+	case 0x0020:
-+		phydev->speed = SPEED_1000;
-+		break;
-+	case 0x0200:
-+		phydev->speed = SPEED_10000;
-+		break;
-+	case 0x0210:
-+		phydev->speed = SPEED_2500;
-+		break;
-+	default:
-+		break;
-+	}
-+}
-+
-+static int rtlgen_read_status(struct phy_device *phydev)
-+{
-+	int ret, val;
-+
-+	ret = genphy_read_status(phydev);
-+	if (ret < 0)
-+		return ret;
-+
-+	if (!phydev->link)
-+		return 0;
-+
-+	val = phy_read_paged(phydev, 0xa43, 0x12);
-+	if (val < 0)
-+		return val;
-+
-+	rtlgen_decode_physr(phydev, val);
-+
-+	return 0;
-+}
-+
-+static int rtl822x_read_status(struct phy_device *phydev)
-+{
-+	int lpadv, ret;
-+
-+	ret = rtlgen_read_status(phydev);
-+	if (ret < 0)
-+		return ret;
-+
-+	if (phydev->autoneg == AUTONEG_DISABLE)
-+		return 0;
-+
-+	lpadv = phy_read_mmd(phydev, MDIO_MMD_VEND2, RTL_MDIO_AN_10GBT_STAT);
-+	if (lpadv < 0)
-+		return lpadv;
-+
-+	return 0;
-+}
-+
- static struct phy_driver realtek_drvs[] = {
- 	{
- 		PHY_ID_MATCH_EXACT(0x00008201),
- 		.drv.name	= "RTL8201CP Ethernet",
- 		.features	= PHY_BASIC_FEATURES,
-+		.read_page	= rtl821x_read_page,
-+		.write_page	= rtl821x_write_page,
- 	}, {
- 		PHY_ID_MATCH_EXACT(0x001cc816),
- 		.drv.name	= "RTL8201F Fast Ethernet",
-@@ -158,6 +480,13 @@ static struct phy_driver realtek_drvs[] = {
- 		PHY_ID_MATCH_EXACT(0x001cc840),
- 		.drv.name	= "RTL8226B_RTL8221B 2.5Gbps PHY",
- 		.features	= PHY_GBIT_FEATURES,
-+		.read_status	= rtl822x_read_status,
-+		.read_page	= rtl821x_read_page,
-+		.write_page	= rtl821x_write_page,
-+	}, {
-+		PHY_ID_MATCH_MODEL(0x001cc880),
-+		.drv.name	= "RTL8208 Fast Ethernet",
-+		.features	= PHY_BASIC_FEATURES,
- 		.read_page	= rtl821x_read_page,
- 		.write_page	= rtl821x_write_page,
- 	}, {
-@@ -165,28 +494,41 @@ static struct phy_driver realtek_drvs[] = {
- 		.drv.name	= "RTL8211 Gigabit Ethernet",
- 		.features	= PHY_GBIT_FEATURES,
- 		.config_aneg	= rtl8211_config_aneg,
-+		.read_page	= rtl821x_read_page,
-+		.write_page	= rtl821x_write_page,
- 	}, {
- 		PHY_ID_MATCH_EXACT(0x001cc912),
- 		.drv.name	= "RTL8211B Gigabit Ethernet",
- 		.features	= PHY_GBIT_FEATURES,
-+		.read_page	= rtl821x_read_page,
-+		.write_page	= rtl821x_write_page,
- 	}, {
- 		PHY_ID_MATCH_EXACT(0x001cc913),
- 		.drv.name	= "RTL8211C Gigabit Ethernet",
- 		.features	= PHY_GBIT_FEATURES,
- 		.config_init	= rtl8211c_config_init,
-+		.read_page	= rtl821x_read_page,
-+		.write_page	= rtl821x_write_page,
- 	}, {
- 		PHY_ID_MATCH_EXACT(0x001cc914),
- 		.drv.name	= "RTL8211DN Gigabit Ethernet",
- 		.features	= PHY_GBIT_FEATURES,
-+		.read_page	= rtl821x_read_page,
-+		.write_page	= rtl821x_write_page,
- 	}, {
- 		PHY_ID_MATCH_EXACT(0x001cc915),
- 		.drv.name	= "RTL8211E Gigabit Ethernet",
- 		.features	= PHY_GBIT_FEATURES,
-+		.config_init	= &rtl8211e_config_init,
-+		.read_page	= rtl821x_read_page,
-+		.write_page	= rtl821x_write_page,
- 	}, {
- 		PHY_ID_MATCH_EXACT(0x001cc916),
- 		.drv.name	= "RTL8211F Gigabit Ethernet",
- 		.features	= PHY_GBIT_FEATURES,
-+		.probe		= rtl821x_probe,
- 		.config_init	= &rtl8211f_config_init,
-+		.read_status	= rtlgen_read_status,
- 		.read_page	= rtl821x_read_page,
- 		.write_page	= rtl821x_write_page,
- 	}, {
-@@ -196,11 +538,56 @@ static struct phy_driver realtek_drvs[] = {
- 		.config_init	= &rtl8211f_config_init,
- 		.read_page	= rtl821x_read_page,
- 		.write_page	= rtl821x_write_page,
-+	}, {
-+		PHY_ID_MATCH_EXACT(RTL_8211FVD_PHYID),
-+		.drv.name	= "RTL8211F-VD Gigabit Ethernet",
-+		.features	= PHY_GBIT_FEATURES,
-+		.probe		= rtl821x_probe,
-+		.config_init	= &rtl8211f_config_init,
-+		.read_status	= rtlgen_read_status,
-+		.read_page	= rtl821x_read_page,
-+		.write_page	= rtl821x_write_page,
-+	}, {
-+		PHY_ID_MATCH_EXACT(0x001cc838),
-+		.drv.name	= "RTL8226-CG 2.5Gbps PHY",
-+		.features	= PHY_GBIT_FEATURES,
-+		.read_status	= rtl822x_read_status,
-+		.read_page	= rtl821x_read_page,
-+		.write_page	= rtl821x_write_page,
-+	}, {
-+		PHY_ID_MATCH_EXACT(0x001cc848),
-+		.drv.name	= "RTL8226B-CG_RTL8221B-CG 2.5Gbps PHY",
-+		.features	= PHY_GBIT_FEATURES,
-+		.read_status	= rtl822x_read_status,
-+		.read_page	= rtl821x_read_page,
-+		.write_page	= rtl821x_write_page,
-+	}, {
-+		PHY_ID_MATCH_EXACT(0x001cc849),
-+		.drv.name	= "RTL8221B-VB-CG 2.5Gbps PHY",
-+		.features	= PHY_GBIT_FEATURES,
-+		.read_status	= rtl822x_read_status,
-+		.read_page	= rtl821x_read_page,
-+		.write_page	= rtl821x_write_page,
-+	}, {
-+		PHY_ID_MATCH_EXACT(0x001cc84a),
-+		.drv.name	= "RTL8221B-VM-CG 2.5Gbps PHY",
-+		.features	= PHY_GBIT_FEATURES,
-+		.read_status	= rtl822x_read_status,
-+		.read_page	= rtl821x_read_page,
-+		.write_page	= rtl821x_write_page,
- 	}, {
- 		PHY_ID_MATCH_EXACT(0x001cc961),
- 		.drv.name	= "RTL8366RB Gigabit Ethernet",
- 		.features	= PHY_GBIT_FEATURES,
- 		.config_init	= &rtl8366rb_config_init,
-+	}, {
-+		PHY_ID_MATCH_EXACT(0x001cc942),
-+		.drv.name	= "RTL8365MB-VC Gigabit Ethernet",
-+		.features	= PHY_GBIT_FEATURES,
-+	}, {
-+		PHY_ID_MATCH_EXACT(0x001cc960),
-+		.drv.name	= "RTL8366S Gigabit Ethernet",
-+		.features	= PHY_GBIT_FEATURES,
- 	},
- };
- 
-diff --git a/include/linux/phy.h b/include/linux/phy.h
-index 04b82d63a51e..26b1136b8a5d 100644
---- a/include/linux/phy.h
-+++ b/include/linux/phy.h
-@@ -15,6 +15,7 @@
- #include <linux/list.h>
- #include <linux/ethtool.h>
- #include <linux/mii.h>
-+#include <linux/iopoll.h>
- 
- #define PHY_DEFAULT_FEATURES    (SUPPORTED_Autoneg | \
- 				 SUPPORTED_TP | \
-@@ -452,11 +453,27 @@ int phy_read_paged(struct phy_device *phydev, int page, u32 regnum);
- int phy_write_paged(struct phy_device *phydev, int page, u32 regnum, u16 val);
- int phy_modify_paged(struct phy_device *phydev, int page, u32 regnum,
- 		     u16 mask, u16 set);
-+int phy_modify_paged_changed(struct phy_device *phydev, int page, u32 regnum,
-+			     u16 mask, u16 set);
- 
- struct phy_device *phy_device_create(struct mii_bus *bus, int addr, int phy_id);
- int phy_register_device(struct phy_device* dev);
- void phy_unregister_device(struct phy_device *phydev);
- 
-+#define phy_read_poll_timeout(phydev, regnum, val, cond, \
-+				timeout_us) \
-+({ \
-+	int __ret, __val; \
-+	__ret = read_poll_timeout(__val = phy_read, val, \
-+				  __val < 0 || (cond), \
-+		timeout_us, phydev, regnum); \
-+	if (__val < 0) \
-+		__ret = __val; \
-+	if (__ret) \
-+		dev_err(&((phydev)->dev), "%s failed: %d\n", __func__, __ret); \
-+	__ret; \
-+})
-+
- /**
-  * phy_read - Convenience function for reading a given PHY register
-  * @phydev: the phy_device struct
-@@ -479,6 +496,7 @@ static inline int phy_write(struct phy_device *phydev, u32 regnum, u16 val)
- }
- 
- int phy_modify(struct phy_device *phydev, u32 regnum, u16 mask, u16 set);
-+int phy_modify_changed(struct phy_device *phydev, u32 regnum, u16 mask, u16 set);
- 
- /**
-  * phy_set_bits - Convenience function for setting bits in a PHY register
-@@ -531,6 +549,7 @@ int phy_update_status(struct phy_device *phydev);
- int phy_wait_aneg_done(struct phy_device *phydev);
- 
- /* Generic PHY support and helper functions */
-+int genphy_soft_reset(struct phy_device *phydev);
- int genphy_config_init(struct phy_device *phydev);
- int genphy_restart_aneg(struct phy_device *phydev);
- int genphy_config_aneg(struct phy_device *phydev);
-diff --git a/include/linux/string_choices.h b/include/linux/string_choices.h
-index 265573343f54..ee84087d4b26 100644
---- a/include/linux/string_choices.h
-+++ b/include/linux/string_choices.h
-@@ -2,8 +2,87 @@
- #ifndef _LINUX_STRING_CHOICES_H_
- #define _LINUX_STRING_CHOICES_H_
- 
-+/*
-+ * Here provide a series of helpers in the str_$TRUE_$FALSE format (you can
-+ * also expand some helpers as needed), where $TRUE and $FALSE are their
-+ * corresponding literal strings. These helpers can be used in the printing
-+ * and also in other places where constant strings are required. Using these
-+ * helpers offers the following benefits:
-+ *  1) Reducing the hardcoding of strings, which makes the code more elegant
-+ *     through these simple literal-meaning helpers.
-+ *  2) Unifying the output, which prevents the same string from being printed
-+ *     in various forms, such as enable/disable, enabled/disabled, en/dis.
-+ *  3) Deduping by the linker, which results in a smaller binary file.
-+ */
-+
- #include <linux/types.h>
- 
-+static inline const char *str_assert_deassert(bool v)
-+{
-+	return v ? "assert" : "deassert";
-+}
-+#define str_deassert_assert(v)		str_assert_deassert(!(v))
-+
-+static inline const char *str_enable_disable(bool v)
-+{
-+	return v ? "enable" : "disable";
-+}
-+#define str_disable_enable(v)		str_enable_disable(!(v))
-+
-+static inline const char *str_enabled_disabled(bool v)
-+{
-+	return v ? "enabled" : "disabled";
-+}
-+#define str_disabled_enabled(v)		str_enabled_disabled(!(v))
-+
-+static inline const char *str_hi_lo(bool v)
-+{
-+	return v ? "hi" : "lo";
-+}
-+#define str_lo_hi(v)		str_hi_lo(!(v))
-+
-+static inline const char *str_high_low(bool v)
-+{
-+	return v ? "high" : "low";
-+}
-+#define str_low_high(v)		str_high_low(!(v))
-+
-+static inline const char *str_input_output(bool v)
-+{
-+	return v ? "input" : "output";
-+}
-+#define str_output_input(v)	str_input_output(!(v))
-+
-+static inline const char *str_on_off(bool v)
-+{
-+	return v ? "on" : "off";
-+}
-+#define str_off_on(v)		str_on_off(!(v))
-+
-+static inline const char *str_read_write(bool v)
-+{
-+	return v ? "read" : "write";
-+}
-+#define str_write_read(v)		str_read_write(!(v))
-+
-+static inline const char *str_true_false(bool v)
-+{
-+	return v ? "true" : "false";
-+}
-+#define str_false_true(v)		str_true_false(!(v))
-+
-+static inline const char *str_up_down(bool v)
-+{
-+	return v ? "up" : "down";
-+}
-+#define str_down_up(v)		str_up_down(!(v))
-+
-+static inline const char *str_yes_no(bool v)
-+{
-+	return v ? "yes" : "no";
-+}
-+#define str_no_yes(v)		str_yes_no(!(v))
-+
- /**
-  * str_plural - Return the simple pluralization based on English counts
-  * @num: Number used for deciding pluralization
--- 
-2.47.3
-
diff --git a/configs/platform-v8a/patches/barebox-2026.01.0/series b/configs/platform-v8a/patches/barebox-2026.01.0/series
deleted file mode 100644
index 12e7d62e2c0d..000000000000
--- a/configs/platform-v8a/patches/barebox-2026.01.0/series
+++ /dev/null
@@ -1 +0,0 @@
-0001-net-phy-realtek-sync-with-Linux-v6.19-state.patch
diff --git a/configs/platform-v8a/platformconfig b/configs/platform-v8a/platformconfig
index 1a9de1f3f65f..f0f917ebb550 100644
--- a/configs/platform-v8a/platformconfig
+++ b/configs/platform-v8a/platformconfig
@@ -182,10 +182,10 @@ PTXCONF_COMPILERPREFIX_R5="arm-v7a-linux-gnueabihf-"
 PTXCONF_BAREBOX_ARCH_STRING="arm"
 PTXCONF_BAREBOX_DEPENDENCIES=y
 PTXCONF_BAREBOX=y
-PTXCONF_BAREBOX_VERSION="2026.01.0"
+PTXCONF_BAREBOX_VERSION="2026.03.1"
 PTXCONF_BAREBOX_CONFIG_BUILDSYSTEM_VERSION=y
 PTXCONF_BAREBOX_BUILDSYSTEM_VERSION="${PTXDIST_VCS_VERSION}"
-PTXCONF_BAREBOX_MD5="82e3fc96c069151779b434043ee0c0e7"
+PTXCONF_BAREBOX_MD5="e87f88499e1f16deb60b0c3bf216df85"
 PTXCONF_BAREBOX_CONFIG="barebox.config"
 PTXCONF_BAREBOX_FIRMWARE=y
 PTXCONF_BAREBOX_EXTRA_ENV=y
-- 
2.47.3




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

* Re: [DistroKit] [PATCH 1/2] reason: correctly allow CONFIG_BOOTM_OFTREE_FALLBACK
  2026-03-25 11:41 [DistroKit] [PATCH 1/2] reason: correctly allow CONFIG_BOOTM_OFTREE_FALLBACK Ahmad Fatoum
  2026-03-25 11:41 ` [DistroKit] [PATCH 2/2] barebox: update to v2026.03.1 Ahmad Fatoum
@ 2026-03-25 13:10 ` Robert Schwebel
  1 sibling, 0 replies; 3+ messages in thread
From: Robert Schwebel @ 2026-03-25 13:10 UTC (permalink / raw)
  To: Ahmad Fatoum; +Cc: distrokit

applied series to next

On Wed, Mar 25, 2026 at 12:41:29PM +0100, Ahmad Fatoum wrote:
> The QA override couldn't work for several reasons:
> 
>   - We set CONFIG_NAME to different values like e.g. distrokit_v7a_old_defconfig
>     or distrokit_v8a_defconfig
> 
>   - barebox_oftree_fallback is not a boolean, so the override is
>     incorrect
> 
> The argument in the override applies to all platforms, so let's fix
> these issues and mandate CONFIG_BOOTM_OFTREE_FALLBACK=y independent
> of the platforms. While at it, also fix a typo in the description.
> 
> Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
> ---
>  configs/bsp.ref | 14 +++++---------
>  1 file changed, 5 insertions(+), 9 deletions(-)
> 
> diff --git a/configs/bsp.ref b/configs/bsp.ref
> index e8c33d259116..934c99c262c5 100644
> --- a/configs/bsp.ref
> +++ b/configs/bsp.ref
> @@ -46,15 +46,11 @@ barebox_oftree_fallback:
>      for use in production as DT binding breakage is not an infrequent
>      occurrence.
>  
> -    We take in DistroKit though to specify the DT when we specify a kernel,
> -    so enable this option as it's occasionally helpful for quick debugging.
> -  variants:
> -    - condition: |
> -        kconfig.have_barebox_config() and
> -        (kconfig.BareboxConfig()['CONFIG_NAME'] == "multi_v7_defconfig" or
> -        kconfig.BareboxConfig()['CONFIG_NAME'] == "multi_v8_defconfig")
> -      value: False
> -    - value: True
> +    We take care in DistroKit though to specify the DT when we specify
> +    a kernel, so enable this option as it's occasionally helpful for quick
> +    debugging.
> +  present:
> +    - BOOTM_OFTREE_FALLBACK
>  
>  barebox_arm_optimized_string_functions:
>    description: |
> -- 
> 2.47.3
> 
> 
> 

-- 
Pengutronix e.K.                           | Dipl.-Ing. Robert Schwebel  |
Steuerwalder Str. 21                       | https://www.pengutronix.de/ |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-9    |



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

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

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-03-25 11:41 [DistroKit] [PATCH 1/2] reason: correctly allow CONFIG_BOOTM_OFTREE_FALLBACK Ahmad Fatoum
2026-03-25 11:41 ` [DistroKit] [PATCH 2/2] barebox: update to v2026.03.1 Ahmad Fatoum
2026-03-25 13:10 ` [DistroKit] [PATCH 1/2] reason: correctly allow CONFIG_BOOTM_OFTREE_FALLBACK Robert Schwebel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox