qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Brijesh Singh <brijesh.singh@amd.com>
To: qemu-devel@nongnu.org
Cc: Alistair Francis <alistair.francis@xilinx.com>,
	Christian Borntraeger <borntraeger@de.ibm.com>,
	Cornelia Huck <cornelia.huck@de.ibm.com>,
	"Daniel P . Berrange" <berrange@redhat.com>,
	"Dr. David Alan Gilbert" <dgilbert@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	"Edgar E. Iglesias" <edgar.iglesias@xilinx.com>,
	Eduardo Habkost <ehabkost@redhat.com>,
	Eric Blake <eblake@redhat.com>,
	kvm@vger.kernel.org, Marcel Apfelbaum <marcel@redhat.com>,
	Markus Armbruster <armbru@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Peter Crosthwaite <crosthwaite.peter@gmail.com>,
	Peter Maydell <peter.maydell@linaro.org>,
	Richard Henderson <richard.henderson@linaro.org>,
	Stefan Hajnoczi <stefanha@gmail.com>,
	Thomas Lendacky <Thomas.Lendacky@amd.com>,
	Borislav Petkov <bp@suse.de>,
	Brijesh Singh <brijesh.singh@amd.com>,
	Richard Henderson <rth@twiddle.net>
Subject: [Qemu-devel] [PATCH v7 20/26] hw: i386: set ram_debug_ops when memory encryption is enabled
Date: Wed,  7 Feb 2018 10:06:32 -0600	[thread overview]
Message-ID: <20180207160638.98872-20-brijesh.singh@amd.com> (raw)
In-Reply-To: <20180207160638.98872-1-brijesh.singh@amd.com>

When memory encryption is enabled, the guest RAM and boot flash ROM will
contain the encrypted data. By setting the debug ops allow us to invoke
encryption APIs when accessing the memory for the debug purposes.

Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Richard Henderson <rth@twiddle.net>
Cc: Eduardo Habkost <ehabkost@redhat.com>
Cc: "Michael S. Tsirkin" <mst@redhat.com>
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
---
 hw/i386/pc.c       | 9 +++++++++
 hw/i386/pc_sysfw.c | 6 ++++++
 2 files changed, 15 insertions(+)

diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index ccc50baa85e0..ba451c0dc520 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -1357,6 +1357,15 @@ void pc_memory_init(PCMachineState *pcms,
         e820_add_entry(0x100000000ULL, pcms->above_4g_mem_size, E820_RAM);
     }
 
+    /*
+     * When memory encryption is enabled, the guest RAM will be encrypted with
+     * a guest unique key. Set the debug ops so that any debug access to the
+     * guest RAM will go through the memory encryption APIs.
+     */
+    if (kvm_memcrypt_enabled()) {
+        kvm_memcrypt_set_debug_ops(ram);
+    }
+
     if (!pcmc->has_reserved_memory &&
         (machine->ram_slots ||
          (machine->maxram_size > machine->ram_size))) {
diff --git a/hw/i386/pc_sysfw.c b/hw/i386/pc_sysfw.c
index 8ddbbf74d330..3d149b1c9f3c 100644
--- a/hw/i386/pc_sysfw.c
+++ b/hw/i386/pc_sysfw.c
@@ -180,6 +180,12 @@ static void pc_system_flash_init(MemoryRegion *rom_memory)
                     error_report("failed to encrypt pflash rom");
                     exit(1);
                 }
+
+                /*
+                 * The pflash ROM is encrypted, set the debug ops so that any
+                 * debug accesses will use memory encryption APIs.
+                 */
+                kvm_memcrypt_set_debug_ops(flash_mem);
             }
         }
     }
