linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: al.stone@linaro.org (Al Stone)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v8 21/21] arm64: ACPI: additions of ACPI documentation for arm64
Date: Tue, 03 Feb 2015 17:40:20 -0700	[thread overview]
Message-ID: <54D16A74.3030206@linaro.org> (raw)
In-Reply-To: <1422881149-8177-22-git-send-email-hanjun.guo@linaro.org>

Much removed to cut down the size on this and to highlight a couple of specific
sections pertinent to the ACPI on ARMv8 TODO List.....

On 02/02/2015 05:45 AM, Hanjun Guo wrote:
> From: Al Stone <al.stone@linaro.org>
> 
> Two more documentation files are also being added:
> (1) A verbatim copy of the "Why ACPI on ARM?" blog posting by Grant Likely,
>     which is also summarized in arm-acpi.txt, and
> 
> (2) A section by section review of the ACPI spec (acpi_object_usage.txt)
>     to note recommendations and prohibitions on the use of the numerous
>     ACPI tables and objects.  This sets out the current expectations of
>     the firmware by Linux very explicitly (or as explicitly as I can, for
>     now).
> 
> CC: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com>
> CC: Yi Li <phoenix.liyi@huawei.com>
> CC: Mark Langsdorf <mlangsdo@redhat.com>
> CC: Ashwin Chaugule <ashwinc@codeaurora.org>
> Signed-off-by: Al Stone <al.stone@linaro.org>
> Signed-off-by: Hanjun Guo <hanjun.guo@linaro.org>
> ---
>  Documentation/arm64/acpi_object_usage.txt | 592 ++++++++++++++++++++++++++++++
>  Documentation/arm64/why_use_acpi.txt      | 231 ++++++++++++
>  2 files changed, 823 insertions(+)
>  create mode 100644 Documentation/arm64/acpi_object_usage.txt
>  create mode 100644 Documentation/arm64/why_use_acpi.txt
> 
> diff --git a/Documentation/arm64/acpi_object_usage.txt b/Documentation/arm64/acpi_object_usage.txt
> new file mode 100644
> index 0000000..2c4f733
> --- /dev/null
> +++ b/Documentation/arm64/acpi_object_usage.txt
> @@ -0,0 +1,592 @@
> +ACPI Tables
> +-----------
> +The expectations of individual ACPI tables are discussed in the list that
> +follows.
> +
> +If a section number is used, it refers to a section number in the ACPI
> +specification where the object is defined.  If "Signature Reserved" is used,
> +the table signature (the first four bytes of the table) is the only portion
> +of the table recognized by the specification, and the actual table is defined
> +outside of the UEFI Forum (see Section 5.2.6 of the specification).
> +
[snip....]

> +
> +ACPI Objects
> +------------
> +The expectations on individual ACPI objects are discussed in the list that
> +follows:
> +
> +Name	Section		Usage for ARMv8 Linux
> +----	------------	-------------------------------------------------
> +_ADR	6.1.1		Use as needed.
[snip....]
> +
> +_DMA	6.2.4		Optional.
> +
> +_DSD	6.2.5		To be used with caution.  If this object is used, try
> +			to use it within the constraints already defined by the
> +			Device Properties UUID.  Only in rare circumstances
> +			should it be necessary to create a new _DSD UUID.
> +
> +			In either case, submit the _DSD definition along with
> +			any driver patches for discussion, especially when
> +			device properties are used.  A driver will not be 
> +			considered complete without a corresponding _DSD
> +			description.  Once approved by kernel maintainers,
> +			the UUID or device properties must then be registered
> +			with the UEFI Forum; this may cause some iteration as
> +			more than one OS will be registering entries.
> +
[snip...]

So, this is my attempt to encapsulate what I think people want to have happen
around the use of _DSD; I just want to make sure I point it out so it doesn't
inadvertently get lost somehow.

Is this far too little?  Is it sufficient?  If it only addresses part of the
concerns, what did I miss?

