mirror of https://github.com/acidanthera/audk.git
DynamicTablesPkg: AML Code generation for word I/O ranges
Add helper functions to generate AML resource data for word I/O. Cc: Pierre Gondois <pierre.gondois@arm.com> Cc: Sami Mujawar <sami.mujawar@arm.com> Signed-off-by: Abdul Lateef Attar <AbdulLateef.Attar@amd.com> Reviewed-by: Pierre Gondois <pierre.gondois@arm.com> Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
This commit is contained in:
parent
5d533bbc27
commit
ea65643547
|
@ -2,6 +2,7 @@
|
|||
AML Lib.
|
||||
|
||||
Copyright (c) 2019 - 2021, Arm Limited. All rights reserved.<BR>
|
||||
Copyright (C) 2023 Advanced Micro Devices, Inc. All rights reserved.<BR>
|
||||
|
||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
**/
|
||||
|
@ -724,6 +725,70 @@ AmlCodeGenRdWordBusNumber (
|
|||
OUT AML_DATA_NODE_HANDLE *NewRdNode OPTIONAL
|
||||
);
|
||||
|
||||
/** Code generation for the "WordIO ()" ASL function.
|
||||
|
||||
The Resource Data effectively created is a Word Address Space Resource
|
||||
Data. Cf ACPI 6.5:
|
||||
- s6.4.3.5.3 "Word Address Space Descriptor".
|
||||
|
||||
The created resource data node can be:
|
||||
- appended to the list of resource data elements of the NameOpNode.
|
||||
In such case NameOpNode must be defined by a the "Name ()" ASL statement
|
||||
and initially contain a "ResourceTemplate ()".
|
||||
- returned through the NewRdNode parameter.
|
||||
|
||||
@param [in] IsResourceConsumer ResourceUsage parameter.
|
||||
@param [in] IsMinFixed Minimum address is fixed.
|
||||
@param [in] IsMaxFixed Maximum address is fixed.
|
||||
@param [in] IsPosDecode Decode parameter
|
||||
@param [in] IsaRanges Possible values are:
|
||||
0-Reserved
|
||||
1-NonISAOnly
|
||||
2-ISAOnly
|
||||
3-EntireRange
|
||||
@param [in] AddressGranularity Address granularity.
|
||||
@param [in] AddressMinimum Minimum address.
|
||||
@param [in] AddressMaximum Maximum address.
|
||||
@param [in] AddressTranslation Address translation.
|
||||
@param [in] RangeLength Range length.
|
||||
@param [in] ResourceSourceIndex Resource Source index.
|
||||
Not supported. Must be 0.
|
||||
@param [in] ResourceSource Resource Source.
|
||||
Not supported. Must be NULL.
|
||||
@param [in] IsDenseTranslation TranslationDensity parameter.
|
||||
@param [in] IsTypeStatic TranslationType parameter.
|
||||
@param [in] NameOpNode NameOp object node defining a named object.
|
||||
If provided, append the new resource data
|
||||
node to the list of resource data elements
|
||||
of this node.
|
||||
@param [out] NewRdNode If provided and success,
|
||||
contain the created node.
|
||||
|
||||
@retval EFI_SUCCESS The function completed successfully.
|
||||
@retval EFI_INVALID_PARAMETER Invalid parameter.
|
||||
@retval EFI_OUT_OF_RESOURCES Could not allocate memory.
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
AmlCodeGenRdWordIo (
|
||||
IN BOOLEAN IsResourceConsumer,
|
||||
IN BOOLEAN IsMinFixed,
|
||||
IN BOOLEAN IsMaxFixed,
|
||||
IN BOOLEAN IsPosDecode,
|
||||
IN UINT8 IsaRanges,
|
||||
IN UINT16 AddressGranularity,
|
||||
IN UINT16 AddressMinimum,
|
||||
IN UINT16 AddressMaximum,
|
||||
IN UINT16 AddressTranslation,
|
||||
IN UINT16 RangeLength,
|
||||
IN UINT8 ResourceSourceIndex,
|
||||
IN CONST CHAR8 *ResourceSource,
|
||||
IN BOOLEAN IsDenseTranslation,
|
||||
IN BOOLEAN IsTypeStatic,
|
||||
IN AML_OBJECT_NODE_HANDLE NameOpNode, OPTIONAL
|
||||
OUT AML_DATA_NODE_HANDLE *NewRdNode OPTIONAL
|
||||
);
|
||||
|
||||
/** Code generation for the "QWordIO ()" ASL function.
|
||||
|
||||
The Resource Data effectively created is a QWord Address Space Resource
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
AML Resource Data Code Generation.
|
||||
|
||||
Copyright (c) 2020 - 2021, Arm Limited. All rights reserved.<BR>
|
||||
Copyright (C) 2023 Advanced Micro Devices, Inc. All rights reserved.<BR>
|
||||
|
||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
|
||||
|
@ -878,6 +879,93 @@ AmlCodeGenRdWordBusNumber (
|
|||
);
|
||||
}
|
||||
|
||||
/** Code generation for the "WordIO ()" ASL function.
|
||||
|
||||
The Resource Data effectively created is a Word Address Space Resource
|
||||
Data. Cf ACPI 6.5:
|
||||
- s6.4.3.5.3 "Word Address Space Descriptor".
|
||||
|
||||
The created resource data node can be:
|
||||
- appended to the list of resource data elements of the NameOpNode.
|
||||
In such case NameOpNode must be defined by a the "Name ()" ASL statement
|
||||
and initially contain a "ResourceTemplate ()".
|
||||
- returned through the NewRdNode parameter.
|
||||
|
||||
@param [in] IsResourceConsumer ResourceUsage parameter.
|
||||
@param [in] IsMinFixed Minimum address is fixed.
|
||||
@param [in] IsMaxFixed Maximum address is fixed.
|
||||
@param [in] IsPosDecode Decode parameter
|
||||
@param [in] IsaRanges Possible values are:
|
||||
0-Reserved
|
||||
1-NonISAOnly
|
||||
2-ISAOnly
|
||||
3-EntireRange
|
||||
@param [in] AddressGranularity Address granularity.
|
||||
@param [in] AddressMinimum Minimum address.
|
||||
@param [in] AddressMaximum Maximum address.
|
||||
@param [in] AddressTranslation Address translation.
|
||||
@param [in] RangeLength Range length.
|
||||
@param [in] ResourceSourceIndex Resource Source index.
|
||||
Not supported. Must be 0.
|
||||
@param [in] ResourceSource Resource Source.
|
||||
Not supported. Must be NULL.
|
||||
@param [in] IsDenseTranslation TranslationDensity parameter.
|
||||
@param [in] IsTypeStatic TranslationType parameter.
|
||||
@param [in] NameOpNode NameOp object node defining a named object.
|
||||
If provided, append the new resource data
|
||||
node to the list of resource data elements
|
||||
of this node.
|
||||
@param [out] NewRdNode If provided and success,
|
||||
contain the created node.
|
||||
|
||||
@retval EFI_SUCCESS The function completed successfully.
|
||||
@retval EFI_INVALID_PARAMETER Invalid parameter.
|
||||
@retval EFI_OUT_OF_RESOURCES Could not allocate memory.
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
AmlCodeGenRdWordIo (
|
||||
IN BOOLEAN IsResourceConsumer,
|
||||
IN BOOLEAN IsMinFixed,
|
||||
IN BOOLEAN IsMaxFixed,
|
||||
IN BOOLEAN IsPosDecode,
|
||||
IN UINT8 IsaRanges,
|
||||
IN UINT16 AddressGranularity,
|
||||
IN UINT16 AddressMinimum,
|
||||
IN UINT16 AddressMaximum,
|
||||
IN UINT16 AddressTranslation,
|
||||
IN UINT16 RangeLength,
|
||||
IN UINT8 ResourceSourceIndex,
|
||||
IN CONST CHAR8 *ResourceSource,
|
||||
IN BOOLEAN IsDenseTranslation,
|
||||
IN BOOLEAN IsTypeStatic,
|
||||
IN AML_OBJECT_NODE_HANDLE NameOpNode, OPTIONAL
|
||||
OUT AML_DATA_NODE_HANDLE *NewRdNode OPTIONAL
|
||||
)
|
||||
{
|
||||
return AmlCodeGenRdWordSpace (
|
||||
ACPI_ADDRESS_SPACE_TYPE_IO,
|
||||
IsResourceConsumer,
|
||||
IsPosDecode,
|
||||
IsMinFixed,
|
||||
IsMaxFixed,
|
||||
RdIoRangeSpecificFlags (
|
||||
IsaRanges,
|
||||
IsDenseTranslation,
|
||||
IsTypeStatic
|
||||
),
|
||||
AddressGranularity,
|
||||
AddressMinimum,
|
||||
AddressMaximum,
|
||||
AddressTranslation,
|
||||
RangeLength,
|
||||
ResourceSourceIndex,
|
||||
ResourceSource,
|
||||
NameOpNode,
|
||||
NewRdNode
|
||||
);
|
||||
}
|
||||
|
||||
/** Code generation for the "QWordSpace ()" ASL function.
|
||||
|
||||
The Resource Data effectively created is a QWord Address Space Resource
|
||||
|
|
Loading…
Reference in New Issue