Messages in this thread Patches in this message | | | Date | Wed, 20 Jan 1999 00:09:40 -0600 (CST) | From | "Andre M. Hedrick" <> | Subject | Re: More ATAPI/IDE fun. (zip drive this time) |
| |
"ide-probe.c.diff" is an UGLY-NASTY work-around due the changes in ./include/asm-i386/strings.h
I don't like it but it works for now.
This is not the right way to do this since it has a character dependent position test. If the id->model == `IOMEGA ZIP 100 ATAPI' changes due the the vender, instant break.................
As for your multi-mode errors, the original changes that I made around 2.1.122 were stubbed out, but you can enable them easily.
Apply this, "ide-2.2.0.8.pat1", to give you the option of multi-mode config.
The other option is to edit ./drivers/block/ide.h at line #34
#define INITIAL_MULT_COUNT 0 /* off=0; on=2,4,8,16,32, etc.. */ #define INITIAL_MULT_COUNT 1 /* off=0; on=2,4,8,16,32, etc.. */
This has not been tested, but since many drives complain about multi-mode being set to zero, why not give a value of one a whirl. It is in effect the same transfer style/method in principle. A value of zero means multi-mode is diabled (ie one block at a time) and a value of one would have the same effect..........
Please let me know if it goes away with either or both of these options.
On Wed, 20 Jan 1999, CaT wrote:
> > Just booted into pre8 (from the v2.1 dir) and found new errors regarding > my IDE stuff. > > The related boot messages are: > > Jan 20 11:12:38 kinder kernel: PIIX4: IDE controller on PCI bus 00 dev 39 > Jan 20 11:12:38 kinder kernel: PIIX4: not 100ative mode: will probe irqs later > Jan 20 11:12:38 kinder kernel: ide0: BM-DMA at 0xf000-0xf007, BIOS settings: hda:pio, hdb:pio > Jan 20 11:12:38 kinder kernel: ide1: BM-DMA at 0xf008-0xf00f, BIOS settings: hdc:pio, hdd:pio > Jan 20 11:12:38 kinder kernel: hda: ST36531A, ATA DISK drive > Jan 20 11:12:38 kinder kernel: hdb: CREATIVEDVD-ROM DVD2240E 09/27/97, ATAPI CDROM drive > Jan 20 11:12:38 kinder kernel: hdc: IOMEGA ZIP 100 ATAPI, ATAPI CDROM drive > Jan 20 11:12:38 kinder kernel: hdd: CD-ROM 32X/AKU, ATAPI CDROM drive > Jan 20 11:12:38 kinder kernel: ide0 at 0x1f0-0x1f7,0x3f6 on irq 14 > Jan 20 11:12:38 kinder kernel: ide1 at 0x170-0x177,0x376 on irq 15 > Jan 20 11:12:38 kinder kernel: hda: ST36531A, 6204MB w/128kB Cache, CHS=790/255/63, UDMA > Jan 20 11:12:38 kinder kernel: hdb: ATAPI 24X CDROM drive, 256kB Cache > Jan 20 11:12:38 kinder kernel: Uniform CDROM driver Revision: 2.52 > Jan 20 11:12:38 kinder kernel: hdc: packet command error: status=0x51 { DriveReady SeekComplete > Error } > Jan 20 11:12:38 kinder kernel: hdc: packet command error: error=0x50 > Jan 20 11:12:38 kinder kernel: ATAPI device hdc: > Jan 20 11:12:38 kinder kernel: Error: Illegal request -- (Sense key=0x05) > Jan 20 11:12:38 kinder kernel: Invalid field in command packet -- (asc=0x24, ascq=0x00) > Jan 20 11:12:38 kinder kernel: The failed "Mode Sense" packet command was: > Jan 20 11:12:38 kinder kernel: "5a 00 2a 00 00 00 00 00 18 00 00 00 " > Jan 20 11:12:38 kinder kernel: hdd: ATAPI 32X CDROM drive, 128kB Cache > Jan 20 11:12:38 kinder kernel: Floppy drive(s): fd0 is 1.44M > Jan 20 11:12:38 kinder kernel: FDC 0 is a post-1991 82077 > Jan 20 11:12:38 kinder kernel: PPP: version 2.3.3 (demand dialling) > Jan 20 11:12:38 kinder kernel: TCP compression code copyright 1989 Regents of the University of > California > Jan 20 11:12:38 kinder kernel: PPP line discipline registered. > Jan 20 11:12:38 kinder kernel: Partition check: > Jan 20 11:12:38 kinder kernel: hda:hda: set_multmode: status=0x51 { DriveReady SeekComplete Error } > Jan 20 11:12:38 kinder kernel: hda: set_multmode: error=0x04 { DriveStatusError } > Jan 20 11:12:38 kinder kernel: hda1 hda2 < hda5 > hda3 hda4 > > Now.... hdc is my zip drive. I never got the above error with any kernel. > The mysterious hda errors are still there. They only came in when I > started using 2.2.0pre4 and up. never used 2.2.0pre1-3 or 132. 131ac13 > didn't have em. > > On the up side I've not been able to reproduce the previously mentioned > problem with my DVD drive. :)
Cheers, Andre Hedrick The (NEW) Linux IDE guy The APC UPS Specialist for Linux
http://www.dyer.vanderbilt.edu/server/udma/ http://www.dyer.vanderbilt.edu/server/apcupsd/apcupsd-3.5.2.bin.tar.gz
You just need a bigger hammer, or learn how to swing the one you have better. (C) me..... --- linux-2.2.0-pre4-pristine/drivers/block/ide-probe.c.orig Mon Jan 4 13:18:17 1999 +++ linux/drivers/block/ide-probe.c Mon Jan 4 13:19:33 1999 @@ -587,7 +587,16 @@ drive->next = hwgroup->drive->next; hwgroup->drive->next = drive; } +#if 0 hwgroup->hwif = HWIF(hwgroup->drive); +#else + if (!hwgroup->hwif) { + hwgroup->hwif = HWIF(hwgroup->drive); + printk("%s : Adding missed hwif to hwgroup!!\n", hwif->name); + } else { + printk("%s : Got all hwifs with hwgroup!!\n", hwif->name); + } +#endif restore_flags(flags); /* all CPUs; safe now that hwif->hwgroup is set up */ #if !defined(__mc68000__) && !defined(CONFIG_APUS) && !defined(__sparc__)diff -urN linux-2.2.0-pre8-pristine/Documentation/Configure.help linux/Documentation/Configure.help --- linux-2.2.0-pre8-pristine/Documentation/Configure.help Sat Jan 16 18:57:53 1999 +++ linux/Documentation/Configure.help Tue Jan 19 23:48:36 1999 @@ -333,6 +333,15 @@ root filesystem (the one containing the directory /) is located on the IDE disk. If unsure, say Y. +Use auto multi-mode by default (EXPERIMENTAL) support +CONFIG_BLK_DEV_IDEDISK_MULTI_MODE + If you get this error, try to enable this option. + + hda: set_multmode: status=0x51 { DriveReady SeekComplete Error } + hda: set_multmode: error=0x04 { DriveStatusError } + + If in doubt, say N. + Include IDE/ATAPI CDROM support CONFIG_BLK_DEV_IDECD If you have a CDROM drive using the ATAPI protocol, say Y. ATAPI is diff -urN linux-2.2.0-pre8-pristine/drivers/block/Config.in linux/drivers/block/Config.in --- linux-2.2.0-pre8-pristine/drivers/block/Config.in Tue Dec 29 13:21:49 1998 +++ linux/drivers/block/Config.in Tue Jan 19 23:41:54 1999 @@ -19,6 +19,9 @@ else bool ' Use old disk-only driver on primary interface' CONFIG_BLK_DEV_HD_IDE dep_tristate ' Include IDE/ATA-2 DISK support' CONFIG_BLK_DEV_IDEDISK $CONFIG_BLK_DEV_IDE + if [ "$CONFIG_BLK_DEV_IDEDISK" != "n" ]; then + bool ' Use auto multi-mode by default (EXPERIMENTAL) support' CONFIG_BLK_DEV_IDEDISK_MULTI_MODE + fi dep_tristate ' Include IDE/ATAPI CDROM support' CONFIG_BLK_DEV_IDECD $CONFIG_BLK_DEV_IDE dep_tristate ' Include IDE/ATAPI TAPE support' CONFIG_BLK_DEV_IDETAPE $CONFIG_BLK_DEV_IDE dep_tristate ' Include IDE/ATAPI FLOPPY support' CONFIG_BLK_DEV_IDEFLOPPY $CONFIG_BLK_DEV_IDE diff -urN linux-2.2.0-pre8-pristine/drivers/block/ide-disk.c linux/drivers/block/ide-disk.c --- linux-2.2.0-pre8-pristine/drivers/block/ide-disk.c Fri Jan 15 00:58:47 1999 +++ linux/drivers/block/ide-disk.c Tue Jan 19 23:40:44 1999 @@ -795,17 +795,17 @@ drive->mult_count = 0; if (id->max_multsect) { -#if 1 /* original, pre IDE-NFG, per request of AC */ +#ifdef CONFIG_BLK_DEV_IDEDISK_MULTI_MODE + id->multsect = ((id->max_multsect/2) > 1) ? id->max_multsect : 0; + id->multsect_valid = id->multsect ? 1 : 0; + drive->mult_req = id->multsect_valid ? id->max_multsect : INITIAL_MULT_COUNT; + drive->special.b.set_multmode = drive->mult_req ? 1 : 0; +#else /* original, pre IDE-NFG, per request of AC */ drive->mult_req = INITIAL_MULT_COUNT; if (drive->mult_req > id->max_multsect) drive->mult_req = id->max_multsect; if (drive->mult_req || ((id->multsect_valid & 1) && id->multsect)) drive->special.b.set_multmode = 1; -#else - id->multsect = ((id->max_multsect/2) > 1) ? id->max_multsect : 0; - id->multsect_valid = id->multsect ? 1 : 0; - drive->mult_req = id->multsect_valid ? id->max_multsect : INITIAL_MULT_COUNT; - drive->special.b.set_multmode = drive->mult_req ? 1 : 0; #endif } drive->no_io_32bit = id->dword_io ? 1 : 0;
| |