DistroKit Mailinglist
 help / color / mirror / Atom feed
* [DistroKit] [PATCH 0/8] barebox: update to v2026.01.0 and extend config
@ 2026-01-21  8:06 Ahmad Fatoum
  2026-01-21  8:06 ` [DistroKit] [PATCH 1/8] barebox: set CONFIG_NAME across all platforms Ahmad Fatoum
                   ` (7 more replies)
  0 siblings, 8 replies; 9+ messages in thread
From: Ahmad Fatoum @ 2026-01-21  8:06 UTC (permalink / raw)
  To: distrokit; +Cc: Ahmad Fatoum

Update to the new barebox release and enable some arguably useful
configuration options for development.

Ahmad Fatoum (8):
  barebox: set CONFIG_NAME across all platforms
  barebox: update barebox v2025.11.0 -> v2026.01.0
  barebox: enable some useful interactive tools
  v8a: barebox: enable Rockchip power domain driver
  barebox: enable bootloader dm-verity support
  barebox: enable oftree fallback
  barebox: r5: disable CONFIG_DEBUG_PROBES
  v8a: barebox: patch in support for BeaglePlay RTL8211F-VD Ethernet PHY

 configs/bsp.ref                               |  17 +
 .../platform-v7a/barebox-am335x-mlo.config    |  10 +-
 configs/platform-v7a/barebox-at91.config      |  13 +-
 configs/platform-v7a/barebox-at91.config.diff |   5 +-
 configs/platform-v7a/barebox-common.config    |  13 +-
 configs/platform-v7a/barebox.config           |  32 +-
 configs/platform-v7a/platformconfig           |   8 +-
 .../platform-v7a_noneon/barebox-at91.config   |  13 +-
 .../barebox-at91.config.diff                  |   5 +-
 .../platform-v7a_noneon/barebox-common.config |  13 +-
 .../barebox-vexpress.config                   |  13 +-
 .../barebox-vexpress.config.diff              |   5 +-
 configs/platform-v7a_noneon/platformconfig    |   4 +-
 configs/platform-v8a/barebox-r5.config        |  11 +-
 configs/platform-v8a/barebox.config           |  37 +-
 .../0001-ARM-i-MX93-reinstate-aliases.patch   |  62 --
 .../patches/barebox-2025.11.0/series          |   1 -
 ...-realtek-sync-with-Linux-v6.19-state.patch | 863 ++++++++++++++++++
 .../patches/barebox-2026.01.0/series          |   1 +
 configs/platform-v8a/platformconfig           |   4 +-
 20 files changed, 1014 insertions(+), 116 deletions(-)
 delete mode 100644 configs/platform-v8a/patches/barebox-2025.11.0/0001-ARM-i-MX93-reinstate-aliases.patch
 delete mode 100644 configs/platform-v8a/patches/barebox-2025.11.0/series
 create mode 100644 configs/platform-v8a/patches/barebox-2026.01.0/0001-net-phy-realtek-sync-with-Linux-v6.19-state.patch
 create mode 100644 configs/platform-v8a/patches/barebox-2026.01.0/series

-- 
2.47.3




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

* [DistroKit] [PATCH 1/8] barebox: set CONFIG_NAME across all platforms
  2026-01-21  8:06 [DistroKit] [PATCH 0/8] barebox: update to v2026.01.0 and extend config Ahmad Fatoum
@ 2026-01-21  8:06 ` Ahmad Fatoum
  2026-01-21  8:06 ` [DistroKit] [PATCH 2/8] barebox: update barebox v2025.11.0 -> v2026.01.0 Ahmad Fatoum
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: Ahmad Fatoum @ 2026-01-21  8:06 UTC (permalink / raw)
  To: distrokit; +Cc: Ahmad Fatoum

If set, CONFIG_NAME will be included in the version output and makes it
useful to record, which config was used in lieu of including the full
config into the binary with CONFIG_DEFAULT_ENVIRONMENT_GENERIC_NEW_IKCONFIG.

Populate the option with some descriptive names.

Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
---
 configs/platform-v7a/barebox-am335x-mlo.config           | 2 +-
 configs/platform-v7a/barebox-at91.config                 | 2 +-
 configs/platform-v7a/barebox-at91.config.diff            | 5 +++--
 configs/platform-v7a/barebox-common.config               | 2 +-
 configs/platform-v7a/barebox.config                      | 2 +-
 configs/platform-v7a_noneon/barebox-at91.config          | 2 +-
 configs/platform-v7a_noneon/barebox-at91.config.diff     | 5 +++--
 configs/platform-v7a_noneon/barebox-common.config        | 2 +-
 configs/platform-v7a_noneon/barebox-vexpress.config      | 2 +-
 configs/platform-v7a_noneon/barebox-vexpress.config.diff | 5 +++--
 configs/platform-v8a/barebox-r5.config                   | 2 +-
 configs/platform-v8a/barebox.config                      | 2 +-
 12 files changed, 18 insertions(+), 15 deletions(-)

diff --git a/configs/platform-v7a/barebox-am335x-mlo.config b/configs/platform-v7a/barebox-am335x-mlo.config
index dd43510b3bd6..f957e8014d7b 100644
--- a/configs/platform-v7a/barebox-am335x-mlo.config
+++ b/configs/platform-v7a/barebox-am335x-mlo.config
@@ -110,7 +110,7 @@ CONFIG_FILETYPE=y
 #
 # General Settings
 #
-CONFIG_NAME=""
+CONFIG_NAME="distrokit_v7a_am335x-mlo_defconfig"
 CONFIG_LOCALVERSION=""
 CONFIG_LOCALVERSION_AUTO=y
 CONFIG_BANNER=y
diff --git a/configs/platform-v7a/barebox-at91.config b/configs/platform-v7a/barebox-at91.config
index 60fb6407d9e0..3fb8b474aaa9 100644
--- a/configs/platform-v7a/barebox-at91.config
+++ b/configs/platform-v7a/barebox-at91.config
@@ -139,7 +139,7 @@ CONFIG_FASTBOOT_BASE=y
 #
 # General Settings
 #
-CONFIG_NAME=""
+CONFIG_NAME="distrokit_at91_defconfig"
 CONFIG_LOCALVERSION=""
 CONFIG_LOCALVERSION_AUTO=y
 CONFIG_BANNER=y
diff --git a/configs/platform-v7a/barebox-at91.config.diff b/configs/platform-v7a/barebox-at91.config.diff
index f501f95e6ea3..1cd9a8b74325 100644
--- a/configs/platform-v7a/barebox-at91.config.diff
+++ b/configs/platform-v7a/barebox-at91.config.diff
@@ -1,5 +1,5 @@
-445506e48e2d8f70000b83a6e0995a81
-3f95cbdc12cc7c160581869f264d13cf
+ca6011deee1930593907217f67d92267
+620410494642035db8d626820a0d8e30
 CONFIG_ARCH_AT91=y
 # CONFIG_ARCH_BCM283X is not set
 # CONFIG_ARCH_IMX is undefined
@@ -118,6 +118,7 @@ CONFIG_MTD_UBI_BEB_LIMIT=20
 # CONFIG_MTD_UBI_CHECK_IO is not set
 CONFIG_MTD_UBI_FASTMAP=y
 # CONFIG_MTD_UBI_GENERAL_EXTRA_CHECKS is not set
+CONFIG_NAME="distrokit_at91_defconfig"
 CONFIG_NAND=y
 # CONFIG_NAND_ALLOW_ERASE_BAD is not set
 CONFIG_NAND_ATMEL=y
diff --git a/configs/platform-v7a/barebox-common.config b/configs/platform-v7a/barebox-common.config
index e0b3030dd331..503ed62c8f16 100644
--- a/configs/platform-v7a/barebox-common.config
+++ b/configs/platform-v7a/barebox-common.config
@@ -124,7 +124,7 @@ CONFIG_FASTBOOT_BASE=y
 #
 # General Settings
 #
-CONFIG_NAME=""
+CONFIG_NAME="distrokit_v7a_old_defconfig"
 CONFIG_LOCALVERSION=""
 CONFIG_LOCALVERSION_AUTO=y
 CONFIG_BANNER=y
diff --git a/configs/platform-v7a/barebox.config b/configs/platform-v7a/barebox.config
index 9b3cff897610..299273ba1df4 100644
--- a/configs/platform-v7a/barebox.config
+++ b/configs/platform-v7a/barebox.config
@@ -280,7 +280,7 @@ CONFIG_FASTBOOT_BASE=y
 #
 # General Settings
 #
-CONFIG_NAME=""
+CONFIG_NAME="distrokit_v7a_defconfig"
 CONFIG_LOCALVERSION=""
 CONFIG_LOCALVERSION_AUTO=y
 CONFIG_BANNER=y
diff --git a/configs/platform-v7a_noneon/barebox-at91.config b/configs/platform-v7a_noneon/barebox-at91.config
index 12042642b575..254d8e282c5d 100644
--- a/configs/platform-v7a_noneon/barebox-at91.config
+++ b/configs/platform-v7a_noneon/barebox-at91.config
@@ -131,7 +131,7 @@ CONFIG_FASTBOOT_BASE=y
 #
 # General Settings
 #
-CONFIG_NAME=""
+CONFIG_NAME="distrokit_v7a_noneon_at91_defconfig"
 CONFIG_LOCALVERSION=""
 CONFIG_LOCALVERSION_AUTO=y
 CONFIG_BANNER=y
