From ceri@submonkey.net  Mon May 29 15:19:55 2006
Return-Path: <ceri@submonkey.net>
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
	by hub.freebsd.org (Postfix) with ESMTP id A00A716A7BD
	for <FreeBSD-gnats-submit@freebsd.org>; Mon, 29 May 2006 15:19:55 +0000 (UTC)
	(envelope-from ceri@submonkey.net)
Received: from shrike.submonkey.net (cpc2-cdif2-0-0-cust107.cdif.cable.ntl.com [81.104.168.108])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 37E9043D76
	for <FreeBSD-gnats-submit@freebsd.org>; Mon, 29 May 2006 15:19:55 +0000 (GMT)
	(envelope-from ceri@submonkey.net)
Received: from ceri by shrike.submonkey.net with local (Exim 4.62 (FreeBSD))
	(envelope-from <ceri@submonkey.net>)
	id 1FkjX8-000AB5-HU
	for FreeBSD-gnats-submit@freebsd.org; Mon, 29 May 2006 16:19:54 +0100
Message-Id: <E1FkjX8-000AB5-HU@shrike.submonkey.net>
Date: Mon, 29 May 2006 16:19:54 +0100
From: Mike M <mmcgus@yahoo.com>
Sender: Ceri Davies <ceri@submonkey.net>
Reply-To: Mike M <mmcgus@yahoo.com>
To: FreeBSD-gnats-submit@freebsd.org
Cc: anholt@FreeBSD.org
Subject: AGP driver misconfigures aperture size on
X-Send-Pr-Version: 3.113
X-GNATS-Notify:

>Number:         98094
>Category:       kern
>Synopsis:       [agp] [patch] AGP driver misconfigures aperture size on Athlon64 with SiS 760
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    jkim
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon May 29 15:20:25 GMT 2006
>Closed-Date:    Mon Jun 05 18:38:18 GMT 2006
>Last-Modified:  Mon Jun 05 18:38:18 GMT 2006
>Originator:     Mike M
>Release:        FreeBSD 6.1-STABLE i386
>Organization:
none
>Environment:
System: FreeBSD blunderbox.domain.actdsltmp 6.1-STABLE
FreeBSD 6.1-STABLE #3: Sun May 28 20:40:21 PDT 2006
mmcg@blunderbox.domain.actdsltmp:/M/0/a/usr.obj/M/0/a/usr.src6/sys/BLUNDE=
RBOX32
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.


>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-bugs->jkim 
Responsible-Changed-By: jkim 
Responsible-Changed-When: Tue May 30 18:31:30 UTC 2006 
Responsible-Changed-Why:  
I'll take this. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=98094 
State-Changed-From-To: open->patched 
State-Changed-By: jkim 
State-Changed-When: Tue May 30 18:43:02 UTC 2006 
State-Changed-Why:  
Committed.  I removed the PCI ID from agp_sis.c also.  Thanks! 

http://www.freebsd.org/cgi/query-pr.cgi?pr=98094 
State-Changed-From-To: patched->closed 
State-Changed-By: jkim 
State-Changed-When: Mon Jun 5 18:37:35 UTC 2006 
State-Changed-Why:  
MFC'd to RELENG_6.  Closing. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=98094 
>Unformatted:
