Commit Graph

1816 Commits

Author SHA1 Message Date
John Dyson
e3dd31586c Removed the NSECS_MULTI option, and implemented both 32 bit probe
enable and multi-sector I/O enable by using the controller or device
flags capability.  Per a suggestion by phk.
1995-04-24 04:30:19 +00:00
Jordan K. Hubbard
929abd248d I noticed that some new -W options had been turned on the kernel compile since
I made the changes I sent you before.  In the interests of cleanliness, I made
modifications to /sys/i386/isa/tw.c to kill the warnings and make it compile
clean.  While I was at it, I also made a bunch of internal functions static.
Submitted by:	Gene Stark <gene@starkhome.cs.sunysb.edu>
1995-04-24 01:39:55 +00:00
Justin T. Gibbs
c6baec432a Don't arbitrarily set SCSI_NOSLEEP. It is now handled correctly by the
higher level scsi code.

Spls should never be conditionalized, so don't do so here.

Restructure the get_scb routine so that we can't get into an infinite
loop if the ccbs are exhausted and we are are called with SCSI_NOSLEEP set.

Other driver maintainer's that based their scb allocation routines on Julian's
code should look at these changes and implement them for their driver.

The aic7xxx driver inspired these changes because early revs of the
aic7770 chips have so few SCBs that you can actually run out.  If you
have a rev C or aic7770 (as is reported by the driver probe) and had more
than 2 drives, you could get into an infinite loop when using up all of
the SCBs.  Since the driver will only allow two SCBs per device and I
only had two devices, I never saw this problem on my Rev C card.

Bzero only 19 bytes of the scb instead of 2k (ack!).  This was a hold
over from when a struct SCB only contained the information downloaded
to the board, but we now store kernel driver data in there as well.  This
greatly lowers the overhead for small transactions (I get ~1MB/sec for
dds with a 512 byte block size).

Submitted by: John Dyson with the aic7xxx specific optimization by me
1995-04-23 22:04:58 +00:00
Justin T. Gibbs
12930dab88 Don't arbitrarily set SCSI_NOSLEEP. It is now handled correctly by the
higher level scsi code.

Spls should never be conditionalized, so don't do so here.

Restructure the get_ccb routine so that we can't get into an infinite
loop if the ccbs are exhausted and we are are called with SCSI_NOSLEEP set.

Other driver maintainer's that based their ccb allocation routines on Julian's
code should look at these changes and implement them for their driver.

Submitted by: John Dyson
1995-04-23 21:58:35 +00:00
Garrett Wollman
ca55ea923a Added `fe' device drive r for Fujitsu MB86960A family.
Submitted by: M.S. <seki@sysrap.cs.fujitsu.co.jp>
1995-04-23 18:31:50 +00:00
Garrett Wollman
1a7c583c01 Substantially clean up LINT and add `fe'. 1995-04-23 18:30:27 +00:00
Bruce Evans
e770b51673 Declare the console switch functions completely.
Move declarations of console functions to cons.h (they should be
config(8)ed).
1995-04-23 12:55:55 +00:00
Bruce Evans
8d98ed564c Move declarations of console functions to cons.h (they should be
config(8)ed).