diff --git a/configs/platform-v7a_noneon/barebox-at91.config.diff b/configs/platform-v7a_noneon/barebox-at91.config.diff
index 38413d6bf0bf..bf9ac919953f 100644
--- a/configs/platform-v7a_noneon/barebox-at91.config.diff
+++ b/configs/platform-v7a_noneon/barebox-at91.config.diff
@@ -1,5 +1,5 @@
-2765a97374765a3a75729531a1584703
-63f888732cb773e19b38931e5d92b85d
+a51c6a6da229e3821798f6e72b78924c
+c4dde5f868dc2aa9bdee59f3f11c67d6
 CONFIG_ARCH_AT91=y
 # CONFIG_ARCH_BCM283X is not set
 # CONFIG_ARCH_IMX is undefined
@@ -141,6 +141,7 @@ CONFIG_MTD_UBI_BEB_LIMIT=20
 # CONFIG_MTD_UBI_CHECK_IO is not set
 # CONFIG_MTD_UBI_FASTMAP is not set
 # CONFIG_MTD_UBI_GENERAL_EXTRA_CHECKS is not set
+CONFIG_NAME="distrokit_v7a_noneon_at91_defconfig"
 CONFIG_NAND=y
 # CONFIG_NAND_ALLOW_ERASE_BAD is not set
 CONFIG_NAND_ATMEL=y
diff --git a/configs/platform-v7a_noneon/barebox-common.config b/configs/platform-v7a_noneon/barebox-common.config
index 35d7f43758a1..459382821569 100644
--- a/configs/platform-v7a_noneon/barebox-common.config
+++ b/configs/platform-v7a_noneon/barebox-common.config
@@ -122,7 +122,7 @@ CONFIG_FASTBOOT_BASE=y
 #
 # General Settings
 #
-CONFIG_NAME=""
+CONFIG_NAME="distrokit_v7a_noneon_defconfig"
 CONFIG_LOCALVERSION=""
 CONFIG_LOCALVERSION_AUTO=y
 CONFIG_BANNER=y
diff --git a/configs/platform-v7a_noneon/barebox-vexpress.config b/configs/platform-v7a_noneon/barebox-vexpress.config
index 98d93eeaa712..3680bcfb4265 100644
--- a/configs/platform-v7a_noneon/barebox-vexpress.config
+++ b/configs/platform-v7a_noneon/barebox-vexpress.config
@@ -108,7 +108,7 @@ CONFIG_FASTBOOT_BASE=y
 #
 # General Settings
 #
-CONFIG_NAME=""
+CONFIG_NAME="distrokit_v7a_noneon_vexpress_defconfig"
 CONFIG_LOCALVERSION=""
 CONFIG_LOCALVERSION_AUTO=y
 CONFIG_BANNER=y
diff --git a/configs/platform-v7a_noneon/barebox-vexpress.config.diff b/configs/platform-v7a_noneon/barebox-vexpress.config.diff
index 1e19e631c758..db1274d964f8 100644
--- a/configs/platform-v7a_noneon/barebox-vexpress.config.diff
+++ b/configs/platform-v7a_noneon/barebox-vexpress.config.diff
@@ -1,5 +1,5 @@
-2765a97374765a3a75729531a1584703
-4366284115d8d74faf1d5670a3aa9981
+a51c6a6da229e3821798f6e72b78924c
+16bc2743d6104bb4f4e4d34b6f364af7
 CONFIG_AMBA_SP804=y
 # CONFIG_ARCH_BCM283X is not set
 CONFIG_ARCH_VEXPRESS=y
@@ -61,6 +61,7 @@ CONFIG_MACH_VEXPRESS=y
 # CONFIG_MCI_BCM283X_SDHOST is undefined
 # CONFIG_MDIO_BUS_MUX_GPIO is undefined
 CONFIG_MTD_CONCAT=y
+CONFIG_NAME="distrokit_v7a_noneon_vexpress_defconfig"
 # CONFIG_OF_GPIO is undefined
 CONFIG_PBL_CONSOLE=y
 # CONFIG_PINCTRL_BCM283X is undefined
diff --git a/configs/platform-v8a/barebox-r5.config b/configs/platform-v8a/barebox-r5.config
index 702f6e37d9e8..18ba97daa5d9 100644
--- a/configs/platform-v8a/barebox-r5.config
+++ b/configs/platform-v8a/barebox-r5.config
@@ -105,7 +105,7 @@ CONFIG_FILETYPE=y
 #
 # General Settings
 #
-CONFIG_NAME=""
+CONFIG_NAME="distrokit_v8a_r5_defconfig"
 CONFIG_LOCALVERSION=""
 CONFIG_LOCALVERSION_AUTO=y
 CONFIG_BANNER=y
diff --git a/configs/platform-v8a/barebox.config b/configs/platform-v8a/barebox.config
index 4cb176f702dd..e9e5f8239b5f 100644
--- a/configs/platform-v8a/barebox.config
+++ b/configs/platform-v8a/barebox.config
@@ -203,7 +203,7 @@ CONFIG_FASTBOOT_BASE=y
 #
 # General Settings
 #
-CONFIG_NAME=""
+CONFIG_NAME="distrokit_v8a_defconfig"
 CONFIG_LOCALVERSION=""
 CONFIG_LOCALVERSION_AUTO=y
 CONFIG_BANNER=y
-- 
2.47.3




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

