---------- Forwarded message ----------
From: Elia Yehuda <z4ziggy@gmail.com>
Date: Fri, Nov 7, 2008 at 3:19 AM
Subject: Re: [coreboot] fixing i810 onboard vga
To: Joseph Smith <joe@settoplinux.org>


many thanks Joseph!

you sure have found the problem in the code (without even looking... remarkable).

i sure had the "CONFIG_VIDEO_MB=8" to my targets' Config.lb which was being ignored...
so i've added the following (elementary) patch to coreboot-v2/src/northbridge/intel/i82810/northbridge.c :

Index: northbridge.c
===================================================================
--- northbridge.c    (revision 3698)
+++ northbridge.c    (working copy)
@@ -149,6 +149,16 @@
         drp_value = drp_value >> 4;    // >>= 4; //? mess with later
         tomk += (unsigned long)(translate_i82810_to_mb[drp_value]);
 
+#ifdef CONFIG_VIDEO_MB
+        /* check for VGA reserved memory */
+        if (CONFIG_VIDEO_MB == 512) {
+            /* FIXME: we round up the 1/2mb to 1 */
+            tomk -= 1;
+        } else {
+            tomk -= CONFIG_VIDEO_MB;
+        }
+#endif
+
         printk_debug("Setting RAM size to %d MB\n", tomk);
 
         /* Convert tomk from MB to KB. */



the boot now works, but still no onboard-vga. ive noticed in pci_rom_probe() the dev->rom_address of the vga pci card is 0 (zero)! although i have the following in the mainboard/manu/type/Config.lb :
...
    device pci 1.0 on                # Onboard video
       chip drivers/pci/onboard
         device pci 1.0 on end
         register "rom_address" = "0xfffc0000"
       end
    end
...


this is according to the lspci output from the machine using the original bios :
...
00:01.0 VGA compatible controller: Intel Corporation 82810E DC-133 (CGC) Chipset Graphics Controller (rev 03)
...


so im trying to find out why dev->rom_address is being set to 0.
the fallback/static.c shows clearly that the rom address is being set in the proper device structure :
...
struct drivers_pci_onboard_config drivers_pci_onboard_info_9    = {
        .rom_address = 0xfffc0000,
};
...


so any clues on the matter will be appreciated.

Regards,
Elia Yehuda.


On Fri, Nov 7, 2008 at 1:08 AM, Joseph Smith <joe@settoplinux.org> wrote:



On Thu, 6 Nov 2008 20:38:31 +0200, "Elia Yehuda" <z4ziggy@gmail.com> wrote:
> Hey all,
>
> im working at the on the i810, trying to fix the onboard-vga to work.
>
> removing the commented code of the vga-related stuff resulted with the
pci
> device to be displayed in the pci list on coreboot, but in a disabled
> state,
> and (as promised...) with the boot not executing the payload. complete
log
> can be shown here : http://pastebin.com/m20e821eb
>
> a few rough patches to my target and i82810/raminit.c and now the device
> is
> shown as enabled and i even get the information about the VGA allocating
> resources :
>
> Allocating VGA resource PCI: 00:01.0
> Setting PCI_BRIDGE_CTL_VGA for bridge PCI_DOMAIN: 0000
> Setting PCI_BRIDGE_CTL_VGA for bridge Root Device
>
> but the payload still wont execute (it is seems to be loaded though) and
> ofcourse, no VGA output, only serial, with a dead boot hanging...
> complete log can be shown here : http://pastebin.com/m248a41ea
>
I had this problem on the i830. You need to allocate vga memory for the
onboard vga (northbridge.c if I remember correctly). The vga memory should
be allocated to the TOM. So your total system memory actually equals
phisical memory - vga memory. It should be close to the i830, take a look
at that and compare it to the i810 datasheet. Hope that helps.

--
Thanks,
Joseph Smith
Set-Top-Linux
www.settoplinux.org