Add new device-attach struct cfattach le_tc_ca and struct cfdriver le_cd.
Change IOASIC cfdriver references from "ioasiccd" to "ioasic_cd".
Change "mainbuscd" to "mainbus_cd"
- 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.
works with the revamped machine-independent TC code in sys/dev/tc.
A name change is necessary to avoid a name clash with sys/dev/tc/tc.c,
which also creates a tc.o.
code. Substantially the same code tested on a 5k/240. Should work on a
5k/1xx. Not tested on a MAXINE, where the single unit may break the
PROM-channel-number to driver-channel-number mapping.
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'.
independent TC support in sys/dev/tc/tc.c and sys/dev/tc/tcvar.h:
* Change the tc autoconfiguration tables to use a struct tc_attach_args
instead of the ad-hoc structure.
* Change all pmax device drivers to use a `struct confargs' that's
assignment-compatible with sys/dev/tc/tcvar.h `struct tcdev_attach_args'.
Devices that can be present on a TC or as ioctl asic/mainbus builtins
use the same `struct confargs'.
* Eliminate the `BUS_CVTADDR()' macros which the pmax port inherited from
an old, now-obsolete sys/arch/alpha snapshot.
* Update the comments and debugging code in interrupt handlers to
be consistent with the machine-independent TC support.
Other commits that overlap the same source files include: re-enabling
clock-tick interrupts earlier, and counting hardclock ticks for vmstat -i.
Eliminate pmax/tc/tc.h. Use dev/tc headers for pmax port. Change pmax TC
autoconfig tables to use structs (mostly) compatible with dev/tc/tcvar.h.
Move TC console search to tc.c.
Add as-yet-unused speed entries for a 1x SCC clock, up to 200 Kbits.
Remove old top-bit-means-delay code, since nothing seems to need it,
and it apparently partially broke lk-201 initialization anyway.
both off, haracters with their top bit clear were interpreted as a delay.
This (strange) behaviour is still available if SCC_PARITY_MEANS_DELAY
is defined.
Update TURBOChannel and ioasic interrupt-establish routines to pass on their
device argument as a "void *", since that's how all the pmax interrupt handlers
are declared.
old-style pmax polled input for cn_getc(). Needed because the
input side of rcons is not initialized in time for GENERIC kernels
to use it to read a root/swap devicename from /dev/console.
as it's a driver for a device under a TC IOASIC. The Alpha port also
has its scc driver in tc/scc.c, and the pmax driver scc is nearly the same
as the Alpha.
and MAXINE (Decstation 5k/xx), instead of setting them to NULL.
New-config kernels should work on those machines now.
Rename the definition of the struct cfdriver for the IO ASIC from "asiccd"
to "ioasiccd", as the config-file name changed from "asic" to "ioasic".
back to the DECstation. Boots on 3MAX and 3MAXPLUS. The bug-fixes
applied to this driver since it forked off the Decstation code also
seem to fix long-standing DMA problems with the Decstation SCSI driver.
the Dallas-compatible real-time clock. The missing entry caused the offset
to end up in the "priority" field. New-style config now boots cleanly on a
KN02 (3MAX).
turhsturbochannel machines. Lifted wholesale from cgd's Alpha
turbochannel code, with changes that reflect the slightly different
bus topology and `slot' numbering on Decstations.