[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