* [DistroKit] [PATCH 1/5] v7a: tf-a: version bump v2.12 -> v2.14
@ 2026-02-03 17:33 Roland Hieber
2026-02-03 17:33 ` [DistroKit] [PATCH 2/5] v7a: tf-a: enable support for LXA FairyTux 2 Roland Hieber
` (3 more replies)
0 siblings, 4 replies; 6+ messages in thread
From: Roland Hieber @ 2026-02-03 17:33 UTC (permalink / raw)
To: distrokit; +Cc: Ahmad Fatoum, Roland Hieber
Update to the new version, which includes support for the Linux
Automation FairyTux 2. A regression prevents building the LXA TAC, so
add a patch, which is currently in upstream review.
Helped-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Signed-off-by: Roland Hieber <rhi@pengutronix.de>
---
...upport-for-multiple-entries-in-DTB_F.patch | 58 +++++++++++++++++++
.../platform-v7a/patches/tf-a-v2.14/series | 4 ++
configs/platform-v7a/platformconfig | 4 +-
3 files changed, 64 insertions(+), 2 deletions(-)
create mode 100644 configs/platform-v7a/patches/tf-a-v2.14/0001-fix-st-restore-support-for-multiple-entries-in-DTB_F.patch
create mode 100644 configs/platform-v7a/patches/tf-a-v2.14/series
diff --git a/configs/platform-v7a/patches/tf-a-v2.14/0001-fix-st-restore-support-for-multiple-entries-in-DTB_F.patch b/configs/platform-v7a/patches/tf-a-v2.14/0001-fix-st-restore-support-for-multiple-entries-in-DTB_F.patch
new file mode 100644
index 000000000000..bd1502a75b90
--- /dev/null
+++ b/configs/platform-v7a/patches/tf-a-v2.14/0001-fix-st-restore-support-for-multiple-entries-in-DTB_F.patch
@@ -0,0 +1,58 @@
+From: Ahmad Fatoum <a.fatoum@pengutronix.de>
+Date: Mon, 2 Feb 2026 16:49:02 +0100
+Subject: [PATCH] fix(st): restore support for multiple entries in
+ DTB_FILE_NAME
+
+Commit e772a6d1864a ("stm32mp1: platform.mk: support generating multiple
+images in one build") allowed DTB_FILE_NAME to contain multiple entries,
+thereby allowing to build all the executable code once and then link it
+against each device tree one by one.
+
+This makes for easier build system integration as one recipe/package can
+generate multiple images at once.
+
+This was broken by below mentioned commit, because it assumed
+DTB_FILE_NAME to contain only a single entry. Rework the -sp_min suffix
+logic to fix this regression.
+
+Fixes: 71ba1647e09c ("feat(st): use dedicated version of DT for SP_MIN")
+Change-Id: Ib596a404ccda92c3a3c29e276930a74f147734fc
+Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
+Upstream-Status: Submitted; https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/47888
+---
+ plat/st/stm32mp1/platform.mk | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/plat/st/stm32mp1/platform.mk b/plat/st/stm32mp1/platform.mk
+index 96856f88ba3a..8cb5e41a0488 100644
+--- a/plat/st/stm32mp1/platform.mk
++++ b/plat/st/stm32mp1/platform.mk
+@@ -109,14 +109,14 @@ FDT_SOURCES := $(addprefix ${BUILD_PLAT}/fdts/, $(patsubst %.dtb,%-bl2.dts,$(DT
+ ifeq ($(AARCH32_SP),sp_min)
+ BL32_DTSI := stm32mp15-bl32.dtsi
+ FDT_SOURCES += $(addprefix ${BUILD_PLAT}/fdts/, $(patsubst %.dtb,%-bl32.dts,$(DTB_FILE_NAME)))
+-ifneq (,$(wildcard $(patsubst %.dtb,fdts/%-sp_min.dts,$(DTB_FILE_NAME))))
+-ifeq (,$(findstring -sp_min,$(DTB_FILE_NAME)))
+-SP_EXT := -sp_min
+-endif
+-endif
+ endif
+ endif
+
++sp_dts_name = $(patsubst %.dts,%$(if $(and \
++ $(wildcard $(patsubst %.dts,fdts/%-sp_min.dts,$(notdir $(1)))), \
++ $(filter-out %-sp_min.dts,$(notdir $(1))) \
++ ),-sp_min).dts,$(notdir $(1)))
++
+ # Macros and rules to build TF binary
+ STM32_TF_STM32 := $(addprefix ${BUILD_PLAT}/tf-a-, $(patsubst %.dtb,%.stm32,$(DTB_FILE_NAME)))
+ STM32_LD_FILE := plat/st/stm32mp1/stm32mp1.ld.S
+@@ -273,7 +273,7 @@ BL2_SOURCES += plat/st/stm32mp1/plat_ddr.c
+ ifeq ($(AARCH32_SP),sp_min)
+ # Create DTB file for BL32
+ ${BUILD_PLAT}/fdts/%-bl32.dts: fdts/%.dts fdts/${BL32_DTSI} | $$(@D)/
+- $(q)echo '#include "$(patsubst %.dts,%$(SP_EXT).dts,$(patsubst fdts/%,%,$<))"' > $@
++ $(q)echo '#include "$(call sp_dts_name,$(patsubst fdts/%,%,$<))"' > $@
+ $(q)echo '#include "${BL32_DTSI}"' >> $@
+
+ ${BUILD_PLAT}/fdts/%-bl32.dtb: ${BUILD_PLAT}/fdts/%-bl32.dts | $$(@D)/
diff --git a/configs/platform-v7a/patches/tf-a-v2.14/series b/configs/platform-v7a/patches/tf-a-v2.14/series
new file mode 100644
index 000000000000..06810e63ab39
--- /dev/null
+++ b/configs/platform-v7a/patches/tf-a-v2.14/series
@@ -0,0 +1,4 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+0001-fix-st-restore-support-for-multiple-entries-in-DTB_F.patch
+# a5e0fa7c9e5657bac6944003d7969162 - git-ptx-patches magic
diff --git a/configs/platform-v7a/platformconfig b/configs/platform-v7a/platformconfig
index f3b380cfaee3..be011f93f8de 100644
--- a/configs/platform-v7a/platformconfig
+++ b/configs/platform-v7a/platformconfig
@@ -228,8 +228,8 @@ PTXCONF_OPTEE_CFG="CFG_TEE_CORE_LOG_LEVEL=2 CFG_WITH_PAGER=n CFG_GP_SOCKETS=n CF
PTXCONF_TF_A_STM32MP13=y
PTXCONF_TF_A=y
PTXCONF_TF_A_URL="https://github.com/ARM-software/arm-trusted-firmware/archive/refs/tags"
-PTXCONF_TF_A_VERSION="v2.12"
-PTXCONF_TF_A_MD5="dea016f3707117c7935a8a26433a1e46 5b90a1c21210702e64234a2beb79f23a"
+PTXCONF_TF_A_VERSION="v2.14"
+PTXCONF_TF_A_MD5="c4c27a01a40d0608c326345df0990c38"
PTXCONF_TF_A_ARCH_STRING="aarch32"
PTXCONF_TF_A_ARM_ARCH_MAJOR_7=y
# PTXCONF_TF_A_ARM_ARCH_MAJOR_8_32_BIT is not set
--
2.47.3
^ permalink raw reply [flat|nested] 6+ messages in thread
* [DistroKit] [PATCH 2/5] v7a: tf-a: enable support for LXA FairyTux 2
2026-02-03 17:33 [DistroKit] [PATCH 1/5] v7a: tf-a: version bump v2.12 -> v2.14 Roland Hieber
@ 2026-02-03 17:33 ` Roland Hieber
2026-02-03 17:33 ` [DistroKit] [PATCH 3/5] v7a: barebox: " Roland Hieber
` (2 subsequent siblings)
3 siblings, 0 replies; 6+ messages in thread
From: Roland Hieber @ 2026-02-03 17:33 UTC (permalink / raw)
To: distrokit; +Cc: Leonard Göhrs, Roland Hieber
From: Leonard Göhrs <l.goehrs@pengutronix.de>
Signed-off-by: Leonard Göhrs <l.goehrs@pengutronix.de>
[rhi: ported from distrokit-fairytux; all of the original patches have
meanwhile been merged in upstream tf-a]
Signed-off-by: Roland Hieber <rhi@pengutronix.de>
---
configs/platform-v7a/platformconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configs/platform-v7a/platformconfig b/configs/platform-v7a/platformconfig
index be011f93f8de..dcb55b529947 100644
--- a/configs/platform-v7a/platformconfig
+++ b/configs/platform-v7a/platformconfig
@@ -235,7 +235,7 @@ PTXCONF_TF_A_ARM_ARCH_MAJOR_7=y
# PTXCONF_TF_A_ARM_ARCH_MAJOR_8_32_BIT is not set
PTXCONF_TF_A_ARM_ARCH_MAJOR=7
PTXCONF_TF_A_PLATFORMS="stm32mp1"
-PTXCONF_TF_A_EXTRA_ARGS="DTB_FILE_NAME='stm32mp157c-dk2.dtb stm32mp157c-ev1.dtb stm32mp157c-lxa-mc1.dtb' STM32MP_EMMC=1 STM32MP_SDMMC=1 STM32MP_USB_PROGRAMMER=1 STM32MP_EMMC_BOOT=1"
+PTXCONF_TF_A_EXTRA_ARGS="DTB_FILE_NAME='stm32mp157c-dk2.dtb stm32mp157c-ev1.dtb stm32mp153c-lxa-fairytux2.dtb stm32mp157c-lxa-mc1.dtb' STM32MP_EMMC=1 STM32MP_SDMMC=1 STM32MP_USB_PROGRAMMER=1 STM32MP_EMMC_BOOT=1"
PTXCONF_TF_A_ARTIFACTS="tf-a-*.stm32 bl32.bin fdts/*-fw-config.dtb fdts/*-bl32.dtb"
#
--
2.47.3
^ permalink raw reply [flat|nested] 6+ messages in thread
* [DistroKit] [PATCH 3/5] v7a: barebox: enable support for LXA FairyTux 2
2026-02-03 17:33 [DistroKit] [PATCH 1/5] v7a: tf-a: version bump v2.12 -> v2.14 Roland Hieber
2026-02-03 17:33 ` [DistroKit] [PATCH 2/5] v7a: tf-a: enable support for LXA FairyTux 2 Roland Hieber
@ 2026-02-03 17:33 ` Roland Hieber
2026-02-03 17:33 ` [DistroKit] [PATCH 4/5] v7a: add and enable image generation for the " Roland Hieber
2026-02-03 17:33 ` [DistroKit] [PATCH 5/5] doc: add FairyTux 2 documentation Roland Hieber
3 siblings, 0 replies; 6+ messages in thread
From: Roland Hieber @ 2026-02-03 17:33 UTC (permalink / raw)
To: distrokit; +Cc: Leonard Göhrs, Roland Hieber
From: Leonard Göhrs <l.goehrs@pengutronix.de>
The board is already supported upstream. TLV support is needed for the
board code to read the EEPROM version info.
Signed-off-by: Leonard Göhrs <l.goehrs@pengutronix.de>
[rhi: ported from distrokit-fairytux; all of the original patches have
meanwhile been merged in upstream projects. Also enable CMD_TLV for
purposes of snooping around in the EEPROM, and the driver for the
PCA953X GPIO extender as well.]
Tested-by: Roland Hieber <rhi@pengutronix.de>
Signed-off-by: Roland Hieber <rhi@pengutronix.de>
---
configs/platform-v7a/barebox.config | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/configs/platform-v7a/barebox.config b/configs/platform-v7a/barebox.config
index 9b3cff897610..c1d52867b7d8 100644
--- a/configs/platform-v7a/barebox.config
+++ b/configs/platform-v7a/barebox.config
@@ -203,7 +203,7 @@ CONFIG_MACH_STM32MP13XX_DK=y
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_LXA_FAIRYTUX2=y
# CONFIG_MACH_SEEED_ODYSSEY is not set
CONFIG_MACH_STM32MP15X_EV1=y
# CONFIG_MACH_PROTONIC_STM32MP1 is not set
@@ -254,6 +254,7 @@ CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
CONFIG_ARCH_HAS_SJLJ=y
CONFIG_HAS_DEBUG_LL=y
CONFIG_HAVE_ARCH_KASAN=y
+CONFIG_BOARD_LXA=y
CONFIG_CC_IS_GCC=y
CONFIG_GCC_VERSION=150201
CONFIG_CLANG_VERSION=0
@@ -392,7 +393,9 @@ CONFIG_HAS_SCHED=y
CONFIG_POLLER=y
CONFIG_POLLER_WARN_OVERTIME=y
CONFIG_BTHREAD=y
-# CONFIG_TLV is not set
+CONFIG_TLV=y
+CONFIG_TLV_DRV=y
+CONFIG_TLV_BAREBOX=y
CONFIG_STATE=y
# CONFIG_STATE_CRYPTO is not set
# CONFIG_STATE_BACKWARD_COMPATIBLE is not set
@@ -674,6 +677,7 @@ CONFIG_CMD_TIME=y
CONFIG_CMD_WATCH=y
# CONFIG_CMD_UPTIME is not set
CONFIG_CMD_STATE=y
+CONFIG_CMD_TLV=y
# CONFIG_CMD_DHRYSTONE is not set
# CONFIG_CMD_SPD_DECODE is not set
# CONFIG_CMD_SEED is not set
@@ -1145,7 +1149,7 @@ CONFIG_GPIO_PINCONF=y
CONFIG_GPIO_GENERIC_PLATFORM=y
CONFIG_GPIO_IMX=y
CONFIG_GPIO_OMAP=y
-# CONFIG_GPIO_PCA953X is not set
+CONFIG_GPIO_PCA953X=y
# CONFIG_GPIO_PCF857X is not set
# CONFIG_GPIO_PL061 is not set
CONFIG_GPIO_RASPBERRYPI_EXP=y
@@ -1515,6 +1519,7 @@ CONFIG_LODEPNG=y
# CONFIG_BAREBOX_LOGO is not set
CONFIG_PRINTF_UUID=y
+CONFIG_PRINTF_HEXSTR=y
CONFIG_NLS=y
CONFIG_IDR=y
# end of Library routines
--
2.47.3
^ permalink raw reply [flat|nested] 6+ messages in thread
* [DistroKit] [PATCH 4/5] v7a: add and enable image generation for the LXA FairyTux 2
2026-02-03 17:33 [DistroKit] [PATCH 1/5] v7a: tf-a: version bump v2.12 -> v2.14 Roland Hieber
2026-02-03 17:33 ` [DistroKit] [PATCH 2/5] v7a: tf-a: enable support for LXA FairyTux 2 Roland Hieber
2026-02-03 17:33 ` [DistroKit] [PATCH 3/5] v7a: barebox: " Roland Hieber
@ 2026-02-03 17:33 ` Roland Hieber
2026-02-03 17:33 ` [DistroKit] [PATCH 5/5] doc: add FairyTux 2 documentation Roland Hieber
3 siblings, 0 replies; 6+ messages in thread
From: Roland Hieber @ 2026-02-03 17:33 UTC (permalink / raw)
To: distrokit; +Cc: Leonard Göhrs, Roland Hieber
From: Leonard Göhrs <l.goehrs@pengutronix.de>
The LXA FairyTux exists in two different generational variants, which
are coded into the name of the device tree, so we need to introduce a
new environment variable in the image config for that case.
The barebox-stm32mp-generic-bl33.img image loads the device tree from
the FIP, but we want to support both FairyTux 2 generations in one image
(otherwise we would need to propagate the '-genX' prefix through all
other generated images), therefore build stm32mp153c-lxa-fairytux2.fip
with the specific barebox-stm32mp153c-lxa-fairytux2.img image which
contains the device trees for both generations, and chooses the correct
one in lowlevel board code based on GPIO strapping pins.
Co-authored-by: Roland Hieber <rhi@pengutronix.de>
Signed-off-by: Leonard Göhrs <l.goehrs@pengutronix.de>
[rhi: ported from distrokit-fairytux; adapt image recipe for both
FairyTux 2 generations]
Tested-by: Roland Hieber <rhi@pengutronix.de>
Signed-off-by: Roland Hieber <rhi@pengutronix.de>
---
.../platform-v7a/config/images/stm32mp.config | 4 +-
configs/platform-v7a/platformconfig | 3 +-
.../platforms/image-lxa-fairytux2.in | 12 +++++
.../rules/image-lxa-fairytux2.make | 44 +++++++++++++++++++
.../rules/image-lxa-mc1-scmi.make | 6 ++-
configs/platform-v7a/rules/image-lxa-mc1.make | 6 ++-
.../rules/image-stm32mp157c-dk2.make | 6 ++-
.../rules/image-stm32mp157c-ev1.make | 6 ++-
.../lib/udev/rules.d/90-rauc-partitions.rules | 1 +
9 files changed, 81 insertions(+), 7 deletions(-)
create mode 100644 configs/platform-v7a/platforms/image-lxa-fairytux2.in
create mode 100644 configs/platform-v7a/rules/image-lxa-fairytux2.make
diff --git a/configs/platform-v7a/config/images/stm32mp.config b/configs/platform-v7a/config/images/stm32mp.config
index 93743b3c3d5e..5a9f8342acd4 100644
--- a/configs/platform-v7a/config/images/stm32mp.config
+++ b/configs/platform-v7a/config/images/stm32mp.config
@@ -53,8 +53,8 @@ image @STM32MP_BOARD@@SCMI@-emmcboot.img {
image @STM32MP_BOARD@@SCMI@.fip {
fip {
fw-config = "stm32mp1-@STM32MP_BOARD@-fw-config.dtb"
- hw-config = "barebox-@STM32MP_BOARD@@SCMI@.dtb"
- nt-fw = "barebox-stm32mp-generic-bl33.img"
+ hw-config = "barebox-@BAREBOX_DTB@@SCMI@.dtb"
+ nt-fw = "@BAREBOX_IMAGE@"
tos-fw = { "stm32mp1-bl32.bin" }
tos-fw-config = "stm32mp1-@STM32MP_BOARD@-bl32.dtb"
}
diff --git a/configs/platform-v7a/platformconfig b/configs/platform-v7a/platformconfig
index dcb55b529947..d4b29309e460 100644
--- a/configs/platform-v7a/platformconfig
+++ b/configs/platform-v7a/platformconfig
@@ -140,7 +140,7 @@ PTXCONF_KERNEL_IMAGE_Z=y
PTXCONF_KERNEL_IMAGE="zImage"
PTXCONF_KERNEL_DTB=y
PTXCONF_KERNEL_DTS_PATH="${PTXDIST_PLATFORMCONFIG_SUBDIR}/dts:${KERNEL_DIR}/arch/${GENERIC_KERNEL_ARCH}/boot/dts"
-PTXCONF_KERNEL_DTS="ti/omap/am335x-bone.dts ti/omap/am335x-boneblack.dts arm/vexpress-v2p-ca9.dts broadcom/bcm2836-rpi-2-b.dts nxp/imx/imx6q-sabrelite.dts nxp/imx/imx6sx-udoo-neo-full.dts nxp/imx/imx6dl-riotboard.dts nxp/imx/imx6q-nitrogen6x.dts nxp/imx/imx6qp-nitrogen6_max.dts nxp/imx/imx6ull-14x14-evk.dts broadcom/bcm2837-rpi-3-b.dts broadcom/bcm2837-rpi-cm3-io3.dts broadcom/bcm2711-rpi-4-b.dts broadcom/bcm2711-rpi-400.dts st/stm32mp157c-dk2.dts st/stm32mp157c-ev1.dts st/stm32mp157c-lxa-mc1.dts stm32mp157c-lxa-mc1-scmi.dts st/stm32mp135f-dk.dts microchip/at91-sama5d27_som1_ek.dts at91-sama5d27_giantboard.dts at91-sama5d4_wifx_l1.dts"
+PTXCONF_KERNEL_DTS="ti/omap/am335x-bone.dts ti/omap/am335x-boneblack.dts arm/vexpress-v2p-ca9.dts broadcom/bcm2836-rpi-2-b.dts nxp/imx/imx6q-sabrelite.dts nxp/imx/imx6sx-udoo-neo-full.dts nxp/imx/imx6dl-riotboard.dts nxp/imx/imx6q-nitrogen6x.dts nxp/imx/imx6qp-nitrogen6_max.dts nxp/imx/imx6ull-14x14-evk.dts broadcom/bcm2837-rpi-3-b.dts broadcom/bcm2837-rpi-cm3-io3.dts broadcom/bcm2711-rpi-4-b.dts broadcom/bcm2711-rpi-400.dts st/stm32mp157c-dk2.dts st/stm32mp157c-ev1.dts st/stm32mp157c-lxa-mc1.dts stm32mp157c-lxa-mc1-scmi.dts st/stm32mp153c-lxa-fairytux2-gen1.dts st/stm32mp153c-lxa-fairytux2-gen2.dts st/stm32mp135f-dk.dts microchip/at91-sama5d27_som1_ek.dts at91-sama5d27_giantboard.dts at91-sama5d4_wifx_l1.dts "
# PTXCONF_KERNEL_DTBO is not set
# PTXCONF_KERNEL_CODE_SIGNING is not set
# PTXCONF_KERNEL_ZSTD is not set
@@ -281,6 +281,7 @@ PTXCONF_IMAGE_KERNEL_INSTALL_EARLY=y
# PTXCONF_IMAGE_KERNEL_LZOP is not set
# end of Generate images/linuximage
+PTXCONF_IMAGE_LXA_FAIRYTUX2=y
PTXCONF_IMAGE_LXA_MC1_SCMI=y
PTXCONF_IMAGE_LXA_MC1=y
PTXCONF_IMAGE_RAUC=y
diff --git a/configs/platform-v7a/platforms/image-lxa-fairytux2.in b/configs/platform-v7a/platforms/image-lxa-fairytux2.in
new file mode 100644
index 000000000000..06384168b70c
--- /dev/null
+++ b/configs/platform-v7a/platforms/image-lxa-fairytux2.in
@@ -0,0 +1,12 @@
+## SECTION=image
+
+config IMAGE_LXA_FAIRYTUX2
+ tristate
+ select HOST_GENIMAGE
+ select HOST_TF_A
+ select BAREBOX
+ select IMAGE_ROOT_EXT
+ select TF_A
+ prompt "Generate images/lxa-fairytux2.hdimg"
+ help
+ Generate GPT image for the Linux Automation FairyTux 2
diff --git a/configs/platform-v7a/rules/image-lxa-fairytux2.make b/configs/platform-v7a/rules/image-lxa-fairytux2.make
new file mode 100644
index 000000000000..9332ccb2dd52
--- /dev/null
+++ b/configs/platform-v7a/rules/image-lxa-fairytux2.make
@@ -0,0 +1,44 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2020 by Ahmad Fatoum <a.fatoum@pengutronix.de>
+# Copyright (C) 2024 by Leonard Göhrs <l.goehrs@pengutronix.de>
+# Copyright (C) 2026 Roland Hieber, Pengutronix <rhi@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+IMAGE_PACKAGES-$(PTXCONF_IMAGE_LXA_FAIRYTUX2) += image-lxa-fairytux2
+
+# Note: though the -gen2 DTB is packaged into the FIP image, it is not really
+# used because barebox-stm32mp153c-lxa-fairytux2.img also contains both DTBs and
+# chooses the correct one in lowlevel code based on version strapping pins on
+# the board.
+IMAGE_LXA_FAIRYTUX2_ENV := \
+ STM32MP_BOARD=stm32mp153c-lxa-fairytux2 \
+ BAREBOX_DTB=stm32mp153c-lxa-fairytux2-gen2 \
+ BAREBOX_IMAGE=barebox-stm32mp153c-lxa-fairytux2.img \
+ SCMI=
+
+#
+# Paths and names
+#
+IMAGE_LXA_FAIRYTUX2 := image-lxa-fairytux2
+IMAGE_LXA_FAIRYTUX2_DIR := $(BUILDDIR)/$(IMAGE_LXA_FAIRYTUX2)
+IMAGE_LXA_FAIRYTUX2_IMAGE := $(IMAGEDIR)/lxa-fairytux2.hdimg
+IMAGE_LXA_FAIRYTUX2_FILES := $(IMAGEDIR)/root.tgz
+IMAGE_LXA_FAIRYTUX2_CONFIG := stm32mp.config
+
+# ----------------------------------------------------------------------------
+# Image
+# ----------------------------------------------------------------------------
+
+$(IMAGE_LXA_FAIRYTUX2_IMAGE):
+ @$(call targetinfo)
+ @$(call image/genimage, IMAGE_LXA_FAIRYTUX2)
+ @$(call finish)
+
+# vim: syntax=make
diff --git a/configs/platform-v7a/rules/image-lxa-mc1-scmi.make b/configs/platform-v7a/rules/image-lxa-mc1-scmi.make
index 7dc7863012fa..16cec3413c8f 100644
--- a/configs/platform-v7a/rules/image-lxa-mc1-scmi.make
+++ b/configs/platform-v7a/rules/image-lxa-mc1-scmi.make
@@ -11,7 +11,11 @@
#
IMAGE_PACKAGES-$(PTXCONF_IMAGE_LXA_MC1_SCMI) += image-lxa-mc1-scmi
-IMAGE_LXA_MC1_SCMI_ENV := STM32MP_BOARD=stm32mp157c-lxa-mc1 SCMI=-scmi
+IMAGE_LXA_MC1_SCMI_ENV := \
+ STM32MP_BOARD=stm32mp157c-lxa-mc1 \
+ BAREBOX_DTB=stm32mp157c-lxa-mc1 \
+ BAREBOX_IMAGE=barebox-stm32mp-generic-bl33.img \
+ SCMI=-scmi
#
# Paths and names
diff --git a/configs/platform-v7a/rules/image-lxa-mc1.make b/configs/platform-v7a/rules/image-lxa-mc1.make
index 98a294304136..969de2874ab6 100644
--- a/configs/platform-v7a/rules/image-lxa-mc1.make
+++ b/configs/platform-v7a/rules/image-lxa-mc1.make
@@ -11,7 +11,11 @@
#
IMAGE_PACKAGES-$(PTXCONF_IMAGE_LXA_MC1) += image-lxa-mc1
-IMAGE_LXA_MC1_ENV := STM32MP_BOARD=stm32mp157c-lxa-mc1 SCMI=
+IMAGE_LXA_MC1_ENV := \
+ STM32MP_BOARD=stm32mp157c-lxa-mc1 \
+ BAREBOX_DTB=stm32mp157c-lxa-mc1 \
+ BAREBOX_IMAGE=barebox-stm32mp-generic-bl33.img \
+ SCMI=
#
# Paths and names
diff --git a/configs/platform-v7a/rules/image-stm32mp157c-dk2.make b/configs/platform-v7a/rules/image-stm32mp157c-dk2.make
index cc6c722a24e7..9a51469f4588 100644
--- a/configs/platform-v7a/rules/image-stm32mp157c-dk2.make
+++ b/configs/platform-v7a/rules/image-stm32mp157c-dk2.make
@@ -11,7 +11,11 @@
#
IMAGE_PACKAGES-$(PTXCONF_IMAGE_STM32MP157C_DK2) += image-stm32mp157c-dk2
-IMAGE_STM32MP157C_DK2_ENV := STM32MP_BOARD=stm32mp157c-dk2 SCMI=
+IMAGE_STM32MP157C_DK2_ENV := \
+ STM32MP_BOARD=stm32mp157c-dk2 \
+ BAREBOX_DTB=stm32mp157c-dk2 \
+ BAREBOX_IMAGE=barebox-stm32mp-generic-bl33.img \
+ SCMI=
#
# Paths and names
diff --git a/configs/platform-v7a/rules/image-stm32mp157c-ev1.make b/configs/platform-v7a/rules/image-stm32mp157c-ev1.make
index 081e2d93948c..1bdf960dc019 100644
--- a/configs/platform-v7a/rules/image-stm32mp157c-ev1.make
+++ b/configs/platform-v7a/rules/image-stm32mp157c-ev1.make
@@ -11,7 +11,11 @@
#
IMAGE_PACKAGES-$(PTXCONF_IMAGE_STM32MP157C_EV1) += image-stm32mp157c-ev1
-IMAGE_STM32MP157C_EV1_ENV := STM32MP_BOARD=stm32mp157c-ev1 SCMI=
+IMAGE_STM32MP157C_EV1_ENV := \
+ STM32MP_BOARD=stm32mp157c-ev1 \
+ BAREBOX_DTB=stm32mp157c-ev1 \
+ BAREBOX_IMAGE=barebox-stm32mp-generic-bl33.img \
+ SCMI=
#
# Paths and names
diff --git a/projectroot/usr/lib/udev/rules.d/90-rauc-partitions.rules b/projectroot/usr/lib/udev/rules.d/90-rauc-partitions.rules
index 8f918b1bdb0e..181f7e25c912 100644
--- a/projectroot/usr/lib/udev/rules.d/90-rauc-partitions.rules
+++ b/projectroot/usr/lib/udev/rules.d/90-rauc-partitions.rules
@@ -11,6 +11,7 @@ IMPORT{program}="of_base_compatible"
# first part: find out the boot disk on known platforms
ENV{OF_BASE_COMPATIBLE}=="*arm,vexpress,v2p-ca9*", ENV{ID_PATH}=="platform-bus@40000000:motherboard-bus@40000000:iofpga@7,00000000-amba-10005000.mmci", TAG+="boot_disk"
+ENV{OF_BASE_COMPATIBLE}=="*lxa,stm32mp153c-fairytux2*", ENV{ID_PATH}="=platform-soc-amba-58007000.mmc", TAG+="boot_disk"
ENV{OF_BASE_COMPATIBLE}=="*lxa,stm32mp157c-mc1*", ENV{ID_PATH}=="platform-soc-amba-58005000.mmc", TAG+="boot_disk"
ENV{OF_BASE_COMPATIBLE}=="*ti,am335x-bone-black*", ENV{ID_PATH}=="platform-48060000.mmc", TAG+="boot_disk"
ENV{OF_BASE_COMPATIBLE}=="*raspberrypi,3-model-b*", ENV{ID_PATH}=="platform-3f202000.mmc", TAG+="boot_disk"
--
2.47.3
^ permalink raw reply [flat|nested] 6+ messages in thread
* [DistroKit] [PATCH 5/5] doc: add FairyTux 2 documentation
2026-02-03 17:33 [DistroKit] [PATCH 1/5] v7a: tf-a: version bump v2.12 -> v2.14 Roland Hieber
` (2 preceding siblings ...)
2026-02-03 17:33 ` [DistroKit] [PATCH 4/5] v7a: add and enable image generation for the " Roland Hieber
@ 2026-02-03 17:33 ` Roland Hieber
2026-02-03 17:37 ` [DistroKit] [PATCH] fixup! " Roland Hieber
3 siblings, 1 reply; 6+ messages in thread
From: Roland Hieber @ 2026-02-03 17:33 UTC (permalink / raw)
To: distrokit; +Cc: Ahmad Fatoum, Roland Hieber
From: Ahmad Fatoum <a.fatoum@pengutronix.de>
These are the steps needed to flash the FairyTux 2 eMMC.
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Tested-by: Roland Hieber <rhi@pengutronix.de>
[rhi: ported from distrokit-fairytux; adapt the image paths and fastboot
partition names, remove the unneccesary usbgadget call since it starts
automatically at boot, reformulate to make the fastboot process a bit
clearer, and add the short Maintenance Status section.]
Signed-off-by: Roland Hieber <rhi@pengutronix.de>
---
doc/hardware_v7a_fairytux_2.rst | 55 +++++++++++++++++++++++++++++++++
1 file changed, 55 insertions(+)
create mode 100644 doc/hardware_v7a_fairytux_2.rst
diff --git a/doc/hardware_v7a_fairytux_2.rst b/doc/hardware_v7a_fairytux_2.rst
new file mode 100644
index 000000000000..ca9350ab7cac
--- /dev/null
+++ b/doc/hardware_v7a_fairytux_2.rst
@@ -0,0 +1,55 @@
+LXA FairyTux 2
+==============
+
+The FairyTux 2 is a Octavo STM32MP1 SiP-based board like the MC-1,
+but unlike it, exclusively boots from eMMC.
+
+Initial Setup
+-------------
+
+If the eMMC is unprovisioned, the system must be bootstrapped via USB DFU
+initially.
+
+On your development host, run:
+
+.. code-block:: bash
+
+ $ cd platform-v7a/images
+ $ dfu-util --alt 1 -D stm32mp1-tf-a-stm32mp153c-lxa-fairytux2.stm32
+ $ dfu-util --alt 3 -D stm32mp153c-lxa-fairytux2.fip
+ $ dfu-util --alt 0 -e
+
+Or via Labgrid:
+
+.. code-block:: bash
+
+ $ cd platform-v7a/images
+ $ labgrid-client dfu download 1 stm32mp1-tf-a-stm32mp153c-lxa-fairytux2.stm32
+ $ labgrid-client dfu download 3 stm32mp153c-lxa-fairytux2.fip
+ $ labgrid-client dfu detach 0
+
+Then flash the eMMC via Android Fastboot from your development host:
+
+.. code-block:: bash
+
+ $ fastboot flash bbu-mmc stm32mp153c-lxa-fairytux2-emmcboot.img
+
+Now Barebox will start from the eMMC boot partition on future boots.
+
+Flashing the eMMC
+-----------------
+
+When the board is running barebox,
+you can populate the eMMC with the Linux and userspace image with Fastboot:
+
+.. code-block:: bash
+
+ $ fastboot flash mmc1 lxa-fairytux2.hdimg
+
+When Fastboot has finished, type ``boot`` on the Barebox prompt.
+
+Maintenance Status
+------------------
+Pengutronix has at least two board running in a remote lab (labgrid place names
+``gutefee-00001`` (Gen 1) and ``gutefee-00011`` (Gen 2)).
--
2.47.3
^ permalink raw reply [flat|nested] 6+ messages in thread
* [DistroKit] [PATCH] fixup! doc: add FairyTux 2 documentation
2026-02-03 17:33 ` [DistroKit] [PATCH 5/5] doc: add FairyTux 2 documentation Roland Hieber
@ 2026-02-03 17:37 ` Roland Hieber
0 siblings, 0 replies; 6+ messages in thread
From: Roland Hieber @ 2026-02-03 17:37 UTC (permalink / raw)
To: distrokit; +Cc: Roland Hieber
Just a small typo that I noticed two seconds after sending…
Signed-off-by: Roland Hieber <rhi@pengutronix.de>
---
doc/hardware_v7a_fairytux_2.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/doc/hardware_v7a_fairytux_2.rst b/doc/hardware_v7a_fairytux_2.rst
index 582a0aec9a79..7640069bf30c 100644
--- a/doc/hardware_v7a_fairytux_2.rst
+++ b/doc/hardware_v7a_fairytux_2.rst
@@ -51,5 +51,5 @@ When Fastboot has finished, type ``boot`` on the Barebox prompt.
Maintenance Status
------------------
-Pengutronix has at least two board running in a remote lab (labgrid place names
+Pengutronix has at least two boards running in a remote lab (labgrid place names
``gutefee-00001`` (Gen 1) and ``gutefee-00011`` (Gen 2)).
--
2.47.3
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2026-02-03 17:37 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-02-03 17:33 [DistroKit] [PATCH 1/5] v7a: tf-a: version bump v2.12 -> v2.14 Roland Hieber
2026-02-03 17:33 ` [DistroKit] [PATCH 2/5] v7a: tf-a: enable support for LXA FairyTux 2 Roland Hieber
2026-02-03 17:33 ` [DistroKit] [PATCH 3/5] v7a: barebox: " Roland Hieber
2026-02-03 17:33 ` [DistroKit] [PATCH 4/5] v7a: add and enable image generation for the " Roland Hieber
2026-02-03 17:33 ` [DistroKit] [PATCH 5/5] doc: add FairyTux 2 documentation Roland Hieber
2026-02-03 17:37 ` [DistroKit] [PATCH] fixup! " Roland Hieber
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox