On Mon, 29 Aug 2005 17:49:02 +0900, Bang Jun-Young <[EMAIL PROTECTED]> wrote:

Hi,

I got the following error when I ran XFree86 tagged xf-4_5_99_10 with vesa driver
on a VMware virtual machine running NetBSD/i386:

Fatal server error:
xf86MapVidMem: could not mmap /dev/mem [s=ffec0000,a=ffeb9898] (Invalid argument)

I have found that this was caused by changes made in helper_exec.c r1.28.
Reverting to r1.27 fixed the problem.

Upon some experiments, I have found that the following code is causing
the problem:

CARD32
x_inl(CARD16 port)
{
    CARD32 val;

    if (port & 0x0003U) {
          UnalignedIO(Int10Current, "read", port, 4);
          if (port & 0x0001U) {
              val = x_inb(port);
              val |= (CARD32)x_inw(port + 1) << 8;
              val |= (CARD32)x_inb(port + 3) << 24;
          } else {
              val = x_inw(port);
              val |= (CARD32)x_inw(port + 2) << 16;
          }
    } ... snipped ...
}

It seems that a unaligned dword-sized IO can't be separated to smaller
word/byte-sized IO's. I'm not sure if this is a bug of VMware virtual
graphics adapter.

Jun-Young




_______________________________________________
XFree86 mailing list
XFree86@XFree86.Org
http://XFree86.Org/mailman/listinfo/xfree86

Reply via email to