aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/cpu.c10
-rw-r--r--doc/opal-api/opal-reinit-cpus-70.rst8
-rw-r--r--include/opal-api.h2
3 files changed, 20 insertions, 0 deletions
diff --git a/core/cpu.c b/core/cpu.c
index be0e451..27e0d6c 100644
--- a/core/cpu.c
+++ b/core/cpu.c
@@ -1383,6 +1383,16 @@ static int64_t opal_reinit_cpus(uint64_t flags)
flags &= ~(OPAL_REINIT_CPUS_HILE_BE | OPAL_REINIT_CPUS_HILE_LE);
}
+ if (flags & OPAL_REINIT_CPUS_TM_SUSPEND_DISABLED) {
+ flags &= ~OPAL_REINIT_CPUS_TM_SUSPEND_DISABLED;
+
+ /*
+ * Pending a hostboot change we can't determine the status of
+ * this, so it always fails.
+ */
+ rc = OPAL_UNSUPPORTED;
+ }
+
/* Handle P8 DD1 SLW reinit */
if (flags != 0 && proc_gen == proc_gen_p8 && !hile_supported)
rc = slw_reinit(flags);
diff --git a/doc/opal-api/opal-reinit-cpus-70.rst b/doc/opal-api/opal-reinit-cpus-70.rst
index 0eb6704..bee350d 100644
--- a/doc/opal-api/opal-reinit-cpus-70.rst
+++ b/doc/opal-api/opal-reinit-cpus-70.rst
@@ -17,6 +17,7 @@ Currently, possible flags are: ::
OPAL_REINIT_CPUS_HILE_LE = (1 << 1),
OPAL_REINIT_CPUS_MMU_HASH = (1 << 2),
OPAL_REINIT_CPUS_MMU_RADIX = (1 << 3),
+ OPAL_REINIT_CPUS_TM_SUSPEND_DISABLED = (1 << 4),
};
Extra flags may be added in the future, so other bits *must* be 0.
@@ -30,6 +31,13 @@ are support and other bits *MUST NOT* be set.
On POWER9 CPUs, all options including OPAL_REINIT_CPUS_MMU_HASH and
OPAL_REINIT_CPUS_MMU_RADIX.
+OPAL_REINIT_CPUS_TM_SUSPEND_DISABLED
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+This flag requests that CPUs be configured with TM (Transactional Memory)
+suspend mode disabled. This may only be supported on some CPU versions.
+
+
Returns
-------
diff --git a/include/opal-api.h b/include/opal-api.h
index 0ff0db0..0bc036e 100644
--- a/include/opal-api.h
+++ b/include/opal-api.h
@@ -1033,6 +1033,8 @@ enum {
*/
OPAL_REINIT_CPUS_MMU_HASH = (1 << 2),
OPAL_REINIT_CPUS_MMU_RADIX = (1 << 3),
+
+ OPAL_REINIT_CPUS_TM_SUSPEND_DISABLED = (1 << 4),
};
typedef struct oppanel_line {