[PATCH 3/3] Documentation/arm64: Update ACPI tables from BBR

Jose Marinho Jose.Marinho at arm.com
Mon May 22 03:55:03 PDT 2023


Hi Hanjun, Robin,

> On 2023-05-19 08:10, Hanjun Guo wrote:
> > On 2023/5/18 21:40, Robin Murphy wrote:
> >> On 2023-05-18 13:07, Hanjun Guo wrote:
> >>> Hi Jose,
> >>>
> >>> On 2023/5/18 18:52, Jose Marinho wrote:
> >>>> The BBR specification requires (or conditionally requires) a set of
> >>>> ACPI tables for a proper working system.
> >>>> This commit updates:
> >>>> - the list of ACPI tables to reflect the contents of BBR version
> >>>> 2.0 (see https://developer.arm.com/documentation/den0044/g).
> >>>> - the list of ACPI tables in acpi_object_usage. This last update
> >>>> ensures that both files remain coherent.
> >>>
> >>> Thanks for the update, some comments inline.
> >>>
> >>>>
> >>>> Signed-off-by: Jose Marinho <jose.marinho at arm.com>
> >>>> Reviewed-by: Samer El-Haj-Mahmoud <Samer.El-Haj-
> Mahmoud at arm.com>
> >>>> ---
> >>>>   Documentation/arm64/acpi_object_usage.rst | 81
> >>>> +++++++++++++++++++++--
> >>>>   Documentation/arm64/arm-acpi.rst          | 71
> >>>> +++++++++++++++++---
> >>>>   2 files changed, 139 insertions(+), 13 deletions(-)
> >>>>
> >>>> diff --git a/Documentation/arm64/acpi_object_usage.rst
> >>>> b/Documentation/arm64/acpi_object_usage.rst
> >>>> index 484ef9676653..1da22200fdf8 100644
> >>>> --- a/Documentation/arm64/acpi_object_usage.rst
> >>>> +++ b/Documentation/arm64/acpi_object_usage.rst
> >>>> @@ -17,16 +17,37 @@ For ACPI on arm64, tables also fall into the
> >>>> following categories:
> >>>>          -  Recommended: BERT, EINJ, ERST, HEST, PCCT, SSDT
> >>>> -       -  Optional: BGRT, CPEP, CSRT, DBG2, DRTM, ECDT, FACS,
> >>>> FPDT, IBFT,
> >>>> -          IORT, MCHI, MPST, MSCT, NFIT, PMTT, RASF, SBST, SLIT,
> >>>> SPMI, SRAT,
> >>>> -          STAO, TCPA, TPM2, UEFI, XENV
> >>>> +       -  Optional: AGDI, BGRT, CEDT, CPEP, CSRT, DBG2, DRTM,
> >>>> +ECDT,
> >>>> FACS, FPDT,
> >>>> +          HMAT, IBFT, IORT, MCHI, MPAM, MPST, MSCT, NFIT, PMTT,
> >>>> PPTT, RASF, SBST,
> >>>> +          SDEI, SLIT, SPMI, SRAT, STAO, TCPA, TPM2, UEFI, XENV
> >>>> -       -  Not supported: BOOT, DBGP, DMAR, ETDT, HPET, IVRS, LPIT,
> >>>> MSDM, OEMx,
> >>>> -          PSDT, RSDT, SLIC, WAET, WDAT, WDRT, WPBT
> >>>> +       -  Not supported: AEST, APMT, BOOT, DBGP, DMAR, ETDT, HPET,
> >>>> IVRS, LPIT,
> >>>
> >>> AEST is ARM Error Source Table, and it can be used for ARM
> >>> platforms, so I thinsk AEST is not belong to "Not supportted", "Optional"
> instead.
> >>
> >> Can you point to the code in Linux which does anything with AEST,
> >> optionally or otherwise? ;)
> >>> and APMT is the same.
> >>>
> >>>> +          MSDM, OEMx, PDTT, PSDT, RAS2, RSDT, SLIC, WAET, WDAT,
> >>>> WDRT, WPBT
> >>>
> >>> PDTT and RAS2 are now used for ARM too, please move it to Optional
> >>> :)

The 6.3 kernel does not yet have code consuming either table.

Perhaps the categories {"Required", "Recommended", "Optional", "Not supported"}
listed in Documentation/arm64/acpi_object_usage.rst should be defined.

My opinion (which may be unaligned with the original intent behind the categories) is, If a table 
is consumed by kernel code, then it is supported, i.e. in {"Required", "Recommended", "Optional"}.
Otherwise, the table is "Not supported".

> >>
> >> Ditto; as stated in arm-acpi.rst this is Linux documentation covering
> >> the interaction between Linux and ACPI. It is not some kind of
> >> generic
> >
> > Hmm, let me see...
> >
> > OK, I checked the arm-acpi.rst, it is saying:
> >
> > "Detailed expectations for ACPI tables and object are listed in the
> > file Documentation/arm64/acpi_object_usage.rst."
> >
> > So if I remember correctly, it is the guidance of ACPI tables and
> > methods usage on arm64, to align with the BBR.
> 
> "The purpose of this document is to describe the interaction between ACPI
> and Linux only, on an ARMv8 system -- that is, what Linux expects of ACPI
> and what ACPI can expect of Linux."
> 
> I don't see how it could get much clearer than that. Yes, phrasing like "ACPI
> on arm64" is used elsewhere, but remember that in context "arm64"
> means "AArch64 Linux".
> 
> >> ACPI-on-Arm guidance whitepaper. If and when Linux actually supports
> >> these tables in the sense of meaningfully consuming them, that is
> >> when we can document such support.
> >
> > If this is the case, we don't need categories of "Required",
> > "Recommmened" and etc.
> 
> Certainly the distinction between required and optional is significant and
> useful, since Linux may fail to boot at all if a required table is missing. I'd
> agree I can't really make sense of the "recommended"
> category though - it's not like firmware could make up RAS support if the
> hardware doesn't have it, and whether SSDTs are appropriate or not seems
> to depend on the fundamental design of the system, rather than being
> something an OS should dictate :/
> 

I agree with Robin that it isn’t clear what "Recommended" versus "Optional" signifies.
Maybe the distinction should be better discussed, and we can make those clarifications in a separate change?

> However that's something we can think about separately, since it's
> orthogonal to this content update.
> 
> Thanks,
> Robin.


More information about the linux-arm-kernel mailing list