DTDs in [NonEDIDMode_AddSwSettings] section for 915GM

DTDs in [NonEDIDMode_AddSwSettings] section for 915GM

Hi folks,

My initial problem is to
run a WUXGA monitor as external display on my IBM Thinkpad X41 with a Mobile
Intel 915GM (Bios: 1239). Only 2048x1536 and no wide-screen resolutions were
possible. I found that IBM/Lenovo issued a new version of the Intel's version I found that they added some DTDs in the [NonEDIDMode_AddSwSettings]
section of the inf file. These are widescreen resolutions not supported before
by my Laptop. Missing was unfortunately the 1900x1200@60Hz setting. It is hard
to follow the coding of the resolution to the 18 byte DTD values. Can anyone
give a hint? Or does anyone know, if this is anyway the appropriate way to add
WUXGA to the driver?


section in old driver' inf (

HKR,, TotalDTDCount, %REG_DWORD%, 0
; This shows number of DTDs to be used. ; 0-->Disable the feature.
;Following keys have 20 bytes (18 byte DTD + 2 Byte flags).
HKR,, DTD_1,%REG_BINARY%, 01,1D,80,18,71,1C,16,20,58,2C,1A,00,00,00,00,00,00,86,37,01
HKR,, DTD_2, %REG_BINARY%, 01,1D,80,D0,72,1C,16,20,10,2C,1A,80,00,00,00,00,00,86,37,01
HKR,, DTD_3,%REG_BINARY%, 01,1D,00,BC,52,D0,1E,20,B8,28,25,40,00,00,00,00,00,04,37,01
HKR,, DTD_4, %REG_BINARY%, 01,1D,00,72,51,D0,1E,20,6E,28,25,00,00,00,00,00,00,06,37,01
HKR,, DTD_5,%REG_BINARY%, 00, 00, 00 ,00, 00, 00,00, 00, 00,00, 00, 00,00, 00, 00,00, 00, 00,00, 00
;Fifth DTD

Section in new driver's inf (

HKR,, TotalDTDCount, %REG_DWORD%, 3
; This shows number of DTDs to be used. ; 0-->Disable the feature.
;Following keys have 20 bytes (18 byte DTD + 2 Byte flags).
HKR,, DTD_1,%REG_BINARY%, 97,29,A0,D0,51,84,20,30,50,98,3,00,00,00,00,00,00,1C,27,00
HKR,, DTD_2, %REG_BINARY%, 9A,20,0,90,51,20,1C,30,40,88,3,00,00,00,00,00,00,1C,27,00
HKR,, DTD_3, %REG_BINARY%, 79,39,90,40,62,1A,25,40,68,B8,3,00,00,00,00,00,00,1C,27,00

9 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

These are VESA standard timings information in EDID. The decoder ring for the 18 bytes is as follows:

1. Low Byte of DClk in 10 KHz
2. High Byte of DClk in 10 KHz
3. Horizontal Active in pixels, LSB
4. Horizontal Blanking in pixels, LSB
5 Bit 7-4: Upper 4 bits of Hor. Active
5 Bit 3-0: Upper 4 bits of Hor. Blanking
6. Vertical Active in lines, LSB
7.Vertical Blanking in lines, LSB
8 Bit 7-4: Upper 4 bits of Vert. Active
8 Bit 3-0: Upper 4 bits of Vert. Blanking
9. HSync Offset from Hor. Blanking in pix., LSB
10. HSync Pulse Width in pixels, LSB
11Bit 7-4: Lower 4 bits of VSync Offset
11 Bit 3-0: Lower 4 bits of VSync Pulse Width
12 Bit 7-6: Upper 2 bits of HSync Offset
12 Bit 5-4: Upper 2 bits of HSync Pulse Width
12 Bit 3-2: Upper 2 bits of VSync Offset
12 Bit 1-0: Upper 2 bits of VSync Pulse Width
13. Horizontal Image Size, LSB
14. Vertical Image Size, LSB
15Bit 7-4: Upper 4 bits of Hor. Image Size
15 Bit 3-0: Upper 4 bits of Vert. Image Size
16. Horizontal Border in pixels
17. Vertical Border in lines
18. Flags:
Bit 7: 0 = Non-interlaced, 1 = Interlaced
Bit 6-5: 00 = Reserved
Bit 4-3: 11 = Digital Separate
Bit 2: Vertical Polarity (0 = Negative, 1 = Positive)
Bit 1: Horizontal Polarity (0 = Negative, 1 = Positive)
Bit 0: 0 = Reserved"

