Jump to content

[HOW TO]modify AppleGraphicsPowerManagement.kext for X1400 of T60 in 10.6.8


Lya_Castled
 Share

13 posts in this topic

Recommended Posts

I made my T60's OSX 10.6.8 work with original CPU power management, and had some other edit, including modify AppleGraphicsPowerManagement.kext .

 

so , it can go sleep and wake good.

 

but my videocard X1400 become very hot sometime, I guess it's be overclock with some wrong thing in AppleGraphicsPowerManagement.kext\Contents\Info.plist .

 

 

 

I edit it as below:

 

add code

 

<key>MacBookPro2,2</key> <====== I use smbios as MBP 15" 2,2

<dict>

<key>Vendor1002Device7145</key> <====== my X1400's ID is 0x71451002

<dict>

<key>QSC</key>

<dict>

<key>Enabled</key>

<integer>1</integer>

<key>Mode</key>

<integer>1</integer>

<key>hwPState</key>

<array>

<integer>0</integer>

<integer>0</integer>

<integer>0</integer>

<integer>1</integer>

<integer>1</integer>

<integer>1</integer>

<integer>1</integer>

<integer>1</integer>

<integer>2</integer>

</array>

<key>qscOnTime</key>

<array>

<integer>0</integer>

<integer>2240</integer>

<integer>3520</integer>

<integer>0</integer>

<integer>3680</integer>

<integer>4960</integer>

<integer>6720</integer>

<integer>9120</integer>

<integer>0</integer>

</array>

</dict>

<key>control-id</key>

<integer>17</integer>

<key>max-power-state</key>

<integer>8</integer> <====== 8 states as my screen light control with fn+Home(End)

</dict>

</dict>

 

 

 

 

these code are copied from the original below:

 

 

 

<key>MacBookPro8,2</key>

<dict>

<key>IGPU</key>

<dict>

<key>Heuristic</key>

<dict>

<key>BusyDownThresholdPercent</key>

<integer>70</integer>

<key>BusyUpThresholdPercent</key>

<integer>90</integer>

<key>DiagnosticModeDefault</key>

<integer>0</integer>

<key>EvaluateDownInterval</key>

<integer>350000</integer>

<key>EvaluateUpInterval</key>

<integer>66000</integer>

<key>ID</key>

<integer>2</integer>

<key>SensorOption</key>

<integer>1</integer>

</dict>

<key>control-id</key>

<integer>16</integer>

<key>max-power-state</key>

<integer>15</integer>

<key>min-power-state</key>

<integer>0</integer>

</dict>

<key>Vendor1002Device6741</key>

<dict>

<key>QSC</key>

<dict>

<key>Enabled</key>

<integer>1</integer>

<key>Mode</key>

<integer>1</integer>

<key>hwPState</key>

<array>

<integer>0</integer>

<integer>0</integer>

<integer>1</integer>

<integer>1</integer>

<integer>1</integer>

<integer>1</integer>

<integer>1</integer>

<integer>1</integer>

<integer>2</integer>

</array>

<key>qscOnTime</key>

<array>

<integer>0</integer>

<integer>1440</integer>

<integer>0</integer>

<integer>2400</integer>

<integer>4000</integer>

<integer>5760</integer>

<integer>7680</integer>

<integer>9760</integer>

<integer>0</integer>

</array>

</dict>

<key>control-id</key>

<integer>17</integer>

<key>max-power-state</key>

<integer>8</integer>

</dict>

<key>Vendor1002Device6760</key>

<dict>

<key>QSC</key>

<dict>

<key>Enabled</key>

<integer>1</integer>

<key>Mode</key>

<integer>1</integer>

<key>hwPState</key>

<array>

<integer>0</integer>

<integer>0</integer>

<integer>0</integer>

<integer>1</integer>

<integer>1</integer>

<integer>1</integer>

<integer>1</integer>

<integer>1</integer>

<integer>2</integer>

</array>

<key>qscOnTime</key>

<array>

<integer>0</integer>

<integer>2240</integer>

<integer>3520</integer>

<integer>0</integer>

<integer>3680</integer>

<integer>4960</integer>

<integer>6720</integer>

<integer>9120</integer>

<integer>0</integer>

</array>

</dict>

<key>control-id</key>

<integer>17</integer>

<key>max-power-state</key>

<integer>8</integer>

</dict>

</dict>

 

 

 

 

