opnsense-src/sys
Joerg Wunsch 5f830ea2cd Make the Y-E Data PCMCIA floppy of the Toshiba Libretto work under
-current.  It doesn't work yet as stable as the 3.x/PAO version of the
driver does, however, i get occasional `FDC direction bit not set' and
other weird messages, but it basically works at least.

The old (defunct) #ifdef FDC_YE stuff has been eliminated completely
now, PCMCIA-FDC specific functions have been implemented differently
where needed.

Unfortunately, due to the fact that the traditional PeeCee FDC with
its funny non-contiguous register space (one register for WD1003
harddisk controllers is interleaved into the FDC register set), and
Peter's subsequent changes involving two different bus space handles
for normal FDCs, the changes required for the Y-E stuff are more
complex than i'd love them to be.  I've done my best to keep the logic
for normal FDCs intact.

Since the Y-E FDC seems to lose interrupts after a FDC reset
sometimes, i've also replaced the timeout logic in fd_turnoff() to
generate an artificial pseudo interrupt in case of a timeout while the
drive has still outstanding transfers waiting.  This avoids the total
starvation of the driver that could be observed with highly damaged
media under 3.x/PAO.  This part of the patch has been revied by bde
previously.

I've fixed a number of occasions where previous commits have been
missing the encapuslation of ISA DMA related functions inside
FDC_NODMA checks.

I've added one call to SET_BCDR() during preparation of the format
floppy operation.  Floppy formatting has been totally broken before in
3.x/PAO (garbage ID fields have been written to the medium, causing
`wrong cylinder' errors upon media reading).  This is just black
magic, i don't have the slightes idea _why_ this needs to be but just
copied over the hack that has been used by the PAO folks in the normal
read/write case anyway.

