Am 27. Januar 2026 05:15:40 UTC schrieb Ani Sinha <[email protected]>:
>Confidential guest smust reload their bios rom upon reset. This is because
>bios memory is encrypted and upon reset, the contents of the old bios memory
>is lost and cannot be re-used. To this end, export a new x86 function
>x86_bios_rom_reload() to reload the bios again. This function will be used in
>the subsequent patches.
>
>Signed-off-by: Ani Sinha <[email protected]>
>---
> hw/i386/x86-common.c  | 21 +++++++++++++++++++++
> include/hw/i386/x86.h |  1 +
> 2 files changed, 22 insertions(+)
>
>diff --git a/hw/i386/x86-common.c b/hw/i386/x86-common.c
>index 4469b4e152..c0a540495e 100644
>--- a/hw/i386/x86-common.c
>+++ b/hw/i386/x86-common.c
>@@ -1089,6 +1089,27 @@ static void load_bios_from_file(X86MachineState *x86ms, 
>const char *bios_name,
>     exit(1);
> }
> 
>+void x86_bios_rom_reload(X86MachineState *x86ms)
>+{
>+    int bios_size;
>+    const char *bios_name;
>+    char *filename;
>+
>+    if (!x86ms->bios.addr) {

Could we use memory_region_size() here instead to rely only on public API? 
AFAIU .addr is a private field.

>+        /* if -bios is not used */
>+        return;
>+    }
>+
>+    bios_name = MACHINE(x86ms)->firmware ?: "bios.bin";
>+    filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, bios_name);
>+
>+    bios_size = get_bios_size(x86ms, bios_name, filename);
>+
>+    void *ptr = memory_region_get_ram_ptr(&x86ms->bios);
>+    load_image_size(filename, ptr, bios_size);
>+    x86_firmware_configure(0x100000000ULL - bios_size, ptr, bios_size);
>+}
>+
> void x86_bios_rom_init(X86MachineState *x86ms, const char *default_firmware,
>                        MemoryRegion *rom_memory, bool isapc_ram_fw)
> {
>diff --git a/include/hw/i386/x86.h b/include/hw/i386/x86.h
>index bfdf97640d..5bb052cd67 100644
>--- a/include/hw/i386/x86.h
>+++ b/include/hw/i386/x86.h
>@@ -122,6 +122,7 @@ void x86_cpu_unplug_request_cb(HotplugHandler *hotplug_dev,
>                                DeviceState *dev, Error **errp);
> void x86_cpu_unplug_cb(HotplugHandler *hotplug_dev,
>                        DeviceState *dev, Error **errp);
>+void x86_bios_rom_reload(X86MachineState *x86ms);

Yes, this looks much cleaner!

To preserve the logic grouping I'd keep the blank line here from my comment in 
the previous patch. Additionally, I'd move the declaration after 
x86_bios_rom_init() to also communicate the order in which the functions are 
intended to be used.

With the above considered and the declaration moved the code seems 
comprehensible to me, so:

Reviewed-by: Bernhard Beschow <[email protected]>

> void x86_isa_bios_init(MemoryRegion *isa_bios, MemoryRegion *isa_memory,
>                        MemoryRegion *bios, bool read_only);
> void x86_bios_rom_init(X86MachineState *x86ms, const char *default_firmware,

Reply via email to