2018-02-22 23:01:24 +01:00
|
|
|
From e6990d56a3b6d4702cec1c3d35c037e906eb39c0 Mon Sep 17 00:00:00 2001
|
2018-02-08 20:55:31 +01:00
|
|
|
From: Brijesh Singh <brijesh.singh@amd.com>
|
2018-02-22 23:01:24 +01:00
|
|
|
Date: Thu, 15 Feb 2018 09:03:22 -0600
|
2018-02-08 20:55:31 +01:00
|
|
|
Subject: [PATCH] target/i386: encrypt bios rom
|
|
|
|
|
|
|
|
SEV requires that guest bios must be encrypted before booting the guest.
|
|
|
|
|
|
|
|
Cc: "Michael S. Tsirkin" <mst@redhat.com>
|
|
|
|
Cc: Paolo Bonzini <pbonzini@redhat.com>
|
|
|
|
Cc: Richard Henderson <rth@twiddle.net>
|
|
|
|
Cc: Eduardo Habkost <ehabkost@redhat.com>
|
|
|
|
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
|
|
|
|
[BR: FATE#322124]
|
|
|
|
Signed-off-by: Bruce Rogers <brogers@suse.com>
|
|
|
|
---
|
|
|
|
hw/i386/pc_sysfw.c | 13 +++++++++++++
|
|
|
|
1 file changed, 13 insertions(+)
|
|
|
|
|
|
|
|
diff --git a/hw/i386/pc_sysfw.c b/hw/i386/pc_sysfw.c
|
|
|
|
index 6b183747fc..8ddbbf74d3 100644
|
|
|
|
--- a/hw/i386/pc_sysfw.c
|
|
|
|
+++ b/hw/i386/pc_sysfw.c
|
|
|
|
@@ -112,6 +112,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;
|
|
|
|
@@ -168,6 +170,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);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|