Jump to content

HP 6520s, 6720s, 6820s, 550 SL Install Package


BlackCH
 Share

1,448 posts in this topic

Recommended Posts

Good idea...

 

I have found some values related to Fan control in EC device:

 

C1FA - minimum fan speed limit(by default it is 20%, but when temperature is critical goes to 100%)

C1FB - fan control (controlled from TZ)

C1FC - current fan speed

 

I have tried to control fan speed by writing values(with DirectIO) to C1FA and C1FB - and it works, for example:

- to set 50% fan speed we need to write 50 to C1FB(0xd6 in EC);

- to set minimum fan speed at 30%(no matter what we write to C1FB) write 30 to C1AF.

 

Now i am going to find out where is system temperatures(it seams i can find them in methods that are changing fan speed).

Great, the 50 is dec of temp, you can try different value and find some suitable. Then, you can set them to C1FB, and compare with the value read from cpu temp register. Good luck.

Link to comment
Share on other sites

Good idea...

 

I have found some values related to Fan control in EC device:

 

C1FA - minimum fan speed limit(by default it is 20%, but when temperature is critical goes to 100%)

C1FB - fan control (controlled from TZ)

C1FC - current fan speed

 

I have tried to control fan speed by writing values(with DirectIO) to C1FA and C1FB - and it works, for example:

- to set 50% fan speed we need to write 50 to C1FB(0xd6 in EC);

- to set minimum fan speed at 30%(no matter what we write to C1FB) write 30 to C1AF.

 

Now i am going to find out where is system temperatures(it seams i can find them in methods that are changing fan speed).

 

Thats very good! In the worst case we could implement an app to control the fan manually...

Remember there is a part of the TZ code on the SSDT tables (SSDT1 I think)

 

I thought those were the ACPIThermal sources (I downloaded them from the i386 folder), sorry! I will dig about this....

Link to comment
Share on other sites

Guys I like the idea... and by this way I think at the end we will should obtain two (2) DSDTs. Therefore, for the work, attached the two (2) SSDT tables (from windows, to compare with OS X) related to the Main ThermalZone (TZ0 or TZ1), both tables fixed to compile, just in case are ready for copy-paste (or export) to the DSDT:

 

1) Firmware-SSDT TZ0 (Backup T5470): For Merom CPUs. See Top Header say "HPQMRM", where MRM = Merom. AppleACPIThermal bring five (5) thermalzones (TZ0, 1, 3, 4, 5) on Snow Leopard (see IOReg), and on Lion "only" by using the old ACPIPlatform driver - for ACPI specification (3.0 & lower) support.

Notes: For export to DSDT is very important, than we need to replace the entire "ThermalZone TZ1" in our DSDT v0.20 (take it as base), because as you can see this main SSDT table have his own little TZ1. But all declarations keep intact.

 

2) Firmware-SSDT TZ1: For Penryn CPUs. "HPQPRN". AppleACPIThermal bring four (4) thermalzones (TZ1, 3, 4, 5) on Snow Leopard (see IOReg), and on Lion "only" by using the old ACPIPlatform driver - for ACPI specification (3.0 & lower) support.

Notes: No need another change in the DSDT to import the code from this SSDT table. So, logically will not exist any reference to TZ0 code in the resultant DSDT. Just add the "Thermalzone TZ1" before TZ3. And also I prefer to add the C39E and the C39F methods in both cases at end of the Scope TZ, to forget about this SSDT table... at same time to use the flag "DropSSDT=Yes" in Boot.plist, or delete (comment out) each "External" caller (to TZ1, C39E & C39F) near to the DSDT top.

SSDT_TZ0_MEROM_COMPILABLE_FIXED.dsl.zip

SSDT_TZ1_PENRYN_COMPILABLE_FIXED.dsl.zip

Link to comment
Share on other sites

About driver for thermal zone...

I have tried to write own driver - it works on snow, but get KP in lion..

 

I am not good in IOKit programming and this is my first driver, so - now it is too buggy for use, but it can be helpful for testing our DSDT...

 

And probably later(when it will be without bugs) it can replace ACPIThermal from tiger which we are using...

 

 

Also about old ACPIThermal (which we are using in snow) - it seams that in lion it can not load only active cooling parameters...

