Date: Wed, 28 May 2003 15:13:27 +0300 (EEST) From: Dmitry Pryanishnikov <dmitry@atlantis.dp.ua> To: FreeBSD-gnats-submit@FreeBSD.org Subject: kern/52752: [PATCH] SMBus controller on ICH4 not recognized in -STABLE Message-ID: <200305281213.h4SCDRwp095565@atlantis.dp.ua> Resent-Message-ID: <200305281220.h4SCKFvj064875@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 52752 >Category: kern >Synopsis: [PATCH] SMBus controller on ICH4 not recognized in -STABLE >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Wed May 28 05:20:14 PDT 2003 >Closed-Date: >Last-Modified: >Originator: Dmitry Pryanishnikov >Release: FreeBSD 4.7-RELEASE i386 >Organization: Atlantis ISP >Environment: System: FreeBSD atlantis.atlantis.dp.ua 4.7-RELEASE FreeBSD 4.7-RELEASE #0: Sat Mar 29 14:01:49 EET 2003 root@atlantis.atlantis.dp.ua:/usr/src/sys/compile/ATLANTIS i386 Intel D845EBG2 motherboard, south bridge is ICH4. >Description: 4-STABLE doesn't recognize SMBus controller in ICH4 southbridge, dmesg shows only one line: ichsmb0: <SMBus controller> port 0xe000-0xe01f irq 11 at device 31.3 on pci0 and no "smbus0:" or "smb0:" lines, healthd -S doesn't work (device not configured). Motherboards with ICH4 are popular, and there is thermal monitor chip on SMBus that would be nice to access. >How-To-Repeat: Build custom kernel with the following options on 4-STABLE: device smbus device ichsmb device smb Boot it on motherboard with ICH4 southbridge. Note that there is no smb0 device. >Fix: Apply the following patch in /sys/dev/ichsmb (this is actually an MFC of revision 1.5): ======================================================================== --- ichsmb_pci.c.orig Sun Oct 20 00:00:00 2002 +++ ichsmb_pci.c Fri Apr 25 12:14:00 2003 @@ -41,7 +41,7 @@ /* * Support for the SMBus controller logical device which is part of the - * Intel 81801AA (ICH) and 81801AB (ICH0) I/O controller hub chips. + * Intel 81801AA/AB/BA/CA/DC (ICH/ICH[0234]) I/O controller hub chips. */ #include <sys/param.h> @@ -68,6 +68,7 @@ #define ID_82801AB 0x24238086 #define ID_82801BA 0x24438086 #define ID_82801CA 0x24838086 +#define ID_82801DC 0x24C38086 #define PCIS_SERIALBUS_SMBUS_PROGIF 0x00 @@ -125,6 +126,9 @@ break; case ID_82801CA: device_set_desc(dev, "Intel 82801CA (ICH3) SMBus controller"); + break; + case ID_82801DC: + device_set_desc(dev, "Intel 82801DC (ICH4) SMBus controller"); break; default: if (pci_get_class(dev) == PCIC_SERIALBUS ======================================================================== Rebuild and install kernel, reboot. Now dmesg's output will contain: ichsmb0: <Intel 82801DC (ICH4) SMBus controller> port 0xe000-0xe01f irq 11 at device 31.3 on pci0 smbus0: <System Management Bus> on ichsmb0 smb0: <SMBus general purpose I/O> on smbus0 and SMBus access works correctly (tested with my own healthd patch for AD1025 thermal monitor). >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200305281213.h4SCDRwp095565>