[Skiboot] [PATCH 2/3] doc/errorlogging : Update details about error logging on FSP and BMC

Mukesh Ojha mukesh02 at linux.vnet.ibm.com
Wed Jul 13 15:28:53 AEST 2016


This patch add more description and example how errorlogging is independent of
the platform and also talks about how errorlogs committed on BMC systems.

Signed-off-by: Mukesh Ojha <mukesh02 at linux.vnet.ibm.com>
---
 doc/error-logging.txt | 48 ++++++++++++++++++++++++++++++++++++++++--------
 1 file changed, 40 insertions(+), 8 deletions(-)

diff --git a/doc/error-logging.txt b/doc/error-logging.txt
index 7c62520..db03046 100644
--- a/doc/error-logging.txt
+++ b/doc/error-logging.txt
@@ -178,16 +178,48 @@ Step 2: Data can be appended to the user data section using the either of
 	uint32_t tag: Unique value to identify the data.
                        Ideal to have ASCII value for 4-byte string.
 
-Step 3: Once all the data for an error is logged in, the error needs to be
-	committed in FSP.
+Step 3: There is a platform hook for the opal errorlog to be committed both on
+	FSP and BMC based machines.
 
-	rc = elog_fsp_commit(buf);
+	FSP:
+		.elog_commit            = elog_fsp_commit
+
+	Once all the data for an error is logged in, the error needs to
+	be committed in FSP.
+
+	rc = platform.elog_commit(elog);
 	Value of 0 is returned on success.
 
-In the process of committing an error to FSP, log info is first internally
-converted to PEL format and then pushed to the FSP. All the errors logged
-in Sapphire are again pushed up to POWERNV platform by the FSP and all the errors
-reported by Sapphire and POWERNV are logged in FSP.
+	In the process of committing an error to FSP, log info is first
+	internally converted to PEL format and then pushed to the FSP. All the
+	errors logged in Sapphire are again pushed up to POWERNV platform by the
+	FSP and all the errors reported by Sapphire and POWERNV are logged in
+	FSP.
+
+	BMC:
+		.elog_commit            = ipmi_elog_commit
+
+	rc = platform.elog_commit(elog);
+	Value of 0 is returned on success.
+
+	In case of BMC machines, errorlogs are committed to the BMC via IPMI
+	interface. Errorlogs are first converted to ESEL format then sent to
+	the BMC.
+
+e.g:
+	void log_commit(struct errorlog *elog)
+	{
+		....
+		....
+		if (platform.elog_commit) {
+			rc = platform.elog_commit(elog);
+			if (rc)
+				prerror("ELOG: Platform commit error %d\n", rc);
+			return;
+		}
+		....
+		....
+	}
 
 If the user does not intend to dump various user data sections, but just
 log the error with some amount of description around that error, they can do
@@ -196,7 +228,7 @@ so using just the simple error logging interface
 log_simple_error(uint32_t reason_code, char *fmt, ...);
 
 Eg: log_simple_error(OPAL_RC_SURVE_STATUS,
-			"SURV: Error retreiving surveillance status: %d\n",
+			"SURV: Error retrieving surveillance status: %d\n",
                        						err_len);
 
 Using the reason code, an error log is generated with the information derived
-- 
2.7.4



More information about the Skiboot mailing list