ACPIThermal.zip

Link to comment
Share on other sites

About driver for thermal zone...

I have tried to write own driver - it works on snow, but get KP in lion..

"IOKitPersonalities" and "OSBundleLibraries (Dependencies)" in "Info.plist" are very important to properly load (w/o KP) this particular driver from the ACPIPlatform vanilla configuration. Therefore, just in case, for 10.7 those parts should be as follow:

	<key>[color="#0000FF"]IOKitPersonalities[/color]</key>
<dict>
	<key>Thermal Zone</key>
	<dict>
		<key>CFBundleIdentifier</key>
		<string>com.apple.driver.AppleACPIThermal</string>
		<key>IOClass</key>
		<string>[color="#FF0000"]AppleACPIThermalZone[/color]</string>
		<key>IONameMatch</key>
		<string>[color="#FF0000"]thermal-zone[/color]</string>
		<key>IOProviderClass</key>
		<string>[color="#FF0000"]IOACPIPlatformDevice[/color]</string>
	</dict>
</dict>
<key>[color="#0000FF"]OSBundleLibraries[/color]</key>
<dict>
	<key>[color="#FF0000"]com.apple.driver.AppleACPIPlatform[/color]</key>
	<string>[color="#FF0000"]1.4[/color]</string>
	<key>[color="#FF0000"]com.apple.iokit.IOACPIFamily[/color]</key>
	<string>[color="#FF0000"]1.0.0d1[/color]</string>
	<key>com.apple.kpi.iokit</key>
	<string>7.0</string>
	<key>com.apple.kpi.libkern</key>
	<string>8.0.0d0</string>
	<key>com.apple.kpi.mach</key>
	<string>8.0.0d0</string>
</dict>
<key>OSBundleRequired</key>
<string>Root</string>
</dict>
</plist>

Also about old ACPIThermal (which we are using in snow) - it seams that in lion it can not load only active cooling parameters...

YES BUDDY, BUT PLEASE, AS I SAID TWO POST BEFORE, THE "ACTIVE COOLING" THING ON LION IS BECAUSE THE NEW AppleACPIPlatform.kext is NOT READING/LOADING ANY "POWER RESOURCE OBJECT (C3B2 to C3B6)", ALSO YOU CAN SEE THE SAME PROBLEM IN OIREG FOR THE PS2M DEVICE. THEREFORE THE NEGATIVE IMPACT AT THIS POINT FOR THE AppleACPIThermal.kext DRIVER IS BECAUSE CAN'T READ ANYTHING FROM THE "FAN DEVICES (C3B7 to C3BB)" BECAUSE ARE MISSING THE P.R.O. WHICH ARE DEFINED BY "Name (_PR0"... REFERRED FOR EXAMPLE IN THE PAGE 238 OF ACPIspec40a.pdf. REPEAT, IMHO "POWER RESOURCES" IS THE PROBLEM. BTW, THANK YOU MATE, WONDERFUL EFFORT.

Link to comment
Share on other sites

About driver for thermal zone...

I have tried to write own driver - it works on snow, but get KP in lion..

I am not good in IOKit programming and this is my first driver, so - now it is too buggy for use, but it can be helpful for testing our DSDT...