* [DistroKit] [PATCH 2/8] barebox: update barebox v2025.11.0 -> v2026.01.0
  2026-01-21  8:06 [DistroKit] [PATCH 0/8] barebox: update to v2026.01.0 and extend config Ahmad Fatoum
  2026-01-21  8:06 ` [DistroKit] [PATCH 1/8] barebox: set CONFIG_NAME across all platforms Ahmad Fatoum
@ 2026-01-21  8:06 ` Ahmad Fatoum
  2026-01-21  8:06 ` [DistroKit] [PATCH 3/8] barebox: enable some useful interactive tools Ahmad Fatoum
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: Ahmad Fatoum @ 2026-01-21  8:06 UTC (permalink / raw)
  To: distrokit; +Cc: Ahmad Fatoum

The config changes are exactly the defaults. We will want to enable some
of the new options though, but that will follow in a separate commit.

Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
---
 .../platform-v7a/barebox-am335x-mlo.config    |  8 ++-
 configs/platform-v7a/barebox-at91.config      | 11 +++-
 configs/platform-v7a/barebox-at91.config.diff |  4 +-
 configs/platform-v7a/barebox-common.config    | 11 +++-
 configs/platform-v7a/barebox.config           | 15 ++++-
 configs/platform-v7a/platformconfig           |  8 +--
 .../platform-v7a_noneon/barebox-at91.config   | 11 +++-
 .../barebox-at91.config.diff                  |  4 +-
 .../platform-v7a_noneon/barebox-common.config | 11 +++-
 .../barebox-vexpress.config                   | 11 +++-
 .../barebox-vexpress.config.diff              |  4 +-
 configs/platform-v7a_noneon/platformconfig    |  4 +-
 configs/platform-v8a/barebox-r5.config        |  7 ++-
 configs/platform-v8a/barebox.config           | 20 +++++-
 .../0001-ARM-i-MX93-reinstate-aliases.patch   | 62 -------------------
 .../patches/barebox-2025.11.0/series          |  1 -
 configs/platform-v8a/platformconfig           |  4 +-
 17 files changed, 100 insertions(+), 96 deletions(-)
 delete mode 100644 configs/platform-v8a/patches/barebox-2025.11.0/0001-ARM-i-MX93-reinstate-aliases.patch
 delete mode 100644 configs/platform-v8a/patches/barebox-2025.11.0/series

diff --git a/configs/platform-v7a/barebox-am335x-mlo.config b/configs/platform-v7a/barebox-am335x-mlo.config
index f957e8014d7b..b5752601e7de 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 2025.11.0 Configuration
+# Barebox/arm 2026.01.0 Configuration
 #
 CONFIG_ARM=y
 CONFIG_ARCH_LINUX_NAME="arm"
@@ -95,6 +95,8 @@ CONFIG_HAVE_ARCH_BOARD_GENERIC_DT=y
 CONFIG_HAVE_ARCH_BOOTM_OFTREE=y
 CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
 CONFIG_ARCH_HAS_SJLJ=y
+CONFIG_HAVE_EFI_STUB=y
+CONFIG_HAVE_EFI_LOADER=y
 CONFIG_HAS_DEBUG_LL=y
 CONFIG_HAVE_ARCH_KASAN=y
 CONFIG_CC_IS_GCC=y
@@ -176,6 +178,8 @@ CONFIG_CONSOLE_ACTIVATE_NONE=y
 CONFIG_CONSOLE_ALLOW_COLOR=y
 # CONFIG_CONSOLE_DISABLE_INPUT is not set
 # CONFIG_PBL_CONSOLE is not set
+CONFIG_BUG=y
+CONFIG_DEBUG_BUGVERBOSE=y
 CONFIG_PARTITION=y
 CONFIG_PARTITION_DISK=y
 CONFIG_PARTITION_DISK_DOS=y
@@ -222,7 +226,7 @@ CONFIG_CC_HAS_KASAN_GENERIC=y
 #
 # EFI (Extensible Firmware Interface) Support
 #
-CONFIG_HAVE_EFI_STUB=y
+# CONFIG_EFI_LOADER is not set
 # end of EFI (Extensible Firmware Interface) Support
 
 # CONFIG_NET is not set
diff --git a/configs/platform-v7a/barebox-at91.config b/configs/platform-v7a/barebox-at91.config
index 3fb8b474aaa9..c8a355596bb0 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 2025.11.0 Configuration
+# Barebox/arm 2026.01.0 Configuration
 #
 CONFIG_ARM=y
 CONFIG_ARCH_LINUX_NAME="arm"
@@ -111,6 +111,8 @@ CONFIG_HAVE_ARCH_BOARD_GENERIC_DT=y
 CONFIG_HAVE_ARCH_BOOTM_OFTREE=y
 CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
 CONFIG_ARCH_HAS_SJLJ=y
+CONFIG_HAVE_EFI_STUB=y
+CONFIG_HAVE_EFI_LOADER=y
 CONFIG_HAS_DEBUG_LL=y
 CONFIG_HAVE_ARCH_KASAN=y
 CONFIG_CC_IS_GCC=y
@@ -230,12 +232,15 @@ CONFIG_CONSOLE_ACTIVATE_NONE=y
 CONFIG_CONSOLE_ALLOW_COLOR=y
 # CONFIG_CONSOLE_DISABLE_INPUT is not set
 CONFIG_PBL_CONSOLE=y
+CONFIG_BUG=y
+CONFIG_DEBUG_BUGVERBOSE=y
 # CONFIG_CONSOLE_RATP is not set
 CONFIG_PARTITION=y
 CONFIG_PARTITION_MANIPULATION=y
 CONFIG_PARTITION_DISK=y
 CONFIG_PARTITION_DISK_DOS=y
 CONFIG_PARTITION_DISK_EFI=y
+# CONFIG_PARTITION_DISK_EFI_REFRESH is not set
 CONFIG_PARTITION_DISK_EFI_GPT_NO_FORCE=y
 CONFIG_PARTITION_DISK_EFI_GPT_COMPARE=y
 CONFIG_ENV_HANDLING=y
@@ -300,7 +305,7 @@ CONFIG_CC_HAS_KASAN_GENERIC=y
 #
 # EFI (Extensible Firmware Interface) Support
 #
-CONFIG_HAVE_EFI_STUB=y
+# CONFIG_EFI_LOADER is not set
 # end of EFI (Extensible Firmware Interface) Support
 
 CONFIG_COMMAND_SUPPORT=y
@@ -404,6 +409,7 @@ CONFIG_CMD_TREE=y
 # CONFIG_CMD_STAT is not set
 CONFIG_CMD_MD5SUM=y
 CONFIG_CMD_MKDIR=y
+# CONFIG_CMD_MKNOD is not set
 CONFIG_CMD_PWD=y
 CONFIG_CMD_READLINK=y
 CONFIG_CMD_RM=y
@@ -883,6 +889,7 @@ CONFIG_GPIOLIB=y
 # Pin controllers
 #
 CONFIG_PINCTRL=y
+# CONFIG_PINCTRL_STATE_PARAM is not set
 CONFIG_PINCTRL_AT91=y
 CONFIG_PINCTRL_AT91PIO4=y
 # CONFIG_PINCTRL_SINGLE is not set
diff --git a/configs/platform-v7a/barebox-at91.config.diff b/configs/platform-v7a/barebox-at91.config.diff
index 1cd9a8b74325..39e8d1232b5e 100644
--- a/configs/platform-v7a/barebox-at91.config.diff
+++ b/configs/platform-v7a/barebox-at91.config.diff
@@ -1,5 +1,5 @@
-ca6011deee1930593907217f67d92267
-620410494642035db8d626820a0d8e30
+33645a543f98b4eb6afc7979d845f99d
+40286c802664a52b285c0664cd619545
 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 503ed62c8f16..b75c4cb9932b 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 2025.11.0 Configuration
+# Barebox/arm 2026.01.0 Configuration
 #
 CONFIG_ARM=y
 CONFIG_ARCH_LINUX_NAME="arm"
@@ -97,6 +97,8 @@ CONFIG_HAVE_ARCH_BOARD_GENERIC_DT=y
 CONFIG_HAVE_ARCH_BOOTM_OFTREE=y
 CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
 CONFIG_ARCH_HAS_SJLJ=y
+CONFIG_HAVE_EFI_STUB=y
+CONFIG_HAVE_EFI_LOADER=y
 CONFIG_HAS_DEBUG_LL=y
 CONFIG_HAVE_ARCH_KASAN=y
 CONFIG_CC_IS_GCC=y
@@ -215,12 +217,15 @@ CONFIG_CONSOLE_ACTIVATE_NONE=y
 CONFIG_CONSOLE_ALLOW_COLOR=y
 # CONFIG_CONSOLE_DISABLE_INPUT is not set
 # CONFIG_PBL_CONSOLE is not set
+CONFIG_BUG=y
+CONFIG_DEBUG_BUGVERBOSE=y
 # CONFIG_CONSOLE_RATP is not set
 CONFIG_PARTITION=y
 CONFIG_PARTITION_MANIPULATION=y
 CONFIG_PARTITION_DISK=y
 CONFIG_PARTITION_DISK_DOS=y
 CONFIG_PARTITION_DISK_EFI=y
+# CONFIG_PARTITION_DISK_EFI_REFRESH is not set
 CONFIG_PARTITION_DISK_EFI_GPT_NO_FORCE=y
 CONFIG_PARTITION_DISK_EFI_GPT_COMPARE=y
 CONFIG_ENV_HANDLING=y
@@ -283,7 +288,7 @@ CONFIG_CC_HAS_KASAN_GENERIC=y
 #
 # EFI (Extensible Firmware Interface) Support
 #
-CONFIG_HAVE_EFI_STUB=y
+# CONFIG_EFI_LOADER is not set
 # end of EFI (Extensible Firmware Interface) Support
 
 CONFIG_COMMAND_SUPPORT=y
@@ -382,6 +387,7 @@ CONFIG_CMD_TREE=y
 # CONFIG_CMD_STAT is not set
 CONFIG_CMD_MD5SUM=y
 CONFIG_CMD_MKDIR=y
+# CONFIG_CMD_MKNOD is not set
 CONFIG_CMD_PWD=y
 CONFIG_CMD_READLINK=y
 CONFIG_CMD_RM=y
@@ -848,6 +854,7 @@ CONFIG_GPIOLIB=y
 # Pin controllers
 #
 CONFIG_PINCTRL=y
+# CONFIG_PINCTRL_STATE_PARAM is not set
 # CONFIG_PINCTRL_BCM283X is not set
 # CONFIG_PINCTRL_SINGLE is not set
 # end of Pin controllers
diff --git a/configs/platform-v7a/barebox.config b/configs/platform-v7a/barebox.config
index 299273ba1df4..0d92ef07e7dd 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 2025.11.0 Configuration
+# Barebox/arm 2026.01.0 Configuration
 #
 CONFIG_ARM=y
 CONFIG_ARCH_LINUX_NAME="arm"
@@ -114,6 +114,7 @@ CONFIG_ARCH_IMX6UL=y
 # i.MX6 boards
 #
 # CONFIG_MACH_ADVANTECH_ROM_742X is not set
+# CONFIG_MACH_KINDLE_6_7 is not set
 CONFIG_MACH_NITROGEN6=y
 # CONFIG_MACH_CM_FX6 is not set
 # CONFIG_MACH_REALQ7 is not set
@@ -204,6 +205,7 @@ CONFIG_MACH_STM32MP15XX_DKX=y
 CONFIG_MACH_LXA_MC1=y
 # CONFIG_MACH_LXA_TAC is not set
 # CONFIG_MACH_LXA_FAIRYTUX2 is not set
+# CONFIG_MACH_DHCOR_STM32MP1 is not set
 # CONFIG_MACH_SEEED_ODYSSEY is not set
 CONFIG_MACH_STM32MP15X_EV1=y
 # CONFIG_MACH_PROTONIC_STM32MP1 is not set
@@ -252,6 +254,8 @@ CONFIG_HAVE_ARCH_BOARD_GENERIC_DT=y
 CONFIG_HAVE_ARCH_BOOTM_OFTREE=y
 CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
 CONFIG_ARCH_HAS_SJLJ=y
+CONFIG_HAVE_EFI_STUB=y
+CONFIG_HAVE_EFI_LOADER=y
 CONFIG_HAS_DEBUG_LL=y
 CONFIG_HAVE_ARCH_KASAN=y
 CONFIG_CC_IS_GCC=y
@@ -372,12 +376,15 @@ CONFIG_CONSOLE_ACTIVATE_NONE=y
 CONFIG_CONSOLE_ALLOW_COLOR=y
 # CONFIG_CONSOLE_DISABLE_INPUT is not set
 CONFIG_PBL_CONSOLE=y
+CONFIG_BUG=y
+CONFIG_DEBUG_BUGVERBOSE=y
 # CONFIG_CONSOLE_RATP is not set
 CONFIG_PARTITION=y
 CONFIG_PARTITION_MANIPULATION=y
 CONFIG_PARTITION_DISK=y
 CONFIG_PARTITION_DISK_DOS=y
 CONFIG_PARTITION_DISK_EFI=y
+# CONFIG_PARTITION_DISK_EFI_REFRESH is not set
 CONFIG_PARTITION_DISK_EFI_GPT_NO_FORCE=y
 CONFIG_PARTITION_DISK_EFI_GPT_COMPARE=y
 CONFIG_ENV_HANDLING=y
@@ -401,6 +408,7 @@ CONFIG_BOOT_DEFAULTS=y
 CONFIG_BAREBOX_DT_2ND=y
 CONFIG_RESET_SOURCE=y
 CONFIG_MACHINE_ID=y
+CONFIG_MACHINE_ID_SPECIFIC=y
 # CONFIG_SERIAL_NUMBER_FIXUP_SYSTEMD_HOSTNAME is not set
 # CONFIG_SYSTEMD_OF_WATCHDOG is not set
 CONFIG_EXTERNAL_DTS_FRAGMENTS="${PTXDIST_PLATFORMCONFIGDIR}/dts/bootstate.dtsi"
@@ -444,7 +452,7 @@ CONFIG_CC_HAS_KASAN_GENERIC=y
 #
 # EFI (Extensible Firmware Interface) Support
 #
-CONFIG_HAVE_EFI_STUB=y
+# CONFIG_EFI_LOADER is not set
 # end of EFI (Extensible Firmware Interface) Support
 
 CONFIG_COMMAND_SUPPORT=y
@@ -547,6 +555,7 @@ CONFIG_CMD_TREE=y
 # CONFIG_CMD_STAT is not set
 CONFIG_CMD_MD5SUM=y
 CONFIG_CMD_MKDIR=y
+# CONFIG_CMD_MKNOD is not set
 CONFIG_CMD_PWD=y
 CONFIG_CMD_READLINK=y
 CONFIG_CMD_RM=y
@@ -977,6 +986,7 @@ CONFIG_DRIVER_VIDEO_SIMPLEFB=y
 # CONFIG_DRIVER_VIDEO_PANEL_MIPI_DBI is not set
 # CONFIG_DRIVER_VIDEO_DW_HDMI is not set
 # CONFIG_DRIVER_VIDEO_DW_MIPI_DSI is not set
+# CONFIG_DRIVER_VIDEO_FSL_LDB is not set
 # CONFIG_SOUND is not set
 CONFIG_MCI_SDHCI=y
 CONFIG_MCI=y
@@ -1161,6 +1171,7 @@ CONFIG_GPIO_RASPBERRYPI_EXP=y
 # Pin controllers
 #
 CONFIG_PINCTRL=y
+# CONFIG_PINCTRL_STATE_PARAM is not set
 CONFIG_PINCTRL_BCM283X=y
 CONFIG_PINCTRL_IMX_IOMUX_V3=y
 CONFIG_PINCTRL_SINGLE=y
diff --git a/configs/platform-v7a/platformconfig b/configs/platform-v7a/platformconfig
index f3b380cfaee3..5156e51b5c61 100644
--- a/configs/platform-v7a/platformconfig
+++ b/configs/platform-v7a/platformconfig
@@ -185,18 +185,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="2025.11.0"
-PTXCONF_BAREBOX_COMMON_MD5="867dea758c6ea8b350bac57009235e88"
+PTXCONF_BAREBOX_COMMON_VERSION="2026.01.0"
+PTXCONF_BAREBOX_COMMON_MD5="82e3fc96c069151779b434043ee0c0e7"
 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="2025.11.0"
+PTXCONF_BAREBOX_VERSION="2026.01.0"
 PTXCONF_BAREBOX_CONFIG_BUILDSYSTEM_VERSION=y
 PTXCONF_BAREBOX_BUILDSYSTEM_VERSION="${PTXDIST_VCS_VERSION}"
-PTXCONF_BAREBOX_MD5="867dea758c6ea8b350bac57009235e88"
+PTXCONF_BAREBOX_MD5="82e3fc96c069151779b434043ee0c0e7"
 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 254d8e282c5d..2ac855fa75c6 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 2025.11.0 Configuration
+# Barebox/arm 2026.01.0 Configuration
 #
 CONFIG_ARM=y
 CONFIG_ARCH_LINUX_NAME="arm"
@@ -106,6 +106,8 @@ CONFIG_HAVE_ARCH_BOARD_GENERIC_DT=y
 CONFIG_HAVE_ARCH_BOOTM_OFTREE=y
 CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
 CONFIG_ARCH_HAS_SJLJ=y
+CONFIG_HAVE_EFI_STUB=y
+CONFIG_HAVE_EFI_LOADER=y
 CONFIG_HAS_DEBUG_LL=y
 CONFIG_HAVE_ARCH_KASAN=y
 CONFIG_CC_IS_GCC=y
@@ -217,12 +219,15 @@ CONFIG_CONSOLE_ACTIVATE_ALL_FALLBACK=y
 CONFIG_CONSOLE_ALLOW_COLOR=y
 # CONFIG_CONSOLE_DISABLE_INPUT is not set
 CONFIG_PBL_CONSOLE=y
+CONFIG_BUG=y
+CONFIG_DEBUG_BUGVERBOSE=y
 # CONFIG_CONSOLE_RATP is not set
 CONFIG_PARTITION=y
 CONFIG_PARTITION_MANIPULATION=y
 CONFIG_PARTITION_DISK=y
 CONFIG_PARTITION_DISK_DOS=y
 CONFIG_PARTITION_DISK_EFI=y
+# CONFIG_PARTITION_DISK_EFI_REFRESH is not set
 CONFIG_PARTITION_DISK_EFI_GPT_NO_FORCE=y
 CONFIG_PARTITION_DISK_EFI_GPT_COMPARE=y
 CONFIG_ENV_HANDLING=y
@@ -283,7 +288,7 @@ CONFIG_CC_HAS_KASAN_GENERIC=y
 #
 # EFI (Extensible Firmware Interface) Support
 #
-CONFIG_HAVE_EFI_STUB=y
+# CONFIG_EFI_LOADER is not set
 # end of EFI (Extensible Firmware Interface) Support
 
 CONFIG_COMMAND_SUPPORT=y
@@ -385,6 +390,7 @@ CONFIG_CMD_TREE=y
 # CONFIG_CMD_STAT is not set
 CONFIG_CMD_MD5SUM=y
 CONFIG_CMD_MKDIR=y
+# CONFIG_CMD_MKNOD is not set
 CONFIG_CMD_PWD=y
 CONFIG_CMD_READLINK=y
 CONFIG_CMD_RM=y
@@ -898,6 +904,7 @@ CONFIG_W1=y
 # Pin controllers
 #
 CONFIG_PINCTRL=y
+# CONFIG_PINCTRL_STATE_PARAM is not set
 CONFIG_PINCTRL_AT91=y
 CONFIG_PINCTRL_AT91PIO4=y
 # CONFIG_PINCTRL_SINGLE is not set
diff --git a/configs/platform-v7a_noneon/barebox-at91.config.diff b/configs/platform-v7a_noneon/barebox-at91.config.diff
index bf9ac919953f..1bf1975f0555 100644
--- a/configs/platform-v7a_noneon/barebox-at91.config.diff
+++ b/configs/platform-v7a_noneon/barebox-at91.config.diff
@@ -1,5 +1,5 @@
-a51c6a6da229e3821798f6e72b78924c
-c4dde5f868dc2aa9bdee59f3f11c67d6
+3028fb8f9e4ad715e0327e2fed1c70eb
+21d31e1a43d39e4f50312e822c134377
 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 459382821569..a8931c980897 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 2025.11.0 Configuration
+# Barebox/arm 2026.01.0 Configuration
 #
 CONFIG_ARM=y
 CONFIG_ARCH_LINUX_NAME="arm"
@@ -97,6 +97,8 @@ CONFIG_HAVE_ARCH_BOARD_GENERIC_DT=y
 CONFIG_HAVE_ARCH_BOOTM_OFTREE=y
 CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
 CONFIG_ARCH_HAS_SJLJ=y
+CONFIG_HAVE_EFI_STUB=y
+CONFIG_HAVE_EFI_LOADER=y
 CONFIG_HAS_DEBUG_LL=y
 CONFIG_HAVE_ARCH_KASAN=y
 CONFIG_CC_IS_GCC=y
@@ -211,12 +213,15 @@ CONFIG_CONSOLE_ACTIVATE_ALL_FALLBACK=y
 CONFIG_CONSOLE_ALLOW_COLOR=y
 # CONFIG_CONSOLE_DISABLE_INPUT is not set
 # CONFIG_PBL_CONSOLE is not set
+CONFIG_BUG=y
+CONFIG_DEBUG_BUGVERBOSE=y
 # CONFIG_CONSOLE_RATP is not set
 CONFIG_PARTITION=y
 CONFIG_PARTITION_MANIPULATION=y
 CONFIG_PARTITION_DISK=y
 CONFIG_PARTITION_DISK_DOS=y
 CONFIG_PARTITION_DISK_EFI=y
+# CONFIG_PARTITION_DISK_EFI_REFRESH is not set
 CONFIG_PARTITION_DISK_EFI_GPT_NO_FORCE=y
 CONFIG_PARTITION_DISK_EFI_GPT_COMPARE=y
 CONFIG_ENV_HANDLING=y
@@ -279,7 +284,7 @@ CONFIG_CC_HAS_KASAN_GENERIC=y
 #
 # EFI (Extensible Firmware Interface) Support
 #
-CONFIG_HAVE_EFI_STUB=y
+# CONFIG_EFI_LOADER is not set
 # end of EFI (Extensible Firmware Interface) Support
 
 CONFIG_COMMAND_SUPPORT=y
@@ -377,6 +382,7 @@ CONFIG_CMD_TREE=y
 # CONFIG_CMD_STAT is not set
 CONFIG_CMD_MD5SUM=y
 CONFIG_CMD_MKDIR=y
+# CONFIG_CMD_MKNOD is not set
 CONFIG_CMD_PWD=y
 CONFIG_CMD_READLINK=y
 CONFIG_CMD_RM=y
@@ -844,6 +850,7 @@ CONFIG_GPIOLIB=y
 # Pin controllers
 #
 CONFIG_PINCTRL=y
+# CONFIG_PINCTRL_STATE_PARAM is not set
 # CONFIG_PINCTRL_BCM283X is not set
 # CONFIG_PINCTRL_SINGLE is not set
 # end of Pin controllers
diff --git a/configs/platform-v7a_noneon/barebox-vexpress.config b/configs/platform-v7a_noneon/barebox-vexpress.config
index 3680bcfb4265..d1e73ec6c447 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 2025.11.0 Configuration
+# Barebox/arm 2026.01.0 Configuration
 #
 CONFIG_ARM=y
 CONFIG_ARCH_LINUX_NAME="arm"
@@ -84,6 +84,8 @@ CONFIG_HAVE_ARCH_BOARD_GENERIC_DT=y
 CONFIG_HAVE_ARCH_BOOTM_OFTREE=y
 CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
 CONFIG_ARCH_HAS_SJLJ=y
+CONFIG_HAVE_EFI_STUB=y
+CONFIG_HAVE_EFI_LOADER=y
 CONFIG_HAS_DEBUG_LL=y
 CONFIG_HAVE_ARCH_KASAN=y
 CONFIG_CC_IS_GCC=y
@@ -197,12 +199,15 @@ CONFIG_CONSOLE_ACTIVATE_ALL_FALLBACK=y
 CONFIG_CONSOLE_ALLOW_COLOR=y
 # CONFIG_CONSOLE_DISABLE_INPUT is not set
 CONFIG_PBL_CONSOLE=y
+CONFIG_BUG=y
+CONFIG_DEBUG_BUGVERBOSE=y
 # CONFIG_CONSOLE_RATP is not set
 CONFIG_PARTITION=y
 CONFIG_PARTITION_MANIPULATION=y
 CONFIG_PARTITION_DISK=y
 CONFIG_PARTITION_DISK_DOS=y
 CONFIG_PARTITION_DISK_EFI=y
+# CONFIG_PARTITION_DISK_EFI_REFRESH is not set
 CONFIG_PARTITION_DISK_EFI_GPT_NO_FORCE=y
 CONFIG_PARTITION_DISK_EFI_GPT_COMPARE=y
 CONFIG_ENV_HANDLING=y
@@ -266,7 +271,7 @@ CONFIG_CC_HAS_KASAN_GENERIC=y
 #
 # EFI (Extensible Firmware Interface) Support
 #
-CONFIG_HAVE_EFI_STUB=y
+# CONFIG_EFI_LOADER is not set
 # end of EFI (Extensible Firmware Interface) Support
 
 CONFIG_COMMAND_SUPPORT=y
@@ -364,6 +369,7 @@ CONFIG_CMD_TREE=y
 # CONFIG_CMD_STAT is not set
 CONFIG_CMD_MD5SUM=y
 CONFIG_CMD_MKDIR=y
+# CONFIG_CMD_MKNOD is not set
 CONFIG_CMD_PWD=y
 CONFIG_CMD_READLINK=y
 CONFIG_CMD_RM=y
@@ -798,6 +804,7 @@ CONFIG_HWRNG=y
 # Pin controllers
 #
 CONFIG_PINCTRL=y
+# CONFIG_PINCTRL_STATE_PARAM is not set
 # CONFIG_PINCTRL_SINGLE is not set
 # end of Pin controllers
 
diff --git a/configs/platform-v7a_noneon/barebox-vexpress.config.diff b/configs/platform-v7a_noneon/barebox-vexpress.config.diff
index db1274d964f8..87762f48def8 100644
--- a/configs/platform-v7a_noneon/barebox-vexpress.config.diff
+++ b/configs/platform-v7a_noneon/barebox-vexpress.config.diff
@@ -1,5 +1,5 @@
-a51c6a6da229e3821798f6e72b78924c
-16bc2743d6104bb4f4e4d34b6f364af7
+3028fb8f9e4ad715e0327e2fed1c70eb
+75c5e1100a2a6b7df1ba323e31fa8032
 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 82fb9a733049..f59271f3ced1 100644
--- a/configs/platform-v7a_noneon/platformconfig
+++ b/configs/platform-v7a_noneon/platformconfig
@@ -179,8 +179,8 @@ PTXCONF_CONSOLE_SPEED="115200"
 # PTXCONF_AT91BOOTSTRAP2 is not set
 PTXCONF_BAREBOX_COMMON_ARCH_STRING="arm"
 PTXCONF_BAREBOX_COMMON=y
-PTXCONF_BAREBOX_COMMON_VERSION="2025.11.0"
-PTXCONF_BAREBOX_COMMON_MD5="867dea758c6ea8b350bac57009235e88"
+PTXCONF_BAREBOX_COMMON_VERSION="2026.01.0"
+PTXCONF_BAREBOX_COMMON_MD5="82e3fc96c069151779b434043ee0c0e7"
 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 18ba97daa5d9..885a61c3ccca 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 2025.11.0 Configuration
+# Barebox/arm 2026.01.0 Configuration
 #
 CONFIG_ARM=y
 CONFIG_ARCH_LINUX_NAME="arm"
@@ -90,6 +90,7 @@ CONFIG_HAVE_ARCH_BOARD_GENERIC_DT=y
 CONFIG_HAVE_ARCH_BOOTM_OFTREE=y
 CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
 CONFIG_ARCH_HAS_SJLJ=y
+CONFIG_HAVE_EFI_STUB=y
 CONFIG_HAS_DEBUG_LL=y
 CONFIG_HAVE_ARCH_KASAN=y
 CONFIG_CC_IS_GCC=y
@@ -173,6 +174,8 @@ CONFIG_CONSOLE_ACTIVATE_NONE=y
 CONFIG_CONSOLE_FLUSH_LINE_BREAK=y
 # CONFIG_CONSOLE_DISABLE_INPUT is not set
 CONFIG_PBL_CONSOLE=y
+CONFIG_BUG=y
+CONFIG_DEBUG_BUGVERBOSE=y
 CONFIG_PARTITION=y
 CONFIG_PARTITION_DISK=y
 CONFIG_PARTITION_DISK_DOS=y
@@ -223,7 +226,6 @@ CONFIG_CC_HAS_KASAN_GENERIC=y
 #
 # EFI (Extensible Firmware Interface) Support
 #
-CONFIG_HAVE_EFI_STUB=y
 # end of EFI (Extensible Firmware Interface) Support
 
 # CONFIG_NET is not set
@@ -455,6 +457,7 @@ CONFIG_PINCTRL_SINGLE=y
 #
 # Bus devices
 #
+CONFIG_OF_SIMPLE_PM_BUS=y
 # end of Bus devices
 
 CONFIG_REGULATOR=y
diff --git a/configs/platform-v8a/barebox.config b/configs/platform-v8a/barebox.config
index e9e5f8239b5f..1f88482f4a7b 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 2025.11.0 Configuration
+# Barebox/arm 2026.01.0 Configuration
 #
 CONFIG_ARM=y
 CONFIG_ARCH_LINUX_NAME="arm64"
@@ -174,6 +174,9 @@ CONFIG_ARCH_HAS_ZERO_PAGE=y
 CONFIG_HAVE_ARCH_BOARD_GENERIC_DT=y
 CONFIG_HAVE_ARCH_BOOTM_OFTREE=y
 CONFIG_ARCH_HAS_SJLJ=y
+CONFIG_HAVE_EFI_PAYLOAD=y
+CONFIG_HAVE_EFI_STUB=y
+CONFIG_HAVE_EFI_LOADER=y
 CONFIG_PHYS_ADDR_T_64BIT=y
 CONFIG_ARCH_DMA_ADDR_T_64BIT=y
 CONFIG_HAS_DEBUG_LL=y
@@ -295,12 +298,15 @@ CONFIG_CONSOLE_ACTIVATE_NONE=y
 CONFIG_CONSOLE_ALLOW_COLOR=y
 # CONFIG_CONSOLE_DISABLE_INPUT is not set
 CONFIG_PBL_CONSOLE=y
+CONFIG_BUG=y
+CONFIG_DEBUG_BUGVERBOSE=y
 # CONFIG_CONSOLE_RATP is not set
 CONFIG_PARTITION=y
 CONFIG_PARTITION_MANIPULATION=y
 CONFIG_PARTITION_DISK=y
 CONFIG_PARTITION_DISK_DOS=y
 CONFIG_PARTITION_DISK_EFI=y
+# CONFIG_PARTITION_DISK_EFI_REFRESH is not set
 CONFIG_PARTITION_DISK_EFI_GPT_NO_FORCE=y
 CONFIG_PARTITION_DISK_EFI_GPT_COMPARE=y
 CONFIG_ENV_HANDLING=y
@@ -324,6 +330,7 @@ CONFIG_BOOT_DEFAULTS=y
 CONFIG_BAREBOX_DT_2ND=y
 CONFIG_RESET_SOURCE=y
 CONFIG_MACHINE_ID=y
+CONFIG_MACHINE_ID_SPECIFIC=y
 # CONFIG_SERIAL_NUMBER_FIXUP_SYSTEMD_HOSTNAME is not set
 # CONFIG_SYSTEMD_OF_WATCHDOG is not set
 CONFIG_EXTERNAL_DTS_FRAGMENTS="${PTXDIST_PLATFORMCONFIGDIR}/dts/bootstate.dtsi"
@@ -370,9 +377,8 @@ CONFIG_CC_HAS_KASAN_GENERIC=y
 #
 # EFI (Extensible Firmware Interface) Support
 #
-CONFIG_HAVE_EFI_PAYLOAD=y
 # CONFIG_EFI_PAYLOAD is not set
-CONFIG_HAVE_EFI_STUB=y
+# CONFIG_EFI_LOADER is not set
 # end of EFI (Extensible Firmware Interface) Support
 
 CONFIG_COMMAND_SUPPORT=y
@@ -471,6 +477,7 @@ CONFIG_CMD_TREE=y
 # CONFIG_CMD_STAT is not set
 CONFIG_CMD_MD5SUM=y
 CONFIG_CMD_MKDIR=y
+# CONFIG_CMD_MKNOD is not set
 CONFIG_CMD_PWD=y
 CONFIG_CMD_READLINK=y
 CONFIG_CMD_RM=y
@@ -806,6 +813,7 @@ CONFIG_USB_DWC3=y
 # CONFIG_USB_DWC3_GADGET is not set
 CONFIG_USB_DWC3_DUAL_ROLE=y
 CONFIG_USB_DWC3_OF_SIMPLE=y
+CONFIG_USB_DWC3_IMX8MP=y
 CONFIG_USB_DWC3_AM62=y
 CONFIG_USB_EHCI=y
 CONFIG_USB_XHCI=y
@@ -996,6 +1004,7 @@ CONFIG_GPIO_ROCKCHIP=y
 # Pin controllers
 #
 CONFIG_PINCTRL=y
+# CONFIG_PINCTRL_STATE_PARAM is not set
 CONFIG_PINCTRL_IMX_IOMUX_V3=y
 CONFIG_PINCTRL_ROCKCHIP=y
 CONFIG_PINCTRL_SINGLE=y
@@ -1015,11 +1024,13 @@ CONFIG_IMX_OCOTP=y
 # CONFIG_EEPROM_93XX46 is not set
 CONFIG_NVMEM_ROCKCHIP_OTP=y
 # CONFIG_NVMEM_ATMEL_SHA204A is not set
+# CONFIG_TI_K3_OTP is not set
 
 #
 # Bus devices
 #
 # CONFIG_IMX_WEIM is not set
+CONFIG_OF_SIMPLE_PM_BUS=y
 # end of Bus devices
 
 CONFIG_REGULATOR=y
@@ -1086,6 +1097,7 @@ CONFIG_TI_SCI_PROTOCOL=y
 CONFIG_GENERIC_PHY=y
 CONFIG_USB_NOP_XCEIV=y
 CONFIG_PHY_FSL_IMX8MQ_USB=y
+# CONFIG_PHY_ROCKCHIP_INNO_DSIDPHY is not set
 CONFIG_PHY_ROCKCHIP_INNO_USB2=y
 CONFIG_PHY_ROCKCHIP_NANENG_COMBO_PHY=y
 # CONFIG_PHY_ROCKCHIP_SNPS_PCIE3 is not set
@@ -1135,8 +1147,10 @@ CONFIG_TI_K3_RINGACC=y
 #
 CONFIG_IMX_GPCV2_PM_DOMAINS=y
 CONFIG_IMX8M_BLK_CTRL=y
+CONFIG_IMX93_BLK_CTRL=y
 # end of i.MX PM Domains
 
+# CONFIG_ROCKCHIP_PM_DOMAINS is not set
 CONFIG_TI_SCI_PM_DOMAINS=y
 # end of PM Domains
 
diff --git a/configs/platform-v8a/patches/barebox-2025.11.0/0001-ARM-i-MX93-reinstate-aliases.patch b/configs/platform-v8a/patches/barebox-2025.11.0/0001-ARM-i-MX93-reinstate-aliases.patch
deleted file mode 100644
index cbf99692e747..000000000000
--- a/configs/platform-v8a/patches/barebox-2025.11.0/0001-ARM-i-MX93-reinstate-aliases.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From: Ahmad Fatoum <a.fatoum@pengutronix.de>
-Date: Wed, 12 Nov 2025 22:37:26 +0100
-Subject: [PATCH master] ARM: i.MX93: reinstate aliases
-
-Regrettably, the i.MX93 device trees no longer list aliases in the SoC
-dtsi and instead leave it to the boards. This broke native GPIO
-controllers on i.MX93 in barebox, because the driver expects aliases for
-all device tree platforms.
-
-Add back the aliases into a barebox override.
-
-Fixes: 7fdf97ba2464 ("dts: update to v6.18-rc1")
-Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
----
- arch/arm/dts/imx93.dtsi | 37 ++++++++++++++++++++++++++++++++++++-
- 1 file changed, 36 insertions(+), 1 deletion(-)
-
-diff --git a/arch/arm/dts/imx93.dtsi b/arch/arm/dts/imx93.dtsi
-index 676819817b32..e1328de67243 100644
---- a/arch/arm/dts/imx93.dtsi
-+++ b/arch/arm/dts/imx93.dtsi
-@@ -1,4 +1,39 @@
--/{
-+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
-+/ {
-+	aliases {
-+		gpio0 = &gpio1;
-+		gpio1 = &gpio2;
-+		gpio2 = &gpio3;
-+		gpio3 = &gpio4;
-+		i2c0 = &lpi2c1;
-+		i2c1 = &lpi2c2;
-+		i2c2 = &lpi2c3;
-+		i2c3 = &lpi2c4;
-+		i2c4 = &lpi2c5;
-+		i2c5 = &lpi2c6;
-+		i2c6 = &lpi2c7;
-+		i2c7 = &lpi2c8;
-+		mmc0 = &usdhc1;
-+		mmc1 = &usdhc2;
-+		mmc2 = &usdhc3;
-+		serial0 = &lpuart1;
-+		serial1 = &lpuart2;
-+		serial2 = &lpuart3;
-+		serial3 = &lpuart4;
-+		serial4 = &lpuart5;
-+		serial5 = &lpuart6;
-+		serial6 = &lpuart7;
-+		serial7 = &lpuart8;
-+		spi0 = &lpspi1;
-+		spi1 = &lpspi2;
-+		spi2 = &lpspi3;
-+		spi3 = &lpspi4;
-+		spi4 = &lpspi5;
-+		spi5 = &lpspi6;
-+		spi6 = &lpspi7;
-+		spi7 = &lpspi8;
-+	};
-+
- 	chosen {
- 		barebox,bootsource-mmc0 = &usdhc1;
- 		barebox,bootsource-mmc1 = &usdhc2;
diff --git a/configs/platform-v8a/patches/barebox-2025.11.0/series b/configs/platform-v8a/patches/barebox-2025.11.0/series
deleted file mode 100644
index fd7918b85d2e..000000000000
--- a/configs/platform-v8a/patches/barebox-2025.11.0/series
+++ /dev/null
@@ -1 +0,0 @@
-0001-ARM-i-MX93-reinstate-aliases.patch
diff --git a/configs/platform-v8a/platformconfig b/configs/platform-v8a/platformconfig
index 8c01dd19609a..989fb0e14d45 100644
--- a/configs/platform-v8a/platformconfig
+++ b/configs/platform-v8a/platformconfig
@@ -181,10 +181,10 @@ PTXCONF_COMPILERPREFIX_R5="arm-v7a-linux-gnueabihf-"
 PTXCONF_BAREBOX_ARCH_STRING="arm"
 PTXCONF_BAREBOX_DEPENDENCIES=y
 PTXCONF_BAREBOX=y
-PTXCONF_BAREBOX_VERSION="2025.11.0"
+PTXCONF_BAREBOX_VERSION="2026.01.0"
 PTXCONF_BAREBOX_CONFIG_BUILDSYSTEM_VERSION=y
 PTXCONF_BAREBOX_BUILDSYSTEM_VERSION="${PTXDIST_VCS_VERSION}"
-PTXCONF_BAREBOX_MD5="867dea758c6ea8b350bac57009235e88"
+PTXCONF_BAREBOX_MD5="82e3fc96c069151779b434043ee0c0e7"
 PTXCONF_BAREBOX_CONFIG="barebox.config"
 PTXCONF_BAREBOX_FIRMWARE=y
 PTXCONF_BAREBOX_EXTRA_ENV=y
-- 
2.47.3




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

* [DistroKit] [PATCH 3/8] barebox: enable some useful interactive tools
  2026-01-21  8:06 [DistroKit] [PATCH 0/8] barebox: update to v2026.01.0 and extend config Ahmad Fatoum
  2026-01-21  8:06 ` [DistroKit] [PATCH 1/8] barebox: set CONFIG_NAME across all platforms Ahmad Fatoum
  2026-01-21  8:06 ` [DistroKit] [PATCH 2/8] barebox: update barebox v2025.11.0 -> v2026.01.0 Ahmad Fatoum
@ 2026-01-21  8:06 ` Ahmad Fatoum
  2026-01-21  8:06 ` [DistroKit] [PATCH 4/8] v8a: barebox: enable Rockchip power domain driver Ahmad Fatoum
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: Ahmad Fatoum @ 2026-01-21  8:06 UTC (permalink / raw)
  To: distrokit; +Cc: Ahmad Fatoum

- bfetch: a visually appealing summary of the running system
- createnv: easily create an environment, e.g. during bootstrapping
- stat: This gives some insight into barebox VFS, which can be useful
  for development
- mknod: Allows creating device nodes like those in devfs
- global.system.gpt_refresh: Parameter can be used for barebox to fix
  the alternate GPT
- DEV.pinctrl_state: allows selecting a different pinctrl state on
  the command-line for debugging purposes

We apply these changes only to v7a/v8a barebox.config as these are the
most used and barebox-common is supposed to be dropped in the future
anyway.

Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
---
 configs/platform-v7a/barebox.config | 13 +++++++------
 configs/platform-v8a/barebox.config | 11 ++++++-----
 2 files changed, 13 insertions(+), 11 deletions(-)

diff --git a/configs/platform-v7a/barebox.config b/configs/platform-v7a/barebox.config
index 0d92ef07e7dd..7aea542738bc 100644
--- a/configs/platform-v7a/barebox.config
+++ b/configs/platform-v7a/barebox.config
@@ -269,6 +269,7 @@ CONFIG_BLOCK=y
 CONFIG_BLOCK_WRITE=y
 CONFIG_BLOCK_STATS=y
 CONFIG_FILETYPE=y
+CONFIG_STRUCTIO=y
 CONFIG_BINFMT=y
 CONFIG_UIMAGE=y
 CONFIG_FITIMAGE=y
@@ -384,7 +385,7 @@ CONFIG_PARTITION_MANIPULATION=y
 CONFIG_PARTITION_DISK=y
 CONFIG_PARTITION_DISK_DOS=y
 CONFIG_PARTITION_DISK_EFI=y
-# CONFIG_PARTITION_DISK_EFI_REFRESH is not set
+CONFIG_PARTITION_DISK_EFI_REFRESH=y
 CONFIG_PARTITION_DISK_EFI_GPT_NO_FORCE=y
 CONFIG_PARTITION_DISK_EFI_GPT_COMPARE=y
 CONFIG_ENV_HANDLING=y
@@ -484,7 +485,7 @@ CONFIG_CMD_REGULATOR=y
 # CONFIG_CMD_NVMEM is not set
 # CONFIG_CMD_VARINFO is not set
 CONFIG_CMD_VERSION=y
-# CONFIG_CMD_BFETCH is not set
+CONFIG_CMD_BFETCH=y
 CONFIG_CMD_MMC=y
 CONFIG_CMD_MMC_EXTCSD=y
 # CONFIG_CMD_POLLER is not set
@@ -525,7 +526,7 @@ CONFIG_CMD_UMOUNT=y
 #
 # Environment
 #
-# CONFIG_CMD_CREATENV is not set
+CONFIG_CMD_CREATENV=y
 CONFIG_CMD_NV=y
 CONFIG_CMD_EXPORT=y
 CONFIG_CMD_DEFAULTENV=y
@@ -552,10 +553,10 @@ CONFIG_CMD_FILETYPE=y
 CONFIG_CMD_LN=y
 CONFIG_CMD_LS=y
 CONFIG_CMD_TREE=y
-# CONFIG_CMD_STAT is not set
+CONFIG_CMD_STAT=y
 CONFIG_CMD_MD5SUM=y
 CONFIG_CMD_MKDIR=y
-# CONFIG_CMD_MKNOD is not set
+CONFIG_CMD_MKNOD=y
 CONFIG_CMD_PWD=y
 CONFIG_CMD_READLINK=y
 CONFIG_CMD_RM=y
@@ -1171,7 +1172,7 @@ CONFIG_GPIO_RASPBERRYPI_EXP=y
 # Pin controllers
 #
 CONFIG_PINCTRL=y
-# CONFIG_PINCTRL_STATE_PARAM is not set
+CONFIG_PINCTRL_STATE_PARAM=y
 CONFIG_PINCTRL_BCM283X=y
 CONFIG_PINCTRL_IMX_IOMUX_V3=y
 CONFIG_PINCTRL_SINGLE=y
diff --git a/configs/platform-v8a/barebox.config b/configs/platform-v8a/barebox.config
index 1f88482f4a7b..9f8e139b2edb 100644
--- a/configs/platform-v8a/barebox.config
+++ b/configs/platform-v8a/barebox.config
@@ -193,6 +193,7 @@ CONFIG_BLOCK=y
 CONFIG_BLOCK_WRITE=y
 CONFIG_BLOCK_STATS=y
 CONFIG_FILETYPE=y
+CONFIG_STRUCTIO=y
 CONFIG_BINFMT=y
 CONFIG_UIMAGE=y
 CONFIG_FITIMAGE=y
@@ -412,7 +413,7 @@ CONFIG_CMD_PM_DOMAIN=y
 CONFIG_CMD_NVMEM=y
 # CONFIG_CMD_VARINFO is not set
 CONFIG_CMD_VERSION=y
-# CONFIG_CMD_BFETCH is not set
+CONFIG_CMD_BFETCH=y
 # CONFIG_CMD_MMC is not set
 CONFIG_CMD_MMC_EXTCSD=y
 CONFIG_CMD_POLLER=y
@@ -447,7 +448,7 @@ CONFIG_CMD_UMOUNT=y
 #
 # Environment
 #
-# CONFIG_CMD_CREATENV is not set
+CONFIG_CMD_CREATENV=y
 CONFIG_CMD_NV=y
 CONFIG_CMD_EXPORT=y
 # CONFIG_CMD_DEFAULTENV is not set
@@ -474,10 +475,10 @@ CONFIG_CMD_FILETYPE=y
 CONFIG_CMD_LN=y
 CONFIG_CMD_LS=y
 CONFIG_CMD_TREE=y
-# CONFIG_CMD_STAT is not set
+CONFIG_CMD_STAT=y
 CONFIG_CMD_MD5SUM=y
 CONFIG_CMD_MKDIR=y
-# CONFIG_CMD_MKNOD is not set
+CONFIG_CMD_MKNOD=y
 CONFIG_CMD_PWD=y
 CONFIG_CMD_READLINK=y
 CONFIG_CMD_RM=y
@@ -1004,7 +1005,7 @@ CONFIG_GPIO_ROCKCHIP=y
 # Pin controllers
 #
 CONFIG_PINCTRL=y
-# CONFIG_PINCTRL_STATE_PARAM is not set
+CONFIG_PINCTRL_STATE_PARAM=y
 CONFIG_PINCTRL_IMX_IOMUX_V3=y
 CONFIG_PINCTRL_ROCKCHIP=y
 CONFIG_PINCTRL_SINGLE=y
-- 
2.47.3




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

* [DistroKit] [PATCH 4/8] v8a: barebox: enable Rockchip power domain driver
  2026-01-21  8:06 [DistroKit] [PATCH 0/8] barebox: update to v2026.01.0 and extend config Ahmad Fatoum
                   ` (2 preceding siblings ...)
  2026-01-21  8:06 ` [DistroKit] [PATCH 3/8] barebox: enable some useful interactive tools Ahmad Fatoum
@ 2026-01-21  8:06 ` Ahmad Fatoum
  2026-01-21  8:06 ` [DistroKit] [PATCH 5/8] barebox: enable bootloader dm-verity support Ahmad Fatoum
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: Ahmad Fatoum @ 2026-01-21  8:06 UTC (permalink / raw)
  To: distrokit; +Cc: Ahmad Fatoum

This is enabled in the barebox multi_v8_defconfig and rockchip_v8_defconfig,
but isn't the default yet[1].

Enable it, so we aren't at mercy of power domains having been left
enabled for the drivers we use in barebox.

[1]: https://lore.barebox.org/barebox/20260120155902.2752563-1-a.fatoum@pengutronix.de/T/#u

Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
---
 configs/platform-v8a/barebox.config | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configs/platform-v8a/barebox.config b/configs/platform-v8a/barebox.config
index 9f8e139b2edb..8478c7991138 100644
--- a/configs/platform-v8a/barebox.config
+++ b/configs/platform-v8a/barebox.config
@@ -1151,7 +1151,7 @@ CONFIG_IMX8M_BLK_CTRL=y
 CONFIG_IMX93_BLK_CTRL=y
 # end of i.MX PM Domains
 
-# CONFIG_ROCKCHIP_PM_DOMAINS is not set
+CONFIG_ROCKCHIP_PM_DOMAINS=y
 CONFIG_TI_SCI_PM_DOMAINS=y
 # end of PM Domains
 
-- 
2.47.3




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

* [DistroKit] [PATCH 5/8] barebox: enable bootloader dm-verity support
  2026-01-21  8:06 [DistroKit] [PATCH 0/8] barebox: update to v2026.01.0 and extend config Ahmad Fatoum
                   ` (3 preceding siblings ...)
  2026-01-21  8:06 ` [DistroKit] [PATCH 4/8] v8a: barebox: enable Rockchip power domain driver Ahmad Fatoum
@ 2026-01-21  8:06 ` Ahmad Fatoum
  2026-01-21  8:06 ` [DistroKit] [PATCH 6/8] barebox: enable oftree fallback Ahmad Fatoum
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: Ahmad Fatoum @ 2026-01-21  8:06 UTC (permalink / raw)
  To: distrokit; +Cc: Ahmad Fatoum

To make it easier to evaluate this new feature, enable it in in the
barebox config, even if we do not make use of it yet.

Compared to FIT images, the benefit of dm-verity directly in barebox
would be that we do not need to change our current partitioning and can
continue to place the kernel, device tree and initrd into a file system
and arguable reducing the attack surface at the same time, because the
block-sized hashing is simpler than the FIT image parsing.

It would also be more straight forward to optimize for boot time, as
barebox could do better prefetching, albeit that's not yet implemented.

Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
---
 configs/platform-v7a/barebox.config | 6 +++++-
 configs/platform-v8a/barebox.config | 6 +++++-
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/configs/platform-v7a/barebox.config b/configs/platform-v7a/barebox.config
index 7aea542738bc..9a1e6aa1383e 100644
--- a/configs/platform-v7a/barebox.config
+++ b/configs/platform-v7a/barebox.config
@@ -518,9 +518,11 @@ CONFIG_CMD_AUTOMOUNT=y
 CONFIG_CMD_MOUNT=y
 # CONFIG_CMD_FINDMNT is not set
 CONFIG_CMD_PARTED=y
+CONFIG_CMD_DMSETUP=y
 CONFIG_CMD_UBI=y
 CONFIG_CMD_UBIFORMAT=y
 CONFIG_CMD_UMOUNT=y
+CONFIG_CMD_VERITYSETUP=y
 # end of Partition
 
 #
@@ -906,7 +908,9 @@ CONFIG_MTD_UBI_FASTMAP=y
 CONFIG_DISK=y
 CONFIG_DISK_IDE_SFF=y
 CONFIG_DISK_WRITE=y
-# CONFIG_DM_BLK is not set
+CONFIG_DM_BLK=y
+CONFIG_DM_BLK_LINEAR=y
+CONFIG_DM_BLK_VERITY=y
 
 #
 # drive types
diff --git a/configs/platform-v8a/barebox.config b/configs/platform-v8a/barebox.config
index 8478c7991138..efe1d73c6dc7 100644
--- a/configs/platform-v8a/barebox.config
+++ b/configs/platform-v8a/barebox.config
@@ -442,7 +442,9 @@ CONFIG_CMD_AUTOMOUNT=y
 CONFIG_CMD_MOUNT=y
 # CONFIG_CMD_FINDMNT is not set
 CONFIG_CMD_PARTED=y
+CONFIG_CMD_DMSETUP=y
 CONFIG_CMD_UMOUNT=y
+CONFIG_CMD_VERITYSETUP=y
 # end of Partition
 
 #
@@ -791,7 +793,9 @@ CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y
 # CONFIG_MTD_UBI is not set
 CONFIG_DISK=y
 CONFIG_DISK_WRITE=y
-# CONFIG_DM_BLK is not set
+CONFIG_DM_BLK=y
+CONFIG_DM_BLK_LINEAR=y
+CONFIG_DM_BLK_VERITY=y
 
 #
 # drive types
-- 
2.47.3




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

* [DistroKit] [PATCH 6/8] barebox: enable oftree fallback
  2026-01-21  8:06 [DistroKit] [PATCH 0/8] barebox: update to v2026.01.0 and extend config Ahmad Fatoum
                   ` (4 preceding siblings ...)
  2026-01-21  8:06 ` [DistroKit] [PATCH 5/8] barebox: enable bootloader dm-verity support Ahmad Fatoum
@ 2026-01-21  8:06 ` Ahmad Fatoum
  2026-01-21  8:07 ` [DistroKit] [PATCH 7/8] barebox: r5: disable CONFIG_DEBUG_PROBES Ahmad Fatoum
  2026-01-21  8:07 ` [DistroKit] [PATCH 8/8] v8a: barebox: patch in support for BeaglePlay RTL8211F-VD Ethernet PHY Ahmad Fatoum
  7 siblings, 0 replies; 9+ messages in thread
