AGP (and PCI-express) Graphics Address Re-Mapping Table=======================================================The GART is an IO-MMU allowing the videocard and CPU to share somememory. Either the CPU can access the video RAM directly (βapertureβ),or the video card can access the system RAM using DMA access.The GART converts between physical addresses and virtual addresses onthe video card side. Of course, the CPU must then map these physicaladdresses in its own address space to use them (using the MMU).The GART works as youβd expect from an MMU. It has a page table (calledGTT) in RAM and walks it to figure out mappings. Since there cannot bepage misses (that would require exception handling on the GPU side),access to missing pages are instead sent to a dedicated βscratchβ pagewhich is not used for anything else.Our driver implements the GART and GTT for Intel graphics card only, sofar. Since our videodrivers are only doing modesetting, they do not needmuch support and other drivers implemented GTT management directly ontheir own (it is usually enough to make the framebuffer accessible tothe CPU). However, this could be generalized into a more flexible iommubus protocol.