Commit Graph

80 Commits

Author SHA1 Message Date
thorpej 4044b5a41c Use separate callouts for motor-on and motor-off. Fixes a condition
where the floppy driver would wedge because a motor-on timeout would
be cancelled by another I/O operation cancelling a motor-off timeout.

From enami tsugutomo <enami@sm.sony.co.jp>.
2000-04-07 16:58:53 +00:00
hannken f7049d302a Fix a typo from last commit. 2000-03-24 10:30:12 +00:00
thorpej 7b918b4088 New callout mechanism with two major improvements over the old
timeout()/untimeout() API:
- Clients supply callout handle storage, thus eliminating problems of
  resource allocation.
- Insertion and removal of callouts is constant time, important as
  this facility is used quite a lot in the kernel.

The old timeout()/untimeout() API has been removed from the kernel.
2000-03-23 06:40:33 +00:00
thorpej fe551f0e64 Fix a bug in disksort_*() which caused non-optimal ordering when multiple
active partitions were on a single spindle.  Add a b_rawblkno member to
struct buf which contains the non-partition-relative block number to sort
by.
2000-02-07 20:16:47 +00:00
pk de608f33e1 Don't use PROM the virtual address (if any) for the device registers;
they are not reliably mapped.  Also, unmap registers if the device
cannot be configured properly.
2000-02-07 11:44:15 +00:00
pk a5d6b10bad fdcstatus() formatting. 2000-01-28 15:46:20 +00:00
pk 9cfc74c312 Report write-protected disks. 2000-01-24 16:52:02 +00:00
pk 18ad190b10 * b_cylin -> b_cylinder; deals with PR9283.
* a few optimizations & misc. style updates.
2000-01-23 22:19:12 +00:00
thorpej 52242fdf9f Update for sys/buf.h/disksort_*() changes. 2000-01-21 23:28:59 +00:00
pk f8ac5484fa Medium sized code overhaul:
* Improve communication between the `hard' and `soft' interrupt handlers
  to better distinguish various interrupt sources.
* Eliminate several race conditions where we would set a time out handler
  only after starting the command on the hardware.
* Handle most timeouts by resetting the controller; there isn't much chance
  of recovery in any other way.  Currently, the exception is a timeout
  on I/O, in which case we first try to pulse the controller's TC line
  in order to abort the pseudo-dma sequence.  Apparently, "normal"
  conditions can induce such a timeout when there's no disk in the drive.
* Reduce the formatting gap parameter to 0x54.
* On the obio bus, interpret the `status' attribute.
* Minimize console diagnostic output if the errors we get appear to be
  caused by the absence of a disk.
2000-01-21 13:22:01 +00:00
pk 725c6438c1 Use bus_space(9) functions to access the controller registers.
Add probes to the attach routines before poking the chip to see
where the registers are located.
2000-01-17 16:57:15 +00:00
pk c6b6f3883a Remove old-style boot device recognition. 2000-01-11 12:59:43 +00:00
pk 633fd1e1cc Check presence of Sbus interrupt properties before using them. 1999-11-21 15:23:01 +00:00
mrg d2397ac5f7 completely remove Mach VM support. all that is left is the all the
header files as UVM still uses (most of) these.
1999-03-24 05:50:49 +00:00
bouyer f6f9f8a965 Change DIOCEJECT to do what's needed to eject a device before the eject
command (unlock for sd and cd) if no other partitions are open, return
EBUSY otherwise. DIOCEJECT will have the old semantic if its argument is not
0. The old ioctl has been renamed to ODIOCEJECT for binary compatibility.
1999-02-08 16:33:16 +00:00
jonathan c9d036d796 defopt MEMORY_DISK_{HOOKS,SERVER,IS_ROOT}. 1999-02-07 09:34:58 +00:00
mycroft 6d3d8a1350 Make copyright notices with my name consistent. 1998-08-15 03:02:31 +00:00
pk 402a052405 Deal with sbus attach args changes. 1998-07-29 18:44:22 +00:00
jonathan 466e784ee1 defopt DDB. 1998-07-04 22:18:13 +00:00
mrg 428a0d387a remove old (now broken) memory disks hooks code. 1998-06-05 15:00:10 +00:00
pk be4108fec1 Replace direct `sparc_bus_map()' calls with bus space map method. 1998-03-30 14:21:38 +00:00
pk f658122053 Check for a valid PROM virtual address. 1998-03-25 23:15:07 +00:00
pk 69fe6f242f Account for changed bus attachment scheme. 1998-03-21 20:11:30 +00:00
mrg d90485202c - add defopt's for UVM, UVMHIST and PMAP_NEW.
- remove unnecessary UVMHIST_DECL's.
1998-02-10 14:08:44 +00:00
mrg 5e91ce6ef1 initial import of the new virtual memory system, UVM, into -current.
UVM was written by chuck cranor <chuck@maria.wustl.edu>, with some
minor portions derived from the old Mach code.  i provided some help
getting swap and paging working, and other bug fixes/ideas.  chuck
silvers <chuq@chuq.com> also provided some other fixes.