From: Ahmad Fatoum @ 2026-01-21  8:06 UTC (permalink / raw)
  To: distrokit; +Cc: Ahmad Fatoum

Our bootloader spec files all list a devicetree, so enabling this
option won't change behavior for us, but is occasionally useful for
quick debugging, which is a primary use case for DistroKit.

Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
---
 configs/bsp.ref                     | 17 +++++++++++++++++
 configs/platform-v7a/barebox.config |  2 +-
 configs/platform-v8a/barebox.config |  2 +-
 3 files changed, 19 insertions(+), 2 deletions(-)

diff --git a/configs/bsp.ref b/configs/bsp.ref
index 7138cbccc0aa..86a2bdebe75a 100644
--- a/configs/bsp.ref
+++ b/configs/bsp.ref
@@ -39,6 +39,23 @@ kernel_initrd:
       value: True
     - value: False
 
+barebox_oftree_fallback:
+  description: |
+    barebox will substitute its own device tree when no kernel device
+    tree was supplied. This is useful for development, but not recommended
+    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
+
 barebox_arm_optimized_string_functions:
   description: |
     The use of assembler optimized memcpy / memset functions improves
diff --git a/configs/platform-v7a/barebox.config b/configs/platform-v7a/barebox.config
index 9a1e6aa1383e..a303bb0c1005 100644
--- a/configs/platform-v7a/barebox.config
+++ b/configs/platform-v7a/barebox.config
@@ -353,7 +353,7 @@ CONFIG_BOOTM_SHOW_TYPE=y
 CONFIG_BOOTM_VERBOSE=y
 CONFIG_BOOTM_INITRD=y
 CONFIG_BOOTM_OFTREE=y
