compaq evo w6000

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



mlo wrote:
> Hi,
> 
> I stumbled upon an exchange of messages on this list concerning sensors
> on a Compaq evo W6000 (dating back 15-May-2006) where Rudolf Marek gave
> a procedure to activate a possibly existing but hidden SMBUS where
> sensors could be attached. I have an evo W6000 and could run the
> proposed procedure and here are the results.

Good.

>> Quick howto:
>> 1) lspci -n will tell you the IDs, you will need: pci Id of 0000:00:1f.0
>>
>> first part is 8086: which is intel, second part is the requested ID
>>
>> 2) quick hack the quirks.c
>>
>> change this:
>> static int __initdata asus_hides_smbus = 0;
>> to
>> static int __initdata asus_hides_smbus = 1;
>>
>> Then recompile and run. you should now see the smbus. If not then take the pci 
>> ID from step 1 and change following line:
>> DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL,   PCI_DEVICE_ID_INTEL_82801BA_0, 
>> asus_hides_smbus_lpc );
>>
>> into
>> DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL,   0xNNNN,  asus_hides_smbus_lpc );
>>
>> where NNNN is you ID number.
> 
> 
> For the evo, NNNN is 0x2440 and is already in the quirk.c as PCI_DEVICE_ID_INTEL_82801BA_0
> Therefore, the only thing to change in quirk.c was to set asus_hides_smbus=1 ...
> and it worked, lspci now reports the SMBUS:
> 
> 00:1f.3 SMBus: Intel Corporation 82801BA/BAM SMBus (rev 04)
>         Subsystem: Compaq Computer Corporation Evo W6000
>         Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
>         Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
>         Interrupt: pin B routed to IRQ 5
>         Region 4: I/O ports at fc00 [size=16]

Good2

> and sensors-detect can configure 2 chips so that "sensors" report something like:
> 
> max1617-i2c-0-18
> Adapter: SMBus I801 adapter at fc00
> 
> Board:       +53??C  (low  =   -55??C, high =  +127??C)
> CPU:         +61??C  (low  =   -55??C, high =   +64??C)
> 
> adm1023-i2c-0-4c
> Adapter: SMBus I801 adapter at fc00
> 
> Board:       +35??C  (low  =   -55??C, high =  +127??C)
> CPU:         +37??C  (low  =   -55??C, high =   +62??C)
> 
> 
>> If you are able to see the smbus device run sensors-detect and please report if 
>> you found some useful devices. If so, proper quirk needs to be developed. You 
>> should provide:
>> lspci
>> lspci -n
>> lspci -v -v -v
>> lspci -v -v -v -n
> 
> 
> Then, I tried to adapt the quirk.c in the same way that it is done for the other
> systems that suffer from the hidden SMBUS issue and understood that the operation is done in 2 steps:
> 1 - identify if the computer model suffers from the problem by comparing the hostbridge
>     subsystem_vendor and subsystem_device with those known to be problematic.
> 
> 2 - if first test succeeds, then write some magic value in pci register when processing the
>     LPC device.
> 
> Having understood this, the change should be easy to do but ... the hostbridge of the evo W6000
> does not report a subsystem vendor and device:
> 
> # lspci -v -v -v -n
> 00:00.0 Class 0600: 8086:2531 (rev 04)
>         Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B-
>         Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ >SERR+ <PERR+
>         Latency: 0
>         Region 0: Memory at e8000000 (32-bit, prefetchable) [size=64M]
>         Capabilities: [a0] AGP version 2.0
>                 Status: RQ=32 Iso- ArqSz=0 Cal=0 SBA+ ITACoh- GART64- HTrans- 64bit- FW+ AGP3- Rate=x1,x2,x4
>                 Command: RQ=1 ArqSz=0 Cal=0 SBA- AGP+ GART64- 64bit- FW- Rate=x4
> ...
> 
> # lspci -v -v -v
> 00:00.0 Host bridge: Intel Corporation 82860 860 (Wombat) Chipset Host Bridge (MCH) (rev 04)
>         Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B-
>         Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ >SERR+ <PERR+
>         Latency: 0
>         Region 0: Memory at e8000000 (32-bit, prefetchable) [size=64M]
>         Capabilities: [a0] AGP version 2.0
>                 Status: RQ=32 Iso- ArqSz=0 Cal=0 SBA+ ITACoh- GART64- HTrans- 64bit- FW+ AGP3- Rate=x1,x2,x4
>                 Command: RQ=1 ArqSz=0 Cal=0 SBA- AGP+ GART64- 64bit- FW- Rate=x4
> 
> And the LPC does not have subsystem ID either.
> 
> # lspci -v -v -v
> 00:1f.0 ISA bridge: Intel Corporation 82801BA ISA Bridge (LPC) (rev 04)
>         Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B-
>         Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR+ <PERR-
> 
> 
> Also there are no PCI device processed before the LPC that have subsystem info (otherwise they could be used instead of the HB)
> 
> After the LPC device, there are devices with subsystem information such as the IDE interface:
> 
> 00:1f.1 IDE interface: Intel Corporation 82801BA IDE U100 (rev 04) (prog-if 80 [Master])
>         Subsystem: Compaq Computer Corporation Unknown device 0077
>         Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
>         Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
>         Latency: 0
>         Region 4: I/O ports at 2040 [size=16]
> 
> I wonder how this problem can be worked around:
> I thought about several solutions but I wonder if they may work:
> 
> idea 1 - do the PCI magic when stumbling upon the IDE interface (it is the first device that reports subsystem IDs that probably correspond indirectly to the mainboard: 0077 )
> => could it work (playing with PCI after having configured the LPC and also what is the risk that 0077 is used in another system than evo W6000) ?

Well only compaq people knows it...

> 
> Idea 2 - detect the type of mainboard thanks to something else than the subsystem ID of the HB.
> => I'm not certain where this info could be obtained reliably nor how (BIOS ?)

DMI is the answer
> 
> Idea 3 - replace the first step of the detection by a boot parameter
> (one would set "asus_hides_smbus=1" in the boot parameters if he has a hardware with hidden SMBUS that cannot be quirk'ed because it's HB does not report subsystem IDs such as evo W6000)

Hmm this will work only for the listed IDs
> 
> 
> If someone could shed some light on the possible side effects of such solutions or give other tracks, it would be great.
> If nothing safe can be found (that does not risk to make quirk.c bring problem on some systems that work today), I guess that people will have to modify the quirk.c to activate the SMBUS on such hardware.

Well I think we do not want to activate the SMBUs on notebooks because it may
interfere with the ACPI or SMBIOS code. - Two diffrent "drivers" talking to same
device is no-good. So I would suggest to leave it as it is unless there are
strong reasons why the SMBus has to be un-hidden.

Regards
Rudolf




[Index of Archives]     [Linux Kernel]     [Linux Hardware Monitoring]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux