MiSTer-devel / Main_MiSTer

Main MiSTer binary and Wiki
GNU General Public License v3.0
3.01k stars 323 forks source link

EDID data block isn't reading correctly #642

Open c0d3h4x0r opened 2 years ago

c0d3h4x0r commented 2 years ago

My setup: MiSTer >> 4K HDMI 2.0b switch >> 8K HDMI 2.1 switch >> ONKYO TX-NR6100 AVR >> VIZIO P65QX-H1 4K LCD TV

All other devices connected through the same series of devices are able to correctly detect the full capabilities of my display. But MiSTer (with video_mode not set anywhere in the .ini file) does not.

Output of MiSTer when starting up with the above configuration follows. Note the EDID data block is erroneously determined to be all zeroes.

Also worth noting: all of this appears to happen long before the AVR and TV achieve sync and display an image. Is it possible the request for the EDID data block is happening too early in the sequence, before the devices are ready to send back a correct response?

root@MiSTer:/media/fat>MiSTer

Minimig by Dennis van Weeren
ARM Controller by Jakub Bednarski
MiSTer code by Sorgelig

Version 220529

Looking for root device...
Using SD card as a root device
Identified 8BIT core*** Found SDRAM config: 3
Core name is "MENU"
** altcfg: no cfg
INI_PARSER : Start INI parser for core "MENU"(MENU), video mode "0x0@0.0".
INI_PARSER : Opened file MiSTer.ini with size 11580 bytes.
INI_PARSER : line(0): "[MiSTer]".
INI_PARSER : Got SECTION 'MiSTer'
INI_PARSER : line(1): "key_menu_as_rgui=0".
INI_PARSER : Got VAR 'key_menu_as_rgui' with VALUE 0
INI_PARSER : line(1): "forced_scandoubler=0".
INI_PARSER : Got VAR 'forced_scandoubler' with VALUE 0
INI_PARSER : line(1): "ypbpr=0".
INI_PARSER : Got VAR 'ypbpr' with VALUE 0
INI_PARSER : line(1): "composite_sync=0".
INI_PARSER : Got VAR 'composite_sync' with VALUE 0
INI_PARSER : line(1): "vga_scaler=0".
INI_PARSER : Got VAR 'vga_scaler' with VALUE 0
INI_PARSER : line(1): "hdmi_audio_96k=0".
INI_PARSER : Got VAR 'hdmi_audio_96k' with VALUE 0
INI_PARSER : line(1): "keyrah_mode=0x18d80002".
INI_PARSER : Got VAR 'keyrah_mode' with VALUE 0x18d80002
INI_PARSER : line(1): "vscale_mode=4".
INI_PARSER : Got VAR 'vscale_mode' with VALUE 4
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "vscale_border=0".
INI_PARSER : Got VAR 'vscale_border' with VALUE 0
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "rbf_hide_datecode=0".
INI_PARSER : Got VAR 'rbf_hide_datecode' with VALUE 0
INI_PARSER : line(1): "menu_pal=0".
INI_PARSER : Got VAR 'menu_pal' with VALUE 0
INI_PARSER : line(1): "hdmi_limited=0".
INI_PARSER : Got VAR 'hdmi_limited' with VALUE 0
INI_PARSER : line(1): "".
INI_PARSER : line(1): "direct_video=0".
INI_PARSER : Got VAR 'direct_video' with VALUE 0
INI_PARSER : line(1): "fb_size=2".
INI_PARSER : Got VAR 'fb_size' with VALUE 2
INI_PARSER : line(1): "fb_terminal=1".
INI_PARSER : Got VAR 'fb_terminal' with VALUE 1
INI_PARSER : line(1): "osd_timeout=30".
INI_PARSER : Got VAR 'osd_timeout' with VALUE 30
INI_PARSER : line(1): "".
INI_PARSER : line(1): "osd_rotate=0".
INI_PARSER : Got VAR 'osd_rotate' with VALUE 0
INI_PARSER : line(1): "vga_sog=0".
INI_PARSER : Got VAR 'vga_sog' with VALUE 0
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "recents=0".
INI_PARSER : Got VAR 'recents' with VALUE 0
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "font=font/myfont.pf".
INI_PARSER : Got VAR 'font' with VALUE font/myfont.pf
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "reset_combo=2".
INI_PARSER : Got VAR 'reset_combo' with VALUE 2
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "video_info=0".
INI_PARSER : Got VAR 'video_info' with VALUE 0
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "vsync_adjust=0".
INI_PARSER : Got VAR 'vsync_adjust' with VALUE 0
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "refresh_min=0".
INI_PARSER : Got VAR 'refresh_min' with VALUE 0
INI_PARSER : line(1): "refresh_max=0".
INI_PARSER : Got VAR 'refresh_max' with VALUE 0
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "controller_info=5".
INI_PARSER : Got VAR 'controller_info' with VALUE 5
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "jamma_vid=0x04D8".
INI_PARSER : Got VAR 'jamma_vid' with VALUE 0x04D8
INI_PARSER : line(1): "jamma_pid=0xF3AD".
INI_PARSER : Got VAR 'jamma_pid' with VALUE 0xF3AD
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "sniper_mode=0".
INI_PARSER : Got VAR 'sniper_mode' with VALUE 0
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "browse_expand=0".
INI_PARSER : Got VAR 'browse_expand' with VALUE 0
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "logo=0".
INI_PARSER : Got VAR 'logo' with VALUE 0
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "shared_folder=".
INI_PARSER : Got VAR 'shared_folder' with VALUE
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "afilter_default=Arcade LPF/Arcade LPF 4khz 1st.txt".
INI_PARSER : Got VAR 'afilter_default' with VALUE Arcade LPF/Arcade LPF 4khz 1st.txt
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "gamepad_defaults=0".
INI_PARSER : Got VAR 'gamepad_defaults' with VALUE 0
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "log_file_entry=0".
INI_PARSER : Got VAR 'log_file_entry' with VALUE 0
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "bt_auto_disconnect=5".
INI_PARSER : Got VAR 'bt_auto_disconnect' with VALUE 5
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "bt_reset_before_pair=1".
INI_PARSER : Got VAR 'bt_reset_before_pair' with VALUE 1
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "".
INI_PARSER : line(1): "hdmi_game_mode=1".
INI_PARSER : Got VAR 'hdmi_game_mode' with VALUE 1
INI_PARSER : line(1): "".
INI_PARSER : line(1): "[Minimig]".
INI_PARSER : line(0): "menu_pal=1".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "[PSX]".
INI_PARSER : line(0): "vscale_mode=1".
INI_PARSER : line(0): "".
get cfgstring 0 = MENU
get cfgstring 1 = UART31250,MIDI
Got UART speeds: 31250 0 0 0 0 0 0 0 0 0
Got MIDI speeds: 31250 0 0 0 0 0 0 0 0 0
get cfgstring 2 = V,v220413
get cfgstring 3 = NULL

