Why and how cboot select different resolution with different display monitor?

Hi,

I just check the code that makes this mode selection.

There is a preferred mode list in cboot which is from 480p ~ 1080p.
The modes in list are VIC # 1,2,4,16,17,19,31,32,33,34.

You could check the detail for each mode from the wiki.
Extended Display Identification Data - Wikipedia → EIA/CEA-861 standard resolutions and timings

It will compare the modes coming from your EDID one by one. If that mode is equal to the one on the list, it will pick it and keep the one with highest frequency. If none of them is matched, then it will use default 640x480 mode (vic # 1)

  1. In your case 1, “Width = 1920, Height = 1080, freq = 148351648” matches the mode of vic #16, so cboot picks it.

  2. For case 2, 1920x1080 with pclk 148500000 frequency is not supported, so it is not chosen. But that 1280x720 one is on the list, so pick it.

  3. I don’t know what is going on on your custom carrier board. It looks like something wrong with EDID read. What modes do you see in kernel?