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