summaryrefslogtreecommitdiffstats
path: root/src/include
diff options
context:
space:
mode:
authorDean Sanner <dsanner@us.ibm.com>2017-06-01 14:05:18 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2017-06-08 10:10:23 -0400
commitf195e428f6b6494c5789c0833291321f564b058e (patch)
treeebb1485e5fd0a5b5eb0aaa5be754bbb6fb0d0e57 /src/include
parent4c586e2298ffafed3c1979784e1626868bd46f58 (diff)
downloadtalos-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.H17
-rw-r--r--src/include/usr/isteps/spless_255list.H14
-rw-r--r--src/include/usr/util/utilmbox_scratch.H3
-rw-r--r--src/include/usr/vmmconst.h4
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
OpenPOWER on IntegriCloud