Commit Graph

183 Commits

Author SHA1 Message Date
christos b5c4f2fc49 printf -> kprintf, sprintf -> ksprintf 1996-10-10 20:25:34 +00:00
jonathan 9b84ee7f35 Fix data-corruption bug on async targets:
*  When we are transferring in DATA (in asc_dma_in) and the target
  is an async device, there is sometimes an extra byte in the FIFO.
  If so, we need to drain that byte out of the fifo, but if and only
  if the target is async.  See also the comments in asc_dma_in()
  in the related Mach mk84 asc driver (scsi_53C94_hdw.c), which
  has an identical fix but applied in more restrictive conditions
  than we need, with async *disk* targets, as well as async tapes.

* Add a watchdog and timeout active SCSI requests, to eliminate any
  potential for deadlock due to applying the fix above on newer
  silicon versions of the 53c94 which may not have the above problem.
  Should use the MI scsi per-target timeout instead, when available.
1996-09-29 03:02:19 +00:00
jonathan 8eca2b2bb4 * Rewrite asc driver with ``mi'' backend and parent-specific front-end
cfattach code for TC SCSI option cards  and ioasic 53c94 baseboard SCSI.
    ascvar.h:  shared softc  declarations
    asc_ioasic.c: ioasic front-end code.
    asc_tc.c: Turbochannel option (and 5000/200 basebard) front-end code.
* ioasic_attach meeds more work to eliminate pmax_type dependency
   and to verify the clocks speed passed to 53c94.
* Add prototypes for asc script entry points; should compile with
  -Wstrict-prototypes -Wmissing-prototypes.
* Use tcvar.h interface.  The usage of tc_syncbus() and tc_mb() may
  not be quite stylistically on an Alhpa, but it apparently makes no
  difference on the eerly-generation Alpha CPUs in TC Alphas.
1996-09-25 21:07:46 +00:00
cgd 6891e01ba2 add missing underscore to __alpha_, to map interrupt names properly.
It worked right before because of happy coincidence.
1996-09-09 16:39:44 +00:00
cgd 71ad30d0e9 (1) set scsi_link channel to either the appropriate channel (if a
multi-channel driver), or to SCSI_CHANNEL_ONLY_ONE if a
    single-channel driver.
(2) use scsiprint() rather than a locally-defined autoconfig print
    function, and kill any locally-defined print function.
1996-08-28 18:59:15 +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
cgd d32f475ed4 regen for new tcdevs 1996-08-26 23:41:46 +00:00
cgd 3076d34c84 add entries for DGLTA-FA and OTTO ATM boards, alphabetize and clean up
other entries.
1996-08-26 23:39:34 +00:00
mrg 5abbf990f3 Change reboot(2) to take two arguments: bootopt like normal and also
a boot string for firmware that can do this, such as the SPARC and
the sun3 models.  It is currently silently ignored on all other
hardware now, however.  The MD function "boot()" has been changed to
also take a char *.
1996-08-09 10:30:23 +00:00
mhitch ebe82deed0 Remove the "goto abort" (which currently reboots the machine) when the
FIFO is non-empty when the message-in phase occurs before the DMA output
starts.  This showed up on a Micropolis drive.
1996-07-30 06:18:40 +00:00
mhitch e4de48ff39 Don't flush the 53C94 fifo when starting dma_in. The fifo data is valid
at that point, and flushing the fifo will hang the system.
1996-07-16 15:20:38 +00:00
mhitch cc47447cfc Try to avoid collisions with reselection when starting a new selection.
Enable reselections as soon as possible after a disconnect - prevents
losing a reselecting device.
Check for and ignore a spurious interrupt during a DMA input (from the
Mach driver).
1996-06-11 05:15:32 +00:00
cgd 825e13fec1 fix bogus comment pointed out by Mike Grupenhoff <kashmir@umiacs.UMD.EDU>.
C-style comments aren't legal in awk (except in gawk, apparently).
1996-06-05 18:32:19 +00:00
mhitch 3a8d18d828 Fix the oversight that the ASC SCSI adapter can also be on the
Turbochannel as well as the IOASIC.  It should now work on the 5000/200.
Removed the "aborts" which could leave the disk trashed when the abort
rebooted the system.  Fix the data corruption problem by clearing the
FIFO before starting a data transfer.
1996-06-04 21:08:24 +00:00
mhitch 40b6370ffb Fix the DECstation ASC SCSI driver autoconfiguration to more closely
match the alpha.  The DS3100 will now configure properly.  Also fix
the name in the cfdriver structure - somewhere it got changed from
"asc" to "as".
1996-05-29 06:32:38 +00:00
jonathan b314e27cfa Add #include of pmax/kn01var.h, remove unused variables, and close
hanging block comment in copyright to satisfy -Wall.
1996-05-20 23:19:16 +00:00
thorpej bc16409b49 Remove some extra printfs, now that Matt has lessened my confusion. 1996-05-20 15:52:32 +00:00
jonathan d1e0e11f70 * Fix formatstr/argument mismatches in diagnostic printf()s.
* Change MachEmptyWriteBuffer() to wbflush(). Should  use TC mi names tc_mb(),
  tc_wmb, tc_syncbus() but I'm not sure which each wbflush() should be.