Great effort! keep it up! :(

You should contact prasys; he ported the thermal driver from tiger to snow... he could give you some ideas

Link to comment
Share on other sites

Believe me, I have tried before to buy the 4328, many times in different ways with no luck in two previous cards on lion: 4312 and 4315. Both rebranded and working perfect in Snow, BUT the problem as you have my friend, no loading the 10.7 drivers for functionality in "PCI cards section" at all. So, my conclusion was about some relationship between the device ID + Revision + firmware (in the hardware) required for a/b/g cards, which should be capable to full load the ONLY ONE driver made by Apple for this group of WiFi cards (a/b/g and N together), I mean the AirPortBrcm43224.kext (BlackCH's card load natively)... because the AirPortBrcm4311.kext for the rest of third-party old 43xx cards present in Snow, do not exist in Lion. IMHO is a id-firmware-rev incompatibility problem with our old cards, reported around insanelymac & other hackintosh forums.

 

Hi I had a problem with bcm4311 in lion but solved it with this kext

 

 

http://forum.osxlatitude.com/index.php?/to...-with-ethernet/

 

Original thread was from here

 

http://www.tonymacx86.com/viewtopic.php?f=19&t=26924

 

this is all plist of supported models

 

string>pci106b,4e</string>

<string>pci14e4,4300</string>

<string>pci14e4,4301</string>

<string>pci14e4,4302</string>

<string>pci14e4,4303</string>

<string>pci14e4,4304</string>

<string>pci14e4,4305</string>

<string>pci14e4,4306</string>

<string>pci14e4,4307</string>

<string>pci14e4,4308</string>

<string>pci14e4,4309</string>

<string>pci14e4,4310</string>

<string>pci14e4,4311</string>

<string>pci14e4,4312</string>

<string>pci14e4,4313</string>

<string>pci14e4,4313</string>

<string>pci14e4,4314</string>

<string>pci14e4,4315</string>

<string>pci14e4,4316</string>

<string>pci14e4,4317</string>

<string>pci14e4,4318</string>

<string>pci14e4,4319</string>

<string>pci14e4,431a</string>

<string>pci14e4,4320</string>

<string>pci14e4,4321</string>

<string>pci14e4,4322</string>

<string>pci14e4,4323</string>

<string>pci14e4,4324</string>

<string>pci14e4,4325</string>

<string>pci14e4,4326</string>

<string>pci14e4,4327</string>

<string>pci14e4,4328</string>

<string>pci14e4,4329</string>

<string>pci14e4,4330</string>

<string>pci14e4,4331</string>

<string>pci14e4,4332</string>

<string>pci14e4,4333</string>

<string>pci14e4,4334</string>

<string>pci14e4,4335</string>

<string>pci14e4,4336</string>

<string>pci14e4,4337</string>

<string>pci14e4,4338</string>

<string>pci14e4,4339</string>

<string>pci14e4,4340</string>

<string>pci14e4,4341</string>

<string>pci14e4,4342</string>

<string>pci14e4,4343</string>

<string>pci14e4,4344</string>

<string>pci14e4,4345</string>

<string>pci14e4,4346</string>

<string>pci14e4,4347</string>

<string>pci14e4,4348</string>

<string>pci14e4,4349</string>

<string>pci14e4,4350</string>

<string>pci14e4,4351</string>

<string>pci14e4,4352</string>

<string>pci14e4,4353</string>

<string>pci14e4,4354</string>

<string>pci14e4,4355</string>

<string>pci14e4,4356</string>

<string>pci14e4,4357</string>

<string>pci14e4,4358</string>

<string>pci14e4,4359</string>

<string>pci14e4,4360</string>

<string>pci14e4,4361</string>

<string>pci14e4,4362</string>

<string>pci14e4,4363</string>

<string>pci14e4,4364</string>

<string>pci14e4,4365</string>

<string>pci14e4,4366</string>

<string>pci14e4,4367</string>

<string>pci14e4,4368</string>

<string>pci14e4,4369</string>

<string>pci14e4,4370</string>

<string>pci14e4,4371</string>

<string>pci14e4,4372</string>

<string>pci14e4,4373</string>

<string>pci14e4,4374</string>

<string>pci14e4,4375</string>

<string>pci14e4,4376</string>

<string>pci14e4,4377</string>

<string>pci14e4,4378</string>

<string>pci14e4,4379</string>

<string>pci14e4,4380</string>

<string>pci14e4,4381</string>

<string>pci14e4,4382</string>

<string>pci14e4,4383</string>

<string>pci14e4,4384</string>

<string>pci14e4,4385</string>

<string>pci14e4,4386</string>

<string>pci14e4,4387</string>

<string>pci14e4,4388</string>

<string>pci14e4,4389</string>

<string>pci14e4,4390</string>

<string>pci14e4,4391</string>

<string>pci14e4,4392</string>

<string>pci14e4,4393</string>

<string>pci14e4,4394</string>

<string>pci14e4,4395</string>

<string>pci14e4,4396</string>

<string>pci14e4,4397</string>

<string>pci14e4,4398</string>

<string>pci14e4,4399</string>

<string>pci14e4,432b</string>

<string>pci14e4,432c</string>

<string>pci14e4,432d</string>

<string>pci14e4,4342</string>

 

 

And here is the kext

You have to delete I080211 family kext

 

Broadcom43XXFamilyrev2.kext.zip

 

Let me know

Edited by robi62
Link to comment
Share on other sites

Guys I like the idea... and by this way I think at the end we will should obtain two (2) DSDTs. Therefore, for the work, attached the two (2) SSDT tables (from windows, to compare with OS X) related to the Main ThermalZone (TZ0 or TZ1), both tables fixed to compile, just in case are ready for copy-paste (or export) to the DSDT.

Thanks. I have used this.

 

"IOKitPersonalities" and "OSBundleLibraries (Dependencies)" in "Info.plist" are very important to properly load (w/o KP) this particular driver from the ACPIPlatform vanilla configuration.

 

No, the problem was in trying to read 16 value as 32 bit...

 

Hi I had a problem with bcm4311 in lion but solved it with this kext

 

Where it cames from - which osx version or who is author?

 

And good news about Active Cooling in Lion - Now it works for me.

 

The problem was in _ALx methods in thermal zone - them returns NULL in lion, but must return fan devices list.

 

So I have added methods to thermal zone:

- EALx - to enable cooling for _ACx

- DALx - to disable cooling for _ACx

 

And writed driver to use them(works in lion and snow).

 

Enjoy!

ACPIThermal.zip

dsdt.dsl.zip

ACPIThermal.kext.zip

Link to comment
Share on other sites

And good news about Active Cooling in Lion - Now it works for me.

 

The problem was in _ALx methods in thermal zone - them returns NULL in lion, but must return fan devices list.

 

So I have added methods to thermal zone:

- EALx - to enable cooling for _ACx

- DALx - to disable cooling for _ACx

 

And writed driver to use them(works in lion and snow).

 

Enjoy!

Excellent! I will try it tonight

Thanks a lot!

 

Can someone upload vanilla ACPIPlatform.kext from Lion for me please?

Link to comment
Share on other sites

Hi guys,

i'm trying to install the 10.6 retail dvd with the bootcd v0.3

I have a problem with the AppleIntelPowerManagement.kext that generate kernel panic and the CPU not is recognized.

If I remove it from the DVD of the 10.6, the installation go. But then when i go to install the upgrade 10.6.5 combo, the installation crasìh because (I think...) reinstall again the AppleIntelPowerManagement.kext

How I can resolve the problem?

I have the celeron cpu 2GHz, not core 2 duo. Is compatible with this packet.

I launch the installation with only the directive arch=i386. Need others commmands?

Thanks in advance

Link to comment
Share on other sites

And good news about Active Cooling in Lion - Now it works for me.

 

The problem was in _ALx methods in thermal zone - them returns NULL in lion, but must return fan devices list.

 

So I have added methods to thermal zone:

- EALx - to enable cooling for _ACx

- DALx - to disable cooling for _ACx

 

And writed driver to use them(works in lion and snow).

 

Enjoy!

 

I did a fast test last night. Didnt work so far. Fan runs always at high speed.

I will try to test further these days

 

Cheers!

Link to comment
Share on other sites

I did a fast test last night. Didnt work so far. Fan runs always at high speed.

I will try to test further these days

 

Cheers!

 

Interesting.. Probably this is because different cpu, and as result different TZ..

Can you upload your dsdt and IOReg with loaded driver?

 

Upd:

Active cooling works with correct methods(_ACx, EALx, DALx) implementation.

Tested on someone laptop here: http://www.projectosx.com/forum/index.php?showtopic=2240

 

@BlackCH, So - I think the problem is in your DSDT.

 

 

Also I opened topic in new releases thread to involve more developers for driver.

Link to comment
Share on other sites

Active cooling works with correct methods(_ACx, EALx, DALx) implementation.

Tested on someone laptop here: http://www.projectosx.com/forum/index.php?showtopic=2240

 

@BlackCH, So - I think the problem is in your DSDT.

 

Here is the dsdt I used last night:

dsdt_thermal.dsl.zip

Is the same one you uploaded but I added custom Pstates and GFX injection only.

 

As I said it was a fast test so it need more testing. I will upload the ioreg later.

 

Thanks!

Link to comment
Share on other sites

Here is the dsdt I used last night:

dsdt_thermal.dsl.zip

Is the same one you uploaded but I added custom Pstates and GFX injection only.

 

As I said it was a fast test so it need more testing. I will upload the ioreg later.

 

Thanks!

 

The problem is that you are using Penryn processor, but I am using Merom - so we have different ssdt(code for TZ came from ssdt-1).

 

I have patched your dsdt for penryn(using ssdt code from above juanerson post).

 

Try it.. I think it will work ;)

dsdt_thermal_upd.dsl.zip

Link to comment
Share on other sites

The problem is that you are using Penryn processor, but I am using Merom - so we have different ssdt(code for TZ came from ssdt-1).

 

I have patched your dsdt for penryn(using ssdt code from above juanerson post).

 

Try it.. I think it will work ;)

 