-# CONFIG_BOOTM_OFTREE_FALLBACK is not set
+CONFIG_BOOTM_OFTREE_FALLBACK=y
 CONFIG_BOOTM_UIMAGE=y
 CONFIG_BOOTM_OFTREE_UIMAGE=y
 # CONFIG_BOOTM_AIMAGE is not set
diff --git a/configs/platform-v8a/barebox.config b/configs/platform-v8a/barebox.config
index efe1d73c6dc7..d2fd4e9cf814 100644
--- a/configs/platform-v8a/barebox.config
+++ b/configs/platform-v8a/barebox.config
@@ -275,7 +275,7 @@ CONFIG_BOOTM_SHOW_TYPE=y
 CONFIG_BOOTM_VERBOSE=y
 CONFIG_BOOTM_INITRD=y
 CONFIG_BOOTM_OFTREE=y
-# CONFIG_BOOTM_OFTREE_FALLBACK is not set
+CONFIG_BOOTM_OFTREE_FALLBACK=y
 CONFIG_BOOTM_UIMAGE=y
 CONFIG_BOOTM_OFTREE_UIMAGE=y
 # CONFIG_BOOTM_AIMAGE is not set
-- 
2.47.3




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

* [DistroKit] [PATCH 7/8] barebox: r5: disable CONFIG_DEBUG_PROBES
  2026-01-21  8:06 [DistroKit] [PATCH 0/8] barebox: update to v2026.01.0 and extend config Ahmad Fatoum
                   ` (5 preceding siblings ...)
  2026-01-21  8:06 ` [DistroKit] [PATCH 6/8] barebox: enable oftree fallback Ahmad Fatoum
