~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/ABI/testing/sysfs-firmware-acpi

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/ABI/testing/sysfs-firmware-acpi (Version linux-6.12-rc7) and /Documentation/ABI/testing/sysfs-firmware-acpi (Version linux-4.16.18)


  1 What:           /sys/firmware/acpi/fpdt/       << 
  2 Date:           Jan 2021                       << 
  3 Contact:        Zhang Rui <rui.zhang@intel.com> << 
  4 Description:                                   << 
  5                 ACPI Firmware Performance Data << 
  6                 information for firmware perfo << 
  7                 S3 suspend and S3 resume. This << 
  8                 performance data retrieved fro << 
  9                                                << 
 10                 boot:                          << 
 11                         firmware_start_ns: Tim << 
 12                                 of firmware im << 
 13                         bootloader_load_ns: Ti << 
 14                                 loading the OS << 
 15                                 In nanoseconds << 
 16                         bootloader_launch_ns:  << 
 17                                 launching the  << 
 18                                 image. In nano << 
 19                         exitbootservice_start_ << 
 20                                 point when the << 
 21                                 ExitBootServic << 
 22                                 firmware. In n << 
 23                         exitbootservice_end_ns << 
 24                                 just prior to  << 
 25                                 back from the  << 
 26                                 UEFI compatibl << 
 27                 suspend:                       << 
 28                         suspend_start_ns: Time << 
 29                                 OS write to SL << 
 30                                 nanoseconds.   << 
 31                         suspend_end_ns: Timer  << 
 32                                 firmware write << 
 33                                 hardware entry << 
 34                 resume:                        << 
 35                         resume_count: A count  << 
 36                                 since the last << 
 37                         resume_avg_ns: Average << 
 38                                 logged since t << 
 39                                 including the  << 
 40                         resume_prev_ns: Timer  << 
 41                                 platform runti << 
 42                                 handoff to the << 
 43                                                << 
 44 What:           /sys/firmware/acpi/bgrt/            1 What:           /sys/firmware/acpi/bgrt/
 45 Date:           January 2012                        2 Date:           January 2012
 46 Contact:        Matthew Garrett <mjg@redhat.com      3 Contact:        Matthew Garrett <mjg@redhat.com>
 47 Description:                                        4 Description:
 48                 The BGRT is an ACPI 5.0 featur      5                 The BGRT is an ACPI 5.0 feature that allows the OS
 49                 to obtain a copy of the firmwa      6                 to obtain a copy of the firmware boot splash and
 50                 some associated metadata. This      7                 some associated metadata. This is intended to be used
 51                 by boot splash applications in      8                 by boot splash applications in order to interact with
 52                 the firmware boot splash in or      9                 the firmware boot splash in order to avoid jarring
 53                 transitions.                       10                 transitions.
 54                                                    11 
 55                 image: The image bitmap. Curre     12                 image: The image bitmap. Currently a 32-bit BMP.
 56                 status: 1 if the image is vali     13                 status: 1 if the image is valid, 0 if firmware invalidated it.
 57                 type: 0 indicates image is in      14                 type: 0 indicates image is in BMP format.
 58                                                << 
 59                 ======== ===================== << 
 60                 version: The version of the BG     15                 version: The version of the BGRT. Currently 1.
 61                 xoffset: The number of pixels      16                 xoffset: The number of pixels between the left of the screen
 62                          and the left edge of      17                          and the left edge of the image.
 63                 yoffset: The number of pixels      18                 yoffset: The number of pixels between the top of the screen
 64                          and the top edge of t     19                          and the top edge of the image.
 65                 ======== ===================== << 
 66                                                    20 
 67 What:           /sys/firmware/acpi/hotplug/        21 What:           /sys/firmware/acpi/hotplug/
 68 Date:           February 2013                      22 Date:           February 2013
 69 Contact:        Rafael J. Wysocki <rafael.j.wys     23 Contact:        Rafael J. Wysocki <rafael.j.wysocki@intel.com>
 70 Description:                                       24 Description:
 71                 There are separate hotplug pro     25                 There are separate hotplug profiles for different classes of
 72                 devices supported by ACPI, suc     26                 devices supported by ACPI, such as containers, memory modules,
 73                 processors, PCI root bridges e     27                 processors, PCI root bridges etc.  A hotplug profile for a given
 74                 class of devices is a collecti     28                 class of devices is a collection of settings defining the way
 75                 that class of devices will be      29                 that class of devices will be handled by the ACPI core hotplug
 76                 code.  Those profiles are repr     30                 code.  Those profiles are represented in sysfs as subdirectories
 77                 of /sys/firmware/acpi/hotplug/     31                 of /sys/firmware/acpi/hotplug/.
 78                                                    32 
 79                 The following setting is avail     33                 The following setting is available to user space for each
 80                 hotplug profile:                   34                 hotplug profile:
 81                                                    35 
 82                 ======== ===================== << 
 83                 enabled: If set, the ACPI core     36                 enabled: If set, the ACPI core will handle notifications of
 84                          hotplug events associ !!  37                         hotplug events associated with the given class of
 85                          devices and will allo !!  38                         devices and will allow those devices to be ejected with
 86                          the help of the _EJ0  !!  39                         the help of the _EJ0 control method.  Unsetting it
 87                          effectively disables  !!  40                         effectively disables hotplug for the correspoinding
 88                          class of devices.     !!  41                         class of devices.
 89                 ======== ===================== << 
 90                                                    42 
 91                 The value of the above attribu     43                 The value of the above attribute is an integer number: 1 (set)
 92                 or 0 (unset).  Attempts to wri     44                 or 0 (unset).  Attempts to write any other values to it will
 93                 cause -EINVAL to be returned.      45                 cause -EINVAL to be returned.
 94                                                    46 
 95 What:           /sys/firmware/acpi/interrupts/     47 What:           /sys/firmware/acpi/interrupts/
 96 Date:           February 2008                      48 Date:           February 2008
 97 Contact:        Len Brown <lenb@kernel.org>         49 Contact:        Len Brown <lenb@kernel.org>
 98 Description:                                       50 Description:
 99                 All ACPI interrupts are handle     51                 All ACPI interrupts are handled via a single IRQ,