I think the main problem is those words , because MBP 8,2 use the advanced videocard.

 

I don't know what's the meaning of those words , and there're only information of AppleGraphicsPowerManagement.kext about N card that I can find on the Internet.

 

 

 

Is somebody can tell me those code's meaning, or way to make it suits to my X1400 ?

 

sorry for my poor English!

Link to comment
Share on other sites

I think the better way is to know what mac name is default for your computer without smbios. Then simply watch if your AGPM works with this. If there is no entry for your system - use the one, that works.

 

Firstly look on IOreg. If your card (as mine) registered with GFX@0 key, - search if AppleGraphicsPowerManagement use that key (for example MacBookPro5,1->GFX0 key) so that config is useful for you.

 

As I know the key Vendor1002DeviceXXXX is used for NVidia Graphics. ATI use other parameters. My advice - use MacBoocPro 5,1 or 5,X series in SMbios. I have HD2400 Mobility & that configuration is more than usefull. Because that is default for ATI Graphics Cards.

Link to comment
Share on other sites

I think the better way is to know what mac name is default for your computer without smbios. Then simply watch if your AGPM works with this. If there is no entry for your system - use the one, that works.

 

Firstly look on IOreg. If your card (as mine) registered with GFX@0 key, - search if AppleGraphicsPowerManagement use that key (for example MacBookPro5,1->GFX0 key) so that config is useful for you.

 

As I know the key Vendor1002DeviceXXXX is used for NVidia Graphics. ATI use other parameters. My advice - use MacBoocPro 5,1 or 5,X series in SMbios. I have HD2400 Mobility & that configuration is more than usefull. Because that is default for ATI Graphics Cards.

 

 

I tested with openGL, It showed better FPS in MAC10.6.8 than WIN7, I think it's effected. But I can't find any information in LOG, so AppleGraphicsPowerManagement.kext maybe not loaded.

 

 

 

I had compared my T60 with the real MBP info, and now be sure that MacBook Pro 2,2 is best for me. MBP2,2 use T7600 as me, and X1600 that similar to X1400, and APPLE official says MBP2,2 surpport 10.6.8 and 10.7 , But it seems no information I can find about macbookpro2,2 and X1600.

 

 

To drive my videocard, I use ATIRadeonX1000.kext and RadeonHD.kext, they make X1400 work with QE. So it's not base on AppleGraphicsPowerManagement.kext in most status. But I need it to enable the function of SLEEP and WAKE.

 

In AppleGraphicsPowerManagement.kext\Contents\Info.plist of 10.6.8, I find it's different with other SnowLeopard's code, I guess the code maybe Lion.

 

I can see 3 types code that below

----1. IGPU

 

----2. GFX0

 

----3. Vendor****Device****

 

I guess the1 IGPU is the default INTEL card ,maybe the no_pcie card;

 

and the2 GFX0 is the default N card, mostly pcie card;

 

those the3 Vendor****Device**** means direct HardwareID. e.g. Vendor8086 is INTEL, Vendor10de is N, Vendor1002 is ATI. I guess it's not direct surpported in old IOreg, but surpported with KEXT in newer system.

 

In some tips somewhere, I find different manufacturers' code may be common, if it's suitable.

Link to comment
Share on other sites

I made my T60's OSX 10.6.8 work with original CPU power management, and had some other edit,

 

 

Do you get any CSTInfo output in your ioreg eg. if you do a ioreg | grep CSTInfo in a Terminal window do you see any output? With my T60 I see no output but I see a change in the PerformanceStateArray or Pstate's after the AppleIntelCPUManagement.kext loads. Perhaps you could post your DSDT.aml so I can look at it..

 

Edit: And do you have the dock for the laptop if so can you get OS X to load if the T60 is connected to it as mine dies off every time right when the desktop starts if attached to the dock.

Link to comment
Share on other sites

Do you get any CSTInfo output in your ioreg eg. if you do a ioreg | grep CSTInfo in a Terminal window do you see any output? With my T60 I see no output but I see a change in the PerformanceStateArray or Pstate's after the AppleIntelCPUManagement.kext loads. Perhaps you could post your DSDT.aml so I can look at it..

 

Edit: And do you have the dock for the laptop if so can you get OS X to load if the T60 is connected to it as mine dies off every time right when the desktop starts if attached to the dock.

 

Thanks to reply .

