Using 2.4.0
modprobe agpgart.o
/var/log/messages says
>Jan 10 14:11:56 x kernel: Linux agpgart interface v0.99 (c) Jeff
> Hartmann
> Jan 10 14:11:56 x kernel: agpgart: Maximum main memory to use for
> agp memory: 439M
> Jan 10 14:11:56 x kernel: agpgart: agpgart: Detected an Intel
> i815, but could not find the secondary device.
lspci says
> 00:00.0 Host bridge: Intel Corporation: Unknown device 1130 (rev 02)
> 00:01.0 PCI bridge: Intel Corporation: Unknown device 1131 (rev 02)
> 00:1e.0 PCI bridge: Intel Corporation: Unknown device 244e (rev 02)
> 00:1f.0 ISA bridge: Intel Corporation: Unknown device 2440 (rev 02)
> ...
http://www.datashopper.dk/~finth/pci.html says
> 1130h 82815 i815 (Solano) Host to Hub Bridge (Fully featured chipset)
> 1131h 82815 i815 (Solano) PCI to AGP Bridge
> 1132h 82815 i815 (Solano) Interal GUI Accelerator
I take it "Interal GUI Accelerator" is a built in graphics card (that I
don't have)
/usr/src/linux/drivers/char/agp/agp.h says (amongst other things)
> #define PCI_DEVICE_ID_INTEL_815_0 0x1130
> ...
> #define PCI_DEVICE_ID_INTEL_815_1 0x1132
/usr/src/linux/drivers/char/agp/agpgart_be.c says
> case PCI_DEVICE_ID_INTEL_815_0:
> /* The i815 can operate either as an i810 style
> * integrated device, or as an AGP4X motherboard.
> *
> * This only addresses the first mode:
> */
>
> i810_dev = pci_find_device(PCI_VENDOR_ID_INTEL,
> PCI_DEVICE_ID_INTEL_815_1,
> NULL);
It is this call that is failing and causing the error message.
Questions:
Why don't the PCI ids match in aph.h and lspci? Which one is right?
Is my i815 acting as a "AGP4X motherboard"?
If so does anyone have any suggestions as to how I get it to work?
My BIOS doesn't have many settings for jiggering around with the AGP
stuff, although it does say "AGP 4x" in big letters.
When I alter agp.h to have the "right" PCI id, then /var/log/messages
says:
> Jan 10 14:25:45 x kernel: Linux agpgart interface v0.99 (c) Jeff
> Hartmann
>Jan 10 14:25:45 x kernel: agpgart: Maximum main memory to use for
> agp memory: 439M
> Jan 10 14:25:45 x kernel: agpgart: agpgart: Detected an Intel
> i815 Chipset.
> Jan 10 14:25:45 x kernel: agpgart: i810 is disabled
> Jan 10 14:25:45 x kernel: agpgart: unable to detrimine aperture
> size.
The nasty bit in this case is:
> pci_read_config_dword(agp_bridge.dev, I810_SMRAM_MISCC, &smram_miscc);
>
> if ((smram_miscc & I810_GMS) == I810_GMS_DISABLE) {
> printk(KERN_WARNING PFX "i810 is disabled\n");
> return 0;
> }
smram_miscc comes out as 0xa82800c whereas I810_GMS is 0xc0
This made me think that my i815 is *not* "acting like an i810" but I
carried on bodging anyway.
I'm pretty sure my AGP aperture size is 64Mb (that's what the BIOS reckons
anyway) so I commented out the GMS check, so that intel_i810_fetch_size
would return 64Mb.
after modprobe agpgart I got a *lot* of messages like
> Jan 10 14:37:31 x kernel: io mapaddr 0x1fff4 not valid at
> agpgart_be.c:898!
> Jan 10 14:37:31 x kernel: io mapaddr 0x1fff8 not valid at
>agpgart_be.c:898!
> Jan 10 14:37:31 x kernel: io mapaddr 0x1fffc not valid at
> agpgart_be.c:89
line 898 does an OUTREG32 on some i810 private registers, which (I think)
is more evidence that my chipset is not acting like an i810.
Then the (rather worrying)
> Jan 10 14:37:31 x kernel: agpgart: AGP aperture is 64M @ 0x0
So far so bad. I then insmodded my Nvidia module and started X
> Jan 10 14:38:30 herschel kernel: NVRM: Intel i810 AGP chipset
> Jan 10 14:38:30 herschel kernel: mtrr: type mismatch for 0000,4000000
> old: write-back new: write-combining
> Jan 10 14:38:30 herschel kernel: NVRM: error: unable to set mtrr
> write-combining
> Jan 10 14:38:30 herschel kernel: NVRM: error: unable to remap aperture
Which isn't very good, although X actually did run and didn't hose my
machine, as I was half expecting.
Does anyone have any idea what is going on?
Charlie - Queens' College - Cavendish Astrophysics - 07866 636318
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/