[PATCH] AMD64 On-CPU GART support + more

John Baldwin jhb at FreeBSD.org
Thu Jun 17 20:24:20 GMT 2004


On Monday 14 June 2004 04:46 pm, Jung-uk Kim wrote:
> Since the latest DRM is imported, I made my AMD64 on-CPU GART[1]
> working (patch attached).  This driver has some ugliness because of
> its nature: driver is for AGP bridge but directly touches north
> bridge registers (of multiple north bridges if you have multiple
> CPUs).  Ideally we can attach child driver here for each bridge but
> it is just a part of its functions so that I didn't want to create a
> full-blown driver.  The second ugliness comes from the agp_sis.c and
> agp_via.c.  They fall back to 'generic host to PCI bridge' if it is
> not supported but it finds a bridge.  I believe this has to be
> removed.  The kludge is 'AGP_AMD64_GART' in kernel configuration.
> This kludge can be removed when the 'fallback' match/probe is
> removed.  For now, 'AGP_AMD64_GART' is required to test this driver.
> If anyone is interested, please cleanup/fix them. :-(

Yes, all the generic probes need to go away.  Also, I think that agp0 should 
be a child of hostb0.  I.e., each agp driver (except for agp_i810.c) needs to 
actually be a child of hostb0.  The hostb driver on the other hand would pass 
some ivars like PCI ID requests down to the children (so they can do a 
pci_get_devid() on themselves), and the hostb driver would add an agp child 
device automatically if it detects an AGP extended capability in its config 
registers.

>
> It's tested with Via K8T800 (both FreeBSD/i386 and FreeBSD/amd64) but
> it should work with other bridges/tunnels.  XFree86 snapshot (after
> Mesa 6.1 import) + DRI snapshot worked fine with MGA 400 and Radeon
> RV280 in FreeBSD/i386.  In FreeBSD/amd64, MGA 400 works but Radeon
> RV280 doesn't work but I believe it's DRM/DRI's problem, i. e.,
> Radeon SAREA handles.
>
> Cheers,
>
> Jung-uk Kim
>
> [1] BIOS and Kernel Developer's Guide for AMD Athlon? 64 and AMD
> Opteron(tm) Processors (3.6.12-15)
> http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/260
>94.PDF
>
> * PS: I think the current agp_via.c doesn't support K8T800 or other
> AGP v3 bridges correctly.  If anyone is interested, let me know. ;-)

-- 
John Baldwin <jhb at FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve"  =  http://www.FreeBSD.org


More information about the freebsd-amd64 mailing list