public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Jagadeesh Ujja" <jagadeesh.ujja@arm.com>
To: devel@edk2.groups.io, Sami Mujawar <sami.mujawar@arm.com>
Cc: Pierre Gondois <pierre.gondois@arm.com>,
	meenakshi.aggarwal@nxp.com,
	 Leif Lindholm <quic_llindhol@quicinc.com>,
	Alexei.Fedorov@arm.com, jbrasen@nvidia.com,
	 Deepak.Pandey@arm.com, Chandni.Cherukuri@arm.com,
	Matteo.Carlini@arm.com,  Akanksha.Jain2@arm.com,
	Ben.Adderson@arm.com, nd@arm.com
Subject: Re: [edk2-devel] [PATCH v1 1/1] DynamicTablesPkg: Add support to specify FADT minor revision
Date: Mon, 11 Jul 2022 16:53:59 +0530	[thread overview]
Message-ID: <CADpYukYhDm0+eybAF7kZS=fC7nz96Gqy7E-8kGOfLv8tJ1SB5w@mail.gmail.com> (raw)
In-Reply-To: <42f974ce-0afb-4e07-7f34-60b02a6cd791@arm.com>

Hi Sami,
The patch is tested and looks good to me:

Tested-by: Jagadeesh Ujja <Jagadeesh.Ujja@arm.com>