> +
> +_OSC	6.2.11		This method can be a global method in ACPI (i.e.,
> +			\_SB._OSC), or it may be associated with a specific
> +			device (e.g., \_SB.DEV0._OSC), or both.  When used
> +			as a global method, only capabilities published in
> +			the ACPI specification are allowed.  When used as
> +			a device-specifc method, the process described for
> +			using _DSD MUST be used to create an _OSC definition;
> +			out-of-process use of _OSC is not allowed.  That is,
> +			submit the device-specific _OSC usage description as
> +			part of the kernel driver submission, get it approved
> +			by the kernel community, then register it with the
> +			UEFI Forum.

Note that _OSC is very similar to _DSD in how it is defined in the ACPI spec.
Hence, I suggest a very similar mechanism for vetting the use of _OSC in the
kernel.  Again: is this sufficient?

> +
> +\_OSI	5.7.2		Deprecated on ARM64.  Any invocation of this method
> +			will print a warning on the console and return false.
> +			That is, as far as ACPI firmware is concerned, _OSI
> +			cannot be used to determine what sort of system is
> +			being used or what functionality is provided.  The
> +			_OSC method is to be used instead.
> +

Just a side note that patches have been sent out to deprecate _OSI for arm64,
and that a change request has been sent in to the ACPI spec committee to make
it official (with an additional forewarning that _OSI will eventually be
deprecated completely for all architectures).

-- 
ciao,
al
-----------------------------------
Al Stone
Software Engineer
Linaro Enterprise Group
al.stone at linaro.org
-----------------------------------

  reply	other threads:[~2015-02-04  0:40 UTC|newest]

