IMC(4D) Devices IMC(4D)

imcIntel memory controller driver

/dev/mc/mc*

The imc driver interfaces with the memory controller found on certain generations of Intel CPUs and provides a means for decoding physical addresses to the corresponding memory device. The imc driver plugs into the operating systems fault management framework providing additional details to the system about the memory topology and the ability to decode physical addresses into the corresponding portion of the memory hierarchy.

The imc driver is supported on the following Intel processors:

Other lines involving the above microarchitectures, such as Xeon E3 branded processors, are not supported as they do not provide the necessary hardware support.

The imc driver is a pseudo-device driver that amalgamates all of the different imcstub(4D) instances into a coherent view. The imcstub(4D) driver attaches to all of the different PCI devices that the processor exposes.

One challenge with the imc driver is the Intel Enhanced Machine Check Architecture v2 (EMCAv2). Many vendors use EMCAv2 to hide memory errors from the operating system. Such systems limit the effectiveness of the imc driver and the fault management architecture by hiding correctable and uncorrectable DIMM errors from the operating system.

The imc driver has a few limitations. Currently it does not always properly handle lockstep and mirroring mode, particularly in variants that are common on Skylake and newer systems. It also does not properly handle cases where Intel Optane NVDIMMs are in use on the memory bus.

The imc driver is only supported on specific Intel systems.

/platform/i86pc/kernel/drv/amd64/imc
64-bit device driver (x86).
/platform/i86pc/kernel/drv/imc.conf
Driver configuration file.

imcstub(4D), fmadm(8), fmdump(8)

June 25, 2019 OmniOS