-- 
2.14.3

  parent reply	other threads:[~2018-02-07 16:07 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-07 16:06 [Qemu-devel] [PATCH v7 01/26] memattrs: add debug attribute Brijesh Singh
2018-02-07 16:06 ` [Qemu-devel] [PATCH v7 02/26] exec: add ram_debug_ops support Brijesh Singh
2018-02-07 16:19   ` Eric Blake
2018-02-07 16:33     ` Brijesh Singh
2018-02-07 16:46       ` Eric Blake
2018-02-07 16:51   ` Paolo Bonzini
2018-02-07 20:26     ` Brijesh Singh
2018-02-07 16:06 ` [Qemu-devel] [PATCH v7 03/26] exec: add debug version of physical memory read and write API Brijesh Singh
2018-02-07 16:06 ` [Qemu-devel] [PATCH v7 04/26] monitor/i386: use debug APIs when accessing guest memory Brijesh Singh
2018-02-07 16:53   ` Paolo Bonzini
2018-02-07 16:06 ` [Qemu-devel] [PATCH v7 05/26] target/i386: add memory encryption feature cpuid support Brijesh Singh
2018-02-07 16:54   ` Paolo Bonzini
2018-02-07 18:28     ` Brijesh Singh
2018-02-07 16:06 ` [Qemu-devel] [PATCH v7 06/26] machine: add -memory-encryption property Brijesh Singh
2018-02-07 16:06 ` [Qemu-devel] [PATCH v7 07/26] kvm: update kvm.h to include memory encryption ioctls Brijesh Singh
2018-02-07 16:06 ` [Qemu-devel] [PATCH v7 08/26] docs: add AMD Secure Encrypted Virtualization (SEV) Brijesh Singh
2018-02-07 16:06 ` [Qemu-devel] [PATCH v7 09/26] accel: add Secure Encrypted Virtulization (SEV) object Brijesh Singh
2018-02-07 16:06 ` [Qemu-devel] [PATCH v7 10/26] sev: add command to initialize the memory encryption context Brijesh Singh
2018-02-07 16:06 ` [Qemu-devel] [PATCH v7 11/26] sev: register the guest memory range which may contain encrypted data Brijesh Singh
2018-02-07 16:06 ` [Qemu-devel] [PATCH v7 12/26] kvm: introduce memory encryption APIs Brijesh Singh
2018-02-07 16:06 ` [Qemu-devel] [PATCH v7 13/26] qmp: add query-sev command Brijesh Singh
2018-02-07 16:22   ` Eric Blake
2018-02-07 16:36     ` Brijesh Singh
2018-02-07 16:06 ` [Qemu-devel] [PATCH v7 14/26] hmp: add 'info sev' command Brijesh Singh
2018-02-07 16:06 ` [Qemu-devel] [PATCH v7 15/26] sev: add command to create launch memory encryption context Brijesh Singh
2018-02-07 16:06 ` [Qemu-devel] [PATCH v7 16/26] sev: add command to encrypt guest memory region Brijesh Singh
2018-02-07 16:06 ` [Qemu-devel] [PATCH v7 17/26] target/i386: encrypt bios rom Brijesh Singh
2018-02-09 18:28   ` Dr. David Alan Gilbert
2018-02-09 20:49     ` Brijesh Singh
2018-02-07 16:06 ` [Qemu-devel] [PATCH v7 18/26] sev: add support to LAUNCH_MEASURE command Brijesh Singh
2018-02-07 16:06 ` [Qemu-devel] [PATCH v7 19/26] sev: Finalize the SEV guest launch flow Brijesh Singh
2018-02-07 16:06 ` Brijesh Singh [this message]
2018-02-07 16:06 ` [Qemu-devel] [PATCH v7 21/26] sev: add debug encrypt and decrypt commands Brijesh Singh
2018-02-07 16:06 ` [Qemu-devel] [PATCH v7 22/26] target/i386: clear C-bit when walking SEV guest page table Brijesh Singh
2018-02-07 16:06 ` [Qemu-devel] [PATCH v7 23/26] include: add psp-sev.h header file Brijesh Singh
2018-02-07 16:06 ` [Qemu-devel] [PATCH v7 25/26] sev: add support to KVM_SEV_GUEST_STATUS Brijesh Singh
2018-02-07 16:06 ` [Qemu-devel] [PATCH v7 26/26] qmp: add query-sev-launch-measure command Brijesh Singh
2018-02-07 16:29   ` Eric Blake
2018-02-07 18:12     ` Brijesh Singh

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180207160638.98872-20-brijesh.singh@amd.com \
    --to=brijesh.singh@amd.com \
    --cc=Thomas.Lendacky@amd.com \
    --cc=alistair.francis@xilinx.com \
    --cc=armbru@redhat.com \
    --cc=berrange@redhat.com \
    --cc=borntraeger@de.ibm.com \
    --cc=bp@suse.de \
    --cc=cornelia.huck@de.ibm.com \
    --cc=crosthwaite.peter@gmail.com \
    --cc=dgilbert@redhat.com \
    --cc=eblake@redhat.com \
    --cc=edgar.iglesias@xilinx.com \
    --cc=ehabkost@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=marcel@redhat.com \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=richard.henderson@linaro.org \
    --cc=rth@twiddle.net \
    --cc=stefanha@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).