Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 17 Jun 2004 16:24:59 -0400
From:      John Baldwin <jhb@FreeBSD.org>
To:        freebsd-amd64@FreeBSD.org
Cc:        dfr@FreeBSD.org
Subject:   Re: [PATCH] AMD64 On-CPU GART support + more
Message-ID:  <200406171624.59264.jhb@FreeBSD.org>
In-Reply-To: <200406141646.03171.jkim@niksun.com>
References:  <200406141646.03171.jkim@niksun.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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@FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve"  =  http://www.FreeBSD.org



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