162306a36Sopenharmony_ciWhat: /sys/firmware/opal/elog 262306a36Sopenharmony_ciDate: Feb 2014 362306a36Sopenharmony_ciContact: Stewart Smith <stewart@linux.vnet.ibm.com> 462306a36Sopenharmony_ciDescription: 562306a36Sopenharmony_ci This directory exposes error log entries retrieved 662306a36Sopenharmony_ci through the OPAL firmware interface. 762306a36Sopenharmony_ci 862306a36Sopenharmony_ci Each error log is identified by a unique ID and will 962306a36Sopenharmony_ci exist until explicitly acknowledged to firmware. 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ci Each log entry has a directory in /sys/firmware/opal/elog. 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ci Log entries may be purged by the service processor 1462306a36Sopenharmony_ci before retrieved by firmware or retrieved/acknowledged by 1562306a36Sopenharmony_ci Linux if there is no room for more log entries. 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ci In the event that Linux has retrieved the log entries 1862306a36Sopenharmony_ci but not explicitly acknowledged them to firmware and 1962306a36Sopenharmony_ci the service processor needs more room for log entries, 2062306a36Sopenharmony_ci the only remaining copy of a log message may be in 2162306a36Sopenharmony_ci Linux. 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_ci Typically, a user space daemon will monitor for new 2462306a36Sopenharmony_ci entries, read them out and acknowledge them. 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_ci The service processor may be able to store more log 2762306a36Sopenharmony_ci entries than firmware can, so after you acknowledge 2862306a36Sopenharmony_ci an event from Linux you may instantly get another one 2962306a36Sopenharmony_ci from the queue that was generated some time in the past. 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_ci The raw log format is a binary format. We currently 3262306a36Sopenharmony_ci do not parse this at all in kernel, leaving it up to 3362306a36Sopenharmony_ci user space to solve the problem. In future, we may 3462306a36Sopenharmony_ci do more parsing in kernel and add more files to make 3562306a36Sopenharmony_ci it easier for simple user space processes to extract 3662306a36Sopenharmony_ci more information. 3762306a36Sopenharmony_ci 3862306a36Sopenharmony_ci For each log entry (directory), there are the following 3962306a36Sopenharmony_ci files: 4062306a36Sopenharmony_ci 4162306a36Sopenharmony_ci ============== ================================================ 4262306a36Sopenharmony_ci id: An ASCII representation of the ID of the 4362306a36Sopenharmony_ci error log, in hex - e.g. "0x01". 4462306a36Sopenharmony_ci 4562306a36Sopenharmony_ci type: An ASCII representation of the type id and 4662306a36Sopenharmony_ci description of the type of error log. 4762306a36Sopenharmony_ci Currently just "0x00 PEL" - platform error log. 4862306a36Sopenharmony_ci In the future there may be additional types. 4962306a36Sopenharmony_ci 5062306a36Sopenharmony_ci raw: A read-only binary file that can be read 5162306a36Sopenharmony_ci to get the raw log entry. These are 5262306a36Sopenharmony_ci <16kb, often just hundreds of bytes and 5362306a36Sopenharmony_ci "average" 2kb. 5462306a36Sopenharmony_ci 5562306a36Sopenharmony_ci acknowledge: Writing 'ack' to this file will acknowledge 5662306a36Sopenharmony_ci the error log to firmware (and in turn 5762306a36Sopenharmony_ci the service processor, if applicable). 5862306a36Sopenharmony_ci Shortly after acknowledging it, the log 5962306a36Sopenharmony_ci entry will be removed from sysfs. 6062306a36Sopenharmony_ci Reading this file will list the supported 6162306a36Sopenharmony_ci operations (currently just acknowledge). 6262306a36Sopenharmony_ci ============== ================================================ 63