2239 Commits

Author SHA1 Message Date
rgrimes
53b6ed3870 >From: bde@kralizec.zeta.org.au (Bruce Evans)
Date: Thu, 16 Sep 93 01:35:10 +1000
Julian writes:

>In fact DEVIDLE and FINDWORK ended up being basically equivalent.
>the bit I wonder about, is the returning of 0.. What (other than
>another request from somewhere else in the kernel) is going to start
>work on the next item on the queue?

I think removing FINDWORK would make things clearer.

Nothing much is going to start work on the next item.  However, it is
pointless to continue processing the queue for the same unready drive.
Aborting all reads and trying harder to perform all writes would be
better.
Julian writes.

> no, actually it should be:
> fdt = fd_data[FDUNIT(minor(dev))].ft;

Fixed.
From: bde@kralizec.zeta.org.au (Bruce Evans)
Date: Thu, 16 Sep 93 22:56:01 +1000
The fd driver reported the wrong cylinder/head/sector numbers after an
error (ST3 is only valid after a sense-drive command), and didn't report
fs block numbers (diskerr was not used).

There was an old problem with writes to block fd devices.   Try this:

1. write protect floppy in fd0.
2. tar cf /dev/fd0a /dev/null.  Repeat a few times.  Later writes tend to
   terminate earlier.
   3. un-write protect floppy.
   4. repeat step 2.  The writes tend to return 0, 2048, 4096, ... and then
      succeed.

This was caused by a bug in vfs__bios.c.  (The bug is fixed in NetBSD's
vfs_bio.c.)  fd.c sets bp->b_resid to nonzero after an error.  vfs__bios.c
was not initializing bp->b_resid.  This causes some writes to terminate
early (e.g., writes to block devices; see spec_write()).

Related funnies:

1. Nothing tries to write the residual bytes.
2. The wd driver sets bp->b_resid to 0 after an error, so there's no
   way anything else could write the residual bytes.
3. I use the block fd device for tar because the raw device seemed to
   have more bugs long ago, and because it ought to be able to handle
   buffering more transparently (I don't want to have to know the
   device size).  But spec_write() always uses the size BLKDEV_IOSIZE
   == 2048 which is too small.  For disks it should use the size of
   one track (rounded down to meet the next track boundary or the i/o
   size).  Here it would help if the DIOCGPART ioctl worked.  But
   DIOCGPART is not implemented for floppies, and the disk size is
   ignored except for partitions of type FS_BSDFFS.

Bruce
1993-09-23 15:22:57 +00:00
dg
ee104ee3b5 rewrote interrupt code to be cleaner, fixed up some other parts
to make it easier to add future board types.
1993-09-22 17:47:43 +00:00
rgrimes
10fadf89af Bring README into sync with Julians latest README (1 line deleted which was
a reference to README.AHA1742)
1993-09-21 20:26:02 +00:00
rgrimes
080a359070 Increased pseudo-device bpfilter from 1 unit to 4 units 1993-09-21 06:16:07 +00:00
rgrimes
24087ad17c Increase the number of ptys to 12, puts the kernel sizes very close to
the limit.
1993-09-21 06:12:20 +00:00
rgrimes
ad0687dc16 >From julian@jules.DIALix.oz.au Fri Sep 10 22:58:30 1993
>Date: Sat, 11 Sep 93 12:59:39 +0800

1/ fix bug where cd0a was unusable because it was compared against
the number of 2k blocks not the number of 512byte blocks.. gave
an error for all reads past 1/4 way through the disk (cd0d was ok).

2/ fix open code so that it now notices if a disk has been changed
and updates the disklabel.

3/ use the new error handling code from st.c

4/ start adding stuff to get ready for using cd_scsi_cmd from
cd_start (like is done in st and sd)

5/ more general cleanups including making dmesg report
sector size of disk.. (believe it or not SUN drives use 512 byte)
1993-09-21 05:30:35 +00:00
rgrimes
00d21e535d Increase the timeout from 2000 counts to 6000 counts, reported by someone
on the net (I lost the mail).  This should fix some units not showing up
during probes.
1993-09-20 06:28:13 +00:00
rgrimes
c56db4c78a The dynamically allocated struct's where not getting properly initialized
as malloc memory is NOT zerod.  Added bzero's after the malloc calls
to make sure that things are initialized.

