The previous commit added a way to configure firmware with -blockdev
rather than -drive if=pflash. Document it as the preferred way.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
docs/interop/firmware.json | 20 ++++++++++++++------
1 file changed, 14 insertions(+), 6 deletions(-)
diff --git a/docs/interop/firmware.json b/docs/interop/firmware.json
index 28f9bc1591..ff8c2ce5f2 100644
--- a/docs/interop/firmware.json
+++ b/docs/interop/firmware.json
@@ -212,9 +212,13 @@
#
# @executable: Identifies the firmware executable. The firmware
# executable may be shared by multiple virtual machine
-# definitions. The corresponding QEMU command line option
-# is "-drive
-# if=pflash,unit=0,readonly=on,file=@executable.@filename,format=@executable.@format".
+# definitions. The preferred corresponding QEMU command
+# line options are
+# -drive if=none,id=pflash0,readonly=on,file=@executable.@filename,format=@executable.@format
+# -machine pflash0=pflash0
+# or equivalent -blockdev instead of -drive.
+# With QEMU versions older than 4.0, you have to use
+# -drive if=pflash,unit=0,readonly=on,file=@executable.@filename,format=@executable.@format
#
# @nvram-template: Identifies the NVRAM template compatible with
# @executable. Management software instantiates an
@@ -225,9 +229,13 @@
# individual copies of it are. An NVRAM file is
# typically used for persistently storing the
# non-volatile UEFI variables of a virtual machine
-# definition. The corresponding QEMU command line
-# option is "-drive
-# if=pflash,unit=1,readonly=off,file=FILENAME_OF_PRIVATE_NVRAM_FILE,format=@nvram-template.@format".
+# definition. The preferred corresponding QEMU
+# command line options are
+# -drive if=none,id=pflash1,readonly=off,file=FILENAME_OF_PRIVATE_NVRAM_FILE,format=@nvram-template.@format
+# -machine pflash1=pflash1
+# or equivalent -blockdev instead of -drive.
+# With QEMU versions older than 4.0, you have to use
+# -drive if=pflash,unit=1,readonly=off,file=FILENAME_OF_PRIVATE_NVRAM_FILE,format=@nvram-template.@format
#
# Since: 3.0
##
--
2.17.2
On 03/08/19 14:14, Markus Armbruster wrote: > The previous commit added a way to configure firmware with -blockdev > rather than -drive if=pflash. Document it as the preferred way. > > Signed-off-by: Markus Armbruster <armbru@redhat.com> > --- > docs/interop/firmware.json | 20 ++++++++++++++------ > 1 file changed, 14 insertions(+), 6 deletions(-) > > diff --git a/docs/interop/firmware.json b/docs/interop/firmware.json > index 28f9bc1591..ff8c2ce5f2 100644 > --- a/docs/interop/firmware.json > +++ b/docs/interop/firmware.json > @@ -212,9 +212,13 @@ > # > # @executable: Identifies the firmware executable. The firmware > # executable may be shared by multiple virtual machine > -# definitions. The corresponding QEMU command line option > -# is "-drive > -# if=pflash,unit=0,readonly=on,file=@executable.@filename,format=@executable.@format". > +# definitions. The preferred corresponding QEMU command > +# line options are > +# -drive if=none,id=pflash0,readonly=on,file=@executable.@filename,format=@executable.@format > +# -machine pflash0=pflash0 > +# or equivalent -blockdev instead of -drive. > +# With QEMU versions older than 4.0, you have to use > +# -drive if=pflash,unit=0,readonly=on,file=@executable.@filename,format=@executable.@format > # > # @nvram-template: Identifies the NVRAM template compatible with > # @executable. Management software instantiates an > @@ -225,9 +229,13 @@ > # individual copies of it are. An NVRAM file is > # typically used for persistently storing the > # non-volatile UEFI variables of a virtual machine > -# definition. The corresponding QEMU command line > -# option is "-drive > -# if=pflash,unit=1,readonly=off,file=FILENAME_OF_PRIVATE_NVRAM_FILE,format=@nvram-template.@format". > +# definition. The preferred corresponding QEMU > +# command line options are > +# -drive if=none,id=pflash1,readonly=off,file=FILENAME_OF_PRIVATE_NVRAM_FILE,format=@nvram-template.@format > +# -machine pflash1=pflash1 > +# or equivalent -blockdev instead of -drive. > +# With QEMU versions older than 4.0, you have to use > +# -drive if=pflash,unit=1,readonly=off,file=FILENAME_OF_PRIVATE_NVRAM_FILE,format=@nvram-template.@format > # > # Since: 3.0 > ## > Awesome. Reviewed-by: Laszlo Ersek <lersek@redhat.com> Thanks! Laszlo
On 3/8/19 2:14 PM, Markus Armbruster wrote: > The previous commit added a way to configure firmware with -blockdev > rather than -drive if=pflash. Document it as the preferred way. > > Signed-off-by: Markus Armbruster <armbru@redhat.com> > --- > docs/interop/firmware.json | 20 ++++++++++++++------ > 1 file changed, 14 insertions(+), 6 deletions(-) > > diff --git a/docs/interop/firmware.json b/docs/interop/firmware.json > index 28f9bc1591..ff8c2ce5f2 100644 > --- a/docs/interop/firmware.json > +++ b/docs/interop/firmware.json > @@ -212,9 +212,13 @@ > # > # @executable: Identifies the firmware executable. The firmware > # executable may be shared by multiple virtual machine > -# definitions. The corresponding QEMU command line option > -# is "-drive > -# if=pflash,unit=0,readonly=on,file=@executable.@filename,format=@executable.@format". > +# definitions. The preferred corresponding QEMU command > +# line options are > +# -drive if=none,id=pflash0,readonly=on,file=@executable.@filename,format=@executable.@format > +# -machine pflash0=pflash0 I have a question. How is libvirt supposed to query for this? How can it learn it can use this new, preferred command line? Thanks, Michal
Michal Privoznik <mprivozn@redhat.com> writes: > On 3/8/19 2:14 PM, Markus Armbruster wrote: >> The previous commit added a way to configure firmware with -blockdev >> rather than -drive if=pflash. Document it as the preferred way. >> >> Signed-off-by: Markus Armbruster <armbru@redhat.com> >> --- >> docs/interop/firmware.json | 20 ++++++++++++++------ >> 1 file changed, 14 insertions(+), 6 deletions(-) >> >> diff --git a/docs/interop/firmware.json b/docs/interop/firmware.json >> index 28f9bc1591..ff8c2ce5f2 100644 >> --- a/docs/interop/firmware.json >> +++ b/docs/interop/firmware.json >> @@ -212,9 +212,13 @@ >> # >> # @executable: Identifies the firmware executable. The firmware >> # executable may be shared by multiple virtual machine >> -# definitions. The corresponding QEMU command line option >> -# is "-drive >> -# if=pflash,unit=0,readonly=on,file=@executable.@filename,format=@executable.@format". >> +# definitions. The preferred corresponding QEMU command >> +# line options are >> +# -drive if=none,id=pflash0,readonly=on,file=@executable.@filename,format=@executable.@format >> +# -machine pflash0=pflash0 > > I have a question. How is libvirt supposed to query for this? How can > it learn it can use this new, preferred command line? You can use qom-list-properties to find out whether the machine has property pflash0. ---> {"execute": "qom-list-properties", "arguments": {"typename": "pc-q35-4.0-machine"}} <--- {"return": [... {"name": "pflash0", ...} ...]} ---> {"execute": "qom-list-properties", "arguments": {"typename": "isapc-machine"}} <--- {"return": [... no such property ...]}
On 3/14/19 8:01 PM, Markus Armbruster wrote: > Michal Privoznik <mprivozn@redhat.com> writes: > >> On 3/8/19 2:14 PM, Markus Armbruster wrote: >>> The previous commit added a way to configure firmware with -blockdev >>> rather than -drive if=pflash. Document it as the preferred way. >>> >>> Signed-off-by: Markus Armbruster <armbru@redhat.com> >>> --- >>> docs/interop/firmware.json | 20 ++++++++++++++------ >>> 1 file changed, 14 insertions(+), 6 deletions(-) >>> >>> diff --git a/docs/interop/firmware.json b/docs/interop/firmware.json >>> index 28f9bc1591..ff8c2ce5f2 100644 >>> --- a/docs/interop/firmware.json >>> +++ b/docs/interop/firmware.json >>> @@ -212,9 +212,13 @@ >>> # >>> # @executable: Identifies the firmware executable. The firmware >>> # executable may be shared by multiple virtual machine >>> -# definitions. The corresponding QEMU command line option >>> -# is "-drive >>> -# if=pflash,unit=0,readonly=on,file=@executable.@filename,format=@executable.@format". >>> +# definitions. The preferred corresponding QEMU command >>> +# line options are >>> +# -drive if=none,id=pflash0,readonly=on,file=@executable.@filename,format=@executable.@format >>> +# -machine pflash0=pflash0 >> >> I have a question. How is libvirt supposed to query for this? How can >> it learn it can use this new, preferred command line? > > You can use qom-list-properties to find out whether the machine has > property pflash0. > > ---> {"execute": "qom-list-properties", "arguments": {"typename": "pc-q35-4.0-machine"}} > <--- {"return": [... {"name": "pflash0", ...} ...]} > ---> {"execute": "qom-list-properties", "arguments": {"typename": "isapc-machine"}} > <--- {"return": [... no such property ...]} > Ah, very well, thank you. Michal
© 2016 - 2025 Red Hat, Inc.