Update other misplaced prototypes.
1995-04-23 12:41:57 +00:00
Bruce Evans
38994061cf Correct the type of the `c' arg to pccnputc().
Move declarations of console functions to cons.h so that they can't be
defined inconsistently in several places.  They should be config(8)ed.
1995-04-23 10:15:42 +00:00
Julian Elischer
6944abf1d7 hmm spotted a difference resulting from a merge I didn't examine close enough 1995-04-23 09:17:24 +00:00
Julian Elischer
73bac981dd include hooks for EISA configuration (possibly wrong :) 1995-04-23 09:13:08 +00:00
Julian Elischer
fc5f6d13ec include new files for EISA configuration 1995-04-23 09:12:00 +00:00
Julian Elischer
b174ba8899 files for the eisa specific autoconfiguration..
don't expect this to work yet.. but at least they're here..
(hey this cvs stuff is fun!)

activate with a line exactly like the isa line in the config file,
(but specifying eisa :)
patches to come..
1995-04-23 08:55:43 +00:00
Poul-Henning Kamp
94624c5572 Forgot this commit the other day. The receiving end of the "boot -C" option. 1995-04-23 04:14:41 +00:00
John Dyson
74d2d21c68 Change the initial delay in wdwait to a DELAY macro call. It is really
too long, but does not impact performance very much when using the
NSECS_MULTI option.  This will help solve some mysterious IDE I/O
problems.
1995-04-22 22:44:30 +00:00
John Dyson
5b920a895d Document the wd.c option NSECS_MULTI. 1995-04-22 22:39:33 +00:00
Bill Paul
31e0d8b925 Tiny printf formatting change: if we have no cpu_vendor or cpu_id info,
don't generate a newline. (Yeah, I'm picking nits, but that empty line
I get on my 386 just looks dumb, okay? :)
1995-04-22 03:58:46 +00:00
Julian Elischer
220112c567 Submitted by: bde@freebsd.org 1995-04-21 22:20:34 +00:00
Bruce Evans
8da0f3b87a Make some functions static like they always should have been.
Change the interfaces of these functions to save space.  The code
that takes the least amount of space is often the opposite to what
you might expect.  E.g., it helps to waste a few bytes passing
pointers so that the compiler can't see that certain addresses
are identical (gcc likes to waste space by reloading fat constants
even when the constant is already in a register).

Rewrite getbootdev() to save 80 bytes of space and to make it less
ugly.  32 bytes were saved simply by omitting the continue statements
in the pseudo-switch.
1995-04-21 16:50:32 +00:00
Bruce Evans
34951155ae Update the pseudo-prototype for serial_putc() to match the actual prototype. 1995-04-21 16:30:18 +00:00
Bruce Evans
a9ef92e638 Never pass char or short args to functions. This saves 64 bytes of
recently introduced bloat in just 2 calls to biosread(), although
very little in calls to putc() and serial_putc().  Gcc produces
amazingly bad code for unnecessary conversions.  E.g., if it has
`int x' in register %edx and wants to pass a char, then it could
simply push %edx and access only one byte in the callee.  Instead,
it sometimes unnecessarily spills %edx; it always sign extends
%edx and pushes the result.

Remove useless `extern' in function prototypes.

Remove unused declaration of `end'.

Declare pbzero() and pcpy() like the library bzero and bcopy().

Declare printf() properly.
1995-04-21 16:07:12 +00:00
Joerg Wunsch
9c6e0c69be . Make Poul's boot2 overflow warning less noisy in case the blocks
do fit, and beeping in case of an overflow.

.  Drop a comment about the ``FORCE_COMCONSOLE'' option into
   README.serial.

.  Increase the name buffer for the root directory from 100 bytes
   to 8 KB;  this is in no way ideal, but (IMHO) the best that can
   be done by now.  People did encounter problems with their root
   dir name listing overflowing the allocated buffer space.  Once
   we've got the three-stage boot, we should implement some basic
   malloc().  Swap space is already getting tight now, perhaps the
   swap should go into another 64 KB segment instead.

.  Make the keyboard probe less paranoid.  It should not give up in
   case of a keyboard that's continuously demanding RESEND's.  Even
   though the keyboard reset apparently has not been reported to be
   complete, it's at the very least proven that there IS something
   like a keyboard available.

   This solves problems with the ``Gateway-2000 AllKey programmable''
   (sp?) keyboard, that experienced a total hang with the previous
   probe.

   Thanks goes to Scott Blachowicz <scott@statsci.com> for his
   extensive testing of my various interim (debugging) bootblocks
   to get this working.
1995-04-20 23:15:10 +00:00
Julian Elischer
c9755763d9 Add an option to make it easy to default to the hd1 mode
also save a few bytes
1995-04-20 23:05:23 +00:00
Poul-Henning Kamp
3226e381f8 Added a check so compilation fails if the bootblocks are too big.
replaces a switch with ifs to reduce size.
1995-04-20 18:36:14 +00:00
Poul-Henning Kamp
d7e591aeab The -current system with 'zp' driver hangs up when resumed from
suspended mode.  The patch for this bug follows.

Reviewed by:
Submitted by:	<hosokawa@mt.cs.keio.ac.jp>
1995-04-20 07:22:04 +00:00
Poul-Henning Kamp
16b560a716 Added -C option to set RB_CDROM, so that we use our cdrom as root. 1995-04-20 06:08:27 +00:00
Poul-Henning Kamp
804e33a872 Add wd2 and wd3 as swap-devices too. 1995-04-20 06:05:17 +00:00
Poul-Henning Kamp
f4d1e3d1e7 Remove the slice for the first 63 sectors for the OnTrack case, it's useless
and nobody care about it anyway.
1995-04-20 06:01:51 +00:00
Julian Elischer
999422d707 Reviewed by: no-one yet, but non-intrusive
Submitted by:	julian@tfs.com
Obtained from:	written from scratch