Thanks! I thought the penryn code was already integrated on the DSDT....

I'll test later

 

EDIT:

 

It didnt work. With the dsdt you edited the fan doesnt go on.

Here both IOREG:

Archive.zip

Link to comment
Share on other sites

It didnt work. With the dsdt you edited the fan doesnt go on.

Here both IOREG:

About first IOReg - _ACx methods failed(returned 0, so fan go to max speed) because of incorrect zones definition from different cpu.

 

About second IOReg

 

_ACx methods in TZ1 works correctly, but Temperature(returned from _TMP method) in zone is lower than first active cooling temperature - so fan runs at lowest speed (20%). Try to load cpu more, and if no change in temperature - than something incorrect in _TMP method(but i did know how - if AppleACPIThermal works, than it is correct).

Link to comment
Share on other sites

Sorry. Same result as BlackCH here on Lion, not working because all ALx (0,1,2,3,4) show "False" in ioreg section TZ1. Instead of at least AL3 and AL4 should be "True"... IMHO that's the expected behavior, like AppleACPIThermal on Snow.

Captura_de_pantalla_2011_09_13_a_la_s__17.11.36.png

Link to comment
Share on other sites

Sorry. Same result as BlackCH here on Lion, not working because all ALx (0,1,2,3,4) show "False" in ioreg section TZ1. Instead of at least AL3 and AL4 should be "True"... IMHO that's the expected behavior, as AppleACPIThermal on Snow.

 

