tree: drop last paragraph of GPL copyright header
[coreboot.git] / src / southbridge / intel / lynxpoint / acpi / globalnvs.asl
blobcbc3bd7e7f58d0bd053a83708fc782451aea2360
1 /*
2  * This file is part of the coreboot project.
3  *
4  * Copyright (C) 2007-2009 coresystems GmbH
5  * Copyright (C) 2012 The Chromium OS Authors
6  *
7  * This program is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License as
9  * published by the Free Software Foundation; version 2 of
10  * the License.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  */
18 /* Global Variables */
20 Name(\PICM, 0)          // IOAPIC/8259
21 Name(\DSEN, 1)          // Display Output Switching Enable
23 /* Global ACPI memory region. This region is used for passing information
24  * between coreboot (aka "the system bios"), ACPI, and the SMI handler.
25  * Since we don't know where this will end up in memory at ACPI compile time,
26  * we have to fix it up in coreboot's ACPI creation phase.
27  */
29 External(NVSA)
30 OperationRegion (GNVS, SystemMemory, NVSA, 0xf00)
31 Field (GNVS, ByteAcc, NoLock, Preserve)
33         /* Miscellaneous */
34         Offset (0x00),
35         OSYS,   16,     // 0x00 - Operating System
36         SMIF,    8,     // 0x02 - SMI function
37         PRM0,    8,     // 0x03 - SMI function parameter
38         PRM1,    8,     // 0x04 - SMI function parameter
39         SCIF,    8,     // 0x05 - SCI function
40         PRM2,    8,     // 0x06 - SCI function parameter
41         PRM3,    8,     // 0x07 - SCI function parameter
42         LCKF,    8,     // 0x08 - Global Lock function for EC
43         PRM4,    8,     // 0x09 - Lock function parameter
44         PRM5,    8,     // 0x0a - Lock function parameter
45         P80D,   32,     // 0x0b - Debug port (IO 0x80) value
46         LIDS,    8,     // 0x0f - LID state (open = 1)
47         PWRS,    8,     // 0x10 - Power State (AC = 1)
48         /* Thermal policy */
49         Offset (0x11),
50         TLVL,    8,     // 0x11 - Throttle Level Limit
51         FLVL,    8,     // 0x12 - Current FAN Level
52         TCRT,    8,     // 0x13 - Critical Threshold
53         TPSV,    8,     // 0x14 - Passive Threshold
54         TMAX,    8,     // 0x15 - CPU Tj_max
55         F0OF,    8,     // 0x16 - FAN 0 OFF Threshold
56         F0ON,    8,     // 0x17 - FAN 0 ON Threshold
57         F0PW,    8,     // 0x18 - FAN 0 PWM value
58         F1OF,    8,     // 0x19 - FAN 1 OFF Threshold
59         F1ON,    8,     // 0x1a - FAN 1 ON Threshold
60         F1PW,    8,     // 0x1b - FAN 1 PWM value
61         F2OF,    8,     // 0x1c - FAN 2 OFF Threshold
62         F2ON,    8,     // 0x1d - FAN 2 ON Threshold
63         F2PW,    8,     // 0x1e - FAN 2 PWM value
64         F3OF,    8,     // 0x1f - FAN 3 OFF Threshold
65         F3ON,    8,     // 0x20 - FAN 3 ON Threshold
66         F3PW,    8,     // 0x21 - FAN 3 PWM value
67         F4OF,    8,     // 0x22 - FAN 4 OFF Threshold
68         F4ON,    8,     // 0x23 - FAN 4 ON Threshold
69         F4PW,    8,     // 0x24 - FAN 4 PWM value
70         TMPS,    8,     // 0x25 - Temperature Sensor ID
71         /* Processor Identification */
72         Offset (0x28),
73         APIC,    8,     // 0x28 - APIC Enabled by coreboot
74         MPEN,    8,     // 0x29 - Multi Processor Enable
75         PCP0,    8,     // 0x2a - PDC CPU/CORE 0
76         PCP1,    8,     // 0x2b - PDC CPU/CORE 1
77         PPCM,    8,     // 0x2c - Max. PPC state
78         PCNT,    8,     // 0x2d - Processor count
79         /* Super I/O & CMOS config */
80         Offset (0x32),
81         NATP,    8,     // 0x32 -
82         S5U0,    8,     // 0x33 - Enable USB0 in S5
83         S5U1,    8,     // 0x34 - Enable USB1 in S5
84         S3U0,    8,     // 0x35 - Enable USB0 in S3
85         S3U1,    8,     // 0x36 - Enable USB1 in S3
86         S33G,    8,     // 0x37 - Enable 3G in S3
87         CMEM,    32,    // 0x38 - CBMEM TOC
88         /* Integrated Graphics Device */
89         Offset (0x3c),
90         IGDS,    8,     // 0x3c - IGD state (primary = 1)
91         TLST,    8,     // 0x3d - Display Toggle List pointer
92         CADL,    8,     // 0x3e - Currently Attached Devices List
93         PADL,    8,     // 0x3f - Previously Attached Devices List
94         CSTE,   16,     // 0x40 - Current display state
95         NSTE,   16,     // 0x42 - Next display state
96         SSTE,   16,     // 0x44 - Set display state
97         Offset (0x46),
98         NDID,    8,     // 0x46 - Number of Device IDs
99         DID1,   32,     // 0x47 - Device ID 1
100         DID2,   32,     // 0x4b - Device ID 2
101         DID3,   32,     // 0x4f - Device ID 3
102         DID4,   32,     // 0x53 - Device ID 4
103         DID5,   32,     // 0x57 - Device ID 5
105         /* TPM support */
106         Offset (0x5b),
107         TPMP,    8,     // 0x5b - TPM Present
108         TPME,    8,     // 0x5c - TPM Enable
110         /* LynxPoint Serial IO device BARs */
111         Offset (0x60),
112         S0B0,   32,     // 0x60 - D21:F0 Serial IO SDMA BAR0
113         S1B0,   32,     // 0x64 - D21:F1 Serial IO I2C0 BAR0
114         S2B0,   32,     // 0x68 - D21:F2 Serial IO I2C1 BAR0
115         S3B0,   32,     // 0x6c - D21:F3 Serial IO SPI0 BAR0
116         S4B0,   32,     // 0x70 - D21:F4 Serial IO SPI1 BAR0
117         S5B0,   32,     // 0x74 - D21:F5 Serial IO UAR0 BAR0
118         S6B0,   32,     // 0x78 - D21:F6 Serial IO UAR1 BAR0
119         S7B0,   32,     // 0x7c - D23:F0 Serial IO SDIO BAR0
120         S0B1,   32,     // 0x80 - D21:F0 Serial IO SDMA BAR1
121         S1B1,   32,     // 0x84 - D21:F1 Serial IO I2C0 BAR1
122         S2B1,   32,     // 0x88 - D21:F2 Serial IO I2C1 BAR1
123         S3B1,   32,     // 0x8c - D21:F3 Serial IO SPI0 BAR1
124         S4B1,   32,     // 0x90 - D21:F4 Serial IO SPI1 BAR1
125         S5B1,   32,     // 0x94 - D21:F5 Serial IO UAR0 BAR1
126         S6B1,   32,     // 0x98 - D21:F6 Serial IO UAR1 BAR1
127         S7B1,   32,     // 0x9c - D23:F0 Serial IO SDIO BAR1
129         Offset (0xa0),
130         CBMC, 32,       // 0xa0 - coreboot mem console pointer
132         /* IGD OpRegion */
133         Offset (0xb4),
134         ASLB,   32,     // 0xb4 - IGD OpRegion Base Address
135         IBTT,    8,     // 0xb8 - IGD boot panel device
136         IPAT,    8,     // 0xb9 - IGD panel type cmos option
137         ITVF,    8,     // 0xba - IGD TV format cmos option
138         ITVM,    8,     // 0xbb - IGD TV minor format option
139         IPSC,    8,     // 0xbc - IGD panel scaling
140         IBLC,    8,     // 0xbd - IGD BLC config
141         IBIA,    8,     // 0xbe - IGD BIA config
142         ISSC,    8,     // 0xbf - IGD SSC config
143         I409,    8,     // 0xc0 - IGD 0409 modified settings
144         I509,    8,     // 0xc1 - IGD 0509 modified settings
145         I609,    8,     // 0xc2 - IGD 0609 modified settings
146         I709,    8,     // 0xc3 - IGD 0709 modified settings
147         IDMM,    8,     // 0xc4 - IGD Power conservation feature
148         IDMS,    8,     // 0xc5 - IGD DVMT memory size
149         IF1E,    8,     // 0xc6 - IGD function 1 enable
150         HVCO,    8,     // 0xc7 - IGD HPLL VCO
151         NXD1,   32,     // 0xc8 - IGD _DGS next DID1
152         NXD2,   32,     // 0xcc - IGD _DGS next DID2
153         NXD3,   32,     // 0xd0 - IGD _DGS next DID3
154         NXD4,   32,     // 0xd4 - IGD _DGS next DID4
155         NXD5,   32,     // 0xd8 - IGD _DGS next DID5
156         NXD6,   32,     // 0xdc - IGD _DGS next DID6
157         NXD7,   32,     // 0xe0 - IGD _DGS next DID7
158         NXD8,   32,     // 0xe4 - IGD _DGS next DID8
160         ISCI,    8,     // 0xe8 - IGD SMI/SCI mode (0: SCI)
161         PAVP,    8,     // 0xe9 - IGD PAVP data
162         Offset (0xeb),
163         OSCC,    8,     // 0xeb - PCIe OSC control
164         NPCE,    8,     // 0xec - native pcie support
165         PLFL,    8,     // 0xed - platform flavor
166         BREV,    8,     // 0xee - board revision
167         DPBM,    8,     // 0xef - digital port b mode
168         DPCM,    8,     // 0xf0 - digital port c mode
169         DPDM,    8,     // 0xf1 - digital port d mode
170         ALFP,    8,     // 0xf2 - active lfp
171         IMON,    8,     // 0xf3 - current graphics turbo imon value
172         MMIO,    8,     // 0xf4 - 64bit mmio support
174         /* ChromeOS specific */
175         Offset (0x100),
176         #include <vendorcode/google/chromeos/acpi/gnvs.asl>
179 /* Set flag to enable USB charging in S3 */
180 Method (S3UE)
182         Store (One, \S3U0)
183         Store (One, \S3U1)
186 /* Set flag to disable USB charging in S3 */
187 Method (S3UD)
189         Store (Zero, \S3U0)
190         Store (Zero, \S3U1)
193 /* Set flag to enable USB charging in S5 */
194 Method (S5UE)
196         Store (One, \S5U0)
197         Store (One, \S5U1)
200 /* Set flag to disable USB charging in S5 */
201 Method (S5UD)
203         Store (Zero, \S5U0)
204         Store (Zero, \S5U1)
207 /* Set flag to enable 3G module in S3 */
208 Method (S3GE)
210         Store (One, \S33G)
213 /* Set flag to disable 3G module in S3 */
214 Method (S3GD)
216         Store (Zero, \S33G)
219 External (\_TZ.THRM)
220 External (\_TZ.SKIN)
222 Method (TZUP)
224         /* Update Primary Thermal Zone */
225         If (CondRefOf (\_TZ.THRM, Local0)) {
226                 Notify (\_TZ.THRM, 0x81)
227         }
229         /* Update Secondary Thermal Zone */
230         If (CondRefOf (\_TZ.SKIN, Local0)) {
231                 Notify (\_TZ.SKIN, 0x81)
232         }
235 /* Update Fan 0 thresholds */
236 Method (F0UT, 2)
238         Store (Arg0, \F0OF)
239         Store (Arg1, \F0ON)
240         TZUP ()
243 /* Update Fan 1 thresholds */
244 Method (F1UT, 2)
246         Store (Arg0, \F1OF)
247         Store (Arg1, \F1ON)
248         TZUP ()
251 /* Update Fan 2 thresholds */
252 Method (F2UT, 2)
254         Store (Arg0, \F2OF)
255         Store (Arg1, \F2ON)
256         TZUP ()
259 /* Update Fan 3 thresholds */
260 Method (F3UT, 2)
262         Store (Arg0, \F3OF)
263         Store (Arg1, \F3ON)
264         TZUP ()
267 /* Update Fan 4 thresholds */
268 Method (F4UT, 2)
270         Store (Arg0, \F4OF)
271         Store (Arg1, \F4ON)
272         TZUP ()
275 /* Update Temperature Sensor ID */
276 Method (TMPU, 1)
278         Store (Arg0, \TMPS)
279         TZUP ()