100                 the System Control Interrupt (     52                 the System Control Interrupt (SCI), which appears
101                 as "acpi" in /proc/interrupts.     53                 as "acpi" in /proc/interrupts.
102                                                    54 
103                 However, one of the main funct     55                 However, one of the main functions of ACPI is to make
104                 the platform understand random     56                 the platform understand random hardware without
105                 special driver support.  So wh     57                 special driver support.  So while the SCI handles a few
106                 well known (fixed feature) int     58                 well known (fixed feature) interrupts sources, such
107                 as the power button, it can al     59                 as the power button, it can also handle a variable
108                 number of a "General Purpose E     60                 number of a "General Purpose Events" (GPE).
109                                                    61 
110                 A GPE vectors to a specified h     62                 A GPE vectors to a specified handler in AML, which
111                 can do a anything the BIOS wri     63                 can do a anything the BIOS writer wants from
112                 OS context.  GPE 0x12, for exa     64                 OS context.  GPE 0x12, for example, would vector
113                 to a level or edge handler cal     65                 to a level or edge handler called _L12 or _E12.
114                 The handler may do its busines     66                 The handler may do its business and return.
115                 Or the handler may send send a     67                 Or the handler may send send a Notify event
116                 to a Linux device driver regis     68                 to a Linux device driver registered on an ACPI device,
117                 such as a battery, or a proces     69                 such as a battery, or a processor.
118                                                    70 
119                 To figure out where all the SC     71                 To figure out where all the SCI's are coming from,
120                 /sys/firmware/acpi/interrupts      72                 /sys/firmware/acpi/interrupts contains a file listing
121                 every possible source, and the     73                 every possible source, and the count of how many
122                 times it has triggered::       !!  74                 times it has triggered.
123                                                    75 
124                   $ cd /sys/firmware/acpi/inte !!  76                 $ cd /sys/firmware/acpi/interrupts
125                   $ grep . *                   !!  77                 $ grep . *
126                   error:             0         !!  78                 error:       0
127                   ff_gbl_lock:       0   enabl !!  79                 ff_gbl_lock:       0   enable
128                   ff_pmtimer:        0  invali !!  80                 ff_pmtimer:       0  invalid
129                   ff_pwr_btn:        0   enabl !!  81                 ff_pwr_btn:       0   enable
130                   ff_rt_clk:         2  disabl !!  82                 ff_rt_clk:       2  disable
131                   ff_slp_btn:        0  invali !!  83                 ff_slp_btn:       0  invalid
132                   gpe00:             0  invali !!  84                 gpe00:       0  invalid
133                   gpe01:             0   enabl !!  85                 gpe01:       0   enable
134                   gpe02:           108   enabl !!  86                 gpe02:     108   enable
135                   gpe03:             0  invali !!  87                 gpe03:       0  invalid
136                   gpe04:             0  invali !!  88                 gpe04:       0  invalid
137                   gpe05:             0  invali !!  89                 gpe05:       0  invalid
138                   gpe06:             0   enabl !!  90                 gpe06:       0   enable
139                   gpe07:             0   enabl !!  91                 gpe07:       0   enable
140                   gpe08:             0  invali !!  92                 gpe08:       0  invalid
141                   gpe09:             0  invali !!  93                 gpe09:       0  invalid
142                   gpe0A:             0  invali !!  94                 gpe0A:       0  invalid
143                   gpe0B:             0  invali !!  95                 gpe0B:       0  invalid
144                   gpe0C:             0  invali !!  96                 gpe0C:       0  invalid
145                   gpe0D:             0  invali !!  97                 gpe0D:       0  invalid
146                   gpe0E:             0  invali !!  98                 gpe0E:       0  invalid
147                   gpe0F:             0  invali !!  99                 gpe0F:       0  invalid
148                   gpe10:             0  invali !! 100                 gpe10:       0  invalid
149                   gpe11:             0  invali !! 101                 gpe11:       0  invalid
150                   gpe12:             0  invali !! 102                 gpe12:       0  invalid
151                   gpe13:             0  invali !! 103                 gpe13:       0  invalid
152                   gpe14:             0  invali !! 104                 gpe14:       0  invalid
153                   gpe15:             0  invali !! 105                 gpe15:       0  invalid
154                   gpe16:             0  invali !! 106                 gpe16:       0  invalid
155                   gpe17:          1084   enabl !! 107                 gpe17:    1084   enable
156                   gpe18:             0   enabl !! 108                 gpe18:       0   enable
157                   gpe19:             0  invali !! 109                 gpe19:       0  invalid
158                   gpe1A:             0  invali !! 110                 gpe1A:       0  invalid
159                   gpe1B:             0  invali !! 111                 gpe1B:       0  invalid
160                   gpe1C:             0  invali !! 112                 gpe1C:       0  invalid
161                   gpe1D:             0  invali !! 113                 gpe1D:       0  invalid
162                   gpe1E:             0  invali !! 114                 gpe1E:       0  invalid
163                   gpe1F:             0  invali !! 115                 gpe1F:       0  invalid
164                   gpe_all:        1192         !! 116                 gpe_all:    1192
165                   sci:            1194         !! 117                 sci:    1194
166                   sci_not:           0         !! 118                 sci_not:     0  
167                                                !! 119 
168                 ===========  ================= !! 120                 sci - The number of times the ACPI SCI
169                 sci          The number of tim !! 121                 has been called and claimed an interrupt.
170                              has been called a !! 122 
171                                                !! 123                 sci_not - The number of times the ACPI SCI
172                 sci_not      The number of tim !! 124                 has been called and NOT claimed an interrupt.
173                              has been called a !! 125 
174                                                !! 126                 gpe_all - count of SCI caused by GPEs.
175                 gpe_all      count of SCI caus !! 127 
176                                                !! 128                 gpeXX - count for individual GPE source
177                 gpeXX        count for individ !! 129 
178                                                !! 130                 ff_gbl_lock - Global Lock
179                 ff_gbl_lock  Global Lock       !! 131 
180                                                !! 132                 ff_pmtimer - PM Timer
181                 ff_pmtimer   PM Timer          !! 133 
182                                                !! 134                 ff_pwr_btn - Power Button
183                 ff_pwr_btn   Power Button      !! 135 
184                                                !! 136                 ff_rt_clk - Real Time Clock
185                 ff_rt_clk    Real Time Clock   !! 137 
186                                                !! 138                 ff_slp_btn - Sleep Button
187                 ff_slp_btn   Sleep Button      !! 139 
188                                                !! 140                 error - an interrupt that can't be accounted for above.
189                 error        an interrupt that !! 141 
190                                                !! 142                 invalid: it's either a GPE or a Fixed Event that
191                 invalid      it's either a GPE !! 143                         doesn't have an event handler.
192                              doesn't have an e !! 144 
193                                                !! 145                 disable: the GPE/Fixed Event is valid but disabled.
194                 disable      the GPE/Fixed Eve << 
195                                                << 
196                 enable       the GPE/Fixed Eve << 
197                 ===========  ================= << 
198                                                   146 
199                 Root has permission to clear a !! 147                 enable: the GPE/Fixed Event is valid and enabled.
200                                                   148 
201                   # echo 0 > gpe11             !! 149                 Root has permission to clear any of these counters.  Eg.
                                                   >> 150                 # echo 0 > gpe11
202                                                   151 
203                 All counters can be cleared by !! 152                 All counters can be cleared by clearing the total "sci":
204                                                !! 153                 # echo 0 > sci
205                   # echo 0 > sci               << 
206                                                   154 
207                 None of these counters has an     155                 None of these counters has an effect on the function
208                 of the system, they are simply    156                 of the system, they are simply statistics.
209                                                   157 
210                 Besides this, user can also wr    158                 Besides this, user can also write specific strings to these files
211                 to enable/disable/clear ACPI i    159                 to enable/disable/clear ACPI interrupts in user space, which can be
212                 used to debug some ACPI interr    160                 used to debug some ACPI interrupt storm issues.
213                                                   161 
214                 Note that only writing to VALI    162                 Note that only writing to VALID GPE/Fixed Event is allowed,
215                 i.e. user can only change the     163                 i.e. user can only change the status of runtime GPE and
216                 Fixed Event with event handler    164                 Fixed Event with event handler installed.
217                                                   165 
218                 Let's take power button fixed     166                 Let's take power button fixed event for example, please kill acpid
219                 and other user space applicati    167                 and other user space applications so that the machine won't shutdown
220                 when pressing the power button !! 168                 when pressing the power button.
221                                                !! 169                 # cat ff_pwr_btn
222                   # cat ff_pwr_btn             !! 170                 0       enabled
223                   0     enabled                !! 171                 # press the power button for 3 times;
224                   # press the power button for !! 172                 # cat ff_pwr_btn
225                   # cat ff_pwr_btn             !! 173                 3       enabled
226                   3     enabled                !! 174                 # echo disable > ff_pwr_btn
227                   # echo disable > ff_pwr_btn  !! 175                 # cat ff_pwr_btn
228                   # cat ff_pwr_btn             !! 176                 3       disabled
229                   3     disabled               !! 177                 # press the power button for 3 times;
230                   # press the power button for !! 178                 # cat ff_pwr_btn
231                   # cat ff_pwr_btn             !! 179                 3       disabled
232                   3     disabled               !! 180                 # echo enable > ff_pwr_btn
233                   # echo enable > ff_pwr_btn   !! 181                 # cat ff_pwr_btn
234                   # cat ff_pwr_btn             !! 182                 4       enabled
235                   4     enabled                !! 183                 /*
236                   /*                           !! 184                  * this is because the status bit is set even if the enable bit is cleared,
237                    * this is because the statu !! 185                  * and it triggers an ACPI fixed event when the enable bit is set again
238                    * bit is cleared, and it tr !! 186                  */
239                    * the enable bit is set aga !! 187                 # press the power button for 3 times;
240                    */                          !! 188                 # cat ff_pwr_btn
241                   # press the power button for !! 189                 7       enabled
242                   # cat ff_pwr_btn             !! 190                 # echo disable > ff_pwr_btn
243                   7     enabled                !! 191                 # press the power button for 3 times;
244                   # echo disable > ff_pwr_btn  !! 192                 # echo clear > ff_pwr_btn       /* clear the status bit */
245                   # press the power button for !! 193                 # echo disable > ff_pwr_btn
246                   # echo clear > ff_pwr_btn    !! 194                 # cat ff_pwr_btn
247                   # echo disable > ff_pwr_btn  !! 195                 7       enabled
248                   # cat ff_pwr_btn             << 
249                   7     enabled                << 
250                                                   196 
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php