slight changes to make space for devfs..
(also conditional test code in i386/isa/fd.c)

===================================================================
RCS file: /home/ncvs/src/sys/sys/malloc.h,v
retrieving revision 1.7
diff -r1.7 malloc.h
113a114,117
> #define M_DEVFSMNT    62      /* DEVFS mount structure */
> #define M_DEVFSBACK   63      /* DEVFS Back node */
> #define M_DEVFSFRONT  64      /* DEVFS Front node */
> #define M_DEVFSNODE   65      /* DEVFS node */
184c188,192
<       NULL, NULL, NULL, NULL, NULL, \
---
>       "DEVFS mount",  /* 62 M_DEVFSMNT */ \
>       "DEVFS back",   /* 63 M_DEVFSBACK */ \
>       "DEVFS front",  /* 64 M_DEVFSFRONT */ \
>       "DEVFS node",   /* 65 M_DEVFSNODE */ \
>       NULL, \
Index: sys/mount.h
===================================================================
RCS file: /home/ncvs/src/sys/sys/mount.h,v
retrieving revision 1.16
diff -r1.16 mount.h
100c100,101
< #define       MOUNT_MAXTYPE   15
---
> #define MOUNT_DEVFS   16      /* existing device Filesystem */
> #define       MOUNT_MAXTYPE   16
118a120
>       "devfs",        /* 15 MOUNT_DEVFS */ \
Index: sys/vnode.h
===================================================================
RCS file: /home/ncvs/src/sys/sys/vnode.h,v
retrieving revision 1.19
diff -r1.19 vnode.h
61c61
<       VT_UNION, VT_MSDOSFS
---
>       VT_UNION, VT_MSDOSFS, VT_DEVFS
1995-04-20 03:18:19 +00:00
Poul-Henning Kamp
0e175c5ef0 Added support for disks which "OnTrack Disk Manager" has munged.
I suggest you do all partitioning using the OnTrack SW, to avoid
confusing it.
1995-04-20 01:21:51 +00:00
Rodney W. Grimes
781434c1fc Reapply my fix for this:
Output the CPU features line during the probe on a seperate line, for
folks with lots of features the output use to wrap and look ugle.
1995-04-18 23:55:26 +00:00
Andrey A. Chernov
b6b8f81ead Add quotes around TUNE_1542 1995-04-18 11:02:22 +00:00
Jordan K. Hubbard
8c409a2969 Extensive updates to this package.
Submitted by:   Gene Stark <gene@starkhome.cs.sunysb.edu>
1995-04-18 02:00:01 +00:00
Poul-Henning Kamp
8425684b90 Print the BIOS geometries in a human-readable format. 1995-04-17 16:49:50 +00:00
Bruce Evans
1b20a52866 Fix compiler warnings about benign overflow in initializers. 1995-04-17 05:52:17 +00:00
Joerg Wunsch
afb7eb14a5 Remove the #ifdef REDUNDANT crud. This could be looked up in CVS by
interested parties.

Make the loader refuse to load anything below 1 MB -- we didn't
support it since FreeBSD 2.0R.  Avoid gratuitously wiping out the BIOS
variables or the loader.
1995-04-16 13:02:52 +00:00
David Greenman
857f4d44be Remove gratuitous waste of 2K of memory for BIOS variables. We never load
the kernel at 0-640k; we haven't had the ability to do that since before
2.0R. Furthermore, I fail to see how putting an instruction at 0 and then
doing a .org 0x500 is going to prevent the stuff from getting clobbered
in the first place; a.out is just too stupid to know about sparse address
spaces.
1995-04-16 10:12:16 +00:00
Justin T. Gibbs
c587405860 Have the aic7xxx build rules point at the sequencer's new location. 1995-04-16 01:20:00 +00:00
Bruce Evans
33242876a4 Fix initializations of kdc_state for serial consoles.
Change order of RTS flow control tests so that less tests are required
in the usual case.

Clean up parts of previous commits.  Cosmetic.
1995-04-15 21:45:16 +00:00
Justin T. Gibbs
04f390ce00 Be more careful with how we do a chip reset.
Clean up some comments.
1995-04-15 21:37:32 +00:00
Bruce Evans
7897b3ce69 Don't waste time sending an EOI to ICU1 if option AUTO_EOI_1 is defined.
Previously, this worked right if both AUTO_EOI_1 and AUTO_EOI_2 are
defined, but not if AUTO_EOI_1 is defined and AUTO_EOI_2 is not defined.
The latter case should be the default.  DUMMY_NOPS should be the default
too.  Currently there are only two NOPs slowing down rtcin() (although
there are no delays in writertc()) and several FASTER_NOPs slowing down
interrupt handling in vector.s.