Too, I have no information with "ioreg | grep CSTInfo".

 

My dock works well, and those icons like bettery showed a little delay. If I edit AppleGraphicPowerManagement.kext that delete the words, dock also die when desktop start.

 

My DSDT is here, It's base on silencer's of thinkpads forum.

dsdt.aml.zip

Link to comment
Share on other sites

Firstly i may say that the way your card's working is not normal. I advise you to use ATI1600Controller.kext with modified personalities instead of RadeonHD.kext (the mucha's topic on this forum is about editing personalities in Controller kexts - ATIFramebuffer in 10.6.0-10.6.7 and ATIXXXXController in 10.6.8 & Lion).

 

So, the PowerPlay (that one you want to enable) in 10.6 is supported by two kexts - ATIRadeonX1000.kext (in Info.plist you'll find the key such as "Disable_PPLib" or smthng similar) & AppleGraphicsPowerManagement.kext. At first look in your IOReg with IORegistryExplorer app. Find where is ATIRadeonX1000 posts it's classes (such as GLContext, 2DContext & s.o.). The key above will be GFX@0, - you can be sure in it. So you may look for GFX0 settings in AppleGraphicsPowerManagement.

 

When this kext is posted you'll find such a thing in IOReg: post-848083-1322060628_thumb.png

 

It means that this kext will work only with ATINDRV (Iago is the Framebuffer for RV610 - ATI HD 2xxx & 3xxx series, your one is Wormy as you know). So Using RadeonHD will not bring you AGPM support. The only way (i think) is to modifier the key "Disable_PPLib" (i don't remember exactly how it's named) in ATIRadeonX1000.kext's Info.plist.

Link to comment
Share on other sites

  • 2 weeks later...

Firstly i may say that the way your card's working is not normal. I advise you to use ATI1600Controller.kext with modified personalities instead of RadeonHD.kext (the mucha's topic on this forum is about editing personalities in Controller kexts - ATIFramebuffer in 10.6.0-10.6.7 and ATIXXXXController in 10.6.8 & Lion).

 

So, the PowerPlay (that one you want to enable) in 10.6 is supported by two kexts - ATIRadeonX1000.kext (in Info.plist you'll find the key such as "Disable_PPLib" or smthng similar) & AppleGraphicsPowerManagement.kext. At first look in your IOReg with IORegistryExplorer app. Find where is ATIRadeonX1000 posts it's classes (such as GLContext, 2DContext & s.o.). The key above will be GFX@0, - you can be sure in it. So you may look for GFX0 settings in AppleGraphicsPowerManagement.

 

When this kext is posted you'll find such a thing in IOReg: post-848083-1322060628_thumb.png

 

It means that this kext will work only with ATINDRV (Iago is the Framebuffer for RV610 - ATI HD 2xxx & 3xxx series, your one is Wormy as you know). So Using RadeonHD will not bring you AGPM support. The only way (i think) is to modifier the key "Disable_PPLib" (i don't remember exactly how it's named) in ATIRadeonX1000.kext's Info.plist.

 

what's your videocard's type? how did you make it work well?

I tried to modify ATI1600Controller.kext, but unlucky, I can't output my ROM directly as it's locked.

 

the only thing from my VBIOS I can find is below:

 

RadeonDump -d
Found a device of class RadeonPCI: IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEGP@1/IOPCI2PCIBridge/GFX0@0/RadeonPCI
it matched on name "display"



RadeonDump regnum
Found a device of class RadeonPCI: IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEGP@1/IOPCI2PCIBridge/GFX0@0/RadeonPCI
it matched on name "display"
0x7200:  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000



RadeonDump -i
Found a device of class RadeonPCI: IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEGP@1/IOPCI2PCIBridge/GFX0@0/RadeonPCI
it matched on name "display"
Detected ATI Mobility Radeon X1400 (device id: 0x7145)
Start I2C dump
ATOM BIOS detected
ATOM BIOS Rom:
SubsystemVendorID: 0x17aa SubsystemID: 0x2006
IOBaseAddress: 0x2000
Filename: BR25482.bin
BIOS Bootup Message:
M64CSP/M62CSP/M54CSP/M52CSP BIOS							 "			
Bios Connector table:
Port1: DDCType-0x7e50, DACType-7, TMDSType-0, ConnectorType-0, hpd_mask-0x0
Port3: DDCType-0x7e60, DACType-1, TMDSType-1, ConnectorType-0, hpd_mask-0x1
EDID for connector 0:
Read data failed
EDID for connector 1:
Read data failed
EDID for connector 3:
0x0000: 00FFFFFFFFFFFF0030AE224000000000
0x0010: 000F0103801D1578EA2D059757518A27
0x0020: 23505421080081800101010101010101
0x0030: 010101010101302A7820511A10403070
0x0040: 13001ED61000001925237820511A1040
0x0050: 307013001ED6100000190000000F0090
0x0060: 43329043280F01004CA35034000000FE
0x0070: 004C544E31343150342D4C30320A0019

 

 

It's so few, I don't know how to do it.

As you know, x1400 is Wormy, that's no solution in that topic now, and I keep waitting the lastest RadeonHD.kext

 

In ATIRadeonX1000.kext, I can't find any " Disable_PPLib" or "PPLib".

In IOReg, about "GLContext", there're really words, but no "AGPM" existed.

 

Now the only thing I feel possible to do, is still to modify the words in #1, but I don't know how to relate the code from my VBIOS with AppleGraphicsPowerManagement.kext\Contents\Info.plist .

 

__________________

my files below

10.6.8_ATIRadeonX1000.kext_Info.plist.txt

10.6.8_AppleGraphicsPowerManagement.kext_Info.plist.txt

Link to comment
Share on other sites

  • 4 weeks later...

The latest RaeonHD will not give you solution. The solution lays in modifying smbios to the property that's supporting by AppleGraphicsPowerManagement (AGPM). As for reading connectorinfo from ROM, - you may DUMP your ROM for example in Winows. Then use any of utilites, posted by bcc9 & others. I don't know what means "locked ROM"))) if you've dumped it, - it's your own & you may do anything you want with it)))

