Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DynamicTablesPkg/AmlLib: Enumerate memory attributes #48

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 45 additions & 4 deletions DynamicTablesPkg/Include/Library/AmlLib/AmlLib.h
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,47 @@ typedef void *AML_DATA_NODE_HANDLE;

#endif // AML_HANDLE

/** Memory attributes, _MEM (2 bits)

Possible values are:
0-The memory is non-cacheable
1-The memory is cacheable (DEPRECATED)
2-The memory is cacheable and supports
write combining (DEPRECATED)
3-The memory is cacheable and prefetchable

@par Reference(s):
- ACPI 6.5, s6.4.3.5.5 "Resource Type Specific Flags"

**/
typedef enum {
AmlMemoryNonCacheable = 0,
AmlMemoryCacheable = 1,
AmlMemoryCacheableWriteCombine = 2,
AmlMemoryCacheablePrefetch = 3,
AmlMemoryCacheablityMax = 4
} AML_MEMORY_ATTRIBUTES_MEM;

/** Memory attributes, _MTP (2 bits)

Possible values are:
0-AddressRangeMemory
1-AddressRangeReserved
2-AddressRangeACPI
3-AddressRangeNVS

@par Reference(s):
- ACPI 6.5, s6.4.3.5.5 "Resource Type Specific Flags"

**/
typedef enum {
AmlAddressRangeMemory = 0,
AmlAddressRangeReserved = 1,
AmlAddressRangeACPI = 2,
AmlAddressRangeNVS = 3,
AmlAddressRangeMax = 4
} AML_MEMORY_ATTRIBUTES_MTP;

/** Parse the definition block.

The function parses the whole AML blob. It starts with the ACPI DSDT/SSDT
Expand Down Expand Up @@ -578,7 +619,7 @@ AmlCodeGenRdDWordMemory (
IN BOOLEAN IsPosDecode,
IN BOOLEAN IsMinFixed,
IN BOOLEAN IsMaxFixed,
IN UINT8 Cacheable,
IN AML_MEMORY_ATTRIBUTES_MEM Cacheable,
IN BOOLEAN IsReadWrite,
IN UINT32 AddressGranularity,
IN UINT32 AddressMinimum,
Expand All @@ -587,7 +628,7 @@ AmlCodeGenRdDWordMemory (
IN UINT32 RangeLength,
IN UINT8 ResourceSourceIndex,
IN CONST CHAR8 *ResourceSource,
IN UINT8 MemoryRangeType,
IN AML_MEMORY_ATTRIBUTES_MTP MemoryRangeType,
IN BOOLEAN IsTypeStatic,
IN AML_OBJECT_NODE_HANDLE NameOpNode, OPTIONAL
OUT AML_DATA_NODE_HANDLE *NewRdNode OPTIONAL
Expand Down Expand Up @@ -809,7 +850,7 @@ AmlCodeGenRdQWordMemory (
IN BOOLEAN IsPosDecode,
IN BOOLEAN IsMinFixed,
IN BOOLEAN IsMaxFixed,
IN UINT8 Cacheable,
IN AML_MEMORY_ATTRIBUTES_MEM Cacheable,
IN BOOLEAN IsReadWrite,
IN UINT64 AddressGranularity,
IN UINT64 AddressMinimum,
Expand All @@ -818,7 +859,7 @@ AmlCodeGenRdQWordMemory (
IN UINT64 RangeLength,
IN UINT8 ResourceSourceIndex,
IN CONST CHAR8 *ResourceSource,
IN UINT8 MemoryRangeType,
IN AML_MEMORY_ATTRIBUTES_MTP MemoryRangeType,
IN BOOLEAN IsTypeStatic,
IN AML_OBJECT_NODE_HANDLE NameOpNode, OPTIONAL
OUT AML_DATA_NODE_HANDLE *NewRdNode OPTIONAL
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -566,7 +566,7 @@ GeneratePciCrs (
IsPosDecode,
TRUE,
TRUE,
TRUE,
AmlMemoryCacheable,
TRUE,
0,
AddrMapInfo->PciAddress,
Expand All @@ -575,7 +575,7 @@ GeneratePciCrs (
AddrMapInfo->AddressSize,
0,
NULL,
0,
AmlAddressRangeMemory,
TRUE,
CrsNode,
NULL
Expand All @@ -588,7 +588,7 @@ GeneratePciCrs (
IsPosDecode,
TRUE,
TRUE,
TRUE,
AmlMemoryCacheable,
TRUE,
0,
AddrMapInfo->PciAddress,
Expand All @@ -597,7 +597,7 @@ GeneratePciCrs (
AddrMapInfo->AddressSize,
0,
NULL,
0,
AmlAddressRangeMemory,
TRUE,
CrsNode,
NULL
Expand Down Expand Up @@ -718,7 +718,7 @@ ReserveEcamSpace (
TRUE,
TRUE,
TRUE,
FALSE, // non-cacheable
AmlMemoryNonCacheable,
TRUE,
0,
AddressMinimum,
Expand All @@ -727,7 +727,7 @@ ReserveEcamSpace (
AddressMaximum - AddressMinimum + 1,
0,
NULL,
0,
AmlAddressRangeMemory,
TRUE,
CrsNode,
NULL
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -570,7 +570,7 @@ AmlCodeGenRdDWordMemory (
IN BOOLEAN IsPosDecode,
IN BOOLEAN IsMinFixed,
IN BOOLEAN IsMaxFixed,
IN UINT8 Cacheable,
IN AML_MEMORY_ATTRIBUTES_MEM Cacheable,
IN BOOLEAN IsReadWrite,
IN UINT32 AddressGranularity,
IN UINT32 AddressMinimum,
Expand All @@ -579,7 +579,7 @@ AmlCodeGenRdDWordMemory (
IN UINT32 RangeLength,
IN UINT8 ResourceSourceIndex,
IN CONST CHAR8 *ResourceSource,
IN UINT8 MemoryRangeType,
IN AML_MEMORY_ATTRIBUTES_MTP MemoryRangeType,
IN BOOLEAN IsTypeStatic,
IN AML_OBJECT_NODE_HANDLE NameOpNode, OPTIONAL
OUT AML_DATA_NODE_HANDLE *NewRdNode OPTIONAL
Expand Down Expand Up @@ -1161,7 +1161,7 @@ AmlCodeGenRdQWordMemory (
IN BOOLEAN IsPosDecode,
IN BOOLEAN IsMinFixed,
IN BOOLEAN IsMaxFixed,
IN UINT8 Cacheable,
IN AML_MEMORY_ATTRIBUTES_MEM Cacheable,
IN BOOLEAN IsReadWrite,
IN UINT64 AddressGranularity,
IN UINT64 AddressMinimum,
Expand All @@ -1170,7 +1170,7 @@ AmlCodeGenRdQWordMemory (
IN UINT64 RangeLength,
IN UINT8 ResourceSourceIndex,
IN CONST CHAR8 *ResourceSource,
IN UINT8 MemoryRangeType,
IN AML_MEMORY_ATTRIBUTES_MTP MemoryRangeType,
IN BOOLEAN IsTypeStatic,
IN AML_OBJECT_NODE_HANDLE NameOpNode, OPTIONAL
OUT AML_DATA_NODE_HANDLE *NewRdNode OPTIONAL
Expand Down