Commit Graph

825 Commits

Author SHA1 Message Date
pk
58cd67c20d Make sure we assign a value to variables we use.
Don't express size of NVRAM in terms of machine page size.
1996-02-13 22:38:25 +00:00
christos
8a8e1a4d94 caddt_t -> caddr_t 1996-02-13 17:13:22 +00:00
christos
cbb1d18e70 - Fix setcxsegmap prototype.
- Cast ?TO? macros to NULL to avoid compiler warnings
1996-02-13 17:04:58 +00:00
christos
967dc9fa87 make pmap_page_index return int instead of u_long 1996-02-12 21:15:37 +00:00
pk
3237aa23d2 Avoid compiler warning. 1996-02-12 21:05:18 +00:00
pk
d5ddbf99ab Separate DMA and SCSI routines more. 1996-02-12 15:59:51 +00:00
thorpej
8a6ad45eed In fdcretry(), if we're not using implied seeks, set the state to DOSEEK
rather than SEEKCOMPLETE before retrying the operation.  If implied seeks
are being used, the state is set to DOIO (no change).  This is why I
couldn't reproduce the disk_unbusy() panic on my SS2; it uses implied
seeks.  Patch from John F. Woods <jfw@jfwhome.funhouse.com>
1996-02-10 18:37:36 +00:00
christos
c6edd77b23 A few prototype fixes 1996-02-09 23:14:14 +00:00
mycroft
753fe3a25a Fix mkdep problems due to missing flags. 1996-02-09 02:21:13 +00:00
chuck
2accbfeefb - moved disk_busy() call from xdstrategy() to xdc_startbuf()
[prevents disk_unbusy panic when disk is loaded (if no
	free IOPBs, xdstrategy() would queue the buffer for pickup
	by xdcintr() but xdcintr() would never call disk_busy().
	xdc_startbuf() is a better place since all bufs are routed
	through here]   problem detected by girish@dworkin.wustl.edu,
	diagnosed and corrected by me.
- move disk_unbusy() call in xdc_remove_iorq() before the call to
	XDC_FREE() [don't want to access a data structure that was just put
	on a free list]
1996-02-08 04:40:33 +00:00
thorpej
fa30609066 Protect clearing the Intersil chip's interrupt with splhigh(). If this
gets interrupted (by the higher priority zs hardware, for example),
the clock can come to a dead stop!
1996-02-06 22:59:03 +00:00
pk
d0abefaa36 beq -> be; some assemblers don't know about this alias. 1996-02-06 12:11:15 +00:00
pk
52c068d6e6 Be sure to reset the chip when relection fails to prevent corrupting data. 1996-02-06 02:03:46 +00:00
christos
684b37e33e vm prototype changes. 1996-02-05 01:59:12 +00:00
pk
5fd7df3063 Move splbio to level 5. 1996-02-03 16:10:58 +00:00
mycroft
67eb39bcda Make this compile with `traditional' cpp. 1996-02-03 04:36:01 +00:00
mycroft
5bc076e17e Use `-traditional-cpp' when building .s and .S files. 1996-02-03 00:43:50 +00:00
mycroft
dcd66e9f4d Clone these, and fix many bugs. 1996-02-02 20:08:17 +00:00
mycroft
2dfbe4f961 Don't define _LOCORE here. 1996-02-02 20:05:08 +00:00
mycroft
9d9a70a5a2 Fix #includes. 1996-02-02 18:05:36 +00:00
mycroft
fc9d84fb46 assym.s -> assym.h
(Some ports did this already.)
1996-02-02 02:34:09 +00:00
mycroft
88e512b693 LOCORE -> _LOCORE 1996-02-01 22:28:24 +00:00
thorpej
b97cbfb606 Implement DIOCLOCK. It's a no-op in this driver. 1996-01-30 18:31:05 +00:00
gwr
427556aeab Move struct definitions to MD code. 1996-01-24 19:52:57 +00:00
thorpej
353f4388fb Use a shutdownhook to make sure the drive motor is turned off
at halt/reboot time, as suggested by Perry Metzger.
1996-01-16 19:35:06 +00:00
thorpej
8a5504241e Three distinct changes:
- Better disklabel handling.  While a disklabel isn't used
	  in the driver, some versions of the OpenPROM insist on
	  one being present in order to boot from floppy.  These
	  changes provide a default label (in a way similar to how
	  the SCSI disk driver provides a default) so that a user
	  can more easily place the label on the disk.

	- Fix semi-bug in bootpath handling.  It appears as if the
	  bootpath can appear in a couple of formats: "/fd@0,0", which
	  is what bootpath_fake() creates on v0 proms and may be
	  passed by some v2 proms, and "/fd0" which is what the
	  v2 prom on my SS2 passes.  We now handle both formats.

	- Use a mountroot hook to eject the floppy and wait for
	  the user to insert a filesystem floppy if we're the boot/root
	  device.
1996-01-15 00:14:42 +00:00
thorpej
3f8e0d27a6 Add a "mountroot hook" mechanism so that devices can take care of
special needs before being used in (*mountroot)().
1996-01-15 00:06:49 +00:00
chuck
ef895a47d4 - call mapiodev() with sizeof(struct xyc) rather than ra_len (which is
zero since xycmatch no longer sets it).   [if you call mapiodev()
	with a zero size it will reuse the KVA it returns, swiping the device
	out from under you!]
 - make xyc->iopbase point in the kernels DVMA space rather than at the
	normal malloc'd KVA.   this isn't compatable with sun4m [doesn't
	have a kernel DVMA space] and will need to be changed later (XXX).
 - move disk_attach() to before reading the disk label as per Jason.
	otherwise we are reading into an unallocated buffer (oops!)
1996-01-13 03:42:40 +00:00
chuck
ca80988399 - call mapiodev() with sizeof(struct xdc) rather than ra_len (which is
zero since xdcmatch no longer sets it).   [if you call mapiodev()
	with a zero size it will reuse the KVA it returns, swiping the device
	out from under you!]
 - make xdc->iopbase point in the kernels DVMA space rather than at the
	normal malloc'd KVA.   this isn't compatable with sun4m [doesn't
	have a kernel DVMA space] and will need to be changed later (XXX).
 - move disk_attach() to before reading the disk label as per Jason.
	otherwise we are reading into an unallocated buffer (oops!)
1996-01-13 03:35:53 +00:00
chuck
695a034ccd change mapdev to panic if size == 0 to be safe. 1996-01-13 03:11:18 +00:00
chuck
dfbaa33f05 we handle all our mappings, so don't have obio.c do any for us
(i.e. don't set ra->ra_len in the match function).
1996-01-12 23:08:57 +00:00
chuck
3ef3001bec nuke uneeded variable in match function. 1996-01-12 23:06:23 +00:00
chuck
93cc1b33e1 we no longer need to add in the offset to the mapped VA to get the correct
device address (bus_tmp, bus_map, and mapiodev now do this for us).

also, we handle all our mappings, so don't have obio.c do any for us
(i.e. don't set ra->ra_len in xycmatch).
1996-01-12 22:45:04 +00:00
chuck
d14b5cb80e we no longer need to add in the offset to the mapped VA to get the correct
device address (bus_tmp, bus_map, and mapiodev now do this for us).

also, we handle all our mappings, so don't have obio.c do any for us
(i.e. don't set ra->ra_len in xdcmatch).
1996-01-12 22:43:55 +00:00
chuck
b5ddd8431d dmamatch never added in the offset for the dma registers to the VA,
and thus probed the wrong address on the 4/300 (but it worked because
it was probing the esp0 registers!).

now that bus_tmp() adds the offset in for us [as of obio 1.19] i
discoved that a byte access to the dma registers is not allowed.
so, i've change probeget to use a word access.
1996-01-12 22:03:39 +00:00
chuck
afb262e8da improved handling of mapping of devices who's registers do not reside on
page boundaries:
 - change bus_tmp() to include the offset from the start of page in the
        returned KVA [rather than forcing each driver to add it back in
        individually]
 - changed bus_map() to include the offset from the start of page in the
        the returned value if a mapping is found in the PROM's KVA area
 - clarified a few comments
1996-01-12 21:44:16 +00:00
chuck
c488310462 change mapdev() so that it includes the offset from the start of the
page in the virtual address it returns.
1996-01-12 21:22:46 +00:00
thorpej
43b4486bb3 Balance calls to disk_busy() and disk_unbusy() properly to avoid
dk_busy < 0 panics.  Count seeks.
1996-01-12 00:19:29 +00:00
pk
f278cec042 Move bus_map() prototype here. 1996-01-11 21:55:57 +00:00
pk
9580abeba7 Should pass suitable arguments bus_map(); as noted by Chuck. 1996-01-11 21:54:03 +00:00
pk
7430f70694 Return `no error' after ejecting; per Jason. 1996-01-11 21:18:40 +00:00
pk
5035080586 Correct page frame calculation after mapdev() interface change. 1996-01-11 11:19:01 +00:00
pk
94bb8db5ad Add shutdownhooks(). 1996-01-10 23:00:33 +00:00
thorpej
926f925088 Re-arrange slightly the si_options special case for the `sw'. 1996-01-09 02:36:58 +00:00
thorpej
3cb556defb Disable DMA by default on the 4/100 `sw' controller. I've had a couple
of reports of data corruption, and would rather be slow and safe until
the DMA bug is fixed.
1996-01-09 02:06:50 +00:00
thorpej
5b39541e48 New generic disk framework. Highlights:
- New metrics handling.  Metrics are now kept in the new
	  `struct disk'.  Busy time is now stored as a timeval, and
	  transfer count in bytes.

	- Storage for disklabels is now dynamically allocated, so that
	  the size of the disk structure is not machine-dependent.

	- Several new functions for attaching and detaching disks, and
	  handling metrics calculation.

Old-style instrumentation is still supported in drivers that did it before.
However, old-style instrumentation is being deprecated, and will go away
once the userland utilities are updated for the new framework.

For usage and architectural details, see the forthcoming disk(9) manual
page.
1996-01-07 22:01:38 +00:00
christos
742cee29e5 Fix setcontext call and sendsig 1996-01-07 19:47:27 +00:00
pk
dd9e5c93c7 Use {U,L} suffices per Charles' recommendation. 1996-01-05 18:10:57 +00:00
jtc
2fce159ff8 Changed name of sigaltstack's ss_base field to ss_sp to match XPG4.2 and
traditional usage.
1996-01-04 22:21:33 +00:00
thorpej
d35bd4bb23 Fix a typo that would bite if the interrupt level were wildcarded in the
kernel config file.
1996-01-04 00:20:19 +00:00