@ 2026-01-21  8:07 ` Ahmad Fatoum
  2026-01-21  8:07 ` [DistroKit] [PATCH 8/8] v8a: barebox: patch in support for BeaglePlay RTL8211F-VD Ethernet PHY Ahmad Fatoum
  7 siblings, 0 replies; 9+ messages in thread
From: Ahmad Fatoum @ 2026-01-21  8:07 UTC (permalink / raw)
  To: distrokit; +Cc: Ahmad Fatoum

CONFIG_DEBUG_PROBES is a debugging aid that logs to console every
device driver probe before it happens.

This is needlessly verbose when not debugging a hang, so disable this
option like other barebox configs in the BSP also do.

Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
---
 configs/platform-v8a/barebox-r5.config | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configs/platform-v8a/barebox-r5.config b/configs/platform-v8a/barebox-r5.config
index 885a61c3ccca..b4d975a01e8b 100644
--- a/configs/platform-v8a/barebox-r5.config
+++ b/configs/platform-v8a/barebox-r5.config
@@ -206,7 +206,7 @@ CONFIG_DEBUG_AM62X_UART=y
 CONFIG_DEBUG_K3_UART_PORT=0
 # CONFIG_DEBUG_INITCALLS is not set
 # CONFIG_DEBUG_PBL is not set
