Re: AGP driver misconfigures aperture size on Athlon64 with SiS 760 controller (+PATCH)

Ceri Davies <[email protected]>
Newsgroups gmane.os.freebsd.bugbusters
Message-ID <[email protected]>
Filed as kern/98094, Mike.  Thanks for sending it in.

Ceri

On Sun, May 28, 2006 at 10:03:46PM -0700, Mike M wrote:
> Sorry about the formatting - send-pr doesn't work for
> me, and I couldn't see the images on the web form to
> submit it there...
> 
> To: [email protected]
> From: User & <mmcg>
> Reply-To: User & <mmcg>
> Cc: 
> X-send-pr-version: 3.113
> X-GNATS-Notify: 
> 
> 
> >Submitter-Id:	current-users
> >Originator:	Mike M
> >Organization:	none
> >Confidential:	no
> >Synopsis:	AGP driver misconfigures aperture size on
> Athlon64 with SiS 760 controller (+PATCH)
> >Severity:	non-critical
> >Priority:	low
> >Category:	kern
> >Class:		sw-bug
> >Release:	FreeBSD 6.1-STABLE i386
> >Environment:
> System: FreeBSD blunderbox.domain.actdsltmp 6.1-STABLE
> FreeBSD 6.1-STABLE #3: Sun May 28 20:40:21 PDT 2006
> [email protected]:/M/0/a/usr.obj/M/0/a/usr.src6/sys/BLUNDERBOX32
> i386
> 
> 
> Athlon 64, running FreeBSD/i386
> 
> >Description:
> 
> Running FreeBSD-i386 on an Athlon 64, with a radeon
> 9600 video card and a SiS760 AGP bridge, using X.org
> 6.9; GENERIC kernel with agp, dri, and radeon dri
> compiled in.
> 
> When starting Xorg using the system as configured
> above, DRM fails to initialize with the following:
> 
> agp0: binding memory at bad offset 0
> 
> This causes DRM, hence DRI to fail, resulting in no
> acceleration for GLX under X.  Somewhat frustrating,
> as I had purchased the radeon card to solve precisely
> this problem (with the built-in graphics).
> 
> The reason: the AGP driver thinks that the aperture
> size is 4M - when, in fact, it is 64M.  The aperture
> initialization then fails because AGP_GET_APERTURE()
> is returning 4M, whereas the radeon DRI driver is
> using the size information returned by agp_get_info()
> (which retrieves the size of the allocated resource
> directly from the resource manager, using
> rman_get_size(sc->as_aperture) - this may or may not
> be a bug).  So agp_alloc_gatt() fails because it's
> asked to allocate 64M but only believes 4M is
> available.
> 
> 
> >How-To-Repeat:
> Use an Athlon 64 motherboard with a SiS 760 AGP bridge
> and (in my case) a radeon 9600 video card.  Start
> Xorg.  No DRI.
> 
> >Fix:
> 
> After the following patch, things magically started
> working (it just adds the SiS760 device ID to the
> agp_amd64.c handler):
> 
> diff -c /usr/src/sys/pci/agp_amd64.c{.ctm,}
> *** /usr/src/sys/pci/agp_amd64.c.ctm    Sun May 28
> 19:37:02 2006
> --- /usr/src/sys/pci/agp_amd64.c        Sun May 28
> 19:41:42 2006
> ***************
> *** 97,102 ****
> --- 97,104 ----
>                 return ("AMD 8151 AGP graphics
> tunnel");
>         case 0x07551039:
>                 return ("SiS 755 host to AGP bridge");
> +       case 0x07601039:
> +               return ("SiS 760 host to AGP bridge");
>         case 0x168910b9:
>                 return ("ULi M1689 AGP Controller");
>         case 0x00d110de:
> 
> glxgears went from 90fps to 1200fps.
> 
> WARNING: I do not know how (or whether) this will
> affect non-athlon64s.
> 
> 
> 
> 
> __________________________________________________
> Do You Yahoo!?
> Tired of spam?  Yahoo! Mail has the best spam protection around 
> http://mail.yahoo.com 
> _______________________________________________
> [email protected] mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-bugbusters
> To unsubscribe, send any mail to "[email protected]"

-- 
That must be wonderful!  I don't understand it at all.
                                                  -- Moliere
signature.asc (application/pgp-signature, 187 B)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.3 (FreeBSD)

iD8DBQFEexHQocfcwTS3JF8RApXlAKCKzf3fc3PCQPvIhQGs49ajTB2iZACeLE9M
D42BFD1gaD7Y9ZnP6Qqg/1U=
=gXnO
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.