From owner-freebsd-scsi Mon Mar 11 07:46:19 1996 Return-Path: owner-freebsd-scsi Received: (from root@localhost) by freefall.freebsd.org (8.7.3/8.7.3) id HAA16386 for freebsd-scsi-outgoing; Mon, 11 Mar 1996 07:46:19 -0800 (PST) Received: from Sisyphos (Sisyphos.MI.Uni-Koeln.DE [134.95.212.10]) by freefall.freebsd.org (8.7.3/8.7.3) with SMTP id HAA16340 for ; Mon, 11 Mar 1996 07:45:54 -0800 (PST) Received: by Sisyphos id AA02742 (5.67b/IDA-1.5); Mon, 11 Mar 1996 15:59:41 +0100 Message-Id: <199603111459.AA02742@Sisyphos> From: se@zpr.uni-koeln.de (Stefan Esser) Date: Mon, 11 Mar 1996 15:59:40 +0100 In-Reply-To: Peter Dufault "Re: NCR disk controller, hp disk" (Mar 11, 6:00) X-Mailer: Mail User's Shell (7.2.6 alpha(2) 7/9/95) To: Peter Dufault Subject: Re: NCR disk controller, hp disk Cc: freebsd-scsi@freebsd.org Sender: owner-freebsd-scsi@freebsd.org X-Loop: FreeBSD.org Precedence: bulk On Mar 11, 6:00, Peter Dufault wrote: } Subject: Re: NCR disk controller, hp disk } } > ... My only complaint } > about the NCR driver is that the format of the script is very difficult } > for an "outsider" to interpret which makes it hard for me to } > lend a hand in fixing bugs... } } Last time I talked to Stefan about this he had plans for addressing } this. Stefan - maybe you should summarize what your thoughts on this } problem are to the scsi list. Well, I think I sent a private reply to you last time, and didn't send this to any list. I just want to show the proposed format, compared to NCR SCRIPTS and the current code. First a short example in the current format: SCR_FROM_REG (sdid), 0, SCR_TO_REG (ctest0), 0, SCR_MOVE_TBL ^ SCR_MSG_OUT, offsetof (struct dsb, smsg), SCR_CLR (SCR_ATN), 0, SCR_COPY (1), RADDR (sfbr), NADDR (lastmsg), SCR_COPY (4), RADDR (scratcha), PADDR (startpos), Changing any part of the microcode requires adjusting a length value at the head of the script. Now NCR SCRIPTS, the official way to write code for the NCR: select_NEXT: move sdid to sfbr move sfbr to ctest0 move table(smsg), with msg_out clear atn move memory 1, pass(chip_physaddr+sfbr), lastmsg move memory 1, pass(chip_physaddr+scratcha), startpos I do not like this syntax for several reasons, but I think it is easy to support, once my proposed new format is implemented: LoadSfbr (sdid) StoreSfbr (ctest0) Move (Table, MSG_OUT, smsg) Clear (Atn) Copy (1, sfbr, lastmsg) Copy (4, scratcha, STARTPOS) The difference to NCR SCRIPTS is: 1) My format will be suitable to initialize an array of bytes from C preprocessor constructs. This requires brackets around the arguments. 2) The format does not suggest the existance of commands, that actually aren't interpreted. The SFBR register is kind of an accumulator, for example, and SCRIPTS doesn't syntactically differentiate between commands with very different semantics. But I consider a Perl script that translates from SCRIPTS into my proposed format trivial, and may even provide you with a proof some time :) The advantages compared to the old format: 1) Much more compact (many commands will require only one or two bytes in the new representation, while the expanded command is 8 or 12 bytes long). 2) More readable 3) Allows run-time binding of modules. This is required for support of the advanced NCR chips. E.g. I'll have a "Fast" pseudo-command, which will inidcate to the run-time loader, that the following commands should be placed into the SRAM within the NCR chip, were present (applies to the 53c825A and 53c875). Without this run-time binding phase, the complete NCR microcode must be present in the driver in all variations, and it takes up some 4KB per chip type ... I have converted the complete NCR microcode to the new format, and I have started to define the macro constructs, that will generate the internal byte-code representation, that will be expanded and bound by the driver init code. Eg.: #define MSG_OUT 6 #define MSG_IN 7 #define LABELSTART 0x1000 #define When 0x80 | #define If 0x40 | #define Not 0x20 | #define Phase(phase) (phase) #define Jump(label) 0x01, (label - LABELSTART), This makes When Phase (MSG_IN) Jump (DO_MSGIN) come out as unsigned char demoscript[] = { 0x80 | (7), 0x01, 0x1005 - 0x1000, }; The most complex problem is in the binding phase. Symbols must be exported to the driver code, since the CPU must be able to access shared variables. The CPU must patch a few NCR instructions, e.g. the run queue is implemented as a circular queue, where a JUMP IDLE gets replaced by a JUMP START when a new command control block has been prepared ... The proposed method has got its limitations, but I think I can live with them. Regards, STefan -- Stefan Esser, Zentrum fuer Paralleles Rechnen Tel: +49 221 4706021 Universitaet zu Koeln, Weyertal 80, 50931 Koeln FAX: +49 221 4705160 ============================================================================== http://www.zpr.uni-koeln.de/~se From owner-freebsd-scsi Mon Mar 11 09:23:17 1996 Return-Path: owner-freebsd-scsi Received: (from root@localhost) by freefall.freebsd.org (8.7.3/8.7.3) id JAA26396 for freebsd-scsi-outgoing; Mon, 11 Mar 1996 09:23:17 -0800 (PST) Received: from jjarray.umd.edu (jjarray.umd.edu [129.2.40.99]) by freefall.freebsd.org (8.7.3/8.7.3) with ESMTP id JAA26379 Mon, 11 Mar 1996 09:23:13 -0800 (PST) Received: (from fcawth@localhost) by jjarray.umd.edu (8.7.3/8.6.12) id MAA08823; Mon, 11 Mar 1996 12:23:07 -0500 (EST) From: Fred Cawthorne Message-Id: <199603111723.MAA08823@jjarray.umd.edu> Subject: Slow Toshiba 6.7X cdrom drive. To: freebsd-scsi@freebsd.org Date: Mon, 11 Mar 1996 12:23:07 -0500 (EST) Cc: freebsd-hardware@freebsd.org X-Mailer: ELM [version 2.4 PL24 ME8a] Content-Type: text Sender: owner-freebsd-scsi@freebsd.org X-Loop: FreeBSD.org Precedence: bulk I just purchased a Toshiba 3701B 6.7X scsi drive. I have the 3401 and I like it, and the price was good... Has anyone else had problems getting this drive to work at full speed?? I get 300K/sec with a 486-66 and an Ultrastor 14f controller. I get 500K/sec with a 1542CF on a P-90 system. I can get 1MB/sec with an NCR scsi controller on the pentium system. What's going on here? Toshiba's technical support is EXTREMELY useless (they hung up on me even...) I can get 600K/sec with a zip drive on the Ultrastor, and >1 meg/sec with disks on the 1542... It seems that the scsi interface on this cdrom drive is really inefficient or something. Could it be that my drive is messed up somehow? BTW, I am running 2.1R on the machine with the ultrastor, and I get similar speeds in dos on that machine. I am running a month-old current on the P-90 system... I would appreciate any information about this. I am starting to regret this purchase... I guess I should have bought the Plextor 4X drive. ): From owner-freebsd-scsi Mon Mar 11 15:02:13 1996 Return-Path: owner-freebsd-scsi Received: (from root@localhost) by freefall.freebsd.org (8.7.3/8.7.3) id PAA27020 for freebsd-scsi-outgoing; Mon, 11 Mar 1996 15:02:13 -0800 (PST) Received: from irz301.inf.tu-dresden.de (irz301.inf.tu-dresden.de [141.76.1.11]) by freefall.freebsd.org (8.7.3/8.7.3) with SMTP id PAA26992 Mon, 11 Mar 1996 15:02:08 -0800 (PST) Received: from sax.sax.de by irz301.inf.tu-dresden.de (8.6.12/8.6.12-s1) with ESMTP id AAA14652; Tue, 12 Mar 1996 00:01:59 +0100 Received: by sax.sax.de (8.6.11/8.6.12-s1) with UUCP id AAA27759; Tue, 12 Mar 1996 00:01:58 +0100 Received: (from j@localhost) by uriah.heep.sax.de (8.7.4/8.6.9) id XAA00663; Mon, 11 Mar 1996 23:46:04 +0100 (MET) From: J Wunsch Message-Id: <199603112246.XAA00663@uriah.heep.sax.de> Subject: Re: Slow Toshiba 6.7X cdrom drive. To: fcawth@jjarray.umd.edu (Fred Cawthorne) Date: Mon, 11 Mar 1996 23:46:04 +0100 (MET) Cc: freebsd-scsi@freebsd.org, freebsd-hardware@freebsd.org Reply-To: joerg_wunsch@uriah.heep.sax.de (Joerg Wunsch) In-Reply-To: <199603111723.MAA08823@jjarray.umd.edu> from "Fred Cawthorne" at Mar 11, 96 12:23:07 pm X-Phone: +49-351-2012 669 X-Mailer: ELM [version 2.4 PL24 ME8a] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-freebsd-scsi@freebsd.org X-Loop: FreeBSD.org Precedence: bulk As Fred Cawthorne wrote: > > I just purchased a Toshiba 3701B 6.7X scsi drive. I have the 3401 and I > like it, and the price was good... Has anyone else had problems getting > this drive to work at full speed?? I get 300K/sec with a 486-66 and > an Ultrastor 14f controller. I get 500K/sec with a 1542CF on a P-90 > system. I can get 1MB/sec with an NCR scsi controller on the pentium system. > What's going on here? Just for reference: i get 330 KB/s (only) from the 3401 on a 486/33 with a Buslogic BT472A (EISA) controller (raw `dd' throughput). The controller is known to get about 5 MB/s from the Seagate Hawk that's also in the machine. -- cheers, J"org joerg_wunsch@uriah.heep.sax.de -- http://www.sax.de/~joerg/ -- NIC: JW11-RIPE Never trust an operating system you don't have sources for. ;-) From owner-freebsd-scsi Mon Mar 11 18:40:41 1996 Return-Path: owner-freebsd-scsi Received: (from root@localhost) by freefall.freebsd.org (8.7.3/8.7.3) id SAA16831 for freebsd-scsi-outgoing; Mon, 11 Mar 1996 18:40:41 -0800 (PST) Received: from GndRsh.aac.dev.com (GndRsh.aac.dev.com [198.145.92.241]) by freefall.freebsd.org (8.7.3/8.7.3) with SMTP id SAA16806 Mon, 11 Mar 1996 18:40:32 -0800 (PST) Received: (from rgrimes@localhost) by GndRsh.aac.dev.com (8.6.12/8.6.12) id SAA13266; Mon, 11 Mar 1996 18:39:50 -0800 From: "Rodney W. Grimes" Message-Id: <199603120239.SAA13266@GndRsh.aac.dev.com> Subject: Re: Slow Toshiba 6.7X cdrom drive. To: joerg_wunsch@uriah.heep.sax.de Date: Mon, 11 Mar 1996 18:39:50 -0800 (PST) Cc: fcawth@jjarray.umd.edu, freebsd-scsi@FreeBSD.org, freebsd-hardware@FreeBSD.org In-Reply-To: <199603112246.XAA00663@uriah.heep.sax.de> from "J Wunsch" at Mar 11, 96 11:46:04 pm X-Mailer: ELM [version 2.4 PL24] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-freebsd-scsi@FreeBSD.org X-Loop: FreeBSD.org Precedence: bulk > > As Fred Cawthorne wrote: > > > > I just purchased a Toshiba 3701B 6.7X scsi drive. I have the 3401 and I > > like it, and the price was good... Has anyone else had problems getting > > this drive to work at full speed?? I get 300K/sec with a 486-66 and > > an Ultrastor 14f controller. I get 500K/sec with a 1542CF on a P-90 > > system. I can get 1MB/sec with an NCR scsi controller on the pentium system. > > What's going on here? > > Just for reference: i get 330 KB/s (only) from the 3401 on a 486/33 > with a Buslogic BT472A (EISA) controller (raw `dd' throughput). The > controller is known to get about 5 MB/s from the Seagate Hawk that's > also in the machine. Try the 3 following dd commands, I found that xfer rates on multispin cdrom drives is heavily block size dependent. dd if=/dev/rcd0a of=/dev/null bs=512 dd if=/dev/rcd0a of=/dev/null bs=2048 dd if=/dev/rcd0a of=/dev/null bs=8192 Many drives will due there highest rate with the 8K I/O, a few others seem to like the 2K I/O. -- Rod Grimes rgrimes@gndrsh.aac.dev.com Accurate Automation Company Reliable computers for FreeBSD From owner-freebsd-scsi Tue Mar 12 00:51:42 1996 Return-Path: owner-freebsd-scsi Received: (from root@localhost) by freefall.freebsd.org (8.7.3/8.7.3) id AAA15884 for freebsd-scsi-outgoing; Tue, 12 Mar 1996 00:51:42 -0800 (PST) Received: from irz301.inf.tu-dresden.de (irz301.inf.tu-dresden.de [141.76.1.11]) by freefall.freebsd.org (8.7.3/8.7.3) with SMTP id AAA15820 Tue, 12 Mar 1996 00:51:11 -0800 (PST) Received: from sax.sax.de by irz301.inf.tu-dresden.de (8.6.12/8.6.12-s1) with ESMTP id JAA00426; Tue, 12 Mar 1996 09:50:41 +0100 Received: by sax.sax.de (8.6.11/8.6.12-s1) with UUCP id JAA02596; Tue, 12 Mar 1996 09:50:40 +0100 Received: (from j@localhost) by uriah.heep.sax.de (8.7.4/8.6.9) id JAA04130; Tue, 12 Mar 1996 09:42:29 +0100 (MET) From: J Wunsch Message-Id: <199603120842.JAA04130@uriah.heep.sax.de> Subject: Re: Slow Toshiba 6.7X cdrom drive. To: rgrimes@GndRsh.aac.dev.com (Rodney W. Grimes) Date: Tue, 12 Mar 1996 09:42:29 +0100 (MET) Cc: joerg_wunsch@uriah.heep.sax.de, fcawth@jjarray.umd.edu, freebsd-scsi@FreeBSD.org, freebsd-hardware@FreeBSD.org Reply-To: joerg_wunsch@uriah.heep.sax.de (Joerg Wunsch) In-Reply-To: <199603120239.SAA13266@GndRsh.aac.dev.com> from "Rodney W. Grimes" at Mar 11, 96 06:39:50 pm X-Phone: +49-351-2012 669 X-Mailer: ELM [version 2.4 PL24 ME8a] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-freebsd-scsi@FreeBSD.org X-Loop: FreeBSD.org Precedence: bulk As Rodney W. Grimes wrote: > Try the 3 following dd commands, I found that xfer rates on multispin > cdrom drives is heavily block size dependent. > > dd if=/dev/rcd0a of=/dev/null bs=512 > dd if=/dev/rcd0a of=/dev/null bs=2048 > dd if=/dev/rcd0a of=/dev/null bs=8192 > > Many drives will due there highest rate with the 8K I/O, a few others > seem to like the 2K I/O. The optimum is 8 K blocks (~ 500 KB/s). When enlarging the blocksize again (500 K, dunno how the driver does slice this request), it drops to the aforementioned 300 KB/s. -- cheers, J"org joerg_wunsch@uriah.heep.sax.de -- http://www.sax.de/~joerg/ -- NIC: JW11-RIPE Never trust an operating system you don't have sources for. ;-) From owner-freebsd-scsi Tue Mar 12 01:27:43 1996 Return-Path: owner-freebsd-scsi Received: (from root@localhost) by freefall.freebsd.org (8.7.3/8.7.3) id BAA18955 for freebsd-scsi-outgoing; Tue, 12 Mar 1996 01:27:43 -0800 (PST) Received: from alumni.cs.colorado.edu (atk@alumni.cs.colorado.edu [128.138.192.80]) by freefall.freebsd.org (8.7.3/8.7.3) with ESMTP id BAA18942 Tue, 12 Mar 1996 01:27:38 -0800 (PST) Received: (from atk@localhost) by alumni.cs.colorado.edu (8.7.5/8.7.3) id CAA06253; Tue, 12 Mar 1996 02:26:17 -0700 (MST) Date: Tue, 12 Mar 1996 02:26:17 -0700 (MST) From: Alan T Krantz Message-Id: <199603120926.CAA06253@alumni.cs.colorado.edu> To: joerg_wunsch@uriah.heep.sax.de, rgrimes@GndRsh.aac.dev.com Subject: Re: Slow Toshiba 6.7X cdrom drive. Cc: fcawth@jjarray.umd.edu, freebsd-hardware@freebsd.org, freebsd-scsi@freebsd.org Sender: owner-freebsd-scsi@freebsd.org X-Loop: FreeBSD.org Precedence: bulk ||From owner-freebsd-scsi@freefall.freebsd.org Mon Mar 11 22:06:52 1996 ||> ||> As Fred Cawthorne wrote: ||> > ||> > I just purchased a Toshiba 3701B 6.7X scsi drive. I have the 3401 and I ||> > like it, and the price was good... Has anyone else had problems getting ||> > this drive to work at full speed?? I get 300K/sec with a 486-66 and ||> > an Ultrastor 14f controller. I get 500K/sec with a 1542CF on a P-90 ||> > system. I can get 1MB/sec with an NCR scsi controller on the pentium system. ||> > What's going on here? ||> ||> Just for reference: i get 330 KB/s (only) from the 3401 on a 486/33 ||> with a Buslogic BT472A (EISA) controller (raw `dd' throughput). The ||> controller is known to get about 5 MB/s from the Seagate Hawk that's ||> also in the machine. ||Try the 3 following dd commands, I found that xfer rates on multispin ||cdrom drives is heavily block size dependent. ||dd if=/dev/rcd0a of=/dev/null bs=512 ||dd if=/dev/rcd0a of=/dev/null bs=2048 ||dd if=/dev/rcd0a of=/dev/null bs=8192 ||Many drives will due there highest rate with the 8K I/O, a few others ||seem to like the 2K I/O. ||-- ||Rod Grimes rgrimes@gndrsh.aac.dev.com ||Accurate Automation Company Reliable computers for FreeBSD Out of curiosity I tried this (P-100, NCR810 with FreeBSD 2.0 ) and got 300mb with 4092 and 615mb with 8192 for a Toshiba XM-3601TA 0725. (512 and 1024 were illegal block sizes). Also got around 4 megabyte for a Fuji M1606S-512 which seems a little high... atk From owner-freebsd-scsi Tue Mar 12 03:51:27 1996 Return-Path: owner-freebsd-scsi Received: (from root@localhost) by freefall.freebsd.org (8.7.3/8.7.3) id DAA05321 for freebsd-scsi-outgoing; Tue, 12 Mar 1996 03:51:27 -0800 (PST) Received: from pegasus.com (pegasus.com [140.174.243.13]) by freefall.freebsd.org (8.7.3/8.7.3) with SMTP id DAA05297 Tue, 12 Mar 1996 03:51:19 -0800 (PST) Received: by pegasus.com (8.6.8/PEGASUS-2.2) id BAA01250; Tue, 12 Mar 1996 01:48:34 -1000 Date: Tue, 12 Mar 1996 01:48:34 -1000 From: richard@pegasus.com (Richard Foulk) Message-Id: <199603121148.BAA01250@pegasus.com> In-Reply-To: J Wunsch "Re: Slow Toshiba 6.7X cdrom drive." (Mar 12, 9:42am) X-Mailer: Mail User's Shell (7.2.5 10/14/92) To: joerg_wunsch@uriah.heep.sax.de (Joerg Wunsch), rgrimes@gndrsh.aac.dev.com (Rodney W. Grimes) Subject: Re: Slow Toshiba 6.7X cdrom drive. Cc: fcawth@jjarray.umd.edu, freebsd-scsi@FreeBSD.org, freebsd-hardware@FreeBSD.org Sender: owner-freebsd-scsi@FreeBSD.org X-Loop: FreeBSD.org Precedence: bulk } > Try the 3 following dd commands, I found that xfer rates on multispin } > cdrom drives is heavily block size dependent. } > } > dd if=/dev/rcd0a of=/dev/null bs=512 } > dd if=/dev/rcd0a of=/dev/null bs=2048 } > dd if=/dev/rcd0a of=/dev/null bs=8192 } > } > Many drives will due there highest rate with the 8K I/O, a few others } > seem to like the 2K I/O. } } The optimum is 8 K blocks (~ 500 KB/s). When enlarging the blocksize } again (500 K, dunno how the driver does slice this request), it drops } to the aforementioned 300 KB/s. } Hmm. Maybe the driver should be tunable. From owner-freebsd-scsi Wed Mar 13 12:38:45 1996 Return-Path: owner-freebsd-scsi Received: (from root@localhost) by freefall.freebsd.org (8.7.3/8.7.3) id MAA22265 for freebsd-scsi-outgoing; Wed, 13 Mar 1996 12:38:45 -0800 (PST) Received: from Sisyphos (Sisyphos.MI.Uni-Koeln.DE [134.95.212.10]) by freefall.freebsd.org (8.7.3/8.7.3) with SMTP id MAA22247 for ; Wed, 13 Mar 1996 12:37:55 -0800 (PST) Received: by Sisyphos id AA17835 (5.67b/IDA-1.5 for freebsd-scsi@freebsd.org); Wed, 13 Mar 1996 21:37:37 +0100 Message-Id: <199603132037.AA17835@Sisyphos> From: se@zpr.uni-koeln.de (Stefan Esser) Date: Wed, 13 Mar 1996 21:37:36 +0100 In-Reply-To: Jim Lowe "Re: NCR disk controller, hp disk" (Mar 13, 13:59) X-Mailer: Mail User's Shell (7.2.6 alpha(2) 7/9/95) To: Jim Lowe Subject: Re: NCR disk controller, hp disk Cc: freebsd-scsi@freebsd.org Sender: owner-freebsd-scsi@freebsd.org X-Loop: FreeBSD.org Precedence: bulk On Mar 13, 13:59, Jim Lowe wrote: } Subject: Re: NCR disk controller, hp disk } OK... I wasn't able to save all the output from the boot up } as the message buffer isn't large enough. In any case, it } looks like I got enough info (I hope). Here is is with } SCSI_DEBUG_FLAGS=0x600. The drive is sd1. I also attached } the output from a ``disklabel sd1''. This time the output proves that tags work in principle ... But it shows another interesting detail, too :) Thanks! (No, I won't tell, and it doesn't cause any harm, at least in your case, but I'll have to change it anyway ... ;-) } (ncr0:1:0): command: 0,0,0,0,0,0-[0 bytes] } code70 valid0 seg0 key6 ili0 eom0 fmark0 } (ncr0:1:0): command: 12,0,0,0,2c,0-[44 bytes] } sd1(ncr0:1:0): using tag #1. } sd1(ncr0:1:0): sync msgout: 1-3-1-19-8. } sd1(ncr0:1:0): sync msgin: 1-3-1-19-8. } sd1(ncr0:1:0): sync: per=25 ofs=8 fak=0 chg=0. } sd1(ncr0:1:0): FAST SCSI-2 100ns (10 Mb/sec) offset 8. } ncr0: actlink: diff=1, new=2, req=2 } sd1(ncr0:1:0): scsi_done Ok. This command worked fine with tag "1" ... } sd1(ncr0:1:0): command: 1a,0,4,0,20,0-[35 bytes] } sd1(ncr0:1:0): using tag #2. ... as did this one with tag "2". } sd1(ncr0:1:0): command: 25,0,0,0,0,0,0,0,0,0-[8 bytes] } (ncr0:2:0): "TOSHIBA CD-ROM XM-3401TA 2873" type 5 removable SCSI 2 } cd0(ncr0:2:0): CD-ROM } cd0(ncr0:2:0): sync msgout: 1-3-1-19-8. } cd0(ncr0:2:0): sync msgin: 1-3-1-3b-8. } cd0(ncr0:2:0): sync: per=59 ofs=8 fak=6 chg=0. } cd0(ncr0:2:0): 250ns (4 Mb/sec) offset 8. } cd0(ncr0:2:0): NOT READY asc:3a,0 Medium not present } can't get the size } (ncr0:2:2): sync msgout: 1-3-1-19-8. } (ncr0:2:2): sync msgin: 1-3-1-3b-8. } (ncr0:2:2): sync: per=59 ofs=8 fak=6 chg=0. } (ncr0:2:3): sync msgout: 1-3-1-19-8. } (ncr0:2:3): sync msgin: 1-3-1-3b-8. } (ncr0:2:3): sync: per=59 ofs=8 fak=6 chg=0. } (ncr0:2:4): sync msgout: 1-3-1-19-8. } (ncr0:2:4): sync msgin: 1-3-1-3b-8. } (ncr0:2:4): sync: per=59 ofs=8 fak=6 chg=0. } (ncr0:2:5): sync msgout: 1-3-1-19-8. } (ncr0:2:5): sync msgin: 1-3-1-3b-8. } (ncr0:2:5): sync: per=59 ofs=8 fak=6 chg=0. } (ncr0:2:6): sync msgout: 1-3-1-19-8. } (ncr0:2:6): sync msgin: 1-3-1-3b-8. } (ncr0:2:6): sync: per=59 ofs=8 fak=6 chg=0. } (ncr0:2:7): sync msgout: 1-3-1-19-8. } (ncr0:2:7): sync msgin: 1-3-1-3b-8. } (ncr0:2:7): sync: per=59 ofs=8 fak=6 chg=0. Well, that's the thing I'd never seen before: The code tries to negotiate sync. transfer rate with every LUN of target 2, which is one and the same CDROM drive. This doesn't hurt, but it is, well, at least a waste of msgbuf space :) } sd1(ncr0:1:0): sd_open: dev=0x10d0a (unit 1, partition 2) } sd1(ncr0:1:0): scsi_cmd } sd1(ncr0:1:0): using tag #3. } ncr0: actlink: diff=1, new=4, req=4 } sd1(ncr0:1:0): scsi_done Ok: TEST UNIT READY } sd1(ncr0:1:0): command: 0,0,0,0,0,0-[0 bytes] } sd1(ncr0:1:0): calling private start() } sd1(ncr0:1:0): sdstart sd1(ncr0:1:0): scsi_cmd } sd1(ncr0:1:0): using tag #4. } cr0:1:0): scsi_done } sd1(ncr0:1:0): command: 0,0,0,0,0,0-[0 bytes] } sd1(ncr0:1:0): calling private start() } sd1(ncr0:1:0): sdstart sd1(ncr0:1:0): scsi_cmd } sd1(ncr0:1:0): scsi_done Ok: TEST UNIT READY (don't know, why so many are issued, this is implemented in the GENERIC SCSI code ...) } sd1(ncr0:1:0): command: 1e,0,0,0,1,0-[0 bytes] } sd1(ncr0:1:0): calling private start() } sd1(ncr0:1:0): sdstart sd1(ncr0:1:0): } sdstrategy sd1(ncr0:1:0): 512 bytes @ blk0 } sd1(ncr0:1:0): sdstart sd1(ncr0:1:0): scsi_cmd } sd1(ncr0:1:0): scsi_done Tags are only reported, when they are used for the first time. This command doesn't tell which tag had been assigned, but it was in the range 1 to 4 for sure ... } sd1(ncr0:1:0): command: 28,0,0,0,0,0,0,0,1,0-[512 bytes] } ------------------------------ } 000: 00 58 e3 f0 00 00 00 00 00 00 00 00 00 00 00 00 } 016: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 } 032: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 } 048: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 } ------------------------------ } code70 valid0 seg0 keyb ili0 eom0 fmark0 } info: 0 0 0 0 followed by 20 extra bytes } extra: 0 0 0 0 4e 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 } sd1(ncr0:1:0): calling private err_handler() } sd1(ncr0:1:0): ABORTED COMMAND asc:4e,0 Overlapped commands attempted } , retries:4 } sd1(ncr0:1:0): private err_handler() returned -2 } sd1(ncr0:1:0): scsi_done Ok. I have removed the remaining lines, since they only duplicate what appeared above ... Hmmm, all I can tell you now is, that several commands succeed, before the first read fails. I'm posting this to the freebsd-scsi list, too, in the hope that somebody has a really good idea ... :) Regards, STefan -- Stefan Esser, Zentrum fuer Paralleles Rechnen Tel: +49 221 4706021 Universitaet zu Koeln, Weyertal 80, 50931 Koeln FAX: +49 221 4705160 ============================================================================== http://www.zpr.uni-koeln.de/~se From owner-freebsd-scsi Fri Mar 15 12:04:56 1996 Return-Path: owner-freebsd-scsi Received: (from root@localhost) by freefall.freebsd.org (8.7.3/8.7.3) id MAA26818 for freebsd-scsi-outgoing; Fri, 15 Mar 1996 12:04:56 -0800 (PST) Received: from install.stdio.com (install.stdio.com [204.152.114.50]) by freefall.freebsd.org (8.7.3/8.7.3) with ESMTP id MAA26811 for ; Fri, 15 Mar 1996 12:04:38 -0800 (PST) Received: (from root@localhost) by install.stdio.com (8.7.4/8.7.3) id QAA00196; Fri, 15 Mar 1996 16:11:15 GMT Date: Fri, 15 Mar 1996 16:11:15 GMT Message-Id: <199603151611.QAA00196@install.stdio.com> To: freebsd-SCSI@freebsd.org Reply-To: risner@stdio.com From: risner@stdio.com Subject: Disk problems Cc: risner@stdio.com Sender: owner-freebsd-scsi@freebsd.org X-Loop: FreeBSD.org Precedence: bulk I have having several problems with 2.2-SNAP 3-3 *AND* 2.1-RELEASE. 8 meg, 486-sx-25 ASUS VL/I-486SV2GX4, SMC ethernet SCSI = FDC 850 8bit "seagate" 1 conner 100 meg (Digital RZ23 SCSI) 1 seagate 235 meg ST1239N 1 Emulex ESDI - SCSI with one ESDI disk formatted First, I could only get the system installed with the Seagate present. The Emulex had unformatted disks/media. If the emulex on board at boot time, the install shell crashes, with "sysinstall: read: no such file or address" or "sysinstall: page fault". I got it installed on the Seagate, but when adding the other disks I noticed that the FDC/Seagate controller boots from ID 6 down. FreeBSD assigns disks from ID 0 and up, so it can't mount the root with more than one disk installed. I placed the Emulex on board and booted fine after It was installed on the Seagate. I used "scsiformat -w sd1" to format the ESDI/SCSI disk. Then reboot to find it not booting because the New ESDI is BIOS booted and it is clean. I took it off and moved the seagate disk to ID 6. But NOW that I have it installed I get "sea: abritration timeout" a lot when I add either the Conner or Emulex to the board. I cannot figure it and I hope someone can help. The UNFORMATTED Emulex disk looked like: /kernel: (sea0:2:0): "unknown unknown ????" type 0 fixed SCSI 0 /kernel: sd1(sea0:2:0): Direct-Access /kernel: sd1(sea0:2:0): NOT READY asc:22,0 /kernel: sd1(sea0:2:0): Illegal function (should use 20 00, 24 00, or 26 00) /kernel: , retries:4 ... /kernel: sd1: could not get size /kernel: 0MB (0 512 byte sectors) I think maybe this is what caused the page faults and other crashes on install. Second, I have a config with: device sd0 boots fine when ONLY one disk installed. controller sea0 at isa? bio irq 3 iomem 0xce000 iosiz 0x2000 vector seaintr controller scbus0 at sea0 disk sd0 at scbus0 target 6 unit 0 Does not boot with a single disk at target 6. In fact it looks like this: /kernel.sd0: sea0: type Future Domain TMC-885/TMC-950 /kernel.sd0: (sea0:0:0): "SEAGATE KS23758 9224" type 0 fixed SCSI 1 /kernel.sd0: sd1(sea0:0:0): Direct-Access 191MB (392175 512 byte sectors) /kernel.sd0: (sea0:1:0): "SEAGATE KS23758 9224" type 0 fixed SCSI 1 /kernel.sd0: sd2(sea0:1:0): Direct-Access 191MB (392175 512 byte sectors) /kernel.sd0: (sea0:2:0): "SEAGATE KS23758 9224" type 0 fixed SCSI 1 /kernel.sd0: sd1(sea0:2:0): Direct-Access 191MB (392175 512 byte sectors) /kernel.sd0: (sea0:3:0): "SEAGATE KS23758 9224" type 0 fixed SCSI 1 /kernel.sd0: sd3(sea0:3:0): Direct-Access 191MB (392175 512 byte sectors) /kernel.sd0: (sea0:4:0): "SEAGATE KS23758 9224" type 0 fixed SCSI 1 /kernel.sd0: sd4(sea0:4:0): Direct-Access 191MB (392175 512 byte sectors) /kernel.sd0: (sea0:5:0): "SEAGATE KS23758 9224" type 0 fixed SCSI 1 /kernel.sd0: sd5(sea0:5:0): Direct-Access 191MB (392175 512 byte sectors) /kernel.sd0: (sea0:7:0): "SEAGATE KS23758 9224" type 0 fixed SCSI 1 /kernel.sd0: sd6(sea0:7:0): Direct-Access 191MB (392175 512 byte sectors) And fails with "can't mount root". Any suggestions? I looked at the current FAQ, Handbook and 2.2 SNAP LINT kernel. I can not figure out how to build a kernel that will boot. Also, if I install on the EMULEX I only see one disk even if there are two working formatted disks installed. It does (the install disk) not seem to probe for the lun disks? Risner From owner-freebsd-scsi Fri Mar 15 12:51:31 1996 Return-Path: owner-freebsd-scsi Received: (from root@localhost) by freefall.freebsd.org (8.7.3/8.7.3) id MAA29709 for freebsd-scsi-outgoing; Fri, 15 Mar 1996 12:51:31 -0800 (PST) Received: from irz301.inf.tu-dresden.de (irz301.inf.tu-dresden.de [141.76.1.11]) by freefall.freebsd.org (8.7.3/8.7.3) with SMTP id MAA29703 for ; Fri, 15 Mar 1996 12:51:27 -0800 (PST) Received: from sax.sax.de by irz301.inf.tu-dresden.de (8.6.12/8.6.12-s1) with ESMTP id VAA18833; Fri, 15 Mar 1996 21:51:14 +0100 Received: by sax.sax.de (8.6.11/8.6.12-s1) with UUCP id VAA04575; Fri, 15 Mar 1996 21:51:14 +0100 Received: (from j@localhost) by uriah.heep.sax.de (8.7.4/8.6.9) id VAA02233; Fri, 15 Mar 1996 21:34:35 +0100 (MET) From: J Wunsch Message-Id: <199603152034.VAA02233@uriah.heep.sax.de> Subject: Re: Tips on developing a new SCSI driver? To: freebsd-scsi@freebsd.org Date: Fri, 15 Mar 1996 21:34:35 +0100 (MET) Cc: cau@cc.gatech.edu (Carlos Ugarte) Reply-To: joerg_wunsch@uriah.heep.sax.de (Joerg Wunsch) In-Reply-To: <199603150623.BAA13696@oscar.cc.gatech.edu> from "Carlos Ugarte" at Mar 15, 96 01:23:29 am X-Phone: +49-351-2012 669 X-Mailer: ELM [version 2.4 PL24 ME8a] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-freebsd-scsi@freebsd.org X-Loop: FreeBSD.org Precedence: bulk As Carlos Ugarte wrote: > > I asked this a couple of days ago on freebsd-scsi, but I never > saw the message come thru (or any responses), so I am asking > here. (I did subscribe, and I thought it wasn't a closed list...) I didn't see your message there. Nope, it's not a closed list, and i would encourage to discuss SCSI internals there instead of the noisy -hackers list. There's no written documentation, i think. However, those guys who wrote the other SCSI drivers might be a good help for you. After all, the FD16XX series driver is an FRI! (Frequently Requested Item) -- cheers, J"org joerg_wunsch@uriah.heep.sax.de -- http://www.sax.de/~joerg/ -- NIC: JW11-RIPE Never trust an operating system you don't have sources for. ;-) From owner-freebsd-scsi Fri Mar 15 15:43:00 1996 Return-Path: owner-freebsd-scsi Received: (from root@localhost) by freefall.freebsd.org (8.7.3/8.7.3) id PAA11969 for freebsd-scsi-outgoing; Fri, 15 Mar 1996 15:43:00 -0800 (PST) Received: from godzilla.zeta.org.au (godzilla.zeta.org.au [203.2.228.19]) by freefall.freebsd.org (8.7.3/8.7.3) with SMTP id PAA11964 for ; Fri, 15 Mar 1996 15:42:54 -0800 (PST) Received: (from bde@localhost) by godzilla.zeta.org.au (8.6.12/8.6.9) id KAA21405; Sat, 16 Mar 1996 10:41:00 +1100 Date: Sat, 16 Mar 1996 10:41:00 +1100 From: Bruce Evans Message-Id: <199603152341.KAA21405@godzilla.zeta.org.au> To: freebsd-SCSI@FreeBSD.org, risner@stdio.com Subject: Re: Disk problems Sender: owner-freebsd-scsi@FreeBSD.org X-Loop: FreeBSD.org Precedence: bulk >I have having several problems with 2.2-SNAP 3-3 *AND* 2.1-RELEASE. Don't use the 3-3 SNAP. -current was more unstable on 3-3 than at any other time in the last 4 months. >8 meg, 486-sx-25 ASUS VL/I-486SV2GX4, SMC ethernet >SCSI = FDC 850 8bit "seagate" >1 conner 100 meg (Digital RZ23 SCSI) >1 seagate 235 meg ST1239N >1 Emulex ESDI - SCSI with one ESDI disk formatted >[things I don't know anything about...] >I got it installed on the Seagate, but when adding the other disks I noticed >that the FDC/Seagate controller boots from ID 6 down. FreeBSD assigns disks >from ID 0 and up, so it can't mount the root with more than one disk installed. The Minutes of the SCSI PnP Meeting 1 (which I found at ftp.symbios.com) discuss this problem. It seems that scanning the scsi bus from id 6 down, or at least booting from the drive on the highest id, is best, but people can't quite agree. All my controllers (ultrastor, buslogic, ncr) seem to scan from the bottom up so I don't normally notice that the the FreeBSD order isn't always right. However, I noticed that this problem combined with the old problem of assigning BIOS drives numbers to FreeBSD unit numbers gave interesting behaviour when I changed some Ids to the "correct" ones: my default, working setup: boot drive on Id 3 Zip drive on Id 5 "correct", broken setup: boot drive on Id 6 Zip drive on Id 5 case 1: Zip disk in drive boot drive is actually Zip drive; BIOS and FreeBSD agree that it is unit 0; no problems provided there is a suitable MBR (and FreeBSD :-) on the Zip drive case 2: no ZIp disk in drive BIOS doesn't see the Zip drive but FreeBSD does, so the drive on Id 6 has BIOS number 0 and FreeBSD unit number 1. Oops. This is with an ASUS NCR controller _not_ using the BIOS option to treat removable drives as fixed drives (using this option seems to screw up media change). Here are my bootblock changes to allow specifying the FreeBSD unit number independently of the BIOS drive number at boot time. Bruce diff -c2 src/sys/i386/boot/biosboot/Makefile~ src/sys/i386/boot/biosboot/Makefile *** src/sys/i386/boot/biosboot/Makefile~ Sat Mar 9 04:42:23 1996 --- src/sys/i386/boot/biosboot/Makefile Sun Mar 10 17:26:35 1996 *************** *** 21,28 **** #CFLAGS+= -DFORCE_COMCONSOLE ! # Assume hd(*,a) instead of wd(*,a) if the boot seems to happen from ! # a hard disk. ! # This can be useful for people booting in a mixed IDE/SCSI environment. ! #CFLAGS+= -DBOOT_HD CLEANFILES+= boot.nohdr boot.strip boot1 boot2 sizetest --- 22,31 ---- #CFLAGS+= -DFORCE_COMCONSOLE ! # Bias the conversion from the BIOS drive number to the FreeBSD unit number ! # for hard disks to save typing. E.g., BOOT_HD_BIAS=1 makes BIOS drive 1 ! # correspond to 1:sd(0,a) instead of 1:sd(1,a). ! # This may be useful for people booting in a mixed IDE/SCSI environment ! # (set BOOT_HD_BIAS to the number of IDE drives). ! #CFLAGS+= -DBOOT_HD_BIAS=1 CLEANFILES+= boot.nohdr boot.strip boot1 boot2 sizetest diff -c2 src/sys/i386/boot/biosboot/README.386BSD~ src/sys/i386/boot/biosboot/README.386BSD *** src/sys/i386/boot/biosboot/README.386BSD~ Fri Feb 17 08:57:51 1995 --- src/sys/i386/boot/biosboot/README.386BSD Sun Mar 10 16:59:28 1996 *************** *** 103,116 **** ########################################################################## ! In the case you have two drives the same type (both scsi or bith IDE/ESDI), ! wd(0,a)xxx ! will boot xxx from drive 0, a partition. ! wd(1,a)xxx ! will boot xxx from drive 1, a partition. ! similarly for sd. ! if you have one wd drive and one scsi drive, then you MUST ! use device 'hd' otherwise the following will happen: --- 103,119 ---- ########################################################################## ! In the case you have several drives the same type (all scsi or all IDE/ESDI), ! wd(0,a)xxx ! will boot xxx from drive 0, a partition. ! wd(1,a)xxx ! will boot xxx from drive 1, a partition. ! similarly for sd and for higher drive numbers (if the BIOS supports them). ! if you have one or more wd drives and one or more scsi drives, then yo ! MUST specify the BIOS drive number for booting the scsi drives: ! 2:sd(0,a)xxx ! will boot xxx from scsi drive 0, a partition, provided `2' is the correct ! BIOS drive number for sd0. otherwise the following will happen: *************** *** 119,126 **** it boots the kernel correctly, then tells the kernel to use sd1 as root. you however may not have an sd1, and problems arise. - - hd is special in that the kernel is always told to use unit 0, - The correct TYPE of device will be specified too, so the kernel - will be told either sd0 or wd0. Whether sd or wd is specified to the kernel is read from the disklabel, --- 122,125 ---- diff -c2 src/sys/i386/boot/biosboot/README.serial~ src/sys/i386/boot/biosboot/README.serial *** src/sys/i386/boot/biosboot/README.serial~ Fri Apr 21 19:43:53 1995 --- src/sys/i386/boot/biosboot/README.serial Mon Mar 11 07:19:23 1996 *************** *** 77,83 **** >> FreeBSD BOOT @ 0x10000: 640/7168 k of memory ! Use hd(1,a)/kernel to boot sd0 when wd0 is also installed. ! Usage: [[[fd(0,a)]/kernel][-s][-r][-a][-c][-d][-b][-v][-h]] ! Use ? for file list or simply press Return for defaults Boot: --- 77,83 ---- >> FreeBSD BOOT @ 0x10000: 640/7168 k of memory ! Usage: [[[0:][fd](0,a)]/kernel][-abcCdhrsv] ! Use 1:sd(0,a)kernel to boot sd0 if it is BIOS drive 1 ! Use ? for file list or press Enter for defaults Boot: diff -c2 src/sys/i386/boot/biosboot/boot.c~ src/sys/i386/boot/biosboot/boot.c *** src/sys/i386/boot/biosboot/boot.c~ Sat Mar 9 04:42:24 1996 --- src/sys/i386/boot/biosboot/boot.c Sun Mar 10 18:24:39 1996 *************** *** 101,117 **** gateA20(); ! ! /***************************************************************\ ! * As a default set it to the first partition of the boot * ! * floppy or hard drive * ! * Define BOOT_HT to boot sd0 when wd0 is also installed * ! \***************************************************************/ ! part = 0; unit = drive & 0x7f; ! #ifdef BOOT_HD ! maj = (drive&0x80 ? 1 : 2); /* a good first bet */ ! #else ! maj = (drive&0x80 ? 0 : 2); /* a good first bet */ #endif loadstart: --- 110,135 ---- gateA20(); ! /* ! * The default boot device is the first partition in the ! * compatibility slice on the boot drive. ! */ ! dosdev = drive; ! maj = 2; unit = drive & 0x7f; ! #ifdef dontneed ! slice = 0; ! part = 0; ! #endif ! if (drive & 0x80) { ! /* ! * Hard drive. Adjust. Guess that the FreeBSD unit number ! * is the BIOS drive number biased by BOOT_HD_BIAS, ! */ ! maj = 0; ! #if BOOT_HD_BIAS > 0 ! if (BOOT_HD_BIAS <= unit) ! unit -= BOOT_HD_BIAS; #endif + } loadstart: *************** *** 119,127 **** /* If we have looped, use the previous entries as defaults */ printf("\n>> FreeBSD BOOT @ 0x%x: %d/%d k of memory\n" ! "Use hd(1,a)/kernel to boot sd0 when wd0 is also installed.\n" ! "Usage: [[%s(%d,a)]%s][-abcCdhrsv]\n" "Use ? for file list or press Enter for defaults\n\nBoot: ", ouraddr, bootinfo.bi_basemem, bootinfo.bi_extmem, ! devs[maj], unit, name); name = dflname; /* re-initialize in case of loop */ --- 137,145 ---- /* If we have looped, use the previous entries as defaults */ printf("\n>> FreeBSD BOOT @ 0x%x: %d/%d k of memory\n" ! "Usage: [[[%d:][%s](%d,a)]%s][-abcCdhrsv]\n" ! "Use 1:sd(0,a)kernel to boot sd0 if it is BIOS drive 1\n" "Use ? for file list or press Enter for defaults\n\nBoot: ", ouraddr, bootinfo.bi_basemem, bootinfo.bi_extmem, ! dosdev & 0x7f, devs[maj], unit, name); name = dflname; /* re-initialize in case of loop */ *************** *** 167,171 **** startaddr = head.a_entry & 0x00FFFFFF; addr = startaddr; ! printf("Booting %s(%d,%c)%s @ 0x%x\n" , devs[maj] , unit --- 185,190 ---- startaddr = head.a_entry & 0x00FFFFFF; addr = startaddr; ! printf("Booting %d:%s(%d,%c)%s @ 0x%x\n" ! , dosdev & 0x7f , devs[maj] , unit diff -c2 src/sys/i386/boot/biosboot/sys.c~ src/sys/i386/boot/biosboot/sys.c *** src/sys/i386/boot/biosboot/sys.c~ Mon Jun 26 15:07:31 1995 --- src/sys/i386/boot/biosboot/sys.c Mon Mar 11 04:06:41 1996 *************** *** 39,42 **** --- 39,44 ---- #endif + static char biosdrivedigit; + #define BUFSIZE 8192 #define MAPBUFSIZE BUFSIZE *************** *** 165,169 **** { char **devp, *cp = name; ! int ret; /*******************************************************\ * If bracket given look for preceding device name * --- 167,172 ---- { char **devp, *cp = name; ! int biosdrive, ret; ! /*******************************************************\ * If bracket given look for preceding device name * *************** *** 177,180 **** --- 180,193 ---- else { + /* + * Look for a BIOS drive number (a leading digit followed + * by a colon). + */ + if (*(name + 1) == ':' && *name >= '0' && *name <= '9') { + biosdrivedigit = *name; + name += 2; + } else + biosdrivedigit = '\0'; + if (cp++ != name) { *************** *** 211,232 **** return 1; } switch(maj) { - case 1: - dosdev = unit | 0x80; - unit = 0; - break; case 0: case 4: ! dosdev = unit | 0x80; break; case 2: ! dosdev = unit; break; ! case 3: ! printf("Wangtek unsupported\n"); return 1; - break; } inode.i_dev = dosdev; /***********************************************\ --- 224,256 ---- return 1; } + if (biosdrivedigit != '\0') + biosdrive = biosdrivedigit - '0'; + else { + biosdrive = unit; + #if BOOT_HD_BIAS > 0 + /* XXX */ + if (maj == 4) + biosdrive += BOOT_HD_BIAS; + #endif + } switch(maj) { case 0: case 4: ! dosdev = biosdrive | 0x80; break; case 2: ! dosdev = biosdrive; break; ! default: ! printf("Unknown device\n"); return 1; } + printf("dosdev = %x, biosdrive = %d, unit = %d, maj = %d\n", + dosdev, biosdrive, unit, maj); + #if 0 + getchar(0); + #endif + inode.i_dev = dosdev; /***********************************************\ diff -c2 src/sys/i386/boot/biosboot/table.c~ src/sys/i386/boot/biosboot/table.c *** src/sys/i386/boot/biosboot/table.c~ Sat Mar 9 04:42:24 1996 --- src/sys/i386/boot/biosboot/table.c Sun Mar 10 15:47:40 1996 *************** *** 137,141 **** * fragmentation. */ ! char *devs[] = { "wd", "hd", "fd", "wt", "sd", 0 }; char dflname[] = "/kernel"; char *name = dflname; --- 137,141 ---- * fragmentation. */ ! char *devs[] = { "wd", "dk", "fd", "wt", "sd", 0 }; char dflname[] = "/kernel"; char *name = dflname;