>From Julian Elischer
1993-09-20 06:27:06 +00:00
rgrimes
5d09f632e8 Enabled floppy drive ioctl's so that disklabel on a floppy is now
quite and works correctly.  This is derived from notes in Bruce Evans
lattest patches to fd.c:

>From: bde@kralizec.zeta.org.au (Bruce Evans)
>Subject: fixes for fd driver

6. I picked up some code posted the other day to implement label ioctls.
   Now `disklabel fd0' works.  See a comment for how to modify conf.c.
1993-09-15 23:29:11 +00:00
rgrimes
fe3380ea19 Removed $Log$ section and patch kit headers. And here is the full
message for Bruces changes:

>From: bde@kralizec.zeta.org.au (Bruce Evans)
>Subject: fixes for fd driver

I think I've fixed some bugs in the 0.2.4 fd driver.

1. The main cause of hangs was that there was no timeout for seeks.  So
   attempting i/o with no floppy in the drive hung iff a seek was required.

2. Opens of unattached drives were allowed.  The kernel usually paniced
   soon after due to a bad pointer.

3. Some timeout functions ran at splclock() instead of splbio().  This
   may not have mattered.

4. The state machine was left in a funny state after a timeout.

5. Some function headers were new-style.

6. I picked up some code posted the other day to implement label ioctls.
   Now `disklabel fd0' works.  See a comment for how to modify conf.c.
1993-09-15 23:27:45 +00:00
rgrimes
9a1f245561 >From: paul@u.tvt.se (Paul Pries)
>Subject: Bad bug in kbdtables.h [FreeBSD]

I found a bug in /sys/i386/isa/kbdtables.h which contain the
different keyboard layouts for syscons.  This regards all tables exept
the Danish and US.  When compiling the kernel with any other keymapping
than Danish or none at all (US), you get an error that 'key_map' is undefined.
This is because there is a typo in the name of the struct containing
the tables, keymap intead of key_map.
1993-09-15 23:03:21 +00:00
jkh
c9fee73323 Bruce's multifarious patches for the floppy driver (not well tested, but
since what we have is crap as it is, it can't do much worse!).
1993-09-14 19:34:32 +00:00
rgrimes
352c5d78ee Put the uha0 controller at its proper default IRQ of 14! Thanks Warner! 1993-09-13 03:15:26 +00:00
rgrimes
39522705b5 >From: rich@id.slip.bcm.tmc.edu.cdrom.com (Rich Murphey)
I'd like to be able to say:

options         "SYMTAB_SPACE=78000"    # Kernel debugger symbol table size

If this seems a reasonable interim solution for freebsd, here's the
patch.. Rich
1993-09-12 21:56:50 +00:00
nate
ef1065697e Removed volatile functions which were causing grief in the system, since
volatile functions are undefined, and there is no reason to have them
in our kernel.
1993-09-10 22:14:37 +00:00
rgrimes
af0d0830a1 This is just to shut the compiler up
===================================================================
RCS file: /a/cvs/386BSD/src/sys/i386/i386/vm_machdep.c,v
retrieving revision 1.3
diff -c -r1.3 vm_machdep.c
*** 1.3	1993/07/27 10:52:21
--- vm_machdep.c	1993/09/10 20:12:53
***************
*** 179,184 ****
--- 179,186 ----
  #endif
  	splclock();
  	swtch();
+ 	/*NOTREACHED*/
+ 	for(;;);
  }

  cpu_wait(p) struct proc *p; {
1993-09-10 20:39:13 +00:00
ats
438a7d20d4 Fixed a small typo in an error printf. 1993-09-10 18:03:21 +00:00
rgrimes
0f9beb0e4f From guido@gvr.win.tue.nl Wed Sep 8 13:34:16 1993
That is because TIOCMGET was broken. Yes...this is known for some time
and no, we (Bruce and me) never posted it. Why? Simply because we choose
to post fixes when we fixed most of the bugs.

Anyway..now that the slip problems are coming, here is a fix for
correct TIOCMGET behaviour.

-Guido
Note: this should be tested first (Rich?).  Tested by rgrimes
1993-09-10 16:59:16 +00:00
rgrimes
cd0e0e6cee Moved db_end_line after db_printf to eliminate forward reference and
shut up the compiler about prototype mismatch.
1993-09-09 23:03:24 +00:00
rgrimes
9c6b6f0846 The scsi cd.c driver is now fully dynamic. You can change the lines
in your config file from:
device          cd0
device          cd1
...
device          cdn
to either
device          cd0
or
psuedo-device   cd0

The driver now dynamically allocates all per unit dependent structs, so it
will never run out of units (okay, so now we need 32 bit device major/minor
numbers!).  It will allocate unit numbers as it needs them.
1993-09-09 07:18:52 +00:00
dg
e0b6b31115 As of this revision, all known bugs have been fixed. Some of the fixes include:
1) fixed 3c503 lock-up if the thinwire cable was disconnected at boot time
2) 8013EBT boards now work (quite well!) in 16bit/16k mode
3) ED_NO_DOUBLE_BUFFERING flag now works
4) slightly higer performance (about 3%) with 16bit WD/SMC boards
5) support for WD8013WC (10BaseT) boards

   Additionally, the probe code has been reorganized to be much cleaner. This
revision of the driver is 1.25. The release notes have been updated as well.
1993-09-09 07:01:23 +00:00
rgrimes
a2caed0ad2 Changed the delay from 100 seconds to 20 seconds if you don't have scsi
dump code.
1993-09-09 01:30:46 +00:00
rgrimes
c85704fbf7 Changed the pg("ptdi> %x") to a printf and then a panic, since we are
going to panic shortly after this anyway.  Destroys less state, and
keeps the machine from waiting for someone to smash the return key
a few times before it panics!
1993-09-09 01:11:41 +00:00
jkh
d8d8a25db4 Soren's latest syscons changes. 1993-09-08 22:11:48 +00:00
rgrimes
18afef43e4 First pass fixes to start using malloc structures for all per unit
data.  cd_data is now malloced on a per unit basis.

Protected all if ({scsi,cd}_debug).... with #ifdef CDDEBUG to reduce the
the size of the kernel when not debugging.
1993-09-08 21:04:32 +00:00
rgrimes
9b89fe5904 >From Theo Derradt
This is a machine specific include, it belongs in the machine specific
directory.
1993-09-08 19:29:54 +00:00
rgrimes
3653e4ed94 From michaele@vice.ico.tek.com Wed Sep 8 09:50:45 1993
Subject: Re: Some small errors in GAMMA
4.      Move printf("\n"); at line 491 in "/sys/i386/isa/sio.c" to after
        COM_MULTIPORT block at line 512.
From rgrimes:
The above would cause the word (multiport) with out a new line to
appear after the uart type message if you had COM_MULTIPORT enabled.
1993-09-08 17:38:05 +00:00
rgrimes
7f0b713e96 Several fixes to the st driver, for density detection and selection. No
longer have to do the st -f /dev/rst0 blocksize 0 on dat drives!
1993-09-07 15:58:00 +00:00
rgrimes
01e2335ab4 Reverting wd driver back to version before Bruces new driver until the
many bugs can be worked out of it...
1993-09-07 02:08:51 +00:00
rgrimes
93446b99ae Removed patch kit header, added $Id$
Increased timeout in wdwait from 1000 to 2000, this makes the st157A's
at least pass the probe routines :-)
1993-09-06 17:41:46 +00:00
rgrimes
d9a54450e2 Enabled options NS since it can now be compiled! 1993-09-06 16:17:37 +00:00
rgrimes
44821b524f Fixed usage of arpcom and #define blahblah arpcom.blahblah, fixed ioctl
support for options NS (XNS networking).
1993-09-06 16:13:15 +00:00
rgrimes
5b02ffb82e Removed patch kit header, added $Id$
Added support of DONET({IMP,NS,ISO}) so you can now compile with options
NS and ISO, still missing some IMP code, but since the imp is old and
gone I doubt this will ever be used.
1993-09-06 16:12:05 +00:00
rgrimes
778b28eab1 Add the following line to all generic configs as a comment so people would
know that they need to turn this on to get packets to forward.
#options      GATEWAY                 #Host is a Gateway (forwards packets)
1993-09-06 12:26:10 +00:00
rgrimes
af073b484e Added ns_cksum.c from NetBSD 1993-09-06 12:12:24 +00:00
rgrimes
a2c1035acb From: barclay_a_c <barclay_a_c@bt-web.bt.co.uk>
Subject: More information on "netstat -r
Date: Mon, 7 Jun 1993 11:57:33 +0100

