Re: [PATCH v7 04/17] ARM64 / ACPI: Introduce early_param for "acpi" and pass acpi=force to enable ACPI

Graeme Gregory
2015-01-21T15:55:26Z

On Wed, Jan 21, 2015 at 03:42:43PM +0000, Catalin Marinas wrote:
> On Wed, Jan 21, 2015 at 03:29:52PM +0000, Jon Masters wrote:
> > On 01/21/2015 10:23 AM, Catalin Marinas wrote:
> > > I have some questions for the ACPI and EFI folk:
> > >
> > > 1. When booting with ACPI, are the EFI run-time services required for
> > > anything? If yes, Xen may have a bigger problem
> >
> > Yes. At least for some things. For example, installing an Operating
> > System would require that you make runtime services calls to set the
> > BootOrder/BootNext variables, and so on. Further, we use the GetTime
> > service and EFI based reboot to avoid having special drivers. I had
> > those added to SBBR as requirements for that reason.
>
> So what would a kexec'ed kernel do here? Or we usually expect it to be
> short lived and doesn't need reboot, nor GetTime.
>
> Xen is slightly more problematic but I wonder whether it could run a
> (paravirtualised) UEFI.
>
> > > 2. Could a boot loader (either kernel doing kexec or Xen) emulate the
> > > EFI system/config tables and still make them useful to the kernel but
> > > without EFI_BOOT or EFI_RUNTIME_SERVICES?
> >
> > Yes. But again, without the other required pieces (including the
> > services function pointers in the systab which are required) you'd crash
> > soon after boot trying to make those calls.
>
> My point was whether you can still pass information like RSDP address
> via EFI tables but explicitly disable runtime services so that the
> kernel won't try to make such calls (and crash).
>
There is no specific dependency from ACPI->EFI its just the only current
method defind to get the RSDP pointer. It would work just as well
getting the pointer from /chosen/ if we just pick a node and document it
for Xen/kexec/other usage.

We were running ACPI on machine from u-boot doing exactly this for
a long time.

Graeme