Hi,
I'd like to replace the lenovo x60(supported by coreboot) non-free VGA option rom: I don't use it right now but that has serious drawbacks: * No graphics at all until the i915 kernel module is loaded (really user unfriendly), my main motivation to replace it... * No backlight control * nvramtool doesn't work anymore without using the -y option (not really important).
I've created stub in SeaBIOS(there is an attached patch for that) for the i915 driver(it will be filled in later), however I don't know how to run the code: * I guess it creates an option rom that is in out/vgabios.bin and that I've to include it trough one of the various ways(let seabios pick it, run it in coreboot, run it in coreboot trough YABEL for debugging etc...)? right? romheaders seem to think that the option rom is valid(more on it later). I guess YABEL also thinks it's valid. I guess SeaBIOS out/bios.bin.elf doesn't link that option rom inside SeaBIOS... * it doesn't print a thing, I've CONFIG_DEBUG_LEVEL=2 and there is the following in the driver stub: dprintf(1, "i915vga_setup: VGA init...\n");
So I've tried the YABEL way with debugging enabled and here's the result: [...] Normal boot. PCI: 00:02.0 init CBFS: Looking for 'pci8086,27a2.rom' starting from 0x0. CBFS: (unmatched file @0x0: cmos_layout.bin) CBFS: (unmatched file @0x640: fallback/romstage) CBFS: (unmatched file @0xb500: fallback/coreboot_ram) CBFS: (unmatched file @0x2d200: fallback/payload) CBFS: (unmatched file @0x39a80: config) CBFS: (unmatched file @0x3a9c0: ) CBFS: (unmatched file @0x3ff80: normal/romstage) CBFS: (unmatched file @0x4ae80: normal/coreboot_ram) CBFS: (unmatched file @0x6cb80: normal/payload) CBFS: Found file (offset=0x79af8, len=33280). In CBFS, ROM address for PCI: 00:02.0 = ffe79af8 PCI expansion ROM, signature 0xaa55, INIT size 0x8200, data ptr 0x4930 PCI ROM image, vendor ID 8086, device ID 27a2, PCI ROM image, Class Code 030000, Code Type 00 Copying VGA ROM Image from ffe79af8 to 0xc0000, 0x8200 bytes [long wait] PCI: 00:02.1 init CBFS: Looking for 'cmos_layout.bin' starting from 0x0. CBFS: Found file (offset=0x28, len=1560). PCI: 00:1b.0 init [...]
It doesn't seem to print a thing...and YABEL is pretty silent and should really not be that silent according to the YABEL debug options: CONFIG_X86EMU_DEBUG=y CONFIG_X86EMU_DEBUG_JMP=y # CONFIG_X86EMU_DEBUG_TRACE is not set CONFIG_X86EMU_DEBUG_PNP=y CONFIG_X86EMU_DEBUG_DISK=y CONFIG_X86EMU_DEBUG_PMM=y CONFIG_X86EMU_DEBUG_VBE=y CONFIG_X86EMU_DEBUG_INT10=y CONFIG_X86EMU_DEBUG_INTERRUPTS=y CONFIG_X86EMU_DEBUG_CHECK_VMEM_ACCESS=y CONFIG_X86EMU_DEBUG_MEM=y CONFIG_X86EMU_DEBUG_IO=y
Denis.
Hi,
On Thu, Feb 21, 2013 at 02:01:34PM +0100, Denis 'GNUtoo' Carikli wrote:
I've created stub in SeaBIOS(there is an attached patch for that) for the i915 driver(it will be filled in later), however I don't know how to run the code:
- I guess it creates an option rom that is in out/vgabios.bin and that I've to include it trough one of the various ways(let seabios pick it, run it in coreboot, run it in coreboot trough YABEL for debugging etc...)? right? romheaders seem to think that the option rom is valid(more on it later). I guess YABEL also thinks it's valid. I guess SeaBIOS out/bios.bin.elf doesn't link that option rom inside SeaBIOS...
All correct.
- it doesn't print a thing, I've CONFIG_DEBUG_LEVEL=2 and there is the following in the driver stub: dprintf(1, "i915vga_setup: VGA init...\n");
Did you select CONFIG_COREBOOT and CONFIG_SERIAL_DEBUG in SeaBIOS Kconfig?
The code you sent calls stdvga_setup() - that touches a bunch of legacy VGA IO ports - are you sure the i915 has those ports?
-Kevin
On Thu, 21 Feb 2013 08:49:23 -0500 Kevin O'Connor kevin@koconnor.net wrote:
Hi,
Hi,
I've created stub in SeaBIOS(there is an attached patch for that) for the i915 driver(it will be filled in later), however I don't know how to run the code:
- I guess it creates an option rom that is in out/vgabios.bin and
that I've to include it trough one of the various ways(let seabios pick it, run it in coreboot, run it in coreboot trough YABEL for debugging etc...)? right? romheaders seem to think that the option rom is valid(more on it later). I guess YABEL also thinks it's valid. I guess SeaBIOS out/bios.bin.elf doesn't link that option rom inside SeaBIOS...
All correct.
Thanks a lot
- it doesn't print a thing, I've CONFIG_DEBUG_LEVEL=2 and there is
the following in the driver stub: dprintf(1, "i915vga_setup: VGA init...\n");
I've corrected the code... it lacked a header...
Did you select CONFIG_COREBOOT and CONFIG_SERIAL_DEBUG in SeaBIOS Kconfig?
Yes
The code you sent calls stdvga_setup() - that touches a bunch of legacy VGA IO ports - are you sure the i915 has those ports?
I'm not sure, I'm just getting started
I've made my option rom loaded by seabios instead of coreboot(which is safer because I use a fallback mecanism in coreboot) and it printed on Serial: $ tail -f seriallog-20130221_153155.log | grep i915 00.485: i915vga_setup: VGA init...
Thanks a lot for the pointers...
Denis.