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