162306a36Sopenharmony_ciWhat: /sys/firmware/gsmi 262306a36Sopenharmony_ciDate: March 2011 362306a36Sopenharmony_ciContact: Mike Waychison <mikew@google.com> 462306a36Sopenharmony_ciDescription: 562306a36Sopenharmony_ci Some servers used internally at Google have firmware 662306a36Sopenharmony_ci that provides callback functionality via explicit SMI 762306a36Sopenharmony_ci triggers. Some of the callbacks are similar to those 862306a36Sopenharmony_ci provided by the EFI runtime services page, but due to 962306a36Sopenharmony_ci historical reasons this different entry-point has been 1062306a36Sopenharmony_ci used. 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ci The gsmi driver implements the kernel's abstraction for 1362306a36Sopenharmony_ci these firmware callbacks. Currently, this functionality 1462306a36Sopenharmony_ci is limited to handling the system event log and getting 1562306a36Sopenharmony_ci access to EFI-style variables stored in nvram. 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ci Layout: 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ci /sys/firmware/gsmi/vars: 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_ci This directory has the same layout (and 2262306a36Sopenharmony_ci underlying implementation as /sys/firmware/efi/vars. 2362306a36Sopenharmony_ci See `Documentation/ABI/*/sysfs-firmware-efi-vars` 2462306a36Sopenharmony_ci for more information on how to interact with 2562306a36Sopenharmony_ci this structure. 2662306a36Sopenharmony_ci 2762306a36Sopenharmony_ci /sys/firmware/gsmi/append_to_eventlog - write-only: 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_ci This file takes a binary blob and passes it onto 3062306a36Sopenharmony_ci the firmware to be timestamped and appended to 3162306a36Sopenharmony_ci the system eventlog. The binary format is 3262306a36Sopenharmony_ci interpreted by the firmware and may change from 3362306a36Sopenharmony_ci platform to platform. The only kernel-enforced 3462306a36Sopenharmony_ci requirement is that the blob be prefixed with a 3562306a36Sopenharmony_ci 32bit host-endian type used as part of the 3662306a36Sopenharmony_ci firmware call. 3762306a36Sopenharmony_ci 3862306a36Sopenharmony_ci /sys/firmware/gsmi/clear_config - write-only: 3962306a36Sopenharmony_ci 4062306a36Sopenharmony_ci Writing any value to this file will cause the 4162306a36Sopenharmony_ci entire firmware configuration to be reset to 4262306a36Sopenharmony_ci "factory defaults". Callers should assume that 4362306a36Sopenharmony_ci a reboot is required for the configuration to be 4462306a36Sopenharmony_ci cleared. 4562306a36Sopenharmony_ci 4662306a36Sopenharmony_ci /sys/firmware/gsmi/clear_eventlog - write-only: 4762306a36Sopenharmony_ci 4862306a36Sopenharmony_ci This file is used to clear out a portion/the 4962306a36Sopenharmony_ci whole of the system event log. Values written 5062306a36Sopenharmony_ci should be values between 1 and 100 inclusive (in 5162306a36Sopenharmony_ci ASCII) representing the fraction of the log to 5262306a36Sopenharmony_ci clear. Not all platforms support fractional 5362306a36Sopenharmony_ci clearing though, and this writes to this file 5462306a36Sopenharmony_ci will error out if the firmware doesn't like your 5562306a36Sopenharmony_ci submitted fraction. 5662306a36Sopenharmony_ci 5762306a36Sopenharmony_ci Callers should assume that a reboot is needed 5862306a36Sopenharmony_ci for this operation to complete. 59