|
From: | BALATON Zoltan |
Subject: | Re: [PATCH v2] pc-bios/meson.build: Silent unuseful DTC warnings |
Date: | Fri, 6 Oct 2023 13:37:54 +0200 (CEST) |
On Fri, 6 Oct 2023, Philippe Mathieu-Daudé wrote:
On 6/10/23 10:32, Cédric Le Goater wrote:On 10/6/23 10:18, Philippe Mathieu-Daudé wrote:On 6/10/23 10:13, Cédric Le Goater wrote:On 10/6/23 08:47, Philippe Mathieu-Daudé wrote:QEMU consumes some device tree blobs, so these have been committed to the tree in as firmware, along with the device tree source used to generate them. We know the blobs are "good enough" to have QEMU boot a system, so we don't really maintain and rebuild the sources. These blobs were generated with older 'dtc' binaries. We use the v1.6.1 version since 2021 (commit 962fde57b7 "dtc: Update to version 1.6.1"). Since commit 6e0dc9d2a8 ("meson: compile bundled device trees"), if dtc binary is available, it is directly used to compile the device tree sources. New versions of 'dtc' add checks which display warnings or errors. Our sources are a bit old, so dtc v1.6.1 now emit the following warnings on a fresh build: [163/3414] Generating pc-bios/canyonlands.dts with a custom commandpc-bios/canyonlands.dts:47.9-50.4: Warning (unit_address_vs_reg): /memory: node has a reg or ranges property, but no unit name...From QEMU perspective, these warnings are not really useful. It is the responsibility of developers adding DT source/blob to QEMU repository to check the source doesn't produce warnings, but as long as the blob is useful enough, QEMU can consume it. So these warnings don't add any value, instead they are noisy and might distract us to focus on important warnings. Better disable them. 'dtc' provides the '--quiet' option for that: $ dtc --help Usage: dtc [options] <input file> Options: -[qI:O:o:V:d:R:S:p:a:fb:i:H:sW:E:@AThv] -q, --quiet Quiet: -q suppress warnings, -qq errors, -qqq all Update meson to disable these unuseful DTC warnings.Why not try fixing the .dts instead ? These still exist under Linux : ./arch/powerpc/boot/dts/canyonlands.dts ./arch/powerpc/boot/dts/bamboo.dtsBecause QEMU != Linux, and there isn't always overlap between communities?sure but bamboo.dts came from Linux. So this should be safe to update. Alex Graf did 10 years ago. I can not tell for the sam460ex. It is probably safer to keep it as it is.
I also opted for leaving it alone and not updating it because the current one is known to work and apart from these warnings there's no reason to change it. Updating and changing the dtb potentially can break booting something with -kernel so ignoring the warning is the safer option that would cause less work in the future.
Sweeping dtc warnings under the rug for all .dts doesn't seem a good idea. Should we get rid of the .dts and only keep the .dtb then ?I *think* QEMU should generate DT blob with the qemu_fdt API (see "sysemu/device_tree.h") with all the devices emulated, not forward a Linux one.
The pegasos2 machine does that for VOF but it's not nice to do it that way. If I did if for another machine I'd probably put the skeleton, static parts in a dtb and only edit the dynamic part (such as mem size, CPU infos and PCI devices) with qemu_fdt after loading it which seems to be easier (and what's the sam460ex is doing) than doing everything from C. The pegasos2 does not have much static info so it does not worth changing it now but half of pegasos2.c is the dtb creation so putting that somewhere else may have made it more readable but I've modeled it after spapr so did not consider using a dtb back then. If I ever try to add dtb creation to mac machines I'd try doing that with a dtb and adding to that instead.
Regards, BALATON Zoltan
[Prev in Thread] | Current Thread | [Next in Thread] |