// Copyright (c) 2018, Intel Corporation.
// SPDX-License-Identifier: BSD-3-Clause

ifdef::manpage[]
ipmctl-show-system-capabilities(1)
==================================
endif::manpage[]

NAME
----
ipmctl-show-system-capabilities - Shows the platform supported PMem module capabilities.

SYNOPSIS
--------
[listing]
--
ipmctl show [OPTIONS] -system -capabilities
--

DESCRIPTION
-----------
Shows the capabilities of the current platform as determined by platform firmware
(BIOS) and this application.

OPTIONS
-------
-a::
-all::
  Shows all attributes.

NOTE: The all and display options are exclusive and may not be used together.

-d (attributes)::
-display (attributes)::
  Filters the returned attributes by explicitly specifying a comma separated
  list of any of the attributes defined in the Return Data section.

NOTE: The all and display options are exclusive and may not be used together.

-h::
-help::
  Displays help for the command.

-ddrt::
  Used to specify DDRT as the desired transport protocol for the current invocation of ipmctl.

-smbus::
  Used to specify SMBUS as the desired transport protocol for the current invocation of ipmctl.

NOTE: The -ddrt and -smbus options are mutually exclusive and may not be used together.

ifdef::os_build[]
-o (text|nvmxml)::
-output (text|nvmxml)::
  Changes the output format. One of: "text" (default) or "nvmxml".
endif::os_build[]

-u (B|MB|MiB|GB|GiB|TB| TiB)::
-units (B|MB|MiB|GB|GiB|TB| TiB)::
  Changes the units that capacities are displayed in for this command. One of:
  bytes (B), megabytes (MB), mebibytes (MiB), gigabytes (GB), gibibytes (GiB),
  terabytes (TB) or tebibytes (TiB).

EXAMPLES
--------
Displays the supported PMem module capabilities
[listing]
--
ipmctl show -system -capabilities
--

RETURN DATA
-----------
The default behavior is to return the default attributes listed below; the options can be
used to expand or restrict the output.

PlatformConfigSupported::
  (Default) Whether the platform level configuration of PMem modules can be modified
  with the host software. One of:
  * 0: Changes must be made in the BIOS.
  * 1: The command <<Create Memory Allocation Goal>> is supported.

Alignment::
  (Default) Capacity alignment requirement for all memory types as reported by the BIOS.

AllowedVolatileMode::
  (Default) The volatile mode allowed as determined by BIOS setup. One of:
  * 1LM: One-level volatile mode. All configured PMem module resources
    on the platform assigned for memory usage are not in use.
  * 2LM: Two-level volatile mode/Memory Mode. PMem module resources
    configured as memory act as system memory. Any DDR on the platform
    will act as a cache working in conjunction with the PMem modules.
  * Unknown: The allowed volatile mode cannot be determined.

CurrentVolatileMode::
  (Default) The current volatile mode. One of:
  * 1LM: One-level volatile mode. All configured PMem module resources
    on the platform assigned for memory usage are not in use.
  * 2LM: Two-level volatile mode/Memory Mode. PMem module resources
    configured as memory act as system memory. Any DDR on the platform
    will act as a cache working in conjunction with the PMem modules.
  * Unknown: The current volatile mode cannot be determined.

AllowedAppDirectMode::
  (Default) The App Direct mode allowed as determined by BIOS setup. One of:
  * Disabled: App Direct support is currently disabled by the BIOS.
  * App Direct: App Direct support is currently enabled by the BIOS.
  * Unknown: The current App Direct support cannot be determined.

ModesSupported::
  A list of PMem module modes supported by the BIOS. Refer to the command
  <<Show Dimm>> to determine the modes supported by the individual
  PMem modules. At least one of:
  * 1LM: One-level volatile mode. All configured PMem module resources
    on the platform assigned for memory usage are not in use.
  * 2LM: Two-level volatile mode/Memory Mode. PMem module resources
    configured as memory act as system memory. Any DDR on the platform
    will act as a cache working in conjunction with the PMem modules.
  * App Direct: PMem module resources are under direct load/store control
    of the application. DDR is unaffected.
  * Unknown: The current mode cannot be determined.

SupportedAppDirectSettings::
  The BIOS supported list of App Direct interleave settings in the format:
  * x[Way] - [(IMCSize) iMC x (ChannelSize) Channel] followed by the input
    format for the command <<Set Preferences>>:
    (ByOne|(IMCSize)_(ChannelSize)).

RecommendedAppDirectSettings::
  The BIOS recommended list of App Direct interleave settings in the format:
  * x[Way] - [(IMCSize) iMC x (ChannelSize) Channel] followed by the input format for
  the command <<Set Preferences>>:
  (ByOne|(IMCSize)_(ChannelSize)).

MinNamespaceSize::
  The minimum allowed namespace size as reported by the driver.

AppDirectMirrorSupported::
  If the BIOS supports App Direct mirroring. One of:
  * 0: Not supported
  * 1: Supported

DimmSpareSupported::
  If the BIOS supports PMem module sparing. One of:
  * 0: Not supported
  * 1: Supported

AppDirectMigrationSupported::
  If the BIOS supports App Direct migration. One of:
  * 0: Not supported
  * 1: Supported

RenameNamespaceSupported::
  If the host software supports renaming a namespace. One of:
  * 0: Not supported
  * 1: Supported

GrowAppDirectNamespaceSupported::
  If the host software supports increasing the capacity of an App Direct
  namespace. One of:
  * 0: Not supported
  * 1: Supported

ShrinkAppDirectNamespaceSupported::
  If the host software supports decreasing the capacity of an App Direct
  namespace. One of:
  * 0: Not supported
  * 1: Supported

InitiateScrubSupported::
  If the platform and host software support initiating an address range scrub on the
  PMem modules in the system. One of:
  * 0: Not supported
  * 1: Supported

AdrSupported::
  Whether the platform supports asynchronous DRAM refresh (ADR). One of:
  * 0: Not supported. If ADR is not supported, App Direct data integrity cannot be
    assured during system interruptions.
  * 1: Supported

EraseDeviceDataSupported::
  Whether Erase Device Data is supported.
  * 0: Not supported
  * 1: Supported

EnableDeviceSecuritySupported::
  Whether Enable Device Security is supported.
  * 0: Not supported
  * 1: Supported

DisableDeviceSecuritySupported::
  Whether Change Device Security property Lockstate = Disabled is supported.
  * 0: Not supported
  * 1: Supported

UnlockDeviceSecuritySupported::
  Whether Change Device Security property Lockstate = Unlocked is supported.
  * 0: Not supported
  * 1: Supported

FreezeDeviceSecuritySupported::
  Whether Change Device Security property Lockstate = Frozen is supported.
  * 0: Not supported
  * 1: Supported

ChangeDevicePassphraseSupported::
  Whether Change Device Passphrase is supported.
  * 0: Not supported
  * 1: Supported

ChangeMasterPassphraseSupported::
  Whether Change Master Passphrase is supported.
  * 0: Not supported
  * 1: Supported

MasterEraseDeviceDataSupported::
  Whether Master Erase Device Data is supported.
  * 0: Not supported
  * 1: Supported


