[coreboot] [i915] Screen corruptions
Denis 'GNUtoo' Carikli
GNUtoo at no-log.org
Mon Apr 15 04:52:09 CEST 2013
Hi,
I'm still working on replacing the i915 option rom.
The current code is here:
http://review.coreboot.org/#/c/2998/
At the time of writing the Patch Set is the 5th.
The status is the following:
* I can set the screen color in coreboot.
* During the boot, the screen is corrupted multiples times:
-> the first time it is corrupted here:
src/southbridge/intel/i82801gx/smi.c:
void smm_setup_structures(void *gnvs, void *tcg, void *smi1)
{
/* The GDT or coreboot table is going to live here. But a long time
* after we relocated the GNVS, so this is not troublesome.
*/
*(u32 *)0x500 = (u32)gnvs;
*(u32 *)0x504 = (u32)tcg;
*(u32 *)0x508 = (u32)smi1;
outb(0xea, 0xb2);
}
more precisely, before the outb it's totally red(an arbitrary color I
chose in order to distinguish it from corruptions), and after there is
a line in the middle of the screen that is not red.
That function is called by new_high_table_pointer =
write_acpi_tables(high_table_pointer) in
src/mainboard/lenovo/x60/acpi_tables.c
which is called by lb_mem = write_tables(); in hardwaremain().
acpi_tables.c has a strange comment:
/* Fix up global NVS region for SMI handler. The GNVS region lives
* in the (high) table area. The low memory map looks like this:
[...]
* 0x000a0000 - 0x000bffff VGA memory
* 0x000c0000 - 0x000cffff VGA option rom
[...]
Maybe it's related?
Then the next corruptions happen in SeaBIOS, I didn't investigate them
yet...
Denis.
More information about the coreboot
mailing list