New nfpm.c driver available for testing

Vladimir Timofeev vovkasm at
Mon Dec 19 09:30:59 PST 2005

mb: Abit NF7

nfsmb0: <nForce2/3/4 MCP SMBus Controller> port 0xe400-0xe41f irq 11
at device 1.1 on pci0
smbus0: <System Management Bus> on nfsmb0
smb0: <SMBus generic I/O> on smbus0
nfsmb1: <nForce2/3/4 MCP SMBus Controller> on nfsmb0
smbus1: <System Management Bus> on nfsmb1
smb1: <SMBus generic I/O> on smbus1

root at vov# ./smbtest /dev/smb0
found slave device 8
found slave device 78
found slave device 81
found slave device 82
root at vov# ./smbtest /dev/smb1
found slave device 8

root at vov# mbmon -S -s0 -d
SMBus[NVidia nForce2] found, but No HWM available on it!!
InitMBInfo: Device not configured

root at vov# mbmon -S -s1 -d
SMBus[NVidia nForce2] found, but No HWM available on it!!
InitMBInfo: Device not configured

2005/12/19, Ruslan Ermilov <ru at>:
> On Mon, Dec 19, 2005 at 10:59:43AM +1300, Philip Murray wrote:
> > This is on a Dual Dual-Core Opteron 275 on a Tyan S2882-D motherboard
> > w/ 4GB of RAM running -amd64
> >
> I have the same motherboard.
> > root at stratos# dmesg | grep nf
> > nfpm0: <AMD-8111 SMBus 2.0 Controller> port 0xcc00-0xcc1f irq 19 at
> > device 7.2 on pci0
> > smbus0: <System Management Bus> on nfpm0
> >
> I figured that AMD-8111 uses an EC-based SMBus register access, so
> I've split the drivers into two: amdsmb(4) supports AMD-8111 SMBus
> 2.0 controller which uses EC to read/write SMBus registers, and
> nfsmb(4) supports NVIDIA nForce-2/3/4 MCP twin SMBus 2.0 controller
> that appears to use an I/O based access to SMBus registers.
> 1.
> Recompile everything in /sys/modules/i2c/ (create two directories,
> controllers/amdsmb and controllers/nfsmb before applying a patch).
> 2.
> Check with smbtest:
>   a) on nForce:
>         smbtest /dev/smb0
>         smbtest /dev/smb1
>   b) on AMD-8111:
>         smbtest
> All smbtest commands should include "slave 8" device which is
> the SMBus Host device.  If it didn't find any more devices, it
> means that you now have a working SMBus bus, which it otherwise
> useless on your system.  It if detects some other devices,
> chances are that some of them are xmbmon recognizeable sensors.
> 3.
> Make sure you compile the latest sysutils/xmbmon port which has
> smb(4) support ("mbmon" should have the -s option (lowercase ell)).
> 4.
> Substitute your PCI ID in xmbmon's pci_pm.h (see my original
> post that explains this in more detail).
> 5.
> On nForce2/3/4, run mbmon -S -s0 -d and mbmon -S -s1 -d.
> On AMD-8111, run mbmon -S -d.
> You may also want to s/-d/-D/ to verify it finds devices
> attached to SMBus, it's similar to smbtest.  If it finds any
> known sensors (my systems don't have them), you can run
> mbmon -S -s[01] -c8 1 to display eight probes with a one
> second interval.
> P.S.  I don't know how useful all of this is, since my systems
> don't seem to have any sensors attached to SMBus 2.0 busses.
> Cheers,
> --
> Ruslan Ermilov
> ru at
> FreeBSD committer

More information about the freebsd-current mailing list