mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Daniel Kiper <daniel.kiper@oracle.com>
To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>,
	"hanjun.guo@linaro.org" <hanjun.guo@linaro.org>,
	Mark Rutland <Mark.Rutland@arm.com>,
	"jcm@redhat.com" <jcm@redhat.com>,
	"grant.likely@linaro.org" <grant.likely@linaro.org>,
	Ard Biesheuvel <ard.biesheuvel@linaro.org>,
	"linaro-acpi@lists.linaro.org" <linaro-acpi@lists.linaro.org>,
	Will Deacon <Will.Deacon@arm.com>,
	"wangyijing@huawei.com" <wangyijing@huawei.com>,
	Rob Herring <robh@kernel.org>,
	Lorenzo Pieralisi <Lorenzo.Pieralisi@arm.com>,
	Al Stone <al.stone@linaro.org>, Timur Tabi <timur@codeaurora.org>,
	"linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>,
	Charles Garcia-Tobin <Charles.Garcia-Tobin@arm.com>,
	"phoenix.liyi@huawei.com" <phoenix.liyi@huawei.com>,
	Robert Richter <rric@kernel.org>,
	Jason Cooper <jason@lakedaemon.net>,
	Arnd Bergmann <arnd@arndb.de>,
	Marc Zyngier <Marc.Zyngier@arm.com>,
	Mark Brown <broonie@kernel.org>,
	Bjorn Helgaas <bhelgaas@google.com>,
	"linux-arm-kernel@lists.infradead.org" 
	<linux-arm-kernel@lists.infradead.org>,
	"graeme.gregory@linaro.org" <graeme.gregory@linaro.org>,
	Randy Dunlap <rdunlap@infradead.org>,
	"Rafael J. Wysocki" <rjw@rjwysocki.net>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"suravee.suthikulpanit@amd.com" <suravee.suthikulpanit@amd.com>,
	Sudeep Holla <Sudeep.Holla@arm.com>,
	Olof Johansson <olof@lixom.net>,
	"christoffer.dall@linaro.org" <christoffer.dall@linaro.org>,
	"parth.dixit@linaro.org" <parth.dixit@linaro.org>,
	Leif Lindholm <leif.lindholm@linaro.org>
Subject: Re: [PATCH v7 04/17] ARM64 / ACPI: Introduce early_param for "acpi" and pass acpi=force to enable ACPI
Date: Thu, 22 Jan 2015 13:29:58 +0100	[thread overview]
Message-ID: <20150122122958.GG3473@olila.local.net-space.pl> (raw)
In-Reply-To: <alpine.DEB.2.02.1501211558561.12653@kaball.uk.xensource.com>

