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.
>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.
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
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.
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.
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.
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.
reinitialized between while loops. Added comments about what was going
on in the out_fdc routine.
out_fdc now returns if the direction bit is not set in time instead of
trying to wait for MRQ to get cleared.
I submitted the part of patch00155 that fixes wd.c not reporting any
bad blocks. Unfortunately, the patch created a new problem that makes new
installations using that kernel impossible. I have included a patch below that
should fix both problems. The fix comes from Tom Ivar Helbekkmo's wd driver
(the Norway wd driver). I've also eliminated the use of the DKFL_QUIET flag
completely, since it is not used anymore.
Fixed wdgetctrl routines for so that it returns a meaniful string for
non IDE disk drives. It also nolonger returns success when a drive is
not really there.
profiling, and various protection checks that cause security holes
and system crashes.
* Changed min/max/bcmp/ffs/strlen to be static inline functions
- included from cpufunc.h in via systm.h. This change
improves performance in many parts of the kernel - up to 5% in the
networking layer alone. Note that this requires systm.h to be included
in any file that uses these functions otherwise it won't be able to
find them during the load.
* Fixed incorrect call to splx() in if_is.c
* Fixed bogus variable assignment to splx() in if_ed.c
* them in cpufunc.h. Modified wait loop in reset to look a little better.
* Added read for talley counters to prevent an infinite loop on old
* 8003E's if they (the counters) overflow.
asic register even if the board isn't a 3c503. This caused old 8003E's not
to work because they ignore IO address bits >10bits and the 3c503 asic is
located at +0x400....the offset was ignored by the 8003E and so the
value was written to one of the NIC registers. The bug was discovered by
Wolfgang Solfrank.
8bit or 16bit operation, and a flag to disable transmitter double buffering.
See the updated "ed.relnotes" file for information about how to set
the flags.
This should be considered the first "production" release. It still
needs a manual page, though.
way of doing things. There still remain several drivers that need to
be updated. Also added a compile-time option to pccons to switch the
control and caps-lock keys (REVERSE_CAPS_CTRL) - added for my personal
sanity.
lpt doesn't work here if the printer is not turned on at boot time (this
has been reported for other systems).
lpt has a weird mapping of the flag bits vs printer numbers and MAKEDEV
does not understand this (printer 0 uses minor numbers 0-0x3f, printer 1
uses minors 0x40-0x7f, etc).
The following (simpler) problems are fixed by the patch.
lpt did not check the minor number on open, so if NLPT1 == 1 and you
try to open printer 1 then random memory above the lpt_sc array is
accessed. I thought I had this problem for minors 1 and 2. However,
it does not actually occur until minor 0x40. Does anyone have lpt64?
lpt had several unnecessary && broken ANSIisms and other sloppy
declarations.
Bruce