The entired device_busy() stuff seems to be pointless to me.  In any
case, i had to add device_unbusy() calls symmetrical to the
device_busy() calls, otherwise the PCMCIA floppy driver could never be
deactivated.  (As it used to be, it caused a `mark the device busier
and busier' situation.)  IMHO, all block device drivers should be
marked busy based on active buffers still waiting for the driver, so
the device_unbusy() calls should probably go to biodone().  Only one
other driver (whose name escapes me at the moment) uses device_busy()
calls at all, so i question the value of all this...

I think this entire `device busy' logic simply doesn't fit for PCMCIA
&al.  It cannot be the decision of some piece of kernel software to
declare a device `busy by now, you can't remove it', when the actual
physical power of removing it is the user pulling the card.  The
kernel simply has to cope with the removal, however busy the device
might have been by the time of the removal, period.  Perhaps a force
flag needs to be added?

Upon inserting the card a second time, i get:

WARNING: "fd" is usurping "fd"'s cdevsw[]
WARNING: "fd" is usurping "fd"'s bmaj

I suspect this is related to the XXX comment at the call to
cdevsw_add().  Does anybody know what the correct way is to cleanup
this?
2000-03-18 18:27:01 +00:00
..
alpha - Add Support for the following PS/2 mice: 2000-03-18 15:21:40 +00:00
amd64 Please welcome the URio driver. Written by 2000-03-16 09:16:14 +00:00
boot Sync with sys/boot/i386/libi386/biosdisk.c revision 1.27 and 1.28. 2000-03-17 12:38:36 +00:00
cam Add a quirk entry for Y-E Data USB floppy drive. 2000-03-15 22:44:03 +00:00
coda Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 05:07:58 +00:00
compat Fix some style bugs. The long line is in a chunk of code that's 2000-03-13 15:27:19 +00:00
compile
conf Document three debug options: npx, bus and vfs locks debugging. 2000-03-18 17:30:12 +00:00
contrib When writing out bitmap buffers, need to skip over ones that already 2000-01-30 20:32:59 +00:00
crypto Prototype fix for IPsec authentication related functions 2000-02-10 19:35:53 +00:00
ddb Add a new sysctl "debug.enter_debugger" (when the kernel is compiled 2000-01-27 22:27:34 +00:00
dev Make the Y-E Data PCMCIA floppy of the Toshiba Libretto work under 2000-03-18 18:27:01 +00:00
fs Eliminate the undocumented, experimental, non-delivering and highly 2000-03-16 08:51:55 +00:00
geom Remove #if NCCD > 0 - it's guaranteed to be true by config if ccd.c is 2000-01-29 14:29:56 +00:00
gnu Bug fixes for currently harmless bugs that could rise to bite 2000-03-15 07:18:15 +00:00
i4b Fix a problem which caused i/o resource allocation conflict of this 2000-03-09 20:57:47 +00:00
i386 Document three debug options: npx, bus and vfs locks debugging. 2000-03-18 17:30:12 +00:00
isa Make the Y-E Data PCMCIA floppy of the Toshiba Libretto work under 2000-03-18 18:27:01 +00:00
isofs/cd9660 remove check now done in vn_isdisk(). 2000-01-10 12:24:36 +00:00
kern Make sure to free the socket in soabort() if the protocol couldn't 2000-03-18 08:56:56 +00:00
libkern Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 05:07:58 +00:00
miscfs Eliminate the undocumented, experimental, non-delivering and highly 2000-03-16 08:51:55 +00:00
modules Please welcome the URio driver. Written by 2000-03-16 09:16:14 +00:00
msdosfs Supported non-512 bytes/sector format. 2000-01-27 14:43:07 +00:00
net Introduce a new bd_seesent flag to the BPF descriptor, indicating whether or 2000-03-18 06:30:42 +00:00
netatalk Clean up some loose ends in the network code, including the X.25 and ISO 2000-02-13 03:32:07 +00:00
netatm Clean up some loose ends in the network code, including the X.25 and ISO 2000-02-13 03:32:07 +00:00
netgraph Newer ciscos have become more picky, and will not accept the MULTICAST bit 2000-03-17 17:06:33 +00:00
netinet Fix reporting of src and dst IP addresses for ICMP and generic IP packets. 2000-03-14 14:11:53 +00:00
netinet6 Backout the previous change to __KAME_VERSION (FreeBSD4.x addition), 2000-03-13 10:07:30 +00:00
netipx Clean up some loose ends in the network code, including the X.25 and ISO 2000-02-13 03:32:07 +00:00
netkey comment the string after #endif 2000-01-15 05:15:06 +00:00
netnatm Clean up some loose ends in the network code, including the X.25 and ISO 2000-02-13 03:32:07 +00:00
netncp Enable '=' character in the filename. 2000-01-29 02:10:37 +00:00
netns Clean up some loose ends in the network code, including the X.25 and ISO 2000-02-13 03:32:07 +00:00
nfs Clean up some loose ends in the network code, including the X.25 and ISO 2000-02-13 03:32:07 +00:00
nfsclient Clean up some loose ends in the network code, including the X.25 and ISO 2000-02-13 03:32:07 +00:00
nfsserver Clean up some loose ends in the network code, including the X.25 and ISO 2000-02-13 03:32:07 +00:00
ntfs Forward declare some structs so that this header is more self-suifficent. 2000-01-14 19:54:42 +00:00
nwfs Check if module was compiled without SMP support and running on 2000-01-15 08:35:48 +00:00
pc98 Fixed header file path and added necessary file. 2000-03-17 12:56:23 +00:00
pccard Add support for PnP ISA cards, and some laptop PnP support: 2000-03-10 05:43:29 +00:00
pci Update Tigon firmware yet again, this time to version 12.3.20. 2000-03-18 01:30:36 +00:00
posix4 Track libc_r addition of semaphores implementation. 2000-01-20 07:55:42 +00:00
powerpc Update the ata driver to take more advantage of newbus, this 2000-02-18 20:57:33 +00:00
rpc $Id$ -> $FreeBSD$ 1999-08-27 23:45:13 +00:00
svr4 Fix handling of svr4_sigsets, which are implemented in SysVR4 as a sequence 2000-01-15 15:38:17 +00:00
sys - Add Support for the following PS/2 mice: 2000-03-18 15:21:40 +00:00
tools Use a seperate -c and -h mode. The vnode_if.c file is compiled only into 1999-12-12 16:43:05 +00:00
ufs Use 64-bit math to calculate if we have hit our freespace limit. 2000-03-17 03:44:47 +00:00
vm Eliminate the undocumented, experimental, non-delivering and highly 2000-03-16 08:51:55 +00:00
Makefile ${MACHINE} -> ${MACHINE_ARCH} 1999-11-14 13:54:44 +00:00