diff options
| author | Dean Sanner <dsanner@us.ibm.com> | 2017-06-01 14:05:18 -0500 |
|---|---|---|
| committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2017-06-08 10:10:23 -0400 |
| commit | f195e428f6b6494c5789c0833291321f564b058e (patch) | |
| tree | ebb1485e5fd0a5b5eb0aaa5be754bbb6fb0d0e57 /src/include | |
| parent | 4c586e2298ffafed3c1979784e1626868bd46f58 (diff) | |
| download | talos-hostboot-f195e428f6b6494c5789c0833291321f564b058e.tar.gz talos-hostboot-f195e428f6b6494c5789c0833291321f564b058e.zip | |
Dynamic ATTR Override support via debug interface
-Supported by debug tools (ecmd-debug-framework/Cronus)
Only in istep mode and between isteps
Requires HB to be running
-Uses output of attributeOverride tool (same format as ATTR_TMP)
-Introduces two new "debug" isteps
255,4,set_attr_overrides
255,5,clear_attr_overrides
-Once istep is triggered Hostboot sends down address/size
and the debug tool uses putmempba to push data to cache/mem.
Then Hostboot consumes just like ATTR_TMP
Change-Id: I4ade7b85acac077a15bdb36bba1ef9df4263b428
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/41271
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Reviewed-by: Prachi Gupta <pragupta@us.ibm.com>
Reviewed-by: Martin Gloff <mgloff@us.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/include')
| -rw-r--r-- | src/include/usr/fapi2/plat_attr_override_sync.H | 17 | ||||
| -rw-r--r-- | src/include/usr/isteps/spless_255list.H | 14 | ||||
| -rw-r--r-- | src/include/usr/util/utilmbox_scratch.H | 3 | ||||
| -rw-r--r-- | src/include/usr/vmmconst.h | 4 |
4 files changed, 36 insertions, 2 deletions
diff --git a/src/include/usr/fapi2/plat_attr_override_sync.H b/src/include/usr/fapi2/plat_attr_override_sync.H index 83d8fff53..4be640e33 100644 --- a/src/include/usr/fapi2/plat_attr_override_sync.H +++ b/src/include/usr/fapi2/plat_attr_override_sync.H @@ -227,6 +227,23 @@ public: void triggerAttrSync(); /** + * @brief This function will clear all attribute overrides in effect. + * This function is called by the debug interface + * + */ + void clearAttrOverrides(); + + /** + * @brief This function will allow the debug interface to set + * attribut overrides "dynamically" at any point in the IPL + * between isteps. The debug interface is used to process + * the attributes in the same format as the ATTR_TMP and ATTR_PERM + * PNOR partition binary blobs + * + */ + void dynSetAttrOverrides(); + + /** * @brief This function actually sends the FAPI Sync tank attributes * across the debug interface */ diff --git a/src/include/usr/isteps/spless_255list.H b/src/include/usr/isteps/spless_255list.H index 3f445ce37..8eb69b7bd 100644 --- a/src/include/usr/isteps/spless_255list.H +++ b/src/include/usr/isteps/spless_255list.H @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2012,2016 */ +/* Contributors Listed Below - COPYRIGHT 2012,2017 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -64,6 +64,8 @@ namespace INITSERVICE const uint8_t CTL_CONT_TRACE_ENABLE = 0x01; const uint8_t FLUSH_TRACE_BUFS = 0x02; const uint8_t DUMP_FAPI_ATTR = 0x03; + const uint8_t SET_ATTR_OVERRIDES = 0x04; + const uint8_t CLEAR_ATTR_OVERRIDES = 0x05; const TaskInfo g_istep255[] = { @@ -87,6 +89,16 @@ namespace INITSERVICE NULL, { NONE, EXT_IMAGE, IPL_NOOP, false } }, + { + ISTEPNAME(255,4, "set_attr_overrides"), + NULL, + { NONE, EXT_IMAGE, IPL_NOOP, false } + }, + { + ISTEPNAME(255,5, "clear_attr_overrides"), + NULL, + { NONE, EXT_IMAGE, IPL_NOOP, false } + }, }; const DepModInfo g_istep255Dependancies = { diff --git a/src/include/usr/util/utilmbox_scratch.H b/src/include/usr/util/utilmbox_scratch.H index dd9584c18..31d67b8ee 100644 --- a/src/include/usr/util/utilmbox_scratch.H +++ b/src/include/usr/util/utilmbox_scratch.H @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2012,2016 */ +/* Contributors Listed Below - COPYRIGHT 2012,2017 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -60,6 +60,7 @@ namespace Util MSG_TYPE_TRACE = 0x00, MSG_TYPE_ATTRDUMP = 0x01, + MSG_TYPE_ATTROVERRIDE = 0x02, }; diff --git a/src/include/usr/vmmconst.h b/src/include/usr/vmmconst.h index 8c73b9867..2f25d7d14 100644 --- a/src/include/usr/vmmconst.h +++ b/src/include/usr/vmmconst.h @@ -102,6 +102,10 @@ #define VMM_VADDR_SBE_UPDATE (3 * GIGABYTE) #define VMM_SBE_UPDATE_SIZE (900 * KILOBYTE) #define VMM_VADDR_SBE_UPDATE_END (VMM_VADDR_SBE_UPDATE + VMM_SBE_UPDATE_SIZE) +/** Debug Comm Channel is at 3.5GB, uses 32KB */ +#define VMM_VADDR_DEBUG_COMM ((3 * GIGABYTE) + (500 * MEGABYTE)) +#define VMM_DEBUG_COMM_SIZE (32 * KILOBYTE) +#define VMM_VADDR_DEBUG_COMM_END (VMM_VADDR_DEBUG_COMM + VMM_DEBUG_COMM_SIZE) /** Attribute Resource Provider */ // Note: Not simplified to make it easier to extract with the PNOR targeting |