// Status Bit Map:
//              Upper                          Lower
// 0         1         2         3          4         5         6
// 01234567890123456789012345678901 23456789012345678901234567890123
// 0123456789ABCDEFGHIJKLMNOPQRSTUV 0123456789ABCDEFGHIJKLMNOPQRSTUV
// X

Opened /dev/i2c-1 for device 0x39
Opened /dev/i2c-1 for device 0x3F
EDID:
0000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
00a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
00b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
00c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
00d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
00e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
00f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
Invalid EDID: incorrect header.
Error parsing video_mode parameter:
Calculate PLL for 74.2500 MHz:
Fvco=445.500000, C=6, M=8, K=0.910000(3908420239) -> Fpix=74.250000
Error parsing video_mode parameter:
Calculate PLL for 74.2500 MHz:
Fvco=445.500000, C=6, M=8, K=0.910000(3908420239) -> Fpix=74.250000
Error parsing video_mode parameter:
Calculate PLL for 74.2500 MHz:
Fvco=445.500000, C=6, M=8, K=0.910000(3908420239) -> Fpix=74.250000
FileOpenEx(open) File:/media/fat/config/MENU_gamma.cfg, error: No such file or directory.
FileOpenEx(open) File:/media/fat/config/MENU_scaler.cfg, error: No such file or directory.
Filter '', phases: 0 adaptive: false
Filter '', phases: 0 adaptive: false
Filter '', phases: 0 adaptive: false
video_set_filter: flt_flags=7
Filter '', phases: 0 adaptive: false
Send HDMI parameters:
video: 1280(1280), 110(110), 40(40), 220(220), 720(720), 5(5), 5(5), 20(20), -hsync, -vsync

