Note: Mixing of 24-bit and 32-bit memory descriptors on the same device is not allowed.
See section 18.5.73, “Memory32 (Memory Resource Descriptor Macro),” for a description of the ASL macro that creates a 32-bit Memory descriptor.
-
32-Bit Fixed Memory Range Descriptor
Type 1, Large Item Name 0x6
This memory range descriptor describes a device’s memory resources within a 32-bit address space.
Table 6-39 32-bit Fixed-Location Memory Range Descriptor Definition
Offset
|
Field Name
|
Definition
|
Byte 0
|
32-bit Fixed Memory Range Descriptor
|
Value = 0x86 (10000110B) – Type = 1, Large item name = 0x06
|
Byte 1
|
Length, bits[7:0]
|
Value = 0x09 (9)
|
Byte 2
|
Length, bits[15:8]
|
Value = 0x00
|
Byte 3
|
Information
|
This field provides extra information about this memory.
Bit[7:1] Ignored
Bit[0] Write status, _RW
1 writeable (read/write)
0 non-writeable (read-only))
|
Byte 4
|
Range base address, _BAS bits[7:0]
|
Address bits[7:0] of the base memory address for which the card may be configured.
|
Byte 5
|
Range base address, _BAS bits[15:8]
|
Address bits[15:8] of the base memory address for which the card may be configured.
|
Byte 6
|
Range base address, _BAS bits[23:16]
|
Address bits[23:16] of the base memory address for which the card may be configured.
|
Byte 7
|
Range base address, _BAS bits[31:24]
|
Address bits[31:24] of the base memory address for which the card may be configured.
|
Byte 8
|
Range length, _LEN bits[7:0]
|
This field contains Bits[7:0] of the memory range length. The range length provides the length of the memory range in 1-byte blocks.
|
Byte 9
|
Range length, _LEN bits[15:8]
|
This field contains Bits[15:8] of the memory range length. The range length provides the length of the memory range in 1-byte blocks.
|
Byte 10
|
Range length, _LEN bits[23:16]
|
This field contains Bits[23:16] of the memory range length. The range length provides the length of the memory range in 1-byte blocks.
|
Byte 11
|
Range length, _LEN bits[31:24]
|
This field contains Bits[31:24] of the memory range length. The range length provides the length of the memory range in 1-byte blocks.
|
Note: Mixing of 24-bit and 32-bit memory descriptors on the same device is not allowed.
See section 18.5.74, “Memory32Fixed (Memory Resource Descriptor),” for a description of the ASL macro that creates a 32-bit Fixed Memory descriptor.
-
Address Space Resource Descriptors
The QWORD, DWORD, WORD, and Extended Address Space Descriptors are general-purpose structures for describing a variety of types of resources. These resources also include support for advanced server architectures (such as multiple root buses), and resource types found on some RISC processors. These descriptors can describe various kinds of resources. The following table defines the valid combination of each field and how they should be interpreted.
Table 6-40 Valid combination of Address Space Descriptors fields
-
_LEN
|
_MIF
|
_MAF
|
Definition
|
0
|
0
|
0
|
Variable size, variable location resource descriptor for _PRS.
If _MIF is set, _MIN must be a multiple of (_GRA+1). If _MAF is set, _MAX must be (a multiple of (_GRA+1))-1.
OS can pick the resource range that satisfies following conditions:
-
If _MIF is not set, start address is a multiple of (_GRA+1) and greater or equal to _MIN. Otherwise, start address is _MIN.
-
If _MAF is not set, end address is (a multiple of (_GRA+1))-1 and less or equal to _MAX. Otherwise, end address is _MAX.
|
0
|
0
|
1
|
0
|
1
|
0
|
0
|
1
|
1
|
(Invalid combination)
|
> 0
|
0
|
0
|
Fixed size, variable location resource descriptor for _PRS.
_LEN must be a multiple of (_GRA+1).
OS can pick the resource range that satisfies following conditions:
-
Start address is a multiple of (_GRA+1) and greater or equal to _MIN.
-
End address is (start address+_LEN-1) and less or equal to _MAX.
|
> 0
|
0
|
1
|
(Invalid combination)
|
> 0
|
1
|
0
|
(Invalid combination)
|
> 0
|
1
|
1
|
Fixed size, fixed location resource descriptor.
_GRA must be 0 and _LEN must be (_MAX - _MIN +1).
| QWord Address Space Descriptor
Type 1, Large Item Name 0xA
The QWORD address space descriptor is used to report resource usage in a 64-bit address space (like memory and I/O).
Table 6-41 QWORD Address Space Descriptor Definition
Offset
|
Field Name
|
Definition
|
Byte 0
|
QWORD Address Space Descriptor
|
Value = 0x8A (10001010B) – Type = 1, Large item name = 0x0A
|
Byte 1
|
Length, bits[7:0]
|
Variable length, minimum value = 0x2B (43)
|
Byte 2
|
Length, bits[15:8]
|
Variable length, minimum value = 0x00
|
Byte 3
|
Resource Type
|
Indicates which type of resource this descriptor describes. Defined values are:
0 Memory range
1 I/O range
2 Bus number range
3–191 Reserved
192-255 Hardware Vendor Defined
|
Byte 4
|
General Flags
|
Flags that are common to all resource types:
Bits[7:4] Reserved (must be 0)
Bit[3] Max Address Fixed, _MAF:
1 The specified maximum address is fixed
0 The specified maximum address is not fixed
and can be changed
Bit[2] Min Address Fixed,_MIF:
1 The specified minimum address is fixed
0 The specified minimum address is not fixed
and can be changed
Bit[1] Decode Type, _DEC:
1 This bridge subtractively decodes this address
(top level bridges only)
0 This bridge positively decodes this address
Bit[0] Ignored
|
Byte 5
|
Type Specific Flags
|
Flags that are specific to each resource type. The meaning of the flags in this field depends on the value of the Resource Type field (see above).
|
Byte 6
|
Address space granularity, _GRA bits[7:0]
|
A set bit in this mask means that this bit is decoded. All bits less significant than the most significant set bit must be set. That is, the value of the full Address Space Granularity field (all 64 bits) must be a number (2n-1).
|
Byte 7
|
Address space granularity, _GRA bits[15:8]
|
|
Byte 8
|
Address space granularity, _GRA bits[23:16]
|
|
Byte 9
|
Address space granularity, _GRA bits[31:24]
|
|
Byte 10
|
Address space granularity, _GRA bits[39:32]
|
|
Byte 11
|
Address space granularity, _GRA bits[47:40]
|
|
Byte 12
|
Address space granularity, _GRA bits[55:48]
|
|
Byte 13
|
Address space granularity, _GRA bits[63:56]
|
|
Byte 14
|
Address range minimum, _MIN bits[7:0]
|
For bridges that translate addresses, this is the address space on the secondary side of the bridge.
|
Byte 15
|
Address range minimum, _MIN bits[15:8]
|
|
Byte 16
|
Address range minimum, _MIN bits[23:16]
|
|
Byte 17
|
Address range minimum, _MIN bits[31:24]
|
|
Byte 18
|
Address range minimum, _MIN bits[39:32]
|
|
Byte 19
|
Address range minimum, _MIN bits[47:40]
|
|
Byte 20
|
Address range minimum, _MIN bits[55:48]
|
|
Byte 21
|
Address range minimum, _MIN bits[63:56]
|
|
Byte 22
|
Address range maximum, _MAX bits[7:0]
|
For bridges that translate addresses, this is the address space on the secondary side of the bridge.
|
Byte 23
|
Address range maximum, _MAX bits[15:8]
|
|
Byte 24
|
Address range maximum, _MAX bits[23:16]
|
|
Byte 25
|
Address range maximum, _MAX bits[31:24]
|
|
Byte 26
|
Address range maximum, _MAX bits[39:32]
|
For bridges that translate addresses, this is the address space on the secondary side of the bridge.
|
Byte 27
|
Address range maximum, _MAX bits[47:40]
|
|
Byte 28
|
Address range maximum, _MAX bits[55:48]
|
|
Byte 29
|
Address range maximum, _MAX bits[63:56]
|
|
Byte 30
|
Address Translation offset, _TRA bits[7:0]
|
For bridges that translate addresses across the bridge, this is the offset that must be added to the address on the secondary side to obtain the address on the primary side. Non-bridge devices must list 0 for all Address Translation offset bits.
|
Byte 31
|
Address Translation offset, _TRA bits[15:8]
|
|
Byte 32
|
Address Translation offset, _TRA bits[23:16]
|
|
Byte 33
|
Address Translation offset, _TRA bits[31:24]
|
|
Byte 34
|
Address Translation offset, _TRA bits[39:32]
|
|
Byte 35
|
Address Translation offset, _TRA bits[47:40]
|
|
Byte 36
|
Address Translation offset, _TRA bits[55:48]
|
|
Byte 37
|
Address Translation offset, _TRA bits[63:56]
|
|
Byte 38
|
Address length, _LEN bits[7:0]
|
|
Byte 39
|
Address length, _LEN, bits[15:8]
|
|
Byte 40
|
Address length, _LEN bits[23:16]
|
|
Byte 41
|
Address length, _LEN bits[31:24]
|
|
Byte 42
|
Address length, _LEN bits[39:32]
|
|
Byte 43
|
Address length, _LEN bits[47:40]
|
|
Byte 44
|
Address length, _LEN bits[55:48]
|
|
Byte 45
|
Address length, _LEN bits[63:56]
|
|
Byte 46
|
Resource Source Index
|
(Optional) Only present if Resource Source (below) is present. This field gives an index to the specific resource descriptor that this device consumes from in the current resource template for the device object pointed to in Resource Source.
|
String
|
Resource Source
|
(Optional) If present, the device that uses this descriptor consumes its resources from the resources produced by the named device object. If not present, the device consumes its resources out of a global pool. If not present, the device consumes this resource from its hierarchical parent.
|
See QWordIO (page 538), QWordMemory (page 539) and ASL_QWordAddressSpace for a description of the ASL macros that creates a QWORD Address Space descriptor.
-
DWord Address Space Descriptor
Type 1, Large Item Name 0x7
The DWORD address space descriptor is used to report resource usage in a 32-bit address space (like memory and I/O).
Table 6-42 DWORD Address Space Descriptor Definition
Offset
|
Field Name
|
Definition
|
Byte 0
|
DWORD Address Space Descriptor
|
Value = 0x87 (10000111B) – Type = 1, Large item name = 0x07
|
Byte 1
|
Length, bits[7:0]
|
Variable: Value = 23 (minimum)
|
Byte 2
|
Length, bits[15:8]
|
Variable: Value = 0 (minimum)
|
Byte 3
|
Resource Type
|
Indicates which type of resource this descriptor describes. Defined values are:
0 Memory range
1 I/O range
2 Bus number range
3–191 Reserved
192-255 Hardware Vendor Defined
|
Byte 4
|
General Flags
|
Flags that are common to all resource types:
Bits[7:4] Reserved (must be 0)
Bit[3] Max Address Fixed, _MAF:
1 The specified maximum address is fixed
0 The specified maximum address is not fixed
and can be changed
Bit[2] Min Address Fixed,_MIF:
1 The specified minimum address is fixed
0 The specified minimum address is not fixed
and can be changed
Bit[1] Decode Type, _DEC:
1 This bridge subtractively decodes this address
(top level bridges only)
0 This bridge positively decodes this address
Bit[0] Ignored
|
Byte 5
|
Type Specific Flags
|
Flags that are specific to each resource type. The meaning of the flags in this field depends on the value of the Resource Type field (see above).
|
Byte 6
|
Address space granularity, _GRA bits[7:0]
|
A set bit in this mask means that this bit is decoded. All bits less significant than the most significant set bit must be set. (in other words, the value of the full Address Space Granularity field (all 32 bits) must be a number (2n-1).
|
Byte 7
|
Address space granularity, _GRA bits[15:8]
|
|
Byte 8
|
Address space granularity, _GRA bits [23:16]
|
|
Byte 9
|
Address space granularity, _GRA bits [31:24]
|
|
Byte 10
|
Address range minimum, _MIN bits [7:0]
|
For bridges that translate addresses, this is the address space on the secondary side of the bridge.
|
Byte 11
|
Address range minimum, _MIN bits [15:8]
|
|
Byte 12
|
Address range minimum, _MIN bits [23:16]
|
|
Byte 13
|
Address range minimum, _MIN bits [31:24]
|
|
Byte 14
|
Address range maximum, _MAX bits [7:0]
|
For bridges that translate addresses, this is the address space on the secondary side of the bridge.
|
Byte 15
|
Address range maximum, _MAX bits [15:8]
|
|
Byte 16
|
Address range maximum, _MAX bits [23:16]
|
|
Byte 17
|
Address range maximum, _MAX bits [31:24]
|
|
Byte 18
|
Address Translation offset, _TRAbits [7:0]
|
For bridges that translate addresses across the bridge, this is the offset that must be added to the address on the secondary side to obtain the address on the primary side. Non-bridge devices must list 0 for all Address Translation offset bits.
|
Byte 19
|
Address Translation offset, _TRA bits [15:8]
|
|
Byte 20
|
Address Translation offset, _TRA bits [23:16]
|
|
Byte 21
|
Address Translation offset, _TRA bits [31:24]
|
|
Byte 22
|
Address Length, _LEN, bits [7:0]
|
|
Byte 23
|
Address Length, _LEN, bits [15:8]
|
|
Byte 24
|
Address Length, _LEN, bits [23:16]
|
|
Byte 25
|
Address Length, _LEN, bits [31:24]
|
|
Byte 26
|
Resource Source Index
|
(Optional) Only present if Resource Source (below) is present. This field gives an index to the specific resource descriptor that this device consumes from in the current resource template for the device object pointed to in Resource Source.
|
String
|
Resource Source
|
(Optional) If present, the device that uses this descriptor consumes its resources from the resources produced by the named device object. If not present, the device consumes its resources out of a global pool.
If not present, the device consumes this resource from its hierarchical parent.
|
See DWordIO (page 497), DWordMemory (page 499) and ASL_DWordAddressSpace for a description of the ASL macro that creates a DWORD Address Space descriptor
-
Word Address Space Descriptor
Share with your friends: |