1 /**************************************************************************;
4 ;* Intel Corporation - ACPI Reference Code for the Sandy Bridge *;
5 ;* Family of Customer Reference Boards. *;
8 ;* Copyright (c) 2012 - 2014, Intel Corporation. All rights reserved *;
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.
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.
20 ;**************************************************************************/
28 Name(_HID,EISAID("PNP0B00"))
30 Name(_CRS,ResourceTemplate()
32 IO(Decode16,0x70,0x70,0x01,0x08)
37 Device(HPET) // High Performance Event Timer
39 Name (_HID, EisaId ("PNP0103"))
41 Method (_STA, 0, NotSerialized)
46 Method (_CRS, 0, Serialized)
48 Name (RBUF, ResourceTemplate ()
50 Memory32Fixed (ReadWrite,
51 0xFED00000, // Address Base
52 0x00000400, // Address Length
54 Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
56 0x00000008, //0xB HPET-2
67 Package() {0x0010FFFF, 0, LNKA, 0 },
69 Package() {0x0011FFFF, 0, LNKB, 0 },
70 // SD Host #2 - SD Card
71 Package() {0x0012FFFF, 0, LNKC, 0 },
73 Package() {0x0013FFFF, 0, LNKD, 0 },
75 Package() {0x0014FFFF, 0, LNKE, 0 },
76 // Low Power Audio Engine
77 Package() {0x0015FFFF, 0, LNKF, 0 },
79 Package() {0x0016FFFF, 0, LNKG, 0 },
81 Package() {0x0017FFFF, 0, LNKH, 0 },
84 Package() {0x0018FFFF, 0, LNKB, 0 },
87 Package() {0x0018FFFF, 2, LNKD, 0 },
90 Package() {0x0018FFFF, 3, LNKC, 0 },
93 Package() {0x0018FFFF, 1, LNKA, 0 },
95 Package() {0x001AFFFF, 0, LNKF, 0 },
97 // High Definition Audio Controller
98 Package() {0x001BFFFF, 0, LNKG, 0 },
101 Package() {0x001DFFFF, 0, LNKH, 0 },
103 Package() {0x001EFFFF, 0, LNKD, 0 },
105 Package() {0x001EFFFF, 3, LNKA, 0 },
107 Package() {0x001EFFFF, 1, LNKB, 0 },
109 Package() {0x001EFFFF, 2, LNKC, 0 },
117 Package() {0x001FFFFF, 1, LNKC, 0 },
120 Package() {0x001CFFFF, 0, LNKA, 0 },
122 Package() {0x001CFFFF, 1, LNKB, 0 },
124 Package() {0x001CFFFF, 2, LNKC, 0 },
126 Package() {0x001CFFFF, 3, LNKD, 0 },
130 Package() {0x0002FFFF, 0, LNKA, 0 },
136 Package() {0x0010FFFF, 0, 0, 16 },
138 Package() {0x0011FFFF, 0, 0, 17 },
139 // SD Host #2 - SD Card
140 Package() {0x0012FFFF, 0, 0, 18 },
142 Package() {0x0013FFFF, 0, 0, 19 },
144 Package() {0x0014FFFF, 0, 0, 20 },
145 // Low Power Audio Engine
146 Package() {0x0015FFFF, 0, 0, 21 },
148 Package() {0x0016FFFF, 0, 0, 22 },
151 Package() {0x0017FFFF, 0, 0, 23 },
155 Package() {0x0018FFFF, 0, 0, 17 },
158 Package() {0x0018FFFF, 2, 0, 19 },
161 Package() {0x0018FFFF, 3, 0, 18 },
164 Package() {0x0018FFFF, 1, 0, 16 },
167 Package() {0x001AFFFF, 0, 0, 21 },
169 // High Definition Audio Controller
170 Package() {0x001BFFFF, 0, 0, 22 },
173 Package() {0x001DFFFF, 0, 0, 23 },
175 Package() {0x001EFFFF, 0, 0, 19 },
177 Package() {0x001EFFFF, 3, 0, 16 },
179 Package() {0x001EFFFF, 1, 0, 17 },
181 Package() {0x001EFFFF, 2, 0, 18 },
189 Package() {0x001FFFFF, 1, 0, 18 },
192 Package() {0x001CFFFF, 0, 0, 16 },
194 Package() {0x001CFFFF, 1, 0, 17 },
196 Package() {0x001CFFFF, 2, 0, 18 },
198 Package() {0x001CFFFF, 3, 0, 19 },
201 Package() {0x0002FFFF, 0, 0, 16 },
207 Package() {0x0000FFFF, 0, LNKA, 0 },
208 Package() {0x0000FFFF, 1, LNKB, 0 },
209 Package() {0x0000FFFF, 2, LNKC, 0 },
210 Package() {0x0000FFFF, 3, LNKD, 0 },
216 Package() {0x0000FFFF, 0, 0, 16 },
217 Package() {0x0000FFFF, 1, 0, 17 },
218 Package() {0x0000FFFF, 2, 0, 18 },
219 Package() {0x0000FFFF, 3, 0, 19 },
225 Package() {0x0000FFFF, 0, LNKB, 0 },
226 Package() {0x0000FFFF, 1, LNKC, 0 },
227 Package() {0x0000FFFF, 2, LNKD, 0 },
228 Package() {0x0000FFFF, 3, LNKA, 0 },
234 Package() {0x0000FFFF, 0, 0, 17 },
235 Package() {0x0000FFFF, 1, 0, 18 },
236 Package() {0x0000FFFF, 2, 0, 19 },
237 Package() {0x0000FFFF, 3, 0, 16 },
243 Package() {0x0000FFFF, 0, LNKC, 0 },
244 Package() {0x0000FFFF, 1, LNKD, 0 },
245 Package() {0x0000FFFF, 2, LNKA, 0 },
246 Package() {0x0000FFFF, 3, LNKB, 0 },
252 Package() {0x0000FFFF, 0, 0, 18 },
253 Package() {0x0000FFFF, 1, 0, 19 },
254 Package() {0x0000FFFF, 2, 0, 16 },
255 Package() {0x0000FFFF, 3, 0, 17 },
261 Package() {0x0000FFFF, 0, LNKD, 0 },
262 Package() {0x0000FFFF, 1, LNKA, 0 },
263 Package() {0x0000FFFF, 2, LNKB, 0 },
264 Package() {0x0000FFFF, 3, LNKC, 0 },
270 Package() {0x0000FFFF, 0, 0, 19 },
271 Package() {0x0000FFFF, 1, 0, 16 },
272 Package() {0x0000FFFF, 2, 0, 17 },
273 Package() {0x0000FFFF, 3, 0, 18 },
279 Package() {0x0000FFFF, 0, LNKF, 0 },
280 Package() {0x0000FFFF, 1, LNKG, 0 },
281 Package() {0x0000FFFF, 2, LNKH, 0 },
282 Package() {0x0000FFFF, 3, LNKE, 0 },
284 Package() {0x0001FFFF, 0, LNKG, 0 },
285 Package() {0x0001FFFF, 1, LNKF, 0 },
286 Package() {0x0001FFFF, 2, LNKE, 0 },
287 Package() {0x0001FFFF, 3, LNKH, 0 },
289 Package() {0x0002FFFF, 0, LNKC, 0 },
290 Package() {0x0002FFFF, 1, LNKD, 0 },
291 Package() {0x0002FFFF, 2, LNKB, 0 },
292 Package() {0x0002FFFF, 3, LNKA, 0 },
294 Package() {0x0003FFFF, 0, LNKD, 0 },
295 Package() {0x0003FFFF, 1, LNKC, 0 },
296 Package() {0x0003FFFF, 2, LNKF, 0 },
297 Package() {0x0003FFFF, 3, LNKG, 0 },
303 Package() {0x0000FFFF, 0, 0, 21 },
304 Package() {0x0000FFFF, 1, 0, 22 },
305 Package() {0x0000FFFF, 2, 0, 23 },
306 Package() {0x0000FFFF, 3, 0, 20 },
308 Package() {0x0001FFFF, 0, 0, 22 },
309 Package() {0x0001FFFF, 1, 0, 21 },
310 Package() {0x0001FFFF, 2, 0, 20 },
311 Package() {0x0001FFFF, 3, 0, 23 },
313 Package() {0x0002FFFF, 0, 0, 18 },
314 Package() {0x0002FFFF, 1, 0, 19 },
315 Package() {0x0002FFFF, 2, 0, 17 },
316 Package() {0x0002FFFF, 3, 0, 16 },
318 Package() {0x0003FFFF, 0, 0, 19 },
319 Package() {0x0003FFFF, 1, 0, 18 },
320 Package() {0x0003FFFF, 2, 0, 21 },
321 Package() {0x0003FFFF, 3, 0, 22 },
323 //---------------------------------------------------------------------------
324 // List of IRQ resource buffers compatible with _PRS return format.
325 //---------------------------------------------------------------------------
327 // RSxy, PRSy - name of the IRQ resource buffer to be returned by _PRS, "xy" - last two characters of IRQ Link name.
328 // Note. PRSy name is generated if IRQ Link name starts from "LNK".
329 // 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.
330 //---------------------------------------------------------------------------
331 Name(PRSA, ResourceTemplate() // Link name: LNKA
333 IRQ(Level, ActiveLow, Shared, LLKA) {3,4,5,6,10,11,12,14,15}
335 Alias(PRSA,PRSB) // Link name: LNKB
336 Alias(PRSA,PRSC) // Link name: LNKC
337 Alias(PRSA,PRSD) // Link name: LNKD
338 Alias(PRSA,PRSE) // Link name: LNKE
339 Alias(PRSA,PRSF) // Link name: LNKF
340 Alias(PRSA,PRSG) // Link name: LNKG
341 Alias(PRSA,PRSH) // Link name: LNKH
342 //---------------------------------------------------------------------------
343 // Begin PCI tree object scope
344 //---------------------------------------------------------------------------
346 Device(PCI0) // PCI Bridge "Host Bridge"
348 Name(_HID, EISAID("PNP0A08")) // Indicates PCI Express/PCI-X Mode2 host hierarchy
349 Name(_CID, EISAID("PNP0A03")) // To support legacy OS that doesn't understand the new HID
350 Name(_ADR, 0x00000000)
351 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
352 Method(_BBN, 0) { return(BN00()) } // Bus number, optional for the Root PCI Bus
353 Name(_UID, 0x0000) // Unique Bus ID, optional
354 Name(_DEP, Package(0x1)
361 If(PICM) {Return(AR00)} // APIC mode
362 Return (PR00) // PIC Mode
365 include("HOST_BUS.ASL")
366 Device(LPCB) // LPC Bridge
368 Name(_ADR, 0x001F0000)
370 } // end "LPC Bridge"
372 } // end PCI0 Bridge "Host Bridge"