[PATCH 0/5] bhyve: introduce NVRAM support

Roman Bogorodskiy posted 5 patches 7 months, 1 week ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/libvirt tags/patchew/20250509171151.31305-1-bogorodskiy@gmail.com
src/bhyve/bhyve_command.c                     |   8 +-
src/bhyve/bhyve_conf.c                        |   4 +
src/bhyve/bhyve_domain.c                      |  43 ++++++
src/bhyve/bhyve_driver.c                      |  32 ++++-
src/bhyve/bhyve_firmware.c                    | 119 ++++++++++++++--
src/bhyve/bhyve_process.c                     | 132 ++++++++++++++++++
src/bhyve/bhyve_process.h                     |   8 ++
src/bhyve/bhyve_utils.h                       |   2 +
src/bhyve/meson.build                         |   5 +
...gv-uefi-nvram-template-and-source-set.args |  12 ++
...-uefi-nvram-template-and-source-set.ldargs |   1 +
...rgv-uefi-nvram-template-and-source-set.xml |  24 ++++
...bhyvexml2argv-uefi-nvram-template-set.args |  12 ++
...yvexml2argv-uefi-nvram-template-set.ldargs |   1 +
.../bhyvexml2argv-uefi-nvram-template-set.xml |  24 ++++
.../bhyvexml2argv-uefi-nvram.args             |  12 ++
.../bhyvexml2argv-uefi-nvram.ldargs           |   1 +
.../bhyvexml2argv-uefi-nvram.xml              |  24 ++++
tests/bhyvexml2argvtest.c                     |   5 +
19 files changed, 452 insertions(+), 17 deletions(-)
create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-uefi-nvram-template-and-source-set.args
create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-uefi-nvram-template-and-source-set.ldargs
create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-uefi-nvram-template-and-source-set.xml
create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-uefi-nvram-template-set.args
create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-uefi-nvram-template-set.ldargs
create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-uefi-nvram-template-set.xml
create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-uefi-nvram.args
create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-uefi-nvram.ldargs
create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-uefi-nvram.xml
[PATCH 0/5] bhyve: introduce NVRAM support
Posted by Roman Bogorodskiy 7 months, 1 week ago
Roman Bogorodskiy (5):
  bhyve: conf: introduce nvramDir
  bhyve: generate NVRAM bhyve arguments
  bhyve: firmware: try to guess NVRAM settings
  bhyve: introduce bhyveDomainDefValidate()
  bhyve: support removing NVRAM on domain undefine

 src/bhyve/bhyve_command.c                     |   8 +-
 src/bhyve/bhyve_conf.c                        |   4 +
 src/bhyve/bhyve_domain.c                      |  43 ++++++
 src/bhyve/bhyve_driver.c                      |  32 ++++-
 src/bhyve/bhyve_firmware.c                    | 119 ++++++++++++++--
 src/bhyve/bhyve_process.c                     | 132 ++++++++++++++++++
 src/bhyve/bhyve_process.h                     |   8 ++
 src/bhyve/bhyve_utils.h                       |   2 +
 src/bhyve/meson.build                         |   5 +
 ...gv-uefi-nvram-template-and-source-set.args |  12 ++
 ...-uefi-nvram-template-and-source-set.ldargs |   1 +
 ...rgv-uefi-nvram-template-and-source-set.xml |  24 ++++
 ...bhyvexml2argv-uefi-nvram-template-set.args |  12 ++
 ...yvexml2argv-uefi-nvram-template-set.ldargs |   1 +
 .../bhyvexml2argv-uefi-nvram-template-set.xml |  24 ++++
 .../bhyvexml2argv-uefi-nvram.args             |  12 ++
 .../bhyvexml2argv-uefi-nvram.ldargs           |   1 +
 .../bhyvexml2argv-uefi-nvram.xml              |  24 ++++
 tests/bhyvexml2argvtest.c                     |   5 +
 19 files changed, 452 insertions(+), 17 deletions(-)
 create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-uefi-nvram-template-and-source-set.args
 create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-uefi-nvram-template-and-source-set.ldargs
 create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-uefi-nvram-template-and-source-set.xml
 create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-uefi-nvram-template-set.args
 create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-uefi-nvram-template-set.ldargs
 create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-uefi-nvram-template-set.xml
 create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-uefi-nvram.args
 create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-uefi-nvram.ldargs
 create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-uefi-nvram.xml

