Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Workaround for AGP + Intel Q45



On Monday 09 February 2009 07:42:53 Arnaud Lacombe wrote:
>        In any case, I think I screwed things up by setting
> AGP_G4X_MSAC to 0x64, I think it should be 0x60, but I'm not sure
> unless I find a datasheet explicitly saying this. I used 0x64 because
> a of comment in the original FreeBSD code saying that G45 were like
> G965. On G965, MSAC is at offset 0x66 (ie. 0x64 to have aligned PCI
> access). But the G965 data sheet is not coherent as the default value
> is 0x02 which is an illegal programming...
>
> So definitively, I am missing something... :(

I'm also leaning toward the MSAC being 0x60, though I also can't find a 
definitive answer.

Certainly this patch:

Index: agp_i810.c
===================================================================
RCS file: /cvsroot/src/sys/dev/pci/agp_i810.c,v
retrieving revision 1.62
diff -u -r1.62 agp_i810.c
--- agp_i810.c  27 Jan 2009 08:39:34 -0000      1.62
+++ agp_i810.c  9 Feb 2009 11:06:18 -0000
@@ -705,6 +705,7 @@
                break;
        case CHIP_I915:
        case CHIP_G33:
+       case CHIP_G4X:
                reg = pci_conf_read(sc->as_pc, sc->as_tag, AGP_I915_MSAC);
                msac = (u_int16_t)(reg >> 16);
                if (msac & AGP_I915_MSAC_APER_128M)
@@ -715,7 +716,7 @@
        case CHIP_I965:
                size = 512 * 1024 * 1024;
                break;
-       case CHIP_G4X:
+       /* case CHIP_G4X:
                reg = pci_conf_read(sc->as_pc, sc->as_tag, AGP_G4X_MSAC);
                msac = (u_int16_t)(reg >> 16);
                switch (msac & AGP_G4X_MSAC_MASK) {
@@ -724,7 +725,7 @@
                case AGP_G4X_MSAC_APER_512M:
                        size = 512 * 1024 * 1024;
                }
-               break;
+               break; */
        default:
                aprint_error(": Unknown chipset\n");
        }


gets me a system that works better (get a non zero aperture returned and X 
works for screens bigger than 1280x1024).

cheers
mark


Home | Main Index | Thread Index | Old Index