Commit Graph

625 Commits

Author SHA1 Message Date
jonathan
458024d39d Random additions from the Pica r4k port:
* Add spl4() and spl5() functions from the Pica port.
* Add MachFPTrap() as an alternate entry point for MachFPInterrupt.
  The r4k reports floating-point execptions as a trap, not an interrupt,
  and the Pica port uses the name MachFPTrap().
* Add nops to the Mach_spl?() functions and MachFPInterrupt, as required
   for the r4k port.
Commit "floppy"  interrupt counter for vmstat -i.
1996-03-25 06:40:39 +00:00
jonathan
522f8705a1 Copy src/sys/arch/pmax/pmax/trap.c to pmax_trap.c.
trap.c will contain the port-independent mips trap-handling functions.
pmax_trap.h will contain the pmax-specific interrupt handlers.
1996-03-25 05:55:30 +00:00
jonathan
e920e8f829 Force reporting of memory errors for the 3MAX (aka kn02 aka 5000/200) to
always be eight digits.
Copy the kn02 memory-interrupt reporting function to the kn03 (5k/240)
memory-error handler, since the 3MAXPLUS seems to use the same ECC hardware
as the 3MAX.
1996-03-25 03:18:15 +00:00
jonathan
36424c73cf Rename the original pmax/include/machAsmDefs.h file, with CVS history,
to mips/include/asm.h.

Until all references to <machine/machAsmDefs.h> in the pmax and
pica tree are changed  to use <mips/asm.h> directly, just do
#include <mips/asm.h>, for compatibility.
1996-03-25 02:55:18 +00:00
jonathan
29aa0d22ca Replace pica and pmax include/trap.h with versions that #include <mips/cpu.h>,
after merging the definition of T_USER in the pmax port, and moving
the result to mips/cpu.h.
1996-03-24 08:17:04 +00:00
jonathan
71b212b66a Change pmax T_USER bit (software only) to be 0x20, the same as the
Pica port. (The r4000 CPU used in the pica has more hardware execption types.)
1996-03-24 08:12:53 +00:00
jonathan
c5f3b155a3 Replace pica and pmax include/cpu.h with versions that #include <mips/cpu.h>,
and add port-specific and r3k vs. r4k definitions.
1996-03-24 07:54:42 +00:00
jonathan
cc54da72aa Just include the merged pica/pmax r2000/r4000 mips_opcode.h from
mips/include/mips_opcode.h.
1996-03-23 19:10:06 +00:00
jonathan
78aac1c7b9 Merge in additions of missing MIPS-I opcodes, and r4000-in-32-bit mode
opcodes from the Pica port.   Per Fogelstrom claims the latter are all
supposedly  MIPS-II (r6000) instructions, rather than MIPS-III (R4000),
but we haven't checked to be sure.  Are LL/SC really in MIPS-II?
CVS:: ----------------------------------------------------------------------
1996-03-23 18:49:29 +00:00
jonathan
8fb3add520 * Change setregs() to copy the initial entry point to $t9, to support PIC
code following the MIPS ELF abi.
* Move the kn01 interrupt handler outside of #ifdef DS5000, to support
  3100-only kernels.
* Add #ifdef DS3100 around kn01_enable_intr() to allow configuring
  turbochannel-only kernels.

Configuration-time support for specific models of DECstation still needs
more thought/work.
1996-03-23 04:35:03 +00:00
jonathan
212f41c0da Merge more header files with arch/mips/include, by replacing
with versions that #inlude the <mips/XXX.h> file:
	reloc.h regnum.h varargs.h
1996-03-20 09:49:29 +00:00
jonathan
69a70ec129 Merge in changes from the Pica port.
Still needs more thought for single-stepping and process_write_regs().
1996-03-20 01:30:49 +00:00
jonathan
5d4883f9ed Add "mips" to the machine line, to make config create a link
compile/XXXX/mips ->  mips/include, and to use mips/conf/files.mips.
1996-03-20 01:17:06 +00:00
jonathan
e3bc270a69 Change "XXX_pmax" to "XXX_mips" in preparation for merging with
Pica reloc.h.
1996-03-19 22:18:45 +00:00
jonathan
f8342fcf97 Remove #ifdef LANGUAGE_C - protected definition of "struct reg".
(It was a duplicate of the real definition reg.h and was never used.)
1996-03-19 15:20:39 +00:00
jonathan
4758b69e7b Replace ansi.h with a version that just does #include <mips/ansi.h>. 1996-03-19 11:00:16 +00:00
jonathan
53143b46f1 more merged pmax/mips header files: types.h
Replace header files from src/sys/arch/pmax/include/ with versions that
include  equivalent files from <mips/include>.
(cvs magic copied the previous revisions, with history, to
 src/sys/arch/mips/include).
1996-03-19 05:18:26 +00:00
jonathan
e1373a1fbf Replace the following additional header files from src/sys/arch/pmax/include/
with versions that  include equivalent files from <mips/include>,
after merging changes from the pmax and pica ports into the
src/sys/arch/mips/include tree.

	ptrace.h cdefs.h pmap.h signal.h kdbparam.h
1996-03-19 04:39:01 +00:00
jonathan
d2c42783a3 Add trap definitions added for the r4000 port.
Note: T_USER is different in the pmax and pica ports!
1996-03-19 04:34:57 +00:00
jonathan
ac7c6304db Add eight 32-bit (XXX) words of reserved space to struct sigcontext,
for binary compatibilty with the pica port.
1996-03-19 04:22:04 +00:00
jonathan
ad4d94c4f3 Change "pmax_xxx" macros to "mips_xxx" macros, in preparation
for moving to src/sys/arch/mips/include/pmap.h.
1996-03-19 04:15:15 +00:00
jonathan
ed6c35ae96 Replace the following header files from src/sys/arch/pmax/include/
with versions that  include  equivalent files from <mips/include>.
(cvs magic copied the previous revisions, with history, to
 src/sys/arch/mips/include).

bsd-aout.h elf.h endian.h exec.h float.h ieeefp.h limit.h pcb.h proc.h
profile.h reg.h regdef.h setjmp.h stdarg.h vmparam.h
1996-03-19 03:06:28 +00:00
jonathan
23e6b87149 Replace the following header files from src/sys/arch/pmax/include/
with versions that  include  equivalent files from <mips/include>.
(cvs magic copied the previous revisions, with history, to
 src/sys/arch/mips/include).

 [bsd-aout.h elf.h endian.h exec.h float.h ieeefp.h limit.h pcb.h proc.h]
 [profile.h reg.h regdef.h setjmp.h stdarg.h vmparam.h]

plus  (missed one:)
ecoff.h
1996-03-19 03:06:27 +00:00
jonathan
234b085111 Replace the following header files from src/sys/arch/pmax/include/
with versions that  include  equivalent files from <mips/include>.
(cvs magic copied the previous revisions, with history, to
 src/sys/arch/mips/include).

