Commit Graph

278 Commits

Author SHA1 Message Date
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
cgd
4d059559f7 resurrect, and move files.pmax.newconf to new location. 1995-04-30 10:11:00 +00:00
jonathan
fb9f07db36 Update MIPS stack backtrace code to trace through locore functions,
traps, and interrupts  The earlier (4.4bsd) code didn't do the first two, and
got the last one wrong.  Also print some functions (e.g., trap handlers)
by name.  Add hook to use something other than printf() as the output
function, e.g,. for kernel debugging.
Tested with the `native' toolset, but not ELF format kernels.
(i.e., unwinding the $GP register is not tested.)

The stack backtrace code that interprets and unwinds stackframes is still
opaque and stylistically awkward.
1995-04-29 21:10:31 +00:00
jonathan
f54398dae4 Add prototype (new-style) config for pmax. This doesn't yet work;
auto-configuration initialization code is missing. It uses "needs-count"
flags to come slightly close to what the old-style pmax source expects.
Perhaps autoconfig code can be lifted from the alpha port or volunteers
found to write some.
1995-04-28 23:34:39 +00:00
jonathan
b2c7420e5a Fix performance bug in pmax MachFlushDCache(). Old code disabled icache
and wasn't unrolled. This code runs cached and unrolled, giving an order
of magnitude improvement in some cases (e.g., DMA-capable network devices).
In use at Stanford DSG since late January 1995.
1995-04-28 23:17:51 +00:00
jonathan
026a077a5d Check in source code actually containing changes in previous log message--
fixes to turbochannel-based DECstation interrupt enabling.
(I hate network firewalls that break rsh and remote CVS.)
1995-04-28 22:50:29 +00:00
jonathan
523e8bccbc Fix hardware interrupt-mask setup in the 5k/240 (3max)+ interrupt handler.
(A similar fix needs to be applied to the 3min and xine handlers.
This fixes a long-standing problem when booting with a card that
wants to interrupt (e.g., a network interface) would have interrupts
enabled before a handler was set up.

Add interrupt-counting code to model-independent interrupt handler,
and 3max (5k/200) and 3max+ (5k/240) md handlers, for vmstat -i.
Similar changes for 3min and xine are obvious but not done.

Add  code for 5k/240 to read, and latch, the current value of the
IOASIC bus-cycle counter at each timer interrupt.  The latched
counter is needed to accurately interpolate the bus-cycle counter value
as a high-resolution clock.
1995-04-28 21:48:11 +00:00
cgd
0e59975fac rename files files for new config/config.old naming 1995-04-28 08:19:12 +00:00
jonathan
07992ead4b Add memory-mapped address of the IO ASIC TurboChannel bus-cycle counter,
as present on 5k/2xx and Alpha IOASICs. Older machines may or may not
have the hardware counter. To be used as a high-resolution DECstation clock.
1995-04-28 04:44:21 +00:00
jonathan
ef8023a47b Check in changes suggested by Ralph Campbell: update variable names
to use turbochannel slot numbers, add a couple of extra slots, just
in case.
1995-04-28 03:10:41 +00:00
mellon
59f33bea48 Add sfb device driver 1995-04-27 20:52:39 +00:00
mellon
1992309f8b Fix a few compat code casualties 1995-04-25 19:16:43 +00:00
mellon
3eca8117f7 Fix up args to scdebug_{call,ret} 1995-04-25 05:30:14 +00:00
christos
de42a28a1b - added sunos_machdep.c for sun3, atari, amiga and mac68k.
- changed machdep.c and trap.c to use struct emul.
- remove ep_setup references.
- added struct emul to all emulations.
1995-04-22 20:24:40 +00:00
mellon
71d223dc04 Add dummy fb device driver reference for compatibility with conf.c changes 1995-04-21 23:58:36 +00:00
mellon
acc8d94430 Oops, still need to set waittime... 1995-04-21 23:04:32 +00:00
mellon
88603eca8f Use vfs_shutdown to sync disks... 1995-04-21 22:16:01 +00:00
mellon
92509d125f Add support for clean flag 1995-04-21 20:54:04 +00:00
mellon
6a233c363c Fix up tty struct change from conf.h 1995-04-21 01:24:26 +00:00
mellon
07a0117e2a Fix up tty struct changes 1995-04-21 01:21:06 +00:00
mellon
8da89a0fc3 Fix leioctl declaration mismatch 1995-04-19 18:06:03 +00:00
mycroft
7945dde65c leinit() returns void. Prototype more functions. Garbage collect some things
in leattach().
1995-04-19 16:23:11 +00:00
cgd
3ff27e09e2 fixes (mostly) from Jonathan Stone, to make this driver match the
state of the world as expected by the networking headers/mi code.
i changed one or two things in his patch slightly (do the lestart()
proto the right way, actually delete the if_output assignment line).
1995-04-19 06:56:21 +00:00
mellon
db8fd32d53 Add cpu_exec.c, rcons.c 1995-04-12 20:08:40 +00:00
mellon
a3c29d62df Use _KERNEL, not KERNEL 1995-04-12 01:55:35 +00:00
mellon
30bad269b8 Fix bogus declaration for mm and chrtoblktbl 1995-04-12 00:01:01 +00:00
jtc
32a6db8a76 Mips specific portions of ieeefp.h (fp_rnd, fp_except, constants, etc.). 1995-04-11 18:20:46 +00:00
jtc
600a989fb6 Changed FLT_ROUNDS from constant to a call to __flt_rounds(), so that the
current rounding mode is accurately reported.
1995-04-11 18:18:35 +00:00
mellon
7baeefcfb5 Make TOCCATA support the new console regime 1995-04-11 10:52:33 +00:00
mellon
ef6295229a Raster Console pseudo-device driver 1995-04-11 10:23:32 +00:00
mellon
4b8e4e1a20 Smart Framebuffer driver 1995-04-11 10:21:51 +00:00
mellon
10ed38a4df Add rcons pseudo-device 1995-04-11 10:14:52 +00:00
mellon
94f146ad0f Console initialization code 1995-04-11 10:08:42 +00:00
mycroft
fecbe784d6 Oops; finish that last change. 1995-04-10 12:45:53 +00:00
mycroft
22cefc03bc Bring back pmap_kernel(), for now always inlined as a pointer to
kernel_pmap_store.
1995-04-10 12:41:29 +00:00
mycroft
127e0761c9 Add mmopen(), mmclose(), and mmmmap() where appropriate. Lock vmmap when
needed.  Make types consistent.
1995-04-10 11:54:47 +00:00
mycroft
9da61beca9 map --> mmap 1995-04-10 07:31:22 +00:00
mycroft
7ccad2faec Update for conf.h. 1995-04-10 07:29:42 +00:00
mycroft
9e5184dfec Add dummy cnstop(), more return types. 1995-04-10 07:14:33 +00:00
mellon
404e6bc5c9 Put endif COMPAT_09 inside function definition 1995-04-10 04:47:47 +00:00
mellon
23023327a2 Move cpu-specific exec support to cpu_exec.c; Support 4.4BSD a.out 1995-04-03 04:38:04 +00:00
jtc
8ba211cde0 Added #define _KERNEL 1995-03-28 18:37:27 +00:00
jtc
71ab4ed9dc KERNEL -> _KERNEL 1995-03-28 18:13:48 +00:00
cgd
fa2133533d invoke ktrsyscall with (vp, code, argsize, args) as args. 1995-03-26 08:03:29 +00:00
jtc
f86410093b Changed name of __weak_reference() to __indr_reference(). They really
are indirect references, and I want to add a real __weak_reference()
macro to <machine/cdefs.h> soon.
1995-03-23 19:58:48 +00:00
jtc
d57fb977bb Added -D_KERNEL to CFLAGS alongside each -DKERNEL. 1995-03-23 19:46:18 +00:00
cgd
b8403d582b don't be so quick to cast macro arguments to unsigned; if the
arguments are really off_t's (e.g. to btodb), then you can lose
information.  This was the "> 4G file systems don't work" bug; physio
uses btodb, which was broken.
1995-03-18 07:22:43 +00:00
mycroft
2f805fa51b copy*str() should use size_t. 1995-03-09 12:05:21 +00:00