Date: Mon, 29 May 2006 16:19:54 +0100 From: Mike M <mmcgus@yahoo.com> To: FreeBSD-gnats-submit@FreeBSD.org Subject: kern/98094: AGP driver misconfigures aperture size on Message-ID: <E1FkjX8-000AB5-HU@shrike.submonkey.net> Resent-Message-ID: <200605291520.k4TFKQJS055740@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 98094 >Category: kern >Synopsis: AGP driver misconfigures aperture size on >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Mon May 29 15:20:25 GMT 2006 >Closed-Date: >Last-Modified: >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: >Unformatted: Athlon64 with SiS 760 controller (+PATCH)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?E1FkjX8-000AB5-HU>