1 /* PCI CRS (current resources) definition. */
4 Name(CRES, ResourceTemplate() {
5 WordBusNumber(ResourceProducer, MinFixed, MaxFixed, PosDecode,
6 0x0000, // Address Space Granularity
7 0x0000, // Address Range Minimum
8 0x00FF, // Address Range Maximum
9 0x0000, // Address Translation Offset
10 0x0100, // Address Length
13 0x0CF8, // Address Range Minimum
14 0x0CF8, // Address Range Maximum
15 0x01, // Address Alignment
16 0x08, // Address Length
18 WordIO(ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
19 0x0000, // Address Space Granularity
20 0x0000, // Address Range Minimum
21 0x0CF7, // Address Range Maximum
22 0x0000, // Address Translation Offset
23 0x0CF8, // Address Length
25 WordIO(ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
26 0x0000, // Address Space Granularity
27 0x0D00, // Address Range Minimum
28 0xFFFF, // Address Range Maximum
29 0x0000, // Address Translation Offset
30 0xF300, // Address Length
32 DWordMemory(ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
33 0x00000000, // Address Space Granularity
34 0x000A0000, // Address Range Minimum
35 0x000BFFFF, // Address Range Maximum
36 0x00000000, // Address Translation Offset
37 0x00020000, // Address Length
38 ,, , AddressRangeMemory, TypeStatic)
39 DWordMemory(ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
40 0x00000000, // Address Space Granularity
41 0xE0000000, // Address Range Minimum
42 0xFEBFFFFF, // Address Range Maximum
43 0x00000000, // Address Translation Offset
44 0x1EC00000, // Address Length
45 ,, PW32, AddressRangeMemory, TypeStatic)
48 Name(CR64, ResourceTemplate() {
49 QWordMemory(ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
50 0x00000000, // Address Space Granularity
51 0x8000000000, // Address Range Minimum
52 0xFFFFFFFFFF, // Address Range Maximum
53 0x00000000, // Address Translation Offset
54 0x8000000000, // Address Length
55 ,, PW64, AddressRangeMemory, TypeStatic)
59 /* Fields provided by dynamically created ssdt */
63 External(P1S, BuffObj)
64 External(P1E, BuffObj)
65 External(P1L, BuffObj)
67 /* fixup 32bit pci io window */
68 CreateDWordField(CRES, \_SB.PCI0.PW32._MIN, PS32)
69 CreateDWordField(CRES, \_SB.PCI0.PW32._MAX, PE32)
70 CreateDWordField(CRES, \_SB.PCI0.PW32._LEN, PL32)
73 Store(Add(Subtract(P0E, P0S), 1), PL32)
75 If (LEqual(P1V, Zero)) {
79 /* fixup 64bit pci io window */
80 CreateQWordField(CR64, \_SB.PCI0.PW64._MIN, PS64)
81 CreateQWordField(CR64, \_SB.PCI0.PW64._MAX, PE64)
82 CreateQWordField(CR64, \_SB.PCI0.PW64._LEN, PL64)
86 /* add window and return result */
87 ConcatenateResTemplate(CRES, CR64, Local0)