Thanks for the DTD coding!

With that I created the one suitable for my Dell 2407WFP:
HKR,, DTD_4, %REG_BINARY%, 28,3C,80,A0,70,B0,23,40,30,20,36,00,07,44,21,00,00,1A,27,00 ;1920x1200@60..P...my

Unfortunately, that one does not show up in the display device settings, only if I use e.g. a DClk of about "9A,00," (=154) it shows up. But then the monitor's refresh rate is set to 1Hz. The actual value required by the display is "28,3C," (=15400 = 154.00MHz). Any idea?

Second question, what are the two flag bytes at the end for? I guess they are Intel specific.


Not sure on the byte flags on the end. Probably makes sense to do exactly as you did: copy from the other four.

Not sure why that DTD isn't showing up for you. One thing I've noticed is that your Horizontal image size is 519 and Vertical is 324. Was that on purpose? I notice that the other DTDs leave this completely blank anyway, so not sure if we're confusing the driver with Too Much Information. Here's my decode of what your DTD says:

3C28 = 154.00 MHz pixel clock

780 = 1920 Horiz Active
A0 = 160 Horiz Blank

4B0 = 1200 Vert Active
23 = 35 Vert Blank

030 = 48 Hsync offset from blank
020 = 32 Hsync pulse width

03 = 3 Vsync offset
06 = 6 Vsync pulse width

207 = 519 Horiz image size
144 = 324 Vert Image size

00 Horiz border
00 vert border

progressive, 0011, negative polarity vert, positive polarity horiz, 0

19: 27, 20: 00

Finally I did it,
not with the actual frequency required by the display (154MHz) but with 152.84 MHz. That results in 59... Hz and that seems to be enough for the Dell 2407WFP using the IBM driver version of the Intel 900/950 - 910GML/915GM/940GML/945GM video driver v6.14.10.4693 on my Thinkpad X41: http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-62899

I replaced the [NonEDIDMode_AddSwSettings] section with the following lines:

HKR,, TotalDTDCount, %REG_DWORD%, 2 ; This shows number of DTDs to be used. ; 0-->Disable the feature.
;Following keys have 20 bytes (18 byte DTD + 2 Byte flags).
HKR,, DTD_1, %REG_BINARY%, B4,3B,80,A0,70,B0,23,40,30,20,36,00,EF,36,11,00,00,1A,27,00 ;1920x1200@60..P...my DELL 2407WFP
HKR,, DTD_2, %REG_BINARY%, 79,39,90,40,62,1A,25,40,68,B8,3,00,00,00,00,00,00,1C,27,00 ;1680x1050@60...Progressive

It is still unclear to me, why 154Mhz does not work, but I have no time to go on exploring how this NonEDIDMode_AddSwSettings mode interacts with all those DTD parameters.


What did you have to do to test these values? Did you have to reinstall the driver and reboot? Or is there a faster method?

Unfortunately I can give no better alternative than testing (modify inf, install and reboot). I took all DTD values reported by the display (phoenix tool may be used for this purpose). The only problem in my case was the wrong pixel clock. So I tried a few lower values and it finally it worked.

Does the driver only use DTD_1 through 5 or can it support more entries? It'd be a little easier to try a bunch in bulk by putting them all in the INF first. The reboot/reinstall dance gets a bit time consuming...

And is there any documentation on the other values set in the driver?

In my setup I'd like to use Clone mode with a 1920x1080 desktop. I'd like the VGA output to 'pad' this along the top/bottom to have it use native pixel resolution on a 1920x1200 display. Then use the 1920x1080 resolution out the HDMI port on a Prolink ADD2 card but adjust the overscan to lose a few less pixels than it does currently. That and the HDMI output refresh needs to be 59mhz, otherwise there's a bit of noise along the left edge of the display.

I suspect this is possible using the current drivers with appropriate tweaks to the INF. The hassle is determining just what can or can't be tweaked, and how.

I think you can add a bunch of settings. They all should show up after installation, if they are feasible. Whatever
feasible means. Clone mode shouldn't be a problem, since you are just setting
the values for a connected display. Unfortunately I can't give any hints how it
may work for HDMI.

Leave a Comment

Please sign in to add a comment. Not a member? Join today