On Tue, Feb 27, 2024 at 02:50:12PM +0000, Roy Hopkins wrote: > When using an IGVM file the configuration of the system firmware is > defined by IGVM directives contained in the file. Therefore the default > system firmware should not be initialized when an IGVM file has been > provided. > > This commit checks to see if an IGVM file has been provided and, if it > has then the standard system firmware initialization is skipped and any > prepared flash devices are cleaned up. > > Signed-off-by: Roy Hopkins <roy.hopk...@suse.com> > --- > hw/i386/pc.c | 12 ++++++++++-- > 1 file changed, 10 insertions(+), 2 deletions(-) > > diff --git a/hw/i386/pc.c b/hw/i386/pc.c > index f8eb684a49..17bb211708 100644 > --- a/hw/i386/pc.c > +++ b/hw/i386/pc.c > @@ -63,6 +63,7 @@ > #include "e820_memory_layout.h" > #include "trace.h" > #include CONFIG_DEVICES > +#include "exec/confidential-guest-support.h" > > #ifdef CONFIG_XEN_EMU > #include "hw/xen/xen-legacy-backend.h" > @@ -1023,8 +1024,15 @@ void pc_memory_init(PCMachineState *pcms, > } > } > > - /* Initialize PC system firmware */ > - pc_system_firmware_init(pcms, rom_memory); > + /* > + * If this is a confidential guest configured using IGVM then the IGVM > + * configuration will include the system firmware. In this case do not > + * initialise PC system firmware. > + */ > + if (!cgs_is_igvm(machine->cgs)) { > + /* Initialize PC system firmware */ > + pc_system_firmware_init(pcms, rom_memory); > + }
If the user has given explicit pflash config I think we should be reporting an error for the invalid configuration, rather than silently ignoring their mistake. > > option_rom_mr = g_malloc(sizeof(*option_rom_mr)); > memory_region_init_ram(option_rom_mr, NULL, "pc.rom", PC_ROM_SIZE, > -- > 2.43.0 > > With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|