Fix stack offsets for the (previously) unused untested
FAST_INTR_HANDLER_USES_ES case.
1995-04-15 21:32:18 +00:00
Poul-Henning Kamp
6d7b3d3838 Added kzipboot 1995-04-15 08:24:33 +00:00
Poul-Henning Kamp
7970b29866 The magic code to uncompress a kernel.
Reviewed by:	phk
Obtained from:	Linux via 386BSD.
1995-04-15 08:23:55 +00:00
Poul-Henning Kamp
0fbb4a064b "jl" and "jb" doesn't quite do the same thing...
Reviewed by:	phk
Submitted by:	"DI. Christian Gusenbauer" <cg@scotty.edvz.uni-linz.ac.at>
1995-04-14 23:01:33 +00:00
Poul-Henning Kamp
c112d76dd6 I commit this for Bruce, who has serious connectivity problmes pt.
This should NOT go into 2.0.5  /phk

Support disk slices.  This involves mainly replacing inline code with
function calls.  Support for ST506 drives is temporarily broken since
the `setgeom' arg to dsopen() is not implemented completely enough to
use.  The `setgeom' arg will go away and ST506 drives will be supported
in another way.  A large amount of dead code is left in wdopen() as a
reminder of the problems here.

Close the device in wdsize().  Open tracking was broken on all drives
with a swap device.

Remove support for soft write protection.  There are no ioctls to set
it.  It was used to disable writing to unlabelled disks, but we want
to support writing to foreign partitions on unlabeled disks.

Use generic dkbad routines to do about 2/3 of the work for supporting
bad144.

Improve disk statistics: estimate 4MB/sec instead of 8MB/sec for
the transfer rate (ISA max is 4MB/sec, old IDE max is 3.3MB/sec);
fix dk_xfer[] (it counted sectors, not transfers); keep the estimate
dk_seek[] = dk_xfer[] (was sectors, is now transfers); only count
words actually transferred (the count is still too high after a
failed write and after retries).  Remove wdxfer[].

Fix indentation in wdattach().  Fix resulting botched printing of the
disk size for ST506 drives.  Print the disk geometry less cryptically.
1995-04-14 22:31:58 +00:00
Joerg Wunsch
15c99149f8 Boot block cleanup.
o Fix the keyboard probe to properly wait for the ready bit before
sending a command to the keyboard controller.  This should avoid the
problems some people are experiencing where the boot blocks hang the
system during keyboard probe.  (It does solve it for me.)

o Fix a bug that effectively prevented the boot blocks from ever
passing control to the serial console.  [while(--retries) instead of
while(retries--)]

o Gratuitously reduced the keyboard probe timeout from 500 to 5
seconds. :)

o Introduced a new option ``FORCE_COMCONSOLE'' as a commented-out
example in the Makefile, to force the usage of a serial console
regardless of a keyboard being connected or not.

o Moved all external declarations to boot.h, declared all functions
there, and ANSIfied all function declarations/definitions.
(printf() remains bogus, however -- i'm too lazy to fix this.)
We're in the ninetees, dunno why we should still support compilers
from the 70's.
1995-04-14 21:26:53 +00:00
Peter Dufault
bc0cfeb0ce Add scsi target support. 1995-04-14 15:13:46 +00:00
Peter Dufault
8db34c841e Add scsi target. Add "after config" call to autoconf so that scsi
targets will be configured after all scsi busses have been configured.
1995-04-14 15:13:26 +00:00
Peter Dufault
8909a72b5d Add "sctarg" and document new SCSI_REPORT_GEOMETRY option for ache 1995-04-14 15:12:24 +00:00
Bill Paul
09a901eb60 Hopefully I won't get flamed for this: insert a few more #if defined(I486_CPU)
and #if defined (I586_CPU) thingies into identifycpu() so that we only
compile in what's actually needed for a given CPU. So far as I can tell,
none of my 386 machines generate a cpu_vendor code, so I made the extra vendor
and feature line conditional on I486_CPU and I586_CPU. (Otherwise we
print out a blank line which looks silly.)
1995-04-14 02:06:00 +00:00