amd64 agp driver bug?

John-Mark Gurney gurney_j at resnet.uoregon.edu
Sat Oct 7 14:43:39 PDT 2006


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."


More information about the freebsd-amd64 mailing list