Message ID | 20190308131445.17502-13-armbru@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | pc: Support firmware configuration with -blockdev | expand |
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
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 ##
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(-)