On Wed, 23 Apr 2025, Daniel P. Berrangé wrote:
On Wed, Apr 23, 2025 at 01:23:28PM +0200, Philippe Mathieu-Daudé wrote:
Hi Mark,
On 23/4/25 12:18, Mark Cave-Ayland wrote:
On 23/04/2025 11:02, BALATON Zoltan wrote:
Simple series doing what the subject says.
v2:
- Added changes to qemu.nsi (Philippe)
- Changed order of enum to keep it sorted. This changes value of
existing define but the value is not relevant, always used by name.
BALATON Zoltan (2):
system/datadir: Add new type constant for DTB files
pc-bios: Move device tree files in their own subdir
MAINTAINERS | 2 +-
hw/microblaze/boot.c | 2 +-
hw/ppc/ppc440_bamboo.c | 2 +-
hw/ppc/sam460ex.c | 2 +-
hw/ppc/virtex_ml507.c | 2 +-
include/qemu/datadir.h | 11 +++++++---
pc-bios/{ => dtb}/bamboo.dtb | Bin
pc-bios/{ => dtb}/bamboo.dts | 0
pc-bios/{ => dtb}/canyonlands.dtb | Bin
pc-bios/{ => dtb}/canyonlands.dts | 0
pc-bios/dtb/meson.build | 23 +++++++++++++++++++++
pc-bios/{ => dtb}/petalogix-ml605.dtb | Bin
pc-bios/{ => dtb}/petalogix-ml605.dts | 0
pc-bios/{ => dtb}/petalogix-s3adsp1800.dtb | Bin
pc-bios/{ => dtb}/petalogix-s3adsp1800.dts | 0
pc-bios/meson.build | 23 +--------------------
qemu.nsi | 2 +-
system/datadir.c | 5 ++++-
18 files changed, 42 insertions(+), 32 deletions(-)
rename pc-bios/{ => dtb}/bamboo.dtb (100%)
rename pc-bios/{ => dtb}/bamboo.dts (100%)
rename pc-bios/{ => dtb}/canyonlands.dtb (100%)
rename pc-bios/{ => dtb}/canyonlands.dts (100%)
create mode 100644 pc-bios/dtb/meson.build
rename pc-bios/{ => dtb}/petalogix-ml605.dtb (100%)
rename pc-bios/{ => dtb}/petalogix-ml605.dts (100%)
rename pc-bios/{ => dtb}/petalogix-s3adsp1800.dtb (100%)
rename pc-bios/{ => dtb}/petalogix-s3adsp1800.dts (100%)
In previous discussions we've had around what to do with pc-bios, wasn't
the consensus that we should aim towards dividing up the directory on a
per-target basis? I'm wondering if this is going in right direction, as
I can certainly see that a per-target split would be more useful to
packagers.
One problem is that pc-bios doesn't only contain machine firmware but also
card ROMs which would belong to more targets (or archs) as e.g. PCI cards
work on multiple archs. So it's not trivial to split by target, you'd
still have a lot of files not easily assigned to any target.
This series is in preparation for another that will add a dtb for pegasos2
and I did not want to increase the mess and took the opportunity to try to
tidy it a bit. I don't intend to do any major refactoring of the pc-bios
dir, that's out of scope of these patches.
pc-bios/ is already a mess, packagers usually take it as a whole. This
series isn't making the current situation worse.
I don't recall a per-target split discussion, but one moving firmware
blobs out of tree in a more adapted storage like git-lfs.
Talking about the pc-bios dir in general is a bit of a can of worms
and we never make concrete progress historically :-(
Probably best to split up the problem to some extent.
The device tree files are conceptually quite different from the
3rd party pre-built firmware images, which are diffferent from
the keymaps.
IIUC, device tree files are tied to specific machine types, so
I wonder if they should not simply live alongside their machine
type .c impl file, completely outside of pc-bios ?
eg
petalogix-ml605.{dts,dtb} live alongside hw/microblaze/petalogix_ml605_mmu.c
babmboo.{dts,dtb} live alongside ./hw/ppc/ppc440_bamboo.c
You need the dtbs at run time and the dir where we can look files up is
the pc-bios. So these need to be installed there at the end. We could
scatter them around in the source to put them next their machines but that
would make installation of them more difficult than having it in one dir.
For the keymaps it feels like an probable easy win to move them to a
ui/keymaps/ directory instead.
Currently you can run a git build directly from build dir and it will find
the roms/dtbs/keymaps. You can also run a binary copied elsewhere if you
pass -L path/to/pc-bios. Moving things out of it would break this and may
cause more problems than it would solve.
ie in general try to get 'pc-bios' to contain only 3rd party pre-built
binaries, as a first goal. A second goal might be merging pc-bios/
into roms/, and a final goal could be spinning off pre-built ROMs into
a separate release tarball, and/or separate git repos.
Maybe a less ambitious way could be just to tag files in pc-bios in some
way so it's known which machines or devices need them then you could make
a script or something to pick only the files that you need for the
installed machines or config. That seems less work then moving everything
off from pc-bios which I don't see how would work with the runtime search
path which would still expect all of these to be at one place. Maybe this
could be done in Kconfig?
But all that is beyond this series which just wanted to put the dtb files
separate from roms like was already done for keymaps just to make it
easier to edit them in the source at one place.
Regards,
BALATON Zoltan