Date: Fri, 25 Jun 2004 12:50:34 +0200 (CEST) From: Rene de Vries <rene@tunix.nl> To: FreeBSD-gnats-submit@FreeBSD.org Subject: kern/68316: support for intel ICH5 SATA/IDE controller Message-ID: <200406251050.i5PAoYAg063363@upsilix.tunix.nl> Resent-Message-ID: <200406251100.i5PB0YX2043919@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 68316 >Category: kern >Synopsis: support for intel ICH5 SATA/IDE controller >Confidential: no >Severity: serious >Priority: medium >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Fri Jun 25 11:00:34 GMT 2004 >Closed-Date: >Last-Modified: >Originator: Rene de Vries >Release: FreeBSD 4.8 i386 >Organization: Tunix Internet Security & Training >Environment: System: FreeBSD upsilix.tunix.nl 4.8 FreeBSD 4.8-RELEASE-p16 #7: Wed Mar 3 15:00:31 CET 2004 rene@upsilix.tunix.nl:/usr/obj/usr/src/sys/UPSILIX i386 >Description: The Intel SE7210TP1 motherboard contains a new controller, pci id's were added. Futhermore, disable cable check for SATA disks; assume SATA is always UDMA100. Index: sys/dev/ata/ata-dma.c =================================================================== RCS file: sys/dev/ata/ata-dma.c,v retrieving revision 1.1.1.5 retrieving revision 1.2 diff -u -r1.1.1.5 -r1.2 --- sys/dev/ata/ata-dma.c 2002/10/15 10:21:38 1.1.1.5 +++ sys/dev/ata/ata-dma.c 2004/06/07 09:42:27 1.2 @@ -104,13 +104,21 @@ ch->alignment = 0x1; #if 1 + if ((ch->chiptype != 0x24188086) && (ch->chiptype != 0x25a38086)) { + /* Only for non-SATA */ if (udmamode > 2 && !ch->device[ATA_DEV(device)].param->hwres_cblid) { ata_prtdev(atadev,"DMA limited to UDMA33, non-ATA66 cable or device\n"); udmamode = 2; } + } #endif switch (ch->chiptype) { + case 0x24db8086: /* Intel ICH5 */ + case 0x25a28086: + case 0x24188086: /* Intel ICH5 SATA */ + case 0x25a38086: + case 0x24ca8086: /* Intel ICH4 mobile */ case 0x24cb8086: /* Intel ICH4 */ case 0x248a8086: /* Intel ICH3 mobile */ case 0x248b8086: /* Intel ICH3 */ Index: sys/dev/ata/ata-pci.c =================================================================== RCS file: /usr/local/cvs/cvsroot/fw/os/freebsd/sys/dev/ata/ata-pci.c,v retrieving revision 1.1.1.3 retrieving revision 1.2 diff -u -r1.1.1.3 -r1.2 --- sys/dev/ata/ata-pci.c 2002/10/15 10:21:38 1.1.1.3 +++ sys/dev/ata/ata-pci.c 2004/06/07 09:42:27 1.2 @@ -146,9 +146,18 @@ case 0x248b8086: return "Intel ICH3 ATA100 controller"; + case 0x24ca8086: case 0x24cb8086: return "Intel ICH4 ATA100 controller"; + case 0x25a38086: + case 0x24d18086: + return "Intel ICH5 SATA150 controller"; + + case 0x25a28086: + case 0x24db8086: + return "Intel ICH5 ATA100 controller"; + case 0x522910b9: if (pci_get_revid(dev) >= 0xc4) return "AcerLabs Aladdin ATA100 controller"; @@ -593,6 +602,17 @@ if (!(ATA_INB(ch->r_bmio, ATA_BMDEVSPEC_1) & 0x20)) return 1; break; + + case 0x25a38086: + case 0x24d18086: /* Intel ICH5 SATA150 */ + dmastat = ATA_INB(ch->r_bmio, ATA_BMSTAT_PORT); + if ((dmastat & (ATA_BMSTAT_ACTIVE | ATA_BMSTAT_INTERRUPT)) != + ATA_BMSTAT_INTERRUPT) + return 1; + ATA_OUTB(ch->r_bmio, ATA_BMSTAT_PORT, dmastat & + ~(ATA_BMSTAT_DMA_SIMPLEX | ATA_BMSTAT_ERROR)); + DELAY(1); + return 0; } if (ch->flags & ATA_DMA_ACTIVE) { >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200406251050.i5PAoYAg063363>