Commit Graph

189 Commits

Author SHA1 Message Date
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