> Ah, okay. So at least the approach to use the Uninorth code was a step in > the right direction. But that requires changes in the DRI and X server code, > right?
Not you shouldn't... there are 2 different things here. One is how you access the GART table itself. One is how you access the AGP memory (the memory that is bound to the GART). I'm not 100% sure what of the 2 above cases triggered an error with ioremap, I'm not sure what approach should be used, because i don't know what your chipset does. I would need more infos about the hw there. But the basic idea is: - For the GART table, you don't need to ioremap it (which is generally a way to have it non-cacheable I suppose). You can just flush cache entries after populating them (see uninorth_insert_memory(), it flushes first the pages that are being inserted in the GART as AGP memory is not cacheable neither, and at the end of the function, flushes the GART entry proper). - The AGP aperture itself. The main issue there is wether your chipset makes the AGP aperture visible to the CPU or not. The Apple UniNorth one doesn't for example, it;'s only visible to the graphic chip. That is why the uninorth driver sets cant_use_aperture to 1. That forces the DRM to generate AGP mappings by using the real memory pages and putting them together into a virtual mapping instead of doing a direct mapping of the AGP aperture on the bus. Most x86 chipsets however _can_, thus a simple remapping of pages is enough. Ben. -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]