Link to comment
Share on other sites

  • 4 weeks later...

what's your videocard's type? how did you make it work well?

I tried to modify ATI1600Controller.kext, but unlucky, I can't output my ROM directly as it's locked.

 

the only thing from my VBIOS I can find is below:

 

RadeonDump -d
Found a device of class RadeonPCI: IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEGP@1/IOPCI2PCIBridge/GFX0@0/RadeonPCI
it matched on name "display"



RadeonDump regnum
Found a device of class RadeonPCI: IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEGP@1/IOPCI2PCIBridge/GFX0@0/RadeonPCI
it matched on name "display"
0x7200:  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000



RadeonDump -i
Found a device of class RadeonPCI: IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEGP@1/IOPCI2PCIBridge/GFX0@0/RadeonPCI
it matched on name "display"
Detected ATI Mobility Radeon X1400 (device id: 0x7145)
Start I2C dump
ATOM BIOS detected
ATOM BIOS Rom:
SubsystemVendorID: 0x17aa SubsystemID: 0x2006
IOBaseAddress: 0x2000
Filename: BR25482.bin
BIOS Bootup Message:
M64CSP/M62CSP/M54CSP/M52CSP BIOS							 "			
Bios Connector table:
Port1: DDCType-0x7e50, DACType-7, TMDSType-0, ConnectorType-0, hpd_mask-0x0
Port3: DDCType-0x7e60, DACType-1, TMDSType-1, ConnectorType-0, hpd_mask-0x1
EDID for connector 0:
Read data failed
EDID for connector 1:
Read data failed
EDID for connector 3:
0x0000: 00FFFFFFFFFFFF0030AE224000000000
0x0010: 000F0103801D1578EA2D059757518A27
0x0020: 23505421080081800101010101010101
0x0030: 010101010101302A7820511A10403070
0x0040: 13001ED61000001925237820511A1040
0x0050: 307013001ED6100000190000000F0090
0x0060: 43329043280F01004CA35034000000FE
0x0070: 004C544E31343150342D4C30320A0019

 

 

It's so few, I don't know how to do it.

As you know, x1400 is Wormy, that's no solution in that topic now, and I keep waitting the lastest RadeonHD.kext

 

In ATIRadeonX1000.kext, I can't find any " Disable_PPLib" or "PPLib".

In IOReg, about "GLContext", there're really words, but no "AGPM" existed.

 

Now the only thing I feel possible to do, is still to modify the words in #1, but I don't know how to relate the code from my VBIOS with AppleGraphicsPowerManagement.kext\Contents\Info.plist .

 

__________________

my files below