bsd-aout.h elf.h endian.h exec.h float.h ieeefp.h limit.h pcb.h proc.h
profile.h reg.h regdef.h setjmp.h stdarg.h vmparam.h
1996-03-19 03:06:27 +00:00
jonathan
dcb272ef6e Remove pmax-specific CLK_TICK to prepare for moving to sys/arch/mips. 1996-03-19 02:45:48 +00:00
jonathan
b495cef581 Add additional mips CPU and FPU ids from Pica port:
IDT r3081 family, r4600, MIPS-IV architecture, others.
1996-03-19 02:42:28 +00:00
jonathan
1cc17fc971 Change "pmax" -> "mips" before moving to sys/arch/mips/include. 1996-03-19 02:12:05 +00:00
jonathan
c29eb3ea76 NetBSD's ieee FP definitions for the pmax are valid for other mips cpus;
change preprocessor XXX_PMAX_YYY #defines to XXX_MIPS_YYY.
1996-03-18 22:40:21 +00:00
jonathan
69f4059642 Change kn01 (pmax,3100) interrupt-enable signature to match
the NetBSD-1.1 convention.  Change the mainbus `struct confargs'
and the "generic" interrupt-establish method, used by devices that
appear on both a kn01 and TC decstations, to match.

Change the macros in autconf.h accordingly.
1996-03-18 01:47:06 +00:00
jonathan
2d2bc47dae Additional fixes to complete the NetBSD/1.1B config changes:
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"
1996-03-18 01:22:27 +00:00
jonathan
f7af868d1f Additional fixes to complete the NetBSD/1.1B config changes:
change IOASIC cfdriver references  from "ioasiccd" to "ioasic_cd"
1996-03-17 22:20:08 +00:00
jonathan
077638548b Additional fixes to complete the NetBSD/1.1B config changes:
update the old-config to new-config glue used with the 4.4bsd/pmax
SCSI drivers to use new device attach declarations and names for
the "oldscsibus", "tz" and "rz" drivers.
1996-03-17 22:14:21 +00:00
jonathan
ffd8d4cdc7 Additional fixes to complete the NetBSD/1.1B config changes:
Update the kn01 (3100 aka pmax) interrupt handler to use XXX_cd instead
of XXXcd.
1996-03-17 22:12:13 +00:00
jonathan
cdf4e87e7a Additional fixes to complete the NetBSD/1.1B config changes:
add missing structure name in the definition of `struct cfattach sfb_ca'.
1996-03-17 22:02:59 +00:00
cgd
94907fa254 adjust to deal with expression support for optional file specs 1996-03-17 13:21:09 +00:00
cgd
1f7332bada fix typo in recent attachment changes: (interface) attributes for asc
specified twice.
1996-03-17 06:09:10 +00:00
thorpej
77abd102b7 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 01:38:52 +00:00
jtc
2ce5f1478b Add _BSD_WINT_T_ definition so we can handle wint_t type added in NA1. 1996-03-16 01:31:45 +00:00
christos
25b31cbc91 fdopen -> filedescopen 1996-03-14 21:31:56 +00:00
cgd
18ec26aa21 add _MACHINE and _MACHINE_ARCH, which are like MACHINE and MACHINE_ARCH,
execpt without quotes.  meant to be __CONCAT()ted for easy #includes
of machine-dependent headers for MI code (e.g. for the MI ISA/EISA/PCI/TC
bus code).
1996-03-04 05:04:10 +00:00
thorpej
9029778d04 RCS id police. 1996-03-03 16:54:17 +00:00
cgd
1c5d7babe5 Clean up tabbing/spacing in defns of MACHINE, MACHINE_ARCH, and MID_MACHINE. 1996-03-01 23:30:08 +00:00
cgd
3d67685d36 Do not build vnode_if.[ch] for each kernel. Build them once, like the
various syscall sources/headers, and just compile them.  From PR 2142, OK'd
by mycroft.
1996-02-29 20:54:58 +00:00
thorpej
8caec41719 RCS id police. 1996-02-28 20:49:18 +00:00
jonathan
467a64a327 Replace tc.c and ds-tc-conf.c with a re-written tc_subr.c. tc_subr.c
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.
1996-02-27 22:35:05 +00:00
jonathan
776c58e187 TurboChannel bus auto-configuration tables, and TurboChannel pre-autoconfig
probe functions for console framebuffers,  rewritten to work  with the
machine-independent TC support in sys/dev/tc.
1996-02-27 22:28:08 +00:00
jonathan
ff27dbbcf9 Revert pmax stdarg.h and varargs.h to versions from 1995-11-13. Those
versions work correctly; at some point between then and the immediately
preceding revisions, the "stylistic" changes to one (or both) stdarg.h
and varargs.h broke passing doubles to printf().
1996-02-26 23:29:05 +00:00
mycroft
2ce52ae489 Define build programs with ?=', so they can be overridden with makeoptions'. 1996-02-26 02:53:20 +00:00
jonathan
ab3b20faba Remove the compile-time conditionalization for either CFB or SFB,
based on "#ifdef MELLON":  examine the framebuffer dimensions in the
fb softc, and initialize the x-axis offset appropriately.

User-level changes to (e.g.) an Xserver are still needed to work
on an SFB.
1996-02-15 19:18:22 +00:00
jonathan
d25690e30a Propagate changes from cfb driver to not require "needs-count" to other
pmax framebuffer drivers.
1996-02-15 19:13:08 +00:00
jonathan
a5c3ac2538 Allocate a single static colourmap array for aglass-tty consle
framebuffer and malloc() all others.  Remove old-config unit-number checks.

This driver no longer requires the "needs_count" flag.
1996-02-13 18:27:28 +00:00
jonathan
1c03bcb897 Finish converting MAXINE dtop driver to use new-style config.
The dtop driver no longer requires the "needs-count" flag.

Fix a panic in boot-time interrupt establish. The "generic" pmax
interrupt-establish  code assumes that all interrupt args are new-config
device structs accessed via  a struct cfdriver.   Make it so.
1996-02-13 18:23:46 +00:00
jonathan
a43eb3baa6 Fix v_putc() conflict with the declaration in <sys/systm.h>: remove the
v_putc() declaration and assignment to a temp pointer. The rcons console
initialization longer requires that hack.
1996-02-11 07:14:58 +00:00
mycroft
753fe3a25a Fix mkdep problems due to missing flags. 1996-02-09 02:21:13 +00:00
jonathan
b5c68cb4cd Add serial-console support that works with `new-style' (config.new) autconf
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.
1996-02-08 02:26:34 +00:00
jonathan
4ab4b73b40 Support kernels configured without an ASC (e.g, 3100-only configs) or
without an SII (e.g., TURBOChannel-only configs).  Only the same old,
static, set of old-config devices and old pmax rz/tz drivers is
supported.
1996-02-06 02:13:18 +00:00
jonathan
f239350d79 Fix braino in (partial) 5100 support: the 5100 is a DS_MIPSMATE, not a
DS_MIPSFAIR.
1996-02-06 01:59:46 +00:00
jonathan
bf52fa8269 The prototyping `fixes' broke vmapbuf() and vunmapbuf(), due to a "sz"
parameter parameters shadowing locals.  Replace vmapbuf() and vunmapbuf()
with the Alpha-port versions, which are cleaner (use round_page(),
trunc_page(), etc.)
1996-02-06 00:31:51 +00:00
jonathan
cb7e6f2e0f Change last argument of ktrsysret() call: pass rval[0], not rval, as
ktrsysret() expects.   Tracing of  rval[1] remains an open problem.
1996-02-06 00:13:04 +00:00
christos
2c8314f73c vm prototype changes 1996-02-05 02:06:38 +00:00
jonathan
1f780158bb Redo the locore interrupt counters reported by vmstat -i:
* add a new enum decstation_intr_t to trap.c, naming each instrumented
  interrupt symbolically, and used to index into intrcnt[].  Change the
  model-specific interrupt handlers to use the decstation_intr_t when
  updating interrupt counters.
