Mike Waychison | 74c5b31 | 2011-04-29 17:39:19 -0700 | [diff] [blame] | 1 | What: /sys/firmware/gsmi |
| 2 | Date: March 2011 |
| 3 | Contact: Mike Waychison <mikew@google.com> |
| 4 | Description: |
| 5 | Some servers used internally at Google have firmware |
| 6 | that provides callback functionality via explicit SMI |
| 7 | triggers. Some of the callbacks are similar to those |
| 8 | provided by the EFI runtime services page, but due to |
| 9 | historical reasons this different entry-point has been |
| 10 | used. |
| 11 | |
| 12 | The gsmi driver implements the kernel's abstraction for |
| 13 | these firmware callbacks. Currently, this functionality |
| 14 | is limited to handling the system event log and getting |
| 15 | access to EFI-style variables stored in nvram. |
| 16 | |
| 17 | Layout: |
| 18 | |
| 19 | /sys/firmware/gsmi/vars: |
| 20 | |
| 21 | This directory has the same layout (and |
| 22 | underlying implementation as /sys/firmware/efi/vars. |
| 23 | See Documentation/ABI/*/sysfs-firmware-efi-vars |
| 24 | for more information on how to interact with |
| 25 | this structure. |
| 26 | |
| 27 | /sys/firmware/gsmi/append_to_eventlog - write-only: |
| 28 | |
| 29 | This file takes a binary blob and passes it onto |
| 30 | the firmware to be timestamped and appended to |
| 31 | the system eventlog. The binary format is |
| 32 | interpreted by the firmware and may change from |
| 33 | platform to platform. The only kernel-enforced |
| 34 | requirement is that the blob be prefixed with a |
| 35 | 32bit host-endian type used as part of the |
| 36 | firmware call. |
| 37 | |
| 38 | /sys/firmware/gsmi/clear_config - write-only: |
| 39 | |
| 40 | Writing any value to this file will cause the |
| 41 | entire firmware configuration to be reset to |
| 42 | "factory defaults". Callers should assume that |
| 43 | a reboot is required for the configuration to be |
| 44 | cleared. |
| 45 | |
| 46 | /sys/firmware/gsmi/clear_eventlog - write-only: |
| 47 | |
| 48 | This file is used to clear out a portion/the |
| 49 | whole of the system event log. Values written |
| 50 | should be values between 1 and 100 inclusive (in |
| 51 | ASCII) representing the fraction of the log to |
| 52 | clear. Not all platforms support fractional |
| 53 | clearing though, and this writes to this file |
| 54 | will error out if the firmware doesn't like your |
| 55 | submitted fraction. |
| 56 | |
| 57 | Callers should assume that a reboot is needed |
| 58 | for this operation to complete. |