/** * edid.h * * EDID definitions for Beyond's allowed video resolutions. * * Copyright (c) 2024 Bigscreen, Inc. */ // Note this file should only be included ONCE in the project source. // Otherwise, it will result in multiple definition errors. /*** Not using this EDID. It's what should already exist in the VXR config. *** const uint8_t edid_without_did20[256] = { 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x09, 0x27, 0x34, 0x12, 0xd2, 0x04, 0x00, 0x00, 0x02, 0x1e, 0x01, 0x04, 0xa5, 0x00, 0x00, 0x78, 0xe7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x42, 0x65, 0x79, 0x6f, 0x6e, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0d, 0x70, 0x12, 0x79, 0x00, 0x00, 0x03, 0x00, 0x28, 0x6c, 0x88, 0x01, 0x80, 0xdf, 0x13, 0x7f, 0x00, 0x3f, 0x80, 0x1f, 0x00, 0xef, 0x09, 0x17, 0x00, 0x0e, 0x80, 0x01, 0x00, 0x83, 0x18, 0x01, 0x00, 0xff, 0x0e, 0xff, 0x00, 0x3f, 0x80, 0x1f, 0x00, 0x7f, 0x07, 0x1b, 0x00, 0x0e, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x90, }; ***/ const uint8_t edid_for_optical_fatp[256] = { // The DSC modes are removed (5088x2544@75Hz and 3840x1920@90Hz) // Two non-DSC mode is added (3840x1920@60Hz and 2560x2560@30Hz) 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x09, 0x27, 0x95, 0x50, 0xD2, 0x04, 0x00, 0x00, 0x02, 0x1E, 0x01, 0x04, 0xA5, 0x00, 0x00, 0x78, 0xE7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xCA, 0xB4, 0x00, 0x80, 0xF0, 0x80, 0x18, 0x70, 0x40, 0x20, 0x92, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x1E, 0xA5, 0x51, 0x00, 0x80, 0xA0, 0x00, 0x20, 0xA0, 0x40, 0x20, 0x02, 0x04, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x75, // DID1.2 block just used for the 5120x2560 @30Hz timing. It's too big for the regular EDID block. 0x70, 0x12, 0x79, 0x00, 0x00, 0x03, 0x00, 0x14, 0x68, 0x9F, 0x00, 0x80, 0xFF, 0x13, 0x7F, 0x00, 0x3F, 0x80, 0x1F, 0x00, 0xFF, 0x09, 0x1F, 0x00, 0x0F, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB1, 0x90 }; const uint8_t edid_for_fatp_mode1[256] = { // Only has a single non-DSC mode: // 3840x1920@60Hz // Dropping the 30Hz non-DSC mode makes it easier for test stations to go straight into 60Hz 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x09, 0x27, 0x95, 0x50, 0xD2, 0x04, 0x00, 0x00, 0x02, 0x1E, 0x01, 0x04, 0xA5, 0x00, 0x00, 0x78, 0xE7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xCA, 0xB4, 0x00, 0x80, 0xF0, 0x80, 0x18, 0x70, 0x40, 0x20, 0x92, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x1E, 0xA5, 0x51, 0x00, 0x80, 0xA0, 0x00, 0x20, 0xA0, 0x40, 0x20, 0x02, 0x04, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x75, // Blank DID 1.2 block just for consistency 0x70, 0x12, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x90 }; const uint8_t edid_for_fatp_mode2[256] = { // This is a bit different than the other FATP modes. // Only one mode is given: 5088x2544@60Hz // It does require DSC, so we keep the original EDID VID/PID, which tells // Nvidia and AMD drivers to still apply all of the DSC encoder fixes we require 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x09, 0x27, 0x34, 0x12, 0xD2, 0x04, 0x00, 0x00, 0xFF, 0x20, 0x01, 0x04, 0xA5, 0x00, 0x00, 0x78, 0x00, 0x78, 0x75, 0xAA, 0x55, 0x3B, 0xB2, 0x29, 0x10, 0x50, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x42, 0x65, 0x79, 0x6F, 0x6E, 0x64, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x01, 0x5B, // DisplayID 2.0 Block 0x70, 0x20, 0x79, 0x07, 0x00, 0x22, 0x09, 0x14, // Timing Type VII 0x61, 0x43, 0x0C, 0x88, 0xDF, 0x13, 0x7F, 0x00, 0x3F, 0x80, // 5088x2544 60Hz (marked as preferred) 0x1F, 0x00, 0xEF, 0x09, 0x17, 0x00, 0x0E, 0x80, 0x01, 0x00, 0x7E, 0x00, 0x07, 0x3A, 0x02, 0x92, 0x81, 0x00, 0x08, 0x00, // DSC passthrough 8bpp (vendor defined data block with VESA vendor ID) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x90, }; /* const uint8_t edid_with_did20[256] = { 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x09, 0x27, 0x34, 0x12, 0xD2, 0x04, 0x00, 0x00, 0x02, 0x1E, 0x01, 0x04, 0xA5, 0x00, 0x00, 0x78, 0xE7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x42, 0x65, 0x79, 0x6F, 0x6E, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0D, 0x70, 0x20, 0x79, 0x00, 0x00, // DisplayID 2.0 0x22, 0x09, 0x28, // Timing Type VII 0x1E, 0xF5, 0x0A, 0x00, 0xFF, 0x0E, 0xFF, 0x00, 0x3F, 0x80, // 3840x1920 90Hz (1/2) 0x1F, 0x00, 0x7F, 0x07, 0x1B, 0x00, 0x0E, 0x80, 0x01, 0x00, // 3840x1920 90Hz (2/2) 0x39, 0x54, 0x0F, 0x80, 0xDF, 0x13, 0x7F, 0x00, 0x3F, 0x80, // 5088x2544 75Hz (1/2) 0x1F, 0x00, 0xEF, 0x09, 0x17, 0x00, 0x0E, 0x80, 0x01, 0x00, // 5088x2544 75Hz (2/2) 0x7E, 0x00, 0x07, 0x3A, 0x02, 0x92, 0x81, 0x00, 0x08, // DSC passthrough 8bpp (vendor defined data block with VESA vendor ID) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x90, }; */ /* const uint8_t edid_testing_90Hz[256] = { 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x09, 0x27, 0x34, 0x12, 0xD2, 0x04, 0x00, 0x00, 0x02, 0x1E, 0x01, 0x04, 0xA5, 0x00, 0x00, 0x78, 0xE7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x42, 0x65, 0x79, 0x6F, 0x6E, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0D, 0x70, 0x20, 0x79, 0x07, 0x00,// DisplayID 2.0, VR HMD 0x22, 0x09, 0x3C,// Timing Type VII, 3 video timings 0x39, 0x54, 0x0F, 0x08, 0xDF, 0x13, 0x7F, 0x00, 0x3F, 0x80,// 5088x2544, 75Hz (pixel clock = 1004.601 MHz) 0x1F, 0x00, 0xEF, 0x09, 0x17, 0x00, 0x0E, 0x80, 0x01, 0x00, 0x1E, 0xF5, 0x0A, 0x88, 0xFF, 0x0E, 0xFF, 0x00, 0x3F, 0x80,// 3840x1920, 90Hz (pixel clock = 718.11 MHz) 0x1F, 0x00, 0x7F, 0x07, 0x1B, 0x00, 0x0E, 0x80, 0x01, 0x00, 0x41, 0xD8, 0x0F, 0x08, 0xDF, 0x13, 0x7F, 0x00, 0x3F, 0x80,// 5088x2184, 90Hz (pixel clock = 1038.401 MHz) 0x1F, 0x00, 0x87, 0x08, 0x1B, 0x00, 0x0E, 0x80, 0x01, 0x00, 0x7E, 0x00, 0x07, 0x3A, 0x02, 0x92, 0x81, 0x00, 0x08, 0x00,// DSC passthrough 8bpp (vendor defined data block with VESA vendor ID) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x90, }; */ const uint8_t full_edid_with_75_72_and_90[256] = { // EDID Block 0 // No timing information // MFG = BIG, Prod = 1234, Serial = 1234 // Manufacture = 2022 // Gamma = 120, R = 0.665,0.335, G = 0.232,0.695, B = 0.161,0.065, W = 0.313,0.329 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x09, 0x27, 0x34, 0x12, 0xD2, 0x04, 0x00, 0x00, 0xFF, 0x20, 0x01, 0x04, 0xA5, 0x00, 0x00, 0x78, 0x00, 0x78, 0x75, 0xAA, 0x55, 0x3B, 0xB2, 0x29, 0x10, 0x50, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x42, 0x65, 0x79, 0x6F, 0x6E, 0x64, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x01, 0x5B, 0x70, 0x20, 0x79, 0x07, 0x00, // DisplayID header 0x22, 0x09, 0x3C, // Timing structure (3 timings) 0x39, 0x54, 0x0F, 0x88, 0xDF, 0x13, 0x7F, 0x00, 0x3F, 0x80, // H:5088, V:2544, 75Hz, 0x1F, 0x00, 0xEF, 0x09, 0x17, 0x00, 0x0E, 0x80, 0x01, 0x00, 0x41, 0xB7, 0x0E, 0x08, 0xDF, 0x13, 0x7F, 0x00, 0x3F, 0x80, // H:5088, V:2544, 72Hz, 0x1F, 0x00, 0xEF, 0x09, 0x17, 0x00, 0x0E, 0x80, 0x01, 0x00, 0x1E, 0xF5, 0x0A, 0x08, 0xFF, 0x0E, 0xFF, 0x00, 0x3F, 0x80, // H:3840, V:1920, 90Hz, 0x1F, 0x00, 0x7F, 0x07, 0x1B, 0x00, 0x0E, 0x80, 0x01, 0x00, 0x7E, 0x00, 0x07, 0x3A, 0x02, 0x92, 0x81, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD2, 0x90 }; const uint8_t edid_with_color[256] = { // EDID Block 0 // No timing information // MFG = BIG, Prod = 1234, Serial = 0 // Manufacture = 2022 // Gamma = 120, R = 0.665,0.335, G = 0.232,0.695, B = 0.161,0.065, W = 0.313,0.329 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x09, 0x27, 0x34, 0x12, 0xD2, 0x04, 0x00, 0x00, 0xFF, 0x20, 0x01, 0x04, 0xA5, 0x00, 0x00, 0x78, 0x00, 0x78, 0x75, 0xAA, 0x55, 0x3B, 0xB2, 0x29, 0x10, 0x50, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x42, 0x65, 0x79, 0x6F, 0x6E, 0x64, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x01, 0x5B, // DisplayID 2.0 Block 0x70, 0x20, 0x79, 0x07, 0x00, 0x22, 0x09, 0x28, // Timing Type VII 0x39, 0x54, 0x0F, 0x88, 0xDF, 0x13, 0x7F, 0x00, 0x3F, 0x80, // 5088x2544 75Hz (marked as preferred) 0x1F, 0x00, 0xEF, 0x09, 0x17, 0x00, 0x0E, 0x80, 0x01, 0x00, 0x1E, 0xF5, 0x0A, 0x08, 0xFF, 0x0E, 0xFF, 0x00, 0x3F, 0x80, // 3840x1920 90Hz 0x1F, 0x00, 0x7F, 0x07, 0x1B, 0x00, 0x0E, 0x80, 0x01, 0x00, 0x7E, 0x00, 0x07, 0x3A, 0x02, 0x92, 0x81, 0x00, 0x08, 0x00, // DSC passthrough 8bpp (vendor defined data block with VESA vendor ID) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE1, 0x90, }; const uint8_t edid_with_90hz_only[256] = { // EDID Block 0 // No timing information // MFG = BIG, Prod = 1234, Serial = 0 // Manufacture = 2022 // Gamma = 120, R = 0.665,0.335, G = 0.232,0.695, B = 0.161,0.065, W = 0.313,0.329 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x09, 0x27, 0x34, 0x12, 0xD2, 0x04, 0x00, 0x00, 0xFF, 0x20, 0x01, 0x04, 0xA5, 0x00, 0x00, 0x78, 0x00, 0x78, 0x75, 0xAA, 0x55, 0x3B, 0xB2, 0x29, 0x10, 0x50, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x42, 0x65, 0x79, 0x6F, 0x6E, 0x64, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x01, 0x5B, // DisplayID 2.0 Block 0x70, 0x20, 0x79, 0x07, 0x00, // DisplayID 2.0 header 0x22, 0x09, 0x14, // Timing Type VII data block 0x1E, 0xF5, 0x0A, 0x88, 0xFF, 0x0E, 0xFF, 0x00, 0x3F, 0x80, // 3840x1920 at 90Hz 0x1F, 0x00, 0x7F, 0x07, 0x1B, 0x00, 0x0E, 0x80, 0x01, 0x00, // 3840x1920 at 90Hz (cont'd) 0x7E, 0x00, 0x07, 0x3A, 0x02, 0x92, 0x81, 0x00, 0x08, 0x00, // DSC passthrough 8bpp (vendor defined data block with VESA vendor ID) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x86, 0x90, }; const uint8_t edid_with_75hz_only[256] = { // EDID Block 0 // No timing information // MFG = BIG, Prod = 1234, Serial = 0 // Manufacture = 2022 // Gamma = 120, R = 0.665,0.335, G = 0.232,0.695, B = 0.161,0.065, W = 0.313,0.329 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x09, 0x27, 0x34, 0x12, 0xD2, 0x04, 0x00, 0x00, 0xFF, 0x20, 0x01, 0x04, 0xA5, 0x00, 0x00, 0x78, 0x00, 0x78, 0x75, 0xAA, 0x55, 0x3B, 0xB2, 0x29, 0x10, 0x50, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x42, 0x65, 0x79, 0x6F, 0x6E, 0x64, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x01, 0x5B, // DisplayID 2.0 Block 0x70, 0x20, 0x79, 0x07, 0x00, // DisplayID 2.0 header 0x22, 0x09, 0x14, // Timing Type VII data block 0x39, 0x54, 0x0F, 0x88, 0xDF, 0x13, 0x7F, 0x00, 0x3F, 0x80, // 5088x2544 75Hz (marked as preferred) 0x1F, 0x00, 0xEF, 0x09, 0x17, 0x00, 0x0E, 0x80, 0x01, 0x00, // 5088x2544 75Hz (cont'd) 0x7E, 0x00, 0x07, 0x3A, 0x02, 0x92, 0x81, 0x00, 0x08, 0x00, // DSC passthrough 8bpp (vendor defined data block with VESA vendor ID) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x90, }; const uint8_t edid_with_72hz_only[256] = { // EDID Block 0 // No timing information // MFG = BIG, Prod = 1234, Serial = 0 // Manufacture = 2022 // Gamma = 120, R = 0.665,0.335, G = 0.232,0.695, B = 0.161,0.065, W = 0.313,0.329 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x09, 0x27, 0x34, 0x12, 0xD2, 0x04, 0x00, 0x00, 0xFF, 0x20, 0x01, 0x04, 0xA5, 0x00, 0x00, 0x78, 0x00, 0x78, 0x75, 0xAA, 0x55, 0x3B, 0xB2, 0x29, 0x10, 0x50, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x42, 0x65, 0x79, 0x6F, 0x6E, 0x64, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x01, 0x5B, // DisplayID 2.0 Block 0x70, 0x20, 0x79, 0x07, 0x00, // DisplayID header 0x22, 0x09, 0x14, // Timing structure (1 timings) 0x41, 0xB7, 0x0E, 0x88, 0xDF, 0x13, 0x7F, 0x00, 0x3F, 0x80, // H:5088, V:2544, 72Hz, 0x1F, 0x00, 0xEF, 0x09, 0x17, 0x00, 0x0E, 0x80, 0x01, 0x00, 0x7E, 0x00, 0x07, 0x3A, 0x02, 0x92, 0x81, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCA, 0x90 }; const uint8_t edid_with_did20_no_native[256] = { 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x09, 0x27, 0x34, 0x12, 0xD2, 0x04, 0x00, 0x00, 0x02, 0x1E, 0x01, 0x04, 0xA5, 0x00, 0x00, 0x78, 0xE7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x42, 0x65, 0x79, 0x6F, 0x6E, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0D, 0x70, 0x20, 0x79, 0x00, 0x00, 0x22, 0x09, 0x14, 0x1E, 0xF5, 0x0A, 0x80, 0xFF, 0x0E, 0xFF, 0x00, 0x3F, 0x80, 0x1F, 0x00, 0x7F, 0x07, 0x1B, 0x00, 0x0E, 0x80, 0x01, 0x00, 0x7E, 0x00, 0x07, 0x3A, 0x02, 0x92, 0x81, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x95, 0x90, };