* [DistroKit] [PATCH 0/9] v7a: vexpress: Switch from vexpress-a9 to virt
@ 2026-05-26 19:36 Ahmad Fatoum
2026-05-26 19:36 ` [DistroKit] [PATCH 1/9] v7a: rauc: fix /dev/disk/by-usage symlinks for FairyTux 2 Ahmad Fatoum
` (8 more replies)
0 siblings, 9 replies; 10+ messages in thread
From: Ahmad Fatoum @ 2026-05-26 19:36 UTC (permalink / raw)
To: distrokit; +Cc: Ahmad Fatoum
The Vexpress support added to DistroKit was explicitly added for use
with QEMU. barebox has rudimentary support for the Vexpress, but it has
since been overshadowed by the more extensive support for the QEMU Virt
platform.
barebox commit 8a7a891c5d35 ("clk: vexpress: clk-sp810: sync with Linux"),
first included with v2026.01.0 fixed a possible crash for vexpress-a15
by synchronizing the Vexpress/Versatile clock driver against the
upstream version in Linux.
A side effect of this is that the clock on the vexpress-a9, which we are
using, is now twice as fast, so sleep 10 in barebox takes 5 seconds instead.
There is a Github issue[1] to address this regression, but until that's
resolved, we need to restore things to working order here.
Let's use the occasion for some cleanup and switch over fully to Virt.
This also has the advantage that this is similar to how we would
likely implement the run command for v8 as well.
Ahmad Fatoum (9):
v7a: rauc: fix /dev/disk/by-usage symlinks for FairyTux 2
v7a: vexpress: do not save environment on missing-bootsource
datapartition: fix regex for virtualized block devices
v7a: delete non-functional run-nfs
v7a: run: drop non-functional scsi option
v7a: vexpress: drop non-functional 9p boot target
v7a: vexpress: Switch from vexpress-a9 to virt
v7a: run: do not shutdown on reboot
Revert "platform-v7a: vexpress: use only one core for barebox"
.../init/missing-bootsource | 5 +-
.../match.of_compatible/arm,vexpress/boot/9p | 10 --
.../linux,dummy-virt/boot/qemu-virt.root-A | 4 +
.../linux,dummy-virt/boot/qemu-virt.root-B | 4 +
configs/platform-v7a/barebox.config | 25 ++++-
.../config/images/vexpress-nor.config | 8 +-
configs/platform-v7a/kernelconfig | 13 ++-
configs/platform-v7a/platformconfig | 2 +-
configs/platform-v7a/qemu-common | 92 -------------------
.../rules/image-vexpress-nor.make | 4 -
configs/platform-v7a/run | 52 +++--------
configs/platform-v7a/run-nfs | 20 ----
projectroot/etc/rc.once.d/repart | 2 +-
.../lib/udev/rules.d/90-rauc-partitions.rules | 4 +-
14 files changed, 56 insertions(+), 189 deletions(-)
delete mode 100644 configs/platform-v7a/barebox-defaultenv/match.of_compatible/arm,vexpress/boot/9p
create mode 100644 configs/platform-v7a/barebox-defaultenv/match.of_compatible/linux,dummy-virt/boot/qemu-virt.root-A
create mode 100755 configs/platform-v7a/barebox-defaultenv/match.of_compatible/linux,dummy-virt/boot/qemu-virt.root-B
delete mode 100755 configs/platform-v7a/qemu-common
delete mode 100755 configs/platform-v7a/run-nfs
--
2.47.3
^ permalink raw reply [flat|nested] 10+ messages in thread
* [DistroKit] [PATCH 1/9] v7a: rauc: fix /dev/disk/by-usage symlinks for FairyTux 2
2026-05-26 19:36 [DistroKit] [PATCH 0/9] v7a: vexpress: Switch from vexpress-a9 to virt Ahmad Fatoum
@ 2026-05-26 19:36 ` Ahmad Fatoum
2026-05-26 19:36 ` [DistroKit] [PATCH 2/9] v7a: vexpress: do not save environment on missing-bootsource Ahmad Fatoum
` (7 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Ahmad Fatoum @ 2026-05-26 19:36 UTC (permalink / raw)
To: distrokit; +Cc: Ahmad Fatoum
Fix a typo that would cause the udev rule to never match on
the FairyTux 2.
Fixes: d9a7b56a3f0e ("v7a: add and enable image generation for the LXA FairyTux 2")
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
---
projectroot/usr/lib/udev/rules.d/90-rauc-partitions.rules | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
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 181f7e25c912..575c913d46cc 100644
--- a/projectroot/usr/lib/udev/rules.d/90-rauc-partitions.rules
+++ b/projectroot/usr/lib/udev/rules.d/90-rauc-partitions.rules
@@ -11,7 +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,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] 10+ messages in thread
* [DistroKit] [PATCH 2/9] v7a: vexpress: do not save environment on missing-bootsource
2026-05-26 19:36 [DistroKit] [PATCH 0/9] v7a: vexpress: Switch from vexpress-a9 to virt Ahmad Fatoum
2026-05-26 19:36 ` [DistroKit] [PATCH 1/9] v7a: rauc: fix /dev/disk/by-usage symlinks for FairyTux 2 Ahmad Fatoum
@ 2026-05-26 19:36 ` Ahmad Fatoum
2026-05-26 19:36 ` [DistroKit] [PATCH 3/9] datapartition: fix regex for virtualized block devices Ahmad Fatoum
` (6 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Ahmad Fatoum @ 2026-05-26 19:36 UTC (permalink / raw)
To: distrokit; +Cc: Ahmad Fatoum
saveenv persists the newly added scripts to flash, but the scripts are
generated anew on each boot anyway. It's thus perfectly fine to just
leave them in memory and save the time needed to write them out as well
as the associated message, which can be confusing to users:
saving environment to /dev/nor0.barebox-environment
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
---
configs/platform-v7a/barebox-defaultenv/init/missing-bootsource | 1 -
1 file changed, 1 deletion(-)
diff --git a/configs/platform-v7a/barebox-defaultenv/init/missing-bootsource b/configs/platform-v7a/barebox-defaultenv/init/missing-bootsource
index d8637c540803..4161b4590ea1 100644
--- a/configs/platform-v7a/barebox-defaultenv/init/missing-bootsource
+++ b/configs/platform-v7a/barebox-defaultenv/init/missing-bootsource
@@ -15,4 +15,3 @@ for part in root-A root-B; do
echo -a /env/boot/bootsource.${part} "boot ${realbootsource}.${part}"
fi
done
-saveenv
--
2.47.3
^ permalink raw reply [flat|nested] 10+ messages in thread
* [DistroKit] [PATCH 3/9] datapartition: fix regex for virtualized block devices
2026-05-26 19:36 [DistroKit] [PATCH 0/9] v7a: vexpress: Switch from vexpress-a9 to virt Ahmad Fatoum
2026-05-26 19:36 ` [DistroKit] [PATCH 1/9] v7a: rauc: fix /dev/disk/by-usage symlinks for FairyTux 2 Ahmad Fatoum
2026-05-26 19:36 ` [DistroKit] [PATCH 2/9] v7a: vexpress: do not save environment on missing-bootsource Ahmad Fatoum
@ 2026-05-26 19:36 ` Ahmad Fatoum
2026-05-26 19:36 ` [DistroKit] [PATCH 4/9] v7a: delete non-functional run-nfs Ahmad Fatoum
` (5 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Ahmad Fatoum @ 2026-05-26 19:36 UTC (permalink / raw)
To: distrokit; +Cc: Ahmad Fatoum
The closing parenthesis at the end of the pattern did not close
a capture group, but was interpreted literally, thus preventing match
of any Virt I/O block device returned by rdev.
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
---
projectroot/etc/rc.once.d/repart | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/projectroot/etc/rc.once.d/repart b/projectroot/etc/rc.once.d/repart
index c84ab31f67a1..a32be3231847 100755
--- a/projectroot/etc/rc.once.d/repart
+++ b/projectroot/etc/rc.once.d/repart
@@ -1,5 +1,5 @@
#!/bin/sh
-if rdev | grep -q '/dev/hd.*[0-9]\|/dev/mmcblk.*[0-9]\|/dev/sd.*[0-9]\|/dev/vd.*[0-9])'; then
+if rdev | grep -q '/dev/hd.*[0-9]\|/dev/mmcblk.*[0-9]\|/dev/sd.*[0-9]\|/dev/vd.*[0-9]'; then
echo "Repartitioning the root disk..."
systemd-repart --dry-run=no --definitions=/etc/repart.rc-once.d/
else
--
2.47.3
^ permalink raw reply [flat|nested] 10+ messages in thread
* [DistroKit] [PATCH 4/9] v7a: delete non-functional run-nfs
2026-05-26 19:36 [DistroKit] [PATCH 0/9] v7a: vexpress: Switch from vexpress-a9 to virt Ahmad Fatoum
` (2 preceding siblings ...)
2026-05-26 19:36 ` [DistroKit] [PATCH 3/9] datapartition: fix regex for virtualized block devices Ahmad Fatoum
@ 2026-05-26 19:36 ` Ahmad Fatoum
2026-05-26 19:36 ` [DistroKit] [PATCH 5/9] v7a: run: drop non-functional scsi option Ahmad Fatoum
` (4 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Ahmad Fatoum @ 2026-05-26 19:36 UTC (permalink / raw)
To: distrokit; +Cc: Ahmad Fatoum
This has bitrotted to a degree that it's not usable any longer with
modern QEMU versions:
qemu-system-arm: -redir: invalid option
The run script has support for both nfs and 9p booting and while I
couldn't get them to work, they at least don't use removed qemu
arguments. Therefore, drop this dead code.
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
---
configs/platform-v7a/qemu-common | 92 --------------------------------
configs/platform-v7a/run-nfs | 20 -------
2 files changed, 112 deletions(-)
delete mode 100755 configs/platform-v7a/qemu-common
delete mode 100755 configs/platform-v7a/run-nfs
diff --git a/configs/platform-v7a/qemu-common b/configs/platform-v7a/qemu-common
deleted file mode 100755
index 86e25846263b..000000000000
--- a/configs/platform-v7a/qemu-common
+++ /dev/null
@@ -1,92 +0,0 @@
-#!/bin/bash
-#
-# This is sourced by the run scripts.
-
-platformconfig=selected_platformconfig
-# fallback to platformconfig in the same dir as this script
-if [ ! -e "$platformconfig" ]; then
- platformconfig=$(dirname $0)/platformconfig
-fi
-
-#
-# we need information about the platform
-#
-if [ ! -e "$platformconfig" ]; then
- echo "error: selected_platformconfig does not exist"
- echo " please use 'ptxdist platform ...' or 'ptxdist --platformconfig=...'"
- exit 1
-fi
-
-source $platformconfig
-
-if [ -n "${PTXCONF_PLATFORM}" ]; then
- PTXDIST_PLATFORMDIR="./platform-${PTXCONF_PLATFORM}"
-else
- PTXDIST_PLATFORMDIR="."
-fi
-
-if [ ! -e "${PTXDIST_PLATFORMDIR}/images/linuximage" ]; then
- echo "error: run 'ptxdist go' first"
- exit 1
-fi
-
-if [ ! -e "${PTXDIST_PLATFORMDIR}/images/hd.img" ]; then
- echo "error: run 'ptxdist images' first"
- exit 1
-fi
-
-#if [ ! -e "${PTXDIST_PLATFORMDIR}/images/nor0.img" ]; then
-# echo "error: run 'ptxdist images' first"
-# exit 1
-#fi
-
-# the emulator to run
-QEMU_EXEC="${PTXDIST_PLATFORMDIR}/sysroot-host/bin/qemu-system-arm"
-
-if [ ! -e "${QEMU_EXEC}" ]; then
- echo "error: enable and install 'host-qemu' first"
- exit 1
-fi
-
-# disable this, if you want to have some graphics output
-QEMU_NOGRAPHIC=-nographic
-
-# Machine to emulate: The default kernel is prepared to run on "versatile pb"
-QEMU_MACHINE=vexpress-a9
-
-#
-# 'user mode' network related settings
-#
-PLATFORM_IP="10.0.2.7"
-
-#
-# *_INTERNAL_PORT: the port a service would connect (in the emulated system)
-# *_EXTERNAL_PORT: port QEMU opens at the host side to give access to the ${*_INTERNAL_PORT}
-#
-TELNET_INTERNAL_PORT=23
-TELNET_EXTERNAL_PORT=20023
-
-HTTP_INTERNAL_PORT=80
-HTTP_EXTERNAL_PORT=20080
-
-if [ -z "${VDE_SOCKET}" ]; then
- for dir in $(ls -d /var/run/vde2/*.ctl 2>/dev/null); do
- if [ -r "${dir}" ]; then
- VDE_SOCKET="${dir}"
- fi
- done
-fi
-if [ -n "${VDE_SOCKET}" ]; then
- if ${QEMU_EXEC} --help | grep -q -- '-net vde'; then
- QEMU_NET="-net vde,vlan=1,sock=${VDE_SOCKET}"
- fi
-fi
-if [ -z "${QEMU_NET}" ]; then
- QEMU_NET="-net user,vlan=1"
- PLATFORM_IP=""
-fi
-
-QEMU_REDIR=" \
- -redir tcp:${TELNET_EXTERNAL_PORT}:${PLATFORM_IP}:${TELNET_INTERNAL_PORT} \
- -redir tcp:${HTTP_EXTERNAL_PORT}:${PLATFORM_IP}:${HTTP_INTERNAL_PORT} \
-"
diff --git a/configs/platform-v7a/run-nfs b/configs/platform-v7a/run-nfs
deleted file mode 100755
index c78e36ca1ea0..000000000000
--- a/configs/platform-v7a/run-nfs
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/bash
-#
-# For some information about how to work with qemu for ARM, please
-# refer: http://fedoraproject.org/wiki/Architectures/ARM/HowToQemu
-
-. $(dirname $0)/qemu-common
-
-# do the job
-${QEMU_EXEC} ${QEMU_NOGRAPHIC} \
- -M ${QEMU_MACHINE} \
- -m 1024 \
- -no-reboot \
- -net nic,vlan=1 \
- ${QEMU_NET} \
- ${QEMU_REDIR} \
- -kernel ${PTXDIST_PLATFORMDIR}/images/linuximage \
- -dtb ${PTXDIST_PLATFORMDIR}/images/vexpress-v2p-ca9.dtb \
- -smp 1 \
- -append "console=ttyAMA0 root=/dev/nfs nfsroot=10.0.2.2:/root,v3,tcp,port=2049,mountport=2049 rw mem=1024M rootwait loglevel=5 systemd.show_status=auto ip=dhcp"
-
--
2.47.3
^ permalink raw reply [flat|nested] 10+ messages in thread
* [DistroKit] [PATCH 5/9] v7a: run: drop non-functional scsi option
2026-05-26 19:36 [DistroKit] [PATCH 0/9] v7a: vexpress: Switch from vexpress-a9 to virt Ahmad Fatoum
` (3 preceding siblings ...)
2026-05-26 19:36 ` [DistroKit] [PATCH 4/9] v7a: delete non-functional run-nfs Ahmad Fatoum
@ 2026-05-26 19:36 ` Ahmad Fatoum
2026-05-26 19:36 ` [DistroKit] [PATCH 6/9] v7a: vexpress: drop non-functional 9p boot target Ahmad Fatoum
` (3 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Ahmad Fatoum @ 2026-05-26 19:36 UTC (permalink / raw)
To: distrokit; +Cc: Ahmad Fatoum
We never enabled CONFIG_SCSI_VIRTIO for the v7a platform, so I am unsure
if this ever worked.
It doesn't work now though and I don't see the upside compared to the
configs/platform-v7a/run mmc, which does work, so drop it.
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
---
configs/platform-v7a/run | 26 --------------------------
1 file changed, 26 deletions(-)
diff --git a/configs/platform-v7a/run b/configs/platform-v7a/run
index 9d0d7a0a9179..c4c70677e95d 100755
--- a/configs/platform-v7a/run
+++ b/configs/platform-v7a/run
@@ -79,21 +79,6 @@ QEMU_ARGS=( "${QEMU_ARGS[@]}" -rtc base=2000-01-01 )
# no watchdog available on vexpress
#QEMU_ARGS=( "${QEMU_ARGS[@]}" -watchdog i6300esb -watchdog-action poweroff )
QEMU_ARGS=( "${QEMU_ARGS[@]}" -object rng-random,filename=/dev/random,id=rng0 -device virtio-rng-device,rng=rng0 )
-# SCSI bus
-QEMU_ARGS=( "${QEMU_ARGS[@]}" -device virtio-scsi-device,id=scsi )
-# Add virtual SCSI device if available
-if [ -e "${PTXDIST_PLATFORMDIR}/images/usbstick.img" ]; then
- echo "SCSI unplug/plug in the QEMU console (C-a c):"
- echo
- echo "device_del plug"
- echo
- echo "drive_add 0 if=none,format=raw,id=scsiplug,file=${PTXDIST_PLATFORMDIR}/images/usbstick.img"
- echo "device_add scsi-hd,drive=scsiplug,removable=true,id=plug"
- echo
- QEMU_EXTRA_ARGS=( \
- -drive if=none,format=raw,id=scsiplug,file=${PTXDIST_PLATFORMDIR}/images/usbstick.img \
- -device scsi-hd,drive=scsiplug,removable=true,id=plug )
-fi
QEMU_LINUX_ARGS=( -kernel ${PTXDIST_PLATFORMDIR}/images/linuximage -dtb ${PTXDIST_PLATFORMDIR}/images/vexpress-v2p-ca9.dtb )
# the barebox device tree has a state node for bootchooser
QEMU_BAREBOX_ARGS=( -dtb ${PTXDIST_PLATFORMDIR}/images/barebox-vexpress-v2p-ca9.dtb )
@@ -135,17 +120,6 @@ run_qemu_nfs() {
-append "root=/dev/nfs nfsroot=/root,v3,tcp,port=2049,mountport=2049 ip=dhcp ${BASE_CMDLINE}"
}
-run_qemu_scsi() {
- check_hd
- exec ${QEMU_EXEC} \
- "${QEMU_ARGS[@]}" \
- -drive if=none,format=raw,file=${PTXDIST_PLATFORMDIR}/images/hd.img,id=disk0 \
- -device scsi-hd,drive=disk0 \
- "${QEMU_EXTRA_ARGS[@]}" \
- "${QEMU_LINUX_ARGS[@]}" \
- -append "root=/dev/sda1 rootfstype=ext4 rootwait ${BASE_CMDLINE}"
-}
-
run_qemu_mmc() {
check_hd
exec ${QEMU_EXEC} \
--
2.47.3
^ permalink raw reply [flat|nested] 10+ messages in thread
* [DistroKit] [PATCH 6/9] v7a: vexpress: drop non-functional 9p boot target
2026-05-26 19:36 [DistroKit] [PATCH 0/9] v7a: vexpress: Switch from vexpress-a9 to virt Ahmad Fatoum
` (4 preceding siblings ...)
2026-05-26 19:36 ` [DistroKit] [PATCH 5/9] v7a: run: drop non-functional scsi option Ahmad Fatoum
@ 2026-05-26 19:36 ` Ahmad Fatoum
2026-05-26 19:36 ` [DistroKit] [PATCH 7/9] v7a: vexpress: Switch from vexpress-a9 to virt Ahmad Fatoum
` (2 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Ahmad Fatoum @ 2026-05-26 19:36 UTC (permalink / raw)
To: distrokit; +Cc: Ahmad Fatoum
Our vexpress barebox is configured to boot barebox of a mmc and
we generate no image where the kernel is placed into a raw partition.
As there is no way to use the 9p target without further changes, just
drop it.
In addition, barebox supports direct mounting of virtfs (9p over virtio)
nowadays, so an extra image for booting the kernel is no longer needed
anyway.
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
---
.../match.of_compatible/arm,vexpress/boot/9p | 10 ----------
1 file changed, 10 deletions(-)
delete mode 100644 configs/platform-v7a/barebox-defaultenv/match.of_compatible/arm,vexpress/boot/9p
diff --git a/configs/platform-v7a/barebox-defaultenv/match.of_compatible/arm,vexpress/boot/9p b/configs/platform-v7a/barebox-defaultenv/match.of_compatible/arm,vexpress/boot/9p
deleted file mode 100644
index 4e4985c9aff2..000000000000
--- a/configs/platform-v7a/barebox-defaultenv/match.of_compatible/arm,vexpress/boot/9p
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/sh
-
-addpart /dev/nor0 "8M@32M(kernel)"
-addpart /dev/nor0 "512k@40M(dtb)"
-global.bootm.image="/dev/nor0.kernel"
-global.bootm.oftree="/dev/nor0.dtb"
-
-global linux.bootargs.base="console=ttyAMA0,115200 loglevel=5 ptxdist-devel"
-
-global linux.bootargs.root="root=/dev/root rootfstype=9p rootflags=trans=virtio"
--
2.47.3
^ permalink raw reply [flat|nested] 10+ messages in thread
* [DistroKit] [PATCH 7/9] v7a: vexpress: Switch from vexpress-a9 to virt
2026-05-26 19:36 [DistroKit] [PATCH 0/9] v7a: vexpress: Switch from vexpress-a9 to virt Ahmad Fatoum
` (5 preceding siblings ...)
2026-05-26 19:36 ` [DistroKit] [PATCH 6/9] v7a: vexpress: drop non-functional 9p boot target Ahmad Fatoum
@ 2026-05-26 19:36 ` Ahmad Fatoum
2026-05-26 19:36 ` [DistroKit] [PATCH 8/9] v7a: run: do not shutdown on reboot Ahmad Fatoum
2026-05-26 19:36 ` [DistroKit] [PATCH 9/9] Revert "platform-v7a: vexpress: use only one core for barebox" Ahmad Fatoum
8 siblings, 0 replies; 10+ messages in thread
From: Ahmad Fatoum @ 2026-05-26 19:36 UTC (permalink / raw)
To: distrokit; +Cc: Ahmad Fatoum
The Vexpress support added to DistroKit was explicitly added for use
with QEMU. barebox has rudimentary support for the Vexpress, but it has
since been overshadowed by the more extensive support for the QEMU Virt
platform.
barebox commit 8a7a891c5d35 ("clk: vexpress: clk-sp810: sync with Linux"),
first included with v2026.01.0 fixed a possible crash for vexpress-a15
by synchronizing the Vexpress/Versatile clock driver against the
upstream version in Linux.
A side effect of this is that the clock on the vexpress-a9, which we are
using, is now twice as fast, so sleep 10 in barebox takes 5 seconds instead.
There is a Github issue[1] to address this regression, but until that's
resolved, we need to restore things to working order here.
Let's use the occasion and just switch over fully to Virt.
This also has the advantage that this is similar to how we would
likely implement the run command for v8 as well.
[1]: https://github.com/barebox/barebox/issues/50
Fixes: e61f46afc546 ("barebox: update barebox v2025.11.0 -> v2026.01.0")
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
---
.../init/missing-bootsource | 4 ++-
.../linux,dummy-virt/boot/qemu-virt.root-A | 4 +++
.../linux,dummy-virt/boot/qemu-virt.root-B | 4 +++
configs/platform-v7a/barebox.config | 25 +++++++++++++++----
.../config/images/vexpress-nor.config | 8 +++---
configs/platform-v7a/kernelconfig | 13 +++++-----
configs/platform-v7a/platformconfig | 2 +-
.../rules/image-vexpress-nor.make | 4 ---
configs/platform-v7a/run | 23 ++++++++---------
.../lib/udev/rules.d/90-rauc-partitions.rules | 2 +-
10 files changed, 54 insertions(+), 35 deletions(-)
create mode 100644 configs/platform-v7a/barebox-defaultenv/match.of_compatible/linux,dummy-virt/boot/qemu-virt.root-A
create mode 100755 configs/platform-v7a/barebox-defaultenv/match.of_compatible/linux,dummy-virt/boot/qemu-virt.root-B
diff --git a/configs/platform-v7a/barebox-defaultenv/init/missing-bootsource b/configs/platform-v7a/barebox-defaultenv/init/missing-bootsource
index 4161b4590ea1..b7b4f411b668 100644
--- a/configs/platform-v7a/barebox-defaultenv/init/missing-bootsource
+++ b/configs/platform-v7a/barebox-defaultenv/init/missing-bootsource
@@ -1,7 +1,9 @@
#!/bin/sh
-if of_compatible -k arm,vexpress,v2p-ca9 || of_compatible -k raspberrypi,3-model-b; then
+if of_compatible -k raspberrypi,3-model-b; then
realbootsource="disk0";
+elif of_compatible -k linux,dummy-virt; then
+ realbootsource="qemu-virt";
fi
if [ -z "$realbootsource" ]; then
diff --git a/configs/platform-v7a/barebox-defaultenv/match.of_compatible/linux,dummy-virt/boot/qemu-virt.root-A b/configs/platform-v7a/barebox-defaultenv/match.of_compatible/linux,dummy-virt/boot/qemu-virt.root-A
new file mode 100644
index 000000000000..aef0cea8ed1f
--- /dev/null
+++ b/configs/platform-v7a/barebox-defaultenv/match.of_compatible/linux,dummy-virt/boot/qemu-virt.root-A
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+global linux.bootargs.root="root=/dev/vda1 rootwait rw"
+bootm /mnt/virtioblk0.0/boot/zImage
diff --git a/configs/platform-v7a/barebox-defaultenv/match.of_compatible/linux,dummy-virt/boot/qemu-virt.root-B b/configs/platform-v7a/barebox-defaultenv/match.of_compatible/linux,dummy-virt/boot/qemu-virt.root-B
new file mode 100755
index 000000000000..4071a7b5d7c6
--- /dev/null
+++ b/configs/platform-v7a/barebox-defaultenv/match.of_compatible/linux,dummy-virt/boot/qemu-virt.root-B
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+global linux.bootargs.root="root=/dev/vda2 rootwait rw"
+bootm /mnt/virtioblk0.1/boot/zImage
diff --git a/configs/platform-v7a/barebox.config b/configs/platform-v7a/barebox.config
index bf6ebb963f06..9e82cd0cbb97 100644
--- a/configs/platform-v7a/barebox.config
+++ b/configs/platform-v7a/barebox.config
@@ -213,8 +213,9 @@ CONFIG_MACH_STM32MP15X_EV1=y
# CONFIG_MACH_PROTONIC_STM32MP1 is not set
# CONFIG_MACH_PROTONIC_STM32MP13 is not set
# CONFIG_MACH_PHYTEC_PHYCORE_STM32MP1 is not set
-CONFIG_MACH_VEXPRESS=y
-# CONFIG_MACH_VIRT is not set
+# CONFIG_MACH_VEXPRESS is not set
+CONFIG_MACH_VIRT=y
+CONFIG_BOARD_ARM_VIRT=y
CONFIG_BOARD_ARM_GENERIC_DT=y
CONFIG_AEABI=y
CONFIG_THUMB2_BAREBOX=y
@@ -261,6 +262,8 @@ CONFIG_HAVE_ARCH_KASAN=y
CONFIG_HAVE_STACKPROTECTOR=y
# end of General architecture-dependent options
+CONFIG_BOARD_QEMU=y
+CONFIG_BOARD_QEMU_VIRT=y
CONFIG_BOARD_LXA=y
CONFIG_CC_IS_GCC=y
CONFIG_GCC_VERSION=150201
@@ -711,7 +714,9 @@ CONFIG_NET_IFUP=y
CONFIG_NET_DHCP=y
# CONFIG_NET_SNTP is not set
CONFIG_NET_FASTBOOT=y
-# CONFIG_NET_9P is not set
+CONFIG_NET_9P=y
+CONFIG_NET_9P_VIRTIO=y
+# CONFIG_NET_9P_DEBUG is not set
#
# Drivers
@@ -732,6 +737,7 @@ CONFIG_OF_OVERLAY=y
# CONFIG_OF_OVERLAY_LIVE is not set
# CONFIG_AIODEV is not set
CONFIG_ARM_AMBA=y
+CONFIG_ARM_AMBA_DABT_MASK=y
#
# serial drivers
@@ -745,6 +751,7 @@ CONFIG_DRIVER_SERIAL_NS16550=y
CONFIG_DRIVER_SERIAL_NS16550_OMAP_TTYS=y
# CONFIG_DRIVER_SERIAL_CADENCE is not set
# CONFIG_DRIVER_SERIAL_LPUART32 is not set
+# CONFIG_VIRTIO_CONSOLE is not set
# CONFIG_SERIAL_SIFIVE is not set
# end of serial drivers
@@ -766,8 +773,9 @@ CONFIG_DRIVER_NET_FEC_IMX=y
# CONFIG_DRIVER_NET_FSL_FMAN is not set
# CONFIG_DRIVER_NET_KS8851_MLL is not set
# CONFIG_DRIVER_NET_MICREL is not set
-CONFIG_DRIVER_NET_SMC911X=y
+# CONFIG_DRIVER_NET_SMC911X is not set
# CONFIG_DRIVER_NET_SMC91111 is not set
+CONFIG_DRIVER_NET_VIRTIO=y
# CONFIG_DRIVER_NET_LITEETH is not set
#
@@ -918,6 +926,7 @@ CONFIG_MTD_UBI_FASTMAP=y
CONFIG_DISK=y
CONFIG_DISK_IDE_SFF=y
CONFIG_DISK_WRITE=y
+CONFIG_VIRTIO_BLK=y
CONFIG_DM_BLK=y
CONFIG_DM_BLK_LINEAR=y
CONFIG_DM_BLK_VERITY=y
@@ -1125,6 +1134,7 @@ CONFIG_KEYBOARD_GPIO=y
# CONFIG_KEYBOARD_QT1070 is not set
# CONFIG_KEYBOARD_USB is not set
# CONFIG_INPUT_SPECIALKEYS is not set
+# CONFIG_VIRTIO_INPUT is not set
# end of Input device support
CONFIG_WATCHDOG_IMX_RESET_SOURCE=y
@@ -1146,6 +1156,7 @@ CONFIG_PWM_STM32=y
CONFIG_HWRNG=y
# CONFIG_HW_RANDOM_TIMERIOMEM is not set
CONFIG_HWRNG_STM32=y
+CONFIG_HW_RANDOM_VIRTIO=y
CONFIG_HW_RANDOM_OPTEE=y
CONFIG_HW_RANDOM_BCM2835=y
# CONFIG_HW_RANDOM_IPROC_RNG200 is not set
@@ -1156,6 +1167,7 @@ CONFIG_HW_RANDOM_OMAP=y
#
# CONFIG_DMADEVICES is not set
CONFIG_MXS_APBH_DMA=y
+CONFIG_OF_DMA_COHERENCY=y
# end of DMA support
CONFIG_GPIOLIB=y
@@ -1336,7 +1348,9 @@ CONFIG_STM32_FMC2_EBI=y
# CONFIG_POWER_RESET_GPIO is not set
# CONFIG_POWER_RESET_GPIO_RESTART is not set
CONFIG_RESET_STM32=y
-# CONFIG_VIRTIO_MENU is not set
+CONFIG_VIRTIO=y
+CONFIG_VIRTIO_MENU=y
+CONFIG_VIRTIO_MMIO=y
# CONFIG_MAILBOX is not set
CONFIG_TEE=y
CONFIG_OPTEE=y
@@ -1368,6 +1382,7 @@ CONFIG_FS_DEVFS=y
CONFIG_FS_TFTP=y
CONFIG_FS_TFTP_MAX_WINDOW_SIZE=128
CONFIG_FS_NFS=y
+# CONFIG_9P_FS is not set
CONFIG_FS_FAT=y
CONFIG_FS_FAT_WRITE=y
CONFIG_FS_FAT_LFN=y
diff --git a/configs/platform-v7a/config/images/vexpress-nor.config b/configs/platform-v7a/config/images/vexpress-nor.config
index 5b6c6ebf6424..529fe793e96a 100644
--- a/configs/platform-v7a/config/images/vexpress-nor.config
+++ b/configs/platform-v7a/config/images/vexpress-nor.config
@@ -6,21 +6,21 @@ image @IMAGE@ {
fill = true
}
/* Keep these partitions in sync with the fixed partition layout in
- barebox/arch/arm/dts/vexpress-v2p-ca*.dts! */
+ barebox/common/boards/qemu-virt/qemu-virt-flash.dtsi! */
partition barebox {
- image = barebox-vexpress-ca9.img
+ image = barebox-qemu-virt.img
offset = 0
in-partition-table = false
}
partition barebox-environment {
/* empty environment -> use barebox builtin */
image = barebox-default-environment
- offset = 2M
+ offset = 60M
in-partition-table = false
}
partition barebox-state {
image = /dev/null
- offset = 4M
+ offset = 62M
in-partition-table = false
size = 1M
}
diff --git a/configs/platform-v7a/kernelconfig b/configs/platform-v7a/kernelconfig
index 3a5f578dca15..8536f2c1181f 100644
--- a/configs/platform-v7a/kernelconfig
+++ b/configs/platform-v7a/kernelconfig
@@ -1221,7 +1221,7 @@ CONFIG_NET_SOCK_MSG=y
CONFIG_NET_DEVLINK=y
CONFIG_PAGE_POOL=y
CONFIG_PAGE_POOL_STATS=y
-# CONFIG_FAILOVER is not set
+CONFIG_FAILOVER=y
CONFIG_ETHTOOL_NETLINK=y
#
@@ -1526,7 +1526,7 @@ CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
CONFIG_BLK_DEV_NBD=y
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_ATA_OVER_ETH is not set
-# CONFIG_VIRTIO_BLK is not set
+CONFIG_VIRTIO_BLK=y
# CONFIG_BLK_DEV_RBD is not set
# CONFIG_BLK_DEV_UBLK is not set
@@ -1652,7 +1652,7 @@ CONFIG_WIREGUARD=y
# CONFIG_TUN is not set
# CONFIG_TUN_VNET_CROSS_LE is not set
# CONFIG_VETH is not set
-# CONFIG_VIRTIO_NET is not set
+CONFIG_VIRTIO_NET=y
# CONFIG_NLMON is not set
# CONFIG_NETKIT is not set
CONFIG_ETHERNET=y
@@ -1711,9 +1711,7 @@ CONFIG_NET_VENDOR_MICROSOFT=y
# CONFIG_NET_VENDOR_SAMSUNG is not set
# CONFIG_NET_VENDOR_SEEQ is not set
# CONFIG_NET_VENDOR_SOLARFLARE is not set
-CONFIG_NET_VENDOR_SMSC=y
-# CONFIG_SMC91X is not set
-CONFIG_SMSC911X=y
+# CONFIG_NET_VENDOR_SMSC is not set
# CONFIG_NET_VENDOR_SOCIONEXT is not set
CONFIG_NET_VENDOR_STMICRO=y
CONFIG_STMMAC_ETH=y
@@ -1882,7 +1880,7 @@ CONFIG_USB_NET_SMSC95XX=y
# end of Wireless WAN
# CONFIG_NETDEVSIM is not set
-# CONFIG_NET_FAILOVER is not set
+CONFIG_NET_FAILOVER=y
# CONFIG_ISDN is not set
#
@@ -4396,6 +4394,7 @@ CONFIG_OID_REGISTRY=y
CONFIG_HAVE_GENERIC_VDSO=y
CONFIG_GENERIC_GETTIMEOFDAY=y
CONFIG_SG_SPLIT=y
+CONFIG_SG_POOL=y
CONFIG_ARCH_STACKWALK=y
CONFIG_STACKDEPOT=y
CONFIG_STACKDEPOT_MAX_FRAMES=64
diff --git a/configs/platform-v7a/platformconfig b/configs/platform-v7a/platformconfig
index 4f8962661fe7..29412948b753 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/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_DTS="ti/omap/am335x-bone.dts ti/omap/am335x-boneblack.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
diff --git a/configs/platform-v7a/rules/image-vexpress-nor.make b/configs/platform-v7a/rules/image-vexpress-nor.make
index e10223b89433..6ddf93e798aa 100644
--- a/configs/platform-v7a/rules/image-vexpress-nor.make
+++ b/configs/platform-v7a/rules/image-vexpress-nor.make
@@ -23,10 +23,6 @@ IMAGE_VEXPRESS_NOR_CONFIG := vexpress-nor.config
# Image
# ----------------------------------------------------------------------------
-# Note: no ':' and only works with one device tree
-IMAGE_VEXPRESS_NOR_ENV = \
- DTB=$(IMAGEDIR)/vexpress-v2p-ca9.dtb
-
$(IMAGE_VEXPRESS_NOR_IMAGE):
@$(call targetinfo)
@$(call image/genimage, IMAGE_VEXPRESS_NOR)
diff --git a/configs/platform-v7a/run b/configs/platform-v7a/run
index c4c70677e95d..33085d6ed917 100755
--- a/configs/platform-v7a/run
+++ b/configs/platform-v7a/run
@@ -66,26 +66,24 @@ else
fi
# Machine to emulate
-QEMU_ARGS=( -machine vexpress-a9 -cpu cortex-a9 -smp 4 -m 1024M )
+QEMU_ARGS=( -machine virt -cpu cortex-a7 -smp 4 -m 1024M )
# disable graphics output
QEMU_ARGS[${#QEMU_ARGS[@]}]="-nographic"
# Exit qemu on reboot
QEMU_ARGS[${#QEMU_ARGS[@]}]="-no-reboot"
# Configure networking
-QEMU_ARGS=( "${QEMU_ARGS[@]}" -net nic,netdev=net1 "${QEMU_NET[@]}" )
+QEMU_ARGS=( "${QEMU_ARGS[@]}" -device virtio-net-device,netdev=net1 "${QEMU_NET[@]}" )
# Set base time to test NTP and time handling
QEMU_ARGS=( "${QEMU_ARGS[@]}" -rtc base=2000-01-01 )
# Configure watchdog
# no watchdog available on vexpress
#QEMU_ARGS=( "${QEMU_ARGS[@]}" -watchdog i6300esb -watchdog-action poweroff )
QEMU_ARGS=( "${QEMU_ARGS[@]}" -object rng-random,filename=/dev/random,id=rng0 -device virtio-rng-device,rng=rng0 )
-QEMU_LINUX_ARGS=( -kernel ${PTXDIST_PLATFORMDIR}/images/linuximage -dtb ${PTXDIST_PLATFORMDIR}/images/vexpress-v2p-ca9.dtb )
-# the barebox device tree has a state node for bootchooser
-QEMU_BAREBOX_ARGS=( -dtb ${PTXDIST_PLATFORMDIR}/images/barebox-vexpress-v2p-ca9.dtb )
+QEMU_LINUX_ARGS=( -kernel ${PTXDIST_PLATFORMDIR}/images/linuximage )
check_hd() {
if [ ! -e "${PTXDIST_PLATFORMDIR}/images/vexpress.hdimg" ]; then
- echo "error: vexpress.hdimg is missing. Run 'ptxdist images' first"
+ echo "error: virt.hdimg is missing. Run 'ptxdist images' first"
exit 1
fi
}
@@ -120,14 +118,15 @@ run_qemu_nfs() {
-append "root=/dev/nfs nfsroot=/root,v3,tcp,port=2049,mountport=2049 ip=dhcp ${BASE_CMDLINE}"
}
-run_qemu_mmc() {
+run_qemu_kernel() {
check_hd
exec ${QEMU_EXEC} \
"${QEMU_ARGS[@]}" \
- -drive if=sd,format=raw,file=${PTXDIST_PLATFORMDIR}/images/vexpress.hdimg,id=mmc0 \
+ -drive if=none,format=raw,file=${PTXDIST_PLATFORMDIR}/images/vexpress.hdimg,id=disk0 \
+ -device virtio-blk-device,drive=disk0 \
"${QEMU_EXTRA_ARGS[@]}" \
"${QEMU_LINUX_ARGS[@]}" \
- -append "root=/dev/mmcblk0p1 rootfstype=ext4 rootwait ${BASE_CMDLINE}"
+ -append "root=/dev/vda1 rootfstype=ext4 rootwait ${BASE_CMDLINE}"
}
run_qemu_barebox() {
@@ -140,10 +139,10 @@ run_qemu_barebox() {
-device virtio-9p-device,fsdev=rootfs,mount_tag=/dev/root \
-fsdev local,id=images,path=${PTXDIST_PLATFORMDIR}/images,security_model="${security_model}" \
-device virtio-9p-device,fsdev=images,mount_tag=/dev/images \
- -drive if=sd,format=raw,file=${PTXDIST_PLATFORMDIR}/images/vexpress.hdimg,id=mmc0 \
-drive if=pflash,format=raw,file=${PTXDIST_PLATFORMDIR}/images/vexpress.norimg,id=nor0 \
- "${QEMU_EXTRA_ARGS[@]}" \
- "${QEMU_BAREBOX_ARGS[@]}"
+ -drive if=none,format=raw,file=${PTXDIST_PLATFORMDIR}/images/vexpress.hdimg,id=disk0 \
+ -device virtio-blk-device,drive=disk0 \
+ "${QEMU_EXTRA_ARGS[@]}"
}
target="${1:-barebox}"
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 575c913d46cc..bf2ce913ff4b 100644
--- a/projectroot/usr/lib/udev/rules.d/90-rauc-partitions.rules
+++ b/projectroot/usr/lib/udev/rules.d/90-rauc-partitions.rules
@@ -10,7 +10,7 @@ IMPORT{program}="of_base_compatible"
# to the correct partitions based on the device tree 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}=="*linux,dummy-virt*", ENV{ID_PATH}=="platform-*.virtio_mmio", 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"
--
2.47.3
^ permalink raw reply [flat|nested] 10+ messages in thread
* [DistroKit] [PATCH 8/9] v7a: run: do not shutdown on reboot
2026-05-26 19:36 [DistroKit] [PATCH 0/9] v7a: vexpress: Switch from vexpress-a9 to virt Ahmad Fatoum
` (6 preceding siblings ...)
2026-05-26 19:36 ` [DistroKit] [PATCH 7/9] v7a: vexpress: Switch from vexpress-a9 to virt Ahmad Fatoum
@ 2026-05-26 19:36 ` Ahmad Fatoum
2026-05-26 19:36 ` [DistroKit] [PATCH 9/9] Revert "platform-v7a: vexpress: use only one core for barebox" Ahmad Fatoum
8 siblings, 0 replies; 10+ messages in thread
From: Ahmad Fatoum @ 2026-05-26 19:36 UTC (permalink / raw)
To: distrokit; +Cc: Ahmad Fatoum
Unlike Vexpress, both barebox (and kernel) are actually capable to
trigger a system reset as opposed to a shutdown on Virt.
Support this, so actions that persist over reboots can be more easily
tested.
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
---
configs/platform-v7a/run | 2 --
1 file changed, 2 deletions(-)
diff --git a/configs/platform-v7a/run b/configs/platform-v7a/run
index 33085d6ed917..f6f8a70a36a0 100755
--- a/configs/platform-v7a/run
+++ b/configs/platform-v7a/run
@@ -69,8 +69,6 @@ fi
QEMU_ARGS=( -machine virt -cpu cortex-a7 -smp 4 -m 1024M )
# disable graphics output
QEMU_ARGS[${#QEMU_ARGS[@]}]="-nographic"
-# Exit qemu on reboot
-QEMU_ARGS[${#QEMU_ARGS[@]}]="-no-reboot"
# Configure networking
QEMU_ARGS=( "${QEMU_ARGS[@]}" -device virtio-net-device,netdev=net1 "${QEMU_NET[@]}" )
# Set base time to test NTP and time handling
--
2.47.3
^ permalink raw reply [flat|nested] 10+ messages in thread
* [DistroKit] [PATCH 9/9] Revert "platform-v7a: vexpress: use only one core for barebox"
2026-05-26 19:36 [DistroKit] [PATCH 0/9] v7a: vexpress: Switch from vexpress-a9 to virt Ahmad Fatoum
` (7 preceding siblings ...)
2026-05-26 19:36 ` [DistroKit] [PATCH 8/9] v7a: run: do not shutdown on reboot Ahmad Fatoum
@ 2026-05-26 19:36 ` Ahmad Fatoum
8 siblings, 0 replies; 10+ messages in thread
From: Ahmad Fatoum @ 2026-05-26 19:36 UTC (permalink / raw)
To: distrokit; +Cc: Ahmad Fatoum
With the switch to using virt instead of vexpress, we can make use of
multiple cores under Linux, even when booted with barebox.
This reverts commit bc03d01470d2489f6c140a29c046faf510901d3f.
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
---
configs/platform-v7a/run | 1 -
1 file changed, 1 deletion(-)
diff --git a/configs/platform-v7a/run b/configs/platform-v7a/run
index f6f8a70a36a0..ce137ac4b3cb 100755
--- a/configs/platform-v7a/run
+++ b/configs/platform-v7a/run
@@ -132,7 +132,6 @@ run_qemu_barebox() {
check_flash
exec ${QEMU_EXEC} \
"${QEMU_ARGS[@]}" \
- -smp 1 \
-fsdev local,id=rootfs,path=${PTXDIST_PLATFORMDIR}/root,security_model="${security_model}" \
-device virtio-9p-device,fsdev=rootfs,mount_tag=/dev/root \
-fsdev local,id=images,path=${PTXDIST_PLATFORMDIR}/images,security_model="${security_model}" \
--
2.47.3
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2026-05-26 19:37 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-05-26 19:36 [DistroKit] [PATCH 0/9] v7a: vexpress: Switch from vexpress-a9 to virt Ahmad Fatoum
2026-05-26 19:36 ` [DistroKit] [PATCH 1/9] v7a: rauc: fix /dev/disk/by-usage symlinks for FairyTux 2 Ahmad Fatoum
2026-05-26 19:36 ` [DistroKit] [PATCH 2/9] v7a: vexpress: do not save environment on missing-bootsource Ahmad Fatoum
2026-05-26 19:36 ` [DistroKit] [PATCH 3/9] datapartition: fix regex for virtualized block devices Ahmad Fatoum
2026-05-26 19:36 ` [DistroKit] [PATCH 4/9] v7a: delete non-functional run-nfs Ahmad Fatoum
2026-05-26 19:36 ` [DistroKit] [PATCH 5/9] v7a: run: drop non-functional scsi option Ahmad Fatoum
2026-05-26 19:36 ` [DistroKit] [PATCH 6/9] v7a: vexpress: drop non-functional 9p boot target Ahmad Fatoum
2026-05-26 19:36 ` [DistroKit] [PATCH 7/9] v7a: vexpress: Switch from vexpress-a9 to virt Ahmad Fatoum
2026-05-26 19:36 ` [DistroKit] [PATCH 8/9] v7a: run: do not shutdown on reboot Ahmad Fatoum
2026-05-26 19:36 ` [DistroKit] [PATCH 9/9] Revert "platform-v7a: vexpress: use only one core for barebox" Ahmad Fatoum
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox