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