* add instrumentation to the kmin and maxine interrupt handlers.
* fix a bug that counted each hardclock interrupts on the kn02 twice.

The hardcoded mapping from locore names to units is gross; but these
counters will hopefully be useful in identifying interrupt hot-spots
and PPP problems on the 3MIN.
1996-02-04 20:14:17 +00:00
jonathan
600a82037b A semicolon was missing from the SYSTEM_LD_TAIL stanza that converts
from elf to netbsd a.out, causing the mv to fail; add one.
1996-02-04 07:08:38 +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
9db20bf150 Don't define _KERNEL here. 1996-02-02 19:42:08 +00:00
mycroft
9d9a70a5a2 Fix #includes. 1996-02-02 18:05:36 +00:00
mycroft
88e512b693 LOCORE -> _LOCORE 1996-02-01 22:28:24 +00:00
jonathan
10a140d34d Rename SCSI phase manifest constants from ASC_PHASE_* to SCSI_PHASE_*,
as the newer version of the Mach 53c94 driver does.
1996-01-31 23:38:55 +00:00
jonathan
e229c8d175 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'.
1996-01-31 08:46:42 +00:00
jonathan
219b1ef218 Re-write Decstation turbochannel autoconfiguration code to use the machine-
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.
1996-01-31 02:53:39 +00:00
jonathan
4c0067c40b Remove config.old files for pmax. They should have been removed before
the NetBSD-1.1 release, as they have not worked or been supported for
some time.
1996-01-30 05:18:55 +00:00
jonathan
05ef657fb8 Some newer scsi-2 or scsi-3 drives reportedly return more data in
response to an inquiry command than was allocated here.  Add 1024
bytes extra padding, just to be safe.
1996-01-30 04:47:16 +00:00
jonathan
5ea2ec2357 Re-write Decstation turbochannel autoconfiguration code to use the machine-
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.
1996-01-29 22:52:15 +00:00
jonathan
764d54390c SAdd support for Sun-style framebuffer ioctl()s, as used by other NetBSD
[programs, notably /usr/sbin/screenblank.
1996-01-16 02:43:01 +00:00
jonathan
56ffba38d4 Fix how the cmap entries are updated, as contributed by Arne Juul
(arnej@pvv.unit.no). Xservers should now be able to set colours correctly.
1996-01-16 02:40:21 +00:00
thorpej
2c5d55d959 Use ${BINOWN} and ${BINGRP} per Arne H. Juul <arnej@ikke.idt.unit.no>
in PR #705.
1996-01-15 01:44:52 +00:00
thorpej
57219ebad3 Remove vnode_if.[ch] during a "make clean", per PR#536 from
Dan Carosone <danielce@ee.mu.oz.au>.
1996-01-14 21:06:47 +00:00
jonathan
04d66273af Remove the config.old sys/arch/pmax/dev/{scc.c,if_le.c}. The "new" config
equivalents (back-ported from NetBSD/alpha) are in sys/arch/pmax/tc, and/or
in sys/dev/tc.
1996-01-12 05:38:27 +00:00
jonathan
d51b06e19a Add lots of debugging to the TurboChannel autoconfiguration code. 1996-01-11 05:59:23 +00:00
jonathan
28cf41d710 Change the order of members of struct confargs, to be closer to
the sys/dev/tcvar.h TurboChannel configuration structures. (the initializers
in sys/arch/pmax/tc were already changed; the structure definition wasn't,
which broke autoconfiguration.)
1996-01-11 05:57:04 +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
jonathan
8472af018d Update a kludge from 4.4bsd/pmax: DECstation PROMs force the clock to
be in 1972 or 1973. If the clock is set to the actual time, the PROM
appears to reset the chip date to 1972 at each reboot.

Change the "year offset" from 22 years to 24 years (good till 1997)
until this code is replaced with something that uses the chip as a
seconds-since-beginning-of-year clock (encoded as a date, relative to
1972-01-01 00:00:00).
1996-01-07 15:38:44 +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
jonathan
22a5271164 Remove pmax/tc/tc.h; use dev/tc/tcvar.h instead. 1996-01-03 20:47:19 +00:00
jonathan
659c4a2ece arch/pmax/tc -> dev/tc, pass 1:
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.
1996-01-03 20:39:10 +00:00
jonathan
1016f0c77a Add dev/tc/asc.c to files.pmax, until the merger of Alpha and pmax TC drivers
s completed.
1996-01-03 20:33:25 +00:00
mellon
27f6298889 Obsoleted by sys/dev/tc/asc.c. 1995-12-29 03:49:15 +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
jonathan
df51f8395d Change MachEmulateBranch() to be able to read an insn from user space.
Kernel-debugger breakpoints in user space, or FP insns that cause
underflow in a delay slot, should now work properly. Single-stepping
of arbitrary user processes, from user level, should be added.
1995-12-28 16:22:41 +00:00
jonathan
f10a0c8931 Config file used to build pmax kernels in NetBSD/1.1
miniroots,  from Arne Juul (arnej@pvv.unit.no).
(like NEWCONF, except with options GENERIC)
1995-12-28 16:11:31 +00:00
jonathan
7d4de44572 Fix typo (two rz4s, no rz5) and add options KTRACE. 1995-12-28 16:08:20 +00:00
jonathan
a47c251d62 Use machine-independent TurboChannel include files from dev/tc.
Add machine-dependent TC definitions in pmax/include/tc_machdep.h.
1995-12-28 08:42:15 +00:00
jonathan
497e83e28c Add untested, partial support for Decsystem 5100 (mipsfair). 1995-12-28 06:44:57 +00:00
jonathan
7e98ecaca9 *** empty log message *** 1995-12-28 06:41:07 +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
d1de691efb Stylistic changes. 1995-12-25 22:22:02 +00:00
mycroft
0199e002ad Update for GCC 2.7, and fix bugs. 1995-12-25 21:41:08 +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
jonathan
6bef38210e Re-apply fix from before the NetBSD/1.1 version: actually write the pointer
to the LANCE's dma region into the IO ASIC  after computing it.
1995-12-22 12:52:09 +00:00
jonathan
339aa91097 Update the old (4.4bsd/pmax) miniroot build scripts to put mount_ffs
on a miniroot, until the  new miniroot  tools work on a pmax.
1995-12-22 08:08:14 +00:00
jonathan
2852152043 Reserve a number in the machine-dependent range for PT_STEP, in
case the kernel-debugger implementation of single-stepping ever works
with user code.
1995-12-21 09:28:36 +00:00
jonathan
c0f958f6be Add support for ptrace PT_GETREGS and PT_SETREGS for NetBSD/pmax:
* define PT_GETREGS and PT_SETREGS in pmax/include/ptrace.h
 * Flesh out the stubs in pmax/pmax/process_machdep.c to handle
   those requests.
 * Now that "struct reg" is actually used, remove the bogus
   #ifdef LANGUAGE_C around its definition, and redo pmax/include/reg.h
   so that the definitions needed by locore.S are in a separate file,
   pmax/include/regnum.h.
 * update locore.S to match.
1995-12-20 02:00:23 +00:00
jonathan
d7d2ba5ac3 Fix cross-compilation bug: native architecture is "pmax", not "mips". 1995-12-17 09:09:42 +00:00
jonathan
ea863ea59f Remove LENITR_UNIT and supporting code that allowed passing a unit
number, instead of a softc pointer, to leintr().  Pmaxes don't need it anymore.
1995-12-17 04:46:00 +00:00
jonathan
00b821d6c2 Change mips __warn_references() macro to use the ELF warning features
in binutils 2.6 and (patched) gcc 2.7.2. Only works with gcc in ANSI C
mode, for now.
1995-12-15 01:17:04 +00:00
jonathan
28db87de35 Change pixel type from u_long to u_int32_t, to match rcons. 1995-12-14 16:27:33 +00:00
mycroft
292120bf63 Define __FORK_BRAINDAMAGE. 1995-12-09 04:41:41 +00:00
jtc
0cd793449e merge in changes from 1.1 release branch 1995-11-30 00:56:23 +00:00
mellon
55980119ec Remove some cruft 1995-11-25 10:39:57 +00:00
mellon
8b29652e06 Fix colormap initialization for monochrome pmax framebuffer 1995-11-25 10:38:42 +00:00
mellon
db99c1a30b Provide compiler tool definitions for cross compilation. 1995-11-25 05:55:38 +00:00
cgd
0f7f390b49 allow bus-specific lance drivers to use machine-independent buffer/descriptor
copy functions, and convert isa and pmax drivers to do so.
1995-11-25 01:23:51 +00:00
jonathan
cf5cff6ce5 Change PROM callback from "strcmp" to "_strcmp", which is what
dec_prom.h uses.
1995-10-26 01:39:49 +00:00
jonathan
d3d55dedb5 Macro definitions of ntohs() and ntohl() for pmax bootblocks. 1995-10-26 01:31:09 +00:00
jonathan
8e3a40d820 Commit missing modified copy of (old) sparc filesystem.c, that has
a comple-time option to support a subset of UFS operations, to build
small bootblocks.
1995-10-26 01:29:34 +00:00
jonathan
3b8faec21d Initialize pointer to the fb method table. Not initializing the
method table for the 2100/3100 fb caused a panic when an X server started.
1995-10-16 22:28:36 +00:00
jonathan
0736074d04 Fix bugs in the turbochannel config table for MAXINE (personal decstation). 1995-10-09 01:45:26 +00:00
mycroft
245f292fed Prefix names of system call implementation functions with `sys_'. 1995-10-07 06:25:19 +00:00
jonathan
37d37e0791 Change the pmax framebuffer driver to reflect the rcons changes as negotiated
with pk:
Use dev/rcons/files.rcons in the pmax config file.
Use "rasterconsole" as the tag in pmax/conf, and modify the pmax
framebuffer pseudo-device drivers (fb and rcons) to us rasterconsole.h and
RASTERCONSOLE for compile-time configuration of the rcons pseudo-device.
Modify the pmax rcons pseudo-device driver to initialize a little-endian,
QVSS-compatible font (set its ascent, and set the rconsole structure to
point to that font) before calling rcons_connect().

Tested on a cfb.  The ascent may be wrong (or at least, not be aligned with
the hw cursor sprite) on a 3100.
1995-10-05 01:52:44 +00:00
jonathan
8945da0c58 Add speed entries for 7200 and multiples.
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.
1995-09-29 21:55:19 +00:00
jonathan
ae1b64d888 Fix btoc()/ctob() typo in reading physical memory that stopped ps
from reading process argument lists.
Allow kernel-virtual memory reads to read the message buffer, since
dmesg needs it.
1995-09-29 21:53:29 +00:00
jonathan
b543578236 Add a missing "nop" in a delay slot in the floating-point exception
handler.  Gradual underflow and fp emulation now work correctly.
Proper denorms also fix strtod() inaccuracies and Gcc's "enquire" program.
1995-09-28 20:02:50 +00:00
jonathan
f28ebc66ca Fix SCC bug that broke getty on pmax SCC lines: if RAW and LITOUT were
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.
1995-09-25 22:10:56 +00:00
jonathan
95a27d405b Update pmax kernel to compile with -Werror:
update MAXINE desktop bus driver to pass a softc to interrupt
handler.  The softc is still statically allocated.
1995-09-25 21:12:33 +00:00
jonathan
ed4d846a84 Update pmax kernel to compile with -Werror:
Add prototypes to the driver switch for old-style 4.4bsd/pmax device drivers
(i.e., the old pmax SCSI drivers).
1995-09-25 21:10:03 +00:00
jonathan
51d59ca152 Update pmax kernel to compile with -Werror:
Fix the initializer of the prom bootinit() function, to take a char* that's
(presumably) the name of the file  to boot -- even though it's not used.
1995-09-25 21:06:29 +00:00
jonathan
cd887a9930 Add "kvtophys()", which maps MIPS R2000 kernel-virtual addresses to physical addresses,
so they can (e.g.) be written to DMA mapping registers.
1995-09-25 20:36:23 +00:00
jonathan
06bd2712e9 Update pmax kernel to compile with -Werror:
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.
1995-09-25 20:33:26 +00:00
jonathan
27361456c5 Force a delay after calling SCC_WRITE_DATA() to give the chip
registers time to settle. DELAY(2) is reportedly enough.  Without the
delay, output characters are occasionally doubled.
1995-09-25 04:30:43 +00:00
jonathan
7bb66692c0 Add fine-grain clock code which uses the 25 MHz TURBOChannel bus-cycle
counter on 5k/240s to interpolate to microsecond-resolution clock
in microtime().  Only the "rev B" ASIC in 5k/240s is known to have
this counter; other models may or may not.  This gives microsecond
resolution at user-level, and up to 40ns resolution (modulo the
nominal 5(?) 40MHz cpu cycles for reads to complete) in the kernel.


Change the IOASIC reset function to set up the DMA mapping for the
53c94.  Allocate 16 Kbytes of DMA buffer for 53c94 ASCs under an IOASIC,
as the 3MAX baseboard and TC options  have 128 Kbytes of static
bounce buffer, and the drivers really _should_ support 16Kbyte
I/O requests. (They don't always.)

Give the LANCE a hard reset on 5k/240s, just to be on the safe side.
(the 5k/240 I use sometimes reported errors at boot time.)
1995-09-25 04:21:01 +00:00
jonathan
462ef77234 Use the new "struct rconsole"; changes I apparently forgot to commit with
pmax/dev/fb.c.
1995-09-24 23:13:00 +00:00
jonathan
21f7aa38f6 Update the pmax rcons pseudo-device driver to work with the sys/dev/rcons
version of rconsole.
1995-09-22 23:48:20 +00:00
jonathan
d1234038d4 Rename the force-all-pending-writes to memory function to wbflush().
Keep the old Mach-derived name "MachEmptyWriteBuffer()" as an alternate
entry point.
1995-09-21 23:28:31 +00:00
jonathan
0641f09bfb Include <sys/mount.h>, as the new <sys/syscallargs.h> won't compile without it. 1995-09-20 23:33:25 +00:00
jonathan
2991316b06 Remove unecessary references to arch/sparc/rcons/raster.h, and some other lint. 1995-09-20 05:36:13 +00:00
jonathan
3589d052f0 Add gory debugging, because I don't have access to a MAXINE to test
the baseboard framebuffer driver with rcons and it reportedly didn't work.
1995-09-20 05:19:54 +00:00
jonathan
d0c0f7f738 Fix initialization of MAXINE xcfb as console. 1995-09-20 05:13:06 +00:00
jonathan
df58dc7d89 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-20 04:33:00 +00:00
thorpej
3253873a9e Use `files.ultrix' 1995-09-20 00:25:44 +00:00
thorpej
065ee11549 Compile the kernel with -Werror and -fno-builtin. 1995-09-19 23:30:54 +00:00
thorpej
7d7396c414 Make system calls conform to a standard prototype and bring those
prototypes into scope.
1995-09-19 22:53:47 +00:00
jonathan
c8a3bfd5ed Update files.pmax to use Ted Lemon's port of the sparc rcons glass-tty fb
driver, the "generic" fb pseudo-device driver, and dev/cons.c.
Update an example new-config file (NEWCONF) to use them.
1995-09-18 03:09:03 +00:00
jonathan
9e925a1b42 Add cdevsw and bdevsw entries for the machine-independent sd and st drivers.
Add cdevsw and bdevsw entries for the old-pmax tz SCSI tape driver, and
add a do-nothing definition of the requisite tzdump().
1995-09-18 03:04:53 +00:00
jonathan
e18d468a1a move DEC qvss/pm - compatible (kernel tracks mouse) mouse-input parser
to qvss_compat.c  Move low-level mouse initialization to lk201.c.
1995-09-18 03:01:22 +00:00
jonathan
6d9de6f768 Fix qvss/pm compatible ioctl to set colormap entry. 1995-09-18 02:57:31 +00:00
jonathan
008afe8e46 Replace the old 4.4bsd/pmax framebuffer glass-tty font with one
suitable for the NetBSD/sparc-derived "rcons" framebuffer glass-tty.
1995-09-16 02:05:11 +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
a0b0b167c1 Include the new fbio.h, fbvar.h, and lk201.h header files introduced
with rcons, as dtop.c supplies keyboard and mouse input from the desktop
bus, even though it hasn't itself changed.
1995-09-13 07:46:03 +00:00
jonathan
d69221cacc Delete the definition of struct VDACregs (the registers of a Brooktree
bt478 vdac); it's now in bt478.h.
1995-09-13 05:46:02 +00:00
jonathan
f5dc3f3d83 Fix bug (introduced by passing sc's rather than unit numbers) in the
computation of cfb interrupt-reset address for the 3MIN's interrupt routine.
1995-09-12 22:36:09 +00:00
jonathan
b216a24d04 Rename the 4.4bsd/pmax framebuffer glass-tty console structs to
"struct pmax_fbtty".  Remove most of its fields, since the fields
in the struct fbinfo render most of them unecessary, and the pmax
now uses rcons anyway. Moe the lk-201 keycode definitions to lk201.h,
so rcons can use them too.
1995-09-12 07:51:35 +00:00
jonathan
6a072ce81d Remove the old cdevsw entries for cfb, mfb, xcfb and pm framebuffers.
Add an entry for the generic framebuffer "fb" pseudo-device, which
should be used instead of the hardware-specific drivers.
1995-09-12 07:43:58 +00:00
jonathan
2f387d871a 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-12 07:32:31 +00:00
jonathan
ab85287371 Correct a typo in the PROM id string of the sfb in sfb_match(). 1995-09-12 07:30:45 +00:00
jonathan
45d06a39e5 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-12 07:28:06 +00:00
jonathan
f261206292 Add entry for MAXINE xcfb baseboard framebuffer to the MAXINE
turbochannel configuration table.
1995-09-12 07:27:07 +00:00
jonathan
9a914b5b01 Rename the Decstation 2100/3100 interrupt functions from "pmax_<func>"
to "kn01_<func>", to avoid confounding a model name (PMAX) with the name of the
entire port (pmax).


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.)

Pass softc pointers to the scsi and ethernet kn01 (DS_PMAX)  drivers,
rather than having unit numbers wired into the base-level interrupt
handler.
1995-09-11 22:03:00 +00:00
jonathan
6746e9f52e Rename the Decstation 2100/3100 interrupt functions from "pmax_<func>"
to "kn01_<func>", to avoid confounding a model name (PMAX) with the name of the
entire port (pmax).

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.)

