Jump to content

nVidia NVMT


joe82

Recommended Posts

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.

  • Like 1
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...