-- 
2.49.0
Re: [PATCH 0/5] bhyve: introduce NVRAM support
Posted by Michal Prívozník via Devel 7 months, 1 week ago
On 5/9/25 19:11, Roman Bogorodskiy wrote:
> Roman Bogorodskiy (5):
>   bhyve: conf: introduce nvramDir
>   bhyve: generate NVRAM bhyve arguments
>   bhyve: firmware: try to guess NVRAM settings
>   bhyve: introduce bhyveDomainDefValidate()
>   bhyve: support removing NVRAM on domain undefine
> 
>  src/bhyve/bhyve_command.c                     |   8 +-
>  src/bhyve/bhyve_conf.c                        |   4 +
>  src/bhyve/bhyve_domain.c                      |  43 ++++++
>  src/bhyve/bhyve_driver.c                      |  32 ++++-
>  src/bhyve/bhyve_firmware.c                    | 119 ++++++++++++++--
>  src/bhyve/bhyve_process.c                     | 132 ++++++++++++++++++
>  src/bhyve/bhyve_process.h                     |   8 ++
>  src/bhyve/bhyve_utils.h                       |   2 +
>  src/bhyve/meson.build                         |   5 +
>  ...gv-uefi-nvram-template-and-source-set.args |  12 ++
>  ...-uefi-nvram-template-and-source-set.ldargs |   1 +
>  ...rgv-uefi-nvram-template-and-source-set.xml |  24 ++++
>  ...bhyvexml2argv-uefi-nvram-template-set.args |  12 ++
>  ...yvexml2argv-uefi-nvram-template-set.ldargs |   1 +
>  .../bhyvexml2argv-uefi-nvram-template-set.xml |  24 ++++
>  .../bhyvexml2argv-uefi-nvram.args             |  12 ++
>  .../bhyvexml2argv-uefi-nvram.ldargs           |   1 +
>  .../bhyvexml2argv-uefi-nvram.xml              |  24 ++++
>  tests/bhyvexml2argvtest.c                     |   5 +
>  19 files changed, 452 insertions(+), 17 deletions(-)
>  create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-uefi-nvram-template-and-source-set.args
>  create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-uefi-nvram-template-and-source-set.ldargs
>  create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-uefi-nvram-template-and-source-set.xml
>  create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-uefi-nvram-template-set.args
>  create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-uefi-nvram-template-set.ldargs
>  create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-uefi-nvram-template-set.xml
>  create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-uefi-nvram.args
>  create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-uefi-nvram.ldargs
>  create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-uefi-nvram.xml
> 

Reviewed-by: Michal Privoznik <mprivozn@redhat.com>

Michal
Re: [PATCH 0/5] bhyve: introduce NVRAM support
Posted by Roman Bogorodskiy 7 months ago
  Michal Prívozník wrote:

> On 5/9/25 19:11, Roman Bogorodskiy wrote:
> > Roman Bogorodskiy (5):
> >   bhyve: conf: introduce nvramDir
> >   bhyve: generate NVRAM bhyve arguments
> >   bhyve: firmware: try to guess NVRAM settings
> >   bhyve: introduce bhyveDomainDefValidate()
> >   bhyve: support removing NVRAM on domain undefine
> > 
> >  src/bhyve/bhyve_command.c                     |   8 +-
> >  src/bhyve/bhyve_conf.c                        |   4 +
> >  src/bhyve/bhyve_domain.c                      |  43 ++++++
> >  src/bhyve/bhyve_driver.c                      |  32 ++++-
> >  src/bhyve/bhyve_firmware.c                    | 119 ++++++++++++++--
> >  src/bhyve/bhyve_process.c                     | 132 ++++++++++++++++++
> >  src/bhyve/bhyve_process.h                     |   8 ++
> >  src/bhyve/bhyve_utils.h                       |   2 +
> >  src/bhyve/meson.build                         |   5 +
> >  ...gv-uefi-nvram-template-and-source-set.args |  12 ++
> >  ...-uefi-nvram-template-and-source-set.ldargs |   1 +
> >  ...rgv-uefi-nvram-template-and-source-set.xml |  24 ++++
> >  ...bhyvexml2argv-uefi-nvram-template-set.args |  12 ++
> >  ...yvexml2argv-uefi-nvram-template-set.ldargs |   1 +
> >  .../bhyvexml2argv-uefi-nvram-template-set.xml |  24 ++++
> >  .../bhyvexml2argv-uefi-nvram.args             |  12 ++
> >  .../bhyvexml2argv-uefi-nvram.ldargs           |   1 +
> >  .../bhyvexml2argv-uefi-nvram.xml              |  24 ++++
> >  tests/bhyvexml2argvtest.c                     |   5 +
> >  19 files changed, 452 insertions(+), 17 deletions(-)
> >  create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-uefi-nvram-template-and-source-set.args
> >  create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-uefi-nvram-template-and-source-set.ldargs
> >  create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-uefi-nvram-template-and-source-set.xml
> >  create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-uefi-nvram-template-set.args
> >  create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-uefi-nvram-template-set.ldargs
> >  create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-uefi-nvram-template-set.xml
> >  create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-uefi-nvram.args
> >  create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-uefi-nvram.ldargs
> >  create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-uefi-nvram.xml
> > 
> 
> Reviewed-by: Michal Privoznik <mprivozn@redhat.com>

Thanks, I've pushed the changes. I've changed one line before pushing
though, due to a bug I noticed in my final round of pre-push testing.

The changed line is:

+++ b/src/bhyve/bhyve_firmware.c
@@ -174,7 +174,7 @@ bhyveFirmwareFillDomain(bhyveConn *driver,
     if (!loader->nvramTemplate
         && matching_firmware && matching_nvram_template) {
         loader->nvramTemplate = g_build_filename(firmware_dir,
-                                                 matching_firmware,
+                                                 matching_nvram_template,
                                                  NULL);
     }

For the cases when the template is not specified, so we assign the
proper template path instead of a firmware path.

> Michal
>