On Thu, May 30, 2024 at 1:17 PM Pankaj Gupta <pankaj.gupta@xxxxxxx> wrote: > diff --git a/hw/i386/pc_sysfw.c b/hw/i386/pc_sysfw.c > index def77a4429fb24e62748 > +static void pc_system_flash_map(PCMachineState *pcms, > + MemoryRegion *rom_memory) > +{ > + pc_system_flash_map_partial(pcms, rom_memory, 0, false); > +} > + > void pc_system_firmware_init(PCMachineState *pcms, > MemoryRegion *rom_memory) > { > @@ -238,9 +248,12 @@ void pc_system_firmware_init(PCMachineState *pcms, > } > } > > - if (!pflash_blk[0]) { > + if (!pflash_blk[0] || sev_snp_enabled()) { > /* Machine property pflash0 not set, use ROM mode */ > x86_bios_rom_init(X86_MACHINE(pcms), "bios.bin", rom_memory, false); > + if (sev_snp_enabled()) { > + pc_system_flash_map_partial(pcms, rom_memory, 3653632, true); > + } This number is a bit too specific. :) The main issue here is that we want to have both a ROM and a non-executable pflash device. I think in this case (which should be gated by machine_require_guest_memfd(MACHINE(pcms)), just like in earlier patches), we need to: 1) give an error if pflash_blk[1] is specified, i.e. support only one flash device 2) possibly, give a warning if -bios is _not_ specified. 3) map pflash_blk[0] below the BIOS ROM and expect it to be just the variables The need to use -bios for code and pflash0 (if desired) for variables also needs to be documented of course. Some parts of this patch can be salvaged, others are not needed anymore... I'll let you figure it out. :) Paolo