* [PATCH 0/5] DTB build housekeeping
@ 2025-06-10 20:41 Bernhard Beschow
2025-06-10 20:41 ` [PATCH 1/5] hw: Fix type constant for DTB files Bernhard Beschow
` (5 more replies)
0 siblings, 6 replies; 19+ messages in thread
From: Bernhard Beschow @ 2025-06-10 20:41 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-arm, Philippe Mathieu-Daudé, Peter Maydell,
Paolo Bonzini, Bernhard Beschow, Edgar E. Iglesias, qemu-ppc,
Marc-André Lureau, Daniel P. Berrangé
This series removes the bundled device tree blobs from the repository which are
redundant to the bundled device tree sources. To make this work, the device tree
compiler 'dtc' is now required for the boards which rely on these device trees.
Building these board can be enforced with a 'dtc' build option which should
help packagers. For simplicity, 'dtc' is searched for in the system only rather
than also considering the 'dtc' submodule.
I also tried unsing Meson's source_set::add(when: ...) for building only the
needed DTBs but eventually found it to be too over-engineered.
Last but not least two inconsistencies regarding QEMU_FILE_TYPE_DTB are fixed
which seem to be latent bugs (one of which materializes in my e500-fdt branch).
Bernhard Beschow (5):
hw: Fix type constant for DTB files
pc-bios/dtb/meson: Prefer target name to be outfile, not infile
scripts/meson-buildoptions: Sort coroutine_backend choices
lexicographically
configure: Add dtc option
configure: Require dtc for boards with bundled device trees
MAINTAINERS | 2 +-
meson.build | 12 ++++++++++++
hw/arm/boot.c | 2 +-
hw/ppc/e500.c | 2 +-
Kconfig.host | 3 +++
hw/microblaze/Kconfig | 4 ++--
hw/ppc/Kconfig | 4 ++--
meson_options.txt | 3 +++
pc-bios/dtb/bamboo.dtb | Bin 3211 -> 0 bytes
pc-bios/dtb/canyonlands.dtb | Bin 9779 -> 0 bytes
pc-bios/dtb/meson.build | 19 ++++++++-----------
pc-bios/dtb/petalogix-ml605.dtb | Bin 9882 -> 0 bytes
pc-bios/dtb/petalogix-s3adsp1800.dtb | Bin 8161 -> 0 bytes
scripts/meson-buildoptions.sh | 5 ++++-
14 files changed, 37 insertions(+), 19 deletions(-)
delete mode 100644 pc-bios/dtb/bamboo.dtb
delete mode 100644 pc-bios/dtb/canyonlands.dtb
delete mode 100644 pc-bios/dtb/petalogix-ml605.dtb
delete mode 100644 pc-bios/dtb/petalogix-s3adsp1800.dtb
--
2.49.0
^ permalink raw reply [flat|nested] 19+ messages in thread
* [PATCH 1/5] hw: Fix type constant for DTB files
2025-06-10 20:41 [PATCH 0/5] DTB build housekeeping Bernhard Beschow
@ 2025-06-10 20:41 ` Bernhard Beschow
2025-06-11 10:31 ` Thomas Huth
2025-06-10 20:41 ` [PATCH 2/5] pc-bios/dtb/meson: Prefer target name to be outfile, not infile Bernhard Beschow
` (4 subsequent siblings)
5 siblings, 1 reply; 19+ messages in thread
From: Bernhard Beschow @ 2025-06-10 20:41 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-arm, Philippe Mathieu-Daudé, Peter Maydell,
Paolo Bonzini, Bernhard Beschow, Edgar E. Iglesias, qemu-ppc,
Marc-André Lureau, Daniel P. Berrangé
Commit fcb1ad456c58 ("system/datadir: Add new type constant for DTB files")
introduced a new type constant for DTB files and converted the boards with
bundled device trees to use it. Convert the other boards for consistency.
Fixes: fcb1ad456c58 ("system/datadir: Add new type constant for DTB files")
Signed-off-by: Bernhard Beschow <shentey@gmail.com>
---
hw/arm/boot.c | 2 +-
hw/ppc/e500.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/hw/arm/boot.c b/hw/arm/boot.c
index 79afb51b8a..64040504a1 100644
--- a/hw/arm/boot.c
+++ b/hw/arm/boot.c
@@ -527,7 +527,7 @@ int arm_load_dtb(hwaddr addr, const struct arm_boot_info *binfo,
if (binfo->dtb_filename) {
char *filename;
- filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, binfo->dtb_filename);
+ filename = qemu_find_file(QEMU_FILE_TYPE_DTB, binfo->dtb_filename);
if (!filename) {
fprintf(stderr, "Couldn't open dtb file %s\n", binfo->dtb_filename);
goto fail;
diff --git a/hw/ppc/e500.c b/hw/ppc/e500.c
index 809078a2c3..69fe71ad39 100644
--- a/hw/ppc/e500.c
+++ b/hw/ppc/e500.c
@@ -411,7 +411,7 @@ static int ppce500_load_device_tree(PPCE500MachineState *pms,
if (dtb_file) {
char *filename;
- filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, dtb_file);
+ filename = qemu_find_file(QEMU_FILE_TYPE_DTB, dtb_file);
if (!filename) {
goto out;
}
--
2.49.0
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH 2/5] pc-bios/dtb/meson: Prefer target name to be outfile, not infile
2025-06-10 20:41 [PATCH 0/5] DTB build housekeeping Bernhard Beschow
2025-06-10 20:41 ` [PATCH 1/5] hw: Fix type constant for DTB files Bernhard Beschow
@ 2025-06-10 20:41 ` Bernhard Beschow
2025-06-11 10:38 ` Thomas Huth
2025-06-10 20:41 ` [PATCH 3/5] scripts/meson-buildoptions: Sort coroutine_backend choices lexicographically Bernhard Beschow
` (3 subsequent siblings)
5 siblings, 1 reply; 19+ messages in thread
From: Bernhard Beschow @ 2025-06-10 20:41 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-arm, Philippe Mathieu-Daudé, Peter Maydell,
Paolo Bonzini, Bernhard Beschow, Edgar E. Iglesias, qemu-ppc,
Marc-André Lureau, Daniel P. Berrangé
Makes this custom_target() usage consistent with other ones in QEMU.
Fixes: 6e0dc9d2a88a ("meson: compile bundled device trees")
Signed-off-by: Bernhard Beschow <shentey@gmail.com>
---
pc-bios/dtb/meson.build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pc-bios/dtb/meson.build b/pc-bios/dtb/meson.build
index 7a71835bca..993032949f 100644
--- a/pc-bios/dtb/meson.build
+++ b/pc-bios/dtb/meson.build
@@ -9,7 +9,7 @@ dtc = find_program('dtc', required: false)
if dtc.found()
foreach out : dtbs
f = fs.replace_suffix(out, '.dts')
- custom_target(f,
+ custom_target(out,
build_by_default: have_system,
input: files(f),
output: out,
--
2.49.0
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH 3/5] scripts/meson-buildoptions: Sort coroutine_backend choices lexicographically
2025-06-10 20:41 [PATCH 0/5] DTB build housekeeping Bernhard Beschow
2025-06-10 20:41 ` [PATCH 1/5] hw: Fix type constant for DTB files Bernhard Beschow
2025-06-10 20:41 ` [PATCH 2/5] pc-bios/dtb/meson: Prefer target name to be outfile, not infile Bernhard Beschow
@ 2025-06-10 20:41 ` Bernhard Beschow
2025-06-11 0:37 ` BALATON Zoltan
2025-06-11 10:40 ` Thomas Huth
2025-06-10 20:41 ` [PATCH 4/5] configure: Add dtc option Bernhard Beschow
` (2 subsequent siblings)
5 siblings, 2 replies; 19+ messages in thread
From: Bernhard Beschow @ 2025-06-10 20:41 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-arm, Philippe Mathieu-Daudé, Peter Maydell,
Paolo Bonzini, Bernhard Beschow, Edgar E. Iglesias, qemu-ppc,
Marc-André Lureau, Daniel P. Berrangé
When changing meson_options.txt, this script gets updated automatically by QEMU
tooling which sorts the choices lexicographically. Fix this in preparation of
the ext patch.
Fixes: ccc403ed5844 ("meson: Add wasm build in build scripts")
Signed-off-by: Bernhard Beschow <shentey@gmail.com>
---
scripts/meson-buildoptions.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/scripts/meson-buildoptions.sh b/scripts/meson-buildoptions.sh
index f09ef9604f..73e0770f42 100644
--- a/scripts/meson-buildoptions.sh
+++ b/scripts/meson-buildoptions.sh
@@ -80,7 +80,7 @@ meson_options_help() {
printf "%s\n" ' --tls-priority=VALUE Default TLS protocol/cipher priority string'
printf "%s\n" ' [NORMAL]'
printf "%s\n" ' --with-coroutine=CHOICE coroutine backend to use (choices:'
- printf "%s\n" ' auto/sigaltstack/ucontext/windows/wasm)'
+ printf "%s\n" ' auto/sigaltstack/ucontext/wasm/windows)'
printf "%s\n" ' --with-pkgversion=VALUE use specified string as sub-version of the'
printf "%s\n" ' package'
printf "%s\n" ' --with-suffix=VALUE Suffix for QEMU data/modules/config directories'
--
2.49.0
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH 4/5] configure: Add dtc option
2025-06-10 20:41 [PATCH 0/5] DTB build housekeeping Bernhard Beschow
` (2 preceding siblings ...)
2025-06-10 20:41 ` [PATCH 3/5] scripts/meson-buildoptions: Sort coroutine_backend choices lexicographically Bernhard Beschow
@ 2025-06-10 20:41 ` Bernhard Beschow
2025-06-11 0:37 ` BALATON Zoltan
2025-06-10 20:41 ` [PATCH 5/5] configure: Require dtc for boards with bundled device trees Bernhard Beschow
2025-06-12 6:09 ` [PATCH 0/5] DTB build housekeeping Paolo Bonzini
5 siblings, 1 reply; 19+ messages in thread
From: Bernhard Beschow @ 2025-06-10 20:41 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-arm, Philippe Mathieu-Daudé, Peter Maydell,
Paolo Bonzini, Bernhard Beschow, Edgar E. Iglesias, qemu-ppc,
Marc-André Lureau, Daniel P. Berrangé
The next patch will make dtc mandatory for boards with a bundled DTB, causing
these boards to be omitted when dtc is missing. Allow packagers to force the
build of those boards by providing an option.
Signed-off-by: Bernhard Beschow <shentey@gmail.com>
---
meson.build | 12 ++++++++++++
Kconfig.host | 3 +++
meson_options.txt | 3 +++
pc-bios/dtb/meson.build | 1 -
scripts/meson-buildoptions.sh | 3 +++
5 files changed, 21 insertions(+), 1 deletion(-)
diff --git a/meson.build b/meson.build
index 34729c2a3d..8a03fbaed8 100644
--- a/meson.build
+++ b/meson.build
@@ -2119,6 +2119,15 @@ if fdt_opt == 'internal'
fdt = libfdt_proj.get_variable('libfdt_dep')
endif
+dtc = not_found
+dtc_opt = get_option('dtc')
+if dtc_opt == 'enabled' or (dtc_opt == 'auto' and have_system)
+ dtc = find_program('dtc', required: dtc_opt == 'enabled')
+ if not dtc.found() and dtc_opt == 'enabled'
+ error('dtc not found')
+ endif
+endif
+
rdma = not_found
if not get_option('rdma').auto() or have_system
rdma_libs = [cc.find_library('rdmacm', has_headers: ['rdma/rdma_cma.h'],
@@ -2477,6 +2486,7 @@ config_host_data.set('CONFIG_FREEBSD', host_os == 'freebsd')
config_host_data.set('CONFIG_CAPSTONE', capstone.found())
config_host_data.set('CONFIG_COCOA', cocoa.found())
config_host_data.set('CONFIG_DARWIN', host_os == 'darwin')
+config_host_data.set('CONFIG_DTC', dtc.found())
config_host_data.set('CONFIG_FDT', fdt.found())
config_host_data.set('CONFIG_FUZZ', get_option('fuzzing'))
config_host_data.set('CONFIG_GCOV', get_option('b_coverage'))
@@ -3314,6 +3324,7 @@ host_kconfig = \
(libcbor.found() ? ['CONFIG_LIBCBOR=y'] : []) + \
(gnutls.found() ? ['CONFIG_GNUTLS=y'] : []) + \
(x11.found() ? ['CONFIG_X11=y'] : []) + \
+ (dtc.found() ? ['CONFIG_DTC=y'] : []) + \
(fdt.found() ? ['CONFIG_FDT=y'] : []) + \
(have_vhost_user ? ['CONFIG_VHOST_USER=y'] : []) + \
(have_vhost_vdpa ? ['CONFIG_VHOST_VDPA=y'] : []) + \
@@ -4703,6 +4714,7 @@ summary_info += {'sphinx-build': sphinx_build}
if config_host.has_key('GDB')
summary_info += {'gdb': config_host['GDB']}
endif
+summary_info += {'dtc': dtc}
summary_info += {'iasl': iasl}
summary_info += {'genisoimage': config_host['GENISOIMAGE']}
if host_os == 'windows' and have_ga
diff --git a/Kconfig.host b/Kconfig.host
index 933425c74b..82fc8848dd 100644
--- a/Kconfig.host
+++ b/Kconfig.host
@@ -29,6 +29,9 @@ config IVSHMEM
config TPM
bool
+config DTC
+ bool
+
config FDT
bool
diff --git a/meson_options.txt b/meson_options.txt
index a442be2995..d0e56564fb 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -316,6 +316,9 @@ option('vduse_blk_export', type: 'feature', value: 'auto',
option('capstone', type: 'feature', value: 'auto',
description: 'Whether and how to find the capstone library')
+option('dtc', type: 'combo', value: 'auto',
+ choices: ['disabled', 'enabled', 'auto'],
+ description: 'Whether to find the device tree compiler')
option('fdt', type: 'combo', value: 'auto',
choices: ['disabled', 'enabled', 'auto', 'system', 'internal'],
description: 'Whether and how to find the libfdt library')
diff --git a/pc-bios/dtb/meson.build b/pc-bios/dtb/meson.build
index 993032949f..9fcdbeff14 100644
--- a/pc-bios/dtb/meson.build
+++ b/pc-bios/dtb/meson.build
@@ -5,7 +5,6 @@ dtbs = [
'petalogix-s3adsp1800.dtb',
]
-dtc = find_program('dtc', required: false)
if dtc.found()
foreach out : dtbs
f = fs.replace_suffix(out, '.dts')
diff --git a/scripts/meson-buildoptions.sh b/scripts/meson-buildoptions.sh
index 73e0770f42..e8c452ffb0 100644
--- a/scripts/meson-buildoptions.sh
+++ b/scripts/meson-buildoptions.sh
@@ -116,6 +116,7 @@ meson_options_help() {
printf "%s\n" ' dmg dmg image format support'
printf "%s\n" ' docs Documentations build support'
printf "%s\n" ' dsound DirectSound sound support'
+ printf "%s\n" ' dtc Whether to find the device tree compiler'
printf "%s\n" ' fuse FUSE block device export'
printf "%s\n" ' fuse-lseek SEEK_HOLE/SEEK_DATA support for FUSE exports'
printf "%s\n" ' gcrypt libgcrypt cryptography support'
@@ -310,6 +311,8 @@ _meson_option_parse() {
--disable-docs) printf "%s" -Ddocs=disabled ;;
--enable-dsound) printf "%s" -Ddsound=enabled ;;
--disable-dsound) printf "%s" -Ddsound=disabled ;;
+ --enable-dtc) printf "%s" -Ddtc=enabled ;;
+ --disable-dtc) printf "%s" -Ddtc=disabled ;;
--enable-fdt) printf "%s" -Dfdt=enabled ;;
--disable-fdt) printf "%s" -Dfdt=disabled ;;
--enable-fdt=*) quote_sh "-Dfdt=$2" ;;
--
2.49.0
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH 5/5] configure: Require dtc for boards with bundled device trees
2025-06-10 20:41 [PATCH 0/5] DTB build housekeeping Bernhard Beschow
` (3 preceding siblings ...)
2025-06-10 20:41 ` [PATCH 4/5] configure: Add dtc option Bernhard Beschow
@ 2025-06-10 20:41 ` Bernhard Beschow
2025-06-12 6:09 ` [PATCH 0/5] DTB build housekeeping Paolo Bonzini
5 siblings, 0 replies; 19+ messages in thread
From: Bernhard Beschow @ 2025-06-10 20:41 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-arm, Philippe Mathieu-Daudé, Peter Maydell,
Paolo Bonzini, Bernhard Beschow, Edgar E. Iglesias, qemu-ppc,
Marc-André Lureau, Daniel P. Berrangé
Avoid having generated DTBs checked in which can become inconsistent
with their sources.
Note that when dtc is not found, the boards with bundled DTBs will be
omitted from the build. Finding dtc, and thus building these boards, can
be enforced with the `dtc` build option.
Signed-off-by: Bernhard Beschow <shentey@gmail.com>
---
MAINTAINERS | 2 +-
hw/microblaze/Kconfig | 4 ++--
hw/ppc/Kconfig | 4 ++--
pc-bios/dtb/bamboo.dtb | Bin 3211 -> 0 bytes
pc-bios/dtb/canyonlands.dtb | Bin 9779 -> 0 bytes
pc-bios/dtb/meson.build | 16 +++++++---------
pc-bios/dtb/petalogix-ml605.dtb | Bin 9882 -> 0 bytes
pc-bios/dtb/petalogix-s3adsp1800.dtb | Bin 8161 -> 0 bytes
8 files changed, 12 insertions(+), 14 deletions(-)
delete mode 100644 pc-bios/dtb/bamboo.dtb
delete mode 100644 pc-bios/dtb/canyonlands.dtb
delete mode 100644 pc-bios/dtb/petalogix-ml605.dtb
delete mode 100644 pc-bios/dtb/petalogix-s3adsp1800.dtb
diff --git a/MAINTAINERS b/MAINTAINERS
index aa6763077e..796c31bb0f 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1605,7 +1605,7 @@ F: hw/pci-host/ppc440_pcix.c
F: hw/display/sm501*
F: hw/ide/sii3112.c
F: hw/rtc/m41t80.c
-F: pc-bios/dtb/canyonlands.dt[sb]
+F: pc-bios/dtb/canyonlands.dts
F: pc-bios/u-boot-sam460ex-20100605.bin
F: roms/u-boot-sam460ex
F: docs/system/ppc/amigang.rst
diff --git a/hw/microblaze/Kconfig b/hw/microblaze/Kconfig
index b0214b2c8b..b269c9f89e 100644
--- a/hw/microblaze/Kconfig
+++ b/hw/microblaze/Kconfig
@@ -1,7 +1,7 @@
config PETALOGIX_S3ADSP1800
bool
default y
- depends on MICROBLAZE
+ depends on MICROBLAZE && DTC
select PFLASH_CFI01
select XILINX
select XILINX_AXI
@@ -11,7 +11,7 @@ config PETALOGIX_S3ADSP1800
config PETALOGIX_ML605
bool
default y
- depends on MICROBLAZE
+ depends on MICROBLAZE && DTC
select PFLASH_CFI01
select SERIAL_MM
select SSI_M25P80
diff --git a/hw/ppc/Kconfig b/hw/ppc/Kconfig
index ced6bbc740..ae4e82e189 100644
--- a/hw/ppc/Kconfig
+++ b/hw/ppc/Kconfig
@@ -47,7 +47,7 @@ config POWERNV
config PPC440
bool
default y
- depends on PPC && FDT
+ depends on PPC && FDT && DTC
imply PCI_DEVICES
imply TEST_DEVICES
imply E1000_PCI
@@ -66,7 +66,7 @@ config PPC4XX
config SAM460EX
bool
default y
- depends on PPC && FDT
+ depends on PPC && FDT && DTC
select PFLASH_CFI01
select IDE_SII3112
select M41T80
diff --git a/pc-bios/dtb/bamboo.dtb b/pc-bios/dtb/bamboo.dtb
deleted file mode 100644
index d12e201aa0d855e5e2423b17976fb797177c00e5..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 3211
zcmcb>`|m9S15Y;t1A_$v1J?@%1_liV1_nU}1_l8JFkoEFz`(Tu%tR#^p<HGL1_l-=
zn~8ye0mkQNU|;~L0r7bl7#O4zbCZ*Gk`i;1^7BE;Vd9Ed#6jliK=m^w=42)orxwHX
zNHQ=mnClnhB<bfDB<UBY7G);pIHabT85kHF7=RQ(-2hT&k5!!sTph^0jL8M1V8fyM
zKz4(Sfw>*T2l)jomRwNk0JQ|<evq7dazQCb4#ejJ`7<EDJhdpmS;xf0z%>9Qg9wvg
z2p1kk;qs?gK}tY+L1v{h)>b$mxuc4Kfk6R@--E`V$H344G7_eLH4+~rz5}Y4oq>Vj
zcwS;jW?3po7;gVfXc)uv--q%+;R3>pxv9DNMU`+pAamTWQi^A`grSSbToZ)RRe
zYEe;XL5Xg1eqKpYeojtm5mMNRF)%PFW+vt8lx8ODnwS`*7BE105Hmn-0<oS${QwG|
zKOg}ppM!yc5#*i&3=CjvLFz$jpi1C=gvA|Ho)N?cxev-`0EGcE9~1^4J_s`wrxbzA
z1E~eYE!e%qDMe8Cf~3Iqz}x~-1JVb=jL8L<dXo!q>IH=(NFN9@7UU#>3<ue(3Ja%#
zoFu5dpm2in(jlQ%kdtHr(f|z`SU7;p0+|8ggZvFk)1YWZPFLaVpBh6zg2gFCiMbGi
zK>9#xV17=_MY0{NPS?c1G`#?%8l)B$2B2~SWG@IarsO8V<Yi#~NXbn^G6~AVFbCvR
z26YAoNLtD-fQN?)%$)oJ<nVy<py7d}9^`kB8$bqv+zH|%hlK(I10%?vAT?kN%26N;
z;(%xnhK4K1k03XJ(jCYgn0evMKOI(q!Y?%`8Key)4tHm25_0;6@}TZSQV%j4WUdg@
z&mc2Ec7V(Sg(ZxS>~@em%x;i8$PAGCSV3-qn!|{thy<wx+2szA16ct}#|(;j#fE04
zrr?|kQpdr-z!3aC0mNhgu|W(L1_nkWs2G&b5YDgyloi3|faL8M7!QFAhRQSgK-~l4
z!`umy2l)ZyKNNRDi)fHq65R<h4&9w#F_2jx2Btefu7H=(SltOqJ0QJacV-$TL+TrI
zcs&9$+db0=GyXGC$~Pzv8vmJ@aP^?D4St^h@-Bl2G`)es5nH%{+=1yH3tG4b<SYhI
zxd!zk*6;y28t$Id+{9$vs@%*>NGPR1T?Nt)O1thLDP3^okd~N?sE<JD7F^bV<q;JE
zj0+7h5EmR_AoD<u3x1!#3lcyrKa(>ZQj-n903?YBPX_mb<V=tdNIxiiL2d%YFO<&!
z;)B8$#)qi|@nvCU52(BaRav?q!(hcRhz(K=NlTzC7z?!*l$pSF<U4Q{0jE!fcNf5l
zLE(nNeh+E^Fff2fkewEw@(JW1km>~>f`NenMuQ42kmI4kU<%ZT12Z5JATwkb7#LHX
zz=D_rQu!vpz`$6*!0-cI5y*@J1_s7v28h#<<v~sZmF*nxCL=-?Bqz-P)+B)tg|I+!
zQV=<iFCc<Y5+ny|zk%Wx#0Fu;<c$2{)I6{Xkb5K<7#JsFZQmi<fgpV#%&DB1l2Vjf
zT&$a%nv+w^pj@0;l?r9&=BK3QFeK;a79^HrCgr3uq$C&V79<v>=9Mr&ibn$|ZOD+4
zT9%od8edXbkjhY$n$D1%lb@Wen^u%sSelxbT**+9nVXuFSe%L^l&PDXn4FQSo0FNB
zstdA~Aq7JOrUpeC!bvVdYCVCSmYAFj@<?uKNk)DOLr!L1X@yQfMq*w{PAUU9SD`hz
z7(iau&CE+ltpMu>xmy`YAvi#a67$kiixK*Z8Okz?N=g%RbV16KON&6kp<7&#nwo-8
w1Pi5tqRiaHqDlr(RgP|uZf;_MZf;_6Hj=j7!~&?hi%U}SOG|VM5=$}|0Lt#hcK`qY
diff --git a/pc-bios/dtb/canyonlands.dtb b/pc-bios/dtb/canyonlands.dtb
deleted file mode 100644
index 9dce3443ad9578a8a4bb92ba6970cb2ae54d1ec3..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 9779
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
diff --git a/pc-bios/dtb/meson.build b/pc-bios/dtb/meson.build
index 9fcdbeff14..29b260ac2c 100644
--- a/pc-bios/dtb/meson.build
+++ b/pc-bios/dtb/meson.build
@@ -1,13 +1,13 @@
-dtbs = [
- 'bamboo.dtb',
- 'canyonlands.dtb',
- 'petalogix-ml605.dtb',
- 'petalogix-s3adsp1800.dtb',
+dts_sources = [
+ 'bamboo.dts',
+ 'canyonlands.dts',
+ 'petalogix-s3adsp1800.dts',
+ 'petalogix-ml605.dts',
]
if dtc.found()
- foreach out : dtbs
- f = fs.replace_suffix(out, '.dts')
+ foreach f : dts_sources
+ out = fs.replace_suffix(f, '.dtb')
custom_target(out,
build_by_default: have_system,
input: files(f),
@@ -17,6 +17,4 @@ if dtc.found()
command: [ dtc, '-q', '-I', 'dts', '-O', 'dtb',
'-o', '@OUTPUT@', '@INPUT0@' ])
endforeach
-else
- install_data(dtbs, install_dir: qemu_datadir / 'dtb')
endif
diff --git a/pc-bios/dtb/petalogix-ml605.dtb b/pc-bios/dtb/petalogix-ml605.dtb
deleted file mode 100644
index 9a05434db7f622d1b598d2cf1415c867cf7f5cc6..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 9882
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
diff --git a/pc-bios/dtb/petalogix-s3adsp1800.dtb b/pc-bios/dtb/petalogix-s3adsp1800.dtb
deleted file mode 100644
index 2513599438bffca96a93e877a1981efdd1a91115..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 8161
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
J8%PAM4*(cloX-FN
--
2.49.0
^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [PATCH 4/5] configure: Add dtc option
2025-06-10 20:41 ` [PATCH 4/5] configure: Add dtc option Bernhard Beschow
@ 2025-06-11 0:37 ` BALATON Zoltan
2025-06-11 8:45 ` Daniel P. Berrangé
0 siblings, 1 reply; 19+ messages in thread
From: BALATON Zoltan @ 2025-06-11 0:37 UTC (permalink / raw)
To: Bernhard Beschow
Cc: qemu-devel, qemu-arm, Philippe Mathieu-Daudé, Peter Maydell,
Paolo Bonzini, Edgar E. Iglesias, qemu-ppc,
Marc-André Lureau, Daniel P. Berrangé
On Tue, 10 Jun 2025, Bernhard Beschow wrote:
> The next patch will make dtc mandatory for boards with a bundled DTB, causing
> these boards to be omitted when dtc is missing. Allow packagers to force the
> build of those boards by providing an option.
I don't like this. This might result in some machines missing from some
distros if they don't notice this and forget to update their packages and
these are machines I care about. Also what guarantees that we don't get
bugs by compiling the device tree with different dtc versions which might
generate different binaries? The binaries we have now are known to work
and don't take much space so keeping them for convenience might be
simpler. If it worked so far why change it now?
If this was using dtc from the submodule when not using system libfdt then
at least it would not result in dropped machines and we had a known
working dtc to compile with. Why isn't that used when we already have it
for libfdt?
Regards,
BALATON Zoltan
> Signed-off-by: Bernhard Beschow <shentey@gmail.com>
> ---
> meson.build | 12 ++++++++++++
> Kconfig.host | 3 +++
> meson_options.txt | 3 +++
> pc-bios/dtb/meson.build | 1 -
> scripts/meson-buildoptions.sh | 3 +++
> 5 files changed, 21 insertions(+), 1 deletion(-)
>
> diff --git a/meson.build b/meson.build
> index 34729c2a3d..8a03fbaed8 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -2119,6 +2119,15 @@ if fdt_opt == 'internal'
> fdt = libfdt_proj.get_variable('libfdt_dep')
> endif
>
> +dtc = not_found
> +dtc_opt = get_option('dtc')
> +if dtc_opt == 'enabled' or (dtc_opt == 'auto' and have_system)
> + dtc = find_program('dtc', required: dtc_opt == 'enabled')
> + if not dtc.found() and dtc_opt == 'enabled'
> + error('dtc not found')
> + endif
> +endif
> +
> rdma = not_found
> if not get_option('rdma').auto() or have_system
> rdma_libs = [cc.find_library('rdmacm', has_headers: ['rdma/rdma_cma.h'],
> @@ -2477,6 +2486,7 @@ config_host_data.set('CONFIG_FREEBSD', host_os == 'freebsd')
> config_host_data.set('CONFIG_CAPSTONE', capstone.found())
> config_host_data.set('CONFIG_COCOA', cocoa.found())
> config_host_data.set('CONFIG_DARWIN', host_os == 'darwin')
> +config_host_data.set('CONFIG_DTC', dtc.found())
> config_host_data.set('CONFIG_FDT', fdt.found())
> config_host_data.set('CONFIG_FUZZ', get_option('fuzzing'))
> config_host_data.set('CONFIG_GCOV', get_option('b_coverage'))
> @@ -3314,6 +3324,7 @@ host_kconfig = \
> (libcbor.found() ? ['CONFIG_LIBCBOR=y'] : []) + \
> (gnutls.found() ? ['CONFIG_GNUTLS=y'] : []) + \
> (x11.found() ? ['CONFIG_X11=y'] : []) + \
> + (dtc.found() ? ['CONFIG_DTC=y'] : []) + \
> (fdt.found() ? ['CONFIG_FDT=y'] : []) + \
> (have_vhost_user ? ['CONFIG_VHOST_USER=y'] : []) + \
> (have_vhost_vdpa ? ['CONFIG_VHOST_VDPA=y'] : []) + \
> @@ -4703,6 +4714,7 @@ summary_info += {'sphinx-build': sphinx_build}
> if config_host.has_key('GDB')
> summary_info += {'gdb': config_host['GDB']}
> endif
> +summary_info += {'dtc': dtc}
> summary_info += {'iasl': iasl}
> summary_info += {'genisoimage': config_host['GENISOIMAGE']}
> if host_os == 'windows' and have_ga
> diff --git a/Kconfig.host b/Kconfig.host
> index 933425c74b..82fc8848dd 100644
> --- a/Kconfig.host
> +++ b/Kconfig.host
> @@ -29,6 +29,9 @@ config IVSHMEM
> config TPM
> bool
>
> +config DTC
> + bool
> +
> config FDT
> bool
>
> diff --git a/meson_options.txt b/meson_options.txt
> index a442be2995..d0e56564fb 100644
> --- a/meson_options.txt
> +++ b/meson_options.txt
> @@ -316,6 +316,9 @@ option('vduse_blk_export', type: 'feature', value: 'auto',
>
> option('capstone', type: 'feature', value: 'auto',
> description: 'Whether and how to find the capstone library')
> +option('dtc', type: 'combo', value: 'auto',
> + choices: ['disabled', 'enabled', 'auto'],
> + description: 'Whether to find the device tree compiler')
> option('fdt', type: 'combo', value: 'auto',
> choices: ['disabled', 'enabled', 'auto', 'system', 'internal'],
> description: 'Whether and how to find the libfdt library')
> diff --git a/pc-bios/dtb/meson.build b/pc-bios/dtb/meson.build
> index 993032949f..9fcdbeff14 100644
> --- a/pc-bios/dtb/meson.build
> +++ b/pc-bios/dtb/meson.build
> @@ -5,7 +5,6 @@ dtbs = [
> 'petalogix-s3adsp1800.dtb',
> ]
>
> -dtc = find_program('dtc', required: false)
> if dtc.found()
> foreach out : dtbs
> f = fs.replace_suffix(out, '.dts')
> diff --git a/scripts/meson-buildoptions.sh b/scripts/meson-buildoptions.sh
> index 73e0770f42..e8c452ffb0 100644
> --- a/scripts/meson-buildoptions.sh
> +++ b/scripts/meson-buildoptions.sh
> @@ -116,6 +116,7 @@ meson_options_help() {
> printf "%s\n" ' dmg dmg image format support'
> printf "%s\n" ' docs Documentations build support'
> printf "%s\n" ' dsound DirectSound sound support'
> + printf "%s\n" ' dtc Whether to find the device tree compiler'
> printf "%s\n" ' fuse FUSE block device export'
> printf "%s\n" ' fuse-lseek SEEK_HOLE/SEEK_DATA support for FUSE exports'
> printf "%s\n" ' gcrypt libgcrypt cryptography support'
> @@ -310,6 +311,8 @@ _meson_option_parse() {
> --disable-docs) printf "%s" -Ddocs=disabled ;;
> --enable-dsound) printf "%s" -Ddsound=enabled ;;
> --disable-dsound) printf "%s" -Ddsound=disabled ;;
> + --enable-dtc) printf "%s" -Ddtc=enabled ;;
> + --disable-dtc) printf "%s" -Ddtc=disabled ;;
> --enable-fdt) printf "%s" -Dfdt=enabled ;;
> --disable-fdt) printf "%s" -Dfdt=disabled ;;
> --enable-fdt=*) quote_sh "-Dfdt=$2" ;;
>
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 3/5] scripts/meson-buildoptions: Sort coroutine_backend choices lexicographically
2025-06-10 20:41 ` [PATCH 3/5] scripts/meson-buildoptions: Sort coroutine_backend choices lexicographically Bernhard Beschow
@ 2025-06-11 0:37 ` BALATON Zoltan
2025-06-11 10:40 ` Thomas Huth
1 sibling, 0 replies; 19+ messages in thread
From: BALATON Zoltan @ 2025-06-11 0:37 UTC (permalink / raw)
To: Bernhard Beschow
Cc: qemu-devel, qemu-arm, Philippe Mathieu-Daudé, Peter Maydell,
Paolo Bonzini, Edgar E. Iglesias, qemu-ppc,
Marc-André Lureau, Daniel P. Berrangé
On Tue, 10 Jun 2025, Bernhard Beschow wrote:
> When changing meson_options.txt, this script gets updated automatically by QEMU
> tooling which sorts the choices lexicographically. Fix this in preparation of
> the ext patch.
Typo: next patch
> Fixes: ccc403ed5844 ("meson: Add wasm build in build scripts")
> Signed-off-by: Bernhard Beschow <shentey@gmail.com>
> ---
> scripts/meson-buildoptions.sh | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/scripts/meson-buildoptions.sh b/scripts/meson-buildoptions.sh
> index f09ef9604f..73e0770f42 100644
> --- a/scripts/meson-buildoptions.sh
> +++ b/scripts/meson-buildoptions.sh
> @@ -80,7 +80,7 @@ meson_options_help() {
> printf "%s\n" ' --tls-priority=VALUE Default TLS protocol/cipher priority string'
> printf "%s\n" ' [NORMAL]'
> printf "%s\n" ' --with-coroutine=CHOICE coroutine backend to use (choices:'
> - printf "%s\n" ' auto/sigaltstack/ucontext/windows/wasm)'
> + printf "%s\n" ' auto/sigaltstack/ucontext/wasm/windows)'
> printf "%s\n" ' --with-pkgversion=VALUE use specified string as sub-version of the'
> printf "%s\n" ' package'
> printf "%s\n" ' --with-suffix=VALUE Suffix for QEMU data/modules/config directories'
>
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 4/5] configure: Add dtc option
2025-06-11 0:37 ` BALATON Zoltan
@ 2025-06-11 8:45 ` Daniel P. Berrangé
2025-06-11 11:45 ` BALATON Zoltan
0 siblings, 1 reply; 19+ messages in thread
From: Daniel P. Berrangé @ 2025-06-11 8:45 UTC (permalink / raw)
To: BALATON Zoltan
Cc: Bernhard Beschow, qemu-devel, qemu-arm,
Philippe Mathieu-Daudé, Peter Maydell, Paolo Bonzini,
Edgar E. Iglesias, qemu-ppc, Marc-André Lureau
On Wed, Jun 11, 2025 at 02:37:08AM +0200, BALATON Zoltan wrote:
> On Tue, 10 Jun 2025, Bernhard Beschow wrote:
> > The next patch will make dtc mandatory for boards with a bundled DTB, causing
> > these boards to be omitted when dtc is missing. Allow packagers to force the
> > build of those boards by providing an option.
>
> I don't like this. This might result in some machines missing from some
> distros if they don't notice this and forget to update their packages and
> these are machines I care about.
"Someone might not notice & screw up" is pretty much an argument for
not doing anything at all. We publish release notes to alert distros
to these kind of changes which is a reasonable effort on our part.
Distros need to play their part by reading them and adapting to the
changes. They can also compare the available options with new and
old QEMU to identify any new build features they need to handle when
updating.
> Also what guarantees that we don't get bugs
> by compiling the device tree with different dtc versions which might
> generate different binaries? The binaries we have now are known to work and
> don't take much space so keeping them for convenience might be simpler. If
> it worked so far why change it now?
Ultimately the DTC project has responsibility to not cause regressions
in new releases they issue, as is the case for any 3rd party dep that
we rely on.
We have CI jobs that can run on different distros. If we have coverage
of the boards in functional test suite that provides a way to validate the
operation with differing DTC versions as a sanity check.
Distributing pre-built binaries in source release tarballs is a long
standing issue with QEMU's releases. If we can eliminate the pre-bbuilt
DTB and only ship the source that is a good thing IMHO.
> If this was using dtc from the submodule when not using system libfdt then
> at least it would not result in dropped machines and we had a known working
> dtc to compile with. Why isn't that used when we already have it for libfdt?
Are there any platforms that we target which still lack dtc ? The
submodule was there to plug gaps in distro support long ago, but
if every distro has dtc available the submodule is redundant.
With regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 1/5] hw: Fix type constant for DTB files
2025-06-10 20:41 ` [PATCH 1/5] hw: Fix type constant for DTB files Bernhard Beschow
@ 2025-06-11 10:31 ` Thomas Huth
0 siblings, 0 replies; 19+ messages in thread
From: Thomas Huth @ 2025-06-11 10:31 UTC (permalink / raw)
To: Bernhard Beschow, qemu-devel
Cc: qemu-arm, Philippe Mathieu-Daudé, Peter Maydell,
Paolo Bonzini, Edgar E. Iglesias, qemu-ppc,
Marc-André Lureau, Daniel P. Berrangé
On 10/06/2025 22.41, Bernhard Beschow wrote:
> Commit fcb1ad456c58 ("system/datadir: Add new type constant for DTB files")
> introduced a new type constant for DTB files and converted the boards with
> bundled device trees to use it. Convert the other boards for consistency.
>
> Fixes: fcb1ad456c58 ("system/datadir: Add new type constant for DTB files")
> Signed-off-by: Bernhard Beschow <shentey@gmail.com>
> ---
> hw/arm/boot.c | 2 +-
> hw/ppc/e500.c | 2 +-
> 2 files changed, 2 insertions(+), 2 deletions(-)
Reviewed-by: Thomas Huth <thuth@redhat.com>
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 2/5] pc-bios/dtb/meson: Prefer target name to be outfile, not infile
2025-06-10 20:41 ` [PATCH 2/5] pc-bios/dtb/meson: Prefer target name to be outfile, not infile Bernhard Beschow
@ 2025-06-11 10:38 ` Thomas Huth
0 siblings, 0 replies; 19+ messages in thread
From: Thomas Huth @ 2025-06-11 10:38 UTC (permalink / raw)
To: Bernhard Beschow, qemu-devel
Cc: qemu-arm, Philippe Mathieu-Daudé, Peter Maydell,
Paolo Bonzini, Edgar E. Iglesias, qemu-ppc,
Marc-André Lureau, Daniel P. Berrangé
On 10/06/2025 22.41, Bernhard Beschow wrote:
> Makes this custom_target() usage consistent with other ones in QEMU.
>
> Fixes: 6e0dc9d2a88a ("meson: compile bundled device trees")
> Signed-off-by: Bernhard Beschow <shentey@gmail.com>
> ---
> pc-bios/dtb/meson.build | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/pc-bios/dtb/meson.build b/pc-bios/dtb/meson.build
> index 7a71835bca..993032949f 100644
> --- a/pc-bios/dtb/meson.build
> +++ b/pc-bios/dtb/meson.build
> @@ -9,7 +9,7 @@ dtc = find_program('dtc', required: false)
> if dtc.found()
> foreach out : dtbs
> f = fs.replace_suffix(out, '.dts')
> - custom_target(f,
> + custom_target(out,
> build_by_default: have_system,
> input: files(f),
> output: out,
That looks better, indeed.
Tested-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 3/5] scripts/meson-buildoptions: Sort coroutine_backend choices lexicographically
2025-06-10 20:41 ` [PATCH 3/5] scripts/meson-buildoptions: Sort coroutine_backend choices lexicographically Bernhard Beschow
2025-06-11 0:37 ` BALATON Zoltan
@ 2025-06-11 10:40 ` Thomas Huth
2025-06-11 12:59 ` Kohei Tokunaga
1 sibling, 1 reply; 19+ messages in thread
From: Thomas Huth @ 2025-06-11 10:40 UTC (permalink / raw)
To: Bernhard Beschow, qemu-devel
Cc: qemu-arm, Philippe Mathieu-Daudé, Peter Maydell,
Paolo Bonzini, Edgar E. Iglesias, qemu-ppc,
Marc-André Lureau, Daniel P. Berrangé, Kohei Tokunaga
On 10/06/2025 22.41, Bernhard Beschow wrote:
> When changing meson_options.txt, this script gets updated automatically by QEMU
> tooling which sorts the choices lexicographically. Fix this in preparation of
> the ext patch.
s/ext/next/
> Fixes: ccc403ed5844 ("meson: Add wasm build in build scripts")
> Signed-off-by: Bernhard Beschow <shentey@gmail.com>
> ---
> scripts/meson-buildoptions.sh | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/scripts/meson-buildoptions.sh b/scripts/meson-buildoptions.sh
> index f09ef9604f..73e0770f42 100644
> --- a/scripts/meson-buildoptions.sh
> +++ b/scripts/meson-buildoptions.sh
> @@ -80,7 +80,7 @@ meson_options_help() {
> printf "%s\n" ' --tls-priority=VALUE Default TLS protocol/cipher priority string'
> printf "%s\n" ' [NORMAL]'
> printf "%s\n" ' --with-coroutine=CHOICE coroutine backend to use (choices:'
> - printf "%s\n" ' auto/sigaltstack/ucontext/windows/wasm)'
> + printf "%s\n" ' auto/sigaltstack/ucontext/wasm/windows)'
> printf "%s\n" ' --with-pkgversion=VALUE use specified string as sub-version of the'
> printf "%s\n" ' package'
> printf "%s\n" ' --with-suffix=VALUE Suffix for QEMU data/modules/config directories'
Tested-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 4/5] configure: Add dtc option
2025-06-11 8:45 ` Daniel P. Berrangé
@ 2025-06-11 11:45 ` BALATON Zoltan
2025-06-12 5:12 ` Paolo Bonzini
0 siblings, 1 reply; 19+ messages in thread
From: BALATON Zoltan @ 2025-06-11 11:45 UTC (permalink / raw)
To: Daniel P. Berrangé
Cc: Bernhard Beschow, qemu-devel, qemu-arm,
Philippe Mathieu-Daudé, Peter Maydell, Paolo Bonzini,
Edgar E. Iglesias, qemu-ppc, Marc-André Lureau
[-- Attachment #1: Type: text/plain, Size: 2924 bytes --]
On Wed, 11 Jun 2025, Daniel P. Berrangé wrote:
> On Wed, Jun 11, 2025 at 02:37:08AM +0200, BALATON Zoltan wrote:
>> On Tue, 10 Jun 2025, Bernhard Beschow wrote:
>>> The next patch will make dtc mandatory for boards with a bundled DTB, causing
>>> these boards to be omitted when dtc is missing. Allow packagers to force the
>>> build of those boards by providing an option.
>>
>> I don't like this. This might result in some machines missing from some
>> distros if they don't notice this and forget to update their packages and
>> these are machines I care about.
>
> "Someone might not notice & screw up" is pretty much an argument for
> not doing anything at all. We publish release notes to alert distros
More like "if it ain't broke don't fix it".
> to these kind of changes which is a reasonable effort on our part.
> Distros need to play their part by reading them and adapting to the
> changes. They can also compare the available options with new and
> old QEMU to identify any new build features they need to handle when
> updating.
>
>> Also what guarantees that we don't get bugs
>> by compiling the device tree with different dtc versions which might
>> generate different binaries? The binaries we have now are known to work and
>> don't take much space so keeping them for convenience might be simpler. If
>> it worked so far why change it now?
>
> Ultimately the DTC project has responsibility to not cause regressions
> in new releases they issue, as is the case for any 3rd party dep that
> we rely on.
>
> We have CI jobs that can run on different distros. If we have coverage
> of the boards in functional test suite that provides a way to validate the
> operation with differing DTC versions as a sanity check.
>
> Distributing pre-built binaries in source release tarballs is a long
> standing issue with QEMU's releases. If we can eliminate the pre-bbuilt
> DTB and only ship the source that is a good thing IMHO.
>
>> If this was using dtc from the submodule when not using system libfdt then
>> at least it would not result in dropped machines and we had a known working
>> dtc to compile with. Why isn't that used when we already have it for libfdt?
>
> Are there any platforms that we target which still lack dtc ? The
> submodule was there to plug gaps in distro support long ago, but
> if every distro has dtc available the submodule is redundant.
OK, can we then make libfdt and dtc mandatory and not build at all instead
of disabling boards without it? I only care that my boards will be in
distro packages so users don't have to compile and I don't have to provide
binaries which would also be ensured if we require dtc, then the dtbs can
be dropped.
There's still a potential issue that some of the dts files are old and may
not compile with newer dtc and changing them may upset the guest but
hopefully we won't get that.
Regards,
BALATON Zoltan
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 3/5] scripts/meson-buildoptions: Sort coroutine_backend choices lexicographically
2025-06-11 10:40 ` Thomas Huth
@ 2025-06-11 12:59 ` Kohei Tokunaga
0 siblings, 0 replies; 19+ messages in thread
From: Kohei Tokunaga @ 2025-06-11 12:59 UTC (permalink / raw)
To: Bernhard Beschow, Thomas Huth, qemu-devel
Cc: qemu-arm, Philippe Mathieu-Daudé, Peter Maydell,
Paolo Bonzini, Edgar E. Iglesias, qemu-ppc,
Marc-André Lureau, Daniel P. Berrangé
[-- Attachment #1: Type: text/plain, Size: 145 bytes --]
I should've made sure to run the tool, sorry. Thanks for spotting and fixing
this issue.
Reviewed-by: Kohei Tokunaga <ktokunaga.mail@gmail.com>
[-- Attachment #2: Type: text/html, Size: 252 bytes --]
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 4/5] configure: Add dtc option
2025-06-11 11:45 ` BALATON Zoltan
@ 2025-06-12 5:12 ` Paolo Bonzini
2025-06-12 5:46 ` Paolo Bonzini
2025-06-12 12:39 ` BALATON Zoltan
0 siblings, 2 replies; 19+ messages in thread
From: Paolo Bonzini @ 2025-06-12 5:12 UTC (permalink / raw)
To: BALATON Zoltan, Daniel P. Berrangé
Cc: Bernhard Beschow, qemu-devel, qemu-arm,
Philippe Mathieu-Daudé, Peter Maydell, Edgar E. Iglesias,
qemu-ppc, Marc-André Lureau
On 6/11/25 13:45, BALATON Zoltan wrote:
> On Wed, 11 Jun 2025, Daniel P. Berrangé wrote:
>> On Wed, Jun 11, 2025 at 02:37:08AM +0200, BALATON Zoltan wrote:
>>> On Tue, 10 Jun 2025, Bernhard Beschow wrote:
>>>> The next patch will make dtc mandatory for boards with a bundled
>>>> DTB, causing
>>>> these boards to be omitted when dtc is missing. Allow packagers to
>>>> force the
>>>> build of those boards by providing an option.
>>>
>>> I don't like this. This might result in some machines missing from some
>>> distros if they don't notice this and forget to update their packages
>>> and
>>> these are machines I care about.
>>
>> "Someone might not notice & screw up" is pretty much an argument for
>> not doing anything at all. We publish release notes to alert distros
>
> More like "if it ain't broke don't fix it".
>
>> to these kind of changes which is a reasonable effort on our part.
>> Distros need to play their part by reading them and adapting to the
>> changes. They can also compare the available options with new and
>> old QEMU to identify any new build features they need to handle when
>> updating.
>>
>>> Also what guarantees that we don't
>>> get bugs
>>> by compiling the device tree with different dtc versions which might
>>> generate different binaries? The binaries we have now are known to
>>> work and
>>> don't take much space so keeping them for convenience might be
>>> simpler. If
>>> it worked so far why change it now?
>>
>> Ultimately the DTC project has responsibility to not cause regressions
>> in new releases they issue, as is the case for any 3rd party dep that
>> we rely on.
>>
>> We have CI jobs that can run on different distros. If we have coverage
>> of the boards in functional test suite that provides a way to validate
>> the
>> operation with differing DTC versions as a sanity check.
>>
>> Distributing pre-built binaries in source release tarballs is a long
>> standing issue with QEMU's releases. If we can eliminate the pre-bbuilt
>> DTB and only ship the source that is a good thing IMHO.
>>
>>> If this was using dtc from the submodule when not using system libfdt
>>> then
>>> at least it would not result in dropped machines and we had a known
>>> working
>>> dtc to compile with. Why isn't that used when we already have it for
>>> libfdt?
>>
>> Are there any platforms that we target which still lack dtc ? The
>> submodule was there to plug gaps in distro support long ago, but
>> if every distro has dtc available the submodule is redundant.
>
> OK, can we then make libfdt and dtc mandatory and not build at all
> instead of disabling boards without it?
Disabling libfdt was done because of the x86 microvm board, which was
adding a libfdt dependency to all of qemu-system-x86_64.
However, several targets still have a hard dependency on libfdt, plus
libfdt is supported as a subproject and will be built together with the
emulators. So the impact of the change was minimal, and limited only to
people using --disable-libfdt or --disable-download on the configure
command line. This is not true of Bernard's proposal to use dtc.
For now, one possibility is just to make dtc mandatory whenever one of
this boards is used; the best would be to be able to use the dtc that
comes from the libfdt subproject. This however requires patching dtc's
meson.build so that it calls meson.override_find_program (and it could
also use meson.override_dependency while you're at it).
I'll send a patch to the upstream dtc project and you can add it to QEMU
via diff_files (see commit 64644bc4eab2f for an example).
Thanks,
Paolo
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 4/5] configure: Add dtc option
2025-06-12 5:12 ` Paolo Bonzini
@ 2025-06-12 5:46 ` Paolo Bonzini
2025-06-12 21:27 ` Bernhard Beschow
2025-06-12 12:39 ` BALATON Zoltan
1 sibling, 1 reply; 19+ messages in thread
From: Paolo Bonzini @ 2025-06-12 5:46 UTC (permalink / raw)
To: BALATON Zoltan, Daniel P. Berrangé
Cc: Bernhard Beschow, qemu-devel, qemu-arm,
Philippe Mathieu-Daudé, Peter Maydell, Edgar E. Iglesias,
qemu-ppc, Marc-André Lureau
On 6/12/25 07:12, Paolo Bonzini wrote:
> I'll send a patch to the upstream dtc project and you can add it to QEMU
> via diff_files (see commit 64644bc4eab2f for an example).
This is the patch, backported to QEMU's version of the dtc subproject:
diff --git a/libfdt/meson.build b/libfdt/meson.build
index 0307ffb..6581965 100644
--- a/libfdt/meson.build
+++ b/libfdt/meson.build
@@ -30,6 +30,7 @@ libfdt_dep = declare_dependency(
include_directories: libfdt_inc,
link_with: libfdt,
)
+meson.override_dependency('libfdt', libfdt_dep)
install_headers(
files(
diff --git a/meson.build b/meson.build
index b23ea1b..7def0a6 100644
--- a/meson.build
+++ b/meson.build
@@ -54,6 +54,7 @@ version_gen_h = vcs_tag(
subdir('libfdt')
+dtc_tools = []
if get_option('tools')
flex = find_program('flex', required: true)
bison = find_program('bison', required: true)
@@ -77,7 +78,7 @@ if get_option('tools')
)
if cc.check_header('fnmatch.h')
- executable(
+ dtc_tools += executable(
'convert-dtsv0',
[
lgen.process('convert-dtsv0-lexer.l'),
@@ -88,7 +89,7 @@ if get_option('tools')
)
endif
- executable(
+ dtc_tools += executable(
'dtc',
[
lgen.process('dtc-lexer.l'),
@@ -108,7 +109,7 @@ if get_option('tools')
)
foreach e: ['fdtdump', 'fdtget', 'fdtput', 'fdtoverlay']
- executable(e, files(e + '.c'), dependencies: util_dep, install: true)
+ dtc_tools += executable(e, files(e + '.c'), dependencies: util_dep, install: true)
endforeach
install_data(
@@ -118,6 +119,10 @@ if get_option('tools')
)
endif
+foreach e: dtc_tools
+ meson.override_find_program(e.name(), e)
+endforeach
+
if not meson.is_cross_build()
if py.found() and swig.found()
subdir('pylibfdt')
and this is how you can then find dtc in QEMU's meson.build:
diff --git a/meson.build b/meson.build
index 61595015802..831678b4580 100644
--- a/meson.build
+++ b/meson.build
@@ -2121,13 +2121,15 @@ if numa.found() and not cc.links('''
endif
fdt = not_found
+dtc = not_found
fdt_opt = get_option('fdt')
if fdt_opt == 'enabled' and get_option('wrap_mode') == 'nodownload'
fdt_opt = 'system'
endif
if fdt_opt in ['enabled', 'system'] or (fdt_opt == 'auto' and have_system)
fdt = cc.find_library('fdt', required: fdt_opt == 'system')
- if fdt.found() and cc.links('''
+ dtc = find_program('dtc', required: fdt_opt == 'system')
+ if dtc.found() and fdt.found() and cc.links('''
#include <libfdt.h>
#include <libfdt_env.h>
int main(void) { fdt_find_max_phandle(NULL, NULL); return 0; }''',
@@ -2136,8 +2138,12 @@ if fdt_opt in ['enabled', 'system'] or (fdt_opt == 'auto' and have_system)
elif fdt_opt != 'system'
fdt_opt = get_option('wrap_mode') == 'nodownload' ? 'disabled' : 'internal'
fdt = not_found
+ dtc = not_found
else
- error('system libfdt is too old (1.5.1 or newer required)')
+ if dtc.found()
+ error('system libfdt is too old (1.5.1 or newer required)')
+ else
+ error('device tree compiler not found')
endif
endif
if fdt_opt == 'internal'
@@ -2145,7 +2148,8 @@ if fdt_opt == 'internal'
libfdt_proj = subproject('dtc', required: true,
default_options: ['tools=false', 'yaml=disabled',
'python=disabled', 'default_library=static'])
- fdt = libfdt_proj.get_variable('libfdt_dep')
+ fdt = dependency('libfdt', required: true)
+ dtc = find_program('dtc', required: true)
endif
rdma = not_found
^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [PATCH 0/5] DTB build housekeeping
2025-06-10 20:41 [PATCH 0/5] DTB build housekeeping Bernhard Beschow
` (4 preceding siblings ...)
2025-06-10 20:41 ` [PATCH 5/5] configure: Require dtc for boards with bundled device trees Bernhard Beschow
@ 2025-06-12 6:09 ` Paolo Bonzini
5 siblings, 0 replies; 19+ messages in thread
From: Paolo Bonzini @ 2025-06-12 6:09 UTC (permalink / raw)
To: Bernhard Beschow, qemu-devel
Cc: qemu-arm, Philippe Mathieu-Daudé, Peter Maydell,
Edgar E. Iglesias, qemu-ppc, Marc-André Lureau,
Daniel P. Berrangé
On 6/10/25 22:41, Bernhard Beschow wrote:
> This series removes the bundled device tree blobs from the repository which are
> redundant to the bundled device tree sources. To make this work, the device tree
> compiler 'dtc' is now required for the boards which rely on these device trees.
> Building these board can be enforced with a 'dtc' build option which should
> help packagers. For simplicity, 'dtc' is searched for in the system only rather
> than also considering the 'dtc' submodule.
>
> I also tried unsing Meson's source_set::add(when: ...) for building only the
> needed DTBs but eventually found it to be too over-engineered.
>
> Last but not least two inconsistencies regarding QEMU_FILE_TYPE_DTB are fixed
> which seem to be latent bugs (one of which materializes in my e500-fdt branch).
Applied patches 1-3, thanks.
Paolo
> Bernhard Beschow (5):
> hw: Fix type constant for DTB files
> pc-bios/dtb/meson: Prefer target name to be outfile, not infile
> scripts/meson-buildoptions: Sort coroutine_backend choices
> lexicographically
> configure: Add dtc option
> configure: Require dtc for boards with bundled device trees
>
> MAINTAINERS | 2 +-
> meson.build | 12 ++++++++++++
> hw/arm/boot.c | 2 +-
> hw/ppc/e500.c | 2 +-
> Kconfig.host | 3 +++
> hw/microblaze/Kconfig | 4 ++--
> hw/ppc/Kconfig | 4 ++--
> meson_options.txt | 3 +++
> pc-bios/dtb/bamboo.dtb | Bin 3211 -> 0 bytes
> pc-bios/dtb/canyonlands.dtb | Bin 9779 -> 0 bytes
> pc-bios/dtb/meson.build | 19 ++++++++-----------
> pc-bios/dtb/petalogix-ml605.dtb | Bin 9882 -> 0 bytes
> pc-bios/dtb/petalogix-s3adsp1800.dtb | Bin 8161 -> 0 bytes
> scripts/meson-buildoptions.sh | 5 ++++-
> 14 files changed, 37 insertions(+), 19 deletions(-)
> delete mode 100644 pc-bios/dtb/bamboo.dtb
> delete mode 100644 pc-bios/dtb/canyonlands.dtb
> delete mode 100644 pc-bios/dtb/petalogix-ml605.dtb
> delete mode 100644 pc-bios/dtb/petalogix-s3adsp1800.dtb
>
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 4/5] configure: Add dtc option
2025-06-12 5:12 ` Paolo Bonzini
2025-06-12 5:46 ` Paolo Bonzini
@ 2025-06-12 12:39 ` BALATON Zoltan
1 sibling, 0 replies; 19+ messages in thread
From: BALATON Zoltan @ 2025-06-12 12:39 UTC (permalink / raw)
To: Paolo Bonzini
Cc: Daniel P. Berrangé, Bernhard Beschow, qemu-devel, qemu-arm,
Philippe Mathieu-Daudé, Peter Maydell, Edgar E. Iglesias,
qemu-ppc, Marc-André Lureau
[-- Attachment #1: Type: text/plain, Size: 4377 bytes --]
On Thu, 12 Jun 2025, Paolo Bonzini wrote:
> On 6/11/25 13:45, BALATON Zoltan wrote:
>> On Wed, 11 Jun 2025, Daniel P. Berrangé wrote:
>>> On Wed, Jun 11, 2025 at 02:37:08AM +0200, BALATON Zoltan wrote:
>>>> On Tue, 10 Jun 2025, Bernhard Beschow wrote:
>>>>> The next patch will make dtc mandatory for boards with a bundled DTB,
>>>>> causing
>>>>> these boards to be omitted when dtc is missing. Allow packagers to force
>>>>> the
>>>>> build of those boards by providing an option.
>>>>
>>>> I don't like this. This might result in some machines missing from some
>>>> distros if they don't notice this and forget to update their packages and
>>>> these are machines I care about.
>>>
>>> "Someone might not notice & screw up" is pretty much an argument for
>>> not doing anything at all. We publish release notes to alert distros
>>
>> More like "if it ain't broke don't fix it".
>>
>>> to these kind of changes which is a reasonable effort on our part.
>>> Distros need to play their part by reading them and adapting to the
>>> changes. They can also compare the available options with new and
>>> old QEMU to identify any new build features they need to handle when
>>> updating.
>>>
>>>> Also what guarantees that we don't get
>>>> bugs
>>>> by compiling the device tree with different dtc versions which might
>>>> generate different binaries? The binaries we have now are known to work
>>>> and
>>>> don't take much space so keeping them for convenience might be simpler.
>>>> If
>>>> it worked so far why change it now?
>>>
>>> Ultimately the DTC project has responsibility to not cause regressions
>>> in new releases they issue, as is the case for any 3rd party dep that
>>> we rely on.
>>>
>>> We have CI jobs that can run on different distros. If we have coverage
>>> of the boards in functional test suite that provides a way to validate the
>>> operation with differing DTC versions as a sanity check.
>>>
>>> Distributing pre-built binaries in source release tarballs is a long
>>> standing issue with QEMU's releases. If we can eliminate the pre-bbuilt
>>> DTB and only ship the source that is a good thing IMHO.
>>>
>>>> If this was using dtc from the submodule when not using system libfdt
>>>> then
>>>> at least it would not result in dropped machines and we had a known
>>>> working
>>>> dtc to compile with. Why isn't that used when we already have it for
>>>> libfdt?
>>>
>>> Are there any platforms that we target which still lack dtc ? The
>>> submodule was there to plug gaps in distro support long ago, but
>>> if every distro has dtc available the submodule is redundant.
>>
>> OK, can we then make libfdt and dtc mandatory and not build at all instead
>> of disabling boards without it?
>
> Disabling libfdt was done because of the x86 microvm board, which was adding
> a libfdt dependency to all of qemu-system-x86_64.
>
> However, several targets still have a hard dependency on libfdt, plus libfdt
> is supported as a subproject and will be built together with the emulators.
> So the impact of the change was minimal, and limited only to people using
> --disable-libfdt or --disable-download on the configure command line. This
> is not true of Bernard's proposal to use dtc.
>
> For now, one possibility is just to make dtc mandatory whenever one of this
> boards is used; the best would be to be able to use the dtc that comes from
> the libfdt subproject. This however requires patching dtc's meson.build so
> that it calls meson.override_find_program (and it could also use
> meson.override_dependency while you're at it).
>
> I'll send a patch to the upstream dtc project and you can add it to QEMU via
> diff_files (see commit 64644bc4eab2f for an example).
This seems getting too complicated just to get rid of some small binaries
so I'd just leave it as it is now but if Bernhard wants to make this
change I'm OK with it as long as my boards won't get disabled in configs
where now they are built I.e. if no system dtc is found now the dtbs are
installed; if this used dtc from submodule instead that would be OK but
dropping the board is not. I'm also OK with replacing the submodule with
always requiring system libfdt and dtc but that may be more work for
distros to update their package dependencies.
Regards,
BALATON Zoltan
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 4/5] configure: Add dtc option
2025-06-12 5:46 ` Paolo Bonzini
@ 2025-06-12 21:27 ` Bernhard Beschow
0 siblings, 0 replies; 19+ messages in thread
From: Bernhard Beschow @ 2025-06-12 21:27 UTC (permalink / raw)
To: Paolo Bonzini, BALATON Zoltan, Daniel P. Berrangé
Cc: qemu-devel, qemu-arm, Philippe Mathieu-Daudé, Peter Maydell,
Edgar E. Iglesias, qemu-ppc, Marc-André Lureau
Am 12. Juni 2025 05:46:03 UTC schrieb Paolo Bonzini <pbonzini@redhat.com>:
>On 6/12/25 07:12, Paolo Bonzini wrote:
>> I'll send a patch to the upstream dtc project and you can add it to QEMU via diff_files (see commit 64644bc4eab2f for an example).
>This is the patch, backported to QEMU's version of the dtc subproject:
>
>diff --git a/libfdt/meson.build b/libfdt/meson.build
>index 0307ffb..6581965 100644
>--- a/libfdt/meson.build
>+++ b/libfdt/meson.build
>@@ -30,6 +30,7 @@ libfdt_dep = declare_dependency(
> include_directories: libfdt_inc,
> link_with: libfdt,
> )
>+meson.override_dependency('libfdt', libfdt_dep)
> install_headers(
> files(
>diff --git a/meson.build b/meson.build
>index b23ea1b..7def0a6 100644
>--- a/meson.build
>+++ b/meson.build
>@@ -54,6 +54,7 @@ version_gen_h = vcs_tag(
> subdir('libfdt')
> +dtc_tools = []
> if get_option('tools')
> flex = find_program('flex', required: true)
> bison = find_program('bison', required: true)
>@@ -77,7 +78,7 @@ if get_option('tools')
> )
> if cc.check_header('fnmatch.h')
>- executable(
>+ dtc_tools += executable(
> 'convert-dtsv0',
> [
> lgen.process('convert-dtsv0-lexer.l'),
>@@ -88,7 +89,7 @@ if get_option('tools')
> )
> endif
> - executable(
>+ dtc_tools += executable(
> 'dtc',
> [
> lgen.process('dtc-lexer.l'),
>@@ -108,7 +109,7 @@ if get_option('tools')
> )
> foreach e: ['fdtdump', 'fdtget', 'fdtput', 'fdtoverlay']
>- executable(e, files(e + '.c'), dependencies: util_dep, install: true)
>+ dtc_tools += executable(e, files(e + '.c'), dependencies: util_dep, install: true)
> endforeach
> install_data(
>@@ -118,6 +119,10 @@ if get_option('tools')
> )
> endif
> +foreach e: dtc_tools
>+ meson.override_find_program(e.name(), e)
>+endforeach
>+
> if not meson.is_cross_build()
> if py.found() and swig.found()
> subdir('pylibfdt')
>
>
>and this is how you can then find dtc in QEMU's meson.build:
>
>diff --git a/meson.build b/meson.build
>index 61595015802..831678b4580 100644
>--- a/meson.build
>+++ b/meson.build
>@@ -2121,13 +2121,15 @@ if numa.found() and not cc.links('''
> endif
> fdt = not_found
>+dtc = not_found
> fdt_opt = get_option('fdt')
> if fdt_opt == 'enabled' and get_option('wrap_mode') == 'nodownload'
> fdt_opt = 'system'
> endif
> if fdt_opt in ['enabled', 'system'] or (fdt_opt == 'auto' and have_system)
> fdt = cc.find_library('fdt', required: fdt_opt == 'system')
>- if fdt.found() and cc.links('''
>+ dtc = find_program('dtc', required: fdt_opt == 'system')
>+ if dtc.found() and fdt.found() and cc.links('''
> #include <libfdt.h>
> #include <libfdt_env.h>
> int main(void) { fdt_find_max_phandle(NULL, NULL); return 0; }''',
>@@ -2136,8 +2138,12 @@ if fdt_opt in ['enabled', 'system'] or (fdt_opt == 'auto' and have_system)
> elif fdt_opt != 'system'
> fdt_opt = get_option('wrap_mode') == 'nodownload' ? 'disabled' : 'internal'
> fdt = not_found
>+ dtc = not_found
> else
>- error('system libfdt is too old (1.5.1 or newer required)')
>+ if dtc.found()
>+ error('system libfdt is too old (1.5.1 or newer required)')
>+ else
>+ error('device tree compiler not found')
> endif
> endif
> if fdt_opt == 'internal'
>@@ -2145,7 +2148,8 @@ if fdt_opt == 'internal'
> libfdt_proj = subproject('dtc', required: true,
> default_options: ['tools=false', 'yaml=disabled',
> 'python=disabled', 'default_library=static'])
>- fdt = libfdt_proj.get_variable('libfdt_dep')
>+ fdt = dependency('libfdt', required: true)
>+ dtc = find_program('dtc', required: true)
> endif
> rdma = not_found
>
Thanks Paolo, I'll send a v2.
Best regards,
Bernhard
^ permalink raw reply [flat|nested] 19+ messages in thread
end of thread, other threads:[~2025-06-12 21:28 UTC | newest]
Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-06-10 20:41 [PATCH 0/5] DTB build housekeeping Bernhard Beschow
2025-06-10 20:41 ` [PATCH 1/5] hw: Fix type constant for DTB files Bernhard Beschow
2025-06-11 10:31 ` Thomas Huth
2025-06-10 20:41 ` [PATCH 2/5] pc-bios/dtb/meson: Prefer target name to be outfile, not infile Bernhard Beschow
2025-06-11 10:38 ` Thomas Huth
2025-06-10 20:41 ` [PATCH 3/5] scripts/meson-buildoptions: Sort coroutine_backend choices lexicographically Bernhard Beschow
2025-06-11 0:37 ` BALATON Zoltan
2025-06-11 10:40 ` Thomas Huth
2025-06-11 12:59 ` Kohei Tokunaga
2025-06-10 20:41 ` [PATCH 4/5] configure: Add dtc option Bernhard Beschow
2025-06-11 0:37 ` BALATON Zoltan
2025-06-11 8:45 ` Daniel P. Berrangé
2025-06-11 11:45 ` BALATON Zoltan
2025-06-12 5:12 ` Paolo Bonzini
2025-06-12 5:46 ` Paolo Bonzini
2025-06-12 21:27 ` Bernhard Beschow
2025-06-12 12:39 ` BALATON Zoltan
2025-06-10 20:41 ` [PATCH 5/5] configure: Require dtc for boards with bundled device trees Bernhard Beschow
2025-06-12 6:09 ` [PATCH 0/5] DTB build housekeeping Paolo Bonzini
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).