diff options
-rw-r--r-- | core/cpu.c | 10 | ||||
-rw-r--r-- | doc/opal-api/opal-reinit-cpus-70.rst | 8 | ||||
-rw-r--r-- | include/opal-api.h | 2 |
3 files changed, 20 insertions, 0 deletions
@@ -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 { |