Re: [PATCH v1 00/15] Add support for Nitro Enclaves

From: Alexander Graf
Date: Thu Apr 23 2020 - 16:56:20 EST




On 23.04.20 19:51, Paolo Bonzini wrote:

On 23/04/20 19:42, Paraschiv, Andra-Irina wrote:

- the initial CPU state: CPL0 vs. CPL3, initial program counter, etc.

The enclave VM has its own kernel and follows the well-known Linux boot
protocol, in the end getting to the user application after init finishes
its work, so that's CPL3.

CPL3 is how the user application run, but does the enclave's Linux boot
process start in real mode at the reset vector (0xfffffff0), in 16-bit
protected mode at the Linux bzImage entry point, or at the ELF entry point?

There is no "entry point" per se. You prepopulate at target bzImage into the enclave memory on boot which then follows the standard boot protocol. Everything before that (enclave firmware, etc.) is provided by the enclave environment.

Think of it like a mechanism to launch a second QEMU instance on the host, but all you can actually control are the -smp, -m, -kernel and -initrd parameters. The only I/O channel you have between your VM and that new VM is a vsock channel which is configured by the host on your behalf.


Alex



Amazon Development Center Germany GmbH
Krausenstr. 38
10117 Berlin
Geschaeftsfuehrung: Christian Schlaeger, Jonathan Weiss
Eingetragen am Amtsgericht Charlottenburg unter HRB 149173 B
Sitz: Berlin
Ust-ID: DE 289 237 879