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.
|
AML Lib.
|
||||||
|
|
||||||
Copyright (c) 2019 - 2021, Arm Limited. All rights reserved.<BR>
|
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
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||||
**/
|
**/
|
||||||
|
@ -724,6 +725,70 @@ AmlCodeGenRdWordBusNumber (
|
||||||
OUT AML_DATA_NODE_HANDLE *NewRdNode OPTIONAL
|
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.
|
/** Code generation for the "QWordIO ()" ASL function.
|
||||||
|
|
||||||
The Resource Data effectively created is a QWord Address Space Resource
|
The Resource Data effectively created is a QWord Address Space Resource
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
AML Resource Data Code Generation.
|
AML Resource Data Code Generation.
|
||||||
|
|
||||||
Copyright (c) 2020 - 2021, Arm Limited. All rights reserved.<BR>
|
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
|
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.
|
/** Code generation for the "QWordSpace ()" ASL function.
|
||||||
|
|
||||||
The Resource Data effectively created is a QWord Address Space Resource
|
The Resource Data effectively created is a QWord Address Space Resource
|
||||||
|
|
Loading…
Reference in New Issue