On Thu, Jun 04, 2020 at 08:44:04PM +0200, Michal Privoznik wrote: > QEMU has -fw_cfg which allows users to tweak how firmware > configures itself and/or provide new configuration blobs. > Introduce new <sysinfo/> type "fwcfg" that will hold these > new blobs. > > It's possible to either specify new value as a string or > provide a filename which contents then serve as the value. > > Signed-off-by: Michal Privoznik <mprivozn@xxxxxxxxxx> > --- > docs/formatdomain.html.in | 32 +++ > docs/schemas/domaincommon.rng | 143 ++++++++------ > src/conf/domain_conf.c | 186 +++++++++++++----- > src/conf/domain_conf.h | 4 +- > src/qemu/qemu_command.c | 10 +- > src/util/virsysinfo.c | 54 ++++- > src/util/virsysinfo.h | 16 +- > tests/qemuxml2argvdata/smbios-type-fwcfg.xml | 63 ++++++ > .../qemuxml2xmloutdata/smbios-type-fwcfg.xml | 1 + > tests/qemuxml2xmltest.c | 1 + > 10 files changed, 396 insertions(+), 114 deletions(-) > create mode 100644 tests/qemuxml2argvdata/smbios-type-fwcfg.xml > create mode 120000 tests/qemuxml2xmloutdata/smbios-type-fwcfg.xml > diff --git a/tests/qemuxml2argvdata/smbios-type-fwcfg.xml b/tests/qemuxml2argvdata/smbios-type-fwcfg.xml > new file mode 100644 > index 0000000000..2644833b21 > --- /dev/null > +++ b/tests/qemuxml2argvdata/smbios-type-fwcfg.xml > @@ -0,0 +1,63 @@ > +<domain type='qemu'> > + <name>QEMUGuest1</name> > + <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid> > + <memory unit='KiB'>219100</memory> > + <currentMemory unit='KiB'>219100</currentMemory> > + <vcpu placement='static'>1</vcpu> > + <sysinfo type='smbios'> > + <bios> > + <entry name='vendor'>LENOVO</entry> > + <entry name='version'>6FET82WW (3.12 )</entry> > + </bios> > + <system> > + <entry name='manufacturer'>Fedora</entry> > + <entry name='product'>Virt-Manager</entry> > + <entry name='version'>0.8.2-3.fc14</entry> > + <entry name='serial'>32dfcb37-5af1-552b-357c-be8c3aa38310</entry> > + <entry name='uuid'>c7a5fdbd-edaf-9455-926a-d65c16db1809</entry> > + <entry name='sku'>1234567890</entry> > + <entry name='family'>Red Hat</entry> > + </system> > + <baseBoard> > + <entry name='manufacturer'>Lenovo</entry> > + <entry name='product'>20BE0061MC</entry> > + <entry name='version'>0B98401 Pro</entry> > + <entry name='serial'>W1KS427111E</entry> > + <entry name='location'>Not Available</entry> > + </baseBoard> > + </sysinfo> > + <sysinfo type='fwcfg'> > + <entry name='opt/com.example/name' value='example value'/> > + <entry name='opt/com.coreos/config' file='/tmp/provision.ign'/> > + </sysinfo> I find it undesirable to use the value be the element contents in the SMBIOS case, and an attribute in fwcfg case. IOW I think we should be doing <sysinfo type='fwcfg'> <entry name='opt/com.example/name'>example value</value> <entry name='opt/com.coreos/config' file='/tmp/provision.ign'/> </sysinfo> Which is how we would have to retrofit a "file" attribute into the existing SMBIOS xml too 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 :|