How are you doing guys. i have acer aspire 5670 with ati x1400. running radeonHD too. after long time playing with radeon dump i was able to extract info from ROM. i was trying to create personalities for this card, but everytime i load ati1600controller.kext with 7145 device id, i get a kp. i do know that my cpu speedsteping is not working fully. chameleon succsesfully generates P and C states. but i can't overcome CPUPLimit (it gives me 0x02). can it be i'm getting this kp because of no speedsteping?). if i run EvoEnabler with wormy no kp but no screen output. also it might be that i really don't know how to build those personalities. if anybody is intrested in getting this card working without radeonhd please let me know, and let's work on it. i'm including my radeon and linux dumps.

Dumps.zip

Link to comment
Share on other sites

  • 1 month later...

Hey, guys!

Has anybody tried to get this card working using patched ATI1600Controller.kext (personality table) and injecting proper info into IOReg?

I mean this topic:

http://www.insanelym...pic=249642&st=0

 

 

My results:

 

./radeon_bios_decode < /Extra/1002_71DE.rom

ATOM BIOS Rom:

SubsystemVendorID: 0x1043 SubsystemID: 0x14e3

IOBaseAddress: 0xa000

Filename: f3s0122.m66

BIOS Bootup Message:

ASUS F3S M66M ATOM BIOS ASID:A14201.006$

PCI ID: 1002:71de

Connector at index 0 type: VGA

Connector at index 1 type: LVDS

Connector at index 2 type: Composite

Connector at index 3 type: DVI-I

 

./redsock_bios_decoder < /Extra/1002_71DE.rom

f3s0122.m66 :

ASUS F3S M66M ATOM BIOS ASID:A14201.006$

Subsystem Vendor ID: 1043

Subsystem ID: 14e3

Object Header Structure Size: 43605

Connector Object Table Offset: 0

Router Object Table Offset: 0

Encoder Object Table Offset: 0

Display Path Table Offset: 0

Connector Object Id [0] which is [NONE]

Connector Object Id [0] which is [NONE]

Connector Object Id [0] which is [NONE]

Connector Object Id [0] which is [NONE]

Connector Object Id [0] which is [NONE]

Connector Object Id [0] which is [NONE]

Connector Object Id [0] which is [NONE]

Connector Object Id [0] which is [NONE]

 

 

./RadeonDump -i

Skipping TV-Out

Bios Connector table:

Port1: DDCType-0x7e50, DACType-7, TMDSType-0, ConnectorType-0, hpd_mask-0x0

Port3: DDCType-0x7e60, DACType-1, TMDSType-1, ConnectorType-0, hpd_mask-0x1

EDID for connector 0:

Read data failed

EDID for connector 1:

Read data failed

EDID for connector 3:

Read data failed

 

 

RaBit.exe:

-- Analyzing ROM BIOS --

HEADER offs: 0x216

PCIR struct offs: 0x23C

DATA offs: 0xB35A, 76 entries

MASTER offs: 0xB3F2, 34 entries

CRC table offs: 0x261

CLOCK table offs: 0xB8FA

Core clock is 430.00 (0.00 3D) MHz

Memory clock is 400.00 MHz

Reference clock is 27.00 MHz

Connectors Layout table offs: 0xB9F4

Port = 0, Conn0 type = VGA

Port = 0, Conn2 type = STV

 

 

 

So, there's no way to get senseid for me and I can't patch ATI1600Controller to get my internal LVDS working!

Could anybody help me please?

 

 

Thank you in advance!

PS: my hardware - laptop Asus F3Se, ATI Mobility Radeon x1700 (dev_id - 71DE).

1002_71DE.rom.zip

kernel.log.zip

RaBiT.log.zip

Link to comment
Share on other sites

  • 7 months later...

The latest RaeonHD will not give you solution. The solution lays in modifying smbios to the property that's supporting by AppleGraphicsPowerManagement (AGPM). As for reading connectorinfo from ROM, - you may DUMP your ROM for example in Winows. Then use any of utilites, posted by bcc9 & others. I don't know what means "locked ROM"))) if you've dumped it, - it's your own & you may do anything you want with it)))

Hi, vopros-otvet!

Do you know how to edit AppleGraphicsPowerManagement.kext for HD6850??

 

I believe the key point is on QSC, but on one had ever given an useable solution on the internet....

Link to comment
Share on other sites

 Share

×
×
  • Create New...