joe82
-
Posts
31 -
Joined
-
Last visited
-
Days Won
2
Content Type
Profiles
Articles, News and Tips
Forums
Posts posted by joe82
-
-
My E7440 has an SD card reader. With some relative minor patches, I was able to get the Apple AppleSDXC.kext driver to load and work. Here are the details.
The SD card reader in my E7440 uses an O2 micro part. Here is the lspci output:03:00.0 SD Host controller: O2 Micro, Inc. Unknown device 8520 (rev 01)
The driver matches on IOName, which has a default value of pci14e4,16bc.
This needs to change. First I patched the binary driver AppleSDXC with the following perl script.perl -pi -e 's|pci14e4,16bc|pci1217,8520|g' AppleSDXC
Next you need to modify the following section of Info.plist from:
<key>IONameMatch</key> <array> <string>pci14e4,16bc</string> </array>
to
<key>IONameMatch</key> <array> <string>pci1217,8520</string> <string>pci14e4,16bc</string> </array>
I added the correct value for the O2 Micro part: pci1217,8520. You most like only need to replace the old line with the new one, but I added it. Lastly I modified the RP05.PXSX device to match the Apple device SDXC. My modified PXSX function now looks like this:
Device (SDXC) { Name (_ADR, Zero) // _ADR: Address Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { Return (GPRW (0x69, 0x04)) } Method (_RMV, 0, NotSerialized) { Return (0x00) } }
I doubt this last step is necessary, but I like to match the Apple names when possible. After you make the changes, regenerate the cache and reboot.
I have tried this change with 10.9.1, 10.9.2, 10.9.3 and 10.9.4 and they all work. I have not had a chance to try 10.9.5, but it should work.
I will attach the modified files from 10.9.1 as a reference.
Joe- 3
-
I did some work on the DSDT of my D620 and was able to fix some of the GMA related problems,
but I was not able to get the DVI port working. I finally decided I needed to think about it.
I think I can supply you with some answers and a possible direction.
The macbook1,1 contains the following parameter.
"AAPL,DisplayConfig" = <1300000000000001410000000000000021000000000000008100000000000000>
We can reformat it as follows.
"AAPL,DisplayConfig" = <
1300000000000001
4100000000000000
2100000000000000
8100000000000000
>
I believe this is the connection table you are looking for.
The next question is what does it contain.
We can make some good guesses if we compare the contents
of the TV, CRT, LCD, and DVI devices in the VID device in the
DELL D620 DSDT.
Here it is.
Device (TV)
{
Method (_ADR, 0, NotSerialized)
{
Return (0x0200)
}
Method (_DCS, 0, NotSerialized)
{
Store (SMI (0x8E, 0x04), Local0)
Return (Local0)
}
Method (_DGS, 0, NotSerialized)
{
Store (SMI (0x99, 0x04), Local0)
Return (Local0)
}
Method (_DSS, 1, NotSerialized)
{
DSS (0x04, Arg0)
}
}
Device (CRT)
{
Method (_ADR, 0, NotSerialized)
{
Return (0x0100)
}
Method (_DCS, 0, NotSerialized)
{
Store (SMI (0x8E, 0x02), Local0)
Return (Local0)
}
Method (_DGS, 0, NotSerialized)
{
Store (SMI (0x99, 0x02), Local0)
Return (Local0)
}
Method (_DSS, 1, NotSerialized)
{
DSS (0x02, Arg0)
}
}
Device (LCD)
{
Method (_ADR, 0, NotSerialized)
{
Return (0x0400)
}
Method (_DCS, 0, NotSerialized)
{
Store (SMI (0x8E, 0x01), Local0)
Return (Local0)
}
Method (_DGS, 0, NotSerialized)
{
Store (SMI (0x99, 0x01), Local0)
Return (Local0)
}
Method (_DSS, 1, NotSerialized)
{
DSS (0x01, Arg0)
}
}
Device (DVI)
{
Method (_ADR, 0, NotSerialized)
{
Return (0x0300)
}
Method (_DCS, 0, NotSerialized)
{
Store (SMI (0x8E, 0x08), Local0)
Return (Local0)
}
Method (_DGS, 0, NotSerialized)
{
Store (SMI (0x99, 0x08), Local0)
Return (Local0)
}
Method (_DSS, 1, NotSerialized)
{
DSS (0x08, Arg0)
}
}
Note the items in red
We can highlight the same values in the parameter and add comments using the DELL names.
"AAPL,DisplayConfig" = <
1300000000000001 // LCD
4100000000000000 // TV
2100000000000000 // CRT
8100000000000000 // DVI
>
I am not sure what the other fields are.
We can validate this thinking by looking at the same paramter in the Macmini1,1
"AAPL,DisplayConfig" = <4100000000000000210000000000000081000000000000000000000000000000>
We reformat it as follows:
"AAPL,DisplayConfig" = <
4100000000000000
2100000000000000
8100000000000000
0000000000000000
>
It looks like they deleted the LCD and added a dummy line for a total of 4 entries.
One more thing. The Macbook1,1 contains the following parameter
"AAPL01,Pipe" = <01000000>
I found I needed to change this to 0 as follows, or I got a black screen.
"AAPL01,Pipe" = <00000000>
I do not know why, but this is most likely a clue to what is happening with the DVI port.
The above tables seem to imply the TV port should work, but since I do not know how
to try it, the TV port is untested.
This is what I thought one of the possible problem areas was, when I last worked on it.
Since I have never seen the GMA source. I can't be sure this thinking is correct.
-
I am happy to hear it is working. It is also good to see consistency between similar models.
-
Here is another set of DSDTs for the D520. There seems to be a question on the use of the AAPL01,DualLink variable. This set of DSDTs set the value to 1.
-
Ran a few tests last night. I freed up some hard drive space and installed Snow Leopard to test on that as well. All tests were done with the "display sleep" hot corner, and retested with the "1 minute display sleep" setting.
OS X 10.7.5
Test 1:
Display sleep with external monitor hooked up with default EDP revision 65 DSDT...
-Internal display sleeps fine
-External monitor is not detected
-Internal display wakes up "pixelated"
-Nothing happens on external monitor
(I've never gotten VGA out to work with EDP DSDT.)
Test 2:
Display sleep without external monitor hooked up with default EDP revision 65 DSDT...
-Internal display sleeps fine
-Wakes to pixelated screen
Test 3:
Display sleep with external monitor hooked up in mirror mode with user joe82's DSDT...
-Internal display sleeps fine
-External monitor is detected and works, sleeps fine
-Internal display wakes to a pixelated screen
-External monitor wakes fine
Test 4:
Display sleep with external monitor hooked up in "extended" mode with user joe82's DSDT...
-Internal display seeps fine
-External monitor is detected and works, sleeps fine
-Internal display wakes to pixelated screen
-External monitor wakes to "random vertical stripes of color bars" (Almost like a television emergency broadcast, but each "bar" is a random size.)
Conclusion:
-User joe82's DSDT is slightly better, as it enables external monitor support
-Internal display ALWAYS wakes to a pixelated screen, no matter the DSDT or having an external monitor present
I setup some hard drive room and installed 10.6.0 just for shits and giggles. I reran the exact same tests with the EDP revision 65 DSDT and here are my results:
-External display is not detected
-Internal display sleeps great
-Internal display wakes great. No pixelation.
Can someone provide me with a link to completely uninstall EDP revision 65 and install the older revision? I'd like to test out revision 43 with Lion/Snow Leopard and see if the display corruption happens. In other words, I'd like to see if its a Lion specific issue, or an EDP issue. (Revision 43 didn't seem to do this, but I really don't remember testing it out.) I plan on removing Snow Leopard and installing Lion on that partition. I do NOT plan on updating. I want to test revision 43 on 10.7.0 and revision 65 on 10.7.0. I feel this will let me know whether its an EDP issue, or a Lion issue.
When using one of my DSDT,s I recommend disabling the Graphics Enabler in Chameleon.
I do this by setting the variable "GraphicsEnabler" to No in /Extra/org.chameleon.Boot.plist.
I also do the following just in case.
<key>Graphics Mode</key>
<string>1440x900x32</string>
I think I know what you mean by pixelated screen. When I was using the
default DSDT on my D620 with 1440x900 screen, it would look like I lost
every other pixel in each direction, after a wake. I found that I needed to
add the variable AAPL01,DualLink with value 1 to the DSDT. This fixed the
problem. I was under the impression that Dual Link is only used with displays
that have larger resolutions. I guess this might not always be true.
I will add another DSDT for the D520 in the original thread under "Other Research & Testing"
in D620/GMA Display Mirror fix with that variable set to 1.
-
Just made some tests on my D620 GMA with Mario standing by. Laptop was running fresh installation of SL 10.6.8 with the latest EDP (v4 r65) & downloaded boot pack DSDT.
Tried mirroring on 2 different external displays:
- a 19" standard screen LCD 1280x1024
- a 20" widescreen LCD 1680x1050
Here are my findings:
D620 with following BIOS settings:
. System password: set (mandatory or BSOD on wake)
. Password bypass: reboot & resume Bypass
. USB wake support: disabled or enabled (both tried)
Test 1: D620 connected to 20" 1680x1050 screen
-------------------------------------------------------------------
1) screen extension and/or mirroring -> all Ok
2) laptop to sleep with either Fn-Esc or Close lid or Apple menu -> Suspend -> all Ok (both screens shut off)
3) laptop to wake with either On/Off button or Open lid -> LCD back on, external screen stays off. VGA cable has to be unplugged & replugged to get external video back (sometimes several times)
Test 2: D620 connected to 19" 1280x1024 screen
-------------------------------------------------------------------
1) screen extension and/or mirroring -> all Ok
2) laptop to sleep with either Fn-Esc or Close lid or Apple menu -> Suspend -> all Ok (both screens shut off)
3) laptop to wake with either On/Off button or Open lid -> LCD back on, external screen stays off. VGA cable has to be unplugged & replugged to get external video back and freq set to highest (75Hz vs. 60Hz - screen stays dark @60Hz)
I also noticed that external screen and built-in LCD can be set to resolution that differ between them. For instance, when screen resolution is 1280x800 on the built-in LCD and 1280x1024 on the external screen, the latter may not work at 60Hz but it will at 75Hz! So, there's definitely something about frequency & resolution here...
Key point: no garbled screen, whether built-in LCD or external screen at no point. There does not seem to be a DSDT issue as far as I'm concerned here.
The good points are that, on the D620 GMA:
a. screen mirroring now works
b. USB wake is now supported
I'll try and retest with Lion 10.7.5 tomorrow.
You indicate the VGA display does not come-up after a wake. I have seen something similar. I often see the VGA display
was detected by clicking on the display icon in the title bar (if you have it enabled). I usually change the current VGA
resolution configuration from that ever it is, to another one. That usually fixes the problem. I do not know why this happens. -
Sorry for taking to long to get back to you.
The holidays can be busy.
That extra BIOS parameter allows me to connect my bluetooth card to the EHCI
port. Yours is attached to the UHCI port. With those fixes I sent you, mine is able
to re-connect after a wake from sleep.
I switched that BIOS parameter to the other setting, and now I see the same
problem you are seeing. I can get it to reconnect by inserting a USB thumb drive,
or a USB wired mouse after the machine wakes.
Could give this a try and see if you see the same thing?
Since it seems I can reproduce your problem with my D620, I will look into a possible fix.
-
That is good news.
I am not clear why the parameter AAPL01,Pipe is different between the D520, and the D620. I do even know what it does. It is interesting that, in your machine, the VGA display comes up mirrored by default. I guess it is possible that Apple changed this from 10.6.x to 10.7.x.
Also the rotation modes should work. As I said before, I have never seen a D520, but assuming it is similar to a D620, you seem to have tried it in a docking station, which also works for me, because you tried the S-video output.
How is this output suppose to work? I am not clear how to try it.
Lastly, since your machine uses the same parameters as the Apple machines, can you try the DVI output?
-
Sorry it took me so long to get back to you. The holidays can be busy.
Since I did this work for 10.6.8, and you are running 10.74. I would like to look at your DSDT, to see if you have any changes I am not aware of. Could you attach it to this topic?
I think I have seen the problem you describe. I had to change the value of the parameter AAPL01,Pipe from the value Apple uses to one what works for my D620(intel). Lets try the a version with the Apple value and see if that solves the problem.
Here is another tar.gz file.
-
The command "ioreg -lw0 > OUT1" runs the ioreg command and saves the output in a file called "OUT1".
You can look at the file using the textedit command.
Click on "Applications" then "TextEdit".
Open the file in the directory that comtains OUT1.
Use the "Find" command from the Edit menu to look for "AppleUSBBluetoothHCIController ".
You should find it.
Then do a sleep followed by a wake and re-run the ioreg command saving the output to a new file.
Say OUT2.
When you open that file and search for "AppleUSBBluetoothHCIController ", I believe it will not be there.
It might be best if you attach both files to this topic so we all can see what is happening.
-
djpumpkin
Yes, that is a terminal command.
Click on "Applications" then "Utilities" then "Terminal"
Then execute the commands.
As for your question on the "Integrated USB Hub" parameter.
I guess Dell has changed the BIOS between the D620, and
the D630. It might be a different name now, or they have added
other options. I wish I could see your BIOS screens. Try those
ioreg commands and lets verify what is happening. I might be
able to change a different portion of the same USB devices. The
current device read the devices and returns values based on the
configuration. I am not clear is hard wiring the return values is
valid.
Herve,
What you say sounds consistent with what I saw before this change.
Original I had to change the parameter "hibernatemode " as specified
to get sleep/wake to work. With this USB change, I am able to use the
default value.
It seems to me updating the D620(nvidia) DSDT should fix that problem.
You can make the change yourself, or I can make the change and attach it.
Your call.
-
Well, before I waste your time, let me ask a few more questions.
I have never seen a D520, but I assume it looks something like a D620.
If I understand what you are saying, you are placing the D520 on a table,
plugging in a VGA display, opening the lid and booting the machine.
At this point, your LCD display works, but the VGA has random stripes
Is this correct?
Have you tried to changing the resolution setting on the VGA manually?
Start the "System Preferences" application and select the display category.
Make sure the box in the lower left labeled "Show displays in menu bar"
is checked.
You should see a "mini display" icon in the menu bar.
If you click on it, you should see something line this.
----------------------------------
Detect Displays
Turn On Mirroring
----------------------------------
DIsplay
1024x768
1344x840
1440x900
----------------------------------
DELL 1901FP
1024x768
1280x1024, 60HZ
1200x1024, 75HZ
-----------------------------------
Number of Recent Items
Display Preferences...
-----------------------------------
The first should be the LCD in the D520.
The second should be the VGA.
Try selecting a difference resolution setting for the VGA and see
what happens.
One last thing.
Mine works with a DELL LCD monitor I have.
I tried connecting my D620 to a large screen LCD that happens
to have a VGA input. It did not work. I did not look into why, but
my first thought is the D620 was not able to download the EDID.
-
That is strange.
You said the new DSDT is better. Was the VGA output working with the old DSDT?
Your signature said you are using 10.7.5, is this true?
I only tried this with 10.6.8. Can you try it on 10.6.8?
I also set GraphicsEnabler=No.
Just to be sure the parameters are not modified.
-
It sounds like the same thing that was happening to me.
After a wake, the Bluetooth device was no longer present.
You can check this by going the following
ioreg -lw0 > OUT1
then sleep and wake the machine
ioreg -lw0 > OUT2
Look in OUT1
The Bluetooth devices are usually USB plugins.
You should see the following under one of your USB devices.
| | +-o EHCI@1D,7 <class IOPCIDevice, id 0x10000018d, registered, matched, active, busy 0 (419 ms), retain 12>
| | | |
| | | +-o IOService <class IOService, id 0x100000200, !registered, !matched, active, busy 0, retain 4>
| | | |
| | | +-o AppleUSBEHCI <class AppleUSBEHCI, id 0x100000201, registered, matched, active, busy 0 (287 ms), retain 17>
| | | |
| | | +-o EHCI Root Hub Simulation@1D,7 <class IOUSBRootHubDevice, id 0x100000203, registered, matched, active, busy 0 (46 ms), retain 12>
| | | | |
| | | | +-o AppleUSBHub <class AppleUSBHub, id 0x10000020f, registered, matched, active, busy 0 (1 ms), retain 10>
| | | | | {
| | | | +-o IOUSBInterface@0 <class IOUSBInterface, id 0x100000211, !registered, !matched, active, busy 0, retain 7>
| | | |
| | | +-o HubDevice@fd200000 <class IOUSBHubDevice, id 0x100000254, registered, matched, active, busy 0 (19 ms), retain 14>
| | | | |
| | | | +-o AppleUSBHub <class AppleUSBHub, id 0x100000257, registered, matched, active, busy 0 (1 ms), retain 10>
| | | | |
| | | | +-o IOUSBInterface@0 <class IOUSBInterface, id 0x100000259, !registered, !matched, active, busy 0, retain 7>
| | | | |
| | | | +-o IOUSBDeviceUserClientV2 <class IOUSBDeviceUserClientV2, id 0x100000287, !registered, !matched, active, busy 0, retain 7>
| | | |
| | | +-o HubDevice@fd800000 <class IOUSBHubDevice, id 0x10000025a, registered, matched, active, busy 0 (14 ms), retain 10>
| | | | |
| | | | +-o AppleUSBHub <class AppleUSBHub, id 0x10000025d, registered, matched, active, busy 0 (0 ms), retain 6>
| | | | |
| | | | +-o IOUSBInterface@0 <class IOUSBInterface, id 0x10000025f, !registered, !matched, active, busy 0, retain 7>
| | | | |
| | | | +-o IOUSBDeviceUserClientV2 <class IOUSBDeviceUserClientV2, id 0x100000288, !registered, !matched, active, busy 0, retain 7>
| | | |
| | | +-o HubDevice@fd230000 <class IOUSBHubDevice, id 0x100000261, registered, matched, active, busy 0 (9 ms), retain 12>
| | | | |
| | | | +-o AppleUSBHub <class AppleUSBHub, id 0x100000263, !registered, !matched, active, busy 0, retain 7>
| | | | |
| | | | +-o IOUSBInterface@0 <class IOUSBInterface, id 0x100000265, !registered, !matched, active, busy 0, retain 7>
| | | | |
| | | | +-o IOUSBDeviceUserClientV2 <class IOUSBDeviceUserClientV2, id 0x100000289, !registered, !matched, active, busy 0, retain 7>
| | | |
| | | +-o WirelessControllerDevice@fd240000 <class IOUSBDevice, id 0x10000026a, registered, matched, active, busy 0 (195 ms), retain 12>
| | | | |
| | | | +-o AppleUSBBluetoothHCIController <class AppleUSBBluetoothHCIController, id 0x10000026d, registered, matched, active, busy 0 (0 ms), retain 10>
| | | | | |
| | | | | +-o IOBluetoothHCIUserClient <class IOBluetoothHCIUserClient, id 0x100000280, !registered, !matched, active, busy 0, retain 5>
| | | | | |
| | | | | +-o IOBluetoothHCIUserClient <class IOBluetoothHCIUserClient, id 0x1000003d6, !registered, !matched, active, busy 0, retain 5>
I removed some out the output so it would be readable. The red is the important stuff.
My Bluetooth device is under the EHCI device.
Your USB devices are: UHC2, UHC3, UHC4, UHC5, UHC6, EHCI, EHC2 for intel
and USB1, USB2, USB3, USB4, USB5, EHCI, EHC2 for nvidia.
Now look at OUT2.
I believe the Bluetooth device is no longer there. I believe the USB bus and or the
Bluetooth device is not being restored.
If this is what is happening, look at you BIOS settings.
I had to set the following options for things to work
Onboard Devices
External USB ports: Enabled
Integrated USB Hub: High Speed
Power Management
USB Wake Support: Enabled
POST Behavior
USB Emulation: Enabled
-
Well, since I did this work, I will give it a try.
Here is the same change applied to both the D630-intel, and the D630-nvidia DSDTs from EDP 1.9.
Let me know if it works.
-
Yes, this was a concern of mine.
Here is a new tar.gz file that supports the 1024x768 and 800x600 resolutions.
I tested the VGA combo. I have never tried the S-VIDEO output.
It is possible for you to give it a try?
-
Hi All,
Here is a modified D520 as requested. I made the change to the DSDT
from the EDP1.9 release. It could use some other changes, but I do not
like to make too many changes without checking that nothing is broken.
There are two versions in the tar.gz file. One for 1200x800 and the
other for 1440x900. I am not clear which will be required. I hope it works.
-
Hi All,
Here is a modified D4X0 as requested. I made the change to a DSDT
I had modified for another problem. That change seemed to work OK.
There are two versions in the tar.gz file. One for 1200x800 and the
other for 1440x900. I am not clear which will be required. I have not
looked at the D520 case. I hope it works.
-
I will look into it. I had already modified the D4x0 for another problem,
so I have a starting point. I will get back to you.
-
dsdt_d620_gma.tar.gzdsdt_d620_gma.tar.gzHi All,
I finally found the problem with Mirror Display mode on my D620 with GMA graphics.
The functionality implemented by Apple in their _SB.PCI0.GFX0 is not the same as
that implemented by Dell in their _SB.PCI0.VID. I decided to try and implement the
GFX0 functionality in the D620 framework.
I did the following:
1) Delete the _DOS, and _DOD Methods from the _SB.PCI0.VID device
2) Delete the TV, CRT, and LCD Devices from the _SB.PCI0.VID device.
3) Import the _DOS and _DOD Methods from a MacBook1,1 or MacBook2,1 DSDT.
4) Import the LCD, VGA, and TV Devices from a MacBook1,1 or MacBook2,1 DSDT.
5) Import the _DSS Method from a MacBook1,1 or MacBook2,1 DSDT.
6) Resolve the differences in the global variables in the new Methods and Devices.
7) Change the name of the Dell _DSS Method to address name conflicts.dsdt_d620_gma.tar.gz
8) Update the _DSM method to include the configuration variables from a
MacBook1,1 or MacBook2,1.
In number 8, you can use the same values Apple uses. The following might be different
depending on your display size.
AAPL01,Width
AAPL01,Height
AAPL01,DualLink
For my 1440x900 display I use
AAPL01,Width == 1440
AAPL01,Height == 900
AAPL01,DualLink == 1
For a 1200x800 display the following should be OK
AAPL01,Width == 1200
AAPL01,Height == 800
AAPL01,DualLink == 0
The only variable I needed to change was
AAPL01,Pipe
Apple sets this to a value of 1
I needed to set it to a value of 0, or the LCD display did not work.
I do not know why.
I am attaching a tar file with 2 compiled DSDTs, one for 1440x900
and the other for 1200x800. I have tried the 1440x900, but I do not
have a way to try the 1200x800 version.
I also set the variable "GraphicsEnabler" to No in /Extra/org.chameleon.Boot.plist
just to be sure Chameleon does not override my values.
I tested this with Snow Leopard 10.6.8 with EDP 1.9.
In looking at the DSDT in the MacBook4,1 It seems like the same
change would fix machines with the X3100 GMA device. Only a thought.
-
I have had success getting a D620/Intel to work in a DockingStation
with the VGA output,with 10.6.8. I have never tried Lion, or a D820.
Try the following.
1) Go back to your previous version of the DSDT.
Without the TV/VGA/DVI change.
2) Change "AAPL,Haslid" to "AAPL,HasLid" in DSDT.
Note the "Capital-L".
It worked for me.
-
I have a D620/Intel running Snow Leopard,
so I have never tried the fix on Lion.
So, all I had to do is change the line in
the DSDT from
"AAPL,Haslid",
to
"AAPL,HasLid",
("Capitol L" and then re-compile DSDT
You do not need to remove the device-properties part.
-
-
Yes, my screen size is 1440x900.
I updated the parameters for 1200x800, with dual link set to 0.
Give it a try.
Also I went back to retry the mouse and trackpad behavior after
wake from sleep. I have seen the issues you described when
I was running 10.6.7 and EDP 1.7. Since I updated to 10.6.8,
EDP 1.9, and the version of Chameleon that goes with it, that
problem has disappeared.
I believe the trackpad supports more gestures than single
finger movement, but that is all I know how to use. Also
I have seen optional trackpad updates in the installer
sub-menu in the EDP install package. I have never tried
any of these.
Let me know if this DSDT solves your problems.
nVidia NVMT
in Graphics
Posted
This is my understanding of the Nvidia NVMT. This is for LVDS interfaces. Display port interfaces have more parameters. This is guess work and trial and error. I have never worked for Apple or Nvidia.
Use a MacBookPro5,4 as an example. Start with the EDID. Most of the information comes from here.
MacBookPro5,4 EDID:
MacBookPro5,4 NVMT:
There seems to be at least two ways to specify the intensity of the display at boot.
The following are the NVMTs for a MacBookPro5,3 and MacBookPro5,4.
MacBookPro5,3 NVMT:
MacBookPro5,4 NVMT:
The two machines use the same LCD display. The NVMTs are different. The only differences are bytes 36, 87, 92, and 93.
For the MacBookPro5,3 these are AA, 03, AB, AA
For the MacBookPro5,4 these are E1, 00, 86, 03
The difference seems to be the MacBookPro5,4 always sets the intensity to 0x0386 at boot. The MaxBookPro5,3 remembers the last setting and restores it to that value. For Clover, you need EmuVariableUefi-64.efi for this to work.
Here are those values for various MacBook machines that use Nvidia.
Sorted by NVMT[93], NVMT[92] then NVMT[87]:
Those values seem to be correlated.