9.20.5. 加载 NVDIMM 驱动程序
虽然使用 ACPI 名称空间设备允许 OS 以标准方式处理 NVDIMM,但该方案所描述的地址范围格式仍可能因供应商而异(甚至同一供应商的不同 NVDIMM 版本之间也可能不同)。例如,块控制窗口支持的命令和值是供应商特定的,并且对于某一给定供应商也可能有所不同。
NVDIMM 控制区域结构(见第 5.2.25.6 节)包含 Vendor ID、Device ID 和 Revision ID。由于 NVDIMM 可能是由不同区域类型组成的组合设备(例如,持久内存和块),因此还包括 Region Format Interface Code,以指示区域类型以及该类型内的具体实现。这使得不同供应商之间以及同一供应商提供的产品内部都可以存在差异。
这些字段使得能够加载用于管理 NVDIMM 以及处理 NVDIMM 所支持地址范围的驱动程序。Region Format Interface Code 用于加载以下通用驱动程序:管理驱动程序、持久内存驱动程序和块驱动程序。上述各项的供应商特定驱动程序可通过匹配 Vendor ID、Device ID 和 Revision ID(以及 Region Format Interface Code)来加载。
所有符合规范的 NVDIMM 都应满足 Region Format Interface Code 要求。任何供应商特定扩展仅允许在 Region Format Interface Code 要求之上进行扩展。
假定 OSPM 能够基于此类发现加载特定于 Region Format Interface Code 的驱动程序或供应商特定驱动程序。该方案如下面的图所示。

图 9.8 供应商/设备特定驱动程序加载
Subsystem Vendor ID、Subsystem Device ID 和 Subsystem Revision ID 字段允许选择可能跨多个供应商设备的特定解决方案提供商驱动程序。