rework of EDID support in bochs vgabios
tested with mint linux 13 resulted Xorg.0.log is as follows:
[ 62.165] (II) VESA(0): VESA VBE DDC supported [ 62.165] (II) VESA(0): VESA VBE DDC Level 1 [ 62.165] (II) VESA(0): VESA VBE DDC transfer in appr. 1 sec. [ 62.237] (II) VESA(0): VESA VBE DDC read successfully [ 62.251] (II) VESA(0): Manufacturer: AAA Model: cdab Serial#: 0 [ 62.251] (II) VESA(0): Year: 2012 Week: 36 [ 62.251] (II) VESA(0): EDID Version: 1.3 [ 62.251] (II) VESA(0): Analog Display Input, Input Voltage Level: 0.700/0.300 V [ 62.251] (II) VESA(0): Sync: Separate Composite SyncOnGreenSerration on. V.Sync Pulse req. if CompSync or SyncOnGreen [ 62.251] (II) VESA(0): Max Image Size [cm]: horiz.: 33 vert.: 25 [ 62.251] (II) VESA(0): Gamma: 2.20 [ 62.251] (II) VESA(0): No DPMS capabilities specified; RGB/Color Display [ 62.251] (II) VESA(0): Default color space is primary color space [ 62.251] (II) VESA(0): First detailed timing is preferred mode [ 62.251] (II) VESA(0): GTF timings supported [ 62.251] (II) VESA(0): redX: 0.649 redY: 0.335 greenX: 0.283 greenY: 0.605 [ 62.251] (II) VESA(0): blueX: 0.151 blueY: 0.073 whiteX: 0.313 whiteY: 0.329 [ 62.252] (II) VESA(0): Supported established timings: [ 62.252] (II) VESA(0): 720x400@70Hz [ 62.252] (II) VESA(0): 720x400@88Hz [ 62.252] (II) VESA(0): 640x480@60Hz [ 62.252] (II) VESA(0): 640x480@67Hz [ 62.252] (II) VESA(0): 640x480@72Hz [ 62.252] (II) VESA(0): 640x480@75Hz [ 62.252] (II) VESA(0): 800x600@56Hz [ 62.252] (II) VESA(0): 800x600@60Hz [ 62.252] (II) VESA(0): 800x600@72Hz [ 62.252] (II) VESA(0): 800x600@75Hz [ 62.252] (II) VESA(0): 832x624@75Hz [ 62.252] (II) VESA(0): 1024x768@60Hz [ 62.252] (II) VESA(0): 1024x768@70Hz [ 62.252] (II) VESA(0): 1024x768@75Hz [ 62.252] (II) VESA(0): 1280x1024@75Hz [ 62.252] (II) VESA(0): 1152x864@75Hz [ 62.252] (II) VESA(0): Manufacturer's mask: 0 [ 62.252] (II) VESA(0): Supported standard timings: [ 62.252] (II) VESA(0): #0: hsize: 640 vsize 480 refresh: 85 vid: 22833 [ 62.252] (II) VESA(0): #1: hsize: 800 vsize 600 refresh: 85 vid: 22853 [ 62.252] (II) VESA(0): #2: hsize: 1440 vsize 900 refresh: 60 vid: 149 [ 62.252] (II) VESA(0): #3: hsize: 1920 vsize 1200 refresh: 60 vid: 209 [ 62.252] (II) VESA(0): Supported detailed timing: [ 62.252] (II) VESA(0): clock: 193.2 MHz Image Size: 33 x 0 mm [ 62.252] (II) VESA(0): h_active: 1968 h_sync: 2360 h_sync_end 3328 h_blank_end 2640 h_border: 28 [ 62.252] (II) VESA(0): v_active: 1200 v_sync: 1221 v_sync_end 1242 v_blanking: 1245 v_border: 0 [ 62.252] (II) VESA(0): Ranges: V min: 50 V max: 150 Hz, H min: 31 H max: 135 kHz, PixClock max 205 MHz [ 62.253] (II) VESA(0): Serial No: 0123456789 [ 62.253] (II) VESA(0): Monitor name: Sea VGABIOS [ 62.253] (II) VESA(0): EDID (in hex): [ 62.253] (II) VESA(0): 00ffffffffffff000421abcd00000000 [ 62.253] (II) VESA(0): 241601030f2119780f78f5a655489b26 [ 62.253] (II) VESA(0): 125054ffef80315945599500d1000101 [ 62.253] (II) VESA(0): 0101010101017d4bb0a072b02d4088c8 [ 62.253] (II) VESA(0): 55752100001c0000000000fd0032961f [ 62.253] (II) VESA(0): 8714000a202020202020000000ff0030 [ 62.253] (II) VESA(0): 3132333435363738390a2020000000fc [ 62.253] (II) VESA(0): 005365612056474142494f53000a00b2 [ 62.253] (II) VESA(0): EDID vendor "AAA", prod id 52651 [ 62.253] (II) VESA(0): DDCModeFromDetailedTiming: 1968x1200 Warning: We only handle separate sync. [ 62.253] (II) VESA(0): Using EDID range info for horizontal sync [ 62.253] (II) VESA(0): Using EDID range info for vertical refresh [ 62.253] (II) VESA(0): Printing DDC gathered Modelines: [ 62.253] (II) VESA(0): Modeline "800x600"x0.0 40.00 800 840 968 1056 600 601 605 628 +hsync +vsync (37.9 kHz) [ 62.253] (II) VESA(0): Modeline "800x600"x0.0 36.00 800 824 896 1024 600 601 603 625 +hsync +vsync (35.2 kHz) [ 62.253] (II) VESA(0): Modeline "640x480"x0.0 31.50 640 656 720 840 480 481 484 500 -hsync -vsync (37.5 kHz) [ 62.253] (II) VESA(0): Modeline "640x480"x0.0 31.50 640 664 704 832 480 489 492 520 -hsync -vsync (37.9 kHz) [ 62.253] (II) VESA(0): Modeline "640x480"x0.0 30.24 640 704 768 864 480 483 486 525 -hsync -vsync (35.0 kHz) [ 62.253] (II) VESA(0): Modeline "640x480"x0.0 25.18 640 656 752 800 480 490 492 525 -hsync -vsync (31.5 kHz) [ 62.253] (II) VESA(0): Modeline "720x400"x0.0 35.50 720 738 846 900 400 421 423 449 -hsync -vsync (39.4 kHz) [ 62.253] (II) VESA(0): Modeline "720x400"x0.0 28.32 720 738 846 900 400 412 414 449 -hsync +vsync (31.5 kHz) [ 62.253] (II) VESA(0): Modeline "1280x1024"x0.0 135.00 1280 1296 1440 1688 1024 1025 1028 1066 +hsync +vsync (80.0 kHz) [ 62.253] (II) VESA(0): Modeline "1024x768"x0.0 78.75 1024 1040 1136 1312 768 769 772 800 +hsync +vsync (60.0 kHz) [ 62.253] (II) VESA(0): Modeline "1024x768"x0.0 75.00 1024 1048 1184 1328 768 771 777 806 -hsync -vsync (56.5 kHz) [ 62.253] (II) VESA(0): Modeline "1024x768"x0.0 65.00 1024 1048 1184 1344 768 771 777 806 -hsync -vsync (48.4 kHz) [ 62.253] (II) VESA(0): Modeline "832x624"x0.0 57.28 832 864 928 1152 624 625 628 667 -hsync -vsync (49.7 kHz) [ 62.253] (II) VESA(0): Modeline "800x600"x0.0 49.50 800 816 896 1056 600 601 604 625 +hsync +vsync (46.9 kHz) [ 62.253] (II) VESA(0): Modeline "800x600"x0.0 50.00 800 856 976 1040 600 637 643 666 +hsync +vsync (48.1 kHz) [ 62.253] (II) VESA(0): Modeline "1152x864"x0.0 108.00 1152 1216 1344 1600 864 865 868 900 +hsync +vsync (67.5 kHz) [ 62.253] (II) VESA(0): Modeline "640x480"x0.0 36.00 640 696 752 832 480 481 484 509 -hsync -vsync (43.3 kHz) [ 62.253] (II) VESA(0): Modeline "800x600"x0.0 56.25 800 832 896 1048 600 601 604 631 +hsync +vsync (53.7 kHz) [ 62.253] (II) VESA(0): Modeline "1440x900"x0.0 106.50 1440 1520 1672 1904 900 903 909 934 -hsync +vsync (55.9 kHz) [ 62.253] (II) VESA(0): Modeline "1920x1200"x0.0 193.25 1920 2056 2256 2592 1200 1203 1209 1245 -hsync +vsync (74.6 kHz) [ 62.253] (II) VESA(0): Searching for matching VESA mode(s):
[snip]
[ 62.384] (II) VESA(0): Total Memory: 256 64KB banks (16384kB) [ 62.384] (II) VESA(0): <default monitor>: Using hsync range of 31.00-135.00 kHz [ 62.384] (II) VESA(0): <default monitor>: Using vrefresh range of 50.00-150.00 Hz [ 62.384] (II) VESA(0): <default monitor>: Using maximum pixel clock of 205.00 MHz [ 62.384] (WW) VESA(0): Unable to estimate virtual size [ 62.384] (II) VESA(0): Not using built-in mode "2560x1600" (no mode of this name) [ 62.385] (II) VESA(0): Not using built-in mode "1600x1200" (no mode of this name) [ 62.385] (II) VESA(0): Not using built-in mode "1680x1050" (no mode of this name) [ 62.385] (II) VESA(0): Not using built-in mode "1400x1050" (no mode of this name) [ 62.386] (II) VESA(0): Not using built-in mode "1280x960" (no mode of this name) [ 62.386] (II) VESA(0): Not using built-in mode "1280x800" (no mode of this name) [ 62.389] (II) VESA(0): Not using built-in mode "640x400" (no mode of this name) [ 62.389] (II) VESA(0): Not using built-in mode "320x200" (no mode of this name) [ 62.389] (--) VESA(0): Virtual size is 1920x1200 (pitch 1920) [ 62.389] (**) VESA(0): *Built-in mode "1920x1200" [ 62.389] (**) VESA(0): *Built-in mode "1280x1024" [ 62.389] (**) VESA(0): *Built-in mode "1440x900" [ 62.389] (**) VESA(0): *Built-in mode "1152x864" [ 62.389] (**) VESA(0): *Built-in mode "1024x768" [ 62.389] (**) VESA(0): *Built-in mode "800x600" [ 62.389] (**) VESA(0): *Built-in mode "640x480" [ 62.389] (**) VESA(0): Display dimensions: (330, 250) mm [ 62.389] (**) VESA(0): DPI set to (147, 121)
Hiroshi Miura (3): vgasrc: Add skeleton for VBE function 15h (VBE/DDC Standard) bochsvga: Implement vbe 15h function bochsvga: dynamic generation of EDID
Makefile | 3 +- src/vbe.h | 5 ++ vgasrc/bochsedid.c | 181 ++++++++++++++++++++++++++++++++++++++++++++++++++++ vgasrc/bochsedid.h | 137 +++++++++++++++++++++++++++++++++++++++ vgasrc/bochsvga.c | 2 + vgasrc/stdvga.c | 11 ++++ vgasrc/stdvga.h | 2 + vgasrc/vbe.c | 34 ++++++++++ vgasrc/vgahw.h | 13 ++++ 9 files changed, 387 insertions(+), 1 deletion(-) create mode 100644 vgasrc/bochsedid.c create mode 100644 vgasrc/bochsedid.h