ALx true or false, means only enabled or not some cooling level.

 

No, they can not be enabled because zone temperature(returned by _TMP method in TZ1) is to low.

post-416670-1315951195_thumb.png

 

For example my system:

post-416670-1315953540_thumb.png

Main problem why AppleACPIThermal not works is: _AL0 methods returns NULL when trying to evaluate them in driver - but they must return not empty list of devices.

 

I think that bug is in _TMP method in TZ1(seams that it returns not correct temperature).

Does you tested this driver on Snow? - if it works, than _TMP method is broken under lion and you need to fix it.

 

I have comented this code because of error(and it works for me) try to replace:

//Store (Zero, C39F) /*fix compile dsdt errors*/
with:
C39F() // this would be notification for TZ about changes.

 

Also about 0x0B4C value - seams it is default return value of C3AF (this method returns temperature for each zone), try to find out mistakes in C3AF.

 

upd:

 

If you need for debug, evaluate same new methods in TZ devices, just say - I will add support for them in driver.

 

If you can retrive CPU temperature somewhere in DSDT, just return it in TZ1._TMP (value must be in tens of kelvin degres).

 

upd:

Does IntelThermal FakeSMC plug-in works for you? If yes - Tomorrow, I can try to use temperature value it...

Link to comment
Share on other sites

I think that bug is in _TMP method in TZ1(seams that it returns not correct temperature).

Does you tested this driver on Snow? - if it works, than _TMP method is broken under lion and you need to fix it.

Is working Great on Snow. Same test as before on Lion. Definitely something is broken in DSDT for 10.7, but I don't know.

Captura_de_pantalla_2011_09_13_a_las_19.10.46.png

EDITED: Can you upload your .ioreg file from Lion please?

Link to comment
Share on other sites

 Share

×
×
  • Create New...