Intel 8 Series/C200 Series SMBus Controller

Issues related to hardware problems
Post Reply
dbkapogee
Posts: 7
Joined: 2010/08/19 23:55:42

Intel 8 Series/C200 Series SMBus Controller

Post by dbkapogee » 2015/04/16 10:38:42

I'm having difficulty accessing the SMBus controller on my computer.

Here is some info on my computer setup.

Code: Select all

[apogee@localhost ~]$ uname -a
Linux localhost.localdomain 3.10.0-229.1.2.el7.x86_64 #1 SMP Fri Mar 27 03:04:26 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

Code: Select all

[root@localhost apogee]# lspci -vvv
00:1f.3 SMBus: Intel Corporation 8 Series/C220 Series Chipset Family SMBus Controller (rev 05)
	Subsystem: Intel Corporation 8 Series/C220 Series Chipset Family SMBus Controller
	Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Interrupt: pin C routed to IRQ 18
	Region 0: Memory at f7c39000 (64-bit, non-prefetchable) [size=256]
	Region 4: I/O ports at f040 [size=32]

Code: Select all

[root@localhost apogee]# ll /sys/class/i2c-dev/
total 0
lrwxrwxrwx. 1 root root 0 Apr 16 06:31 i2c-0 -> ../../devices/pci0000:00/0000:00:02.0/i2c-0/i2c-dev/i2c-0
lrwxrwxrwx. 1 root root 0 Apr 16 06:31 i2c-1 -> ../../devices/pci0000:00/0000:00:02.0/i2c-1/i2c-dev/i2c-1
lrwxrwxrwx. 1 root root 0 Apr 16 06:31 i2c-2 -> ../../devices/pci0000:00/0000:00:02.0/i2c-2/i2c-dev/i2c-2
lrwxrwxrwx. 1 root root 0 Apr 16 06:31 i2c-3 -> ../../devices/pci0000:00/0000:00:02.0/i2c-3/i2c-dev/i2c-3
lrwxrwxrwx. 1 root root 0 Apr 16 06:31 i2c-4 -> ../../devices/pci0000:00/0000:00:02.0/i2c-4/i2c-dev/i2c-4
lrwxrwxrwx. 1 root root 0 Apr 16 06:31 i2c-5 -> ../../devices/pci0000:00/0000:00:02.0/i2c-5/i2c-dev/i2c-5
lrwxrwxrwx. 1 root root 0 Apr 16 06:31 i2c-6 -> ../../devices/pci0000:00/0000:00:02.0/i2c-6/i2c-dev/i2c-6
lrwxrwxrwx. 1 root root 0 Apr 16 06:31 i2c-7 -> ../../devices/pci0000:00/0000:00:02.0/i2c-7/i2c-dev/i2c-7
I see that lspci does not list a kernel driver for the controller. Additionally the i2c-dev devices do not list any device on 00:1f.3 to match the controller I'm interested in (00:02.0 is a Graphics controller).

I suspect that there is no native support for the controller in the kernel. Am I understantding this correctly? Can I add it?
My ultimate goal is interface to slaves of the SMBus controller from user space using i2c-dev.

Thanks,
David

User avatar
AlanBartlett
Forum Moderator
Posts: 9345
Joined: 2007/10/22 11:30:09
Location: ~/Earth/UK/England/Suffolk
Contact:

Re: Intel 8 Series/C200 Series SMBus Controller

Post by AlanBartlett » 2015/04/16 13:13:17

dbkapogee wrote:I'm having difficulty accessing the SMBus controller on my computer.

<snip>

I see that lspci does not list a kernel driver for the controller. Additionally the i2c-dev devices do not list any device on 00:1f.3 to match the controller I'm interested in (00:02.0 is a Graphics controller).

I suspect that there is no native support for the controller in the kernel. Am I understantding this correctly?
I suspect that you are correct. A quick test would be for you to install and boot the kernel-ml package that is available from the ELRepo Project.
Image 100% Linux and, previously, Unix. Co-founder of the ELRepo Project.

dbkapogee
Posts: 7
Joined: 2010/08/19 23:55:42

Re: Intel 8 Series/C200 Series SMBus Controller

Post by dbkapogee » 2015/04/16 14:57:45

AlanBartlett wrote: A quick test would be for you to install and boot the kernel-ml package that is available from the ELRepo Project.
Thanks for this. I get the same results after the kernel-ml update. I have a less flexible work around available that I'll have to use.

dbkapogee
Posts: 7
Joined: 2010/08/19 23:55:42

Re: Intel 8 Series/C200 Series SMBus Controller

Post by dbkapogee » 2015/04/17 21:02:39

Update on this issue. It turns out that my SMBus controller is supported my Linux. It was just being blocked by ACPI. Loading the i2c-i801 kernel module results in this message in /var/log/messages:

Code: Select all

Apr 17 16:53:34 localhost kernel: ACPI Warning: SystemIO range 0x000000000000f040-0x000000000000f05f conflicts with OpRegion 0x000000000000f040-0x000000000000f04f (\_SB_.PCI0.SBUS.SMBI) (20130517/utaddress-254)
Apr 17 16:53:34 localhost kernel: ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
Looking online it seems that the go-to workaround is to add the "acpi_enforce_resources=lax" kernel boot option. With this option the driver now loads, but I am wary of potential instabilities on my system.

Does anyone know any better ways to address this issue?

User avatar
TrevorH
Site Admin
Posts: 33218
Joined: 2009/09/24 10:40:56
Location: Brighton, UK

Re: Intel 8 Series/C200 Series SMBus Controller

Post by TrevorH » 2015/04/17 21:28:16

I've been using that kernel parameter since "I don't remember how long ago". Never seen any problems here.
The future appears to be RHEL or Debian. I think I'm going Debian.
Info for USB installs on http://wiki.centos.org/HowTos/InstallFromUSBkey
CentOS 5 and 6 are deadest, do not use them.
Use the FAQ Luke

Post Reply