this is the sparc portion.

this will be KNF'd shortly.  :-)
1998-02-05 07:57:48 +00:00
thorpej 1adb4489a6 Update for changes to config. 1998-01-12 20:23:38 +00:00
pk 004f196dcf Nuke 5.25 inch formats. 1997-10-19 23:29:47 +00:00
pk a0d6bae726 Add an odd-ball japanese floppy format (PR#2903).
A good time to get rid of the hard-coded floppy sector size.
1997-10-19 22:29:21 +00:00
fair 4c351f243e %x -> 0x%x 1997-07-29 09:58:04 +00:00
pk ec02e14ae2 Remove all `bustype' arguments from map[io]dev() and REG2PHYS(). 1997-05-24 20:16:06 +00:00
pk a05df4e228 * finish off support for the 82077 chip as found on sun4m machines.
* add non-dma mode bit to `specify command', so formatting disks starts
  working (thanks to Jeremy Cooper for finding out about this).
1997-05-02 13:03:44 +00:00
pk efeeba419f sun4c and sun4m `aux' register bits differ slightly. 1997-04-07 21:00:34 +00:00
pk cd9e3a7b59 Remove bogon from otherwise unused fdchwintr() function. 1997-03-31 20:27:32 +00:00
thorpej 2525eee053 Use new machine-independent mountroothook code. 1997-01-31 02:15:54 +00:00
pk a0f6df960f RAMDISK_HOOKS => MEMORY_DISK_HOOKS 1997-01-01 23:46:29 +00:00
pk d5b11782b5 rename: ramdisk => md 1996-12-28 23:27:00 +00:00
pk 841d1ec634 Comply with recent autoconfiguration changes. Diffs graciously
supplied by Chris Demetriou.
1996-12-10 22:54:46 +00:00
pk 92c4c71040 Finish import of floppy formatting code; not really usable yet, lots of
data overruns.
1996-12-10 14:44:53 +00:00
pk 837dd8e3e1 Import formatting code from the i386 version.
Revise communication between hw & sw interrupt handler.
1996-12-08 23:40:32 +00:00
pk c1274b3cff Stabilize timeout values in fdcresult() and out_fdc() by adding delay()s.
Noted by Jason Thorpe over in the i386 driver.
1996-11-27 21:14:33 +00:00
thorpej 35c9c776fe Use bitmask_snprintf(). 1996-11-13 06:13:39 +00:00
christos 7d1960f502 backout previous kprintf change 1996-10-13 02:59:38 +00:00
christos 19d8368f2f printf -> kprintf, sprintf -> ksprintf 1996-10-11 00:44:42 +00:00
cgd 2a73ef60b7 change cfprint_t type definition to take a const char *, rather than
a char *, because that's what was really intended, and because
if the print function modifies the string, various things could become
unhappy (so the string should _not_ be modified).
1996-08-27 21:53:46 +00:00
pk b0b2a995cd When booting from a floppy drive and RAMDSK_HOOKS is defined, arrange for
a callback from memory disk driver to load the actual root image.
1996-06-20 20:12:31 +00:00
pk 5d5e7cf75e bootpath detection: some (newer?) v2 prom versions use actual device address,
e.g. `/fd@1,72000000'.
1996-06-16 23:28:18 +00:00
pk 4fa564e10d Fix case where sequence state wasn't updated properly, resulting in
`disk_unbusy' panic.
1996-05-27 00:10:40 +00:00
pk e147a74bbb Chip needs much more time to think things over (up to 2 seconds to complete
a `recalibrate' command if no flop present).
1996-04-29 12:07:32 +00:00
christos a897ec996a Remove dependency on <sys/cpu.h> 1996-04-22 02:42:00 +00:00
pk e4394459a1 `bootdv' is gone. Instead, set the device pointer in the `struct bootpath'
that is passed in the attach arguments.
1996-04-10 20:46:05 +00:00