Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 7 Oct 2006 14:43:36 -0700
From:      John-Mark Gurney <gurney_j@resnet.uoregon.edu>
To:        freebsd-amd64@FreeBSD.org
Subject:   amd64 agp driver bug?
Message-ID:  <20061007214336.GJ793@funkthat.com>

next in thread | raw e-mail | index | archive | help
I was looking at the agp driver and the BIOS and Kernel Developer's
Guide, and noticed that it appears we program the page register
incorrectly...

Currently we do, in sys/pci/agp_amd64.c:
        sc->gatt->ag_virtual[offset >> AGP_PAGE_SHIFT] = physical;

but according to Table 38 in the guide, it looks like it should be:
        sc->gatt->ag_virtual[offset >> AGP_PAGE_SHIFT] =
            (physical & 0xfffff000) | ((physical >> 28) & 0xff0) | 1;

To support physical addresses above 4G...

Has anyone used AGP w/ >4GB of memmory?  I'm also puzzled by the fact
that the guide says to set bit 0, but we don't do that...

--
  John-Mark Gurney				Voice: +1 415 225 5579

     "All that I will do, has been done, All that I have, has not."



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20061007214336.GJ793>