Gentlemen,
I have been trying for some time now to get "netstat -r"
working from the 0.2.2 patchkit. I have the following solution to the
bug.

The symbol _radix_node_head needs to be added to the symbols.raw file
to enable the new routing table access. If this symbol is not present
then the old system us used which results in no routes being given. I
don't think that this justifies a patch in its own right but perhaps
could be added to a related patch sometime..
1993-09-05 18:30:58 +00:00
rgrimes
2aa4a4388c Fixed printf if you are using SCSI_DELAY to allow the scsi bus to
settle down after the reset.
1993-09-05 17:41:07 +00:00
rgrimes
ab9d3f8d54 SCSI code update from Julian 1993-09-05 15:42:22 +00:00
rgrimes
89a7e9d6d9 Date: Fri, 3 Sep 93 01:25:44 +1000
From: bde@kralizec.zeta.org.au (Bruce Evans)

This fixes several problems.

It has almost everything that is in the FreeBSD version of Aug 22.
It is missing the bug for 2 drives and still prints <> around the
drive type.  It handles BADEND144 less verbosely.  It does wdgetctlr()
somewhat differently from NetBSD/FreeBSD.

Date: Sun Sep  5 06:45:12 PDT 1993
From: rgrimes@cdrom.com

Fixed printf's to be correct, since Bruce used the old ones.  This driver
still prints phantom wd1's on some Maxtor and other IDE drives, I have
a patch I am sending to Bruce for checking.
1993-09-05 13:46:17 +00:00
rgrimes
0665a2b628 Increased stack size to 8MB just to be on the real safe side. 1993-09-01 09:38:32 +00:00
rgrimes
9833e48d9a Changed default irq and iomem address for ed0 so that most 3c503's and
wd80x3 class boards can be configured to the GENERIC kernels.

Entry was:
device ed0 at isa? port 0x280 net irq 9 iomem 0xd0000 vector edintr

Is now:
device ed0 at isa? port 0x280 net irq 5 iomem 0xd8000 vector edintr
1993-08-31 15:17:26 +00:00
rgrimes
914dc32d8f Replaced the return (1)'s with return (IO_KBDSIZE) in the probe code so
that the printfs during the probing prints the range instead of just the
start address.
1993-08-28 13:26:30 +00:00
rgrimes
b722f788aa Changed trap.c so that a panic will occur if we do not have hardware
FP and we try to call the emulator when it is not compiled in.
Removed the #if defined(i486) || defined(i387) that use to call the
panic if we did not have a math emulator.
Removed an extranious include of i386/i386/math_emu.h from math_emulate.c.
1993-08-28 13:25:22 +00:00
rgrimes
587a02a332 Added options MATH_EMULTATE to the kernel config files to pull in the
387 math emulator (sys/i386/i386/math_emulate.c).  Made that file only
get compiled if options MATH_EMULATE is in the kernel.
1993-08-28 13:21:48 +00:00
rgrimes
76c1049755 Changed MAXSSIZ from MAXDSIZ to 2MB 1993-08-28 09:19:01 +00:00
rgrimes
b783e47251 Revised headers from Julian. Support for generic scsi.
Better audio support
1993-08-28 03:10:05 +00:00
rgrimes
bb7686bc5d Revised drivers from Julian. Support for generic scsi. Fixed scsi tape (st.c)
problems with respect to multiple tar files on one tape.  Now uses malloc
of data structures to reduce static kernel size.
1993-08-28 03:08:59 +00:00
rgrimes
f4f821656d Revised drivers from Julian. 1993-08-28 03:07:44 +00:00
rgrimes
0c08aacc04 Added support for scsi/sg.c as cdev major 18. 1993-08-28 03:06:59 +00:00
rgrimes
d389a11306 xxxprobe now returns the correct number of I/O registers used so that
the probe output during boot gives the I/O range instead of just the
starting address
1993-08-28 03:02:52 +00:00