> From: Ricardo Neri <ricardo.neri-calderon@xxxxxxxxxxxxxxx> > Sent: Friday, June 27, 2025 8:35 PM > [...] > From: Yunhong Jiang <yunhong.jiang@xxxxxxxxxxxxxxx> > > x86 CPUs boot in real mode. This mode uses 20-bit memory addresses (16-bit > registers plus 4-bit segment selectors). This implies that the trampoline > must reside under the 1MB memory boundary. > > There are platforms in which the firmware boots the secondary CPUs, > switches them to long mode and transfers control to the kernel. An example > of such mechanism is the ACPI Multiprocessor Wakeup Structure. > > In this scenario there is no restriction to locate the trampoline under 1MB > memory. Moreover, certain platforms (for example, Hyper-V VTL guests) may > not have memory available for allocation under 1MB. > > Add a new member to struct x86_init_resources to specify the upper bound > for the location of the trampoline memory. Keep the default upper bound of > 1MB to conserve the current behavior. > > Reviewed-by: Michael Kelley <mhklinux@xxxxxxxxxxx> > Originally-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx> > Signed-off-by: Yunhong Jiang <yunhong.jiang@xxxxxxxxxxxxxxx> > Signed-off-by: Ricardo Neri <ricardo.neri-calderon@xxxxxxxxxxxxxxx> > --- LGTM Reviewed-by: Dexuan Cui <decui@xxxxxxxxxxxxx>