Patchwork [4/4] hw/i386/pc: use PVH option rom

login
register
mail settings
Submitter Stefano Garzarella
Date Jan. 11, 2019, 1:18 p.m.
Message ID <20190111131836.107549-5-sgarzare@redhat.com>
Download mbox | patch
Permalink /patch/697673/
State New
Headers show

Comments

Stefano Garzarella - Jan. 11, 2019, 1:18 p.m.
Use pvh.bin option rom when we are booting an uncompressed
kernel using the x86/HVM direct boot ABI.

Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
Based-on: <1545422632-24444-5-git-send-email-liam.merwick@oracle.com>
---
 hw/i386/pc.c | 4 ++++
 1 file changed, 4 insertions(+)
Stefan Hajnoczi - Jan. 11, 2019, 4:34 p.m.
On Fri, Jan 11, 2019 at 02:18:36PM +0100, Stefano Garzarella wrote:
> Use pvh.bin option rom when we are booting an uncompressed
> kernel using the x86/HVM direct boot ABI.
> 
> Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
> Based-on: <1545422632-24444-5-git-send-email-liam.merwick@oracle.com>
> ---
>  hw/i386/pc.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/hw/i386/pc.c b/hw/i386/pc.c
> index 06bce6a101..deab8a2816 100644
> --- a/hw/i386/pc.c
> +++ b/hw/i386/pc.c
> @@ -1005,6 +1005,10 @@ static void load_linux(PCMachineState *pcms,
>              fw_cfg_add_bytes(fw_cfg, FW_CFG_SETUP_DATA,
>                               header, sizeof(header));
>  
> +            option_rom[nb_option_roms].bootindex = 0;
> +            option_rom[nb_option_roms].name = "pvh.bin";
> +            nb_option_roms++;
> +

xen_load_linux() has the following:

  assert(!strcmp(option_rom[i].name, "linuxboot.bin") ||
         !strcmp(option_rom[i].name, "linuxboot_dma.bin") ||
         !strcmp(option_rom[i].name, "multiboot.bin"));

I wonder if it needs to be updated for pvh.bin?
Stefano Garzarella - Jan. 14, 2019, 9:48 a.m.
On Fri, Jan 11, 2019 at 5:34 PM Stefan Hajnoczi <stefanha@gmail.com> wrote:
>
> On Fri, Jan 11, 2019 at 02:18:36PM +0100, Stefano Garzarella wrote:
> > Use pvh.bin option rom when we are booting an uncompressed
> > kernel using the x86/HVM direct boot ABI.
> >
> > Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
> > Based-on: <1545422632-24444-5-git-send-email-liam.merwick@oracle.com>
> > ---
> >  hw/i386/pc.c | 4 ++++
> >  1 file changed, 4 insertions(+)
> >
> > diff --git a/hw/i386/pc.c b/hw/i386/pc.c
> > index 06bce6a101..deab8a2816 100644
> > --- a/hw/i386/pc.c
> > +++ b/hw/i386/pc.c
> > @@ -1005,6 +1005,10 @@ static void load_linux(PCMachineState *pcms,
> >              fw_cfg_add_bytes(fw_cfg, FW_CFG_SETUP_DATA,
> >                               header, sizeof(header));
> >
> > +            option_rom[nb_option_roms].bootindex = 0;
> > +            option_rom[nb_option_roms].name = "pvh.bin";
> > +            nb_option_roms++;
> > +
>
> xen_load_linux() has the following:
>
>   assert(!strcmp(option_rom[i].name, "linuxboot.bin") ||
>          !strcmp(option_rom[i].name, "linuxboot_dma.bin") ||
>          !strcmp(option_rom[i].name, "multiboot.bin"));
>
> I wonder if it needs to be updated for pvh.bin?

Yeah! I think we need to add pvh.bin on the assert in xen_load_linux().

Thanks for catching this,
Stefano

Patch

diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index 06bce6a101..deab8a2816 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -1005,6 +1005,10 @@  static void load_linux(PCMachineState *pcms,
             fw_cfg_add_bytes(fw_cfg, FW_CFG_SETUP_DATA,
                              header, sizeof(header));
 
+            option_rom[nb_option_roms].bootindex = 0;
+            option_rom[nb_option_roms].name = "pvh.bin";
+            nb_option_roms++;
+
             return;
         }
         /* This looks like a multiboot kernel. If it is, let's stop