]> git.proxmox.com Git - mirror_edk2.git/blame - Vlv2DeviceRefCodePkg/AcpiTablesPCAT/PciTree.asl
Vlv2DeviceRefCodePkg: Fixed thermal issue.
[mirror_edk2.git] / Vlv2DeviceRefCodePkg / AcpiTablesPCAT / PciTree.asl
CommitLineData
3cbfba02
DW
1/**************************************************************************;\r
2;* *;\r
3;* *;\r
4;* Intel Corporation - ACPI Reference Code for the Sandy Bridge *;\r
5;* Family of Customer Reference Boards. *;\r
6;* *;\r
7;* *;\r
52a99493 8;* Copyright (c) 2012 - 2015, Intel Corporation. All rights reserved *;\r
3cbfba02
DW
9;\r
10; This program and the accompanying materials are licensed and made available under\r
11; the terms and conditions of the BSD License that accompanies this distribution.\r
12; The full text of the license may be found at\r
13; http://opensource.org/licenses/bsd-license.php.\r
14;\r
15; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
16; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
17;\r
18;* *;\r
19;* *;\r
20;**************************************************************************/\r
21\r
22Scope(\_SB)\r
23{\r
3cbfba02
DW
24//RTC\r
25 Device(RTC) // RTC\r
26 {\r
27 Name(_HID,EISAID("PNP0B00"))\r
28\r
29 Name(_CRS,ResourceTemplate()\r
30 {\r
31 IO(Decode16,0x70,0x70,0x01,0x08)\r
32 })\r
52a99493
LS
33\r
34 Method(_STA,0,Serialized) {\r
35\r
36 //\r
37 // Report RTC Battery is Prensent or Not Present.\r
38 //\r
39 If (LEqual(BATT, 1)) {\r
40 Return (0xF)\r
41 }\r
42 Return (0x0)\r
43 }\r
3cbfba02
DW
44 }\r
45//RTC\r
46\r
47 Device(HPET) // High Performance Event Timer\r
48 {\r
49 Name (_HID, EisaId ("PNP0103"))\r
50 Name (_UID, 0x00)\r
51 Method (_STA, 0, NotSerialized)\r
52 {\r
53 Return (0x0F)\r
54 }\r
55\r
56 Method (_CRS, 0, Serialized)\r
57 {\r
58 Name (RBUF, ResourceTemplate ()\r
59 {\r
60 Memory32Fixed (ReadWrite,\r
61 0xFED00000, // Address Base\r
62 0x00000400, // Address Length\r
63 )\r
64 Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )\r
65 {\r
66 0x00000008, //0xB HPET-2\r
67 }\r
68 })\r
69 Return (RBUF)\r
70 }\r
71 }\r
72//HPET\r
73\r
74 Name(PR00, Package()\r
75 {\r
76// SD Host #0 - eMMC\r
77 Package() {0x0010FFFF, 0, LNKA, 0 },\r
78// SD Host #1 - SDIO\r
79 Package() {0x0011FFFF, 0, LNKB, 0 },\r
80// SD Host #2 - SD Card\r
81 Package() {0x0012FFFF, 0, LNKC, 0 },\r
82// SATA Controller\r
83 Package() {0x0013FFFF, 0, LNKD, 0 },\r
84// xHCI Host\r
85 Package() {0x0014FFFF, 0, LNKE, 0 },\r
86// Low Power Audio Engine\r
87 Package() {0x0015FFFF, 0, LNKF, 0 },\r
88// USB OTG\r
89 Package() {0x0016FFFF, 0, LNKG, 0 },\r
90// MIPI-HSI/eMMC4.5\r
91 Package() {0x0017FFFF, 0, LNKH, 0 },\r
92// LPSS2 DMA\r
93// LPSS2 I2C #4\r
94 Package() {0x0018FFFF, 0, LNKB, 0 },\r
95// LPSS2 I2C #1\r
96// LPSS2 I2C #5\r
97 Package() {0x0018FFFF, 2, LNKD, 0 },\r
98// LPSS2 I2C #2\r
99// LPSS2 I2C #6\r
100 Package() {0x0018FFFF, 3, LNKC, 0 },\r
101// LPSS2 I2C #3\r
102// LPSS2 I2C #7\r
103 Package() {0x0018FFFF, 1, LNKA, 0 },\r
104// SeC\r
105 Package() {0x001AFFFF, 0, LNKF, 0 },\r
106//\r
107// High Definition Audio Controller\r
108 Package() {0x001BFFFF, 0, LNKG, 0 },\r
109//\r
110// EHCI Controller\r
111 Package() {0x001DFFFF, 0, LNKH, 0 },\r
112// LPSS DMA\r
113 Package() {0x001EFFFF, 0, LNKD, 0 },\r
114// LPSS I2C #0\r
115 Package() {0x001EFFFF, 3, LNKA, 0 },\r
116// LPSS I2C #1\r
117 Package() {0x001EFFFF, 1, LNKB, 0 },\r
118// LPSS PCM\r
119 Package() {0x001EFFFF, 2, LNKC, 0 },\r
120// LPSS I2S\r
121// LPSS HS-UART #0\r
122// LPSS HS-UART #1\r
123// LPSS SPI\r
124// LPC Bridge\r
125//\r
126// SMBus Controller\r
127 Package() {0x001FFFFF, 1, LNKC, 0 },\r
128//\r
129// PCIE Root Port #1\r
130 Package() {0x001CFFFF, 0, LNKA, 0 },\r
131// PCIE Root Port #2\r
132 Package() {0x001CFFFF, 1, LNKB, 0 },\r
133// PCIE Root Port #3\r
134 Package() {0x001CFFFF, 2, LNKC, 0 },\r
135// PCIE Root Port #4\r
136 Package() {0x001CFFFF, 3, LNKD, 0 },\r
137\r
138// Host Bridge\r
139// Mobile IGFX\r
140 Package() {0x0002FFFF, 0, LNKA, 0 },\r
141 })\r
142\r
143 Name(AR00, Package()\r
144 {\r
145// SD Host #0 - eMMC\r
146 Package() {0x0010FFFF, 0, 0, 16 },\r
147// SD Host #1 - SDIO\r
148 Package() {0x0011FFFF, 0, 0, 17 },\r
149// SD Host #2 - SD Card\r
150 Package() {0x0012FFFF, 0, 0, 18 },\r
151// SATA Controller\r
152 Package() {0x0013FFFF, 0, 0, 19 },\r
153// xHCI Host\r
154 Package() {0x0014FFFF, 0, 0, 20 },\r
155// Low Power Audio Engine\r
156 Package() {0x0015FFFF, 0, 0, 21 },\r
157// USB OTG\r
158 Package() {0x0016FFFF, 0, 0, 22 },\r
159//\r
160// MIPI-HSI\r
161 Package() {0x0017FFFF, 0, 0, 23 },\r
162//\r
163// LPSS2 DMA\r
164// LPSS2 I2C #4\r
165 Package() {0x0018FFFF, 0, 0, 17 },\r
166// LPSS2 I2C #1\r
167// LPSS2 I2C #5\r
168 Package() {0x0018FFFF, 2, 0, 19 },\r
169// LPSS2 I2C #2\r
170// LPSS2 I2C #6\r
171 Package() {0x0018FFFF, 3, 0, 18 },\r
172// LPSS2 I2C #3\r
173// LPSS2 I2C #7\r
174 Package() {0x0018FFFF, 1, 0, 16 },\r
175\r
176// SeC\r
177 Package() {0x001AFFFF, 0, 0, 21 },\r
178//\r
179// High Definition Audio Controller\r
180 Package() {0x001BFFFF, 0, 0, 22 },\r
181//\r
182// EHCI Controller\r
183 Package() {0x001DFFFF, 0, 0, 23 },\r
184// LPSS DMA\r
185 Package() {0x001EFFFF, 0, 0, 19 },\r
186// LPSS I2C #0\r
187 Package() {0x001EFFFF, 3, 0, 16 },\r
188// LPSS I2C #1\r
189 Package() {0x001EFFFF, 1, 0, 17 },\r
190// LPSS PCM\r
191 Package() {0x001EFFFF, 2, 0, 18 },\r
192// LPSS I2S\r
193// LPSS HS-UART #0\r
194// LPSS HS-UART #1\r
195// LPSS SPI\r
196// LPC Bridge\r
197//\r
198// SMBus Controller\r
199 Package() {0x001FFFFF, 1, 0, 18 },\r
200//\r
201// PCIE Root Port #1\r
202 Package() {0x001CFFFF, 0, 0, 16 },\r
203// PCIE Root Port #2\r
204 Package() {0x001CFFFF, 1, 0, 17 },\r
205// PCIE Root Port #3\r
206 Package() {0x001CFFFF, 2, 0, 18 },\r
207// PCIE Root Port #4\r
208 Package() {0x001CFFFF, 3, 0, 19 },\r
209// Host Bridge\r
210// Mobile IGFX\r
211 Package() {0x0002FFFF, 0, 0, 16 },\r
212 })\r
213\r
214 Name(PR04, Package()\r
215 {\r
216// PCIE Port #1 Slot\r
217 Package() {0x0000FFFF, 0, LNKA, 0 },\r
218 Package() {0x0000FFFF, 1, LNKB, 0 },\r
219 Package() {0x0000FFFF, 2, LNKC, 0 },\r
220 Package() {0x0000FFFF, 3, LNKD, 0 },\r
221 })\r
222\r
223 Name(AR04, Package()\r
224 {\r
225// PCIE Port #1 Slot\r
226 Package() {0x0000FFFF, 0, 0, 16 },\r
227 Package() {0x0000FFFF, 1, 0, 17 },\r
228 Package() {0x0000FFFF, 2, 0, 18 },\r
229 Package() {0x0000FFFF, 3, 0, 19 },\r
230 })\r
231\r
232 Name(PR05, Package()\r
233 {\r
234// PCIE Port #2 Slot\r
235 Package() {0x0000FFFF, 0, LNKB, 0 },\r
236 Package() {0x0000FFFF, 1, LNKC, 0 },\r
237 Package() {0x0000FFFF, 2, LNKD, 0 },\r
238 Package() {0x0000FFFF, 3, LNKA, 0 },\r
239 })\r
240\r
241 Name(AR05, Package()\r
242 {\r
243// PCIE Port #2 Slot\r
244 Package() {0x0000FFFF, 0, 0, 17 },\r
245 Package() {0x0000FFFF, 1, 0, 18 },\r
246 Package() {0x0000FFFF, 2, 0, 19 },\r
247 Package() {0x0000FFFF, 3, 0, 16 },\r
248 })\r
249\r
250 Name(PR06, Package()\r
251 {\r
252// PCIE Port #3 Slot\r
253 Package() {0x0000FFFF, 0, LNKC, 0 },\r
254 Package() {0x0000FFFF, 1, LNKD, 0 },\r
255 Package() {0x0000FFFF, 2, LNKA, 0 },\r
256 Package() {0x0000FFFF, 3, LNKB, 0 },\r
257 })\r
258\r
259 Name(AR06, Package()\r
260 {\r
261// PCIE Port #3 Slot\r
262 Package() {0x0000FFFF, 0, 0, 18 },\r
263 Package() {0x0000FFFF, 1, 0, 19 },\r
264 Package() {0x0000FFFF, 2, 0, 16 },\r
265 Package() {0x0000FFFF, 3, 0, 17 },\r
266 })\r
267\r
268 Name(PR07, Package()\r
269 {\r
270// PCIE Port #4 Slot\r
271 Package() {0x0000FFFF, 0, LNKD, 0 },\r
272 Package() {0x0000FFFF, 1, LNKA, 0 },\r
273 Package() {0x0000FFFF, 2, LNKB, 0 },\r
274 Package() {0x0000FFFF, 3, LNKC, 0 },\r
275 })\r
276\r
277 Name(AR07, Package()\r
278 {\r
279// PCIE Port #4 Slot\r
280 Package() {0x0000FFFF, 0, 0, 19 },\r
281 Package() {0x0000FFFF, 1, 0, 16 },\r
282 Package() {0x0000FFFF, 2, 0, 17 },\r
283 Package() {0x0000FFFF, 3, 0, 18 },\r
284 })\r
285\r
286 Name(PR01, Package()\r
287 {\r
288// PCI slot 1\r
289 Package() {0x0000FFFF, 0, LNKF, 0 },\r
290 Package() {0x0000FFFF, 1, LNKG, 0 },\r
291 Package() {0x0000FFFF, 2, LNKH, 0 },\r
292 Package() {0x0000FFFF, 3, LNKE, 0 },\r
293// PCI slot 2\r
294 Package() {0x0001FFFF, 0, LNKG, 0 },\r
295 Package() {0x0001FFFF, 1, LNKF, 0 },\r
296 Package() {0x0001FFFF, 2, LNKE, 0 },\r
297 Package() {0x0001FFFF, 3, LNKH, 0 },\r
298// PCI slot 3\r
299 Package() {0x0002FFFF, 0, LNKC, 0 },\r
300 Package() {0x0002FFFF, 1, LNKD, 0 },\r
301 Package() {0x0002FFFF, 2, LNKB, 0 },\r
302 Package() {0x0002FFFF, 3, LNKA, 0 },\r
303// PCI slot 4\r
304 Package() {0x0003FFFF, 0, LNKD, 0 },\r
305 Package() {0x0003FFFF, 1, LNKC, 0 },\r
306 Package() {0x0003FFFF, 2, LNKF, 0 },\r
307 Package() {0x0003FFFF, 3, LNKG, 0 },\r
308 })\r
309\r
310 Name(AR01, Package()\r
311 {\r
312// PCI slot 1\r
313 Package() {0x0000FFFF, 0, 0, 21 },\r
314 Package() {0x0000FFFF, 1, 0, 22 },\r
315 Package() {0x0000FFFF, 2, 0, 23 },\r
316 Package() {0x0000FFFF, 3, 0, 20 },\r
317// PCI slot 2\r
318 Package() {0x0001FFFF, 0, 0, 22 },\r
319 Package() {0x0001FFFF, 1, 0, 21 },\r
320 Package() {0x0001FFFF, 2, 0, 20 },\r
321 Package() {0x0001FFFF, 3, 0, 23 },\r
322// PCI slot 3\r
323 Package() {0x0002FFFF, 0, 0, 18 },\r
324 Package() {0x0002FFFF, 1, 0, 19 },\r
325 Package() {0x0002FFFF, 2, 0, 17 },\r
326 Package() {0x0002FFFF, 3, 0, 16 },\r
327// PCI slot 4\r
328 Package() {0x0003FFFF, 0, 0, 19 },\r
329 Package() {0x0003FFFF, 1, 0, 18 },\r
330 Package() {0x0003FFFF, 2, 0, 21 },\r
331 Package() {0x0003FFFF, 3, 0, 22 },\r
332 })\r
333//---------------------------------------------------------------------------\r
334// List of IRQ resource buffers compatible with _PRS return format.\r
335//---------------------------------------------------------------------------\r
336// Naming legend:\r
337// RSxy, PRSy - name of the IRQ resource buffer to be returned by _PRS, "xy" - last two characters of IRQ Link name.\r
338// Note. PRSy name is generated if IRQ Link name starts from "LNK".\r
339// HLxy , LLxy - reference names, can be used to access bit mask of available IRQs. HL and LL stand for active High(Low) Level triggered Irq model.\r
340//---------------------------------------------------------------------------\r
341 Name(PRSA, ResourceTemplate() // Link name: LNKA\r
342 {\r
343 IRQ(Level, ActiveLow, Shared, LLKA) {3,4,5,6,10,11,12,14,15}\r
344 })\r
345 Alias(PRSA,PRSB) // Link name: LNKB\r
346 Alias(PRSA,PRSC) // Link name: LNKC\r
347 Alias(PRSA,PRSD) // Link name: LNKD\r
348 Alias(PRSA,PRSE) // Link name: LNKE\r
349 Alias(PRSA,PRSF) // Link name: LNKF\r
350 Alias(PRSA,PRSG) // Link name: LNKG\r
351 Alias(PRSA,PRSH) // Link name: LNKH\r
352//---------------------------------------------------------------------------\r
353// Begin PCI tree object scope\r
354//---------------------------------------------------------------------------\r
355\r
356 Device(PCI0) // PCI Bridge "Host Bridge"\r
357 {\r
358 Name(_HID, EISAID("PNP0A08")) // Indicates PCI Express/PCI-X Mode2 host hierarchy\r
359 Name(_CID, EISAID("PNP0A03")) // To support legacy OS that doesn't understand the new HID\r
360 Name(_ADR, 0x00000000)\r
361 Method(^BN00, 0) { return(0x0000) } // Returns default Bus number for Peer PCI busses. Name can be overriden with control method placed directly under Device scope\r
362 Method(_BBN, 0) { return(BN00()) } // Bus number, optional for the Root PCI Bus\r
363 Name(_UID, 0x0000) // Unique Bus ID, optional\r
364 Name(_DEP, Package(0x1)\r
365 {\r
366 PEPD\r
367 })\r
368\r
369 Method(_PRT,0)\r
370 {\r
371 If(PICM) {Return(AR00)} // APIC mode\r
372 Return (PR00) // PIC Mode\r
373 } // end _PRT\r
374\r
375 include("HOST_BUS.ASL")\r
376 Device(LPCB) // LPC Bridge\r
377 {\r
378 Name(_ADR, 0x001F0000)\r
379 include("LpcB.asl")\r
380 } // end "LPC Bridge"\r
381\r
382 } // end PCI0 Bridge "Host Bridge"\r
383} // end _SB scope\r