Pandy's Blog

Pandy Song

EDID

Introduction

A brief introduction/notes for EDID format when reading the document of “E-EDID Standard.pdf” V1.3.

The notes is laid out by explaining on an example

Block

  • The EDID is compromised of one or more 128bytes-blocks. The first one is mandatory. Others are not.
  • each block ends up with a checksum byte.
	0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x32, 0x8d, 0xc5, 0x07, 0x01, 0x00, 0x00, 0x00, 
	0x2e, 0x14, 0x01, 0x03, 0x80, 0x59, 0x32, 0x78, 0x0a, 0xee, 0x91, 0xa3, 0x54, 0x4c, 0x99, 0x26,
	0x0f, 0x50, 0x54, 0x21, 0x08, 0x80, 0x71, 0x40, 0x81, 0x00, 0x81, 0x40, 0x81, 0x80, 0x95, 0x00,
	0xa9, 0xc0, 0xa9, 0x40, 0xd1, 0xc0, 0x01, 0x1d, 0x00, 0x72, 0x51, 0xd0, 0x1e, 0x20, 0x6e, 0x28,
	0x55, 0x00, 0xc4, 0x8e, 0x21, 0x00, 0x00, 0x1e, 0x66, 0x21, 0x50, 0xb0, 0x51, 0x00, 0x1b, 0x30,
	0x40, 0x70, 0x36, 0x00, 0xa0, 0x5a, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x18,
	0x4b, 0x1a, 0x51, 0x17, 0x00, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xfc,
	0x00, 0x4c, 0x4f, 0x4e, 0x54, 0x49, 0x55, 0x4d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x01, 0x57,
	0x02, 0x03, 0x2f, 0xc1, 0x48, 0x84, 0x13, 0x03, 0x12, 0x02, 0x11, 0x10, 0x1f, 0x23, 0x09, 0x07,
	0x07, 0x83, 0x01, 0x00, 0x00, 0x02, 0x00, 0x0f, 0xe3, 0x05, 0x03, 0x01, 0x72, 0x03, 0x0c, 0x00,
	0x40, 0x00, 0x80, 0x1e, 0x20, 0xd0, 0x08, 0x01, 0x40, 0x07, 0x3f, 0x40, 0x50, 0x90, 0xa0, 0x01,
	0x1d, 0x00, 0xbc, 0x52, 0xd0, 0x1e, 0x20, 0xb8, 0x28, 0x55, 0x40, 0xc4, 0x8e, 0x21, 0x00, 0x00,
	0x1e, 0x66, 0x21, 0x56, 0xaa, 0x51, 0x00, 0x1e, 0x30, 0x46, 0x8f, 0x33, 0x00, 0xc4, 0x8e, 0x21,
	0x00, 0x00, 0x1e, 0x20, 0x1c, 0x56, 0x86, 0x50, 0x00, 0x20, 0x30, 0x0e, 0x38, 0x13, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x1e, 0x0e, 0x1f, 0x00, 0x80, 0x51, 0x00, 0x1e, 0x30, 0x40, 0x80, 0x37,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xef

The second block begins with 0x02, which means it is a block of “Additional timing date type 2”. Other possible values are defined in the section 2.2.1.4.

The critical part is timing definition

Block 0: Offset 23,24,25 is defined in section 3.8. Block 0: offset 0x26,27, Standard Timing #1, offset 0x28,29, Standard Timing #2 … offset 0x34,35, Standard Timing #8

Block 0: offset 0x36, 18 bytes, detailed timing description #1 offset 0x48, 18 bytes, detailed timing description #2 offset 0x5A, 18 bytes, detailed timing description #3 offset 0x6C, 18 bytes, detailed timing description #4

Now why there are different form factors of timing definition?

Offset 23-25 is the most compact definition which defines the most common timing definition. Refer to table 3.15 in the document on how to figure out the width/height and refresh rate.

Offset 26 to offset 35, defines the standard timing, which is more flexible than the above compact form. The arbitral timing definition could be done in “Detailed timing description”.

The first Detailed Timing shall only be used to indicate the mode that the monitor vendor has determined will give an optimal image. For LCD monitors, this will in most cases be the panel “native timing” and “native resolution”. Use of the EDID Preferred Timing bit shall be used to indicate that the timing indeed conforms to this definition.

Block0: offset 0x18 (decimal 24) bit 1: Preferred Timing Mode:

If this bit is set to 1, the display’s preferred timing mode is indicated in the first detailed timing block. Note: Use of preferred timing mode is required by EDID Structure Version 1 Revision 3 and higher.

In above example offset 0x18 is 0xe3, bit 1 is 1, which means we need detailed timing.

How host select which timing to use?

The priority on which timing to select is defined in Section 5. Note that preferred detailed timing is the top priority.

However If additional timing information is contained in EDID extensions, the timing priority order should be according to the rules established in the VESA Standard describing the first listed EDID extension. For example the LCD Timings extension may specify that the timings contained in the LCD Extension have higher priority than the timings listed in the basic EDID structure.

Revision

Block 0: offset 0x12: Version which is 0x01 offset 0x13: revision, which is 0x03

Flag to indicate the next blocks

Flag is the byte next to the last byte, to indicate the number of (optional) blocks to follow.

