[LinuxBIOS] vga bios troubles

Jon Dufresne jon.dufresne at gmail.com
Thu Dec 7 16:42:58 CET 2006


On 12/7/06, Luis Correia <luis.f.correia at gmail.com> wrote:
> Hi!
>
> On 12/7/06, Jon Dufresne <jon.dufresne at gmail.com> wrote:
> > I followed the guide at this site http://linuxbios.org/VGA_support to
> > get my onboard video to work. I have yet to be successful.
> >
> > I am a little confused about the Config.lb section. This is what the guid says:
> >
> > device pci 9.0 on  # PCI
> >         chip drivers/pci/onboard
> >                 device pci 9.0 on end
> >                 register "rom_address" = "0xfff80000" #512k image
> >         end
> > end
> >
> > I don't get why you list the "device pci 9.0" twice. I tried that and
> > when I did my vga device never got the driver from onboard.c, instead
> > it would always get the generic pci driver. So I changed it to only
> > include the device below the chip line. This is what my Config.lb
> > looks like
> >
> > chip northbridge/intel/i855gm
> >         chip cpu/intel/socket_mPGA479M
> >                 device apic 0 on end
> >         end
> >         device pci_domain 0 on
> >                 device pci 0.0 on end # host bridge
> >                 device pci 0.1 on end # memory configuration
> >                 device pci 0.3 on end # process configuration
> >                 device pci 1.0 on end
> >
> >                 chip drivers/pci/onboard
> >                         device pci 2.0 on end # vga controller
> >                         register "rom_address" = "0xfff80000" #512k image
> >                 end
> >
> >                 chip southbridge/intel/i82801dbm
> >                         chip superio/ite/it8712f end
> >                 end
> >         end
> > end
> >
> > One thing that is also strange is that when I run "lspci" in a working
> > environment I see two vga devices one at 0:2.0 and one at 0:2.1, I
> > tried listing both but LB complained that I had a leftover static
> > device at 0:2.1, it appears that only one of these devices is visible
> > at boot.
>
> Maybe it is the second head that is visible from PCI but
> un-implemented by hardware.
>
>
> >
> > So I continued with the code above, and in the debug output I can see
> > where linuxbios attempts to run the proprietary vga bios. I see:
> >
> > PCI: 00:02.0 init
> > rom address for PCI: 00:02.0 = fff80000
> > PCI Expansion ROM, signature 0xaa55, INIT size 0xc800, data ptr 0x0040
> > PCI ROM Image, Vendor 8086, Device 3582,
> > PCI ROM Image,  Class Code 030000, Code Type 00
> > copying VGA ROM Image from 0xfff80000 to 0xc0000, 0xc800 bytes
> > entering emulator
> >
> > Now, 0xC0000 is controlled by my PAM registers, so I took my best
> > guess and set it read/write to SDRAM. When I do this LB stays inside
> > the emulator for a while and eventually kicks out with this message:
> >
> > halt_sys: file /root/LinuxBIOSv2/src/devices/emulator/x86emu/ops.c, line 4387
> >
> > I never see anything on my monitor. I looked at the ops.c file but
> > couldn't figure out what was going on. I have been fooling around with
> > this for quite some time, changing every little thing I can think of,
> > but no luck.
> >
> > My northbridge is an Intel 855 gme, I used the perl script to extract
> > the vga bios which is 50KiB, I subtracted that size from the ROM_SIZE,
> > and I concatenated it with the linuxBIOS.
> >
> > Anyone have an idea how to fix this?
> >
> > Thanks,
> > Jon
>
> Luis
>

That makes sense, because many of the registers are documented the
same including the exact same VID/DID. However, I don't understand why
this shows up with an lspci but not with linuxbios. This could just be
a peculiarity of pci that I don't understand.

Jon




More information about the coreboot mailing list