freebsd-skq/sys/dev/nvdimm
kib f09f11ca04 nvdimm: only enumerate present nvdimm devices
Not all child devices of the NVDIMM root device represent DIMM devices
which are present in the system. The spec says (ACPI 6.2, sec 9.20.2):

    For each NVDIMM present or intended to be supported by platform,
    platform firmware also exposes an NVDIMM device ... under the
    NVDIMM root device.

Present NVDIMM devices are found by walking all of the NFIT table's
SPA ranges, then walking the NVDIMM regions mentioned by those SPA
ranges.

A set of NFIT walking helper functions are introduced to avoid the
need to splat the enumeration logic across several disparate
callbacks.

Submitted by:	D Scott Phillips <d.scott.phillips@intel.com>
Sponsored by:	Intel Corporation
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D18439
2019-01-31 22:47:04 +00:00
..
nvdimm_nfit.c nvdimm: only enumerate present nvdimm devices 2019-01-31 22:47:04 +00:00
nvdimm_spa.c nvdimm: enumerate NVDIMM SPA ranges from the root device 2019-01-31 22:43:20 +00:00
nvdimm_var.h nvdimm: only enumerate present nvdimm devices 2019-01-31 22:47:04 +00:00
nvdimm.c nvdimm: only enumerate present nvdimm devices 2019-01-31 22:47:04 +00:00