-CONFIG_DEBUG_PROBES=y
+# CONFIG_DEBUG_PROBES is not set
 # CONFIG_DMA_API_DEBUG is not set
 # CONFIG_DEBUG_LIST is not set
 # CONFIG_DEBUG_RESOURCES is not set
-- 
2.47.3




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

* [DistroKit] [PATCH 8/8] v8a: barebox: patch in support for BeaglePlay RTL8211F-VD Ethernet PHY
  2026-01-21  8:06 [DistroKit] [PATCH 0/8] barebox: update to v2026.01.0 and extend config Ahmad Fatoum
                   ` (6 preceding siblings ...)
  2026-01-21  8:07 ` [DistroKit] [PATCH 7/8] barebox: r5: disable CONFIG_DEBUG_PROBES Ahmad Fatoum
@ 2026-01-21  8:07 ` Ahmad Fatoum
  7 siblings, 0 replies; 9+ messages in thread
From: Ahmad Fatoum @ 2026-01-21  8:07 UTC (permalink / raw)
  To: distrokit; +Cc: Ahmad Fatoum

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.

Networking works under Linux as its Realtek PHY driver already matches the
RTL8211F-VD PHY's ID, so sync the barebox driver against it.

Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
---
 ...-realtek-sync-with-Linux-v6.19-state.patch | 863 ++++++++++++++++++
 .../patches/barebox-2026.01.0/series          |   1 +
 2 files changed, 864 insertions(+)
 create mode 100644 configs/platform-v8a/patches/barebox-2026.01.0/0001-net-phy-realtek-sync-with-Linux-v6.19-state.patch
 create mode 100644 configs/platform-v8a/patches/barebox-2026.01.0/series

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
new file mode 100644
index 000000000000..b7b1adbbc868
--- /dev/null
+++ b/configs/platform-v8a/patches/barebox-2026.01.0/0001-net-phy-realtek-sync-with-Linux-v6.19-state.patch
@@ -0,0 +1,863 @@
+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
new file mode 100644
index 000000000000..12e7d62e2c0d
--- /dev/null
+++ b/configs/platform-v8a/patches/barebox-2026.01.0/series
@@ -0,0 +1 @@
+0001-net-phy-realtek-sync-with-Linux-v6.19-state.patch
-- 
2.47.3




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

end of thread, other threads:[~2026-01-21  8:08 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-01-21  8:06 [DistroKit] [PATCH 0/8] barebox: update to v2026.01.0 and extend config Ahmad Fatoum
2026-01-21  8:06 ` [DistroKit] [PATCH 1/8] barebox: set CONFIG_NAME across all platforms Ahmad Fatoum
2026-01-21  8:06 ` [DistroKit] [PATCH 2/8] barebox: update barebox v2025.11.0 -> v2026.01.0 Ahmad Fatoum
2026-01-21  8:06 ` [DistroKit] [PATCH 3/8] barebox: enable some useful interactive tools Ahmad Fatoum
2026-01-21  8:06 ` [DistroKit] [PATCH 4/8] v8a: barebox: enable Rockchip power domain driver Ahmad Fatoum
2026-01-21  8:06 ` [DistroKit] [PATCH 5/8] barebox: enable bootloader dm-verity support Ahmad Fatoum
2026-01-21  8:06 ` [DistroKit] [PATCH 6/8] barebox: enable oftree fallback Ahmad Fatoum
2026-01-21  8:07 ` [DistroKit] [PATCH 7/8] barebox: r5: disable CONFIG_DEBUG_PROBES Ahmad Fatoum
2026-01-21  8:07 ` [DistroKit] [PATCH 8/8] v8a: barebox: patch in support for BeaglePlay RTL8211F-VD Ethernet PHY Ahmad Fatoum

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