mirror of https://github.com/acidanthera/audk.git
DynamicTablesPkg: Add Memory32Fixed function
Add a Memory32Fixed function to generate code for the corresponding Memory32Fixed macro in AML. Signed-off-by: Rebecca Cran <quic_rcran@quicinc.com> Reviewed-by: Pierre Gondois <pierre.gondois@arm.com> Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
This commit is contained in:
parent
017564d637
commit
45b1612659
|
@ -592,6 +592,39 @@ AmlCodeGenRdDWordMemory (
|
|||
OUT AML_DATA_NODE_HANDLE *NewRdNode OPTIONAL
|
||||
);
|
||||
|
||||
/** Code generation for the "Memory32Fixed ()" ASL macro.
|
||||
|
||||
The Resource Data effectively created is a 32-bit Memory Resource
|
||||
Data. Cf ACPI 6.4:
|
||||
- s19.6.83 "Memory Resource Descriptor Macro".
|
||||
- s19.2.8 "Memory32FixedTerm".
|
||||
|
||||
See ACPI 6.4 spec, s19.2.8 for more.
|
||||
|
||||
@param [in] IsReadWrite ReadAndWrite parameter.
|
||||
@param [in] Address AddressBase parameter.
|
||||
@param [in] RangeLength Range length.
|
||||
@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] NewMemNode 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
|
||||
AmlCodeGenRdMemory32Fixed (
|
||||
BOOLEAN IsReadWrite,
|
||||
UINT32 Address,
|
||||
UINT32 RangeLength,
|
||||
AML_OBJECT_NODE_HANDLE NameOpNode,
|
||||
AML_DATA_NODE_HANDLE *NewMemNode
|
||||
);
|
||||
|
||||
/** Code generation for the "WordBusNumber ()" ASL function.
|
||||
|
||||
The Resource Data effectively created is a Word Address Space Resource
|
||||
|
|
|
@ -609,6 +609,64 @@ AmlCodeGenRdDWordMemory (
|
|||
);
|
||||
}
|
||||
|
||||
/** Code generation for the "Memory32Fixed ()" ASL macro.
|
||||
|
||||
The Resource Data effectively created is a 32-bit Memory Resource
|
||||
Data. Cf ACPI 6.4:
|
||||
- s19.6.83 "Memory Resource Descriptor Macro".
|
||||
- s19.2.8 "Memory32FixedTerm".
|
||||
|
||||
See ACPI 6.4 spec, s19.2.8 for more.
|
||||
|
||||
@param [in] IsReadWrite ReadAndWrite parameter.
|
||||
@param [in] Addres AddressBase parameter.
|
||||
@param [in] RangeLength Range length.
|
||||
@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] NewMemNode 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
|
||||
AmlCodeGenRdMemory32Fixed (
|
||||
BOOLEAN IsReadWrite,
|
||||
UINT32 Address,
|
||||
UINT32 RangeLength,
|
||||
AML_OBJECT_NODE_HANDLE NameOpNode,
|
||||
AML_DATA_NODE_HANDLE *NewMemNode
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
AML_DATA_NODE *MemNode;
|
||||
EFI_ACPI_32_BIT_FIXED_MEMORY_RANGE_DESCRIPTOR RangeDesc;
|
||||
|
||||
RangeDesc.Header.Header.Byte = ACPI_32_BIT_FIXED_MEMORY_RANGE_DESCRIPTOR;
|
||||
RangeDesc.Header.Length = sizeof (EFI_ACPI_32_BIT_FIXED_MEMORY_RANGE_DESCRIPTOR) -
|
||||
sizeof (ACPI_LARGE_RESOURCE_HEADER);
|
||||
RangeDesc.Information = IsReadWrite ? BIT0 : 0;
|
||||
RangeDesc.BaseAddress = Address;
|
||||
RangeDesc.Length = RangeLength;
|
||||
|
||||
Status = AmlCreateDataNode (
|
||||
EAmlNodeDataTypeResourceData,
|
||||
(UINT8 *)&RangeDesc,
|
||||
sizeof (RangeDesc),
|
||||
&MemNode
|
||||
);
|
||||
if (EFI_ERROR (Status)) {
|
||||
ASSERT (0);
|
||||
return Status;
|
||||
}
|
||||
|
||||
return LinkRdNode (MemNode, NameOpNode, NewMemNode);
|
||||
}
|
||||
|
||||
/** Code generation for the "WordSpace ()" ASL function.
|
||||
|
||||
The Resource Data effectively created is a Word Address Space Resource
|
||||
|
|
Loading…
Reference in New Issue