On Wed, Jul 6, 2022 at 8:57 PM Sami Mujawar <sami.mujawar@arm.com> wrote:
>
> Hi Pierre,
>
> On 06/07/2022 04:03 pm, Pierre Gondois wrote:
> > Hello Sami,
> > The only configuration manager not using ACPI 6.4 tables is at:
> > Platform/NXP/ConfigurationManagerPkg/ConfigurationManagerDxe/ConfigurationManager.c
> >
> >
> > I think the minor version of its FADT table needs to be updated along
> > with
> > this patch. Otherwise:
> >
> Thank you for bringing this up.
>
> As it stands the NXP platform would be using ACPI 6.4 which is the
> default case, and this patch will not change that. So, downgrading this
> to ACPI 6.2 may not be expected.
>
> I have copied the NXP package maintainers for further inputs. If needed,
> I could submit a edk2-platforms patch as required.
>
> Regards,
>
> Sami Mujawar
>
>
> > Reviewed-by: <pierre.gondois@arm.com>
> >
> > Regards,
> > Pierre
> >
> > On 7/6/22 13:40, Sami Mujawar wrote:
> >> The CM_STD_OBJ_ACPI_TABLE_INFO.AcpiTableRevision can be used to specify
> >> the major revision number of the ACPI table that the generator must use.
> >> Although most ACPI tables only have a major revision number, the FADT
> >> table additionally has a minor revision number.
> >>
> >> The FADT generator currently defaults to setting the latest supported
> >> ACPI revision for the FADT table i.e. ACPI 6.4. This means that the
> >> minor
> >> revision for the FADT table is always set to 4 and there is no provision
> >> for a user to specify the minor revision to be selected.
> >>
> >> Therefore, update CM_STD_OBJ_ACPI_TABLE_INFO to introduce a new field
> >> MinorRevision which can be used to specify the minor revision for an
> >> ACPI table. Also update the FADT generator to validate the supported
> >> FADT revisions ans use the specified minor revision for the FADT table
> >> if supported. If an unsupported minor revision is specified the FADT
> >> generator defaults to the latest supported minor revision.
> >>
> >> Since the CM_STD_OBJ_ACPI_TABLE_INFO.MinorRevision field is added to
> >> the end of the structure, it should not break existing platform code.
> >>
> >> Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
> >> ---
> >> The changes can be seen at:
> >> https://github.com/samimujawar/edk2/tree/2221_support_fadt_minor_rev_v1
> >>
> >> DynamicTablesPkg/Include/StandardNameSpaceObjects.h | 10 ++++++-
> >> DynamicTablesPkg/Library/Acpi/Arm/AcpiFadtLibArm/FadtGenerator.c | 29
> >> ++++++++++++++++++--
> >>   2 files changed, 36 insertions(+), 3 deletions(-)
> >>
> >> diff --git a/DynamicTablesPkg/Include/StandardNameSpaceObjects.h
> >> b/DynamicTablesPkg/Include/StandardNameSpaceObjects.h
> >> index
> >> 8d0c7da15a73e4910f9099c68f6e5cc2f06c0ecb..8ec3238225abe4fc16a7337c29ecd655590b408f
> >> 100644
> >> --- a/DynamicTablesPkg/Include/StandardNameSpaceObjects.h
> >> +++ b/DynamicTablesPkg/Include/StandardNameSpaceObjects.h
> >> @@ -1,6 +1,6 @@
> >>   /** @file
> >>   -  Copyright (c) 2017 - 2019, ARM Limited. All rights reserved.
> >> +  Copyright (c) 2017 - 2022, Arm Limited. All rights reserved.
> >>       SPDX-License-Identifier: BSD-2-Clause-Patent
> >>   @@ -105,6 +105,14 @@ typedef struct CmAStdObjAcpiTableInfo {
> >>     /// Generators shall populate this information using the revision
> >> of the
> >>     /// Configuration Manager
> >> (CM_STD_OBJ_CONFIGURATION_MANAGER_INFO.Revision).
> >>     UINT32    OemRevision;
> >> +
> >> +  /// The minor revision of an ACPI table if required by the table.
> >> +  /// Note: If this field is not populated (has value of Zero), then
> >> the
> >> +  /// Generators shall populate this information based on the latest
> >> minor
> >> +  /// revision of the table that is supported by the generator.
> >> +  /// e.g. This field can be used to specify the minor revision to
> >> be set
> >> +  /// for the FADT table.
> >> +  UINT8     MinorRevision;
> >>   } CM_STD_OBJ_ACPI_TABLE_INFO;
> >>     /** A structure used to describe the SMBIOS table generators to
> >> be invoked.
> >> diff --git
> >> a/DynamicTablesPkg/Library/Acpi/Arm/AcpiFadtLibArm/FadtGenerator.c
> >> b/DynamicTablesPkg/Library/Acpi/Arm/AcpiFadtLibArm/FadtGenerator.c
> >> index
> >> 96295f539fb0505378e862edeef898be40257cdd..1d10ea55e2395c55291faa3c247e5c59e345650c
> >> 100644
> >> --- a/DynamicTablesPkg/Library/Acpi/Arm/AcpiFadtLibArm/FadtGenerator.c
> >> +++ b/DynamicTablesPkg/Library/Acpi/Arm/AcpiFadtLibArm/FadtGenerator.c
> >> @@ -1,7 +1,7 @@
> >>   /** @file
> >>     FADT Table Generator
> >>   -  Copyright (c) 2017 - 2021, ARM Limited. All rights reserved.
> >> +  Copyright (c) 2017 - 2022, Arm Limited. All rights reserved.
> >>     SPDX-License-Identifier: BSD-2-Clause-Patent
> >>       @par Reference(s):
> >> @@ -167,7 +167,7 @@ EFI_ACPI_6_4_FIXED_ACPI_DESCRIPTION_TABLE
> >> AcpiFadt = {
> >>     // UINT16     ArmBootArch
> >>     EFI_ACPI_6_4_ARM_PSCI_COMPLIANT,  // {Template}: ARM Boot
> >> Architecture Flags
> >>     // UINT8      MinorRevision
> >> -  EFI_ACPI_6_4_FIXED_ACPI_DESCRIPTION_TABLE_MINOR_REVISION,
> >> +  EFI_ACPI_6_4_FIXED_ACPI_DESCRIPTION_TABLE_MINOR_REVISION, //
> >> {Template}
> >>     // UINT64     XFirmwareCtrl
> >>     0,
> >>     // UINT64     XDsdt
> >> @@ -546,6 +546,31 @@ BuildFadtTable (
> >>       goto error_handler;
> >>     }
> >>   +  // Update the MinorRevision for the FADT table if it has been
> >> specified
> >> +  // otherwise default to the latest FADT minor revision supported.
> >> +  // Note:
> >> +  // Bits 0-3 - The low order bits correspond to the minor version
> >> of the
> >> +  //            specification version.
> >> +  // Bits 4-7 - The high order bits correspond to the version of the
> >> ACPI
> >> +  //            specification errata.
> >> +  if (AcpiTableInfo->MinorRevision != 0) {
> >> +    if (((AcpiTableInfo->MinorRevision & 0xF) >=
> >> + EFI_ACPI_6_2_FIXED_ACPI_DESCRIPTION_TABLE_MINOR_REVISION) &&
> >> +        ((AcpiTableInfo->MinorRevision & 0xF) <=
> >> + EFI_ACPI_6_4_FIXED_ACPI_DESCRIPTION_TABLE_MINOR_REVISION))
> >> +    {
> >> +      AcpiFadt.MinorVersion = AcpiTableInfo->MinorRevision;
> >> +    } else {
> >> +      DEBUG ((
> >> +        DEBUG_WARN,
> >> +        "WARNING: FADT: Unsupported FADT Minor Revision 0x%x
> >> specified, " \
> >> +        "defaulting to FADT Minor Revision 0x%x\n",
> >> +        AcpiTableInfo->MinorRevision,
> >> + EFI_ACPI_6_4_FIXED_ACPI_DESCRIPTION_TABLE_MINOR_REVISION
> >> +        ));
> >> +    }
> >> +  }
> >> +
> >>     // Update PmProfile Info
> >>     Status = FadtAddPmProfileInfo (CfgMgrProtocol);
> >>     if (EFI_ERROR (Status)) {
>
>
> 
>
>

      reply	other threads:[~2022-07-11 11:24 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-06 11:40 [PATCH v1 1/1] DynamicTablesPkg: Add support to specify FADT minor revision Sami Mujawar
2022-07-06 15:03 ` PierreGondois
2022-07-06 15:27   ` Sami Mujawar
2022-07-11 11:23     ` Jagadeesh Ujja [this message]

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-list 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='CADpYukYhDm0+eybAF7kZS=fC7nz96Gqy7E-8kGOfLv8tJ1SB5w@mail.gmail.com' \
    --to=devel@edk2.groups.io \
    /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