9eee3495420c0cccece7085288a9ace5108cea3f
[coreboot.git] / src / mainboard / asus / a8v-e_se / dsdt.asl
1 /*
2  * This file is part of the coreboot project.
3  *
4  * (C) Copyright 2004 Nick Barker <Nick.Barker9@btinternet.com>
5  * (C) Copyright 2007 Rudolf Marek <r.marek@assembler.cz>
6  *
7  * ISA portions taken from QEMU acpi-dsdt.dsl.
8  *
9  * This program is free software; you can redistribute it and/or modify
10  * it under the terms of the GNU General Public License v2 as published by
11  * the Free Software Foundation.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, write to the Free Software
20  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
21  */
22
23 DefinitionBlock ("DSDT.aml", "DSDT", 1, "LXBIOS", "LXB-DSDT", 1)
24 {
25         /* Define the main processor.*/
26         Scope (\_PR)
27         {
28                 Processor (\_PR.CPU0, 0x00, 0x000000, 0x00) {}
29                 Processor (\_PR.CPU1, 0x01, 0x000000, 0x00) {}
30         }
31
32         /* For now only define 2 power states:
33          *  - S0 which is fully on
34          *  - S5 which is soft off
35          * Any others would involve declaring the wake up methods.
36          */
37         Name (\_S0, Package () { 0x00, 0x00, 0x00, 0x00 })
38         Name (\_S5, Package () { 0x02, 0x02, 0x00, 0x00 })
39
40         /* Root of the bus hierarchy */
41         Scope (\_SB)
42         {
43                 /* Top PCI device */
44                 Device (PCI0)
45                 {
46                         Name (_HID, EisaId ("PNP0A03"))
47                         Name (_ADR, 0x00)
48                         Name (_UID, 0x00)
49                         Name (_BBN, 0x00)
50
51                         /* PCI Routing Table */
52                         /* aaa */
53                         Name (_PRT, Package () {
54                                 Package (0x04) { 0x000BFFFF, 0x00, 0x00, 0x10 }, /* Slot 0xB */
55                                 Package (0x04) { 0x000BFFFF, 0x01, 0x00, 0x11 },
56                                 Package (0x04) { 0x000BFFFF, 0x02, 0x00, 0x12 },
57                                 Package (0x04) { 0x000BFFFF, 0x03, 0x00, 0x13 },
58                                 Package (0x04) { 0x000CFFFF, 0x00, 0x00, 0x11 }, /* Slot 0xC */
59                                 Package (0x04) { 0x000CFFFF, 0x01, 0x00, 0x12 },
60                                 Package (0x04) { 0x000CFFFF, 0x02, 0x00, 0x13 },
61                                 Package (0x04) { 0x000CFFFF, 0x03, 0x00, 0x10 },
62                                 Package (0x04) { 0x000DFFFF, 0x00, 0x00, 0x12 }, /* Slot 0xD */
63                                 Package (0x04) { 0x000DFFFF, 0x01, 0x00, 0x13 },
64                                 Package (0x04) { 0x000DFFFF, 0x02, 0x00, 0x10 },
65                                 Package (0x04) { 0x000DFFFF, 0x03, 0x00, 0x11 },
66                                 Package (0x04) { 0x000FFFFF, 0x01, 0x00, 0x14 }, /* 0xf SATA IRQ 20 */
67                                 Package (0x04) { 0x000FFFFF, 0x00, 0x00, 0x14 }, /* 0xf Native IDE IRQ 20 */
68                                 Package (0x04) { 0x0010FFFF, 0x00, 0x00, 0x15 }, /* USB routing */
69                                 Package (0x04) { 0x0010FFFF, 0x01, 0x00, 0x15 },
70                                 Package (0x04) { 0x0010FFFF, 0x02, 0x00, 0x15 },
71                                 Package (0x04) { 0x0010FFFF, 0x03, 0x00, 0x15 },
72                                 Package (0x04) { 0x0011FFFF, 0x02, 0x00, 0x16 }, /* AC97, MC97 */
73                                 Package (0x04) { 0x0002FFFF, 0x00, 0x00, 0x1B }, /* PCIE16 bridge IRQ27 */
74                                 Package (0x04) { 0x0002FFFF, 0x01, 0x00, 0x1B },
75                                 Package (0x04) { 0x0002FFFF, 0x02, 0x00, 0x1B },
76                                 Package (0x04) { 0x0002FFFF, 0x03, 0x00, 0x1B },
77                                 Package (0x04) { 0x0003FFFF, 0x00, 0x00, 0x1F }, /* PCIE bridge IRQ31 */
78                                 Package (0x04) { 0x0003FFFF, 0x01, 0x00, 0x23 }, /* IRQ36 */
79                                 Package (0x04) { 0x0003FFFF, 0x02, 0x00, 0x27 }, /* IRQ39 */
80                                 Package (0x04) { 0x0003FFFF, 0x03, 0x00, 0x2B }  /* IRQ43 */
81                         })
82
83                         Device (PEGG)
84                         {
85                                 Name (_ADR, 0x00020000)
86                                 Name (_UID, 0x00)
87                                 Name (_BBN, 0x02)
88                                 Name (_PRT, Package () {
89                                         Package (0x04) { 0x0000FFFF, 0x00, 0x00, 0x18 }, /* PCIE IRQ24-IRQ27 */
90                                         Package (0x04) { 0x0000FFFF, 0x01, 0x00, 0x19 },
91                                         Package (0x04) { 0x0000FFFF, 0x02, 0x00, 0x1A },
92                                         Package (0x04) { 0x0000FFFF, 0x03, 0x00, 0x1B },
93                                 })
94                         }
95
96                         Device (PEX0)
97                         {
98                                 Name (_ADR, 0x00030000)
99                                 Name (_UID, 0x00)
100                                 Name (_BBN, 0x03)
101                                 Name (_PRT, Package () {
102                                         Package (0x04) { 0x0000FFFF, 0x00, 0x00, 0x1C }, /* PCIE IRQ28-IRQ31 */
103                                         Package (0x04) { 0x0000FFFF, 0x01, 0x00, 0x1D },
104                                         Package (0x04) { 0x0000FFFF, 0x02, 0x00, 0x1E },
105                                         Package (0x04) { 0x0000FFFF, 0x03, 0x00, 0x1F },
106                                 })
107                         }
108
109                         Device (PEX1)
110                         {
111                                 Name (_ADR, 0x00030001)
112                                 Name (_UID, 0x00)
113                                 Name (_BBN, 0x04)
114                                 Name (_PRT, Package () {
115                                         Package (0x04) { 0x0000FFFF, 0x00, 0x00, 0x20 }, /* PCIE IRQ32-IRQ35 */
116                                         Package (0x04) { 0x0000FFFF, 0x01, 0x00, 0x21 },
117                                         Package (0x04) { 0x0000FFFF, 0x02, 0x00, 0x22 },
118                                         Package (0x04) { 0x0000FFFF, 0x03, 0x00, 0x23 },
119                                 })
120                         }
121
122                         Device (PEX2)
123                         {
124                                 Name (_ADR, 0x00030002)
125                                 Name (_UID, 0x00)
126                                 Name (_BBN, 0x05)
127                                 Name (_PRT, Package () {
128                                         Package (0x04) { 0x0000FFFF, 0x00, 0x00, 0x24 }, /* PCIE IRQ36-IRQ39 */
129                                         Package (0x04) { 0x0000FFFF, 0x01, 0x00, 0x25 },
130                                         Package (0x04) { 0x0000FFFF, 0x02, 0x00, 0x26 },
131                                         Package (0x04) { 0x0000FFFF, 0x03, 0x00, 0x27 },
132                                 })
133                         }
134
135                         Device (PEX3)
136                         {
137                                 Name (_ADR, 0x00030003)
138                                 Name (_UID, 0x00)
139                                 Name (_BBN, 0x06)
140                                 Name (_PRT, Package () {
141                                         Package (0x04) { 0x0000FFFF, 0x00, 0x00, 0x28 }, /* PCIE IRQ40-IRQ43 */
142                                         Package (0x04) { 0x0000FFFF, 0x01, 0x00, 0x29 },
143                                         Package (0x04) { 0x0000FFFF, 0x02, 0x00, 0x2A },
144                                         Package (0x04) { 0x0000FFFF, 0x03, 0x00, 0x2B },
145                                 })
146                         }
147
148                         Device (ISA) {
149                                 Name (_ADR, 0x00110000)
150
151                                 /* PS/2 keyboard (seems to be important for WinXP install) */
152                                 Device (KBD)
153                                 {
154                                         Name (_HID, EisaId ("PNP0303"))
155                                         Method (_STA, 0, NotSerialized)
156                                         {
157                                                 Return (0x0f)
158                                         }
159                                         Method (_CRS, 0, NotSerialized)
160                                         {
161                                                 Name (TMP, ResourceTemplate () {
162                                                         IO (Decode16, 0x0060, 0x0060, 0x01, 0x01)
163                                                         IO (Decode16, 0x0064, 0x0064, 0x01, 0x01)
164                                                         IRQNoFlags () {1}
165                                                 })
166                                                 Return (TMP)
167                                         }
168                                 }
169
170                                 /* PS/2 mouse */
171                                 Device (MOU)
172                                 {
173                                         Name (_HID, EisaId ("PNP0F13"))
174                                         Method (_STA, 0, NotSerialized)
175                                         {
176                                                 Return (0x0f)
177                                         }
178                                         Method (_CRS, 0, NotSerialized)
179                                         {
180                                                 Name (TMP, ResourceTemplate () {
181                                                      IRQNoFlags () {12}
182                                                 })
183                                                 Return (TMP)
184                                         }
185                                 }
186
187                                 /* PS/2 floppy controller */
188                                 Device (FDC0)
189                                 {
190                                         Name (_HID, EisaId ("PNP0700"))
191                                         Method (_STA, 0, NotSerialized)
192                                         {
193                                                 Return (0x0f)
194                                         }
195                                         Method (_CRS, 0, NotSerialized)
196                                         {
197                                                 Name (BUF0, ResourceTemplate () {
198                                                         IO (Decode16, 0x03F2, 0x03F2, 0x00, 0x04)
199                                                         IO (Decode16, 0x03F7, 0x03F7, 0x00, 0x01)
200                                                         IRQNoFlags () {6}
201                                                         DMA (Compatibility, NotBusMaster, Transfer8) {2}
202                                                 })
203                                                 Return (BUF0)
204                                         }
205                                 }
206                         }
207                 }
208         }
209 }