* Re: [lm-sensors] 2.6.24-rc4 hwmon it87 probe fails
[not found] ` <fa.Xv3BmMxnCGLOeEijySte5mKDO5k@ifi.uio.no>
@ 2007-12-20 1:09 ` Robert Hancock
2008-01-12 9:56 ` Jean Delvare
0 siblings, 1 reply; 9+ messages in thread
From: Robert Hancock @ 2007-12-20 1:09 UTC (permalink / raw)
To: Carlos Corbacho
Cc: Bjorn Helgaas, Jean Delvare, Shaohua Li, Mike Houston,
Adrian Bunk, Elvis Pranskevichus, mhoffman, linux-kernel,
lm-sensors, Adam Belay, Zhao Yakui, Thomas Renninger, lenb,
linux-acpi
Carlos Corbacho wrote:
> On Thursday 20 December 2007 00:20:21 Bjorn Helgaas wrote:
>> I suspect the manufacturers would say "Oh, the sensors? The BIOS
>> isn't broken, you're just supposed to use WMI or some (undocumented)
>> ACPI device to get at those."
>
> It's quite possible - can we have DSDTs for the boards in question so we can
> quickly check if this is a possibility? (Basically, to see if they have
> PNP0C14 devices - if they don't, then I'm afraid it's nothing to do with
> WMI).
>
> -Carlos
It's quite possible that the BIOS accesses the device either from ACPI
AML or possibly even from SMI. In that case it would be quite reasonable
for the BIOS to reserve that region to prevent another driver from
loading and trying to take conflicting control of the device. One has to
be careful before assuming that any such reservation is bogus.
--
Robert Hancock Saskatoon, SK, Canada
To email, remove "nospam" from hancockr@nospamshaw.ca
Home Page: http://www.roberthancock.com/
^ permalink raw reply [flat|nested] 9+ messages in thread* Re: 2.6.24-rc4 hwmon it87 probe fails
2007-12-20 1:09 ` [lm-sensors] 2.6.24-rc4 hwmon it87 probe fails Robert Hancock
@ 2008-01-12 9:56 ` Jean Delvare
0 siblings, 0 replies; 9+ messages in thread
From: Jean Delvare @ 2008-01-12 9:56 UTC (permalink / raw)
To: Robert Hancock
Cc: Carlos Corbacho, Bjorn Helgaas, Shaohua Li, Mike Houston,
Adrian Bunk, Elvis Pranskevichus, mhoffman, linux-kernel,
lm-sensors, Adam Belay, Zhao Yakui, Thomas Renninger, lenb,
linux-acpi
Hi Robert,
On Wed, 19 Dec 2007 19:09:54 -0600, Robert Hancock wrote:
> It's quite possible that the BIOS accesses the device either from ACPI
> AML or possibly even from SMI. In that case it would be quite reasonable
> for the BIOS to reserve that region to prevent another driver from
> loading and trying to take conflicting control of the device. One has to
> be careful before assuming that any such reservation is bogus.
Again I am all for honoring such BIOS requests so as to prevent
conflicts between ACPI or SMI and native drivers. The problem is that
no two BIOS out there do the same in this respect. I couldn't see any
correlation between machines declaring their hwmon device in PNP and
machines where ACPI or SMI access the device in question. Many boards
declare their device and seemingly never touch it so it's fine for
Linux to drive them. Some boards no not declare the devices but still
access them in our back.
Thomas' patches should deal with the ACPI AML case in most cases, but
not with SMI.
So either the PNP code in Linux isn't exporting enough details to
differentiate, or even the PNP code has no way to tell these cases
apart. In the latter case there's not much we can do. In the former
case, let's have the PNP code export the information so that hwmon
drivers can decide whether they should bind to the devices or not by
default.
--
Jean Delvare
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [lm-sensors] 2.6.24-rc4 hwmon it87 probe fails
@ 2007-12-23 23:14 Bjorn Helgaas
2007-12-25 21:31 ` Jean Delvare
0 siblings, 1 reply; 9+ messages in thread
From: Bjorn Helgaas @ 2007-12-23 23:14 UTC (permalink / raw)
To: Jean Delvare
Cc: Shaohua Li, Mike Houston, Adrian Bunk, Elvis Pranskevichus,
Mark M. Hoffman, linux-kernel, lm-sensors, Adam Belay, Zhao Yakui,
Thomas Renninger, lenb, linux-acpi
On Sunday 23 December 2007 2:28:05 am Jean Delvare wrote:
> Le 23/12/2007, Bjorn Helgaas a écrit:
> >On Saturday 22 December 2007 4:21:41 am Jean Delvare wrote:
> >> >This patch makes the it87 driver request only the two ports used for
> >> > the Environment Controller device.
> >>
> >> The problem is that the IT87xxF chips do decode 4 ports (recent chips,
> >> 0x294-0x297) or 8 ports (older chips, 0x290-0x297), not 2 as the
> >> datasheets say. The ITE Super-I/O chips differ from the Winbond
> >> Super-I/O chips in this respect. The it87 driver only needs to access
> >> ports 0x295 and 0x296, true, but the device itself decodes more
> >> addresses than that. So, with this proposed patch, ports which are busy
> >> will be shown as being free. This pretty much voids the point of
> >> resource declarations, doesn't it? This might not cause too much
> >> trouble in practice, but to me this still looks like the wrong way to
> >> go.
> >
> >Yes, all the ports decoded by the chip should certainly be reserved,
> >but I think the entire range should be reserved at a higher level,
> >like the PNP core, and the driver should reserve only the ports it
> >uses. Then the entire range is reserved even if there is no driver
> >or the driver is not loaded.
>
> The problem is that the it87 driver is used on a variety of motherboards,
> some where the hardware monitoring device I/O ports are reserved by the
> BIOS, some where they aren't. How am I supposed to deal with this?
I assume you mean some boards describe those ports in ACPI, and some
don't? I think the ideal solution would be to figure out how the
BIOS writers intended the device to be used, and do that. But the
documentation may be lacking, and it degenerates into an OEM-specific
mess. Second-best seems like a PNP quirk that pokes enough to determine
that a Super I/O device is present, and then reserves resources for
it. Then we avoid the collision even if it87 isn't present.
> >That's the approach we use for PCI, e.g.,
> >
> > e8100000-e81fffff : 0000:00:08.0 <-- reserved by PCI core
> > e8100000-e8102fff : CS46xx_BA1_data0 <-- reserved by driver
> > e8110000-e81137ff : CS46xx_BA1_data1
> > e8120000-e8126fff : CS46xx_BA1_pmem
> > e8130000-e81300ff : CS46xx_BA1_reg
>
> PCI is an entirely different beast. With PCI you know the PCI device ID
> that is associated with the resources, and for a given device, the
> resources are always declared (if standard BARs are used) or never
> declared; there's no "may be". So it's much easier to handle the
> resources properly.
That's the way PNP is supposed to work, too (more about this below).
> >> The resource declarations made by these motherboard BIOSes are totally
> >> bogus. 0x290-0x29f is much larger than what the chip decodes.
> >> 0x290-0x294 is a subset that doesn't make any sense. The GA-K8N Ultra 9
> >> is even funnier with 0x295-0x314, which again doesn't correspond to
> >> anything real.
> >
> >I agree those declarations are probably wrong. But at least they're
> >larger than required, so they should be safe.
>
> That's not really safe, no. They may overlap with other device resources
> and prevent those drivers from loading.
True. If that happens, I think we definitely need some kind of DMI-
based quirk to fix the resources. My points are (a) the quirk needs
to be at the PNP level; it can't be in a driver, and (b) I'm lazy and
would wait until a problem happens before implementing it, because I
know so little about PNP and the specific board, and by waiting, there's
a chance I'll learn enough to avoid a mistake :-)
> >> All these happen to not intersect with 0x295-0x296 but I
> >> wouldn't count on it. If Gigabyte (and possibly others) care that
> >> little about these declarations, pretty much anything could be seen. So
> >> while your proposed workaround happens to fix the problem at hand, it is
> >> not really correct technically, and could break again soon.
> >>
> >> I'd rather fix the problem at its source, or, as fixing it as the source
> >> isn't very realistic in this case, as near of the source as possible.
> >> That would mean DMI-based quirks for the affected motherboards, that
> >> would discard or adjust the bogus resource declarations.
> >
> >Well, I think the driver change *is* correct, assuming that the
> >entire range can be reserved at a higher level. In this case,
> >it is, via a PNP0C02 device.
>
> As I wrote above, the problem is that you can't assume that. Some
> motherboards do declare the range at PNP level but some don't. That's
> the reason why the it87 driver (and most other hwmon drivers for
> Super-I/O devices) do declare the I/O resource again.
The overlapping device problem is a subsystem problem, not a
driver problem. We can't solve it in the driver because we can't
depend on the it87 driver being loaded.
> Another problem is how do I connect this specific I/O port range of the
> PNP0C02 device with the it87 driver? I am by far no PNP expert but it
> looks to me like this PNP device covers more than one actual device, and
> I/O port ranges do not have labels nor identifiers that would let me
> find the one that corresponds to the IT87xxF device (if it exists at
> all.)
The general rule is that you have a PNP device with an identifier
like PNP0500 that means "16550 UART" and some resources underneath
it. The PNP ID ("PNP0500") tells the OS which driver to bind to the
device, and the resources tell the driver where the device is. The
serial driver in drivers/serial/8250_pnp.c is a good example of the
"normal" way PNP drivers work.
it87 doesn't fit the model very well because usually the BIOS
doesn't describe the device explicitly. I think the expectation
is that the OS will get sensor readings some other way, such as
by evaluating ACPI "_TMP" methods, or by using some OEM-specific
ACPI device.
It's very irritating when ACPI is used to take some device that
would otherwise be nicely generic and machine-independent, and
wrap it up into some abstract device that requires an OEM-specific
driver, but I think that's what's happening here. I suspect it
has to do with the fact that the BIOS wants to retain some
control over the device so it can deal with things like thermal
emergencies, even if the OS driver is missing or broken.
> I'm all for integrating the it87 driver into the PNP subsystem if it is
> going to solve problems, but I just don't know how it works. I you do
> some work in this direction, I'll be happy to help with reviews and
> testing.
You don't see how it works because the BIOS writers have deliberately
obscured things (though no doubt they had good reasons).
Bjorn
^ permalink raw reply [flat|nested] 9+ messages in thread* Re: 2.6.24-rc4 hwmon it87 probe fails
2007-12-23 23:14 [lm-sensors] " Bjorn Helgaas
@ 2007-12-25 21:31 ` Jean Delvare
2008-01-02 18:30 ` Bjorn Helgaas
0 siblings, 1 reply; 9+ messages in thread
From: Jean Delvare @ 2007-12-25 21:31 UTC (permalink / raw)
To: bjorn.helgaas
Cc: Shaohua Li, Mike Houston, Adrian Bunk, Elvis Pranskevichus,
Mark M. Hoffman, linux-kernel, lm-sensors, Adam Belay, Zhao Yakui,
Thomas Renninger, lenb, linux-acpi
Hi Bjorn,
Le 23/12/2007, "Bjorn Helgaas" <bjorn.helgaas@hp.com> a écrit:
>On Sunday 23 December 2007 2:28:05 am Jean Delvare wrote:
>> The problem is that the it87 driver is used on a variety of motherboards,
>> some where the hardware monitoring device I/O ports are reserved by the
>> BIOS, some where they aren't. How am I supposed to deal with this?
>
>I assume you mean some boards describe those ports in ACPI, and some
>don't?
Yes, that's what I meant.
>(...) I think the ideal solution would be to figure out how the
>BIOS writers intended the device to be used, and do that. But the
>documentation may be lacking, and it degenerates into an OEM-specific
>mess. Second-best seems like a PNP quirk that pokes enough to determine
>that a Super I/O device is present, and then reserves resources for
>it. Then we avoid the collision even if it87 isn't present.
I'm not sure what you mean here exactly. We have two different cases:
either the ACPI code did declare the PNP device, or it did not. How do
you unify both? And what "collision" are you talking about?
>> PCI is an entirely different beast. With PCI you know the PCI device ID
>> that is associated with the resources, and for a given device, the
>> resources are always declared (if standard BARs are used) or never
>> declared; there's no "may be". So it's much easier to handle the
>> resources properly.
>
>That's the way PNP is supposed to work, too (more about this below).
Not really. PNP devices may or may not be declared. PCI devices are
always declared. This is a fundamental difference. I'm also not sure
about the PNP IDs, see below.
>> That's not really safe, no. They may overlap with other device resources
>> and prevent those drivers from loading.
>
>True. If that happens, I think we definitely need some kind of DMI-
>based quirk to fix the resources. My points are (a) the quirk needs
>to be at the PNP level; it can't be in a driver, and (b) I'm lazy and
>would wait until a problem happens before implementing it, because I
>know so little about PNP and the specific board, and by waiting, there's
>a chance I'll learn enough to avoid a mistake :-)
But we _do_ have a problem to solve! That's what started this thread.
And we need to solve it before 2.6.24 is released. I'd rather (try to)
do the right thing now rather than going in one direction today and
doing something different next month.
I do agree that the quirks should be done at the PNP level and not in the
it87 driver.
>> Another problem is how do I connect this specific I/O port range of the
>> PNP0C02 device with the it87 driver? I am by far no PNP expert but it
>> looks to me like this PNP device covers more than one actual device, and
>> I/O port ranges do not have labels nor identifiers that would let me
>> find the one that corresponds to the IT87xxF device (if it exists at
>> all.)
>
>The general rule is that you have a PNP device with an identifier
>like PNP0500 that means "16550 UART" and some resources underneath
>it. The PNP ID ("PNP0500") tells the OS which driver to bind to the
>device, and the resources tell the driver where the device is. The
>serial driver in drivers/serial/8250_pnp.c is a good example of the
>"normal" way PNP drivers work.
>
>it87 doesn't fit the model very well because usually the BIOS
>doesn't describe the device explicitly. I think the expectation
>is that the OS will get sensor readings some other way, such as
>by evaluating ACPI "_TMP" methods, or by using some OEM-specific
>ACPI device.
If the IT87xxF device is declared, will it always the same PNP ID on
every system? I fear that the answer is no, in which case I see no
simple way to implement the it87 driver as a PNP driver.
>It's very irritating when ACPI is used to take some device that
>would otherwise be nicely generic and machine-independent, and
>wrap it up into some abstract device that requires an OEM-specific
>driver, but I think that's what's happening here. I suspect it
>has to do with the fact that the BIOS wants to retain some
>control over the device so it can deal with things like thermal
>emergencies, even if the OS driver is missing or broken.
Yes, very irritating. Especially when the ACPI way is not only
system-specific, but also very poor in terms of features compared to
what a native driver can do. This is the main reason why we still write
native drivers for hardware monitoring drivers despite the conflicts
with ACPI that arise on some systems.
--
Jean Delvare
^ permalink raw reply [flat|nested] 9+ messages in thread* Re: 2.6.24-rc4 hwmon it87 probe fails
2007-12-25 21:31 ` Jean Delvare
@ 2008-01-02 18:30 ` Bjorn Helgaas
2008-01-12 9:49 ` Jean Delvare
0 siblings, 1 reply; 9+ messages in thread
From: Bjorn Helgaas @ 2008-01-02 18:30 UTC (permalink / raw)
To: Jean Delvare
Cc: Shaohua Li, Mike Houston, Adrian Bunk, Elvis Pranskevichus,
Mark M. Hoffman, linux-kernel, lm-sensors, Adam Belay, Zhao Yakui,
Thomas Renninger, lenb, linux-acpi
On Tuesday 25 December 2007 02:31:26 pm Jean Delvare wrote:
> Le 23/12/2007, "Bjorn Helgaas" <bjorn.helgaas@hp.com> a écrit:
> >On Sunday 23 December 2007 2:28:05 am Jean Delvare wrote:
> >> The problem is that the it87 driver is used on a variety of motherboards,
> >> some where the hardware monitoring device I/O ports are reserved by the
> >> BIOS, some where they aren't. How am I supposed to deal with this?
> >
> >I assume you mean some boards describe those ports in ACPI, and some
> >don't?
>
> Yes, that's what I meant.
>
> >(...) I think the ideal solution would be to figure out how the
> >BIOS writers intended the device to be used, and do that. But the
> >documentation may be lacking, and it degenerates into an OEM-specific
> >mess. Second-best seems like a PNP quirk that pokes enough to determine
> >that a Super I/O device is present, and then reserves resources for
> >it. Then we avoid the collision even if it87 isn't present.
>
> I'm not sure what you mean here exactly. We have two different cases:
> either the ACPI code did declare the PNP device, or it did not. How do
> you unify both?
Even if the BIOS does not declare an IT87xxF as an independent device,
there may be AML that uses the chip internally. For example, the
BIOS could declare a thermal zone with a _TMP method, and the _TMP
method could use the IT87xxF to read the temperature. In that case,
the BIOS would still need to declare the IT87xxF resources so the OS
doesn't place another device on top of it. An easy way to do this
is with a PNP0C02 "motherboard" device, which just says "these
resources are in use, but the OS needn't attach a driver to this
device."
> And what "collision" are you talking about?
I meant the problem where we place two devices at the same address,
causing one to stop working. I wrote "even if it87 isn't present,"
which is ambiguous -- I meant that we need something that works even
when the it87 _driver_ isn't present.
> >> PCI is an entirely different beast. With PCI you know the PCI device ID
> >> that is associated with the resources, and for a given device, the
> >> resources are always declared (if standard BARs are used) or never
> >> declared; there's no "may be". So it's much easier to handle the
> >> resources properly.
> >
> >That's the way PNP is supposed to work, too (more about this below).
>
> Not really. PNP devices may or may not be declared. PCI devices are
> always declared. This is a fundamental difference. I'm also not sure
> about the PNP IDs, see below.
Well, it's true that PNP does not need to describe ALL devices in the
system. However, it should describe all devices to which the OS should
bind a driver. The BIOS writer has the discretion to hide devices from
the OS by omitting them from the ACPI namespace. If he does that, his
assumption is that the OS will ignore the device (but of course, he's
thinking about a Plug-and-Play-compliant OS like Windows).
> >> That's not really safe, no. They may overlap with other device resources
> >> and prevent those drivers from loading.
> >
> >True. If that happens, I think we definitely need some kind of DMI-
> >based quirk to fix the resources. My points are (a) the quirk needs
> >to be at the PNP level; it can't be in a driver, and (b) I'm lazy and
> >would wait until a problem happens before implementing it, because I
> >know so little about PNP and the specific board, and by waiting, there's
> >a chance I'll learn enough to avoid a mistake :-)
>
> But we _do_ have a problem to solve! That's what started this thread.
> And we need to solve it before 2.6.24 is released. I'd rather (try to)
> do the right thing now rather than going in one direction today and
> doing something different next month.
I think my patch to request only the ports actually used by the it87
driver is sufficient to solve the current problem. If we find that
a BIOS neglects to reserve some of the ports decoded by the IT87xxF,
we can add a PNP quirk to handle that. But I'm not aware of any
problems like that yet.
> >it87 doesn't fit the model very well because usually the BIOS
> >doesn't describe the device explicitly. I think the expectation
> >is that the OS will get sensor readings some other way, such as
> >by evaluating ACPI "_TMP" methods, or by using some OEM-specific
> >ACPI device.
>
> If the IT87xxF device is declared, will it always the same PNP ID on
> every system? I fear that the answer is no, in which case I see no
> simple way to implement the it87 driver as a PNP driver.
PNP drivers can claim multiple PNP IDs, e.g., drivers/serial/8250_pnp.c
recognizes many IDs for 16550-compatible UARTs. But I doubt that
any BIOS actually describes an IT87xxF explicitly.
Bjorn
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: 2.6.24-rc4 hwmon it87 probe fails
2008-01-02 18:30 ` Bjorn Helgaas
@ 2008-01-12 9:49 ` Jean Delvare
0 siblings, 0 replies; 9+ messages in thread
From: Jean Delvare @ 2008-01-12 9:49 UTC (permalink / raw)
To: Bjorn Helgaas
Cc: Shaohua Li, Mike Houston, Adrian Bunk, Elvis Pranskevichus,
Mark M. Hoffman, linux-kernel, lm-sensors, Adam Belay, Zhao Yakui,
Thomas Renninger, lenb, linux-acpi
Hi Bjorn,
Sorry for the late answer.
On Wed, 2 Jan 2008 11:30:55 -0700, Bjorn Helgaas wrote:
> Even if the BIOS does not declare an IT87xxF as an independent device,
> there may be AML that uses the chip internally. For example, the
> BIOS could declare a thermal zone with a _TMP method, and the _TMP
> method could use the IT87xxF to read the temperature. In that case,
> the BIOS would still need to declare the IT87xxF resources so the OS
> doesn't place another device on top of it.
Thomas Renninger's patch set should handle this case. It's in -mm at the
moment and I guess we'll merge most of it in 2.6.25.
> (...) An easy way to do this
> is with a PNP0C02 "motherboard" device, which just says "these
> resources are in use, but the OS needn't attach a driver to this
> device."
How do I see if a given motherboard does this or not? For example I
have a motherboard here that says:
0290-029f : pnp 00:04
How do I know if this is a "PNP0C02 motherboard device" I am supposed
not to touch, or a device that I can attach a native hwmon driver to?
And more importantly, how does the it87 driver (or any other hwmon
driver) know about it? I'm all for updating the hwmon drivers to
cooperate better with PNP in order to prevent clashes between the BIOS
and the OS, but I just don't know how I am supposed to do that.
> > And what "collision" are you talking about?
>
> I meant the problem where we place two devices at the same address,
> causing one to stop working. I wrote "even if it87 isn't present,"
> which is ambiguous -- I meant that we need something that works even
> when the it87 _driver_ isn't present.
I agree then. I don't think this has much to do with PNP though. What
this is calling for is a Super-I/O subsystem that detects the Super-I/O
and instantiate devices out of it. That way the drivers for these
devices (in particular hardware monitoring drivers, watchdog drivers,
some parport drivers...) would no longer need to instantiate their
devices themselves, thus matching the device driver model much better.
I've seen patches float around but so far I could never find the time
to look into them (and I fear it's unlikely to change anytime soon.)
> (...)
> Well, it's true that PNP does not need to describe ALL devices in the
> system. However, it should describe all devices to which the OS should
> bind a driver. The BIOS writer has the discretion to hide devices from
> the OS by omitting them from the ACPI namespace. If he does that, his
> assumption is that the OS will ignore the device (but of course, he's
> thinking about a Plug-and-Play-compliant OS like Windows).
Even under Windows, I pretty much doubt that any monitoring application
cares about what the BIOS says. Motherboard vendor applications have
enough information about each board model to know what they can do or
not without asking the BIOS. Third-party applications probably just
poke at known I/O locations (pretty much like the Linux hwmon drivers
do) and hope for the best.
> (...)
> I think my patch to request only the ports actually used by the it87
> driver is sufficient to solve the current problem. If we find that
> a BIOS neglects to reserve some of the ports decoded by the IT87xxF,
> we can add a PNP quirk to handle that. But I'm not aware of any
> problems like that yet.
I'm not aware of such a problem either.
--
Jean Delvare
^ permalink raw reply [flat|nested] 9+ messages in thread
* 2.6.24-rc4 hwmon it87 probe fails
@ 2007-12-05 2:51 Mike Houston
2007-12-09 0:05 ` Adrian Bunk
0 siblings, 1 reply; 9+ messages in thread
From: Mike Houston @ 2007-12-05 2:51 UTC (permalink / raw)
To: linux-kernel; +Cc: mhoffman
I finally got around to testing Linux 2.6.24 (2.6.24-rc4) and found
that the it87 driver fails to probe and consequently, my sensors no
longer work. This was fine with Linux 2.6.23.8 (the last kernel I was
using)
The necessary modules load, but:
it87: Found IT8718F chip at 0x290, revision 2
it87: in3 is VCC (+5V)
it87 it87.656: Failed to request region 0x290-0x297
it87: probe of it87.656 failed with error -16
Coretemp still works.
It appears it has something to do with the ioport range being
reserved for some reason:
system 00:01: ioport range 0x290-0x29f has been reserved
At least I don't see that happening on previous kernels.
In any case, the changes to it87.c itself don't appear to have caused
this. (CC'd hwmon maintainer anyways, my apologies if that was
inappropriate)
dmesg:
http://www.mikeserv.com/temp/dmesg-2.6.24-rc4.txt
config:
http://www.mikeserv.com/temp/config-2.6.24-rc4.txt
Thanks for any help or suggestions,
Mike Houston
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: 2.6.24-rc4 hwmon it87 probe fails
2007-12-05 2:51 Mike Houston
@ 2007-12-09 0:05 ` Adrian Bunk
2007-12-09 2:22 ` Mike Houston
0 siblings, 1 reply; 9+ messages in thread
From: Adrian Bunk @ 2007-12-09 0:05 UTC (permalink / raw)
To: Mike Houston; +Cc: linux-kernel, mhoffman, lm-sensors
On Tue, Dec 04, 2007 at 09:51:54PM -0500, Mike Houston wrote:
> I finally got around to testing Linux 2.6.24 (2.6.24-rc4) and found
> that the it87 driver fails to probe and consequently, my sensors no
> longer work. This was fine with Linux 2.6.23.8 (the last kernel I was
> using)
>
> The necessary modules load, but:
>
> it87: Found IT8718F chip at 0x290, revision 2
> it87: in3 is VCC (+5V)
> it87 it87.656: Failed to request region 0x290-0x297
> it87: probe of it87.656 failed with error -16
>
> Coretemp still works.
>
> It appears it has something to do with the ioport range being
> reserved for some reason:
>
> system 00:01: ioport range 0x290-0x29f has been reserved
>
> At least I don't see that happening on previous kernels.
>
> In any case, the changes to it87.c itself don't appear to have caused
> this. (CC'd hwmon maintainer anyways, my apologies if that was
> inappropriate)
>
> dmesg:
> http://www.mikeserv.com/temp/dmesg-2.6.24-rc4.txt
>
> config:
> http://www.mikeserv.com/temp/config-2.6.24-rc4.txt
Thanks for your report.
Please also provide:
- dmesg from 2.6.23.8
- The output of "cat /proc/ioports" for both kernels
> Thanks for any help or suggestions,
>
> Mike Houston
cu
Adrian
--
"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed
^ permalink raw reply [flat|nested] 9+ messages in thread* Re: 2.6.24-rc4 hwmon it87 probe fails
2007-12-09 0:05 ` Adrian Bunk
@ 2007-12-09 2:22 ` Mike Houston
2007-12-09 9:50 ` [lm-sensors] " Jean Delvare
0 siblings, 1 reply; 9+ messages in thread
From: Mike Houston @ 2007-12-09 2:22 UTC (permalink / raw)
To: Adrian Bunk; +Cc: linux-kernel, mhoffman, lm-sensors
On Sun, 9 Dec 2007 01:05:54 +0100
Adrian Bunk <bunk@stusta.de> wrote:
> On Tue, Dec 04, 2007 at 09:51:54PM -0500, Mike Houston wrote:
> > I finally got around to testing Linux 2.6.24 (2.6.24-rc4) and
> > found that the it87 driver fails to probe and consequently, my
> > sensors no longer work. This was fine with Linux 2.6.23.8 (the
> > last kernel I was using)
> >
> > The necessary modules load, but:
> >
> > it87: Found IT8718F chip at 0x290, revision 2
> > it87: in3 is VCC (+5V)
> > it87 it87.656: Failed to request region 0x290-0x297
> > it87: probe of it87.656 failed with error -16
> >
> > Coretemp still works.
> >
> > It appears it has something to do with the ioport range being
> > reserved for some reason:
> >
> > system 00:01: ioport range 0x290-0x29f has been reserved
>
> Thanks for your report.
>
> Please also provide:
> - dmesg from 2.6.23.8
> - The output of "cat /proc/ioports" for both kernels
Thanks Adrian, here is the information you have requested, for
both kernels (I have 2.6.23.9 now though where it87 still works)
Linux 2.6.23.9:
http://www.mikeserv.com/temp/proc_ioports-2.6.23.9.txt
http://www.mikeserv.com/temp/dmesg-2.6.23.9.txt
http://www.mikeserv.com/temp/config-2.6.23.9.txt
Linux 2.6.24-rc4:
http://www.mikeserv.com/temp/proc_ioports-2.6.24-rc4.txt
http://www.mikeserv.com/temp/dmesg-2.6.24-rc4.txt
http://www.mikeserv.com/temp/config-2.6.24-rc4.txt
Mike Houston
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [lm-sensors] 2.6.24-rc4 hwmon it87 probe fails
2007-12-09 2:22 ` Mike Houston
@ 2007-12-09 9:50 ` Jean Delvare
2007-12-09 21:12 ` Elvis Pranskevichus
0 siblings, 1 reply; 9+ messages in thread
From: Jean Delvare @ 2007-12-09 9:50 UTC (permalink / raw)
To: Mike Houston
Cc: Adrian Bunk, mhoffman, linux-kernel, lm-sensors, Bjorn Helgaas,
Adam Belay
Hi Mike,
On Sat, 8 Dec 2007 21:22:34 -0500, Mike Houston wrote:
> On Sun, 9 Dec 2007 01:05:54 +0100
> Adrian Bunk <bunk@stusta.de> wrote:
>
> > On Tue, Dec 04, 2007 at 09:51:54PM -0500, Mike Houston wrote:
> > > I finally got around to testing Linux 2.6.24 (2.6.24-rc4) and
> > > found that the it87 driver fails to probe and consequently, my
> > > sensors no longer work. This was fine with Linux 2.6.23.8 (the
> > > last kernel I was using)
> > >
> > > The necessary modules load, but:
> > >
> > > it87: Found IT8718F chip at 0x290, revision 2
> > > it87: in3 is VCC (+5V)
> > > it87 it87.656: Failed to request region 0x290-0x297
> > > it87: probe of it87.656 failed with error -16
> > >
> > > Coretemp still works.
> > >
> > > It appears it has something to do with the ioport range being
> > > reserved for some reason:
> > >
> > > system 00:01: ioport range 0x290-0x29f has been reserved
>
> >
> > Thanks for your report.
> >
> > Please also provide:
> > - dmesg from 2.6.23.8
> > - The output of "cat /proc/ioports" for both kernels
>
> Thanks Adrian, here is the information you have requested, for
> both kernels (I have 2.6.23.9 now though where it87 still works)
>
> Linux 2.6.23.9:
> http://www.mikeserv.com/temp/proc_ioports-2.6.23.9.txt
> http://www.mikeserv.com/temp/dmesg-2.6.23.9.txt
> http://www.mikeserv.com/temp/config-2.6.23.9.txt
>
> Linux 2.6.24-rc4:
> http://www.mikeserv.com/temp/proc_ioports-2.6.24-rc4.txt
> http://www.mikeserv.com/temp/dmesg-2.6.24-rc4.txt
This one shows:
system 00:01: ioport range 0x290-0x29f has been reserved
(...)
system 00:01: ioport range 0x290-0x294 has been reserved
This is clearly not correct as both areas overlap. The second
reservation is responsible for the it87 breakage, because it conflicts
with what the it87 driver later attempts to request (0x290-0x297). The
first is wrong as well (the IT87xxF environment controller I/O area is
8 port wide, not 16) but shouldn't be a problem in practice.
These port reservations weren't happening in 2.6.23.9 according to your
dmesg output for that kernel. I don't know what changed in this area
since 2.6.23.9, maybe Bjorn or Adam (Cc'd) can tell.
Either way, the overlapping areas smell like a BIOS bug, meaning that
you should look for an updated BIOS for your system first.
> http://www.mikeserv.com/temp/config-2.6.24-rc4.txt
--
Jean Delvare
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [lm-sensors] 2.6.24-rc4 hwmon it87 probe fails
2007-12-09 9:50 ` [lm-sensors] " Jean Delvare
@ 2007-12-09 21:12 ` Elvis Pranskevichus
2007-12-09 22:42 ` Jean Delvare
0 siblings, 1 reply; 9+ messages in thread
From: Elvis Pranskevichus @ 2007-12-09 21:12 UTC (permalink / raw)
To: Jean Delvare, Mike Houston, Adrian Bunk, mhoffman, linux-kernel,
lm-sensors, Bjorn Helgaas, Adam Belay
Jean Delvare wrote:
> Hi Mike,
>
> On Sat, 8 Dec 2007 21:22:34 -0500, Mike Houston wrote:
>> On Sun, 9 Dec 2007 01:05:54 +0100
>> Adrian Bunk <bunk@stusta.de> wrote:
>>
>> > On Tue, Dec 04, 2007 at 09:51:54PM -0500, Mike Houston wrote:
>> > > I finally got around to testing Linux 2.6.24 (2.6.24-rc4) and
>> > > found that the it87 driver fails to probe and consequently, my
>> > > sensors no longer work. This was fine with Linux 2.6.23.8 (the
>> > > last kernel I was using)
>> > >
>> > > The necessary modules load, but:
>> > >
>> > > it87: Found IT8718F chip at 0x290, revision 2
>> > > it87: in3 is VCC (+5V)
>> > > it87 it87.656: Failed to request region 0x290-0x297
>> > > it87: probe of it87.656 failed with error -16
>> > >
>> > > Coretemp still works.
>> > >
>> > > It appears it has something to do with the ioport range being
>> > > reserved for some reason:
>> > >
>> > > system 00:01: ioport range 0x290-0x29f has been reserved
>>
>> >
>> > Thanks for your report.
>> >
>> > Please also provide:
>> > - dmesg from 2.6.23.8
>> > - The output of "cat /proc/ioports" for both kernels
>>
>> Thanks Adrian, here is the information you have requested, for
>> both kernels (I have 2.6.23.9 now though where it87 still works)
>>
>> Linux 2.6.23.9:
>> http://www.mikeserv.com/temp/proc_ioports-2.6.23.9.txt
>> http://www.mikeserv.com/temp/dmesg-2.6.23.9.txt
>> http://www.mikeserv.com/temp/config-2.6.23.9.txt
>>
>> Linux 2.6.24-rc4:
>> http://www.mikeserv.com/temp/proc_ioports-2.6.24-rc4.txt
>> http://www.mikeserv.com/temp/dmesg-2.6.24-rc4.txt
>
> This one shows:
>
> system 00:01: ioport range 0x290-0x29f has been reserved
> (...)
> system 00:01: ioport range 0x290-0x294 has been reserved
>
> This is clearly not correct as both areas overlap. The second
> reservation is responsible for the it87 breakage, because it conflicts
> with what the it87 driver later attempts to request (0x290-0x297). The
> first is wrong as well (the IT87xxF environment controller I/O area is
> 8 port wide, not 16) but shouldn't be a problem in practice.
>
> These port reservations weren't happening in 2.6.23.9 according to your
> dmesg output for that kernel. I don't know what changed in this area
> since 2.6.23.9, maybe Bjorn or Adam (Cc'd) can tell.
>
Hi,
I have exactly the same problem here on a Gigabyte GA-965G-DS3 motherboard
based box:
it87: Found IT8718F chip at 0x290, revision 1
it87: in3 is VCC (+5V)
it87 it87.656: Failed to request region 0x290-0x297
it87: probe of it87.656 failed with error -16
git bisecting revealed the offending commit:
a7839e960675b54: PNP: increase the maximum number of resources
Happened between rc3 and rc4.
> Either way, the overlapping areas smell like a BIOS bug, meaning that
> you should look for an updated BIOS for your system first.
>
>> http://www.mikeserv.com/temp/config-2.6.24-rc4.txt
>
This indeed looks like a broken ACPI BIOS since the aforementioned commit
touches only the PNP ACPI driver. I'm not sure how to work around this,
though. Ideas?
--
Elvis
^ permalink raw reply [flat|nested] 9+ messages in thread* Re: [lm-sensors] 2.6.24-rc4 hwmon it87 probe fails
2007-12-09 21:12 ` Elvis Pranskevichus
@ 2007-12-09 22:42 ` Jean Delvare
2007-12-10 0:19 ` Mike Houston
0 siblings, 1 reply; 9+ messages in thread
From: Jean Delvare @ 2007-12-09 22:42 UTC (permalink / raw)
To: Elvis Pranskevichus
Cc: Mike Houston, Adrian Bunk, mhoffman, linux-kernel, lm-sensors,
Bjorn Helgaas, Adam Belay
Hi Elvis,
On Sun, 09 Dec 2007 16:12:25 -0500, Elvis Pranskevichus wrote:
> I have exactly the same problem here on a Gigabyte GA-965G-DS3 motherboard
> based box:
Same motherboard as Mike has.
> it87: Found IT8718F chip at 0x290, revision 1
> it87: in3 is VCC (+5V)
> it87 it87.656: Failed to request region 0x290-0x297
> it87: probe of it87.656 failed with error -16
>
> git bisecting revealed the offending commit:
>
> a7839e960675b54: PNP: increase the maximum number of resources
>
> Happened between rc3 and rc4.
>
> > Either way, the overlapping areas smell like a BIOS bug, meaning that
> > you should look for an updated BIOS for your system first.
> >
> >> http://www.mikeserv.com/temp/config-2.6.24-rc4.txt
> >
>
> This indeed looks like a broken ACPI BIOS since the aforementioned commit
> touches only the PNP ACPI driver. I'm not sure how to work around this,
> though. Ideas?
Complaining to Gigabyte seems to be the best approach.
In the meantime, I guess that booting with pnpacpi=off should fix your
problem. But it might break something else; I'm not sure what the PNP
ACPI driver is good for in the first place.
--
Jean Delvare
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [lm-sensors] 2.6.24-rc4 hwmon it87 probe fails
2007-12-09 22:42 ` Jean Delvare
@ 2007-12-10 0:19 ` Mike Houston
2007-12-10 1:32 ` Ed Sweetman
0 siblings, 1 reply; 9+ messages in thread
From: Mike Houston @ 2007-12-10 0:19 UTC (permalink / raw)
To: Jean Delvare
Cc: Elvis Pranskevichus, Mike Houston, Adrian Bunk, mhoffman,
linux-kernel, lm-sensors, Bjorn Helgaas, Adam Belay
On Sun, 9 Dec 2007 23:42:15 +0100
Jean Delvare <khali@linux-fr.org> wrote:
> On Sun, 09 Dec 2007 16:12:25 -0500, Elvis Pranskevichus wrote:
> > This indeed looks like a broken ACPI BIOS since the
> > aforementioned commit touches only the PNP ACPI driver. I'm not
> > sure how to work around this, though. Ideas?
>
> Complaining to Gigabyte seems to be the best approach.
I just happen to have a Windows Vista installation on this box as
well, and I just thought to check. Sorry, I wish I'd have thought of
it sooner but I don't go there often. You folks might be interested
to know that Windows appears to have the same silly problem with the
i/o resources (from Device Manager):
[000000290 - 000000294] Motherboard resources
[000000290 - 00000029F] Motherboard resources
I don't have anything that reads sensors in Windows though, so I
couldn't tell you if it could access that it87 chip or not.
So this pretty much confirms that it's a motherboard/bios issue.
Mike Houston
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [lm-sensors] 2.6.24-rc4 hwmon it87 probe fails
2007-12-10 0:19 ` Mike Houston
@ 2007-12-10 1:32 ` Ed Sweetman
2007-12-10 14:55 ` Jean Delvare
0 siblings, 1 reply; 9+ messages in thread
From: Ed Sweetman @ 2007-12-10 1:32 UTC (permalink / raw)
To: Mike Houston
Cc: Jean Delvare, Elvis Pranskevichus, Adrian Bunk, mhoffman,
linux-kernel, lm-sensors, Bjorn Helgaas, Adam Belay
Mike Houston wrote:
> On Sun, 9 Dec 2007 23:42:15 +0100
> Jean Delvare <khali@linux-fr.org> wrote:
>
>
>> On Sun, 09 Dec 2007 16:12:25 -0500, Elvis Pranskevichus wrote:
>>
>
>
>>> This indeed looks like a broken ACPI BIOS since the
>>> aforementioned commit touches only the PNP ACPI driver. I'm not
>>> sure how to work around this, though. Ideas?
>>>
>> Complaining to Gigabyte seems to be the best approach.
>>
>
> I just happen to have a Windows Vista installation on this box as
> well, and I just thought to check. Sorry, I wish I'd have thought of
> it sooner but I don't go there often. You folks might be interested
> to know that Windows appears to have the same silly problem with the
> i/o resources (from Device Manager):
>
> [000000290 - 000000294] Motherboard resources
> [000000290 - 00000029F] Motherboard resources
>
> I don't have anything that reads sensors in Windows though, so I
> couldn't tell you if it could access that it87 chip or not.
>
> So this pretty much confirms that it's a motherboard/bios issue.
>
> Mike Houston
>
>
I'm seeing this exact problem on an Asus Nforce4 based board. Prior to
moving to 2.6.24-rc4 it worked just fine. No additional acpi options
were selected in kernel config.
So add Asus A8N-E to the list of broken pnpacpi
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: 2.6.24-rc4 hwmon it87 probe fails
2007-12-10 1:32 ` Ed Sweetman
@ 2007-12-10 14:55 ` Jean Delvare
0 siblings, 0 replies; 9+ messages in thread
From: Jean Delvare @ 2007-12-10 14:55 UTC (permalink / raw)
To: Ed Sweetman
Cc: Mike Houston, Elvis Pranskevichus, Adrian Bunk, mhoffman,
linux-kernel, lm-sensors, Bjorn Helgaas, Adam Belay
Hi Ed,
On Sun, 09 Dec 2007 20:32:41 -0500, Ed Sweetman wrote:
> I'm seeing this exact problem on an Asus Nforce4 based board. Prior to
> moving to 2.6.24-rc4 it worked just fine. No additional acpi options
> were selected in kernel config.
>
> So add Asus A8N-E to the list of broken pnpacpi
For the records, can you please paste the offending lines (from the
boot logs or /proc/ioports)?
Then please give a try to Shaohua's patch and report:
http://lkml.org/lkml/diff/2007/12/9/186/1
Thanks,
--
Jean Delvare
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2008-01-12 9:57 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <fa.QPUBl9Xd2PDsImgWn6hbR+ShV1U@ifi.uio.no>
[not found] ` <fa.ri5Klmu4+MwjYC8x5nSms+xKXfI@ifi.uio.no>
[not found] ` <fa.B/J+j9kGGZ1+gW9FrfHky+cj0Eo@ifi.uio.no>
[not found] ` <fa.Xv3BmMxnCGLOeEijySte5mKDO5k@ifi.uio.no>
2007-12-20 1:09 ` [lm-sensors] 2.6.24-rc4 hwmon it87 probe fails Robert Hancock
2008-01-12 9:56 ` Jean Delvare
2007-12-23 23:14 [lm-sensors] " Bjorn Helgaas
2007-12-25 21:31 ` Jean Delvare
2008-01-02 18:30 ` Bjorn Helgaas
2008-01-12 9:49 ` Jean Delvare
-- strict thread matches above, loose matches on Subject: below --
2007-12-05 2:51 Mike Houston
2007-12-09 0:05 ` Adrian Bunk
2007-12-09 2:22 ` Mike Houston
2007-12-09 9:50 ` [lm-sensors] " Jean Delvare
2007-12-09 21:12 ` Elvis Pranskevichus
2007-12-09 22:42 ` Jean Delvare
2007-12-10 0:19 ` Mike Houston
2007-12-10 1:32 ` Ed Sweetman
2007-12-10 14:55 ` Jean Delvare
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox