Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 28 Sep 2000 11:17:37 -0700 (PDT)
From:      roland@serv.ch
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   kern/21627: Chipset SiS630E / ATA SiS 5591
Message-ID:  <20000928181737.43E6537B422@hub.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         21627
>Category:       kern
>Synopsis:       Chipset SiS630E / ATA SiS 5591
>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:   Thu Sep 28 11:20:00 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator:     Roland Schneider
>Release:        4.1.1 STABLE
>Organization:
>Environment:
FreeBSD ***** 4.1.1-STABLE FreeBSD 4.1.1-STABLE #0: Thu Sep 28 18:03:48 CEST 2000     ***@******:/mnt/install/src/sys/compile/kernel  i386

>Description:
The SiS630E (recognized as SiS 5591) Driver will do only UDMA33.

>How-To-Repeat:
Install FreeBSD on a ASUS CUSI-FX with UDMA66-Disk.

>Fix:
Its not a fix but adds UDMA66 to the SiS 5591 for the
primary master.
Dont use a UDMA33-Device there because it will fallback
to plain PIO later and I dont know where to fix this...
Bonnie shows no difference between UDMA33 and UDMA66.

Insert the following in sys/dev/ata/ata-dma.c just bevore line #409:

if (udmamode >= 4 && scp->unit == 0 && device == ATA_MASTER ) {
  error = ata_command(scp, device, ATA_C_SETFEATURES, 0, 0, 0,
    ATA_UDMA4, ATA_C_F_SETXFER, ATA_WAIT_READY);
  if (bootverbose)
  ata_printf(scp, device, "%s setting UDMA4 on SiS chip\n",
    (error) ? "failed" : "success");
  if (!error) {
    pci_write_config(parent, 0x40 + (devno << 1), 0xa301, 2);
    scp->mode[ATA_DEV(device)] = ATA_UDMA4;
    return;
  }
}


From /var/run/dmesg.boot:

ata0-master: success setting UDMA4 on SiS chip
ad0: <QUANTUM FIREBALLP LM15/A35.0700> ATA-5 disk at ata0 as master
ad0: 14324MB (29336832 sectors), 29104 cyls, 16 heads, 63 S/T, 512 B/S
ad0: 16 secs/int, 1 depth queue, UDMA66
ad0: piomode=4 dmamode=2 udmamode=4 cblid=1

ata1-master: success setting UDMA2 on SiS chip
ad2: <ST313032A/3.09> ATA-4 disk at ata1 as master
ad2: 12419MB (25434228 sectors), 25232 cyls, 16 heads, 63 S/T, 512 B/S
ad2: 16 secs/int, 1 depth queue, UDMA33
ad2: piomode=4 dmamode=2 udmamode=4 cblid=1


>Release-Note:
>Audit-Trail:
>Unformatted:


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




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