Move consinit() from here to cpu_cons.c.

Eliminate the old old pmax-specific console driver, whcih didn't
know about vnodes. Use sys/dev/cons.c instead.

Delete the old 4.4BSD/pmax TURBOChannel probe routines and ROM-to-driver
name-mapping functions.
1995-09-11 21:58:23 +00:00
jonathan
eefb5e8d1b Rename the old 4.4bsd/pmax old-style config "struct device" to
"struct pmax_device" to avoid conflict with <sys/device.h>.

Move the glue routines for config.old pmax SCSI device probing from
autoconf.c to conf-glue.c.
1995-09-11 21:49:37 +00:00
jonathan
187de8a215 Change pmax rcons and low-level serial drivers to support the
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.

Fix an argument  glitch between consinit() and pminit().

Change consinit() to use PROM output for remote consoles, because
the serial drivers aren't yet initializable when consinit() is called.
1995-09-11 21:37:24 +00:00
jonathan
b4100ef220 Fix argument glitch between pminit() and consinit(). 1995-09-11 21:31:25 +00:00
jonathan
f8fbfa0ce8 Change pmax rcons and low-level serial drivers to support the
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.
1995-09-11 21:29:23 +00:00
jonathan
dec12b783d Initialization and keymapping code for DEC LK-201 and successor keyboards,
abstrated out of the pmax scc and dc7085 drivers.
1995-09-11 21:23:07 +00:00
jonathan
92ec4c2ebb Delete the now-unused 4.4bsd/pmax "struct consdev". NetBSD/pmax
now uses the standard NetBSD console driver.
Add definition of  RCONSDEV, a potential framebuffer console device major
number.
1995-09-11 21:20:20 +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
30c1021fd5 Framebuffer state variable for Ted Lemon's generic-framebuffer "fb"
pseudo-device, with support for the qvss/pm - compatible interface
used by X11R5 servers on DEC framebuffers.
1995-09-11 08:18:51 +00:00
jonathan
d20d3cf520 Framebuffer ioctls for Ted Lemon's pmax generic framebuffer fb
pseudo-device.
1995-09-11 08:17:04 +00:00
jonathan
ba769a296d Register definitions for the TURBOChannel Smart Frame Buffer (sfb). 1995-09-11 08:14:16 +00:00
jonathan
c8bef84d72 *** empty log message *** 1995-09-11 08:11:20 +00:00
jonathan
1d976e39b9 Change pmax framebuffer drivers to use Ted Lemon's port of the
NetBSD/sparc rcons glass-tty console pseudo-device driver, via
the "fb" generic-framebuffer pseudo-device driver.

