(EE) intel(0): Non-contiguous GTT entries: (6295552,0x163ffbe000) vs (131072,0x 3f820000) ^ Greater than 32 bits... (ok, a 32bit processor can do this math, but it is an interesting result given the code)
The code operates using the uint64_t type, however on anything but G33 class and 965 HW, the page table bits which correspond to an address space > 32bits are masked out. Something "strange" is going on with the above message. By my reading of the code, this shouldn't happen if you've got a 945GM
This commit looks generally interesting...
commit f3168e3b0c5664a322ca6bb1c81fc94844cb30ab
Author: Eric Anholt <email address hidden>
Date: Wed May 2 14:08:30 2007 -0700
Disable non-working GTT decoding on i830, and fix map/unmap of GTT.
Specifically the latter part, which adds these lines (I'm ignoring the 830 changes since this bug is hitting 945 hardware):
+ /* Need MMIO mapped to do GTT lookups during memory allocation. */
+ I830MapMMIO(pScrn);
+
#if defined(XF86DRI)
/*
* If DRI is potentially usable, check if there is enough memory available
@@ -2419,6 +2434,8 @@ I830ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) allocation_done = TRUE;
}
Jamie.. 32bit or 64bit?
(EE) intel(0): Non-contiguous GTT entries: (6295552, 0x163ffbe000) vs (131072,0x 3f820000)
^ Greater than 32 bits... (ok, a 32bit processor can do this math, but it is an interesting result given the code)
The code operates using the uint64_t type, however on anything but G33 class and 965 HW, the page table bits which correspond to an address space > 32bits are masked out. Something "strange" is going on with the above message. By my reading of the code, this shouldn't happen if you've got a 945GM
This commit looks generally interesting...
commit f3168e3b0c5664a 322ca6bb1c81fc9 4844cb30ab
Author: Eric Anholt <email address hidden>
Date: Wed May 2 14:08:30 2007 -0700
Disable non-working GTT decoding on i830, and fix map/unmap of GTT.
Specifically the latter part, which adds these lines (I'm ignoring the 830 changes since this bug is hitting 945 hardware):
@@ -584,6 +587,15 @@ I830UnmapMMIO( ScrnInfoPtr pScrn) dMem(pScrn- >scrnIndex, (pointer) pI830->MMIOBase,
I810_ REG_SIZE) ; (pScrn- >scrnIndex, pI830->GTTBase, 512 * 1024); (pScrn- >scrnIndex, pI830->GTTBase,
xf86UnMapVi
pI830->MMIOBase = NULL;
+
+ if (IS_I9XX(pI830)) {
+ if (IS_I965G(pI830))
+ xf86UnMapVidMem
+ else {
+ xf86UnMapVidMem
+ pI830->FbMapSize / 1024);
+ }
+ }
}
static Bool
pI830-> used3D = pI8301->used3D;
@@ -2279,6 +2291,9 @@ I830ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
}
+ /* Need MMIO mapped to do GTT lookups during memory allocation. */
allocation_ done = TRUE;
+ I830MapMMIO(pScrn);
+
#if defined(XF86DRI)
/*
* If DRI is potentially usable, check if there is enough memory available
@@ -2419,6 +2434,8 @@ I830ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
}
+ I830UnmapMMIO( pScrn); describe_ allocations( pScrn, 1, "");
+
i830_
if (!IS_I965G(pI830) && pScrn->displayWidth > 2048) {