linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Duncan Laurie <duncan@sun.com>
To: Olivier Bornet <Olivier.Bornet@puck.ch>
Cc: linux-kernel@vger.kernel.org
Subject: Re: problem with a cobalt RaQ550 system and DMA (Serverworks OSB4 in impossible state)
Date: Wed, 23 Apr 2003 17:02:22 -0700	[thread overview]
Message-ID: <3EA7298E.7050600@sun.com> (raw)
In-Reply-To: <20030423212713.GD21689@puck.ch>

[-- Attachment #1: Type: text/plain, Size: 1084 bytes --]

Olivier Bornet wrote:
> Hello,
> 
> I'm trying to install Debian on 4 RaQ550 with each 2 80GB disks. All
> seems OK with 3 of RaQ, but with one, it crash when I put the two disks
> in a RAID1 meta device. In fact, it as crash at about 6% before the 70GB
> partition is fully synchronized.
> 

Hi Olivier,

There is an interaction problem between the Serverworks IDE controller
and some Seagate BlockPoint drives.  They aren't handling the bus
throttling correctly on ATA bus writes and are sometimes overflowing
their FIFOs.

The CSB5 in UDMA mode 5 sends 3 words after the drive de-asserts
DDMARDY- (per ATA spec section 9.14.3.2) but these drives sometimes
have problems when the three extra words are sent and overflows its
FIFO.  Other IDE controllers only send 2 extra words and don't cause
this to happen.

The only work around we have found is to limit these drives to ATA
mode 4.  Supposedly newer Seagate firmware for these drives will report
only UDMA mode 4 capable, but for earlier drives (like those probably
found in your raq550) try this patch against 2.4.20.

-duncan

[-- Attachment #2: serverworks.c.diff --]
[-- Type: text/plain, Size: 1205 bytes --]

--- serverworks.c	2002-08-02 17:39:44.000000000 -0700
+++ /home/duncan/cvs/linux-2.4/drivers/ide/serverworks.c	2003-04-23 16:37:45.000000000 -0700
@@ -100,6 +100,12 @@
 #include <linux/stat.h>
 #include <linux/proc_fs.h>
 
+const char *bad_ata100[] = {
+	"ST340016A",
+	"ST380021A",
+	NULL
+};
+
 static struct pci_dev *bmide_dev;
 static byte svwks_revision = 0;
 
@@ -107,6 +113,14 @@
 extern int (*svwks_display_info)(char *, char **, off_t, int); /* ide-proc.c */
 extern char *ide_media_verbose(ide_drive_t *);
 
+static int check_in_drive_lists (ide_drive_t *drive, const char **list)
+{
+	while (*list)
+		if (!strcmp(*list++, drive->id->model))
+			return 1;
+	return 0;
+}
+
 static int svwks_get_info (char *buffer, char **addr, off_t offset, int count)
 {
 	char *p = buffer;
@@ -420,7 +434,8 @@
 	int ultra100 	= (ultra66 && svwks_revision >= SVWKS_CSB5_REVISION_NEW) ? 1 : 0;
 	byte speed;
 
-	if ((id->dma_ultra & 0x0020) && (udma_66) && (ultra100)) {
+	if ((id->dma_ultra & 0x0020) && (udma_66) && (ultra100) &&
+	    !check_in_drive_lists(drive, bad_ata100)) {
 		speed = XFER_UDMA_5;
 	} else if (id->dma_ultra & 0x0010) {
 		speed = ((udma_66) && (ultra66)) ? XFER_UDMA_4 : XFER_UDMA_2;

  parent reply	other threads:[~2003-04-23 23:48 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-04-23 21:27 problem with a cobalt RaQ550 system and DMA (Serverworks OSB4 in impossible state) Olivier Bornet
2003-04-23 22:21 ` Alan Cox
2003-04-23 23:29   ` Olivier Bornet
2003-04-24  8:00     ` Olivier Bornet
2003-04-24 21:51       ` problem with Serverworks CSB5 IDE Duncan Laurie
2003-04-24 23:52         ` Duncan Laurie
2003-04-25 11:00         ` Alan Cox
2003-04-25 16:39           ` Duncan Laurie
2003-04-25 15:42             ` Alan Cox
2003-04-25 18:52               ` Duncan Laurie
2003-04-25 18:02                 ` Alan Cox
2003-04-28 13:03                 ` Alan Cox
2003-04-24  0:02 ` Duncan Laurie [this message]
2003-04-24  7:55   ` problem with a cobalt RaQ550 system and DMA (Serverworks OSB4 in impossible state) Olivier Bornet

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3EA7298E.7050600@sun.com \
    --to=duncan@sun.com \
    --cc=Olivier.Bornet@puck.ch \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).