Individual framebuffer device drivers are now autoconfig glue,
and initialization code for a set of vdac/ramdac-level methods,
called "fbdriver", that's used by all the pmax device drivers.
All the handlers for user-level requests (open/ioctl/read/write/close)
are moved into the fb pseudo-device driver, which uses the
the "fbdriver" methods to work on any given pmax hardware driver.
Framebuffers  supported are: sfb cfb mfb xcfb pm.

Move the qvss (pm) -style mmap()ed device interface, kernel tracking
of mouse button/movement events, and placing mouse/keyboard
events in an mmap()ed ring buffer, out of the framebuffer device
drivers and into separate source files. The fb pseudo-device driver
uses the qvss-compatible interface, since that's what the (R5) X
server uses.
1995-09-11 07:45:36 +00:00
mycroft
29053c58b2 SA_ONSTACK --> SS_ONSTACK 1995-09-01 20:05:59 +00:00
jonathan
1e95db0970 Commit a copy of pmax/asic.h from my development source tree, since
the pmax lance driver that uses the machine-independent am7990.c driver
needs some definitions for it.  This is a partial re-merge of NetBSD/alpha's
tc/asic.h back to the pmax, with the addition of symbolic #define's
for registers and bits in registers that are pmax model-specific.
1995-08-29 11:52:00 +00:00
jonathan
9557f68db3 Change pmax (asc and sii) SCSI drivers to use "needs-flag", as the
drivers have  been fixed to not require "needs-count".

