Commit Graph

782 Commits

Author SHA1 Message Date
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
thorpej 0e8ffc850f "si" and "sw" actually interrupt at level 3 (which I quickly discovered
when porting the driver).
1996-01-01 22:46:08 +00:00
thorpej 33582e90e0 "si" and "sw" now have the ncr5380sbc attribute. 1996-01-01 22:44:05 +00:00
thorpej 6d6c652f18 New driver for the Sun SCSI-3 VME and 4/100-series SCSI "Weird" controllers,
utilizing David Jones' new MI NCR 5380 code.  Ported from the sun3 ncr_si.c
and "sw" DMA code written by me.

This driver contains user-configurable "options", which can be set via the
"flags" directive in the kernel configuration file.  By default, only
DMA is enabled.  DMA completion interrupts and reselection may be enabled
by setting the appropriate bits with "flags".  See si.c for details.

Note that DMA completion interrupts and reselection don't yet work on the
4/100 controller.  I don't know why, and it's unlikely that I'll have
the opportunity to find out any time soon.  DMA does work, and results
in a considerable performance increase.

DMA, DMA completion interrupts, and reslection all work on my 4/260 (VME)
system with modern SCSI-II disks.
1996-01-01 22:40:56 +00:00
mycroft 3a89082ff4 Make this work for GCC < 2.6. 1995-12-29 18:53:01 +00:00
thorpej 17eb6e2bc1 Move the old-style disk instrumentation "structures" to a central location
(sys/kern/subr_disk.c) and note that they should/will be deperecated.
1995-12-28 19:16:31 +00:00
mycroft cd8fe86bcb Make the type of __builtin_va_list a long. 1995-12-26 01:16:24 +00:00
mycroft 0c00214737 Use __builtin_va_alist. 1995-12-26 00:19:09 +00:00
mycroft fa887628d8 Stylistic changes. 1995-12-25 23:15:31 +00:00
mycroft 72e24c3168 Update for GCC 2.7, and fix bugs. 1995-12-25 22:24:54 +00:00
mycroft 3da4b2a160 The IST_* and IPL_* constants are not bus-specific; don't treat them as such.
Change splimp -> splnet in Ethernet, ARCnet, and FDDI drivers.
1995-12-24 02:29:35 +00:00
pk 644c68a706 Towards machine independency, per cgd: macros to access hardware registers. 1995-12-18 23:58:31 +00:00
pk b7feb4a35e Enable interrupts; some ROM versions apparently turn them off. 1995-12-13 23:35:18 +00:00
pk 524718f597 Adapt to changed mapiodev() interface. 1995-12-11 12:45:16 +00:00
pk d2ae46d04e Agree with prototype. 1995-12-11 12:44:39 +00:00
pk 0d1981416d Adapt to changed mapiodev() interface. 1995-12-11 12:43:14 +00:00
pk f840d96cfe Adapt to changed mapiodev() interface.
Use new DVMA routines.
1995-12-11 12:40:20 +00:00
pk 8f162e4e25 mapdev() now takes a `struct rom_reg' argument to get access to `iospace'. 1995-12-11 12:34:36 +00:00
pk 2b7034a493 The return of dvma_malloc/dvma_free in a different shape. 1995-12-11 12:32:56 +00:00
pk 528ea56588 Change mapdev() and mapiodev() to take a `struct rom_reg', enabling the use
of IO spaces to construct device mappings.
1995-12-11 12:31:02 +00:00
pk 51c8280df1 Prototype dvma helper functions `dvma_malloc()/dvma_free()' 1995-12-11 12:25:17 +00:00
pk 5c50eeb245 Prevent possible race condition in ctx_alloc().
Remove some bogus casts.
1995-12-11 01:27:28 +00:00
pk 7987c7fce9 Use `def_width' and `def_height' as default values when getting rom properties. 1995-12-10 22:55:32 +00:00
mycroft 494a9b9eb9 Use the MI LANCE code. 1995-12-10 10:15:06 +00:00
mycroft 46366f34e7 Include vm.h, rather than guessing which files we need. 1995-12-10 06:50:58 +00:00
mycroft 292120bf63 Define __FORK_BRAINDAMAGE. 1995-12-09 04:41:41 +00:00
pk 5c482e804d Don't forget to flush the cache in vunmapbuf(). 1995-12-07 22:18:54 +00:00
pk 480398f38e dvma_malloc => malloc/dvma_mapin. (not the most elegant solution, but it'll
have to do for now).
1995-12-06 22:40:22 +00:00
pk f6a3272e25 DVMA space is described by the variables `dvma_start' and `dvma_end'.
Prototype dvma_map*() routines.
1995-12-06 22:35:54 +00:00
pk 7299c7a6c0 Have v[un]mapbuf() allocate from plain kernel map instead of dvma space.
Remove dvma_malloc/dvma_free; drivers should allocate kernel memory and
use dvma_mapin/dvma_mapout to double map it in DVMA space.

