From 6ba9a7790919fc430ddf1539579fdb4e9e7bba0d Mon Sep 17 00:00:00 2001 From: Adam Muhle Date: Wed, 23 Jan 2013 08:53:04 -0600 Subject: Triggering Hostboot Shutdown when PNOR is bad Updating the doShutdown path to support receiving a reason code as input. Then changing PNOR RP to issue a shutdown when problems are detected with the PNOR Partition table. RTC: 44146 Change-Id: Ib4111d0a91f53d90fa100422a1463539897598e6 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/3024 Tested-by: Jenkins Server Reviewed-by: Daniel M. Crowell Reviewed-by: A. Patrick Williams III --- src/include/kernel/kernel_reasoncodes.H | 5 ++++- src/include/usr/errl/errlmanager.H | 18 +++++++++++++++++- src/include/usr/pnor/pnor_reasoncodes.H | 3 +++ 3 files changed, 24 insertions(+), 2 deletions(-) (limited to 'src/include') diff --git a/src/include/kernel/kernel_reasoncodes.H b/src/include/kernel/kernel_reasoncodes.H index fe4748a19..f76d0993b 100644 --- a/src/include/kernel/kernel_reasoncodes.H +++ b/src/include/kernel/kernel_reasoncodes.H @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2012 */ +/* COPYRIGHT International Business Machines Corp. 2012,2013 */ /* */ /* p1 */ /* */ @@ -36,6 +36,9 @@ enum KernelReasonCode { + //NOTE: RC_ASSERT and RC_SHUTDOWN must be used in one unique + // locationto maintain uniqueness as they will be used + // without a MODULE ID. RC_ASSERT = KERNEL_COMP_ID | 0x01, /**< Assert */ RC_SHUTDOWN = KERNEL_COMP_ID | 0x02, /**< Shutdown */ }; diff --git a/src/include/usr/errl/errlmanager.H b/src/include/usr/errl/errlmanager.H index 3b9ad6572..75a5ae25e 100644 --- a/src/include/usr/errl/errlmanager.H +++ b/src/include/usr/errl/errlmanager.H @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2011,2012 */ +/* COPYRIGHT International Business Machines Corp. 2011,2013 */ /* */ /* p1 */ /* */ @@ -175,6 +175,22 @@ private: ERRLOG_SHUTDOWN = 0x00000033 | MBOX::FIRST_SECURE_MSG, }; + /** + * @enum ERRORLOG_PLID_OFFSET + * + * Base ID of Hostboot PLIDs. The hostboot plid range is 0x90 to 0x93 + * (For each instance running on a multinode system. Eventually the + * offset will need to be offset for the proper node and possibly some + * other initializer sent from FSP to keep PLIDs unique across IPLs. + * + * NOTE: Changes to this define may require changes to + * CpuManager::requestShutdown + */ + enum ERRORLOG_PLID_OFFSET + { + ERRLOG_PLID_BASE = 0x90000000, /**< Hostboot Base PLID Offset */ + }; + /** * @brief Disabled copy constructor and assignment operator */ diff --git a/src/include/usr/pnor/pnor_reasoncodes.H b/src/include/usr/pnor/pnor_reasoncodes.H index e8ad6341d..e580e2242 100644 --- a/src/include/usr/pnor/pnor_reasoncodes.H +++ b/src/include/usr/pnor/pnor_reasoncodes.H @@ -66,6 +66,9 @@ namespace PNOR RC_BAD_STARTUP_RC = PNOR_COMP_ID | 0x09, RC_UNSUPORTED_HARDWARE = PNOR_COMP_ID | 0x0A, RC_MICRON_INCOMPLETE = PNOR_COMP_ID | 0x0B, + //RC_PARTITION_TABLE_INVALID Must be Unique by itself + // for Shutdown path + RC_PARTITION_TABLE_INVALID = PNOR_COMP_ID | 0x0C, }; }; -- cgit v1.2.1