Add back the lines for the "rcons" console driver, even though it's
not merged into the pmax port yet, as conf.h was patched to include
"rcons.h".  Adding the device here, but not configuring it (e.g., in
GENERIC) keeps conf.c happy until rcons code is merged.
1995-08-29 10:12:48 +00:00
jonathan
5124d90b3b Work around a NetBSd/pmax kernel bug inherited from 4.4BSD: the DEC
TURBOChannel cfb has a vertical-retrace interupt that cannot be disabled
in software. 4.4BSD and NetBSD don't supply an interrupt hander and
simply neverenable interrupts from slots with a cfb.  This has never
ever worked with a cfb in a 3MIN (Decstation 5000/1xx), where a TURBOChannel
card in slot 0 (or 1 or 2) interrupts at the same IPL as spl0() (or spl1
or spl2), and there's also never been support for selectively enabling or
disabling those interrupts on a 3MIN, in either NetBSD or 4.4BSD.

This  revision add an interrupt handler for the cfb, used only on 3MINs,
so that a 3MIN can boot with a cfb as console, and enable/disable of TC
slot interrupts can be debugged. (Serial consoles via ioasic SCCs still
don't quite work,  and simply clearing the relevant bits in the R3000 cause
register is apparently over-ridden by a subsequent spl0() somewhere else.)
1995-08-29 09:56:23 +00:00
jonathan
2ddcaa8ac9 Fix references to ASIC_SLOT_RTC, which isn't yet defined on DECstations. 1995-08-29 09:43:37 +00:00
jonathan
bb16b9c249 External declarations for Decstation model-specific interrupt handers. 1995-08-28 20:01:34 +00:00
jonathan
60e0c381c1 Fix autoconfig table initializers for 3MIN (tested) and MAXINE (untested). 1995-08-24 22:32:18 +00:00
jonathan
8522bd48f3 Move the pmax scc driver from sys/arch/pmax/dev to sys/arch/pmax/tc,
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.
1995-08-22 04:28:41 +00:00
jonathan
7560ab9b68 Rework the pmax scc driver, which hadn't changed much from the 4.4bsd
pmax driver, to be diffable with the NetBSD Alpha driver. Specifically,
the pmax driver now uses register names dev/ic/z8530.h. The driver now
uses new-style config and dynamically-allocated softc structures.  The
driver no longer resets the "other" channel on an SCC when changing tty
parameters. The #ifdef'ing away of processing of the output clist for
non-console lines is no longer done.  (Non-console serial ttys might even
work now.) Other discrepancies between the pmax and alpha drivers, which I
don't understand yet, are marked by XXXes.

The 4.4bsd pmax console redirection code is still present, protected
by #ifdef TK_NOTYET. Diffs from the Alpha scc driver are now minimal.