Make the resource map `dvmamap' responsible for all DVMA allocation.
The VM map `physmap' only serves the role of placeholder in the VM system.
1995-12-06 22:33:49 +00:00
pk 210b4d80ec Make pmap_prefer() also return a preferred virtual address when there's no
associated physical page.
1995-12-05 23:01:39 +00:00
pk 8a1606d530 Don't return `XS_DRIVER_STUFFUP' too easily; this can hose buffer cache
writes. Say XS_TIMEOUT in stead so the scsi code will retry.
1995-12-01 01:00:55 +00:00
pk a2a4da4874 Merge changes from sun3 port; per Gordon. 1995-11-29 23:43:42 +00:00
pk ee08e9085b Extend the size of the "soft" FIFOs which reportedly reduces the number
of FIFO overflows on high baud rates.
However, doing so on all 4 ports would cost a whopping 64KB (at 4096 entries
per FIFO) of kernel memory. So, the FIFOs are now allocated at attach time
allowing the size for the keyboard and mouse ports to be reduced (to 128)
which should be adequate for the 1200 baud they use.
1995-11-29 23:41:31 +00:00
pk 12bfe2e68e Must change `u_long' to `u_int32_t' as Jason pointed out. 1995-11-29 22:03:53 +00:00
pk 6e53c6a5fd In probe[gs]et() there's no need to check against KERNBASE, as pointed
out by David Jones and Chris Torek.
1995-11-29 01:52:41 +00:00
pk e9a919b88f Code from Jason to better configure /dev/fb. 1995-11-29 01:45:36 +00:00
pk ce474272f1 Prevent synch negotiation on ESP100 chips 1995-11-28 22:49:31 +00:00
pk 9bf3251e46 Lots of major and minor bug fixes and changes.
- properly do MSG_IN handshaking, so we can actually receive multi-byte msgs.
- do synch negotiation (now that the above works).
- handle disconnects.
There are a few trial-and-error bits at points where the docs I have are
particularly ambiguous about the state of chip and/or SCSI bus.

Things to do:
- more cleanup
- deal with MSG_OUT phase better
- keep some "config reg 3" bits per target (ie. FASTCLK and FASTSCSI).
1995-11-28 20:49:12 +00:00
pk def161af38 Careful with signed chars (caddr_t *!).
Merge in 1.1 changes.
1995-11-28 20:26:59 +00:00
pk 0c031adc76 Not all v2 proms understand the `mac-address' word (from Theo). 1995-11-14 15:04:01 +00:00
pk c7d1d39b3e dk_device => device in controller structure (noted by Jason Thorpe). 1995-11-11 21:12:50 +00:00
pk c2cd05605d UFS => FFS conversion. 1995-11-08 09:09:20 +00:00
pk 54ec9fb697 Correct test for sun4 machines (thanks Chuck).
Since uname currently does not allow to discriminate different sparc
models, we use `sysctl.hw.cpumodel' to do this somewhat heuristicly:
if the returned strings starts with "SUN4-" a sun4 architecture is
assumed. This information is used to determine whether or not to strip
the a.out header off the 1st-stage bootblocks.
1995-11-07 11:45:24 +00:00