| IMCSMB(4) | Device Drivers Manual | IMCSMB(4) | 
imcsmb —
imc* at pci? dev?
func?
imcsmb* at imc?
iic* at i2cbus?
Alternatively, to load the driver as a module at boot time, place the following line in boot.cfg(5):
load=imcsmbor add the following line to your /etc/modules file:
imcsmbimcsmb driver provides
  iic(4) support for the SMBus
  controller functionality in the integrated Memory Controllers (iMCs) embedded
  in Intel Sandybridge-Xeon, Ivybridge-Xeon, Haswell-Xeon, and Broadwell-Xeon
  CPUs. Each CPU implements one or more iMCs, depending on the number of cores;
  each iMC implements two SMBus controllers (iMC-SMBs). The iMC-SMBs are used by
  the iMCs to read configuration information from the DIMMs during POST. They
  may also be used, by motherboard firmware or a BMC, to monitor the temperature
  of the DIMMs.
The iMC-SMBs are not general-purpose SMBus controllers. By their nature, they are only ever attached to DIMMs, so they implement only the SMBus operations needed for communicating with DIMMs. Specifically:
A more detailed discussion of the hardware and driver architecture can be found at the top of sys/dev/imcsmb/imc.c.
DIMM temperature monitoring should be disabled before returning
    from imcsmb_pci_request_bus(), and re-enabled before
    returning from imcsmb_pci_release_bus(). The driver
    includes comments to that effect at the appropriate locations. The driver
    has been tested and shown to work, with only that type of modification, on
    certain motherboards from Intel. (Unfortunately, those modifications were
    based on material covered under a non-disclosure agreement, and therefore
    are not included in this driver.) The driver has also been tested and shown
    to work as-is on various motherboards from SuperMicro and ASUS.
Because of the above, the imcsmb driver is
    not included in the default GENERIC kernel. In order
    to use the imcsmb driver, you must compile a custom
    kernel, or load the driver using
    modload(8).
The iic(4) driver
    will connect to the i2cbus instances created by
    imcsmb.
imcsmb driver first appeared in
  FreeBSD 12.0. It was later ported to
  NetBSD 9.0.
imcsmb driver was originally written for Panasas by
  Joe Kloss. It was substantially refactored, and this
  manual page was written, by Ravi Pokala
  <rpokala@freebsd.org>.
  It was adapted to NetBSD by Paul
  Goyette
  <pgoyette@NetBSD.org>.
| February 28, 2018 | NetBSD 9.4 |