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.
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
Hi!
On 12/7/06, Jon Dufresne jon.dufresne@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
On 12/7/06, Luis Correia luis.f.correia@gmail.com wrote:
Hi!
On 12/7/06, Jon Dufresne jon.dufresne@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
Hi!
On 12/7/06, Jon Dufresne jon.dufresne@gmail.com wrote:
On 12/7/06, Luis Correia luis.f.correia@gmail.com wrote:
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.
Define the PIC device twice with the proper ID's but describe only once the VGA BIOS.
Maybe then it will show up with LB.
BTW, does the board have two vga output devices? (even if one of them is a LVDS connector)
Jon
Luis
The board is slightly custom, so when I looked at it I orignally thought it had one, but I looked at the manual for the board it is based on and I see this
* Integrated Intel 855GME graphic engine with two LVDS channels
So it does indeed look like there are two outputs. I just don't have physical access to the second one.
Jon
On 12/7/06, Luis Correia luis.f.correia@gmail.com wrote:
Hi!
On 12/7/06, Jon Dufresne jon.dufresne@gmail.com wrote:
On 12/7/06, Luis Correia luis.f.correia@gmail.com wrote:
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.
Define the PIC device twice with the proper ID's but describe only once the VGA BIOS.
Maybe then it will show up with LB.
BTW, does the board have two vga output devices? (even if one of them is a LVDS connector)
Jon
Luis
Define the PIC device twice with the proper ID's but describe only once the VGA BIOS.
Maybe then it will show up with LB.
Sorry, I'm not sure exactly what you mean by this. Is ths in Config.lb or in a source file. I took a guess and I made this in the northbridge folder called i855gm_vga.c
#include <console/console.h> #include <device/device.h> #include <device/pci.h> #include <device/pci_ids.h> #include "i855gm.h"
static struct device_operations vga_ops = { .read_resources = pci_dev_read_resources, .set_resources = pci_dev_set_resources, .enable_resources = pci_dev_enable_resources, .enable = i855gm_enable, .init = 0, .scan_bus = 0, };
static struct pci_driver vga_driver0 __pci_driver = { .ops = &vga_ops, .vendor = PCI_VENDOR_ID_INTEL, /* add into pci_ids.h PCI_DEVICE_ID_INTEL_855GME_VGA */ .device = 0x3582, };
static struct pci_driver vga_driver1 __pci_driver = { .ops = &vga_ops, .vendor = PCI_VENDOR_ID_INTEL, /* add into pci_ids.h PCI_DEVICE_ID_INTEL_855GME_VGA */ .device = 0x3582, };
Just asking the dumb question. Is the 855 chip set supported? -Adam
Jon Dufresne wrote:
Define the PIC device twice with the proper ID's but describe only once the VGA BIOS.
Maybe then it will show up with LB.
Sorry, I'm not sure exactly what you mean by this. Is ths in Config.lb or in a source file. I took a guess and I made this in the northbridge folder called i855gm_vga.c
#include <console/console.h> #include <device/device.h> #include <device/pci.h> #include <device/pci_ids.h> #include "i855gm.h"
static struct device_operations vga_ops = { .read_resources = pci_dev_read_resources, .set_resources = pci_dev_set_resources, .enable_resources = pci_dev_enable_resources, .enable = i855gm_enable, .init = 0, .scan_bus = 0, };
static struct pci_driver vga_driver0 __pci_driver = { .ops = &vga_ops, .vendor = PCI_VENDOR_ID_INTEL, /* add into pci_ids.h PCI_DEVICE_ID_INTEL_855GME_VGA */ .device = 0x3582, };
static struct pci_driver vga_driver1 __pci_driver = { .ops = &vga_ops, .vendor = PCI_VENDOR_ID_INTEL, /* add into pci_ids.h PCI_DEVICE_ID_INTEL_855GME_VGA */ .device = 0x3582, };
There is an 855pm that looks incomplete, I took it and have been modifying it to work with my board which is 855gme (close but different). Are you saying there is code I need to write in the northbridge to get VGA to work beyond the guide? It is fine if I do and I will do it, I was just didn't realize there was more than what the guide mentions.
Thanks, Jon
On 12/7/06, Adam Talbot talbotx@comcast.net wrote:
Just asking the dumb question. Is the 855 chip set supported? -Adam
Jon Dufresne wrote:
Define the PIC device twice with the proper ID's but describe only once the VGA BIOS.
Maybe then it will show up with LB.
Sorry, I'm not sure exactly what you mean by this. Is ths in Config.lb or in a source file. I took a guess and I made this in the northbridge folder called i855gm_vga.c
#include <console/console.h> #include <device/device.h> #include <device/pci.h> #include <device/pci_ids.h> #include "i855gm.h"
static struct device_operations vga_ops = { .read_resources = pci_dev_read_resources, .set_resources = pci_dev_set_resources, .enable_resources = pci_dev_enable_resources, .enable = i855gm_enable, .init = 0, .scan_bus = 0, };
static struct pci_driver vga_driver0 __pci_driver = { .ops = &vga_ops, .vendor = PCI_VENDOR_ID_INTEL, /* add into pci_ids.h PCI_DEVICE_ID_INTEL_855GME_VGA */ .device = 0x3582, };
static struct pci_driver vga_driver1 __pci_driver = { .ops = &vga_ops, .vendor = PCI_VENDOR_ID_INTEL, /* add into pci_ids.h PCI_DEVICE_ID_INTEL_855GME_VGA */ .device = 0x3582, };
-- linuxbios mailing list linuxbios@linuxbios.org http://www.openbios.org/mailman/listinfo/linuxbios
I could be wrong, but I think I was the last person to work on the 855 over a year ago. I was never able to get it running. I would start with getting the system to boot using a console connection. Once that is working, move on to VGA bios support. -Adam
Jon Dufresne wrote:
There is an 855pm that looks incomplete, I took it and have been modifying it to work with my board which is 855gme (close but different). Are you saying there is code I need to write in the northbridge to get VGA to work beyond the guide? It is fine if I do and I will do it, I was just didn't realize there was more than what the guide mentions.
Thanks, Jon
On 12/7/06, Adam Talbot talbotx@comcast.net wrote:
Just asking the dumb question. Is the 855 chip set supported? -Adam
Jon Dufresne wrote:
Define the PIC device twice with the proper ID's but describe only once the VGA BIOS.
Maybe then it will show up with LB.
Sorry, I'm not sure exactly what you mean by this. Is ths in Config.lb or in a source file. I took a guess and I made this in the northbridge folder called i855gm_vga.c
#include <console/console.h> #include <device/device.h> #include <device/pci.h> #include <device/pci_ids.h> #include "i855gm.h"
static struct device_operations vga_ops = { .read_resources = pci_dev_read_resources, .set_resources = pci_dev_set_resources, .enable_resources = pci_dev_enable_resources, .enable = i855gm_enable, .init = 0, .scan_bus = 0, };
static struct pci_driver vga_driver0 __pci_driver = { .ops = &vga_ops, .vendor = PCI_VENDOR_ID_INTEL, /* add into pci_ids.h PCI_DEVICE_ID_INTEL_855GME_VGA */ .device = 0x3582, };
static struct pci_driver vga_driver1 __pci_driver = { .ops = &vga_ops, .vendor = PCI_VENDOR_ID_INTEL, /* add into pci_ids.h PCI_DEVICE_ID_INTEL_855GME_VGA */ .device = 0x3582, };
-- linuxbios mailing list linuxbios@linuxbios.org http://www.openbios.org/mailman/listinfo/linuxbios
ok, Thanks for the tip.
Right now I can get into filo, and from there direct it to a livecd, however I am guessing the livecd doesn't deliver serial output and I think it dies somewhere booting the kernel.
What should I do to watch the boot process over a serial connection?
Thanks, Jon
On 12/7/06, Adam Talbot talbotx@comcast.net wrote:
I could be wrong, but I think I was the last person to work on the 855 over a year ago. I was never able to get it running. I would start with getting the system to boot using a console connection. Once that is working, move on to VGA bios support. -Adam
Jon Dufresne wrote:
There is an 855pm that looks incomplete, I took it and have been modifying it to work with my board which is 855gme (close but different). Are you saying there is code I need to write in the northbridge to get VGA to work beyond the guide? It is fine if I do and I will do it, I was just didn't realize there was more than what the guide mentions.
Thanks, Jon
On 12/7/06, Adam Talbot talbotx@comcast.net wrote:
Just asking the dumb question. Is the 855 chip set supported? -Adam
Jon Dufresne wrote:
Define the PIC device twice with the proper ID's but describe only once the VGA BIOS.
Maybe then it will show up with LB.
Sorry, I'm not sure exactly what you mean by this. Is ths in Config.lb or in a source file. I took a guess and I made this in the northbridge folder called i855gm_vga.c
#include <console/console.h> #include <device/device.h> #include <device/pci.h> #include <device/pci_ids.h> #include "i855gm.h"
static struct device_operations vga_ops = { .read_resources = pci_dev_read_resources, .set_resources = pci_dev_set_resources, .enable_resources = pci_dev_enable_resources, .enable = i855gm_enable, .init = 0, .scan_bus = 0, };
static struct pci_driver vga_driver0 __pci_driver = { .ops = &vga_ops, .vendor = PCI_VENDOR_ID_INTEL, /* add into pci_ids.h PCI_DEVICE_ID_INTEL_855GME_VGA */ .device = 0x3582, };
static struct pci_driver vga_driver1 __pci_driver = { .ops = &vga_ops, .vendor = PCI_VENDOR_ID_INTEL, /* add into pci_ids.h PCI_DEVICE_ID_INTEL_855GME_VGA */ .device = 0x3582, };
-- linuxbios mailing list linuxbios@linuxbios.org http://www.openbios.org/mailman/listinfo/linuxbios
-- linuxbios mailing list linuxbios@linuxbios.org http://www.openbios.org/mailman/listinfo/linuxbios
If you are able to get to filo some one has done some good work on the 855... ok, live CD. You need to pass console options to the kernel on the liveCD. Something like `kernel-version console=tty0 console=ttyS0,115200` But this can be a pain as you may not have a console at this point :-). Having had this exact problem, I found an old hard drive and installed a small version of Linux, just for testing. Setup my test Linux for console redirect and never used VGA bios until I got every thing else working.
What board are you using? (web link) -Adam
Jon Dufresne wrote:
ok, Thanks for the tip.
Right now I can get into filo, and from there direct it to a livecd, however I am guessing the livecd doesn't deliver serial output and I think it dies somewhere booting the kernel.
What should I do to watch the boot process over a serial connection?
Thanks, Jon
On 12/7/06, Adam Talbot talbotx@comcast.net wrote:
I could be wrong, but I think I was the last person to work on the 855 over a year ago. I was never able to get it running. I would start with getting the system to boot using a console connection. Once that is working, move on to VGA bios support. -Adam
Jon Dufresne wrote:
There is an 855pm that looks incomplete, I took it and have been modifying it to work with my board which is 855gme (close but different). Are you saying there is code I need to write in the northbridge to get VGA to work beyond the guide? It is fine if I do and I will do it, I was just didn't realize there was more than what the guide mentions.
Thanks, Jon
On 12/7/06, Adam Talbot talbotx@comcast.net wrote:
Just asking the dumb question. Is the 855 chip set supported? -Adam
Jon Dufresne wrote:
> Define the PIC device twice with the proper ID's but describe
only
> once the VGA BIOS. > > Maybe then it will show up with LB. >
Sorry, I'm not sure exactly what you mean by this. Is ths in
Config.lb
or in a source file. I took a guess and I made this in the
northbridge
folder called i855gm_vga.c
#include <console/console.h> #include <device/device.h> #include <device/pci.h> #include <device/pci_ids.h> #include "i855gm.h"
static struct device_operations vga_ops = { .read_resources = pci_dev_read_resources, .set_resources = pci_dev_set_resources, .enable_resources = pci_dev_enable_resources, .enable = i855gm_enable, .init = 0, .scan_bus = 0, };
static struct pci_driver vga_driver0 __pci_driver = { .ops = &vga_ops, .vendor = PCI_VENDOR_ID_INTEL, /* add into pci_ids.h PCI_DEVICE_ID_INTEL_855GME_VGA */ .device = 0x3582, };
static struct pci_driver vga_driver1 __pci_driver = { .ops = &vga_ops, .vendor = PCI_VENDOR_ID_INTEL, /* add into pci_ids.h PCI_DEVICE_ID_INTEL_855GME_VGA */ .device = 0x3582, };
-- linuxbios mailing list linuxbios@linuxbios.org http://www.openbios.org/mailman/listinfo/linuxbios
-- linuxbios mailing list linuxbios@linuxbios.org http://www.openbios.org/mailman/listinfo/linuxbios