* Add prototyped forward decl for asc_Dumplog() and add an explicit void
  return type.
* Remove unused variables.
1996-05-20 09:46:21 +00:00
jonathan 4e27f8ef06 Fix braino in initialization of confargs pointer in le_pmax_attach(). 1996-05-20 03:43:15 +00:00
jonathan b3c6ba5b5d Decstation 3100/2100 baseboard configuration stub for the LANCE driver
for DEC  TURBOchannel and IOCTL ASIC machines.
1996-05-20 02:25:08 +00:00
cgd 6793f08d00 regen for new tcdevs file 1996-05-20 01:34:50 +00:00
cgd 014cc0e804 add entry for DEFTA FDDI, clean up entry for DEFZA FDDI. 1996-05-20 01:33:45 +00:00
cgd ac61f1ad21 fix first argument to tc_intr_establish()... it's still the pointer
to the parent device.
1996-05-20 01:31:07 +00:00
thorpej 37b3b8a758 Add the DEFTA FDDI controller. 1996-05-20 00:45:02 +00:00
thorpej 38db93c012 Display model string during attach. 1996-05-20 00:35:16 +00:00
thorpej e5106dfb88 Update to the Digital Equipment PDQ-based FDDI controllers, from
Matt Thomas.  Now includes support for EISA (DEFEA) and first-cut of
support for TurboChannel (DEFTA) cards.
1996-05-20 00:20:39 +00:00
cgd 2872eeccac (on the alpha) pass the bus_chipset_tag_t given to the bus down to the
devices.
1996-05-17 23:39:19 +00:00
cgd af446a907a Update for new includes (<machine/bus.h> & <machine/intr.h>) on the
alpha.  At some point in the future, those headers should be provided
on the pmax, but until then, things are #ifdef'd so that the old
headers and definitions are still used.  Pass a bus_chipset_tag_t
to the TC bus attach code and to devices, on the alpha.
1996-05-17 23:38:16 +00:00
cgd d06c5d12db regen for new tcdevs 1996-05-09 21:44:24 +00:00
cgd 8824617eb3 add some entries for the sfb+ 1996-05-09 21:35:27 +00:00
thorpej 13e808bbd8 Make the MI LANCE driver standalone, and use cfattach to resolve
naming conflicts between bus attachments on ports that can have
multiple instances of the LANCE.

