Re: [PATCHv6 20/30] x86/boot: Add a trampoline for booting APs via firmware handoff

Kirill A. Shutemov
2022-03-17T20:21:48Z

On Thu, Mar 17, 2022 at 12:44:42PM +0000, Boris Petkov wrote:
> On March 16, 2022 2:08:46 AM UTC, "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com> wrote:
> >diff --git a/arch/x86/include/asm/apic.h b/arch/x86/include/asm/apic.h
> >index 48067af94678..35006e151774 100644
> >--- a/arch/x86/include/asm/apic.h
> >+++ b/arch/x86/include/asm/apic.h
> >@@ -328,6 +328,8 @@ struct apic {
> >
> > /* wakeup_secondary_cpu */
> > int (*wakeup_secondary_cpu)(int apicid, unsigned long start_eip);
> >+ /* wakeup secondary CPU using 64-bit wakeup point */
> >+ int (*wakeup_secondary_cpu_64)(int apicid, unsigned long start_eip);
> >
> > void (*inquire_remote_apic)(int apicid);
> >
> >diff --git a/arch/x86/include/asm/realmode.h b/arch/x86/include/asm/realmode.h
> >index 331474b150f1..fd6f6e5b755a 100644
> >--- a/arch/x86/include/asm/realmode.h
> >+++ b/arch/x86/include/asm/realmode.h
> >@@ -25,6 +25,7 @@ struct real_mode_header {
> > u32 sev_es_trampoline_start;
> > #endif
> > #ifdef CONFIG_X86_64
> >+ u32 trampoline_start64;
>
> I had already asked about those here: why do you need to add a new u32 here and can't use trampoline_start?
>
> Ditto for the new function pointer too.
>
> And yes, sev_es_trampoline_start is superfluous too.

As I said[1], I'm confused by the request. These field initialized at
build time. I don't see how a single field would work.

[1] https://lore.kernel.org/all/20220216141009.ymmjduf5doqnhnqy@black.fi.intel.com/

--
Kirill A. Shutemov