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 - 2026 Red Hat, Inc.