Hi Jingu !
Great thanks for your detailed reply.
Sorry for the DSDT submited. In deed, I've removed the one I told you about just before sending my post because I did not notice any change in Lion 10.7.2.
So here is the one with thermal zones THRM and TAH0 and TAH1.
Ok for the Acpimonitor !
Can you tell me if the rest of your method described remain the same?
Azerq
This post has been edited by azerq: Mar 7 2012, 07:45 PM
| Start a new topic Add Reply |
Nov 19 2011, 12:09 PM
Post #101
Nov 19 2011, 10:50 PM
Post #102
Azerq.
Your use of TA01 and TA02 looked fine in your dsdt. All you need to do now is to add Device (SMCD) to your dsdt. You can add the Device (SMCD) right above your Device (PS2K).
I have edited the below Device (SMCD) for your TA01 and TA02 variables.
If your Asus notebook is returning fan rpm values like mine, that formula should work for Lion. Don't forget to add ACPIMonitor.kext to Extra/Extensions.
This post has been edited by Jingu: Nov 19 2011, 10:52 PM
Your use of TA01 and TA02 looked fine in your dsdt. All you need to do now is to add Device (SMCD) to your dsdt. You can add the Device (SMCD) right above your Device (PS2K).
I have edited the below Device (SMCD) for your TA01 and TA02 variables.
CODE
Device (SMCD)
{
Name (_HID, "monitor")
Method (FAN0, 0, NotSerialized)
{
Store (^^EC0.TA02, Local0)
Store (^^EC0.TA01, Local1)
ShiftLeft (Local0, 0x08, Local0)
Or (Local0, Local1, Local0)
Store (0x80, Local2)
Store (0x02, Local3)
Multiply (Local2, Local3, Local4)
Multiply (Local0, Local4, Local5)
Divide (0x03938700, Local5, Local6, Local7)
Multiply (Local7, 0x0A, Local7)
Return (Local7)
}
}
{
Name (_HID, "monitor")
Method (FAN0, 0, NotSerialized)
{
Store (^^EC0.TA02, Local0)
Store (^^EC0.TA01, Local1)
ShiftLeft (Local0, 0x08, Local0)
Or (Local0, Local1, Local0)
Store (0x80, Local2)
Store (0x02, Local3)
Multiply (Local2, Local3, Local4)
Multiply (Local0, Local4, Local5)
Divide (0x03938700, Local5, Local6, Local7)
Multiply (Local7, 0x0A, Local7)
Return (Local7)
}
}
If your Asus notebook is returning fan rpm values like mine, that formula should work for Lion. Don't forget to add ACPIMonitor.kext to Extra/Extensions.
This post has been edited by Jingu: Nov 19 2011, 10:52 PM
Nov 19 2011, 11:59 PM
Post #103
Thanks again for your fast reply,
I modified my DSDT as you recommended and installed ACPIMonitor in Extra/Extensions. Didn't works
(may be it's not the right version of Acpimonitor ?)
But the worst is that when reading your second last post, I just realized after many weeks of reading this topics that the Kext Acpimonitor is primarily used for monitoring the speed of the fans and not reducing their speed and thus reducing the high temperatures that is my big problem in Lion10.7.2 !!
Result: Great disappointment! But let's say that's also the world's Hackitosh!
So my question (not related to this topic of course) : From your experience with the Asus Laptop, which path should I follow to reduce the very high temperatures of my Laptop? (kexts to install DSDT changes, etc ...)
For your information, in Snowleopard, I do not use DSDT but I install the kexts that are in my Extra file and temperatures are not so hight :
Thanks for reading.
Any help and / or suggestions are very welcome :-)
In advance thank you!
Azerq
This post has been edited by azerq: Mar 7 2012, 07:45 PM
I modified my DSDT as you recommended and installed ACPIMonitor in Extra/Extensions. Didn't works
(may be it's not the right version of Acpimonitor ?)
But the worst is that when reading your second last post, I just realized after many weeks of reading this topics that the Kext Acpimonitor is primarily used for monitoring the speed of the fans and not reducing their speed and thus reducing the high temperatures that is my big problem in Lion10.7.2 !!
Result: Great disappointment! But let's say that's also the world's Hackitosh!
So my question (not related to this topic of course) : From your experience with the Asus Laptop, which path should I follow to reduce the very high temperatures of my Laptop? (kexts to install DSDT changes, etc ...)
For your information, in Snowleopard, I do not use DSDT but I install the kexts that are in my Extra file and temperatures are not so hight :
Thanks for reading.
Any help and / or suggestions are very welcome :-)
In advance thank you!
Azerq
This post has been edited by azerq: Mar 7 2012, 07:45 PM
Nov 20 2011, 11:39 AM
Post #104
Azerq,
I saw one problem. You're using the old FakeSMC and FakeSMC plug-ins from version 2.1.
There's been a new FakeSMC version 3.1 with new 3.1 plug-ins since last June. There is a direct download link in the FakeSMC/Downloads section. Here's the download link for the 10.6 Release version 3.1 revision 477
http://www.projectosx.com/forum/index.php?...ost&id=3014
I saw one problem. You're using the old FakeSMC and FakeSMC plug-ins from version 2.1.
There's been a new FakeSMC version 3.1 with new 3.1 plug-ins since last June. There is a direct download link in the FakeSMC/Downloads section. Here's the download link for the 10.6 Release version 3.1 revision 477
http://www.projectosx.com/forum/index.php?...ost&id=3014
Nov 21 2011, 11:24 PM
Post #105
Hi there Jingu !
I installed FakeSMC and the others plugings from 10.6 release (except X3100.kext and RadeonMonitor.kext) in both the two systems installed in my Laptop Asus X71Vn (SnowLeopard without DSDT and Lion with DSDT ans SSDT Tables).
Results : Temperatures have drastically dropped !! Thanks very much !
Also, I now have other sensors visible in istat menu
Unfortunately, as you will see in the capture, even if I installed ACPMImonitor of the 10.6 release, Fans sensors are still not active.
What I've noticed : Fans in Lion still turn continuously. And, it has also become the case in SnowLeopard with FakeSMC 3.1 (before Temperature was more high but Fans stop from time to time with FakeSMC 2.1).
My questions (Related to my Lion 10.7.2 installation; which is my ultimate goal !) :
I wonder if the correct activation of Fan sensor (trough your ACPImonitor Formula) which remains unsuccessful right now could address this issue ?
Or, the others revision of FakeSMC may help for that ? (I'm thinking about the last one 499 ?)
Or, may be, but it's just a supposition, editing FakeSMC 3.1 and adapting somme "thing" related to Fans in order to act like FakeSMC 2.1 in matter of Fans ?
Let me thank you for your reading and for your help (since approximatively two years of using SnowLeopard I've NEVER had those low temperature !!
)
Azerq
This post has been edited by azerq: Mar 7 2012, 07:45 PM
I installed FakeSMC and the others plugings from 10.6 release (except X3100.kext and RadeonMonitor.kext) in both the two systems installed in my Laptop Asus X71Vn (SnowLeopard without DSDT and Lion with DSDT ans SSDT Tables).
Results : Temperatures have drastically dropped !! Thanks very much !
Also, I now have other sensors visible in istat menu
Unfortunately, as you will see in the capture, even if I installed ACPMImonitor of the 10.6 release, Fans sensors are still not active.
What I've noticed : Fans in Lion still turn continuously. And, it has also become the case in SnowLeopard with FakeSMC 3.1 (before Temperature was more high but Fans stop from time to time with FakeSMC 2.1).
My questions (Related to my Lion 10.7.2 installation; which is my ultimate goal !) :
I wonder if the correct activation of Fan sensor (trough your ACPImonitor Formula) which remains unsuccessful right now could address this issue ?
Or, the others revision of FakeSMC may help for that ? (I'm thinking about the last one 499 ?)
Or, may be, but it's just a supposition, editing FakeSMC 3.1 and adapting somme "thing" related to Fans in order to act like FakeSMC 2.1 in matter of Fans ?
Let me thank you for your reading and for your help (since approximatively two years of using SnowLeopard I've NEVER had those low temperature !!
Azerq
This post has been edited by azerq: Mar 7 2012, 07:45 PM
Nov 22 2011, 06:53 PM
Post #106
Please take into account that FakeSMC and plugins do not influence on temperature and Fan speed. It just measure them.
Real influence comes from DSDT.
Real influence comes from DSDT.
Nov 23 2011, 08:42 PM
Post #107
Hi Slice, Hi Jingu and whomever can help !
Thank you for your comment. Indeed, I realized this (cf : my second last post).
BTW, I need your advices to activate Fans sensors. I've applied recommended modifications with the help of Jingo without success.
Also, can you please take a quick look to my Extra File under Lion 10.7.2 ? Maybe you can guide me to address the problem of heating and Fans that turns continuously !
Great thanks in advance...
Meanwhile any suggestions from Jingu related to my last post still greatly welcom
Edit : For information, I post in this topic because my goal is also to activate correctly fans sensors (with ACPImonitor), in order to be able to implement the successful method posted by tmacyunn1 (post 94) for reducing Fans speed. Thank you for your comprehension.
Azerq
This post has been edited by azerq: Mar 7 2012, 07:46 PM
Please take into account that FakeSMC and plugins do not influence on temperature and Fan speed. It just measure them.
Real influence comes from DSDT.
Real influence comes from DSDT.
Thank you for your comment. Indeed, I realized this (cf : my second last post).
BTW, I need your advices to activate Fans sensors. I've applied recommended modifications with the help of Jingo without success.
Also, can you please take a quick look to my Extra File under Lion 10.7.2 ? Maybe you can guide me to address the problem of heating and Fans that turns continuously !
Great thanks in advance...
Meanwhile any suggestions from Jingu related to my last post still greatly welcom
Edit : For information, I post in this topic because my goal is also to activate correctly fans sensors (with ACPImonitor), in order to be able to implement the successful method posted by tmacyunn1 (post 94) for reducing Fans speed. Thank you for your comprehension.
Azerq
This post has been edited by azerq: Mar 7 2012, 07:46 PM
Nov 24 2011, 05:10 AM
Post #108
How would I figure out which sensors relate to the fan on my laptop?
Nov 25 2011, 08:27 PM
Post #109
So I don't understand you.
Please take into account that FakeSMC and plugins do not influence on temperature and Fan speed. It just measure them.
Real influence comes from DSDT.
Real influence comes from DSDT.
Thank you for your comment. Indeed, I realized this (cf : my second last post).
BTW, I need your advices to activate Fans sensors.
my goal is also to activate correctly fans sensors (with ACPImonitor), in order to be able to implement the successful method posted by tmacyunn1 (post 94) for reducing Fans speed.
BTW, I need your advices to activate Fans sensors.
my goal is also to activate correctly fans sensors (with ACPImonitor), in order to be able to implement the successful method posted by tmacyunn1 (post 94) for reducing Fans speed.
Nov 25 2011, 09:38 PM
Post #110
Hi Slice,
Thank you for giving you time to read my post
Surely you've realized I'm a beginner in the world of sensors
But, the reading of tmacyunn1 post (#94) made ​​me realize that he made some tests under windows with the use of RW (see Picture) and he managed by the help of ACPIMonitor to activate the correct control of the fans based on CPU temperature.
Here's the portion of his post when he talk about that:
I do not know if I understand everything, but I think that any attempt to resolve my Fans problem will have to go, first, by activating their sensors in order to see their speed (rpm with iStat for example!)
Am I on the right way ?
Last bu not least, I don't want to abuse your time, but I wonder if I'm not missing a very simple thing!
So thank you to take a brief look at my Lion 10.7.2 Extra File
in order to kindly give me some ideas on the improvement my DSDT (always in connection with native Power Managment and Fans!)
A very great thanks for your efforts and your work for the world of Hackintosh
Azerq
This post has been edited by azerq: Mar 7 2012, 07:46 PM
Thank you for giving you time to read my post
So I don't understand you.
Surely you've realized I'm a beginner in the world of sensors
But, the reading of tmacyunn1 post (#94) made ​​me realize that he made some tests under windows with the use of RW (see Picture) and he managed by the help of ACPIMonitor to activate the correct control of the fans based on CPU temperature.
Here's the portion of his post when he talk about that:
First: I use RW-everthing to get some register of hardware, at last i find some. There is a register about fan control, by writing some value to it can open or stop fan, or change the speed. As the picture shows below,
http://cl.ly/2p3x190z0q3Z240b233a
http://cl.ly/2p3x190z0q3Z240b233a
I do not know if I understand everything, but I think that any attempt to resolve my Fans problem will have to go, first, by activating their sensors in order to see their speed (rpm with iStat for example!)
Am I on the right way ?
Last bu not least, I don't want to abuse your time, but I wonder if I'm not missing a very simple thing!
So thank you to take a brief look at my Lion 10.7.2 Extra File
in order to kindly give me some ideas on the improvement my DSDT (always in connection with native Power Managment and Fans!)
A very great thanks for your efforts and your work for the world of Hackintosh
Azerq
This post has been edited by azerq: Mar 7 2012, 07:46 PM
Nov 27 2011, 10:05 AM
Post #111
Azerq,
Slice is right. Getting the fan rpm reading is quite different from controlling the fan rpm.
I'm glad that my post made things a little better for you, but I take no credit. We got some good developers that come up with good stuff. Actually, getting the fan rpm reading by adding Device SMCD is something that was already covered at the beginning of this very ACPIMonitor thread. I suggest you re-read this thread to find clues why you're not getting fan rpm reading. Also, check your kernel log for clues.
Slice is right. Getting the fan rpm reading is quite different from controlling the fan rpm.
I'm glad that my post made things a little better for you, but I take no credit. We got some good developers that come up with good stuff. Actually, getting the fan rpm reading by adding Device SMCD is something that was already covered at the beginning of this very ACPIMonitor thread. I suggest you re-read this thread to find clues why you're not getting fan rpm reading. Also, check your kernel log for clues.
Jan 30 2012, 09:48 PM
Post #112
Someone I can edit my dsdt to work with ACPIMonitor, I tried but I can't. Please
http://www.mediafire.com/?03cynqkxa0q8c85
http://www.mediafire.com/?03cynqkxa0q8c85
Feb 5 2012, 09:57 PM
Post #113
For those looking for NCT677x here it is:
It was made for my board with only 2 FANS, I didn't had time to finish/implement SMBus/PECI stuff b/c I moved from ACPI to dedicated plugin.
I will pass the source to mozodojo, to implement it on updated project.
Enjoy and share!
CODE
Device (SIOR) // Super IO Registers
{
Name (_HID, "MONITOR") // HWMonitor driver will look for this in order to load or not
Name (_STA, 0x0F)
Name (_CRS, ResourceTemplate () {IO (Decode16, 0x0290, 0x0290, 0x01, 0x10)})
OperationRegion (HWRE, SystemIO, 0x0290, 0x0A)
Field (HWRE, ByteAcc, NoLock, Preserve)
{
Offset (0x05),
HIDX, 8, // ADDRESS_REGISTER_OFFSET = 0x05
HDAT, 8 // DATA_REGISTER_OFFSET = 0x06
}
IndexField (HIDX, HDAT, ByteAcc, NoLock, Preserve) // BANK #0
{
Offset (0x00), // Bank #0 SMBus Register Map
SDAT, 8, // Bank0, Index 00h, SMBus Data (SMDATA)
SWSZ, 8, // Bank0, Index 01h, SMBus Write Data Size (SMWRSIZE)
SCMD, 8, // Bank0, Index 02h, SMBus Command (SMCMD)
SIDX, 8, // Bank0, Index 03h, SMBus INDEX (SMIDX)
SCTL, 8, // Bank0, Index 04h, SMBus Control (SMCTL)
SADR, 8, // Bank0, Index 05h, SMBus Address (SMADDR)
SCLF, 8, // Bank0, Index 06h, SCL FREQ (SCLFREQ)
, 8, // Bank0, Index 07h, Reserved
PADR, 8, // Bank0, Index 08h, PCH Address (PCHADDR)
ERRS, 8, // Bank0, Index 09h, SMBus Error Status (Error_status)
, 8, // Bank0, Index 0Ah, Reserved
PCMD, 8, // Bank0, Index 0Bh, PCH Command (PCHCMD)
, 8, // Bank0, Index 0Ch, Reserved
TSIA, 8, // Bank0, Index 0Dh, TSI Agent Enable Register (TSI_AGENT)
CTL3, 8, // Bank0, Index 0Eh, SMBus Control 3 Register (SMCTL3)
CTL2, 8, // Bank0, Index 0Fh, SMBus Control 2 Register (SMCTL2)
BADR, 8, // Bank0, Index 10h, BYTE ADDRESS (BYTE ADDR)
BIXH, 8, // Bank0, Index 11h, BYTE_IDX_H (High BYTE INDEX)
BIXL, 8, // Bank0, Index 12h, BYTE_IDX_L (LOW BYTE INDEX)
, 8, // Bank0, Index 13h, Reserved
, 8, // Bank0, Index 14h, Reserved
Offset (0x20), // Bank #0 Voltages
VCOR, 8, // Bank0, Index 20h - CPUVCORE - nominal voltage 1.2 V
V12V, 8, // Bank0, Index 21h - VIN0 +12 V
V33A, 8, // Bank0, Index 22h - AVCC -Analog +3.3 V power input. Internally supply power to all analog circuits.
V33V, 8, // Bank0, Index 23h - 3VCC +3.3 V power supply for driving 3 V on host interface.
V12N, 8, // Bank0, Index 24h - VIN1 +5V
VIN2, 8, // Bank0, Index 25h - VIN2 +5VSB
VIN3, 8, // Bank0, Index 26h - VIN3 +3.3V
Offset (0x4E),
BSEL, 3, // BANK_SELECT_REGISTER
Offset (0x5D), // Bank #0 VBAT Monitor Control Register
BATE, 1, // Bank0, Index 5Dh, Bit0 - EN_VBAT_MNT, 1: Enable battery voltage monitor
Offset (0x73), // Bank #0 Monitored Voltage Temperature
SYST, 8, // Bank0, Index 73h - SYSTIN
Offset (0x75),
CPUT, 8, // Bank0, Index 75h - CPUTIN
Offset (0x77),
AUXT, 8, // Bank0, Index 77h - AUXTIN
Offset (0xAE), // Bank0, Index AEh - PECI Agent Enable Register
PAG0, 1, // Bank0, Index AEh, bit0 - 0x01 to enable PECI Agent 0 mode
}
IndexField (HIDX, HDAT, ByteAcc, NoLock, Preserve) // BANK #2
{
Offset (0x00),
AGNT, 8, // Bank2, Index 00h - PECI Agent, 0Ch to select PECI Agent 0 as CPUFAN monitoring source
}
IndexField (HIDX, HDAT, ByteAcc, NoLock, Preserve) // BANK #3
{
Offset (0x00), // Bank #3 AUXFAN Monitor Temperature Source Select Register/STOPDUTY Enable Register
ATSS, 5, // Bank3, Index 00h, Bit0-4 - AUXFAN Temperature Source Select
}
IndexField (HIDX, HDAT, ByteAcc, NoLock, Preserve) // BANK #5
{
Offset (0x50), // Bank #5 Voltages
V3SB, 8, // Bank5, Index 50h - 3VSB +3.3 V stand-by power supply for the digital circuits
VBAT, 8, // Bank5, Index 51h - +3 V on-board battery for the digital circuits(EN_VBAT_MNT MUST BE SET!)
}
IndexField (HIDX, HDAT, ByteAcc, NoLock, Preserve) // BANK #6
{
Offset (0x3A), // Bank #6 FAN MIN RPM READING
F0MH, 8, // Bank6, Index 3Ah - SYSFANIN MIN High Byte
F0ML, 8, // Bank6, Index 3Bh - SYSFANIN MIN Low Byte
F1MH, 8, // Bank6, Index 3Ch - CPUFANIN MIN High Byte
F1ML, 8, // Bank6, Index 3Dh - CPUFANIN MIN Low Byte
F2MH, 8, // Bank6, Index 3Eh - AUXFANIN0 MIN High Byte
F2ML, 8, // Bank6, Index 3Fh - AUXFANIN0 MIN Low Byte
F3MH, 8, // Bank6, Index 40h - AUXFANIN1 MIN MIN High Byte
F3ML, 8, // Bank6, Index 41h - AUXFANIN1 MIN Low Byte
F4MH, 8, // Bank6, Index 42h - AUXFANIN2 MIN High Byte
F4ML, 8, // Bank6, Index 43h - AUXFANIN2 MIN Low Byte
Offset (0x56), // Bank #6 FAN RPM READING
F0HB, 8, // Bank6, Index 56h - SYSFANIN High Byte
F0LB, 8, // Bank6, Index 57h - SYSFANIN Low Byte
F1HB, 8, // Bank6, Index 58h - CPUFANIN High Byte
F1LB, 8, // Bank6, Index 59h - CPUFANIN Low Byte
F2HB, 8, // Bank6, Index 5Ah - AUXFANIN0 High Byte
F2LB, 8, // Bank6, Index 5Bh - AUXFANIN0 Low Byte
F3HB, 8, // Bank6, Index 5Ch - AUXFANIN1 High Byte
F3LB, 8, // Bank6, Index 5Dh - AUXFANIN1 Low Byte
F4HB, 8, // Bank6, Index 5Eh - AUXFANIN2 High Byte
F4LB, 8, // Bank6, Index 5Fh - AUXFANIN2 Low Byte
}
IndexField (HIDX, HDAT, ByteAcc, NoLock, Preserve) // BANK #7
{
Offset (0x00),
, 8,
PEFR, 8, // Bank7, Index 01h - PECI Enable Function Register, 95h to enable PECI3.0
Offset (0x03),
CPUS, 8, // Bank7, Index 03h - Select CPU Agent and Domain, 10h to select Agent 0 and Domain 0.
Offset (0x05),
CADR, 8, // Bank7, Index 05h - Client Address
WLEN, 8, // Bank7, Index 06h - Write Length
RLEN, 8, // Bank7, Index 07h - Read Length
CMDC, 8, // Bank7, Index 08h - Cmd Code
TBS0, 8, // Bank7, Index 09h - Tbase0 temperature for CPU Agent 0
Offset (0x0B),
WDT1, 8, // Bank7, Index 0Bh - Write Data 1
WDT2, 8, // Bank7, Index 0Ch - Write Data 2
WDT3, 8, // Bank7, Index 0Dh - Write Data 3
WDT4, 8, // Bank7, Index 0Eh - Write Data 4
Offset (0x17), // PECI temperature raw data
TRHB, 8, // Bank7, Index 17h - PECI temperature raw data High Byte
TRLB, 8, // Bank7, Index 18h - PECI temperature raw data Low Byte
Offset (0x26),
WFCS, 8, // Bank7, Index 26h - Retrieve PECI WFCS related data from client
RFCS, 8, // Bank7, Index 27h - Retrieve PECI RFCS related data from client
Offset (0x2A),
RDT1, 8, // Bank7, Index 2Ah - Read Data 1
RDT2, 8, // Bank7, Index 2Bh - Read Data 2
RDT3, 8, // Bank7, Index 2Ch - Read Data 3
RDT4, 8, // Bank7, Index 2Dh - Read Data 4
RDT5, 8, // Bank7, Index 2Eh - Read Data 5
RDT6, 8, // Bank7, Index 2Fh - Read Data 6
RDT7, 8, // Bank7, Index 30h - Read Data 7
RDT8, 8, // Bank7, Index 31h - Read Data 8
RDT9, 8, // Bank7, Index 32h - Read Data 9
}
Method (TSYS, 0, NotSerialized) // System Temperature Sensor
{
Store (Zero, BSEL)
Return (SYST)
}
Method (TCPU, 0, NotSerialized) // CPU Temperature Sensor
{
Store (Zero, BSEL)
Return (CPUT)
}
Method (FAN0, 0, NotSerialized) // System FAN Speed
{
Store (0x06, BSEL)
Store (F0HB, Local0)
Store (F0LB, Local1)
Add (Local0, Local1, Local2)
Multiply (Local2, 0x0A, Local3)
Return (Local3)
}
Method (FAN1, 0, NotSerialized) // CPU FAN Speed
{
Store (0x06, BSEL)
Store (F1HB, Local0)
Store (F1LB, Local1)
Add (Local0, Local1, Local2)
Multiply (Local2, 0x0A, Local3)
Return (Local3)
}
Method (VCPU, 0, NotSerialized) // CPUVCORE: CPU Voltage Sensor
{
Store (Zero, BSEL)
Return (Multiply (VCOR, 0x08))
}
Method (P12V, 0, NotSerialized) // VIN0: +12 V or CPUVCCIO???
{
Store (Zero, BSEL)
Return (Multiply (V12V, 0x08))
}
Method (VSN1, 0, NotSerialized) // AVCC: Analog +3.3 V
{
Store (Zero, BSEL)
Return (Multiply (V33A, 0x10))
}
Method (VSN2, 0, NotSerialized) // 3VCC: +3.3 V
{
Store (Zero, BSEL)
Return (Multiply (V33V, 0x10))
}
Method (VSN3, 0, NotSerialized) // 3VSB: +3.3 V
{
Store (0x05, BSEL)
Return (Multiply (V3SB, 0x10))
}
Method (VSN4, 0, NotSerialized)// VBAT: +3 V
{
Store (Zero, BSEL)
Store (One, BATE)
Store (0x05, BSEL)
Return (Multiply (VBAT, 0x10))
}
Method (VSN5, 0, NotSerialized) // VIN1: -12 V? or +5 V???
{
Store (Zero, BSEL)
Return (Multiply (V12N, 0x08))
}
Method (VSN6, 0, NotSerialized) // VIN2: DRAM or too high???
{
Store (Zero, BSEL)
Return (Multiply (VIN2, 0x08))
}
Method (VSN7, 0, NotSerialized) // VIN3: CPUPLL??
{
Store (Zero, BSEL)
Return (Multiply (VIN3, 0x08))
}
// AUXFAN Temperature Source Select:
// 0x01: Select SYSTIN as AUXFAN monitoring source. OK!
// 0x02: Select CPUTIN as AUXFAN monitoring source. NOT OK! Gave the value in fahrenheit?
// 0x03: Select AUXTIN as AUXFAN monitoring source. (Default)
// 0x04: Select SMBUSMASTER 0 as AUXFAN monitoring source.
// 0x05: Select SMBUSMASTER 1 as AUXFAN monitoring source.
// 0x06: Select SMBUSMASTER 2 as AUXFAN monitoring source.
// 0x07: Select SMBUSMASTER 3 as AUXFAN monitoring source.
// 0x08: Select SMBUSMASTER 4 as AUXFAN monitoring source.
// 0x09: Select SMBUSMASTER 5 as AUXFAN monitoring source.
// 0x0A: Select SMBUSMASTER 6 as AUXFAN monitoring source.
// 0x0B: Select SMBUSMASTER 7 as AUXFAN monitoring source.
// 0x0C: Select PECI Agent 0 as AUXFAN monitoring source.
// 0x0D: Select PECI Agent 1 as AUXFAN monitoring source.
// 0x0E: Select PCH_CHIP_CPU_MAX_TEMP as AUXFAN monitoring source.
// 0x0F: Select PCH_CHIP_TEMP as AUXFAN monitoring source.
// 0x10: Select PCH_CPU_TEMP as AUXFAN monitoring source.
// 0x11: Select PCH_MCH_TEMP as AUXFAN monitoring source.
// 0x12: Select PCH_DIM0_TEMP as AUXFAN monitoring source.
// 0x13: Select PCH_DIM1_TEMP as AUXFAN monitoring source.
// 0x14: Select PCH_DIM2_TEMP as AUXFAN monitoring source.
// 0x15: Select PCH_DIM3_TEMP as AUXFAN monitoring source.
// 0x16: Select BYTE_TEMP as AUXFAN monitoring source.
Method (TAMB, 0, NotSerialized) // AUXFAN Temperature Source Select Hack
{
Store (0x03, BSEL)
Store (0x0C, ATSS) // Select AUXFAN monitoring source
Store (Zero, BSEL)
Return (AUXT)
}
}
{
Name (_HID, "MONITOR") // HWMonitor driver will look for this in order to load or not
Name (_STA, 0x0F)
Name (_CRS, ResourceTemplate () {IO (Decode16, 0x0290, 0x0290, 0x01, 0x10)})
OperationRegion (HWRE, SystemIO, 0x0290, 0x0A)
Field (HWRE, ByteAcc, NoLock, Preserve)
{
Offset (0x05),
HIDX, 8, // ADDRESS_REGISTER_OFFSET = 0x05
HDAT, 8 // DATA_REGISTER_OFFSET = 0x06
}
IndexField (HIDX, HDAT, ByteAcc, NoLock, Preserve) // BANK #0
{
Offset (0x00), // Bank #0 SMBus Register Map
SDAT, 8, // Bank0, Index 00h, SMBus Data (SMDATA)
SWSZ, 8, // Bank0, Index 01h, SMBus Write Data Size (SMWRSIZE)
SCMD, 8, // Bank0, Index 02h, SMBus Command (SMCMD)
SIDX, 8, // Bank0, Index 03h, SMBus INDEX (SMIDX)
SCTL, 8, // Bank0, Index 04h, SMBus Control (SMCTL)
SADR, 8, // Bank0, Index 05h, SMBus Address (SMADDR)
SCLF, 8, // Bank0, Index 06h, SCL FREQ (SCLFREQ)
, 8, // Bank0, Index 07h, Reserved
PADR, 8, // Bank0, Index 08h, PCH Address (PCHADDR)
ERRS, 8, // Bank0, Index 09h, SMBus Error Status (Error_status)
, 8, // Bank0, Index 0Ah, Reserved
PCMD, 8, // Bank0, Index 0Bh, PCH Command (PCHCMD)
, 8, // Bank0, Index 0Ch, Reserved
TSIA, 8, // Bank0, Index 0Dh, TSI Agent Enable Register (TSI_AGENT)
CTL3, 8, // Bank0, Index 0Eh, SMBus Control 3 Register (SMCTL3)
CTL2, 8, // Bank0, Index 0Fh, SMBus Control 2 Register (SMCTL2)
BADR, 8, // Bank0, Index 10h, BYTE ADDRESS (BYTE ADDR)
BIXH, 8, // Bank0, Index 11h, BYTE_IDX_H (High BYTE INDEX)
BIXL, 8, // Bank0, Index 12h, BYTE_IDX_L (LOW BYTE INDEX)
, 8, // Bank0, Index 13h, Reserved
, 8, // Bank0, Index 14h, Reserved
Offset (0x20), // Bank #0 Voltages
VCOR, 8, // Bank0, Index 20h - CPUVCORE - nominal voltage 1.2 V
V12V, 8, // Bank0, Index 21h - VIN0 +12 V
V33A, 8, // Bank0, Index 22h - AVCC -Analog +3.3 V power input. Internally supply power to all analog circuits.
V33V, 8, // Bank0, Index 23h - 3VCC +3.3 V power supply for driving 3 V on host interface.
V12N, 8, // Bank0, Index 24h - VIN1 +5V
VIN2, 8, // Bank0, Index 25h - VIN2 +5VSB
VIN3, 8, // Bank0, Index 26h - VIN3 +3.3V
Offset (0x4E),
BSEL, 3, // BANK_SELECT_REGISTER
Offset (0x5D), // Bank #0 VBAT Monitor Control Register
BATE, 1, // Bank0, Index 5Dh, Bit0 - EN_VBAT_MNT, 1: Enable battery voltage monitor
Offset (0x73), // Bank #0 Monitored Voltage Temperature
SYST, 8, // Bank0, Index 73h - SYSTIN
Offset (0x75),
CPUT, 8, // Bank0, Index 75h - CPUTIN
Offset (0x77),
AUXT, 8, // Bank0, Index 77h - AUXTIN
Offset (0xAE), // Bank0, Index AEh - PECI Agent Enable Register
PAG0, 1, // Bank0, Index AEh, bit0 - 0x01 to enable PECI Agent 0 mode
}
IndexField (HIDX, HDAT, ByteAcc, NoLock, Preserve) // BANK #2
{
Offset (0x00),
AGNT, 8, // Bank2, Index 00h - PECI Agent, 0Ch to select PECI Agent 0 as CPUFAN monitoring source
}
IndexField (HIDX, HDAT, ByteAcc, NoLock, Preserve) // BANK #3
{
Offset (0x00), // Bank #3 AUXFAN Monitor Temperature Source Select Register/STOPDUTY Enable Register
ATSS, 5, // Bank3, Index 00h, Bit0-4 - AUXFAN Temperature Source Select
}
IndexField (HIDX, HDAT, ByteAcc, NoLock, Preserve) // BANK #5
{
Offset (0x50), // Bank #5 Voltages
V3SB, 8, // Bank5, Index 50h - 3VSB +3.3 V stand-by power supply for the digital circuits
VBAT, 8, // Bank5, Index 51h - +3 V on-board battery for the digital circuits(EN_VBAT_MNT MUST BE SET!)
}
IndexField (HIDX, HDAT, ByteAcc, NoLock, Preserve) // BANK #6
{
Offset (0x3A), // Bank #6 FAN MIN RPM READING
F0MH, 8, // Bank6, Index 3Ah - SYSFANIN MIN High Byte
F0ML, 8, // Bank6, Index 3Bh - SYSFANIN MIN Low Byte
F1MH, 8, // Bank6, Index 3Ch - CPUFANIN MIN High Byte
F1ML, 8, // Bank6, Index 3Dh - CPUFANIN MIN Low Byte
F2MH, 8, // Bank6, Index 3Eh - AUXFANIN0 MIN High Byte
F2ML, 8, // Bank6, Index 3Fh - AUXFANIN0 MIN Low Byte
F3MH, 8, // Bank6, Index 40h - AUXFANIN1 MIN MIN High Byte
F3ML, 8, // Bank6, Index 41h - AUXFANIN1 MIN Low Byte
F4MH, 8, // Bank6, Index 42h - AUXFANIN2 MIN High Byte
F4ML, 8, // Bank6, Index 43h - AUXFANIN2 MIN Low Byte
Offset (0x56), // Bank #6 FAN RPM READING
F0HB, 8, // Bank6, Index 56h - SYSFANIN High Byte
F0LB, 8, // Bank6, Index 57h - SYSFANIN Low Byte
F1HB, 8, // Bank6, Index 58h - CPUFANIN High Byte
F1LB, 8, // Bank6, Index 59h - CPUFANIN Low Byte
F2HB, 8, // Bank6, Index 5Ah - AUXFANIN0 High Byte
F2LB, 8, // Bank6, Index 5Bh - AUXFANIN0 Low Byte
F3HB, 8, // Bank6, Index 5Ch - AUXFANIN1 High Byte
F3LB, 8, // Bank6, Index 5Dh - AUXFANIN1 Low Byte
F4HB, 8, // Bank6, Index 5Eh - AUXFANIN2 High Byte
F4LB, 8, // Bank6, Index 5Fh - AUXFANIN2 Low Byte
}
IndexField (HIDX, HDAT, ByteAcc, NoLock, Preserve) // BANK #7
{
Offset (0x00),
, 8,
PEFR, 8, // Bank7, Index 01h - PECI Enable Function Register, 95h to enable PECI3.0
Offset (0x03),
CPUS, 8, // Bank7, Index 03h - Select CPU Agent and Domain, 10h to select Agent 0 and Domain 0.
Offset (0x05),
CADR, 8, // Bank7, Index 05h - Client Address
WLEN, 8, // Bank7, Index 06h - Write Length
RLEN, 8, // Bank7, Index 07h - Read Length
CMDC, 8, // Bank7, Index 08h - Cmd Code
TBS0, 8, // Bank7, Index 09h - Tbase0 temperature for CPU Agent 0
Offset (0x0B),
WDT1, 8, // Bank7, Index 0Bh - Write Data 1
WDT2, 8, // Bank7, Index 0Ch - Write Data 2
WDT3, 8, // Bank7, Index 0Dh - Write Data 3
WDT4, 8, // Bank7, Index 0Eh - Write Data 4
Offset (0x17), // PECI temperature raw data
TRHB, 8, // Bank7, Index 17h - PECI temperature raw data High Byte
TRLB, 8, // Bank7, Index 18h - PECI temperature raw data Low Byte
Offset (0x26),
WFCS, 8, // Bank7, Index 26h - Retrieve PECI WFCS related data from client
RFCS, 8, // Bank7, Index 27h - Retrieve PECI RFCS related data from client
Offset (0x2A),
RDT1, 8, // Bank7, Index 2Ah - Read Data 1
RDT2, 8, // Bank7, Index 2Bh - Read Data 2
RDT3, 8, // Bank7, Index 2Ch - Read Data 3
RDT4, 8, // Bank7, Index 2Dh - Read Data 4
RDT5, 8, // Bank7, Index 2Eh - Read Data 5
RDT6, 8, // Bank7, Index 2Fh - Read Data 6
RDT7, 8, // Bank7, Index 30h - Read Data 7
RDT8, 8, // Bank7, Index 31h - Read Data 8
RDT9, 8, // Bank7, Index 32h - Read Data 9
}
Method (TSYS, 0, NotSerialized) // System Temperature Sensor
{
Store (Zero, BSEL)
Return (SYST)
}
Method (TCPU, 0, NotSerialized) // CPU Temperature Sensor
{
Store (Zero, BSEL)
Return (CPUT)
}
Method (FAN0, 0, NotSerialized) // System FAN Speed
{
Store (0x06, BSEL)
Store (F0HB, Local0)
Store (F0LB, Local1)
Add (Local0, Local1, Local2)
Multiply (Local2, 0x0A, Local3)
Return (Local3)
}
Method (FAN1, 0, NotSerialized) // CPU FAN Speed
{
Store (0x06, BSEL)
Store (F1HB, Local0)
Store (F1LB, Local1)
Add (Local0, Local1, Local2)
Multiply (Local2, 0x0A, Local3)
Return (Local3)
}
Method (VCPU, 0, NotSerialized) // CPUVCORE: CPU Voltage Sensor
{
Store (Zero, BSEL)
Return (Multiply (VCOR, 0x08))
}
Method (P12V, 0, NotSerialized) // VIN0: +12 V or CPUVCCIO???
{
Store (Zero, BSEL)
Return (Multiply (V12V, 0x08))
}
Method (VSN1, 0, NotSerialized) // AVCC: Analog +3.3 V
{
Store (Zero, BSEL)
Return (Multiply (V33A, 0x10))
}
Method (VSN2, 0, NotSerialized) // 3VCC: +3.3 V
{
Store (Zero, BSEL)
Return (Multiply (V33V, 0x10))
}
Method (VSN3, 0, NotSerialized) // 3VSB: +3.3 V
{
Store (0x05, BSEL)
Return (Multiply (V3SB, 0x10))
}
Method (VSN4, 0, NotSerialized)// VBAT: +3 V
{
Store (Zero, BSEL)
Store (One, BATE)
Store (0x05, BSEL)
Return (Multiply (VBAT, 0x10))
}
Method (VSN5, 0, NotSerialized) // VIN1: -12 V? or +5 V???
{
Store (Zero, BSEL)
Return (Multiply (V12N, 0x08))
}
Method (VSN6, 0, NotSerialized) // VIN2: DRAM or too high???
{
Store (Zero, BSEL)
Return (Multiply (VIN2, 0x08))
}
Method (VSN7, 0, NotSerialized) // VIN3: CPUPLL??
{
Store (Zero, BSEL)
Return (Multiply (VIN3, 0x08))
}
// AUXFAN Temperature Source Select:
// 0x01: Select SYSTIN as AUXFAN monitoring source. OK!
// 0x02: Select CPUTIN as AUXFAN monitoring source. NOT OK! Gave the value in fahrenheit?
// 0x03: Select AUXTIN as AUXFAN monitoring source. (Default)
// 0x04: Select SMBUSMASTER 0 as AUXFAN monitoring source.
// 0x05: Select SMBUSMASTER 1 as AUXFAN monitoring source.
// 0x06: Select SMBUSMASTER 2 as AUXFAN monitoring source.
// 0x07: Select SMBUSMASTER 3 as AUXFAN monitoring source.
// 0x08: Select SMBUSMASTER 4 as AUXFAN monitoring source.
// 0x09: Select SMBUSMASTER 5 as AUXFAN monitoring source.
// 0x0A: Select SMBUSMASTER 6 as AUXFAN monitoring source.
// 0x0B: Select SMBUSMASTER 7 as AUXFAN monitoring source.
// 0x0C: Select PECI Agent 0 as AUXFAN monitoring source.
// 0x0D: Select PECI Agent 1 as AUXFAN monitoring source.
// 0x0E: Select PCH_CHIP_CPU_MAX_TEMP as AUXFAN monitoring source.
// 0x0F: Select PCH_CHIP_TEMP as AUXFAN monitoring source.
// 0x10: Select PCH_CPU_TEMP as AUXFAN monitoring source.
// 0x11: Select PCH_MCH_TEMP as AUXFAN monitoring source.
// 0x12: Select PCH_DIM0_TEMP as AUXFAN monitoring source.
// 0x13: Select PCH_DIM1_TEMP as AUXFAN monitoring source.
// 0x14: Select PCH_DIM2_TEMP as AUXFAN monitoring source.
// 0x15: Select PCH_DIM3_TEMP as AUXFAN monitoring source.
// 0x16: Select BYTE_TEMP as AUXFAN monitoring source.
Method (TAMB, 0, NotSerialized) // AUXFAN Temperature Source Select Hack
{
Store (0x03, BSEL)
Store (0x0C, ATSS) // Select AUXFAN monitoring source
Store (Zero, BSEL)
Return (AUXT)
}
}
It was made for my board with only 2 FANS, I didn't had time to finish/implement SMBus/PECI stuff b/c I moved from ACPI to dedicated plugin.
I will pass the source to mozodojo, to implement it on updated project.
Enjoy and share!
Feb 6 2012, 11:27 AM
Post #114
This is only DSDT patch or ACPImonitor changes required?
Feb 6 2012, 04:04 PM
Post #115
This is only DSDT patch or ACPImonitor changes required?
For Lion yes, ACPIMonitor needs to be fixed, it display wrong values on FAN read, and was the reason to move the development to dedicated plugin...
Feb 14 2012, 10:22 AM
Post #116
For Lion yes, ACPIMonitor needs to be fixed, it display wrong values on FAN read, and was the reason to move the development to dedicated plugin...
Looks like evaluateInteger() is wrong? What is the replacement?
Mar 15 2012, 06:08 AM
Post #117
hello
I would like to request an information and that 'the piece of code from SMCD injectare in dsdt for my motherboard Asus P6T Deluxe V2 and what plugin to add to the FakeSMC. Thanks
This post has been edited by piper69: Mar 23 2012, 07:35 PM
I would like to request an information and that 'the piece of code from SMCD injectare in dsdt for my motherboard Asus P6T Deluxe V2 and what plugin to add to the FakeSMC. Thanks
This post has been edited by piper69: Mar 23 2012, 07:35 PM
Apr 15 2012, 06:46 PM
Post #118
For those looking for NCT677x here it is:
It was made for my board with only 2 FANS, I didn't had time to finish/implement SMBus/PECI stuff b/c I moved from ACPI to dedicated plugin.
I will pass the source to mozodojo, to implement it on updated project.
Enjoy and share!
It was made for my board with only 2 FANS, I didn't had time to finish/implement SMBus/PECI stuff b/c I moved from ACPI to dedicated plugin.
I will pass the source to mozodojo, to implement it on updated project.
Enjoy and share!
I've been trying to wrap my head around this lately, but I keep running into difficulty. I have NCT6775F, and I've read in your previous posts about having an (EC) entry in DSDT as well - The functions of Device (EC) seem to work if I add it out of thin air (shows up in ioreg, and gives the same boot-ec values from macpro5,1). Does this mean that the EC functions are mostly something that's not handled by a particular chip?
I've also got several other thermal monitoring devices listed in my DSDT; OMSC, ^PCIE, RMSC, and WIM1. I'm assuming that PCIE is for monitoring voltages to the PCIE bus, and reading up on WIM1 seems to suggest it's just a virtual device anyway.
Mar 7 2013, 08:46 PM
Post #119
Hello,
First of all thanks to everybody involved in the development of FakeSMC and its plugins. I'm not really sure if this post should belong with more general DSDT editing, but I'm trying to work out how to modify my DSDT to get the ACPIMonitor plugin to load and to read the speed of a single CPU fan, so here goes.
My DSDT appears to have some sort of thermal zone defined, but I can't work out how to interpret it - any help from the experts here would be very gratefully received.
Scope (_TZ)
{
Mutex (THR0, 0x00)
PowerResource (FN10, 0x00, 0x0000)
{
Method (_ON, 0, NotSerialized)
{
}
Method (_OFF, 0, NotSerialized)
{
}
Method (_STA, 0, NotSerialized)
{
Return (One)
}
}
Device (FN1)
{
Name (_HID, EisaId ("PNP0C0B"))
Name (_UID, One)
Name (_PR0, Package (0x01)
{
FN10
})
Method (_PS0, 0, NotSerialized)
{
}
Method (_PS3, 0, NotSerialized)
{
}
}
ThermalZone (THRM)
{
Name (INIT, Zero)
Name (MODE, Zero)
Name (TERR, Zero)
Name (LEVE, Zero)
Name (PINT, Zero)
Method (_CRT, 0, NotSerialized)
{
Store (0x63, Local0)
Multiply (Local0, 0x0A, Local0)
Add (Local0, 0x0AAA, Local0)
Return (Local0)
}
Method (_PSV, 0, NotSerialized)
{
If (ECON)
{
If (TRLX)
{
Multiply (0x50, 0x0A, Local0)
}
Else
{
Multiply (0x5A, 0x0A, Local0)
}
Add (Local0, 0x0AAA, Local0)
}
Else
{
Store (0x0D9A, Local0)
}
Return (Local0)
}
Name (_PSL, Package (0x02)
{
\_PR.CPU0,
\_PR.CPU1
})
Method (_AC0, 0, NotSerialized)
{
Store (0x23, Local0)
Multiply (Local0, 0x0A, Local0)
Add (Local0, 0x0AAA, Local0)
Return (Local0)
}
Name (_AL0, Package (0x01)
{
FN1
})
Method (_SCP, 1, NotSerialized)
{
Store (Arg0, MODE)
}
Method (_TMP, 0, NotSerialized)
{
If (ECON)
{
If (LGreater (DTS1, DTS2))
{
Store (DTS1, Local1)
}
Else
{
Store (DTS2, Local1)
}
Multiply (Local1, 0x0A, Local0)
Add (Local0, 0x0AAA, Local0)
Return (Local0)
}
Return (Zero)
}
Name (_TC1, 0x04)
Name (_TC2, 0x03)
Name (_TSP, 0x96)
Name (THIN, One)
Name (TRLX, Zero)
Method (SFAN, 1, NotSerialized)
{
\_SB.PCI0.LPCB.KBC0.SMWR (0x06, 0x7A, 0x20, One)
If (Arg0)
{
If (LEqual (Arg0, One))
{
\_SB.PCI0.LPCB.KBC0.SMWR (0x06, 0x7A, 0x10, 0x99)
}
Else
{
If (LEqual (Arg0, 0x02))
{
\_SB.PCI0.LPCB.KBC0.SMWR (0x06, 0x7A, 0x10, 0x7B)
}
Else
{
\_SB.PCI0.LPCB.KBC0.SMWR (0x06, 0x7A, 0x10, 0x6D)
}
}
}
Else
{
\_SB.PCI0.LPCB.KBC0.SMWR (0x06, 0x7A, 0x10, 0xFF)
}
\_SB.PCI0.LPCB.KBC0.SMWR (0x06, 0x7A, 0x20, Zero)
}
Name (N_ST, Zero)
Name (L_ST, Zero)
Name (TMST, Package (0x0A)
{
0x24,
0x2B,
0x35,
0x3F,
0x49,
0x4E,
0x58,
0x60,
0x64,
0x69
})
Method (THCK, 0, NotSerialized)
{
Store (Zero, GPEC)
Acquire (THR0, 0xFFFF)
If (LGreater (DTS1, DTS2))
{
Store (DTS1, Local0)
}
Else
{
Store (DTS2, Local0)
}
Store (Zero, N_ST)
While (LGreater (Local0, DerefOf (Index (TMST, N_ST))))
{
If (LEqual (N_ST, 0x08))
{
Break
}
Else
{
Increment (N_ST)
}
}
If (LGreater (N_ST, L_ST))
{
If (Or (LEqual (N_ST, Zero), LEqual (N_ST, One)))
{
SFAN (Zero)
}
Else
{
If (Or (LEqual (N_ST, 0x02), LEqual (N_ST, 0x03)))
{
SFAN (One)
}
Else
{
If (Or (LEqual (N_ST, 0x04), LEqual (N_ST, 0x05)))
{
SFAN (0x02)
}
Else
{
SFAN (0x03)
If (LGreater (N_ST, 0x06))
{
Store (One, TRLX)
Notify (THRM, 0x81)
Notify (THRM, 0x80)
}
Else
{
}
}
}
}
}
Else
{
If (LLess (N_ST, L_ST))
{
If (And (LGreater (L_ST, 0x06), LLess (N_ST, 0x07)))
{
Store (Zero, TRLX)
Notify (THRM, 0x81)
Notify (THRM, 0x80)
}
If (LNot (N_ST))
{
SFAN (Zero)
}
Else
{
If (Or (LEqual (N_ST, One), LEqual (N_ST, 0x02)))
{
SFAN (One)
}
Else
{
If (Or (LEqual (N_ST, 0x03), LEqual (N_ST, 0x04)))
{
SFAN (0x02)
}
Else
{
SFAN (0x03)
}
}
}
}
}
Store (N_ST, L_ST)
Release (THR0)
}
}
}
I can handle simple DSDT patching, but this is beyond me.
I'm currently using the new FakeSMC 4.2 branch, binaries 645 with HWMonitor and with iStat. This is on an elderly mini PC, the Maxdata Favorit XS300 which was designed as a competitor to the original 2006 Mac Mini and shares many of its laptop-like features. It's Intel Calistoga based with a T5500 Mobile Core 2 Duo, 945GM ICH7M and GMA950. Currently I'm running Lion 10.7.5 successfully but in 32-bit mode due to the GMA950 drivers.
Because it has a very compact form-factor and only a single tiny fan above the CPU, I'm very interested in monitoring fan speed and temperatures. IntelCPUMonitor.kext gives me core temperatures once I've set TJMax manually to 100C instead of the 85C it sets by default. It would be fantastic to be able to read the CPU fan speed directly. Should further information be necessary I'm happy to try and provide it.
I've been trying under Linux and Windows to detect a super i/o chip. Everest/Aida fails to detect anything as does Open Hardware Monitor. Lm-sensors sensors-detect finds multiple instances of the Maxim Max665x fan controller chip at different i2c addresses. The confidence level is only 2 and I think this code was flagged as unreliable and removed from newer builds of lm-sensors, so these probably don't exist. The ICHSMBus plugin loads.
I include my original DSDT and also the current patched version which is patched to remove IRQs from RTC and TMR and add an IRQ to HPET. This fixed sound problems with AppleHDA.kext loaded. EHCI is also patched to allow sleep.
Original and Patched DSDT zip
I'm currently using the latest Chameleon r2187 as boot loader, and its .plist is set so that CPU P-states and C-states are automatically generated. That all looks fine, and AppleIntelCPUPowerManagement.kext loads, "ioreg -lw0 | grep AICPMVers" reports 19136773 Sadly Speedstep doesn't seem to work, multiplier, voltage and frequency always stay the same, but I think this is because I'm using MacMini1,1 as identifier in a custom smbios.plist. The REV key in FakeSMC is set to MacMini 1,1 1.3f4.
I've probably forgotten several vital pieces of information, but that's enough for one post. Again I'm grateful if anyone should read this far and interpret what is going on in my DSDT.
Many Thanks,
First of all thanks to everybody involved in the development of FakeSMC and its plugins. I'm not really sure if this post should belong with more general DSDT editing, but I'm trying to work out how to modify my DSDT to get the ACPIMonitor plugin to load and to read the speed of a single CPU fan, so here goes.
My DSDT appears to have some sort of thermal zone defined, but I can't work out how to interpret it - any help from the experts here would be very gratefully received.
CODE
Scope (_TZ)
{
Mutex (THR0, 0x00)
PowerResource (FN10, 0x00, 0x0000)
{
Method (_ON, 0, NotSerialized)
{
}
Method (_OFF, 0, NotSerialized)
{
}
Method (_STA, 0, NotSerialized)
{
Return (One)
}
}
Device (FN1)
{
Name (_HID, EisaId ("PNP0C0B"))
Name (_UID, One)
Name (_PR0, Package (0x01)
{
FN10
})
Method (_PS0, 0, NotSerialized)
{
}
Method (_PS3, 0, NotSerialized)
{
}
}
ThermalZone (THRM)
{
Name (INIT, Zero)
Name (MODE, Zero)
Name (TERR, Zero)
Name (LEVE, Zero)
Name (PINT, Zero)
Method (_CRT, 0, NotSerialized)
{
Store (0x63, Local0)
Multiply (Local0, 0x0A, Local0)
Add (Local0, 0x0AAA, Local0)
Return (Local0)
}
Method (_PSV, 0, NotSerialized)
{
If (ECON)
{
If (TRLX)
{
Multiply (0x50, 0x0A, Local0)
}
Else
{
Multiply (0x5A, 0x0A, Local0)
}
Add (Local0, 0x0AAA, Local0)
}
Else
{
Store (0x0D9A, Local0)
}
Return (Local0)
}
Name (_PSL, Package (0x02)
{
\_PR.CPU0,
\_PR.CPU1
})
Method (_AC0, 0, NotSerialized)
{
Store (0x23, Local0)
Multiply (Local0, 0x0A, Local0)
Add (Local0, 0x0AAA, Local0)
Return (Local0)
}
Name (_AL0, Package (0x01)
{
FN1
})
Method (_SCP, 1, NotSerialized)
{
Store (Arg0, MODE)
}
Method (_TMP, 0, NotSerialized)
{
If (ECON)
{
If (LGreater (DTS1, DTS2))
{
Store (DTS1, Local1)
}
Else
{
Store (DTS2, Local1)
}
Multiply (Local1, 0x0A, Local0)
Add (Local0, 0x0AAA, Local0)
Return (Local0)
}
Return (Zero)
}
Name (_TC1, 0x04)
Name (_TC2, 0x03)
Name (_TSP, 0x96)
Name (THIN, One)
Name (TRLX, Zero)
Method (SFAN, 1, NotSerialized)
{
\_SB.PCI0.LPCB.KBC0.SMWR (0x06, 0x7A, 0x20, One)
If (Arg0)
{
If (LEqual (Arg0, One))
{
\_SB.PCI0.LPCB.KBC0.SMWR (0x06, 0x7A, 0x10, 0x99)
}
Else
{
If (LEqual (Arg0, 0x02))
{
\_SB.PCI0.LPCB.KBC0.SMWR (0x06, 0x7A, 0x10, 0x7B)
}
Else
{
\_SB.PCI0.LPCB.KBC0.SMWR (0x06, 0x7A, 0x10, 0x6D)
}
}
}
Else
{
\_SB.PCI0.LPCB.KBC0.SMWR (0x06, 0x7A, 0x10, 0xFF)
}
\_SB.PCI0.LPCB.KBC0.SMWR (0x06, 0x7A, 0x20, Zero)
}
Name (N_ST, Zero)
Name (L_ST, Zero)
Name (TMST, Package (0x0A)
{
0x24,
0x2B,
0x35,
0x3F,
0x49,
0x4E,
0x58,
0x60,
0x64,
0x69
})
Method (THCK, 0, NotSerialized)
{
Store (Zero, GPEC)
Acquire (THR0, 0xFFFF)
If (LGreater (DTS1, DTS2))
{
Store (DTS1, Local0)
}
Else
{
Store (DTS2, Local0)
}
Store (Zero, N_ST)
While (LGreater (Local0, DerefOf (Index (TMST, N_ST))))
{
If (LEqual (N_ST, 0x08))
{
Break
}
Else
{
Increment (N_ST)
}
}
If (LGreater (N_ST, L_ST))
{
If (Or (LEqual (N_ST, Zero), LEqual (N_ST, One)))
{
SFAN (Zero)
}
Else
{
If (Or (LEqual (N_ST, 0x02), LEqual (N_ST, 0x03)))
{
SFAN (One)
}
Else
{
If (Or (LEqual (N_ST, 0x04), LEqual (N_ST, 0x05)))
{
SFAN (0x02)
}
Else
{
SFAN (0x03)
If (LGreater (N_ST, 0x06))
{
Store (One, TRLX)
Notify (THRM, 0x81)
Notify (THRM, 0x80)
}
Else
{
}
}
}
}
}
Else
{
If (LLess (N_ST, L_ST))
{
If (And (LGreater (L_ST, 0x06), LLess (N_ST, 0x07)))
{
Store (Zero, TRLX)
Notify (THRM, 0x81)
Notify (THRM, 0x80)
}
If (LNot (N_ST))
{
SFAN (Zero)
}
Else
{
If (Or (LEqual (N_ST, One), LEqual (N_ST, 0x02)))
{
SFAN (One)
}
Else
{
If (Or (LEqual (N_ST, 0x03), LEqual (N_ST, 0x04)))
{
SFAN (0x02)
}
Else
{
SFAN (0x03)
}
}
}
}
}
Store (N_ST, L_ST)
Release (THR0)
}
}
}
I can handle simple DSDT patching, but this is beyond me.
I'm currently using the new FakeSMC 4.2 branch, binaries 645 with HWMonitor and with iStat. This is on an elderly mini PC, the Maxdata Favorit XS300 which was designed as a competitor to the original 2006 Mac Mini and shares many of its laptop-like features. It's Intel Calistoga based with a T5500 Mobile Core 2 Duo, 945GM ICH7M and GMA950. Currently I'm running Lion 10.7.5 successfully but in 32-bit mode due to the GMA950 drivers.
Because it has a very compact form-factor and only a single tiny fan above the CPU, I'm very interested in monitoring fan speed and temperatures. IntelCPUMonitor.kext gives me core temperatures once I've set TJMax manually to 100C instead of the 85C it sets by default. It would be fantastic to be able to read the CPU fan speed directly. Should further information be necessary I'm happy to try and provide it.
I've been trying under Linux and Windows to detect a super i/o chip. Everest/Aida fails to detect anything as does Open Hardware Monitor. Lm-sensors sensors-detect finds multiple instances of the Maxim Max665x fan controller chip at different i2c addresses. The confidence level is only 2 and I think this code was flagged as unreliable and removed from newer builds of lm-sensors, so these probably don't exist. The ICHSMBus plugin loads.
I include my original DSDT and also the current patched version which is patched to remove IRQs from RTC and TMR and add an IRQ to HPET. This fixed sound problems with AppleHDA.kext loaded. EHCI is also patched to allow sleep.
Original and Patched DSDT zip
I'm currently using the latest Chameleon r2187 as boot loader, and its .plist is set so that CPU P-states and C-states are automatically generated. That all looks fine, and AppleIntelCPUPowerManagement.kext loads, "ioreg -lw0 | grep AICPMVers" reports 19136773 Sadly Speedstep doesn't seem to work, multiplier, voltage and frequency always stay the same, but I think this is because I'm using MacMini1,1 as identifier in a custom smbios.plist. The REV key in FakeSMC is set to MacMini 1,1 1.3f4.
I've probably forgotten several vital pieces of information, but that's enough for one post. Again I'm grateful if anyone should read this far and interpret what is going on in my DSDT.
Many Thanks,
| Add Reply Start a new topic |
0 Members:









