Re: [edk2-devel] [PATCH 1/1] DynamicTablesPkg/AmlLib: Define an enum for IsaRanges
On Fri, Sep 22, 2023 at 16:18:17 +0200, PierreGondois wrote: > From: Pierre Gondois > > The IsaRange parameter in: > - AmlCodeGenRdDWordIo() > - AmlCodeGenRdQWordIo() > is an hard-coded value. Define an enum for IsarRanges > and use it. > > Suggested-by: Leif Lindholm > Signed-off-by: Pierre Gondois Thanks for this! Reviewed-by: Leif Lindholm > --- > .../Include/Library/AmlLib/AmlLib.h | 28 +++ > .../AcpiSsdtPcieLibArm/SsdtPcieGenerator.c| 2 +- > .../AmlLib/CodeGen/AmlResourceDataCodeGen.c | 28 +++ > 3 files changed, 27 insertions(+), 31 deletions(-) > > diff --git a/DynamicTablesPkg/Include/Library/AmlLib/AmlLib.h > b/DynamicTablesPkg/Include/Library/AmlLib/AmlLib.h > index 8e24cecdd77b..ce81f5876681 100644 > --- a/DynamicTablesPkg/Include/Library/AmlLib/AmlLib.h > +++ b/DynamicTablesPkg/Include/Library/AmlLib/AmlLib.h > @@ -59,6 +59,18 @@ typedef void *AML_DATA_NODE_HANDLE; > > #endif // AML_HANDLE > > +/** Enum for ISA Ranges. > + > + See ACPI 6.4 spec, s19.6.34 for more. > +*/ > +typedef enum { > + EAmlIsaRangeReserved = 0, ///< Reserved. > + EAmlIsaRangeNonIsaOnly, ///< NonIsaOnly. > + EAmlIsaRangeIsaOnly,///< IsaOnly. > + EAmlIsaRangeEntireRange,///< EntireRange. > + EAmlIsaRangeMax,///< Max. > +} EAML_ISA_RANGE; > + > /** Parse the definition block. > >The function parses the whole AML blob. It starts with the ACPI DSDT/SSDT > @@ -471,11 +483,7 @@ AmlUpdateRdQWord ( >@param [in] IsMinFixed Minimum address is fixed. >@param [in] IsMaxFixed Maximum address is fixed. >@param [in] IsPosDecode Decode parameter > - @param [in] IsaRangesPossible values are: > - 0-Reserved > - 1-NonISAOnly > - 2-ISAOnly > - 3-EntireRange > + @param [in] IsaRangesIsa Range. >@param [in] AddressGranularity Address granularity. >@param [in] AddressMinimum Minimum address. >@param [in] AddressMaximum Maximum address. > @@ -505,7 +513,7 @@ AmlCodeGenRdDWordIo ( >INBOOLEAN IsMinFixed, >INBOOLEAN IsMaxFixed, >INBOOLEAN IsPosDecode, > - INUINT8 IsaRanges, > + INEAML_ISA_RANGE IsaRanges, >INUINT32 AddressGranularity, >INUINT32 AddressMinimum, >INUINT32 AddressMaximum, > @@ -702,11 +710,7 @@ AmlCodeGenRdWordBusNumber ( >@param [in] IsMinFixed Minimum address is fixed. >@param [in] IsMaxFixed Maximum address is fixed. >@param [in] IsPosDecode Decode parameter > - @param [in] IsaRangesPossible values are: > - 0-Reserved > - 1-NonISAOnly > - 2-ISAOnly > - 3-EntireRange > + @param [in] IsaRangesIsa Range. >@param [in] AddressGranularity Address granularity. >@param [in] AddressMinimum Minimum address. >@param [in] AddressMaximum Maximum address. > @@ -736,7 +740,7 @@ AmlCodeGenRdQWordIo ( >INBOOLEAN IsMinFixed, >INBOOLEAN IsMaxFixed, >INBOOLEAN IsPosDecode, > - INUINT8 IsaRanges, > + INEAML_ISA_RANGE IsaRanges, >INUINT64 AddressGranularity, >INUINT64 AddressMinimum, >INUINT64 AddressMaximum, > diff --git > a/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieGenerator.c > b/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieGenerator.c > index 9ddaddc198fa..87b426ccfe07 100644 > --- a/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieGenerator.c > +++ b/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieGenerator.c > @@ -545,7 +545,7 @@ GeneratePciCrs ( > TRUE, > TRUE, > IsPosDecode, > - 3, > + EAmlIsaRangeEntireRange, > 0, > AddrMapInfo->PciAddress, > AddrMapInfo->PciAddress + AddrMapInfo->AddressSize - 1, > diff --git > a/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlResourceDataCodeGen.c > b/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlResourceDataCodeGen.c > index 9c6700b9e08c..707e8182b4c0 100644 > --- a/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlResourceDataCodeGen.c > +++ b/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlResourceDataCodeGen.c > @@ -121,13 +121,13 @@ STATIC > UINT8 > EFIAPI > RdIoRangeSpecificFlags ( > - IN UINT8IsaRanges, > - IN BOOLEAN IsDenseTranslation, > - IN BOOLEAN IsTypeStatic > + IN EAML_ISA_RANGE IsaRanges, > + IN BOOLEAN IsDenseTranslation, > + IN BOOLEAN IsTypeStatic >) > { >
Re: [edk2-devel] [PATCH 1/1] DynamicTablesPkg/AmlLib: Define an enum for IsaRanges
Reviewed-by: Jeff Brasen > -Original Message- > From: pierre.gond...@arm.com > Sent: Friday, September 22, 2023 8:18 AM > To: devel@edk2.groups.io > Cc: Sami Mujawar ; Leif Lindholm > ; Jeff Brasen > Subject: [PATCH 1/1] DynamicTablesPkg/AmlLib: Define an enum for > IsaRanges > > External email: Use caution opening links or attachments > > > From: Pierre Gondois > > The IsaRange parameter in: > - AmlCodeGenRdDWordIo() > - AmlCodeGenRdQWordIo() > is an hard-coded value. Define an enum for IsarRanges and use it. > > Suggested-by: Leif Lindholm > Signed-off-by: Pierre Gondois > --- > .../Include/Library/AmlLib/AmlLib.h | 28 +++ > .../AcpiSsdtPcieLibArm/SsdtPcieGenerator.c| 2 +- > .../AmlLib/CodeGen/AmlResourceDataCodeGen.c | 28 +++ > 3 files changed, 27 insertions(+), 31 deletions(-) > > diff --git a/DynamicTablesPkg/Include/Library/AmlLib/AmlLib.h > b/DynamicTablesPkg/Include/Library/AmlLib/AmlLib.h > index 8e24cecdd77b..ce81f5876681 100644 > --- a/DynamicTablesPkg/Include/Library/AmlLib/AmlLib.h > +++ b/DynamicTablesPkg/Include/Library/AmlLib/AmlLib.h > @@ -59,6 +59,18 @@ typedef void *AML_DATA_NODE_HANDLE; > > #endif // AML_HANDLE > > +/** Enum for ISA Ranges. > + > + See ACPI 6.4 spec, s19.6.34 for more. > +*/ > +typedef enum { > + EAmlIsaRangeReserved = 0, ///< Reserved. > + EAmlIsaRangeNonIsaOnly, ///< NonIsaOnly. > + EAmlIsaRangeIsaOnly,///< IsaOnly. > + EAmlIsaRangeEntireRange,///< EntireRange. > + EAmlIsaRangeMax,///< Max. > +} EAML_ISA_RANGE; > + > /** Parse the definition block. > >The function parses the whole AML blob. It starts with the ACPI DSDT/SSDT > @@ -471,11 +483,7 @@ AmlUpdateRdQWord ( >@param [in] IsMinFixed Minimum address is fixed. >@param [in] IsMaxFixed Maximum address is fixed. >@param [in] IsPosDecode Decode parameter > - @param [in] IsaRangesPossible values are: > - 0-Reserved > - 1-NonISAOnly > - 2-ISAOnly > - 3-EntireRange > + @param [in] IsaRangesIsa Range. >@param [in] AddressGranularity Address granularity. >@param [in] AddressMinimum Minimum address. >@param [in] AddressMaximum Maximum address. > @@ -505,7 +513,7 @@ AmlCodeGenRdDWordIo ( >INBOOLEAN IsMinFixed, >INBOOLEAN IsMaxFixed, >INBOOLEAN IsPosDecode, > - INUINT8 IsaRanges, > + INEAML_ISA_RANGE IsaRanges, >INUINT32 AddressGranularity, >INUINT32 AddressMinimum, >INUINT32 AddressMaximum, > @@ -702,11 +710,7 @@ AmlCodeGenRdWordBusNumber ( >@param [in] IsMinFixed Minimum address is fixed. >@param [in] IsMaxFixed Maximum address is fixed. >@param [in] IsPosDecode Decode parameter > - @param [in] IsaRangesPossible values are: > - 0-Reserved > - 1-NonISAOnly > - 2-ISAOnly > - 3-EntireRange > + @param [in] IsaRangesIsa Range. >@param [in] AddressGranularity Address granularity. >@param [in] AddressMinimum Minimum address. >@param [in] AddressMaximum Maximum address. > @@ -736,7 +740,7 @@ AmlCodeGenRdQWordIo ( >INBOOLEAN IsMinFixed, >INBOOLEAN IsMaxFixed, >INBOOLEAN IsPosDecode, > - INUINT8 IsaRanges, > + INEAML_ISA_RANGE IsaRanges, >INUINT64 AddressGranularity, >INUINT64 AddressMinimum, >INUINT64 AddressMaximum, > diff --git > a/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieGenera > tor.c > b/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieGenera > tor.c > index 9ddaddc198fa..87b426ccfe07 100644 > --- > a/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieGenera > tor.c > +++ > b/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieGener > +++ ator.c > @@ -545,7 +545,7 @@ GeneratePciCrs ( > TRUE, > TRUE, > IsPosDecode, > - 3, > + EAmlIsaRangeEntireRange, > 0, > AddrMapInfo->PciAddress, > AddrMapInfo->PciAddress + AddrMapInfo->AddressSize - 1, > diff -- > git > a/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlResourceDataC > odeGen.c > b/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlResourceDataC > odeGen.c > index 9c6700b9e08c..707e8182b4c0 100644 > --- > a/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlResourceDataC > odeGen.c > +++ > b/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlResourceDataC > ode > +++ Gen.c > @@ -121,13 +121,13 @@ STA
[edk2-devel] [PATCH 1/1] DynamicTablesPkg/AmlLib: Define an enum for IsaRanges
From: Pierre Gondois The IsaRange parameter in: - AmlCodeGenRdDWordIo() - AmlCodeGenRdQWordIo() is an hard-coded value. Define an enum for IsarRanges and use it. Suggested-by: Leif Lindholm Signed-off-by: Pierre Gondois --- .../Include/Library/AmlLib/AmlLib.h | 28 +++ .../AcpiSsdtPcieLibArm/SsdtPcieGenerator.c| 2 +- .../AmlLib/CodeGen/AmlResourceDataCodeGen.c | 28 +++ 3 files changed, 27 insertions(+), 31 deletions(-) diff --git a/DynamicTablesPkg/Include/Library/AmlLib/AmlLib.h b/DynamicTablesPkg/Include/Library/AmlLib/AmlLib.h index 8e24cecdd77b..ce81f5876681 100644 --- a/DynamicTablesPkg/Include/Library/AmlLib/AmlLib.h +++ b/DynamicTablesPkg/Include/Library/AmlLib/AmlLib.h @@ -59,6 +59,18 @@ typedef void *AML_DATA_NODE_HANDLE; #endif // AML_HANDLE +/** Enum for ISA Ranges. + + See ACPI 6.4 spec, s19.6.34 for more. +*/ +typedef enum { + EAmlIsaRangeReserved = 0, ///< Reserved. + EAmlIsaRangeNonIsaOnly, ///< NonIsaOnly. + EAmlIsaRangeIsaOnly,///< IsaOnly. + EAmlIsaRangeEntireRange,///< EntireRange. + EAmlIsaRangeMax,///< Max. +} EAML_ISA_RANGE; + /** Parse the definition block. The function parses the whole AML blob. It starts with the ACPI DSDT/SSDT @@ -471,11 +483,7 @@ AmlUpdateRdQWord ( @param [in] IsMinFixed Minimum address is fixed. @param [in] IsMaxFixed Maximum address is fixed. @param [in] IsPosDecode Decode parameter - @param [in] IsaRangesPossible values are: - 0-Reserved - 1-NonISAOnly - 2-ISAOnly - 3-EntireRange + @param [in] IsaRangesIsa Range. @param [in] AddressGranularity Address granularity. @param [in] AddressMinimum Minimum address. @param [in] AddressMaximum Maximum address. @@ -505,7 +513,7 @@ AmlCodeGenRdDWordIo ( INBOOLEAN IsMinFixed, INBOOLEAN IsMaxFixed, INBOOLEAN IsPosDecode, - INUINT8 IsaRanges, + INEAML_ISA_RANGE IsaRanges, INUINT32 AddressGranularity, INUINT32 AddressMinimum, INUINT32 AddressMaximum, @@ -702,11 +710,7 @@ AmlCodeGenRdWordBusNumber ( @param [in] IsMinFixed Minimum address is fixed. @param [in] IsMaxFixed Maximum address is fixed. @param [in] IsPosDecode Decode parameter - @param [in] IsaRangesPossible values are: - 0-Reserved - 1-NonISAOnly - 2-ISAOnly - 3-EntireRange + @param [in] IsaRangesIsa Range. @param [in] AddressGranularity Address granularity. @param [in] AddressMinimum Minimum address. @param [in] AddressMaximum Maximum address. @@ -736,7 +740,7 @@ AmlCodeGenRdQWordIo ( INBOOLEAN IsMinFixed, INBOOLEAN IsMaxFixed, INBOOLEAN IsPosDecode, - INUINT8 IsaRanges, + INEAML_ISA_RANGE IsaRanges, INUINT64 AddressGranularity, INUINT64 AddressMinimum, INUINT64 AddressMaximum, diff --git a/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieGenerator.c b/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieGenerator.c index 9ddaddc198fa..87b426ccfe07 100644 --- a/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieGenerator.c +++ b/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieGenerator.c @@ -545,7 +545,7 @@ GeneratePciCrs ( TRUE, TRUE, IsPosDecode, - 3, + EAmlIsaRangeEntireRange, 0, AddrMapInfo->PciAddress, AddrMapInfo->PciAddress + AddrMapInfo->AddressSize - 1, diff --git a/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlResourceDataCodeGen.c b/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlResourceDataCodeGen.c index 9c6700b9e08c..707e8182b4c0 100644 --- a/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlResourceDataCodeGen.c +++ b/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlResourceDataCodeGen.c @@ -121,13 +121,13 @@ STATIC UINT8 EFIAPI RdIoRangeSpecificFlags ( - IN UINT8IsaRanges, - IN BOOLEAN IsDenseTranslation, - IN BOOLEAN IsTypeStatic + IN EAML_ISA_RANGE IsaRanges, + IN BOOLEAN IsDenseTranslation, + IN BOOLEAN IsTypeStatic ) { // Only check type specific parameters. - if (IsaRanges > 3) { + if (IsaRanges >= EAmlIsaRangeMax) { ASSERT (0); return MAX_UINT8; } @@ -440,20 +440,16 @@ AmlCodeGenRdDWordSpace ( @param [in] IsMinFixed Minimum address is fixed. @param [in] IsMaxFixed Maximum address is fixed. @param [in] IsPosDec