> -----Original Message-----
> From: Linux-nvdimm [mailto:[email protected]] On
> Behalf Of Soccer Liu
> Sent: Thursday, February 09, 2017 1:45 PM
> Subject: How is a Region format interface codec used in
> NFIT/PEME/BLK/BTT driver?
> 
>   I am trying to figure out what changes might be needed in the
> NVDIMM driver set for adding a new  Region format interface code.
> After some researching, I found the following constants were defined
> in the NFIT header file but never really got referenced in the driver
> code. (It's used in the test code)
> 64 #define NFIT_FIC_BYTE cpu_to_le16(0x101) /* byte-addressable
> energy backed */
>  65 #define NFIT_FIC_BLK cpu_to_le16(0x201) /* block-addressable non-
> energy backed */
>  66 #define NFIT_FIC_BYTEN cpu_to_le16(0x301) /* byte-addressable
> non-energy backed */

JEDEC is the underlying assignment authority for these values.

The ACPI specification defines how the system fills in the 2-byte
little-endian Region Format Interface Code field in the NFIT NVDIMM
Control Region Structure:

  "This field shall be set to the value of the NVDIMM SPD
  Function Interface descriptor for the function interface
  represented by the NVDIMM Control Region structure, with:
  a) byte 0 bits 7:5 set to 000b;
  b) byte 0 bits 4:0 set to the Function Interface field (i.e.,
  Function Interface descriptor bits 4:0);
  c) byte 1 bits 7:0 set to 000b; and
  d) byte 1 bits 4:0 set to the Function Class field (i.e.,
  Function Interface descriptor bits 9:5)."

The SPD EEPROM contents are defined by JESD21C Page 4.1.2.L
(Serial Presence Detect (SPD) for DDR4 SDRAM Modules):

For Function Class 0x0, Function Interface is:
  * 0x00 = proprietary
  * all others reserved

For Function Class 0x01, Function Interface is:
  * 0x00 = proprietary
  * 0x01 = JESD245 BAEBI (for NVDIMM-Ns)
  * all others reserved

For Function Class 0x02, Function Interface is:
  * 0x00 = proprietary
  * 0x01 = some yet-to-be defined
           block addressable interface
  * all others reserved

For Function Class 0x03, Function Interface is:
  * 0x00 = proprietary
  * 0x01 = some yet-to-be defined
           byte addressable non-energy backed interface
  * all others reserved

All other Function Class values are reserved.


---
Robert Elliott, HPE Persistent Memory


_______________________________________________
Linux-nvdimm mailing list
[email protected]
https://lists.01.org/mailman/listinfo/linux-nvdimm

Reply via email to