misc/76411: AGP aperture incorrectly probed for SiS 755 AGP

Jonathan Fosburgh jonathan at fosburgh.org
Tue Jan 18 07:00:50 PST 2005


>Number:         76411
>Category:       misc
>Synopsis:       AGP aperture incorrectly probed for SiS 755 AGP
>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:   Tue Jan 18 15:00:49 GMT 2005
>Closed-Date:
>Last-Modified:
>Originator:     Jonathan Fosburgh
>Release:        5.3-STABLE (i386)
>Organization:
>Environment:
FreeBSD gw.fosburgh.org 5.3-STABLE FreeBSD 5.3-STABLE #9: Mon Jan 17 21:14:35 CST 2005     root at gw.fosburgh.org:/usr/obj/usr/src/sys/vmbsd  i386
    
>Description:
This is an Athlon 64 system with an ECS 755-A2 mobo, using the SiS 755 chipset.  When trying to load drm, the agp driver incorrectly probes the aperture as 4MB, regardless of what I specify it as in the BIOS.  I have used 32, 128, and 256MB aperture sizes and all fail the same way. In trying to troubleshoot this, one of the things I found was the driver was not correctly ID'ing the hardware. The following patch from Junk-uk Kim corrected that (though not the issue):

Index: pci/agp_amd64.c
===================================================================
RCS file: /home/ncvs/src/sys/pci/agp_amd64.c,v
retrieving revision 1.3
diff -u -r1.3 agp_amd64.c
--- pci/agp_amd64.c	5 Oct 2004 04:40:32 -0000	1.3
+++ pci/agp_amd64.c	11 Jan 2005 21:57:44 -0000
@@ -80,12 +80,12 @@
 	switch (pci_get_devid(dev)) {
 	case 0x74541022:
 		return ("AMD 8151 AGP graphics tunnel");
-	case 0x10221039:
-		return ("SiS 755 host to AGP bridge");
 	case 0x02041106:
 		return ("VIA 8380 host to PCI bridge");
 	case 0x02821106:
 		return ("VIA K8T800Pro host to PCI bridge");
+	case 0x07551039:
+		return ("SiS 755 host to AGP bridge");
 	case 0x31881106:
 		return ("VIA 8385 host to PCI bridge");
 	};
Index: pci/agp_sis.c
===================================================================
RCS file: /home/ncvs/src/sys/pci/agp_sis.c,v
retrieving revision 1.16
diff -u -r1.16 agp_sis.c
--- pci/agp_sis.c	30 Dec 2004 07:18:58 -0000	1.16
+++ pci/agp_sis.c	11 Jan 2005 21:57:44 -0000
@@ -105,8 +105,6 @@
 		return ("SiS 746 host to AGP bridge");
 	case 0x07601039:
 		return ("SiS 760 host to AGP bridge");
-	case 0x10221039:	/* AMD64 */
-		return NULL;
 	};
 
 	return NULL;

Additionally, I found a small program posted to x11@ from Junk-uk Kim that checks what the AGP driver is probing.  The output from that program is:

version: 0.0
bridge id: 0x7551039
agp_mode: 0x1f000217
aper_base: 0xd0000000
aper_size: 4
pg_total: 112640
pg_system: 112640
pg_used: 0
MTRR: d0000000/400000
entry.key : 2
ioctl(AGPIOC_BIND): Invalid argument

dmesg from a verbose boot:
Jan 12 20:56:46 gw kernel: agp0: <SiS 755 host to AGP bridge> mem 0xe8000000-0xebffffff at device 0.0 on pci0
Jan 12 20:56:46 gw kernel: agp0: Reserved 0x4000000 bytes for rid 0x10 type 3 at 0xe8000000
Jan 12 20:56:46 gw kernel: agp0: allocating GATT for aperture of size 4M

And an error from trying to bind:

agp0: binding memory at bad offset 0x400000

The output from pciconf  for the AGP device:

agp0 at pci0:0:0:  class=0x060000 card=0x18911019 chip=0x07551039 rev=0x01 hdr=0x00
    vendor   = 'Silicon Integrated Systems (SiS)'
    device   = 'SiSM650? Host-to-PCI Bridge'
    class    = bridge
    subclass = HOST-PCI

>How-To-Repeat:
On a mobo (possibly this same model?) using the SiS755 chipset, attempt to do anything that causes the AGP driver to attempt to bind to memory, such as using DRI.
>Fix:
      
>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list