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