Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 12 Aug 2003 16:54:09 +0200
From:      Stijn Hoop <stijn@win.tue.nl>
To:        Igor Pokrovsky <igor.pokrovsky@cnrm.meteo.fr>, Don Bowman <don@sandvine.com>, freebsd-stable@freebsd.org
Subject:   Re: support of SMBus on ICH3
Message-ID:  <20030812145409.GC59732@pcwin002.win.tue.nl>
In-Reply-To: <20030812144000.GA4013@exmatis1.cnrm.meteo.fr>
References:  <FE045D4D9F7AED4CBFF1B3B813C853370274224D@mail.sandvine.com> <20030812134634.GA3783@exmatis1.cnrm.meteo.fr> <20030812140550.GZ59732@pcwin002.win.tue.nl> <20030812141318.GA59732@pcwin002.win.tue.nl> <20030812144000.GA4013@exmatis1.cnrm.meteo.fr>

next in thread | previous in thread | raw e-mail | index | archive | help

--keoAwTxaagou87Dg
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Tue, Aug 12, 2003 at 04:40:00PM +0200, Igor Pokrovsky wrote:
> On Tue, Aug 12, 2003 at 04:13:18PM +0200, Stijn Hoop wrote:
> > On Tue, Aug 12, 2003 at 04:05:50PM +0200, Stijn Hoop wrote:
> > > 1000011000001001
> > >=20
> > > which shows that bit 3 is not set counting either way :(
> >=20
> > Doh. I need more coffee. Obviously bit 3 _is_ set.
> >=20
> > The question remains then:
> >=20
> > > So how do I set this permanently? What determines the initial value
> > > of this register? It doesn't survive a reboot :( Admittedly I'm in
> > > above my head now.
>=20
> So, 0 and 3 bits are set by default? Right?
> What prevents us from detecting SMBus then?

The fact that those bits are set by default on boot. From the manual:

bit	name	=09
3	D31_F3_Disable
	R/W. Software sets this bit to disable the SMBus Host Controller
	function. BIOS must not enable I/O or memory address space decode,
	interrupt generation, or any other functionality of functions that
	are to be disabled.
		0 =3D SMBus controller is enabled.
		1 =3D SMBus controller is disabled.

0	SMB_FOR_BIOS
	R/W. This bit is used in conjunction with bit 3 in this register.
		0 =3D No effect.
		1 =3D Allows the SMBus I/O space to be accessible by software
		    when bit 3 in this register is set. The PCI configuration
		    space is hidden in this case. Note that if bit 3 is set
		    alone, the decode of both SMBus PCI configuration and I/O
		    space will be disabled.

Both bits are set, so 'the SMBus I/O space' is accessible (whatever that
means).

I suspect Don is right, and the motherboard disables the SMBus controller
becase there are no slave devices wired to it. Dell (the brand of my
laptop) uses ACPI and a proprietary method to determine thermal values,
so they must have disabled SMBus to avoid implementing yet another
way to read those.

If there was an ichsmb kernel module, you could theoretically clear
the above bits, and _then_ load the module -- it should attach.
I didn't see any method through adding quirks to always do this on boot
though.

--Stijn

--=20
Nostalgia ain't what it used to be.

--keoAwTxaagou87Dg
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2 (FreeBSD)

iD8DBQE/OP+RY3r/tLQmfWcRAnXbAKCbCtg8Q+EsmdbtPo9PE2XZXisNbwCfbQ8W
b9lTJd9t8939dqAmyS6JG2Q=
=pJ95
-----END PGP SIGNATURE-----

--keoAwTxaagou87Dg--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030812145409.GC59732>