PLL: 0x4, 0x404, 0x3, 0x10000, 0x5, 0x303, 0x9, 0x2, 0x8, 0x7, 0x7, 0xE8F5C28F, Fpix=74.250000
Opened /dev/i2c-1 for device 0x39
FileOpenEx(open) File:/media/fat/config/MENU_shmask.cfg, error: No such file or directory.
FileOpenEx(open) File:/media/fat/font/myfont.pf, error: No such file or directory.
FileOpenEx(open) File:/media/fat/config/MENU_afilter.cfg, error: No such file or directory.

Loading audio filter: filters_audio/Arcade LPF/Arcade LPF 4khz 1st.txt
version: v1
got 1 values: 7056000
got 1 values: 1.54803e-06
  -> converted to: 851040
got 1 values: 3
got 1 values: 3
got 1 values: 1
got 1 values: -2.97126
  -> converted to: -6231182
got 1 values: 2.94292
  -> converted to: 6171753
got 1 values: -0.971661
  -> converted to: -2037720
sending keymap: 0
Loading config MENU.CFG
Found config:
0000: 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
Logo = 0x569850
** altcfg: no cfg
FileOpenEx(open) File:/media/fat/config/uartmode.MENU, error: No such file or directory.
FileOpenEx(open) File:/media/fat/config/uartspeed.MENU, error: No such file or directory.
UART bauds: 31250/31250/31250
ttyS1: 31250
ttyS1: 31250
Open up to 30 input devices.
make_unique(289B,0057,-1)
make_unique(0E8F,3013,1)
make_unique(16C0,05E1,1)
make_unique(045E,02A1,1)
make_unique(8282,3201,1)
make_unique(1209,FACA,1)
opened 0( 0): /dev/input/event1 (045e:028e) 0 "usb-ffb40000.usb-1.6/input0" "Microsoft X-Box 360 pad"
opened 1( 1): /dev/input/event0 (045e:028e) 0 "usb-ffb40000.usb-1.5/input0" "Microsoft X-Box 360 pad"
pFileExt = (null)
Start to scan dir: /media/fat/
Position on item:
Got 6 dir entries
*** Got SDRAM module type: 7
INFO: Video resolution: 529 x 240, fHorz = 15.7KHz, fVert = 59.8Hz, fPix = 10.00MHz
INFO: Frame time (100MHz counter): VGA = 1671559, HDMI = 1666665
INFO: AR = 0:0, fb_en = 0, fb_width = 0, fb_height = 0
c0d3h4x0r commented 2 years ago

Note: this still happens even with the latest unstable build: https://github.com/MiSTer-unstable-nightlies/Main_MiSTer/releases/download/unstable-builds/MiSTer_unstable_20220608_212ba2

sorgelig commented 2 years ago

You have a complicated connection, so it's hard to tell why. Just use a predefined video mode. MiSTer won't output 4K video anyway. Auto-detection will simply see default resolution over 2048x1536 and will use predefined 1920x1080.