WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

RE: [Xen-devel] allocating AGP aperture memory

To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: RE: [Xen-devel] allocating AGP aperture memory
From: "Langsdorf, Mark" <mark.langsdorf@xxxxxxx>
Date: Tue, 1 Nov 2005 17:12:31 -0600
Delivery-date: Tue, 01 Nov 2005 23:09:49 +0000
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Thread-index: AcXUItEVdqWcbj10TmOmktd1+s3AmQADf3OQAAEy7AAAEAj1QABLsk9wABx3AcAADkYakACQuQIAAamiM2A=
Thread-topic: [Xen-devel] allocating AGP aperture memory
> > You're right, I don't really want to do that, but I got
> > inadvertantly sidetracked into thinking I needed AGP support 
> > working.  Fortunately, I don't.
> > 
> > However, if I don't have AGP support working, I need to
> > program the Northbridge registers with the physical address 
> > of the GATT (see init_k8_gatt() in 
> arch/xen/x86_64/kernel/pci-gart.c).
> > Just doing a __pa() obviously doesn't return meaningful data, 
> > which is to be expected.  How should dom0 go about getting it?
> 
> You need to allocate the gatt mapping table using alloc_gatt_pages
> (dma_alloc_coherent) rather than get_free_pages.
> 
> You then want to use virt_to_gart on the address returned.

Are you sure?  I've been trying this for days, and it
isn't working.

Here's the original code in question, from pci-gart.c

        gatt = (void *) __get_free_pages(GFP_KERNEL,
get_order(gatt_size));
        for_all_nb(dev) {
                u32 gatt_reg;
                gatt_reg = __pa(gatt) >> 12;
                gatt_reg <= 4;
                pci_write_config_dword(dev, 0x98, gatt_reg);
        }

I've changed it to:
        gatt = (void *) alloc_gatt_pages(get_order(gatt_size));
        for_all_nb(dev) {
                u32 gatt_reg;
                gatt_reg = phys_to_gart(virt_to_phys(gatt)) >> 12;
                gatt_reg <= 4;
                pci_write_config_dword(dev, 0x98, gatt_reg);
        }

I don't think the northbridge is looking for the gart
value of the gatt, even in a virtualized environment.

-Mark Langsdorf
AMD, Inc.


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

<Prev in Thread] Current Thread [Next in Thread>