]> Git Repo - qemu.git/commitdiff
target/i386: encrypt bios rom
authorBrijesh Singh <[email protected]>
Thu, 8 Mar 2018 12:48:50 +0000 (06:48 -0600)
committerPaolo Bonzini <[email protected]>
Tue, 13 Mar 2018 16:36:05 +0000 (17:36 +0100)
SEV requires that guest bios must be encrypted before booting the guest.

Cc: "Michael S. Tsirkin" <[email protected]>
Cc: Paolo Bonzini <[email protected]>
Cc: Richard Henderson <[email protected]>
Cc: Eduardo Habkost <[email protected]>
Signed-off-by: Brijesh Singh <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>
hw/i386/pc_sysfw.c

index 4325575e7d8240a71f5da43e971643bb4b785238..73ac783f2055fb55dd9e8b4275ef8757fcdb6fc4 100644 (file)
@@ -113,6 +113,8 @@ static void pc_system_flash_init(MemoryRegion *rom_memory)
     pflash_t *system_flash;
     MemoryRegion *flash_mem;
     char name[64];
+    void *flash_ptr;
+    int ret, flash_size;
 
     sector_bits = 12;
     sector_size = 1 << sector_bits;
@@ -169,6 +171,17 @@ static void pc_system_flash_init(MemoryRegion *rom_memory)
         if (unit == 0) {
             flash_mem = pflash_cfi01_get_memory(system_flash);
             pc_isa_bios_init(rom_memory, flash_mem, size);
+
+            /* Encrypt the pflash boot ROM */
+            if (kvm_memcrypt_enabled()) {
+                flash_ptr = memory_region_get_ram_ptr(flash_mem);
+                flash_size = memory_region_size(flash_mem);
+                ret = kvm_memcrypt_encrypt_data(flash_ptr, flash_size);
+                if (ret) {
+                    error_report("failed to encrypt pflash rom");
+                    exit(1);
+                }
+            }
         }
     }
 }
This page took 0.027214 seconds and 4 git commands to generate.