qemu/videoinit: Set required fields in fake EDID

x_resolution, y_resolution and bytes_per_line were not inited. Without them
coreboot sweared that screen is 1108630x1142817 and payload tried to draw on
such a big screen.

Change-Id: I0d0277a20c7e1976c27af4a57651ab2be0f9c5d7
Signed-off-by: Vladimir Serbinenko <phcoder@gmail.com>
Reviewed-on: http://review.coreboot.org/4535
Tested-by: build bot (Jenkins)
Reviewed-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
This commit is contained in:
Vladimir Serbinenko 2013-12-16 23:19:01 +01:00
parent 86545f7978
commit dd9945bdc7
2 changed files with 6 additions and 0 deletions

View File

@ -106,6 +106,9 @@ static void bochs_init(device_t dev)
/* setup coreboot framebuffer */ /* setup coreboot framebuffer */
edid.ha = width; edid.ha = width;
edid.va = height; edid.va = height;
edid.x_resolution = width;
edid.y_resolution = height;
edid.bytes_per_line = width * 4;
edid.bpp = 32; edid.bpp = 32;
set_vbe_mode_info_valid(&edid, addr); set_vbe_mode_info_valid(&edid, addr);
} }

View File

@ -330,6 +330,9 @@ static void cirrus_init(device_t dev)
struct edid edid; struct edid edid;
edid.ha = width; edid.ha = width;
edid.va = height; edid.va = height;
edid.x_resolution = width;
edid.y_resolution = height;
edid.bytes_per_line = width * 4;
edid.bpp = 32; edid.bpp = 32;
set_vbe_mode_info_valid(&edid, addr); set_vbe_mode_info_valid(&edid, addr);
} }