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.