Thread overview: 123+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-02 12:45 [PATCH v8 00/21] Introduce ACPI for ARM64 based on ACPI 5.1 Hanjun Guo
2015-02-02 12:45 ` [PATCH v8 01/21] acpi: add arm64 to the platforms that use ioremap Hanjun Guo
2015-02-02 12:45 ` [PATCH v8 02/21] acpi: fix acpi_os_ioremap for arm64 Hanjun Guo
2015-02-02 22:14   ` Rafael J. Wysocki
2015-02-03  9:08     ` Hanjun Guo
2015-02-03 11:37       ` Catalin Marinas
2015-02-03 11:41         ` Ard Biesheuvel
2015-02-03 17:29     ` Mark Salter
2015-02-03 22:04       ` Rafael J. Wysocki
2015-02-04 10:48         ` Russell King - ARM Linux
2015-02-04 13:22           ` Rafael J. Wysocki
2015-02-04 15:53           ` Bjorn Helgaas
2015-02-04 16:25             ` Russell King - ARM Linux
2015-02-04 16:38               ` David Woodhouse
2015-02-04 16:41               ` Bjorn Helgaas
2015-02-04 11:25       ` Catalin Marinas
2015-02-04 16:08         ` Mark Salter
2015-02-04 16:16           ` Timur Tabi
2015-02-04 17:52             ` Catalin Marinas
2015-02-04 17:57           ` Catalin Marinas
2015-02-04 18:58             ` Mark Salter
2015-02-05 10:41               ` Catalin Marinas
2015-02-05 10:47                 ` Ard Biesheuvel
2015-02-05 10:59                   ` Catalin Marinas
2015-02-05 11:14                     ` Graeme Gregory
2015-02-05 12:07                       ` Catalin Marinas
2015-02-05 12:52                         ` Graeme Gregory
2015-02-05 14:50                           ` Catalin Marinas
2015-02-05 12:55                         ` Ard Biesheuvel
2015-02-05 13:54                 ` Mark Salter
2015-02-05 16:42                   ` [Linaro-acpi] " Al Stone
2015-02-05 17:48                     ` Catalin Marinas
2015-02-05 22:16                       ` Ard Biesheuvel
2015-02-06 10:36                         ` Catalin Marinas
2015-02-06 11:08                           ` Ard Biesheuvel
2015-02-06 14:16                             ` Catalin Marinas
2015-02-07  1:44                               ` Ard Biesheuvel
2015-02-05  1:24       ` Rafael J. Wysocki
2015-02-02 12:45 ` [PATCH v8 03/21] arm64: allow late use of early_ioremap Hanjun Guo
2015-02-02 12:45 ` [PATCH v8 04/21] ARM64 / ACPI: Get RSDP and ACPI boot-time tables Hanjun Guo
2015-02-02 12:45 ` [PATCH v8 05/21] ACPI / sleep: Introduce sleep_arm.c Hanjun Guo
2015-02-02 22:18   ` Rafael J. Wysocki
2015-02-03 16:18     ` Graeme Gregory
2015-02-02 12:45 ` [PATCH v8 06/21] ARM64 / ACPI: Introduce PCI stub functions for ACPI Hanjun Guo
2015-02-03 12:15   ` Catalin Marinas
2015-02-03 13:30     ` Hanjun Guo
2015-02-03 14:55       ` Rafael J. Wysocki
2015-02-04  9:06         ` Hanjun Guo
2015-02-02 12:45 ` [PATCH v8 07/21] ARM64 / ACPI: Introduce early_param for "acpi" and pass acpi=force to enable ACPI Hanjun Guo
2015-02-02 12:45 ` [PATCH v8 08/21] dt / chosen: Add linux, uefi-stub-generated-dtb property Hanjun Guo
2015-02-02 13:40   ` [PATCH v8 08/21] dt / chosen: Add linux,uefi-stub-generated-dtb property Leif Lindholm
2015-02-02 13:50     ` Graeme Gregory
2015-02-02 16:32       ` Mark Rutland
2015-02-06 10:34         ` [PATCH v8 08/21] dt / chosen: Add linux, uefi-stub-generated-dtb property G Gregory
2015-02-07  3:36           ` [PATCH v8 08/21] dt / chosen: Add linux,uefi-stub-generated-dtb property Hanjun Guo
2015-02-07  5:03             ` [PATCH v8 08/21] dt / chosen: Add linux, uefi-stub-generated-dtb property Ard Biesheuvel
2015-02-07  6:51               ` [PATCH v8 08/21] dt / chosen: Add linux,uefi-stub-generated-dtb property Hanjun Guo
2015-02-09 11:46               ` Mark Rutland
2015-02-11  2:44                 ` [PATCH v8 08/21] dt / chosen: Add linux, uefi-stub-generated-dtb property Ard Biesheuvel
2015-02-11  6:33                   ` [PATCH v8 08/21] dt / chosen: Add linux,uefi-stub-generated-dtb property Stefano Stabellini
2015-02-11  6:53                     ` [PATCH v8 08/21] dt / chosen: Add linux, uefi-stub-generated-dtb property Ard Biesheuvel
2015-02-11  7:07                       ` [PATCH v8 08/21] dt / chosen: Add linux,uefi-stub-generated-dtb property Stefano Stabellini
2015-02-02 12:45 ` [PATCH v8 09/21] ARM64 / ACPI: Disable ACPI if FADT revision is less than 5.1 Hanjun Guo
2015-02-03 17:20   ` Catalin Marinas
2015-02-04  9:38     ` Hanjun Guo
2015-02-04 13:06       ` Lorenzo Pieralisi
2015-02-05  9:45         ` Hanjun Guo
2015-02-02 12:45 ` [PATCH v8 10/21] ARM64 / ACPI: If we chose to boot from acpi then disable FDT Hanjun Guo
2015-02-02 12:45 ` [PATCH v8 11/21] ARM64 / ACPI: Get PSCI flags in FADT for PSCI init Hanjun Guo
2015-02-04 16:43   ` Lorenzo Pieralisi
2015-02-05  9:48     ` Hanjun Guo
2015-02-05 17:11     ` [Linaro-acpi] " Al Stone
2015-02-05 17:49       ` Lorenzo Pieralisi
2015-02-05 19:03         ` Al Stone
2015-02-06  7:56           ` Hanjun Guo
2015-02-06 16:21             ` Lorenzo Pieralisi
2015-02-02 12:45 ` [PATCH v8 12/21] ACPI / table: Print GIC information when MADT is parsed Hanjun Guo
2015-02-02 12:45 ` [PATCH v8 13/21] ARM64 / ACPI: Parse MADT for SMP initialization Hanjun Guo
2015-02-03 13:53   ` Mark Rutland
2015-02-04  9:05     ` Hanjun Guo
2015-02-04 10:30       ` Mark Rutland
2015-02-05  9:20         ` Hanjun Guo
2015-02-02 12:45 ` [PATCH v8 14/21] ACPI / processor: Make it possible to get CPU hardware ID via GICC Hanjun Guo
2015-02-03 14:17   ` Mark Rutland
2015-02-03 20:09     ` Catalin Marinas
2015-02-04  9:48       ` Hanjun Guo
2015-02-04 11:21         ` Catalin Marinas
2015-02-05  9:27           ` Hanjun Guo
2015-02-05 10:52             ` Catalin Marinas
2015-02-09  6:55   ` Will Deacon
2015-02-09  9:52     ` Catalin Marinas
2015-02-02 12:45 ` [PATCH v8 15/21] ARM64 / ACPI: Introduce ACPI_IRQ_MODEL_GIC and register device's gsi Hanjun Guo
2015-02-09  6:34   ` Will Deacon
2015-02-09  6:53     ` Hanjun Guo
2015-02-09  7:07       ` Will Deacon
2015-02-02 12:45 ` [PATCH v8 16/21] irqchip: Add GICv2 specific ACPI boot support Hanjun Guo
2015-02-02 22:23   ` Rafael J. Wysocki
2015-02-03 15:38   ` Tomasz Nowicki
2015-02-02 12:45 ` [PATCH v8 17/21] clocksource / arch_timer: Parse GTDT to initialize arch timer Hanjun Guo
2015-02-02 22:23   ` Rafael J. Wysocki
2015-02-03 13:28     ` Hanjun Guo
2015-02-04 18:59   ` Lorenzo Pieralisi
2015-02-05 10:11     ` Hanjun Guo
2015-02-02 12:45 ` [PATCH v8 18/21] ARM64 / ACPI: Select ACPI_REDUCED_HARDWARE_ONLY if ACPI is enabled on ARM64 Hanjun Guo
2015-02-02 12:45 ` [PATCH v8 19/21] ARM64 / ACPI: Enable ARM64 in Kconfig Hanjun Guo
2015-02-02 12:45 ` [PATCH v8 20/21] Documentation: ACPI for ARM64 Hanjun Guo
2015-02-02 19:01   ` Timur Tabi
2015-02-03  8:44     ` Hanjun Guo
2015-02-02 12:45 ` [PATCH v8 21/21] arm64: ACPI: additions of ACPI documentation for arm64 Hanjun Guo
2015-02-04  0:40   ` Al Stone [this message]
2015-02-04 18:12     ` Mark Brown
2015-02-04 19:06       ` Al Stone
2015-02-05  2:02         ` Mark Brown
2015-02-03 16:47 ` [PATCH v8 00/21] Introduce ACPI for ARM64 based on ACPI 5.1 Mark Rutland
2015-02-03 17:43   ` [Linaro-acpi] " Al Stone
2015-02-04  9:41     ` Hanjun Guo
2015-02-04 20:29 ` Timur Tabi
2015-02-05 10:16   ` Hanjun Guo
2015-02-12 10:02 ` Robert Richter
2015-02-13  2:48   ` Hanjun Guo
2015-02-19 16:10     ` Robert Richter
     [not found] ` <a314cdbbefb349acbb8f47d6e806989f@NASANEXM01D.na.qualcomm.com>
2015-02-13  0:50   ` Jonathan (Zhixiong) Zhang
2015-02-13  7:50     ` 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=54D16A74.3030206@linaro.org \
    --to=al.stone@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    /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;
as well as URLs for NNTP newsgroup(s).