On Wed, Jan 21, 2015 at 04:10:00PM +0000, Stefano Stabellini wrote:
> On Wed, 21 Jan 2015, Catalin Marinas wrote:
> > On Tue, Jan 20, 2015 at 07:20:06PM +0000, Stefano Stabellini wrote:
> > > On Tue, 20 Jan 2015, Hanjun Guo wrote:
> > > > How about the patch (just RFC, maybe it is horrible :) ) below:
> > > >
> > > > When system supporting both DT and ACPI but firmware providing
> > > > no dtb, we can use this linux,uefi-stub-generated-dtb property
> > > > to let kernel know that we can try ACPI configuration data.
> > > >
> > > > Signed-off-by: Hanjun Guo <hanjun.guo@linaro.org>
> > > > ---
> > > >  Documentation/devicetree/bindings/chosen.txt | 19 ++++++++++++++++
> > > >  arch/arm64/kernel/setup.c                    | 34
> > > > +++++++++++++++++++++++++++-
> > > >  drivers/firmware/efi/libstub/fdt.c           |  6 +++++
> > > >  3 files changed, 58 insertions(+), 1 deletion(-)
> > > >
> > > > diff --git a/Documentation/devicetree/bindings/chosen.txt
> > > > b/Documentation/devicetree/bindings/chosen.txt
> > > > index ed838f4..18776b9 100644
> > > > --- a/Documentation/devicetree/bindings/chosen.txt
> > > > +++ b/Documentation/devicetree/bindings/chosen.txt
> > > > @@ -44,3 +44,22 @@ Implementation note: Linux will look for the property
> > > > "linux,stdout-path" or
> > > >  on PowerPC "stdout" if "stdout-path" is not found.  However, the
> > > >  "linux,stdout-path" and "stdout" properties are deprecated. New platforms
> > > >  should only use the "stdout-path" property.
> > > > +
> > > > +
> > > > +linux,uefi-stub-generated-dtb property
> > > > +--------------------------------------
> > > > +
> > > > +UEFI stub will generate this property in the chosen node to let linux kernel
> > > > +know that there is no DTB provided by firmware.
> > > > +
> > > > +There is a use case for system supporting both DT and ACPI, when firmware
> > > > +doesn't provide DT, we can try ACPI configration data to boot the system.
> > > > +
> > > > +Usage:
> > > > +
> > > > +linux,uefi-stub-generated-dtb = "true" means that it is true that the dtb
> > > > +is generated by uefi stub
> > > > +
> > > > +or
> > > > +
> > > > +linux,uefi-stub-generated-dtb = "false" is the reverse.
> > >
> > > I am sorry to have to make the discussion even more complex than already
> > > is, however we have one more use case to consider: Linux booting on Xen
> > > as Dom0.
> > >
> > > When booting as Dom0 on ACPI hardware, Linux doesn't have access to the
> > > UEFI firmware (no EFI stub). Xen passes a small device tree blob with
> > > a chosen node, memory information and a pointer to the ACPI tables.
> > > It looks similar to the DTB passed to Linux by the EFI stub but it is
> > > generated by Xen instead.
> >
> > We have two (or even three) different use cases here. One of them is a
> > way to tell the kernel that there is no point in trying DT since it has
> > been generated by the EFI stub and it doesn't have any SoC information.
> > The kernel can bet on ACPI tables being present or just fail to boot.
> > What I want to avoid is "acpi=force" parameter being part of the
> > kernel/firmware ABI for using ACPI (whether DT is present or not).
> >
> > We could call this something else ("linux,bare-dtb"?) if we want to use
> > it in other situations but not "enable_acpi" as we don't want to move
> > the ACPI enabling policy in the EFI stub or boot loader (or whatever
> > generates the chosen node).
> >
> > The Xen case is close to the kexec one. For the latter (I haven't looked
> > at the current arm64 patches yet), I can see that you can pass an
> > "acpi_rsdp" argument to the kernel with the ACPI RSDP address. I don't
> > think that's ideal, we better have some defined DT bindings for such
> > information in the absence of EFI. But it basically means that we'll
> > allow ACPI on arm64 without EFI.
>
> Good, I agree.
>
>
> On Wed, 21 Jan 2015, 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.
>
> As a matter of fact that's how it is done on x86: Xen exports a
> paravirtualized UEFI run-time services interface (drivers/xen/efi.c).
> Daniel Kiper (CC'ed) wrote the code that went upstream last August.
> There is no reason why we could not do the same on ARM.

I have done it with ARM in my mind. So, I think that you can reuse that code
fairly easy. Just take look at drivers/xen/efi.c (I think that this should
work on ARM without major changes) and assume arch/x86/xen/efi.c and
arch/x86/xen/enlighten.c as an example of starting point.

> > > > 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).
>
> I don't think that run-time services are going to be a problem for Xen,
> but I agree that it would be nice not to depend on them to have ACPI.

IIRC, there are relevant options in Linux Kernel and Xen to disable
runtime services, however, I have not tested them.

Daniel

  reply	other threads:[~2015-01-22 12:31 UTC|newest]