Changed struct ifnet to have a pointer to the softc of the underlying
device and a printable "external name" (name + unit number), thus eliminating
if_name and if_unit.  Updated interface to (*if_watchdog)() and (*if_reset)()
to take a struct ifnet *, rather than a unit number.
1996-05-07 02:24:54 +00:00
cgd 48fca88c3a fix printf bogon (need : and space) 1996-04-29 16:06:38 +00:00
christos b57c554d06 Add a hardware dependent initialization function lehwinit() 1996-04-22 02:53:28 +00:00
cgd 720c148692 remove unnecessary header inclusion (machine/autoconf.h) and now-bogus comment.
also, trim spaces at ends of lines, etc.
1996-04-18 01:12:41 +00:00
cgd f8073d3675 restructure to take advantage of config's (relatively) new 'attach'
specifiers.  Many #ifdefs and much other nastiness removed.
1996-04-18 00:50:11 +00:00
cgd d7d306aeb7 change LANCE copy & zero functions' names to start with amd7990_, and
remove their 'integrate' (usually defined to be 'static') keywords.
when lance drivers are split up by attachment, more than one file will
reference the copy/zero functions (i.e. not just the file that pulls in
am7990.c... and eventually inclusion of am7990.c should go away entirely).
1996-04-18 00:25:11 +00:00
cgd 17731baa0d fix copyrights 1996-04-17 22:22:32 +00:00
cgd 71c7924099 clean up clock handling: clock drivers are now seperate from the
chip-independent clock code.  'clock' has been renamed 'mcclock'  'clock'
has been renamed 'mcclock' (since it's a driver for that particular
clock, and since eventually there may be another clock chip driver),
and now attaches via seperate match/attach functions to both TC and ISA.
This removes a whole lot of #ifdefs...
1996-04-17 22:01:16 +00:00
jonathan 57fd0e266b Fixes for -Wall -Wmissing-prototypes:
include <sys/systm.h> to get a prototyped declaration of printf().
	include <machine/autoconf.h> for port-specific typedefs.
	Remove unused variables.
1996-04-09 20:50:06 +00:00
jonathan 45b229da22 fixes for -Wall -Wmissing-prototypes:
prototype the forward declaration of lewritereg().
1996-04-08 20:09:56 +00:00
jonathan 2bd6015194 Fixup after the "New device attachment scheme": change {mainbus,tc,ioasic}cd
to {mainbus,tc,ioasic}_cd.

Change ioasic config name from "lance   " to "lance". Correct for
pmaxes, perhaps not for Alphas.

Boots and runs under load on a 5000/200. Hangs during boot on an ioasic
decstation; pmax  autoconfig needs fixing.