Verified to boot on a Decstation 5k/240.
1995-08-21 21:42:10 +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
d21f86df37 Initialize the ioasic slot probe table for the 3MIN (Decstation 5k/1xx)
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".
1995-08-18 10:15:09 +00:00
jonathan
8ff2cc97a0 Rename "asic" to "ioasic", to be compatible with "machine-independent"
turbochannel/asic device drivers. (also comment out tt.c.)
1995-08-18 10:09:20 +00:00
jonathan
c591ca4056 Merge back fixes from the merged Decstation/Alpha driver.
Remove all references to #ifdef SPARSE, and use #ifdef alpha instead.
Only initialize ASIC dma on a machine with an ASIC.
1995-08-17 22:28:27 +00:00
thorpej
66dcd8fd69 Add entries for the ccd. 1995-08-17 17:40:42 +00:00
jonathan
647f483937 Remove turbochannel slot_hand_fill functions and all references
to them.
1995-08-17 09:27:18 +00:00
jonathan
2c6601a704 Remove lint in the intializer of the table used to glue new-config
drivers and the old-config PMAX-specific scsi drivers.
1995-08-17 06:54:56 +00:00
mycroft
af645f49fb Make splimp() > spltty(). 1995-08-13 00:29:03 +00:00
mycroft
fa13d32c41 Add splsoftnet(). 1995-08-13 00:16:08 +00:00
mycroft
21bd4f21f6 Use splimp(), not splnet(), for now. 1995-08-13 00:07:17 +00:00
jonathan
6a43b6e3a1 Re-port the Alpha versino of NetBSD's machine-independent LANCE driver
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.
1995-08-11 02:12:56 +00:00
jonathan
37e46e6b64 clockattach() wasn't printing a newline; add it. 1995-08-10 10:50:58 +00:00
jonathan
69f95bd2bb Use "lance" as the name of the PMAX (kn01) Lance device, not "le", since
"lance" is what the Alpha drivers use.
1995-08-10 10:49:46 +00:00
jonathan
0822ab0fe1 Map from NetBSD/Alpha names for machine-dependent functions (e.g.,
"force this pending write to complete") to the names used in NetBSD/pmax.
1995-08-10 05:29:11 +00:00
jonathan
b42e35d645 Un-comment dependency on file cpu.c, since cpu.c has been commited to CVS. 1995-08-10 05:22:26 +00:00
jonathan
0b4c870908 Change DEcstation autoconfiguration to use new-style config.
All devices except SCSI disks and tapes are found using new config only.
SCSI disks and tapes are configured using a table edited from an ioconf.c
produced by config.old.

Boots multi-user on PMAX, 3MAX and 3MAXPLUS.  The old-style "slot hand fill"
functions for those machines, and the old TurboChannel configuration
main loop, have been removed.

