]> git.karo-electronics.de Git - karo-tx-linux.git/blob - Documentation/ABI/testing/sysfs-firmware-acpi
Merge branches 'x86-asm-for-linus', 'x86-cleanups-for-linus', 'x86-cpu-for-linus...
[karo-tx-linux.git] / Documentation / ABI / testing / sysfs-firmware-acpi
1 What:           /sys/firmware/acpi/bgrt/
2 Date:           January 2012
3 Contact:        Matthew Garrett <mjg@redhat.com>
4 Description:
5                 The BGRT is an ACPI 5.0 feature that allows the OS
6                 to obtain a copy of the firmware boot splash and
7                 some associated metadata. This is intended to be used
8                 by boot splash applications in order to interact with
9                 the firmware boot splash in order to avoid jarring
10                 transitions.
11
12                 image: The image bitmap. Currently a 32-bit BMP.
13                 status: 1 if the image is valid, 0 if firmware invalidated it.
14                 type: 0 indicates image is in BMP format.
15                 version: The version of the BGRT. Currently 1.
16                 xoffset: The number of pixels between the left of the screen
17                          and the left edge of the image.
18                 yoffset: The number of pixels between the top of the screen
19                          and the top edge of the image.
20
21 What:           /sys/firmware/acpi/interrupts/
22 Date:           February 2008
23 Contact:        Len Brown <lenb@kernel.org>
24 Description:
25                 All ACPI interrupts are handled via a single IRQ,
26                 the System Control Interrupt (SCI), which appears
27                 as "acpi" in /proc/interrupts.
28
29                 However, one of the main functions of ACPI is to make
30                 the platform understand random hardware without
31                 special driver support.  So while the SCI handles a few
32                 well known (fixed feature) interrupts sources, such
33                 as the power button, it can also handle a variable
34                 number of a "General Purpose Events" (GPE).
35
36                 A GPE vectors to a specified handler in AML, which
37                 can do a anything the BIOS writer wants from
38                 OS context.  GPE 0x12, for example, would vector
39                 to a level or edge handler called _L12 or _E12.
40                 The handler may do its business and return.
41                 Or the handler may send send a Notify event
42                 to a Linux device driver registered on an ACPI device,
43                 such as a battery, or a processor.
44
45                 To figure out where all the SCI's are coming from,
46                 /sys/firmware/acpi/interrupts contains a file listing
47                 every possible source, and the count of how many
48                 times it has triggered.
49
50                 $ cd /sys/firmware/acpi/interrupts
51                 $ grep . *
52                 error:       0
53                 ff_gbl_lock:       0   enable
54                 ff_pmtimer:       0  invalid
55                 ff_pwr_btn:       0   enable
56                 ff_rt_clk:       2  disable
57                 ff_slp_btn:       0  invalid
58                 gpe00:       0  invalid
59                 gpe01:       0   enable
60                 gpe02:     108   enable
61                 gpe03:       0  invalid
62                 gpe04:       0  invalid
63                 gpe05:       0  invalid
64                 gpe06:       0   enable
65                 gpe07:       0   enable
66                 gpe08:       0  invalid
67                 gpe09:       0  invalid
68                 gpe0A:       0  invalid
69                 gpe0B:       0  invalid
70                 gpe0C:       0  invalid
71                 gpe0D:       0  invalid
72                 gpe0E:       0  invalid
73                 gpe0F:       0  invalid
74                 gpe10:       0  invalid
75                 gpe11:       0  invalid
76                 gpe12:       0  invalid
77                 gpe13:       0  invalid
78                 gpe14:       0  invalid
79                 gpe15:       0  invalid
80                 gpe16:       0  invalid
81                 gpe17:    1084   enable
82                 gpe18:       0   enable
83                 gpe19:       0  invalid
84                 gpe1A:       0  invalid
85                 gpe1B:       0  invalid
86                 gpe1C:       0  invalid
87                 gpe1D:       0  invalid
88                 gpe1E:       0  invalid
89                 gpe1F:       0  invalid
90                 gpe_all:    1192
91                 sci:    1194
92                 sci_not:     0  
93
94                 sci - The number of times the ACPI SCI
95                 has been called and claimed an interrupt.
96
97                 sci_not - The number of times the ACPI SCI
98                 has been called and NOT claimed an interrupt.
99
100                 gpe_all - count of SCI caused by GPEs.
101
102                 gpeXX - count for individual GPE source
103
104                 ff_gbl_lock - Global Lock
105
106                 ff_pmtimer - PM Timer
107
108                 ff_pwr_btn - Power Button
109
110                 ff_rt_clk - Real Time Clock
111
112                 ff_slp_btn - Sleep Button
113
114                 error - an interrupt that can't be accounted for above.
115
116                 invalid: it's either a GPE or a Fixed Event that
117                         doesn't have an event handler.
118
119                 disable: the GPE/Fixed Event is valid but disabled.
120
121                 enable: the GPE/Fixed Event is valid and enabled.
122
123                 Root has permission to clear any of these counters.  Eg.
124                 # echo 0 > gpe11
125
126                 All counters can be cleared by clearing the total "sci":
127                 # echo 0 > sci
128
129                 None of these counters has an effect on the function
130                 of the system, they are simply statistics.
131
132                 Besides this, user can also write specific strings to these files
133                 to enable/disable/clear ACPI interrupts in user space, which can be
134                 used to debug some ACPI interrupt storm issues.
135
136                 Note that only writting to VALID GPE/Fixed Event is allowed,
137                 i.e. user can only change the status of runtime GPE and
138                 Fixed Event with event handler installed.
139
140                 Let's take power button fixed event for example, please kill acpid
141                 and other user space applications so that the machine won't shutdown
142                 when pressing the power button.
143                 # cat ff_pwr_btn
144                 0       enabled
145                 # press the power button for 3 times;
146                 # cat ff_pwr_btn
147                 3       enabled
148                 # echo disable > ff_pwr_btn
149                 # cat ff_pwr_btn
150                 3       disabled
151                 # press the power button for 3 times;
152                 # cat ff_pwr_btn
153                 3       disabled
154                 # echo enable > ff_pwr_btn
155                 # cat ff_pwr_btn
156                 4       enabled
157                 /*
158                  * this is because the status bit is set even if the enable bit is cleared,
159                  * and it triggers an ACPI fixed event when the enable bit is set again
160                  */
161                 # press the power button for 3 times;
162                 # cat ff_pwr_btn
163                 7       enabled
164                 # echo disable > ff_pwr_btn
165                 # press the power button for 3 times;
166                 # echo clear > ff_pwr_btn       /* clear the status bit */
167                 # echo disable > ff_pwr_btn
168                 # cat ff_pwr_btn
169                 7       enabled
170