// 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 memory resources in the platform are
    independently accessible, and not captive of the other resources.
  - Memory Mode: PMem modules act as system memory under the control of the
    operating system. In Memory Mode, any DDR in 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 memory resources in the platform are
    independently accessible, and not captive of the other resources.
  - Memory Mode: PMem modules act as system memory under the control of the
    operating system. In Memory Mode, any DDR in 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 Device_* to determine the modes supported by the individual
  PMem modules. One or more of:
  - 1LM: One-level volatile mode. All memory resources in the platform are
    independently accessible, and not captive of the other resources.
  - Memory Mode: PMem modules act as system memory under the control of the
    operating system. In Memory Mode, any DDR in the platform will act as a cache
    working in conjunction with the PMem modules.
  - App Direct: PMem modules and DDR act as independent memory resources
    under direct load/store control of the application.

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 *_Change 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 *_Change 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