Since new-style config runs later in boot than the old pmax turbochannel
probing, we no longer know what devices will be configured when consinit()
is called. Use PROM output until autoconfig is finished.
1995-08-10 05:17:07 +00:00
jonathan
bc6e09fad6 Remove extraneous debugging printf()s when running on processors
this code has been tested on.
1995-08-10 04:31:46 +00:00
jonathan
a1a7750426 Move IO ASIC interrupt-enable outside #ifdef DEBUG, where it had
accidentally snuck in.  Clean up debugging messages and explicitly
give a warning on  CPUs the code hasn't been tested on.
1995-08-10 04:30:41 +00:00
jonathan
e3b5a34826 Update DECstation Lance ethernet driver to use new-style config. 1995-08-10 04:27: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
96f7ad7c6e Add missing "priority" field value in KN02 "asic" configuration entry for
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).
1995-08-09 01:21:43 +00:00
jonathan
19e02269b2 New-style config (config.new) autoconfiguration code for Decstation
turhsturbochannel machines.  Lifted wholesale from cgd's Alpha
turbochannel code, with changes that reflect the slightly different
bus topology and `slot' numbering on Decstations.
1995-08-07 07:07:43 +00:00
jonathan
28c5634912 Add dk_establish() and bounds_check_with_label(), from the alpha port, for
the machine-independent SCSI driver.  Untested.

Only print diagnostics about reading Ultrix labels when DIAGNOSTIC is defined.
1995-08-04 02:34:24 +00:00
jonathan
c4f9523535 Fix cut-and-paste error in device order (clock). 1995-08-04 01:47:37 +00:00
jonathan
4e33c9f0dc Snapshot of a prototuype for a new-config GENERIC configuration.
This relies on an ugly mixture of new-style config and old-style config.
1995-08-04 01:24:39 +00:00
jonathan
d55e0dddac Restructure configure(): move turbochannel-device configuration
into a separate function for readability.  Rework interrupt initialization,
so interrupts are never enabled until configuration has found and
attached all devices.  Call spl0() just before probing the scsi bus,
as the DECstation scsi code can't poll, and hangs if interrupts
are disabled.

Add preliminary support for new config, protected by #ifdef NEWCONF/#endif.

Cosmetic changes to swapconf() and setroot() to reduce distance
from Alpha versions of same.
1995-08-04 01:14:17 +00:00
jonathan
43f316f423 Declarations for new-config autoconfigure, based on NetBSD/Alpha. 1995-08-04 00:34:15 +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
jonathan
d7bb0a516f Add header files with prototyped declarations of the serial-chip hooks
used by old-style pmax console configuration.
1995-08-04 00:22:02 +00:00
jonathan
f7b8418b54 Add a prototype for (tc_enable_interrupt)(). 1995-08-04 00:16:01 +00:00
jonathan
be23617ea0 Commit ghastly change that supports select on framebuffers, since
the pr on that hasn't been closed yet.

Fix broken initialization of swap_dev.
1995-08-02 19:36:45 +00:00
jonathan
c715dd10fe Only print diagnostic messages about interrupt enable when DIAGNOSTIC
is defined.
1995-08-02 07:19:37 +00:00
jonathan
4542ca9870 Commit old changes from my source tree in preparation for newconfig:
only print diagnostic messages about interrrupt enabling when DIAGNOSTIC
is defined.
Remove old buggy 4.4BSD turbochannel interrupt kludge for ioasic machines
inside "#if 0"/"#endif" as the NetBSD code has been  working fine for months.
1995-08-02 06:44:54 +00:00
jonathan
9b50b450f7 Add DS_3MAXPLUS (kn03) to switch statements for redirecting input
to and from SCC devices. (The 3MIN was supported but not the 3MAXPLUS).
1995-08-01 23:15:26 +00:00
jonathan
6a99440efd Add prototypes for most functions. Fix typo where statements
intended to increment interrupt counters for vmstat -i (i.e., "ctr++")
on 3100s had just a single "+", and hence had no effect.
1995-08-01 06:58:57 +00:00
jonathan
9aae39ad42 Partial rewrite of rz dump routine. Doesn't yet write to disk but
does everything else. No worse than returning ENXIO, as we used to.
1995-07-24 19:36:52 +00:00
jonathan
4525afdaeb Add diagnostics for 5k/240 turbochannel interrupts, and clean up IOASIC clock
declarations.
1995-07-23 20:21:17 +00:00
jonathan
82d5943755 Add argument prototypes - __P((void)) - to the declarations of Mach_spl*() functions. 1995-07-23 20:11:54 +00:00
jonathan
1354a15fb5 Add support for Decstation 5k/240 (3MAXPLUS) to the switch controlling
redirection of console serial input (keyboard, mouse). Fixes non-redirection of
keyboard to X server on a 5k/240.  The Mfb and sfb drivers are similarly broken.
1995-07-22 05:04:46 +00:00
jonathan
594ee04ec1 Add "cpu DS5000_240" to generic config, to support 3max+.
3max+ interrupt handler and IOASIC clock code depend on it.
1995-07-18 02:02:38 +00:00
jonathan
9c4be79d84 Clean up Ultrix compatiblity code: redo Ultrix label reading code
to have the same interface as native readdisklabel(), call it cleanly
from caller of readdisklabel(), and fix bug that left d_npartitions at 1
for ultrix-compat labels. Ultrix labels now actually work.
1995-07-14 01:05:22 +00:00
jonathan
eac9104365 Add stubs for previously-undefined tzwrite(), tzread(), since the new
pmax conf.c references them.  A cut-and-paste job from the pmax
rzwrite() and rzread().  tzwrite() and tzread() are utterly untested.
tzwrite() should also check for write-protect, or handle writes to a
write-protected tape gracefully.
1995-07-12 07:24:27 +00:00
cgd
479fb9e45b add <sys/cdefs.h> inclusions. namsspace-protect physadr, label_t
def'ns against _POSIX_SOURCE and _ANSI_SOURCE.
1995-07-06 03:39:32 +00:00
paulus
08b7596c51 Add code to interrupt to call pppintr. 1995-07-04 12:22:21 +00:00
mycroft
7263209ce6 Make each disk and tape driver define its own read and write functions.
Deprecate rawread() and rawwrite() completely.  Remove d_strategy from cdevsw to
force the abstraction barrier.
1995-07-04 07:15:28 +00:00
jonathan
7c4739e2c3 Change bootblock load code to work with old DECstation proms (2100, 3100)
that lack the REX callback introduced with 5k/200.
1995-06-28 10:22:32 +00:00
cgd
c83f9c5568 remove unused cpu_exec() definitions. moved "broken swap" markers, for
ports that still need it, to types.h.
1995-06-28 02:55:18 +00:00
cgd
d4a54b73d2 kill user-land DELAY macro, as suggested by gwr. 1995-06-28 02:43:36 +00:00
mellon
34f8cc760a leinit: we always have at least one address now. 1995-06-27 19:54:49 +00:00
cgd
2d49c3885b clean up definitions of ctod(), dtoc(), ctob(), btoc(), btodb(), and
dbtob().  remove unused definitions of ctos(), stoc(), and dtob().
1995-06-26 06:55:38 +00:00
cgd
1c0be437b1 define __BDEVSW_DUMP_OLD_TYPE for ports where it's true. clean up
some m68k ports inclusion of common header.
1995-06-26 05:13:37 +00:00
christos
98df248f95 Makefile.arch: - Add -lcompat
- Change clean: target to be a double dep one,
			  so libraries can use the clean target too
			- Add genassym to the clean targets
1995-06-24 20:46:09 +00:00
jtc
55fbbc705d Wrap with #ifndef _XXX_FLOAT_H_/#define _XXX_FLOAT_H_/ ... /#endif. 1995-06-20 20:45:22 +00:00
jtc
1d65cdd4ab #include <sys/cdefs.h>.
Wrap __flt_rounds() declaration with __BEGIN_DECLS/__END_DECLS.
1995-06-20 20:32:22 +00:00
mellon
1305dc32df Put parentheses around macro arguments 1995-06-16 02:07:33 +00:00
jonathan
8e556dece3 Change default optimization level from -O to -O2. 1995-06-09 06:44:41 +00:00
jonathan
ae4eae4f63 Change reference in asm code from `__mcount'' to `___mcount'', to be
consistent with the (default) prepending of underscores to identifiers.

Because this reference is inside an ASM string it's too hairy to
conditionalize to support different toolchains that don't prepend underscores.
(Just don't do profiling with  such  toolchains.)
1995-05-31 00:25:06 +00:00
jonathan
8a93b408d6 Fix BPF bit-rot in receive side of pmax/dev/if_le.c: prepend ether header. 1995-05-31 00:15:46 +00:00
jtc
f90f8d10aa Removing -DKERNEL, transition to _KERNEL has been completed 1995-05-16 22:24:17 +00:00
jonathan
4175c2819f Redo 3MAX+ (5k/240) interrupt enable code.
Instead of being a no-op, kn03_intr_enable() sets the sw copy of the
interrupt-enable mask *and* writes it into the IO asic intr-enable
register.  Boot code sets the sw copy (kn03_tc_imask) to something
sane (KN03_IM0, with tc option slots turned off).  Tested and works.
Interrupt code for other IOASIC machines should be redone so that
interrupts for devices are enabled by drivers, rather than by
cpu-specific boot code.  Functions common to all IOASIC machines
(PSWARN?) should be done by asic_init().

Checked in without the above changes so that 3MAX+, MAXINE and 3MIN
interrupt-(enable,handle) can converge.
1995-05-12 23:27:23 +00:00
mellon
214234c937 Fix MAXine interrupt mask routine 1995-05-05 06:48:14 +00:00
cgd
8703076975 define BROKEN_SWAP and/or cpu_swapout as appropriate. 1995-05-05 03:41:51 +00:00
mellon
3ff601e7a1 Don't conditionalize utility routines based on DEBUG flag 1995-05-05 02:45:31 +00:00
jonathan
03c9dc7a48 Fix long-standing bug in NetBSD/pmax interrupt initalization on
Turbochannel machines with an IOASIC.

After an interrupt is taken, the IOASIC interrupt enable mask is
and'ed with the kernel's interrupt-mask variable.  This masks
off any interrupts that were enabled after the hardware interrupt-enable
mask was set. Due to this bug all iynterrupts must be enabled before
the first interrupt is taken. (Interrupts enabled later aren't on in the
ioasic intr-mask  register, so they aren't on in (sirm & kernelmask),
which is what used to get written back to the ioasic interrupt-mask
register.  	Fixed, and tested on  on 3MAX+ but not xine/3min.

If this patch perchance breaks on Xines or 3mins, the old code can be
re-enabled by changing the #if 0 in machdep.c to #if 1.
1995-05-04 19:48:41 +00:00
mellon
c6a24163a3 Use Alpha cdefs.h 1995-05-03 06:04:54 +00:00
jonathan
64b99b333d The pmax 3100 interrupt-init code is broken: cpu_startup() enables
interrupts before it calls configure().  On 3100s, this can result in
the ethernet interface interrupting before leprobe() is ever called.
Be a bit more defensive in leintr(), where it was dereferencing a null
pointer.  This reputedly fixes the oft-reported problems of 3100s not
ooting unless they're on an idle net or had a hard reset done before boot.
(Reworking the config code completely would be nice too.)
1995-05-02 20:00:09 +00:00
jonathan
be2c7f3d13 If we panic inside trap(), Do a stack traceback before printing the trap log.
Also change the stack-traceback code to avoid having multiple returns
(and thus multiple stack pops) because with gcc -O2 that breaks the
heuristic that a "jr ra" preceding the PC precedes code to push the
current stack frame.  Which breaks stacktrace() before it even
traces past itself :-(.  Use a goto instead.
1995-05-02 19:51:52 +00:00
mellon
edab8dc1d9 Oops, took out a bit too much 1995-05-01 17:35:45 +00:00
mellon
7bada980a5 Oops. Undo some console code checkins that didn't belong. 1995-05-01 17:22:20 +00:00