Add Decstation-3100 baseboard support (untested).
1996-03-26 13:44:07 +00:00
jonathan 5bccfd6764 Additional fixes to complete the NetBSD/1.1B config changes:
Add new device-attach struct cfattach asc_ca and struct cfdriver asc_cd.
Change cfdriver references from "XXXcd"  to "XXX_cd".
1996-03-18 01:39:47 +00:00
jonathan 3175cdba0b Additional fixes to complete the NetBSD/1.1B config changes:
change tc_submatch() to compile with the new device-attach scheme:
the TC bus uses a 'submatch' function which checks device locators
and then calls a match function.
Instead of calling cf->cf_driver->cd_match(), we now need to call
cf->cf_attach->ca_match().
1996-03-17 22:09:17 +00:00
jonathan d1c70894b8 Additional fixes to complete the NetBSD/1.1B config changes:
Rename the extern declaration of `tccd' and `ioasiccd' in
src/sys/dev/tc/{tvar.h,ioasicvar.h", respectively, to be
`tc_cd' and `ioasic_cd', to match the 1.1B-style definitions.
1996-03-17 21:37:45 +00:00
thorpej 532e997971 New device attachment scheme:
- split softc size and match/attach out from cfdriver into
	  a new struct cfattach.

	- new "attach" directive for files.*.  May specify the name of
	  the cfattach structure, so that devices may be easily attached
	  to parents with different autoconfiguration semantics.
1996-03-17 00:57:14 +00:00
cgd 1b4f4ed21d regen 1996-03-05 23:16:20 +00:00
cgd c5830eb792 add a bunch of device IDs & driver names & descriptions, thanks to
Jonathan Stone.
1996-03-05 23:15:59 +00:00
cgd d43ef3b959 split device info into driver name and human readable description. 1996-03-05 23:15:05 +00:00
cgd 7c61fe7779 change printing of unknown device names when not (BUS)VERBOSE slightly 1996-03-02 02:44:25 +00:00
cgd 25d3eceab3 regen for changed tcdevs 1996-03-02 01:21:20 +00:00
cgd 305d9a88f6 typo in KZTSA-AA 1996-03-02 01:20:58 +00:00
cgd 9f36679a47 generated files 1996-03-02 01:17:58 +00:00
cgd c1c41f6bfc add ability to define TCVERBOSE, and get "human names" about "known"
but unconfigured (or unsupported) devices printed at boot time.
The device list is woefully incomplete, because i didn't put much time
in it, and because i don't know good "human names" for many TC devices.
1996-03-02 01:16:47 +00:00
cgd cb8f484a57 tcbus attribute moved to conf/files 1996-02-27 22:00:04 +00:00
cgd a21351b381 use config_found_sm(), rather than config_search+config_attach()+glue, to
attach subdevices.
1996-02-27 21:48:52 +00:00
cgd 3f2d99e7a2 fix first args in tcprint() invocations. Fix for this (and several previous
commits) from Jonathan.  This is why one (I) shouldn't commit code w/o
having any sane way to test it.
1996-02-27 07:07:26 +00:00
cgd 8c79f5dd54 one more minor oops; print our name, not parent's, when doing unconfigured dev 1996-02-27 03:22:44 +00:00
cgd 09c7841a66 fix bug in previous commits. also, do submatch checking for all devices,
not just option slot devices.
1996-02-27 03:19:43 +00:00
cgd ecc22fbecd use #defines for bus speed constants, print speed on attach 1996-02-27 01:37:32 +00:00
cgd c0251e2a9d (1) rename some structures & structure members, for consistency with
planned changes in other sections of code.
(2) expands the use of config_found() in tcattach() in-line, so that
    tcsubmatch can be invoked there, rather than being invoked by
    individual drivers.
(3) tcbus_attach_args now includes a turbochannel speed flag.
(4) compare a string in tcbus_attach_args against tc bus driver name,
    to better allow attachment of multiple busses to the same parent.
1996-02-26 23:38:38 +00:00
jonathan 8b3d92f17f Resolve pmax and alpha IOCTL asic driver differences, pass 1:
Rename the ioctl asic register and slot macros from ASIC_<xxx> to
IOASIC_<xxx>, to be compatible with the machine-indpendent names in
sys/dev/tc/ioasicvar.h.  The pmax code still uses
sys/arch/pmax/pmax/asic.h, as some of the registers and offsets
defined there are not yet defined in sys/dev/tc/ioasicvar.h.
Rename the ioctl asic base-address pointer from `asic_base' to `ioasic_base'.
Use the device address in the attach_args structure, instead of
using the deprecated BUS_CVTADDR macro.

Change the Mach derived asc driver to use "SCSI_PHASE_xxx" instead of
"ASC_PHASE_xxx",  as the latest version of the Mach driver does.
1996-02-02 02:33:34 +00:00
jonathan c72cd6e76c Set sc->sc_cookie appropriately for the ioasic and TC option cases.
Tested on Decstation: ioasic, kn02 baseboard, and TC option card.

Add untested for pmax 3100/5100 baseboard ethernet.
1996-02-01 06:12:16 +00:00
jonathan 3b6b27f9d5 Commit trivial changes from Mach MK84 to force sup'ables source to be updated:
Drop spurious interrupts in asc_intr().   Read back the pending SCSI command
so asc_intr() can add it to the asc SCSI log.
1996-01-04 17:43:23 +00:00
cgd f519e9db90 files file to define 'tcbus' attribute, to which 'tc's attach.
also defines tc device.  does _not_ define le driver, because
of conflicts with other (e.g. ISA) le drivers.  (Alpha kernel
configuration files include files.isa and files.tc.)
1995-12-20 00:54:18 +00:00
cgd cf967a312f Machine-independent TurboChannel LANCE driver. As-is, this driver
should work properly with:
	(1) LANCE chips hanging off the system IOCTL asic,
	(2) LANCE chips TurboChannel option boards.
Support for various PMAX-family baseboard options isn't yet in this
file, but should be easy to add.
1995-12-20 00:52:16 +00:00
cgd 4c042472eb autoconfiguration information for the TurboChannels System ("IOCTL") ASIC
found in many DECstations and all of the TC-bus Alphas.  This is
provided so that the machine-independent TC if_le driver will be able
to use it.
1995-12-20 00:50:42 +00:00
cgd eb45b93a9a machine-independent TurboChannel bus configuration. These files
deal with stuff like:
	(1) configuring built-in devices,
	(2) looking at TC slots configuring any devices found.
The lists of slots, slot locations, etc. and built-in devices
are provided by machine-dependent code.  Interrupt handling
is also provided by machine-dependent code, but the MD code provides
hooks so that standard names for 'establish' and 'disestablish'
can be used in drivers.

This code requires <machine/tc_machdep.h>, which defines some
portability types specific to the TurboChannel bus code.
1995-12-20 00:48:32 +00:00
jonathan d7b9b56e07 Rename the old pmax SCSI driver's "struct scsi_device" to
"struct pmax_scsi_device", to avoid name conflicts with the sys/dev/scsi
SCSI driver.
1995-09-13 19:35:53 +00:00
jonathan 23366c17ff Rename the old 4.4bsd/pmax old-style config "struct device" to
"struct pmax_device" to avoid conflict with <sys/device.h>.

Change the signature of interrupt-handlers to take a void *
(a pointer to the softc) and return an int (indicating spurious
interrupts or other conditions.)
1995-09-11 08:29:11 +00:00
jonathan 97cf65df4a Change pmax ASC driver to use dynamically-allocated softc structures.
Concomitant changes to code that prints driver/unit name: use dv_xname
and dv_unit, instead of doing pointer arithmetic on elements of the static
softc array.

Remove support for old config.  The old-config "driver" structure
is still present, because the pmax non-MI SCSI driver needs it.

Merge some off Per Fogelstrom's changes for the Pica driver,
which uses the machine-independent SCSI code. This is #ifdef'ed
out until the DMA is fixed to work on Decstations, too.
1995-08-21 21:22:43 +00:00
jonathan 88b9b7eb4a Update DECstation drivers to use new-style config, removing
old-style config support, except for SCSI disks and tapes.
1995-08-10 04:21:35 +00:00
jonathan 1bacfdc2dd Add preliminary support for new-style configuration: struct cfdriver,
and match and attach code.  Still use the static softc so that drivers
work with kernels configured with either new or old config.
1995-08-04 00:26:35 +00:00
cgd 40e29d5890 sync with my current Alpha sources 1995-06-28 02:44:51 +00:00
dean 50c5dd6f0d fix problem with disconnects (Ralph Campbell) 1994-12-05 19:11:12 +00:00
dean ba0ac0e803 added missing #ifdef DEBUG 1994-12-01 16:41:05 +00:00
dean fcf0991366 new asc.c from Ralph Campbell 1994-11-28 19:05:54 +00:00
dean 393ee3693c Surrounded call to debug routine with #ifdef DEBUG 1994-11-15 18:59:40 +00:00
cgd a63beafc2b new RCS ID format. 1994-10-26 21:08:38 +00:00
glass 6b63c739f3 bsd 4.4-lite pmax port as ported to NetBSD 1994-05-27 08:57:32 +00:00
glass 377b097932 upgrade to bsd 4.4-lite code base. only mod is rcsids 1994-05-27 08:39:00 +00:00
deraadt 56cc97cb80 update from rick, tarfile of Oct 11 10:46 1993-10-15 02:56:33 +00:00
deraadt 63a052d489 fixed two icky rcs-log's. 1993-10-12 03:48:52 +00:00
deraadt fe806afec2 pmax code from <ralphc@pyramid.com> & <rick@snowhite.cis.uoguelph.ca> 1993-10-12 03:22:19 +00:00