xref: /OK3568_Linux_fs/kernel/Documentation/ABI/testing/sysfs-firmware-gsmi (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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