| From | Thomas Gleixner <> | Subject | Re: [PATCHv2 16/29] x86/boot: Add a trampoline for booting APs via firmware handoff | Date | Wed, 02 Feb 2022 00:06:40 +0100 |
| |
On Mon, Jan 24 2022 at 18:02, Kirill A. Shutemov wrote:
> From: Sean Christopherson <sean.j.christopherson@intel.com> > > Historically, x86 platforms have booted secondary processors (APs) > using INIT followed by the start up IPI (SIPI) messages. In regular > VMs, this boot sequence is supported by the VMM emulation. But such a > wakeup model is fatal for secure VMs like TDX in which VMM is an > untrusted entity. To address this issue, a new wakeup model was added > in ACPI v6.4, in which firmware (like TDX virtual BIOS) will help boot > the APs. More details about this wakeup model can be found in ACPI > specification v6.4, the section titled "Multiprocessor Wakeup Structure". > > Since the existing trampoline code requires processors to boot in real > mode with 16-bit addressing, it will not work for this wakeup model > (because it boots the AP in 64-bit mode). To handle it, extend the > trampoline code to support 64-bit mode firmware handoff. Also, extend > IDT and GDT pointers to support 64-bit mode hand off. > > There is no TDX-specific detection for this new boot method. The kernel > will rely on it as the sole boot method whenever the new ACPI structure > is present. > > The ACPI table parser for the MADT multiprocessor wake up structure and > the wakeup method that uses this structure will be added by the following > patch in this series. > > Reported-by: Kai Huang <kai.huang@intel.com> > Signed-off-by: Sean Christopherson <seanjc@google.com> > Reviewed-by: Andi Kleen <ak@linux.intel.com> > Reviewed-by: Dan Williams <dan.j.williams@intel.com> > Signed-off-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com> > Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
|