Hi all,
I get another problem about resolution change.
I would like to change to 640x480 which does not support by default in Documentation/EDID.
Then, I follow the steps below and try to generate a new 640x480.bin.
But, it seems not work. Does anyone know which step is wrong? Thanks!
*1. Get modeline setting for 640x480
$ cvt 640 480 60
# 640x480 59.38 Hz (CVT 0.31M3) hsync: 29.69 kHz; pclk: 23.75 MHz
Modeline "640x480_60.00" 23.75 640 664 720 800 480 483 487 500 -hsync +vsync
*2. Change the settings to EDID.S
HowTo
/* EDID */
#define VERSION 1
#define REVISION 3
/* Display */
#define CLOCK 23750 /* kHz */
#define XPIX 640
#define YPIX 480
#define XY_RATIO XY_RATIO_4_3
#define XBLANK 160
#define YBLANK 20
#define XOFFSET 24
#define XPULSE 56
#define YOFFSET (63+3)
#define YPULSE (63+4)
#define DPI 72
#define VFREQ 60 /* Hz */
#define TIMING_NAME "Linux XGA"
#define ESTABLISHED_TIMINGS_BITS 0x20 /* Bit 3 -> 640x480 @60 Hz */
#define HSYNC_POL 0
#define VSYNC_POL 0
#define CRC 0x96
#include "edid.S"
*3. Modify EDID checksum
$ edid-decode 640x480.bin
...
Monitor name: Linux XGA
Checksum: 0x96 (should be 0xd2)
EDID block does not conform at all!
Block has broken checksum
//Modify the correct checksum into 640x480.S and build again
$ edid-decode 640x480.bin
...
Monitor name: Linux XGA
Checksum: 0xd2
*4. Add 640x480.bin to kernel cmdline
$ cp 640x480.bin /usr/lib/firmware/edid
$ abootimg -u /dev/disk/by-partlabel/boot -c "cmdline=root=/dev/mmcblk0p10 rw rootwait console=ttyMSM0,115200n8 drm_kms_helper.edid_firmware=edid/640x480.bin"
$ reboot