blob: 43b4535957913880923fc7f6aa10c6f19a1be7ea [file] [log] [blame]
Jonathan A. Kollasche1ffd9e2013-10-15 14:26:34 -05001/*
2 * This file is part of the coreboot project.
3 *
4 * Copyright (C) 2004 Nick Barker <Nick.Barker9@btinternet.com>
5 * Copyright (C) 2007, 2008 Rudolf Marek <r.marek@assembler.cz>
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; version 2 of the License.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
Jonathan A. Kollasche1ffd9e2013-10-15 14:26:34 -050015 */
16
17/*
18 * ISA portions taken from QEMU acpi-dsdt.dsl.
19 */
20
21DefinitionBlock ("DSDT.aml", "DSDT", 1, "CORE ", "CB-DSDT ", 1)
22{
Jonathan A. Kollasch553fe1c2013-10-15 16:45:51 -050023 #include "northbridge/amd/amdk8/util.asl"
Jonathan A. Kollasche1ffd9e2013-10-15 14:26:34 -050024
25 /* For now only define 2 power states:
26 * - S0 which is fully on
27 * - S5 which is soft off
28 * Any others would involve declaring the wake up methods.
29 */
30 Name (\_S0, Package () { 0x00, 0x00, 0x00, 0x00 })
Jonathan A. Kollasch553fe1c2013-10-15 16:45:51 -050031 Name (\_S5, Package () { 0x07, 0x00, 0x00, 0x00 })
32
33 Name (PICM, 0x00)
34 Method (_PIC, 1, Serialized) {
35 Store (Arg0, PICM)
36 }
Jonathan A. Kollasche1ffd9e2013-10-15 14:26:34 -050037
38 /* Root of the bus hierarchy */
39 Scope (\_SB)
40 {
41 /* Top PCI device (CK804) */
42 Device (PCI0)
43 {
44 Name (_HID, EisaId ("PNP0A03"))
45 Name (_ADR, 0x00)
46 Name (_UID, 0x00)
47 Name (_BBN, 0x00)
48
49 External (BUSN)
50 External (MMIO)
51 External (PCIO)
52 External (SBLK)
53 External (TOM1)
54 External (HCLK)
55 External (SBDN)
56 External (HCDN)
57
58 Method (_CRS, 0, NotSerialized)
59 {
60 Name (BUF0, ResourceTemplate ()
61 {
62 IO (Decode16,
63 0x0CF8, // Address Range Minimum
64 0x0CF8, // Address Range Maximum
65 0x01, // Address Alignment
66 0x08, // Address Length
67 )
68 WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
69 0x0000, // Address Space Granularity
70 0x0000, // Address Range Minimum
71 0x0CF7, // Address Range Maximum
72 0x0000, // Address Translation Offset
73 0x0CF8, // Address Length
74 ,, , TypeStatic)
75 })
76 /* Methods bellow use SSDT to get actual MMIO regs
77 The IO ports are from 0xd00, optionally an VGA,
78 otherwise the info from MMIO is used.
79 \_SB.GXXX(node, link)
80 */
81 Concatenate (\_SB.GMEM (0x00, \_SB.PCI0.SBLK), BUF0, Local1)
82 Concatenate (\_SB.GIOR (0x00, \_SB.PCI0.SBLK), Local1, Local2)
83 Concatenate (\_SB.GWBN (0x00, \_SB.PCI0.SBLK), Local2, Local3)
84 Return (Local3)
85 }
86
Jonathan A. Kollasch553fe1c2013-10-15 16:45:51 -050087 #include "southbridge/nvidia/ck804/acpi/ck804.asl"
88
Jonathan A. Kollasche1ffd9e2013-10-15 14:26:34 -050089 /* PCI Routing Table */
90 Name (_PRT, Package () {
Jonathan A. Kollasch553fe1c2013-10-15 16:45:51 -050091 Package (0x04) { 0x0001FFFF, 0x00, \_SB.PCI0.LLAS, 0x00 },
92 Package (0x04) { 0x0001FFFF, 0x01, \_SB.PCI0.LLAS, 0x00 },
93 Package (0x04) { 0x0002FFFF, 0x00, \_SB.PCI0.LUOH, 0x00 },
94 Package (0x04) { 0x0002FFFF, 0x01, \_SB.PCI0.LUEH, 0x00 },
95 Package (0x04) { 0x0004FFFF, 0x00, \_SB.PCI0.LAUD, 0x00 },
96 Package (0x04) { 0x0004FFFF, 0x01, \_SB.PCI0.LMOD, 0x00 },
97 Package (0x04) { 0x0006FFFF, 0x00, \_SB.PCI0.LPA0, 0x00 },
98 Package (0x04) { 0x0007FFFF, 0x00, \_SB.PCI0.LSA0, 0x00 },
99 Package (0x04) { 0x0008FFFF, 0x00, \_SB.PCI0.LSA1, 0x00 },
100 Package (0x04) { 0x000AFFFF, 0x00, \_SB.PCI0.LEMA, 0x00 },
Jonathan A. Kollasche1ffd9e2013-10-15 14:26:34 -0500101 })
102
103 Device (PCIL)
104 {
105 Name (_ADR, 0x00090000)
106 Name (_UID, 0x00)
Jonathan A. Kollasche1ffd9e2013-10-15 14:26:34 -0500107 Name (_PRT, Package () {
Jonathan A. Kollasch553fe1c2013-10-15 16:45:51 -0500108 /* onboard SM720 VGA */
109 Package (0x04) { 0x0006FFFF, 0x00, \_SB.PCI0.LNKC, 0x00 },
110 Package (0x04) { 0x0006FFFF, 0x01, \_SB.PCI0.LNKD, 0x00 },
111 Package (0x04) { 0x0006FFFF, 0x02, \_SB.PCI0.LNKA, 0x00 },
112 Package (0x04) { 0x0006FFFF, 0x03, \_SB.PCI0.LNKB, 0x00 },
Jonathan A. Kollasche1ffd9e2013-10-15 14:26:34 -0500113 })
114 }
115
Jonathan A. Kollasch553fe1c2013-10-15 16:45:51 -0500116 Device (PEX0)
Jonathan A. Kollasche1ffd9e2013-10-15 14:26:34 -0500117 {
118 Name (_ADR, 0x000e0000)
119 Name (_UID, 0x00)
Jonathan A. Kollasche1ffd9e2013-10-15 14:26:34 -0500120 Name (_PRT, Package () {
Jonathan A. Kollasch553fe1c2013-10-15 16:45:51 -0500121 Package (0x04) { 0x0000FFFF, 0x00, \_SB.PCI0.LNKC, 0x00 },
122 Package (0x04) { 0x0000FFFF, 0x01, \_SB.PCI0.LNKD, 0x00 },
123 Package (0x04) { 0x0000FFFF, 0x02, \_SB.PCI0.LNKA, 0x00 },
124 Package (0x04) { 0x0000FFFF, 0x03, \_SB.PCI0.LNKB, 0x00 },
Jonathan A. Kollasche1ffd9e2013-10-15 14:26:34 -0500125 })
126 }
127
Jonathan A. Kollasch553fe1c2013-10-15 16:45:51 -0500128 Device (PEX1)
Jonathan A. Kollasche1ffd9e2013-10-15 14:26:34 -0500129 {
Jonathan A. Kollasch553fe1c2013-10-15 16:45:51 -0500130 Name (_ADR, 0x000d0000)
Jonathan A. Kollasche1ffd9e2013-10-15 14:26:34 -0500131 Name (_UID, 0x00)
Jonathan A. Kollasche1ffd9e2013-10-15 14:26:34 -0500132 Name (_PRT, Package () {
Jonathan A. Kollasch553fe1c2013-10-15 16:45:51 -0500133 Package (0x04) { 0x0000FFFF, 0x00, \_SB.PCI0.LNKD, 0x00 },
134 Package (0x04) { 0x0000FFFF, 0x01, \_SB.PCI0.LNKA, 0x00 },
135 Package (0x04) { 0x0000FFFF, 0x02, \_SB.PCI0.LNKB, 0x00 },
136 Package (0x04) { 0x0000FFFF, 0x03, \_SB.PCI0.LNKC, 0x00 },
137 })
138 }
139
140 Device (PEX2)
141 {
142 Name (_ADR, 0x000c0000)
143 Name (_UID, 0x00)
144 Name (_PRT, Package () {
145 Package (0x04) { 0x0000FFFF, 0x00, \_SB.PCI0.LNKA, 0x00 },
146 Package (0x04) { 0x0000FFFF, 0x01, \_SB.PCI0.LNKB, 0x00 },
147 Package (0x04) { 0x0000FFFF, 0x02, \_SB.PCI0.LNKC, 0x00 },
148 Package (0x04) { 0x0000FFFF, 0x03, \_SB.PCI0.LNKD, 0x00 },
149 })
150 }
151
152 Device (PEX3)
153 {
154 Name (_ADR, 0x000b0000)
155 Name (_UID, 0x00)
156 Name (_PRT, Package () {
157 Package (0x04) { 0x0000FFFF, 0x00, \_SB.PCI0.LNKB, 0x00 },
158 Package (0x04) { 0x0000FFFF, 0x01, \_SB.PCI0.LNKC, 0x00 },
159 Package (0x04) { 0x0000FFFF, 0x02, \_SB.PCI0.LNKD, 0x00 },
160 Package (0x04) { 0x0000FFFF, 0x03, \_SB.PCI0.LNKA, 0x00 },
Jonathan A. Kollasche1ffd9e2013-10-15 14:26:34 -0500161 })
162 }
163
164 Device (ISA) {
165 Name (_HID, EisaId ("PNP0A05"))
166 Name (_ADR, 0x00010000)
167
168 /* PS/2 keyboard (seems to be important for WinXP install) */
169 Device (KBD)
170 {
171 Name (_HID, EisaId ("PNP0303"))
172 Method (_STA, 0, NotSerialized)
173 {
174 Return (0x0f)
175 }
176 Method (_CRS, 0, NotSerialized)
177 {
178 Name (TMP, ResourceTemplate () {
179 IO (Decode16, 0x0060, 0x0060, 0x01, 0x01)
180 IO (Decode16, 0x0064, 0x0064, 0x01, 0x01)
181 IRQNoFlags () {1}
182 })
183 Return (TMP)
184 }
185 }
186
187 /* PS/2 mouse */
188 Device (MOU)
189 {
190 Name (_HID, EisaId ("PNP0F13"))
191 Method (_STA, 0, NotSerialized)
192 {
193 Return (0x0f)
194 }
195 Method (_CRS, 0, NotSerialized)
196 {
197 Name (TMP, ResourceTemplate () {
198 IRQNoFlags () {12}
199 })
200 Return (TMP)
201 }
202 }
Jonathan A. Kollasche1ffd9e2013-10-15 14:26:34 -0500203 }
204 }
205 }
206}