0x01 means there will be a second block.

an example

Change the following highlight bits (which is standard display mode)

offset  
0       0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,   0x32, 0x8d, 0xc5, 0x07, 0x01, 0x00, 0x00, 0x00, 
16      0x2e, 0x14, 0x01, 0x03, 0x80, 0x59, 0x32, 0x78,   0x0a, 0xee, 0x91, 0xa3, 0x54, 0x4c, 0x99, 0x26,
32      0x0f, 0x50, 0x54, 0x21, 0x08, 0x80,*0x71, 0x40,   0x81, 0x00, 0x81, 0x40, 0x81, 0x80, 0x95, 0x00,
48      0xa9, 0xc0, 0xa9, 0x40, 0xd1, 0xc0,*0x01, 0x1d,   0x00, 0x72, 0x51, 0xd0, 0x1e, 0x20, 0x6e, 0x28,

64      0x55, 0x00, 0xc4, 0x8e, 0x21, 0x00, 0x00, 0x1e,   0x66, 0x21, 0x50, 0xb0, 0x51, 0x00, 0x1b, 0x30,
80      0x40, 0x70, 0x36, 0x00, 0xa0, 0x5a, 0x00, 0x00,   0x00, 0x1e, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x18,
96      0x4b, 0x1a, 0x51, 0x17, 0x00, 0x0a, 0x20, 0x20,   0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xfc,
112     0x00, 0x4c, 0x4f, 0x4e, 0x54, 0x49, 0x55, 0x4d,   0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x01, 0x57,

To:

offset 
0       0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,   0x32, 0x8d, 0xc5, 0x07, 0x01, 0x00, 0x00, 0x00, 
16      0x2e, 0x14, 0x01, 0x03, 0x80, 0x59, 0x32, 0x78,   0x0a, 0xee, 0x91, 0xa3, 0x54, 0x4c, 0x99, 0x26,
32      0x0f, 0x50, 0x54, 0x21, 0x08, 0x80, 0x01, 0x01,   0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
        48    49    50    51    52    53    54    55      56    57    58    59    60    61    62    63
48      0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x1d,   0x00, 0x72, 0x51, 0xd0, 0x1e, 0x20, 0x6e, 0x28,
64      0x55, 0x00, 0xc4, 0x8e, 0x21, 0x00, 0x00, 0x1e,   0x66, 0x21, 0x50, 0xb0, 0x51, 0x00, 0x1b, 0x30,
80      0x40, 0x70, 0x36, 0x00, 0xa0, 0x5a, 0x00, 0x00,   0x00, 0x1e, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x18,
96      0x4b, 0x1a, 0x51, 0x17, 0x00, 0x0a, 0x20, 0x20,   0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xfc,
112     0x00, 0x4c, 0x4f, 0x4e, 0x54, 0x49, 0x55, 0x4d,   0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x01, 0x57,

Will disable all standard display mode

We have to recalculate the checksum

Another example: 702p EDID

offset 
0       0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00, 0x4D,0xD9,0x02,0x2C,0x01,0x01,0x01,0x01,
16      0x01,0x15,0x01,0x03,0x80,0x59,0x32,0x78, 0x0A,0x0D,0xC9,0xA0,0x57,0x47,0x98,0x27,
32      0x12,0x48,0x4C,0x20,0x00,0x00,0x01,0x01, 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
                                      54   55    56   57   58
48      0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x1D, 0x00,0x72,0x51,0xD0,0x1E,0x20,0x6E,0x28,
                                      0x1d01=7425, means 74.25Mhz
                                                 0x00, lower 8 bit of h active
                                                           0x5  high 4 bit of h active  0x500 = 1280
                                                      0x172 = 370, h blanking
                                                                0x2D0 = 720 v active
                                                                     0x01E = 30 v blanking
                                                                          0x20 h sync offset
                                                                               0x6E Hysnc Pulse width
64      0x55,0x00,0x76,0xF2,0x31,0x00,0x00,0x1E, 0x01,0x1D,0x00,0x72,0x51,0xD0,0x1E,0x20,
80      0x6E,0x28,0x55,0x00,0x76,0xF2,0x31,0x00, 0x00,0x1E,0x00,0x00,0x00,0xFC,0x00,0x53,
96      0x4F,0x4E,0x59,0x20,0x54,0x56,0x0A,0x20, 0x20,0x20,0x20,0x20,0x00,0x00,0x00,0xFD,
112     0x00,0x30,0x3E,0x0E,0x46,0x08,0x00,0x0A, 0x20,0x20,0x20,0x20,0x20,0x20,0x01,0xF1,

offset 
0       0x02,0x03,0x1D,0xF0,0x45,0x04,0x13,0x03, 0x02,0x01,0x23,0x09,0x07,0x07,0x83,0x01,
16      0x00,0x00,0x67,0x03,0x0C,0x00,0x10,0x00, 0x00,0x10,0xE2,0x00,0xFB,0x8C,0x0A,0xD0,
32      0x90,0x20,0x40,0x31,0x20,0x0C,0x40,0x55, 0x00,0x13,0x8E,0x21,0x00,0x00,0x18,0x00,
48      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
64      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
80      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
96      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
112     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x39