joe82
Members-
Posts
31 -
Joined
-
Last visited
-
Days Won
2
joe82 last won the day on September 11 2016
joe82 had the most liked content!
Recent Profile Visitors
The recent visitors block is disabled and is not being shown to other users.
joe82's Achievements
Advanced Member (5/17)
4
Reputation
-
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: ================================================================================ Extracted contents: header: 00 ff ff ff ff ff ff 00 serial number: 06 10 a3 9c 00 00 00 00 00 13 version: 01 03 basic params: 80 21 15 78 0a chroma info: f5 95 a3 55 4f 9c 26 0f 50 54 established: 00 00 00 standard: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 descriptor 1: ab 22 a0 a0 50 84 1a 30 30 20 36 00 4b cf 10 00 00 18 descriptor 2: 00 00 00 01 00 06 10 30 00 00 00 00 00 00 00 00 0a 20 descriptor 3: 00 00 00 fe 00 4c 50 31 35 34 57 50 34 2d 54 4c 41 31 descriptor 4: 00 00 00 fe 00 43 6f 6c 6f 72 20 4c 43 44 0a 20 20 20 extensions: 00 checksum: 00 Manufacturer: APP Model 9ca3 Serial Number 0 Made week 0 of 2009 EDID version: 1.3 Digital display Maximum image size: 33 cm x 21 cm Gamma: 2.20 Supported color formats: RGB 4:4:4, YCrCb 4:2:2 First detailed timing is preferred timing Established timings supported: Standard timings supported: Detailed mode: Clock 88.750 MHz, 331 mm x 207 mm 1440 1488 1520 1600 hborder 0 900 903 909 926 vborder 0 -hsync -vsync Manufacturer-specified data, tag 1 ASCII string: LP154WP4-TLA1 ASCII string: Color LCD Checksum: 0x0 (valid) EDID block does NOT conform to EDID 1.3! Missing name descriptor Missing monitor ranges ================================================================================ MacBookPro5,4 NVMT: ================================================================================ 0b 03 7f 20 06 10 a3 9c a0 05 84 03 40 06 d0 05 f0 05 00 00 9e 03 87 03 8d 03 00 00 b0 37 4a 05 00 00 01 01 e1 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 40 ff 10 05 02 00 00 00 00 00 00 00 00 08 00 00 86 03 00 00 ================================================================================ ================================================================================ 0b: This is a version number 03: Not clear. It seems to indicate the type of interface to the display 7f: This correlates with where to find the monitor name 7F is an ASCII string in the EDID FF is the Monitor Identifier field in the EDID 20: Not clear. This might be the type of display 06 10 a3 9c: This is the manufactor ID and Device ID from the EDID See the "serial number" above. For this section see "Detailed mode" above a0 05: This is 1440. This is the line length from the first set of resolutions. 84 03: This is 900. This is the number of lines in the first set of resolutions. For this section see "Detailed mode" above 40 06: This is 1600. This is the line length from the forth set of resolutions. d0 05: This is 1488. This is the line length from the second set of resolutions. f0 05: This is 1520. This is the line length from the third set of resolutions. 00 00: Unknown/Unused For this section see "Detailed mode" above 9e 03: This is 926. This is the number of lines in the forth set of resolutions. 87 03: This is 903. This is the number of lines in the second set of resolutions. 8d 03: This is 909. This is the number of lines in the third set of resolutions. 00 00: Unknown/Unused b0 37 4a 05: This is 88750000. This is the clock rate is Hertz. See "Detailed mode" above. 00 00: Unknown/Unused 01: This might be a lid flag. 01: Unknown/Unused. e1: Possible parameter for intensity at boot. 00 00 00 00 00 00 00 00 00 00 00: Unknown/Unused 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00: Unknown/Unused 00 00 00 00 ff ff 00 00 00 00 00 00: Unknown/Unused 40 ff 10 05: This is 85 MHz. This is the max per link frequency. 02: This means dual link. 01 for Single link. 00 00 00 00 00 00: Unknown/Unused 00: Possible parameter for Intensity at boot. 00 08 00 00: Unknown/Unused 86 03: This is 902. This goes to AppleBacklightAtBoot under the PNLF device. This is the LCD intensity at boot. 00 00: Unknown/Unused ================================================================================ 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: ================================================================================ 0b 03 7f 20 06 10 a3 9c a0 05 84 03 40 06 d0 05 f0 05 00 00 9e 03 87 03 8d 03 00 00 b0 37 4a 05 00 00 01 01 aa 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 40 ff 10 05 02 00 00 00 00 00 00 03 00 08 00 00 ab aa 00 00 ================================================================================ MacBookPro5,4 NVMT: ================================================================================ 0b 03 7f 20 06 10 a3 9c a0 05 84 03 40 06 d0 05 f0 05 00 00 9e 03 87 03 8d 03 00 00 b0 37 4a 05 00 00 01 01 e1 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 40 ff 10 05 02 00 00 00 00 00 00 00 00 08 00 00 86 03 00 00 ================================================================================ 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]: ================================================================================ MBA2,1: e0 00 0380 MBP5,4: e1 00 0386 MBP3,1: f3 00 03CF MBP5,1: ff 00 03FF ================================================================================ MBP7,1: 0a 03 0028 MBP5,5: 00 03 0400 ================================================================================ MBP4,1: ff 04 03FF MBP6,1: ff 04 03FF ================================================================================ MBP5,2: aa 03 AAAB MBP5,3: aa 03 AAAB MBP6,2: aa 04 AAAB ================================================================================ Those values seem to be correlated.
-
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 SDXC_10P9P1.tar.gz
-
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. dsdt_d520_gma_pipe1_md_dl1.tar.gz
-
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.
-
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. dsdt_d520_gma_pipe1_md.tar.gz
-
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