acpireg.h revision 1.2 1 1.2 thorpej /* $NetBSD: acpireg.h,v 1.2 2001/09/29 05:33:00 thorpej Exp $ */
2 1.1 thorpej
3 1.1 thorpej /*
4 1.1 thorpej * Copyright 2001 Wasabi Systems, Inc.
5 1.1 thorpej * All rights reserved.
6 1.1 thorpej *
7 1.1 thorpej * Written by Jason R. Thorpe for Wasabi Systems, Inc.
8 1.1 thorpej *
9 1.1 thorpej * Redistribution and use in source and binary forms, with or without
10 1.1 thorpej * modification, are permitted provided that the following conditions
11 1.1 thorpej * are met:
12 1.1 thorpej * 1. Redistributions of source code must retain the above copyright
13 1.1 thorpej * notice, this list of conditions and the following disclaimer.
14 1.1 thorpej * 2. Redistributions in binary form must reproduce the above copyright
15 1.1 thorpej * notice, this list of conditions and the following disclaimer in the
16 1.1 thorpej * documentation and/or other materials provided with the distribution.
17 1.1 thorpej * 3. All advertising materials mentioning features or use of this software
18 1.1 thorpej * must display the following acknowledgement:
19 1.1 thorpej * This product includes software developed for the NetBSD Project by
20 1.1 thorpej * Wasabi Systems, Inc.
21 1.1 thorpej * 4. The name of Wasabi Systems, Inc. may not be used to endorse
22 1.1 thorpej * or promote products derived from this software without specific prior
23 1.1 thorpej * written permission.
24 1.1 thorpej *
25 1.1 thorpej * THIS SOFTWARE IS PROVIDED BY WASABI SYSTEMS, INC. ``AS IS'' AND
26 1.1 thorpej * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
27 1.1 thorpej * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
28 1.1 thorpej * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL WASABI SYSTEMS, INC
29 1.1 thorpej * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
30 1.1 thorpej * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
31 1.1 thorpej * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
32 1.1 thorpej * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
33 1.1 thorpej * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
34 1.1 thorpej * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
35 1.1 thorpej * POSSIBILITY OF SUCH DAMAGE.
36 1.1 thorpej */
37 1.1 thorpej
38 1.1 thorpej /*
39 1.1 thorpej * This file defines various ACPI event messages, etc.
40 1.1 thorpej */
41 1.1 thorpej
42 1.1 thorpej /*
43 1.1 thorpej * 5.6.3: Device Object Notifications
44 1.1 thorpej */
45 1.1 thorpej
46 1.1 thorpej /* Device Object Notification Types */
47 1.1 thorpej #define ACPI_NOTIFY_BusCheck 0x00
48 1.1 thorpej #define ACPI_NOTIFY_DeviceCheck 0x01
49 1.1 thorpej #define ACPI_NOTIFY_DeviceWake 0x02
50 1.1 thorpej #define ACPI_NOTIFY_EjectRequest 0x03
51 1.1 thorpej #define ACPI_NOTIFY_DeviceCheckLight 0x04
52 1.1 thorpej #define ACPI_NOTIFY_FrquencyMismatch 0x05
53 1.1 thorpej #define ACPI_NOTIFY_BusModeMismatch 0x06
54 1.1 thorpej #define ACPI_NOTIFY_PowerFault 0x07
55 1.1 thorpej /* 0x08 - 0x7f reserved */
56 1.1 thorpej
57 1.1 thorpej /* Control Method Battery Device Notification Types */
58 1.1 thorpej #define ACPI_NOTIFY_BatteryStatusChanged 0x80
59 1.1 thorpej #define ACPI_NOTIFY_BatteryInformationChanged 0x81
60 1.1 thorpej
61 1.1 thorpej /* Power Source Object Notification Types */
62 1.1 thorpej #define ACPI_NOTIFY_PowerSourceStatusChanged 0x80
63 1.1 thorpej
64 1.1 thorpej /* Thermal Zone Object Notication Types */
65 1.1 thorpej #define ACPI_NOTIFY_ThermalZoneStatusChanged 0x80
66 1.1 thorpej #define ACPI_NOTIFY_ThermalZoneTripPointsChanged 0x81
67 1.1 thorpej #define ACPI_NOTIFY_DeviceListsChanged 0x82
68 1.1 thorpej
69 1.1 thorpej /* Control Method Power Button Notification Types */
70 1.1 thorpej #define ACPI_NOTIFY_S0PowerButtonPressed 0x80
71 1.1 thorpej
72 1.1 thorpej /* Control Method Sleep Button Notification Types */
73 1.1 thorpej #define ACPI_NOTIFY_S0SleepButtonPressed 0x80
74 1.1 thorpej
75 1.1 thorpej /* Control Method Lid Notification Types */
76 1.1 thorpej #define ACPI_NOTIFY_LidStatusChanged 0x80
77 1.1 thorpej
78 1.1 thorpej /* Processor Device Notification Values */
79 1.1 thorpej #define ACPI_NOTIFY_PerformancePresentCapabiltitesChanged 0x80
80 1.1 thorpej #define ACPI_NOTIFY_CStatesChanged 0x81
81 1.1 thorpej
82 1.1 thorpej /*
83 1.2 thorpej * 6: Configuration
84 1.2 thorpej *
85 1.2 thorpej * 6.1: Device Identification Objects
86 1.2 thorpej *
87 1.2 thorpej * _ADR Object that evaluates to a device's address on
88 1.2 thorpej * its parent bus.
89 1.2 thorpej *
90 1.2 thorpej * _CID Object that evaluates to a device's Plug and Play
91 1.2 thorpej * compatible ID list.
92 1.2 thorpej *
93 1.2 thorpej * _DDN Object that associates a logical software name
94 1.2 thorpej * (for example, COM1) with a device.
95 1.2 thorpej *
96 1.2 thorpej * _HID Object that evaluates to a device's Plug and Play
97 1.2 thorpej * hardware ID.
98 1.2 thorpej *
99 1.2 thorpej * _SUN Objcet that evaluates to the slot-unique ID number
100 1.2 thorpej * for a slot.
101 1.2 thorpej *
102 1.2 thorpej * _STR Object that contains a Unicode identifier for a device.
103 1.2 thorpej *
104 1.2 thorpej * _UID Object that specifies a device's unique persistent ID,
105 1.2 thorpej * or a control method that generates it.
106 1.2 thorpej */
107 1.2 thorpej
108 1.2 thorpej /*
109 1.2 thorpej * 6.1.1: _ADR (Address)
110 1.2 thorpej *
111 1.2 thorpej * EISA EISA slot numnber 0-f
112 1.2 thorpej *
113 1.2 thorpej * Floppy Bus Drive select values used for programming
114 1.2 thorpej * the floppy controller to access the
115 1.2 thorpej * specified INT13 unit number. The _ADR
116 1.2 thorpej * objects should be sorted based on drive
117 1.2 thorpej * select encoding from 0-3.
118 1.2 thorpej *
119 1.2 thorpej * IDE controller 0 - primary channel, 1 - secondary channel
120 1.2 thorpej *
121 1.2 thorpej * IDE channel 0 - master drive, 1 - slave drive
122 1.2 thorpej *
123 1.2 thorpej * PCI High word - Device #, Low word - Function #
124 1.2 thorpej * 0xffff == all functions on a device
125 1.2 thorpej *
126 1.2 thorpej * PCMCIA Socket #; 0 == first socket
127 1.2 thorpej *
128 1.2 thorpej * PC Card Socket #; 0 == first socket
129 1.2 thorpej *
130 1.2 thorpej * SMBus Lowest slave address
131 1.2 thorpej *
132 1.2 thorpej * USB Root Hub Only one child of the host controller, must
133 1.2 thorpej * have an _ADR of 0.
134 1.2 thorpej *
135 1.2 thorpej * USB ports port number
136 1.2 thorpej */
137 1.2 thorpej #define ACPI_ADR_PCI_DEV(x) (((x) >> 16) & 0xffff)
138 1.2 thorpej #define ACPI_ADR_PCI_FUNC(x) ((x) & 0xffff)
139 1.2 thorpej #define ACPI_ADR_PCI_ALLFUNCS 0xffff
140 1.2 thorpej
141 1.2 thorpej /*
142 1.2 thorpej * 6.1.2: _CID (Compatible ID)
143 1.2 thorpej */
144 1.2 thorpej
145 1.2 thorpej /*
146 1.2 thorpej * 6.1.3: _DDN (Device Name)
147 1.2 thorpej */
148 1.2 thorpej
149 1.2 thorpej /*
150 1.2 thorpej * 6.1.4: _HID (Hardware ID)
151 1.2 thorpej */
152 1.2 thorpej
153 1.2 thorpej /*
154 1.2 thorpej * 6.1.5: _STR (String)
155 1.2 thorpej */
156 1.2 thorpej
157 1.2 thorpej /*
158 1.2 thorpej * 6.1.6: _SUN (Slot User Number)
159 1.2 thorpej */
160 1.2 thorpej
161 1.2 thorpej /*
162 1.2 thorpej * 6.1.7: _UID (Unique ID)
163 1.2 thorpej */
164 1.2 thorpej
165 1.2 thorpej /*
166 1.2 thorpej * 6.2: Device Configuration Objects
167 1.2 thorpej *
168 1.2 thorpej * _CRS Object that specifies a device's *current* resource
169 1.2 thorpej * settings, or a control method that generates such
170 1.2 thorpej * an object.
171 1.2 thorpej *
172 1.2 thorpej * _DIS Control method that disables a device.
173 1.2 thorpej *
174 1.2 thorpej * _DMA Object that specifies a device's *current* resources
175 1.2 thorpej * for DMA transactions.
176 1.2 thorpej *
177 1.2 thorpej * _FIX Object used to provide correlation between the
178 1.2 thorpej * fixed-hardware register blocks defined in the FADT
179 1.2 thorpej * and the devices that implement these fixed-hardware
180 1.2 thorpej * registers.
181 1.2 thorpej *
182 1.2 thorpej * _HPP Object that specifies the cache-line size, latency
183 1.2 thorpej * timer, SERR enable, and PERR enable values to be
184 1.2 thorpej * used when configuring a PCI device inserted into
185 1.2 thorpej * a hot-plug slot or initial configuration of a PCI
186 1.2 thorpej * device at system boot.
187 1.2 thorpej *
188 1.2 thorpej * _MAT Object that evaluates to a buffer of MADT APIC
189 1.2 thorpej * structure entries.
190 1.2 thorpej *
191 1.2 thorpej * _PRS An object that specifies a device's *possible*
192 1.2 thorpej * resource settings, or a control method that
193 1.2 thorpej * generates such an object.
194 1.2 thorpej *
195 1.2 thorpej * _PRT Object that specifies the PCI interrupt routing
196 1.2 thorpej * table.
197 1.2 thorpej *
198 1.2 thorpej * _PXM Object that specifies a proximity domain for a device.
199 1.2 thorpej *
200 1.2 thorpej * _SRS Control method that sets a device's settings.
201 1.2 thorpej */
202 1.2 thorpej
203 1.2 thorpej /*
204 1.2 thorpej * 6.2.1: _CRS (Current Resource Settings)
205 1.2 thorpej */
206 1.2 thorpej
207 1.2 thorpej /*
208 1.2 thorpej * 6.2.2: _DIS (Disable)
209 1.2 thorpej */
210 1.2 thorpej
211 1.2 thorpej /*
212 1.2 thorpej * 6.2.3: _DMA (Direct Memory AccesS)
213 1.2 thorpej */
214 1.2 thorpej
215 1.2 thorpej /*
216 1.2 thorpej * 6.2.4: _FIX (Fixed Register Resource Provider)
217 1.2 thorpej */
218 1.2 thorpej
219 1.2 thorpej /*
220 1.2 thorpej * 6.2.5: _HPP (Hot Plug Parameters)
221 1.2 thorpej */
222 1.2 thorpej
223 1.2 thorpej /*
224 1.2 thorpej * 6.2.6: _MAT (Multiple APIC Table Entry)
225 1.2 thorpej */
226 1.2 thorpej
227 1.2 thorpej /*
228 1.2 thorpej * 6.2.7: _PRS (Possible Resource Settings)
229 1.2 thorpej */
230 1.2 thorpej
231 1.2 thorpej /*
232 1.2 thorpej * 6.2.8: _PRT (PCI Routing Table)
233 1.2 thorpej */
234 1.2 thorpej
235 1.2 thorpej /*
236 1.2 thorpej * 6.2.9: _PXM (Proximity)
237 1.2 thorpej */
238 1.2 thorpej
239 1.2 thorpej /*
240 1.2 thorpej * 6.2.10: _SRS (Set Resource Settings)
241 1.2 thorpej */
242 1.2 thorpej
243 1.2 thorpej /*
244 1.2 thorpej * 6.3: Device Insertion and Removal Objects
245 1.2 thorpej *
246 1.2 thorpej * _EDL Object that evaluates to a package of namespace
247 1.2 thorpej * references of device objects that depend on
248 1.2 thorpej * the device containing _EDL. Whenever the named
249 1.2 thorpej * devices is ejected, OSPM ejects all dependent
250 1.2 thorpej * devices.
251 1.2 thorpej *
252 1.2 thorpej * _EJD Object that evaluates to the name of a device object
253 1.2 thorpej * on which a device depends. Whenever the named
254 1.2 thorpej * device is ejected, the dependent device must receive
255 1.2 thorpej * an ejection notification.
256 1.2 thorpej *
257 1.2 thorpej * _EJx Control method that ejects a device.
258 1.2 thorpej *
259 1.2 thorpej * _LCK Control method that locks or unlocks a device.
260 1.2 thorpej *
261 1.2 thorpej * _RMV Object that indicates that the given device is
262 1.2 thorpej * removable.
263 1.2 thorpej *
264 1.2 thorpej * _STA Control method that returns a device's status.
265 1.2 thorpej */
266 1.2 thorpej
267 1.2 thorpej /*
268 1.2 thorpej * 6.3.1: _EDL (Eject Device List)
269 1.2 thorpej */
270 1.2 thorpej
271 1.2 thorpej /*
272 1.2 thorpej * 6.3.2: _EJD (Ejection Dependent Device)
273 1.2 thorpej */
274 1.2 thorpej
275 1.2 thorpej /*
276 1.2 thorpej * 6.3.3: _EJx (Eject)
277 1.2 thorpej *
278 1.2 thorpej * x Indicates sleeping state at which device
279 1.2 thorpej * can be ejected.
280 1.2 thorpej */
281 1.2 thorpej
282 1.2 thorpej /*
283 1.2 thorpej * 6.3.4: _LCK (Lock)
284 1.2 thorpej */
285 1.2 thorpej
286 1.2 thorpej /*
287 1.2 thorpej * 6.3.5: _RMV (Remove)
288 1.2 thorpej */
289 1.2 thorpej
290 1.2 thorpej /*
291 1.1 thorpej * 6.3.6: _STA (Status) for device insertion/removal
292 1.1 thorpej */
293 1.1 thorpej #define ACPI_STA_DEV_PRESENT 0x00000001 /* device present */
294 1.1 thorpej #define ACPI_STA_DEV_ENABLED 0x00000002 /* enabled (decoding res.) */
295 1.1 thorpej #define ACPI_STA_DEV_SHOW 0x00000004 /* show device in UI */
296 1.1 thorpej #define ACPI_STA_DEV_OK 0x00000008 /* functioning properly */
297 1.1 thorpej #define ACPI_STA_DEV_BATT 0x00000010 /* battery present */
298 1.1 thorpej
299 1.2 thorpej /*
300 1.2 thorpej * 6.4: Resource Data Types for ACPI
301 1.2 thorpej *
302 1.2 thorpej * Used by the _CRS, _PRS, and _SRS methods.
303 1.2 thorpej */
304 1.2 thorpej
305 1.2 thorpej /*
306 1.2 thorpej * 7.1.4: _STA (Status) for power resource current state
307 1.2 thorpej */
308 1.1 thorpej #define ACPI_STA_POW_OFF 0 /* power resource off */
309 1.1 thorpej #define ACPI_STA_POW_ON 1 /* power resource on */
310