_DSM Interface for Byte Addressable Energy Backed Function Class (Function Interface 1)
This interface is designed to map to the JEDEC Byte Addressable Energy Backed Interface standard in order to minimize BIOS complexity. It provides a common basis of reporting device functions & capabilities, such that OS software can interact with various implementations through the same mechanisms. Further, it allows support for vendor-specific functionality through access to I2C registers.
Platforms that conform to _DSM Interface for Byte Addressable Energy Backed Function Class (Function Interface 1) can support an NVDIMM-N that implements the JEDEC Byte Addressable Energy Backed Interface specification (function class 0x01 and function interface 0x01 per JEDEC SPD Annex L: Serial Presence Detect for DDR4 SDRAM DDR4 SPD Document Release). For more info, see the JEDEC Byte Addressable Energy Backed Interface specification (document JESD245).
_DSM Interface for Byte Addressable Energy Backed Function Class, Function Interface 1
The _DSM GUID is 1EE68B36-D4BD-4a1a-9A16-4F8E53D46E05.
The _DSM functions defined in this document shall be implemented in NVDIMM ACPI Namespace Devices objects. The term Mandatory refers to whether the function must return valid data or not.
Mandatory functions and fields
The following table specifies the functions & fields that are mandatory.
_DSM Method Input
Arg3 to all functions is a Package value. If the function does not take an input argument, the Package value contains no data. If the function takes an input argument, the Package value contains a buffer.
If the function does not take an input argument and Arg3 is not an empty Package, the function shall return the General Status Code of Invalid Input Parameters.
_DSM Method Output
All methods will return a buffer of length greater than or equal to 4 bytes. The first 4 bytes of the return buffer are structured as follows:
|Field||Byte Length||Byte Offset||Description|
|General Status Code||2||0||
0 – Success
1 – Not Supported
2 – Invalid Input Parameters
3 – I2C Communication Error
4 – Function-Specific Error Code
5 – Vendor-Specific Error Code
6 - 0xFFFF – Reserved
|Function-Specific Error Code||1||2||This field contains an error code that is specific to the function that was called. This field only contains valid information if General Status Code is equal to Function-Specific Error Code.|
|Vendor-Specific Error Code||1||3||This field contains vendor-specific status codes. It only contains valid information if General Status Code is equal to Vendor-Specific Error Code.|
Any non-zero General Status Code indicates that the function failed. No function defined in this version of the specification shall return the General Status Code of Not Supported. All mandatory functions shall return valid data or an error code indicating a runtime error. Non-mandatory functions may return a Function-Specific Error Code to signal that there is no valid data to be returned.
All reserved bits and bytes shall have a value of 0. Unless specifically stated otherwise, all multi-byte fields shall be represented in a little-endian manner.
> [!Note] >A reference to a Byte Addressable Energy-Backed Interface register describes many return fields for functions specified in this interface. These fields shall be identical to the register defined in the "Byte Addressable Energy Backed Interface, version 1.0, JEDEC Standard No. 2233-22" revision of the Byte-Addressable Energy-Backed Interface specification. The specification version is reported in the Specification Revision field returned by the Get NVDIMM-N Identification (Function Index 1) function.
>Some return fields refer to information about the Energy Source (ES). When the ES policy is device-managed, the platform shall read the hardware register specified in the field description to retrieve all ES-related information. When the ES policy is host-managed, the platform shall obtain the ES-related information through platform-specific mechanisms. In this case, all ES-related information shall be presented in the same binary layout as the hardware register specified in the field description.