Thread overview: 154+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-14 15:04 [PATCH v7 00/17] Introduce ACPI for ARM64 based on ACPI 5.1 Hanjun Guo
2015-01-14 15:04 ` [PATCH v7 01/17] arm64: allow late use of early_ioremap Hanjun Guo
2015-01-15 18:44   ` Mark Langsdorf
2015-01-14 15:04 ` [PATCH v7 02/17] ARM64 / ACPI: Get RSDP and ACPI boot-time tables Hanjun Guo
2015-01-15 18:45   ` Mark Langsdorf
2015-01-14 15:04 ` [PATCH v7 03/17] ARM64 / ACPI: Introduce sleep-arm.c Hanjun Guo
2015-01-15 18:45   ` Mark Langsdorf
2015-01-14 15:04 ` [PATCH v7 04/17] ARM64 / ACPI: Introduce early_param for "acpi" and pass acpi=force to enable ACPI Hanjun Guo
2015-01-15 18:46   ` Mark Langsdorf
2015-01-19 11:42   ` Catalin Marinas
2015-01-19 11:55     ` Ard Biesheuvel
2015-01-19 13:51       ` Catalin Marinas
2015-01-19 14:00         ` Ard Biesheuvel
2015-01-19 14:22           ` Catalin Marinas
2015-01-19 15:13         ` Grant Likely
2015-01-19 16:59           ` Jon Masters
2015-01-19 17:52             ` Catalin Marinas
2015-01-19 18:01               ` Mark Rutland
2015-01-20  9:29                 ` Hanjun Guo
2015-01-20 10:56                   ` Catalin Marinas
2015-01-20 11:10                   ` Mark Rutland
2015-01-20 12:17                     ` Hanjun Guo
2015-01-20 12:31                     ` Leif Lindholm
2015-01-20 19:20                   ` Stefano Stabellini
2015-01-21  9:43                     ` Parth Dixit
2015-01-21 15:23                     ` Catalin Marinas
2015-01-21 15:29                       ` Jon Masters
2015-01-21 15:42                         ` Catalin Marinas
2015-01-21 15:56                           ` Graeme Gregory
2015-01-21 16:05                           ` Jon Masters
2015-01-21 16:16                             ` Catalin Marinas
2015-01-21 16:51                               ` Parth Dixit
2015-01-21 16:10                       ` Stefano Stabellini
2015-01-22 12:29                         ` Daniel Kiper [this message]
2015-01-28 17:58   ` [Linaro-acpi] " Timur Tabi
2015-01-28 18:08     ` Catalin Marinas
2015-01-28 18:08     ` Timur Tabi
2015-01-28 18:14       ` Catalin Marinas
2015-01-28 18:18         ` Timur Tabi
2015-01-29 15:19           ` Catalin Marinas
2015-01-29 18:20             ` Ard Biesheuvel
2015-01-29 18:21               ` Timur Tabi
2015-01-29 18:28                 ` Ard Biesheuvel
2015-01-29 18:34                   ` Timur Tabi
2015-01-29 18:44                     ` Jon Masters
2015-01-29 23:11                       ` Catalin Marinas
2015-01-29 23:16                         ` Jon Masters
2015-01-29 23:30                           ` Catalin Marinas
2015-01-30 11:13               ` Catalin Marinas
2015-01-30 14:48                 ` Timur Tabi
2015-01-30 15:12                   ` Ard Biesheuvel
2015-01-14 15:04 ` [PATCH v7 05/17] ARM64 / ACPI: If we chose to boot from acpi then disable FDT Hanjun Guo
2015-01-15 18:46   ` Mark Langsdorf
2015-01-19 11:45   ` Catalin Marinas
2015-01-14 15:04 ` [PATCH v7 06/17] ARM64 / ACPI: Make PCI optional for ACPI on ARM64 Hanjun Guo
2015-01-15 18:46   ` Mark Langsdorf
2015-01-16  9:49   ` Catalin Marinas
2015-01-18  6:25     ` Hanjun Guo
2015-01-18  6:31       ` Jon Masters
2015-01-18  6:46         ` Hanjun Guo
2015-01-18  9:29           ` Graeme Gregory
2015-01-18 12:32             ` Jon Masters
2015-01-19  4:26             ` Hanjun Guo
2015-01-19 10:37             ` Catalin Marinas
2015-01-19 10:42       ` Catalin Marinas
2015-01-20  2:39         ` Hanjun Guo
2015-01-20 11:00           ` Catalin Marinas
2015-01-20 11:56             ` Hanjun Guo
2015-01-20 12:26             ` [Linaro-acpi] " Tomasz Nowicki
2015-01-20 15:10               ` Catalin Marinas
2015-01-14 15:04 ` [PATCH v7 07/17] ARM64 / ACPI: Disable ACPI if FADT revision is less than 5.1 Hanjun Guo
2015-01-15 18:47   ` Mark Langsdorf
2015-01-16 14:33   ` Lorenzo Pieralisi
2015-01-18  5:49     ` Hanjun Guo
2015-01-19 11:50   ` Catalin Marinas
2015-01-20  3:05     ` Hanjun Guo
2015-01-14 15:04 ` [PATCH v7 08/17] ARM64 / ACPI: Get PSCI flags in FADT for PSCI init Hanjun Guo
2015-01-15 18:47   ` Mark Langsdorf
2015-01-14 15:04 ` [PATCH v7 09/17] ACPI / table: Print GIC information when MADT is parsed Hanjun Guo
2015-01-15 18:47   ` Mark Langsdorf
2015-01-14 15:04 ` [PATCH v7 10/17] ARM64 / ACPI: Parse MADT for SMP initialization Hanjun Guo
2015-01-15 18:48   ` Mark Langsdorf
2015-01-16 18:18   ` Lorenzo Pieralisi
2015-01-20 13:09     ` Hanjun Guo
2015-01-20 15:16       ` Lorenzo Pieralisi
2015-01-14 15:04 ` [PATCH v7 11/17] ACPI / processor: Make it possible to get CPU hardware ID via GICC Hanjun Guo
2015-01-15 18:48   ` Mark Langsdorf
2015-01-20 11:17   ` Catalin Marinas
2015-01-20 12:26     ` Hanjun Guo
2015-01-20 16:16   ` Lorenzo Pieralisi
2015-01-14 15:05 ` [PATCH v7 12/17] ARM64 / ACPI: Introduce ACPI_IRQ_MODEL_GIC and register device's gsi Hanjun Guo
2015-01-15 18:48   ` Mark Langsdorf
2015-01-16 10:45   ` Marc Zyngier
2015-01-14 15:05 ` [PATCH v7 13/17] ARM64 / ACPI: Add GICv2 specific ACPI boot support Hanjun Guo
2015-01-15 18:50   ` Mark Langsdorf
2015-01-16 11:15   ` Marc Zyngier
2015-01-16 13:54     ` Grant Likely
2015-01-16 14:37       ` Marc Zyngier
2015-01-22 12:46         ` Hanjun Guo
2015-01-22 14:46           ` Marc Zyngier
2015-01-23  9:38             ` Hanjun Guo
2015-01-27 16:12         ` Grant Likely
2015-01-29 15:29           ` Catalin Marinas
2015-01-29 16:06             ` Tomasz Nowicki
2015-01-20 10:40     ` Tomasz Nowicki
2015-01-20 13:05       ` Jon Masters
2015-01-14 15:05 ` [PATCH v7 14/17] ARM64 / ACPI: Parse GTDT to initialize arch timer Hanjun Guo
2015-01-15 18:50   ` Mark Langsdorf
2015-01-14 15:05 ` [PATCH v7 15/17] ARM64 / ACPI: Select ACPI_REDUCED_HARDWARE_ONLY if ACPI is enabled on ARM64 Hanjun Guo
2015-01-15 18:50   ` Mark Langsdorf
2015-01-14 15:05 ` [PATCH v7 16/17] ARM64 / ACPI: Enable ARM64 in Kconfig Hanjun Guo
2015-01-15 18:50   ` Mark Langsdorf
2015-01-14 15:05 ` [PATCH v7 17/17] Documentation: ACPI for ARM64 Hanjun Guo
2015-01-15 18:54   ` Mark Langsdorf
2015-01-15 16:26 ` [PATCH v7 00/17] Introduce ACPI for ARM64 based on ACPI 5.1 Grant Likely
2015-01-15 18:23   ` Catalin Marinas
2015-01-15 19:02     ` Mark Brown
2015-01-15 20:04       ` Jason Cooper
2015-01-15 20:31         ` Mark Brown
2015-01-15 20:51           ` Jason Cooper
2015-01-16 11:49             ` Mark Brown
2015-01-16  7:24           ` Hanjun Guo
2015-01-16 10:10         ` Catalin Marinas
2015-01-16 12:05           ` Mark Brown
2015-01-16 12:29             ` Will Deacon
2015-01-16 16:54               ` Mark Brown
2015-01-18  6:36           ` Hanjun Guo
2015-01-15 21:31     ` Al Stone
2015-01-15 21:38       ` Jon Masters
2015-01-16 10:20       ` Catalin Marinas
2015-01-16 15:17         ` [Linaro-acpi] " Al Stone
2015-01-16 15:23           ` Al Stone
2015-01-16 15:44           ` Suravee Suthikulpanit
2015-01-16  7:17     ` Hanjun Guo
2015-01-16 10:04       ` Catalin Marinas
2015-01-16 14:45       ` Tom Lendacky
2015-01-16 14:55         ` Will Deacon
2015-01-16 15:14           ` Arnd Bergmann
2015-01-16 15:25             ` Catalin Marinas
2015-01-16 15:33             ` Will Deacon
2015-01-16 15:40               ` Arnd Bergmann
2015-01-16 15:43                 ` [Linaro-acpi] " Arnd Bergmann
2015-01-16 15:49                 ` Will Deacon
2015-01-16 15:53                   ` [Linaro-acpi] " Arnd Bergmann
2015-01-17 17:53                     ` Rob Herring
2015-01-16 17:12                   ` Tom Lendacky
2015-01-16 15:16           ` Tom Lendacky
2015-01-16 16:29     ` Grant Likely
2015-01-16 17:20       ` [Linaro-acpi] " Arnd Bergmann
2015-01-17 11:52       ` Catalin Marinas
2015-01-15 18:58 ` Jon Masters
2015-01-15 21:33 ` Suravee Suthikulanit
2015-01-27 17:46 ` Timur Tabi
2015-01-28 13:53   ` Hanjun Guo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150122122958.GG3473@olila.local.net-space.pl \
    --to=daniel.kiper@oracle.com \
    --cc=Charles.Garcia-Tobin@arm.com \
    --cc=Lorenzo.Pieralisi@arm.com \
    --cc=Marc.Zyngier@arm.com \
    --cc=Mark.Rutland@arm.com \
    --cc=Sudeep.Holla@arm.com \
    --cc=Will.Deacon@arm.com \
    --cc=al.stone@linaro.org \
    --cc=ard.biesheuvel@linaro.org \
    --cc=arnd@arndb.de \
    --cc=bhelgaas@google.com \
    --cc=broonie@kernel.org \
    --cc=catalin.marinas@arm.com \
    --cc=christoffer.dall@linaro.org \
    --cc=graeme.gregory@linaro.org \
    --cc=grant.likely@linaro.org \
    --cc=hanjun.guo@linaro.org \
    --cc=jason@lakedaemon.net \
    --cc=jcm@redhat.com \
    --cc=leif.lindholm@linaro.org \
    --cc=linaro-acpi@lists.linaro.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=olof@lixom.net \
    --cc=parth.dixit@linaro.org \
    --cc=phoenix.liyi@huawei.com \
    --cc=rdunlap@infradead.org \
    --cc=rjw@rjwysocki.net \
    --cc=robh@kernel.org \
    --cc=rric@kernel.org \
    --cc=stefano.stabellini@eu.citrix.com \
    --cc=suravee.suthikulpanit@amd.com \
    --cc=timur@codeaurora.org \
    --cc=wangyijing@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®