Commit Graph

12632 Commits

Author SHA1 Message Date
thorpej
d1fbc82e28 From page 6-9 of "Alpha AXP Architecture Reference Manual, Second Edition":
An IMB intruction must be executed after software or I/O devices
	write into the instruction stream or modify the instruction
	stream virtual address mapping, and before the new value is
	fetched as an instruction.

We were missing calls to IMB after mappings were changed, which caused
systems with large I-caches (e.g. my AlphaStation 500) to fail miserably
when mapping in new pages of program text, or when context switching
(I couldn't even get the shell from init!).
1997-09-16 01:52:00 +00:00
thorpej
37b8edbeac In addition to MAS_ABT, check TAR_ABT when doing configuration space
reads.  This is necessary because of newer AlphaStation firmware doing
the Wrong Thing with target aborts behind PCI-PCI bridges, much like they
do the Wrong Thing with master aborts.  Reported by Matthias Drochner.
1997-09-15 23:31:15 +00:00
thorpej
12f6c5aba1 Make sure to clear MAS_ABT if we received one. 1997-09-15 23:01:29 +00:00
thorpej
3c3c6a3b31 Use the symbolic name for "received master abort". 1997-09-15 22:35:54 +00:00
thorpej
8ff22715e8 Define bits in the CIA_ERR register. 1997-09-15 22:34:38 +00:00
is
dc914f2ee7 Only create verbose delay loop calibration message for DIAGNOSTIC kernels. 1997-09-15 22:17:55 +00:00
is
33d1f0d190 A few more boards. This really should be split into a seperate file, only
active if the kernel has ZBUS_VERBOSE similar to PCI, EISA, (podulebus?),
but I don't have that stuff ready yet.
1997-09-15 21:37:35 +00:00
pk
aa998af35c Hard-code a couple of sun4 cpu-clock speeds.
Fix a printf formatting glitch.
1997-09-15 20:52:36 +00:00
leo
00a1b6300f Add DCFA() definitions. 1997-09-15 11:12:13 +00:00
leo
571340263d Small readability update. 1997-09-15 11:08:38 +00:00
leo
409812c25c Define isabus by default on the Hades. 1997-09-15 10:51:20 +00:00
pk
b5004e4ce1 Call the device close routine when we're done reading. 1997-09-14 19:28:17 +00:00
pk
5ba6b94ba6 Do not use KERNBASE to calculate the `end of symbols' location. Instead
use the `a_entry' field from the kernel's header as a base.

Pass on a new DDB magic number to the kernel, so kernels linked for a
different KERNBASE value can apply a correction when booted from old
bootblocks.
1997-09-14 19:27:21 +00:00
pk
4969489cb6 Define a new DDB magic number to pass to the kernel. 1997-09-14 19:22:55 +00:00
pk
383448522d Refer to KERNBASE instead of its current numerical value in comments
and some early debugging code.
1997-09-14 19:20:48 +00:00
pk
dc4f93c2a1 Collect sbus status and configuration registers in `struct sbusreg'. 1997-09-14 19:17:25 +00:00
pk
e4a198d193 Move sbus fields to sbusreg.h where they belong. 1997-09-14 19:16:04 +00:00
pk
a3140bf9f2 NetBSD 1.2 and earlier sparc bootblocks have KERNBASE compiled in. This
prevents booting DDB kernels that are built with a different value of KERNBASE.

Apply a correction based on the magic number passed in by the bootblocks.

New bootblocks without the hard-coded KERNBASE reference will be assigned
a new magic number.
1997-09-13 20:36:48 +00:00
pk
c635b25325 In kbdattach() (the pseudo-device attach routine) wait for the keyboard
reset sequence to complete.  Just sending the reset command and rushing
off -- like it used to do -- might cause the keyboard's response to get
lost in case the remaining kernel initialization decides to interact
with the console (RB_ASK!) by calling cngetc(), which goes off polling
within the PROM.
1997-09-13 19:12:18 +00:00
thorpej
e97c5f6c50 Update the model string for current reality. 1997-09-13 10:09:39 +00:00
thorpej
9a5f8236b5 Don't panic if we receive a Processor Correctable Error or a System
Correctable Error; report them, instead.

XXX Need a platform-specific machine check handler so we can decode the
logout area on such errors.
1997-09-13 10:01:33 +00:00
thorpej
12b0c2a20a The Alpha console uses BOOTP for network booting, so the NetBSD kernel
should, too.  Enable the BOOTP support in nfs_boot().
1997-09-13 07:42:01 +00:00
thorpej
f784e8dc15 Apparently, new AlphaStation 500/600 firmware has the same problem with
PCI master aborts as eb164 firmware, so use the same workaround mechanism
on all system types (clear error register's master abort bit, and check
it after accessing configuration space), not just eb164's.

This also fixes a bug on eb164's - when making the Alpha port compile
again, I made an error that caused this to not be used on eb164 systems,
either.  Thanks to Matt Jacob for pointing out this goof.
1997-09-13 05:58:07 +00:00
mycroft
a9155c5057 Set the status word as well, and remove a bogus comment. 1997-09-12 10:29:20 +00:00
mycroft
701aa39854 Oops; didn't delete two retval[] usages in setregs(). 1997-09-12 09:59:53 +00:00
mycroft
cba224ed23 FPCOPROC is no longer used here. 1997-09-12 09:29:13 +00:00
mycroft
4e5b47eba3 fputype is defined in locore.s now. 1997-09-12 09:27:49 +00:00
mycroft
11393fe5b9 Add and use fputype. Optimize floating point save/restore routines a bit more
if only one CPU type is defined.  Eliminate FPCOPROC.  Merge some of the
68060 floating point stuff from the x68k port.
1997-09-12 09:25:36 +00:00
mycroft
5933da103c Add and use fputype. Optimize floating point save/restore routines a bit more
if only one CPU type is defined.  Eliminate FPCOPROC.
1997-09-12 09:23:18 +00:00
pk
27f2065c2c Update syscall() and setregs() in the wake of the recent execve() changes. 1997-09-12 08:55:01 +00:00
mycroft
cd9a968cb7 Fix a test that should be on fputype rather than cputype. 1997-09-12 08:41:55 +00:00
mycroft
8a42aeac7b GC old comment. 1997-09-12 08:35:15 +00:00
mycroft
8a8fa1ee59 Eliminate some uses of FPCOPROC. 1997-09-12 08:19:00 +00:00
mycroft
1192cdbe7e FPCOPROC is already in the Makefile; no need for it here. 1997-09-12 08:14:06 +00:00
mycroft
30073771b6 Move definition of FPCOPROC into the Makefile, since it's always required. 1997-09-12 08:13:26 +00:00
mycroft
e9f392b0a9 Eliminate some uses of FPCOPROC. 1997-09-12 08:08:50 +00:00
mycroft
55582e5bc2 The FPCOPROC option no longer exists. 1997-09-12 08:04:12 +00:00
mycroft
49f0bbb105 Nuke Locore.c. It's way too out of date to be useful at this point. 1997-09-12 07:59:20 +00:00
mycroft
895a1eced4 Fix an error from when Locore.c was removed. 1997-09-12 07:56:37 +00:00
mycroft
50cfb2fcdd Kill vestiges of Locore.c. 1997-09-12 07:55:17 +00:00
mycroft
982f24e698 Always initialize all registers in setregs(). 1997-09-12 07:00:30 +00:00
mycroft
42c101eb00 Fix execve(2) and *setregs() interfaces so emulations can set registers in a
more correct way.  (See tech-kern.)
1997-09-12 05:48:08 +00:00
mycroft
25f153bb22 Add fe0. 1997-09-12 05:22:55 +00:00
mycroft
73b4fdacad Initialize all registers in setregs(). 1997-09-12 05:01:09 +00:00
mycroft
d0917c65e9 Add an ibcs2_setregs().
XXX Current implementation is a horrible kluge.
1997-09-11 23:07:25 +00:00
mycroft
99a6404735 Add an ibcs2_setregs(). 1997-09-11 23:05:30 +00:00
mycroft
16a8787248 Fix execve(2) and *setregs() interfaces so emulations can set registers in a
more correct way.  (See tech-kern.)
1997-09-11 23:01:44 +00:00
chopps
44f6ba6c55 VM_MAX_ADDRESS is the user max address -- adjust 1997-09-11 14:01:07 +00:00
pk
aeec7a4ecc Turn off "branch folding" in microsparc II processors. This seems to
avoid strange panics happening. Patch suggested by Chris Torek.
1997-09-10 19:11:23 +00:00
gwr
b1fe1c2452 Generalize somewhat (now works for alpha too). 1997-09-10 16:25:07 +00:00