Comment 13 for bug 68814

Revision history for this message
David Sterratt (david-c-sterratt) wrote :

Update: In the Xorg.0.log, every mode has PhysBasePtr 0xffffffff, whereas in the old (dapper) Xorg.0.log, no mode had PhysBasePtr 0xffffffff, and there were a variety of PhysBasePtrs. When it comes to setting up the write combine range I suspect that this value is being passed to SetWC via VESAMapVidMem and xf86MapVidMem.

In programs/Xserver/hw/xfree86/os-support/linux/lnx_video.c setWC calls mtrr_add_wc_region recursively, and I suspect it is going into a loop.

I have changed vesa.c to force it to use

 pVesa->mapPhys = 0xa0000;
 pVesa->mapSize = 0x10000;

like the old (dapper) log file.

X now starts up with the vesa driver, but its behaviour seems to be
very variable. Once it let me log in, and then crashed as soon as my
mouse went over the GNOME panel, and a few times it gave me the login screen, but no mouse or keyboard input (apart from Ctrl-Alt-F1,
fortunately).

This suggests that pVesa->MapPhys in vesa.c is being found incorrectly by xf86Screens() (or some function it calls), but that perhaps this has other consequences that I haven't realised.