Zpr?vaSMBus is or may be inside your machine. SMBus isn’t a software interface. It is a HARDWARE interface to talk to certain chips such as batteries and the like.
The interface of the SMBus to the system is provided either by an SMBus driver chip (on older machines) or usually integrated into the Southbridge chip on newer machines. There are at least TWO common defined interfaces to the SMBus. Which one is used on any machine depends on who built the machine and which chips they liked. You cannnot *depend* on any particular interface being on your machine. But that doesn’t matter.
The reason that it doesn’t matter is because the SMBus interface isn’t designed to be user accessable. It is used by the ACPI driver for controlling the system. There may be some IOCTLs to acpi.sys that might let you have some visibility into the SMBus state. And there are ways that you can indirectly control some SMBus state. Clicking on the Shutdown icon is one of these indirect ways.
If you go in mucking around with the SMBus behind ACPI’s back, it will have an erroneous view of the state of the machine. This in turn means that it will do erroneous things. Considering that ACPI is controlling power levels and monitoring for overtemperature shutdown and the like, I think it would be a really bad idea to get the ACPI driver confused.
Now, a couple of things on the SMBus are the fan speed indicators and system temperature monitors. It would be a real nice thing to have a clean interface to this sort of information. I don’t believe any such clean interface exists, which is a shame. It would have to come from the ACPI driver, because it is the only thing in the system that knows which fans should exist or which temperature sensors should exist, and knows what ranges they should have. Again, there is no “standard fan interface definiton” to the SMBus. Which addresses contain fan speed sensors or speed controls is up to the system designer. This information is reported in the ACPI system definition, at least in theory.
Loren
----- Original Message -----
From: Martin Zizka
To: Windows System Software Devs Interest List
Sent: Sunday, February 27, 2005 2:11 PM
Subject: RE: [ntdev] SMBUS
The SMBus should be a service interface to a service processor of my PCI board. Of course that I am using the PCI interface too - for regular data and communication.
I just wanted to know, if it is possible to use it as service interface - if it is so supported that it will be available on new motherboards on WindowsXP. I just didnt find enough information about it and only source code that I found on smbus.org wasn’t functional.
Martin
-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of S. Drasnin
Sent: Saturday, February 26, 2005 4:15 AM
To: Windows System Software Devs Interest List
Subject: Re: [ntdev] SMBUS
hi
The information below that I’m giving you is based on my experience on type of PC.
The SMBus is the bus that is used to interface with the battery. I’ve seen on the web that SMB refers to both the SMBus as well as SMBattery. I don’t know if this is true on all PCs, but Microsoft has a SMBattery driver that talks to the battery through the SMBus. Also, the SMBus is an I2C bus - serial.
Typically, to talk on the SMBus, you go through a special chip that has SMB interface registers. (How you access the registers is covered in the Mindshare book “PCI System Architecture” and probably in the PCI spec. I used I/O port operations when I did it.)
The special chip is a “South Bridge chip”, a chip that resides on the PCI bus, and interfaces to lots of devices (LAN, USB controllers, etc.) and buses (SMB, LPC, etc). The register interfaces are not exactly standard unfortunately – it varies a bit by manufacturer. For example, the Via South Bridge chip has a slightly difference register interface than the ALI South Bridge chip.
One problem with you getting on the SMBus is that you have to worry about other traffic on the bus and deal with collision detection. So, if you were trying to control a device on the SMBus and your system had a battery driver that also talked on the SMBus, you can run into problems.
In the SMBus registers on a South Bridge part, there is a semaphore bit that is used to gain access to the bus - unfortunately it’s not a true semaphore hardware bit – it’s a half-baked attempt at helping to provide sychronization. You can also check another bit, a busy bit, to see if somebody is using the bus. Handling collisions, by backing off for a random amount of time and then trying again, is one way to deal with things as well.
I’m not sure exactly why you choose a PCI board that had an SMBus interface - that info might help us make recommendations.
Sharon
----- Original Message -----
From: Mark Overby
To: Windows System Software Devs Interest List
Sent: Friday, February 25, 2005 9:12 AM
Subject: RE: [ntdev] SMBUS
SMBus can be handled through ACPI (there is a defined way of doing this
in ACPI 3.0 (it was there is previous versions as well)). However, it is
optional and many chipsets have their own drivers or mechanisms for
doing so. There is no “host controller” standard or specification for an
SMBus upper edge interface. (Certainly the SMBus specifications clearly
define what a host shall do on the physical interconnect)
-----Original Message-----
From: xxxxx@listsosr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Martin Zizka
Sent: Friday, February 25, 2005 3:44 AM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] SMBUS
Yes, I want to have another interface to the PCI card. It would be a
servicing interface, so I need that driver functional on different types
of chipsets.
So there is no generic SMBus driver? I thought that this is a function
of system bios to handle the SMBus and that this is a standardized
interface to the SMBus. I’ve found a mssmbios.sys installed on different
chipsets, isn’t that a driver that manages the smbus? I havent found any
information about this driver over the internet…
My advantage is that I do not have to support other systems than
windows2000 and windowsXP, because the controlling software does not run
under other systems. So if there would be a support for smbus on that
systems it would be enough for me.
Martin
-----Original Message-----
> From: xxxxx@listsosr.com
> [mailto:xxxxx@lists.osr.com] On Behalf Of Mats PETERSSON
> Sent: Friday, February 25, 2005 12:10 PM
> To: Windows System Software Devs Interest List
> Subject: Re: [ntdev] SMBUS
>
>
>
>
>
>
>
> There’s an SMBus driver for Linux out there somewhere.
>
> But essentially, you have to at least configure your driver
> individually for each chipset. The different chipsets are
> probably not dramatically different, but sufficiently that
> you can’t just write an entirely generic driver, you’ll at
> least have to determine which chipset you have and how to
> wiggle the lines around.
>
> What are you trying to achieve? Just a simpler interface to
> your PCI card, or something else?
>
> –
> Mats
>
> -------- Notice --------
> The information in this message is confidential and may be
> legally privileged. It is intended solely for the addressee.
> Access to this message by anyone else is unauthorized. If
> you are not the intended recipient, any disclosure, copying
> or distribution of the message, or any action taken by you in
> reliance on it, is prohibited and may be unlawful. If you
> have received this message in error, please delete it and
> contact the sender immediately. Thank you.
>
>
> xxxxx@lists.osr.com wrote on 02/25/2005 11:02:55 AM:
>
> > Hi everyone.
> >
> > I would like to use a SMBus on my PCI card. I have a
> processor on it
> > that is connected to the system SMBus.
> >
> > My question is - is it possible to create a driver that will be
> > functional on various chipsets without writing a driver for each of
> > it? Do you have an example of this driver? I’ve googled
> some time for
> > any information about SMBus and I haven’t found anything, only that
> > the SMBus is not well supported on Windows and that each
> chipset has
> > its own driver. The only one example that I’ve found (on smbus.org)
> > should enumerate the SMBus devices connected to SMBus, but
> it does not
> > find anything…
> >
> > Martin
> >
> >
> >
> > —
> > Questions? First check the Kernel Driver FAQ at http://www.
> > osronline.com/article.cfm?id=256
> >
> > You are currently subscribed to ntdev as:
> xxxxx@3dlabs.com To
> > unsubscribe send a blank email to xxxxx@listsosr.com
>
> > ForwardSourceID:NT0000DB06
>
>
> —
> Questions? First check the Kernel Driver FAQ at
> http://www.osronline.com/article.cfm?id=256
>
> You are
> currently subscribed to ntdev as: xxxxx@centrum.cz
> To unsubscribe send a blank email to xxxxx@listsosr.com
>
>
Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256
You are currently subscribed to ntdev as: xxxxx@nvidia.com
To unsubscribe send a blank email to xxxxx@listsosr.com
Questions? First check the Kernel Driver FAQ at http://www.osronline.com/article.cfm?id=256
You are currently subscribed to ntdev as: unknown lmsubst tag argument: ‘’
To unsubscribe send a blank email to xxxxx@listsosr.com
Questions? First check the Kernel Driver FAQ at http://www.osronline.com/article.cfm?id=256
You are currently subscribed to ntdev as: unknown lmsubst tag argument: ‘’
To unsubscribe send a blank email to xxxxx@lists.osr.com
Questions? First check the Kernel Driver FAQ at http://www.osronline.com/article.cfm?id=256
You are currently subscribed to ntdev as: unknown lmsubst tag argument: ‘’
To unsubscribe send a blank email to xxxxx@lists.osr.com