Commit Graph

15698 Commits

Author SHA1 Message Date
mikel
812eb1fae4 this is nullfs, not lofs 1997-03-11 03:54:29 +00:00
pk
92d853e309 4m memory fault traps: simplify fault address logic, since per-CPU
fault-status reading stubs pre-cook the arguments.

illegal instruction trap: catch iflush instructions that cause this trap
on some CPU/MMU combinations.
1997-03-11 01:20:25 +00:00
pk
01e424f233 Insert RCS Id. 1997-03-11 01:03:07 +00:00
pk
abc39039f1 Move some parts of CP detection to cpu_attach() in cpu.c.
Call get_cpuinfo() for the boot CPU to collect the minimum information
to get the bootstrap rolling.
sun4/sun4c: the Interrupt Enable register is now mapped here after pmap
is initialized (was in locore).
Replace `cpumod' and `mmumod' with `cpuinfo.*' equivalents.
Allow more than one CPU to be configured in mainbus_attach().
1997-03-11 01:01:59 +00:00
pk
476ef3b431 Per-CPU information which is collected in cpu_attach().
Many things in here were imported from an earlier version from Aaron
Brown and are not yet used. This version has all the attributes of a
snapshot; more to come as addtional CPU/MMU details get implemented.
1997-03-11 00:55:24 +00:00
pk
eb71a02a7f Re-write of CPU/MMU detection code.
Use a table driven classification based on CPU and MMU implementation/version
fields. Each CPU class or module defines a collection of routines that
implement CPU or MMU specific operations that can collect detailed setup
information.

All information is collected in a `cpu_softc' structure provided by the
auto-configuration code. However, in the interest of SMP support this
structure is located at a fixed virtual address identified by the
symbol `cpuinfo'. The `boot' CPU currently uses the the physical page(s) at
address 0x2000 for its cpuinfo. Consequently, the fixed virtual address
will be `KERNBASE+0x2000'.

The cache flush routines for several systems (sun4/4c vs. sun4m;
virtual vs. physical tags) have been factored out. Function pointers
to an appropriate set are located in `cpuinfo'. The former global
`cacheinfo' structure is now also a part of `cpuinfo'. Because of the
fixed virtual address of `cpuinfo' no extra performance penalties
are incurred by this move. In multi-architecture kernels, there's
no longer the need for run-time `cputyp' tests in this part of the system.
1997-03-11 00:44:00 +00:00
pk
8d2c03c810 Replace `cputyp' run-time tests by inserting multiple branches and NOPing
some at startup depending on architecture.

Use `get_faultstatus' field in `cpuinfo' (initialized in cpu.c) to branch
to CPU/MMU specific fault status reading stubs on memory fault traps.

Remove code top map the Interrupt Enable register on sun4/sun4c. Its VA
has moved to a high location and is now mapped in autoconf.c after
pmap has initialized. Note: this renders NMIs during bootstrap() fatal
(maybe loading %tbr should be deferred).
1997-03-11 00:09:29 +00:00
pk
7d6231865e Use cache flush routines provided in `cpuinfo'. 1997-03-10 23:55:40 +00:00
pk
129d9d5cf6 Move VA of the sun4/sun4c Interrupt Enable register from locore.
Define VA for the per-CPU `cpuinfo' structure.
1997-03-10 23:54:41 +00:00
pk
a566decb35 Use many things from the newly defined `cpuinfo' structure:
- vcache_flush_*() routines.
	- cpu_type/cpu_flags
	- per cpu context table and context administration glue.
	- different macros to enable sun4/3-level mmu support.

Simplify sun4m version of pmap_bootstrap() a bit; more to do still.

Move installation of page tables in MMU into a separate routine, in
anticipation for SMP.
1997-03-10 23:26:11 +00:00
pk
ca1c4cc6c3 Define CPUINFO_FAULTSTATUS for use in locore.s 1997-03-10 23:15:03 +00:00
pk
4f30101165 Leave `has_iocache' unset if cache not enabled. 1997-03-10 23:13:59 +00:00
pk
593dbcc7dd Replace cpumod' with cpuinfo.cpu_type' equivalent. 1997-03-10 23:09:55 +00:00
pk
d1be7c7ea4 New location of Interrupt Enable register on sun4/sun4c. 1997-03-10 23:08:31 +00:00
pk
d8fc2afd1e Replace cpumod' with cpuinfo.cpu_type' equivalents. 1997-03-10 23:01:40 +00:00
pk
3811437545 Redo attach code somewhat. Have a go at matching le's and lebuffer's on
machines where the PROM does not provide a parent/child relationship.
1997-03-10 22:58:22 +00:00
pk
9119c9c189 Add a field indicating this instance has attached to an `le', so we
can have a go at matching le's and lebuffer's on machines where the
PROM does not provide a parent/child relationship.
1997-03-10 22:56:54 +00:00
pk
e5f0b8a132 Remove cpumod' and mmumod' and several related constants.
This functionality is now taken over by cpuvar.h
1997-03-10 22:50:37 +00:00
pk
95d5138e93 Move some constants from param.h in here 1997-03-10 22:47:52 +00:00
chuck
47727c7946 remove "::" entries as per cgd 1997-03-10 22:27:36 +00:00
pk
137dda4ac6 Add getmid 1997-03-10 21:49:11 +00:00
gwr
d0a45ab470 Use the macros sc_if, sc_addr to avoid lots of references to sc_arpcom. 1997-03-10 21:45:01 +00:00
scottr
12098dae8a Add missing call to ae_nb_get_enaddr(), from <kei_sun@ba2.so-net.or.jp>.
Fixes PR 3312.
1997-03-10 17:55:15 +00:00
leo
f99aabbca1 Push out some 060 support. It's all untested and mostly copied in from the
amiga-port.
1997-03-10 14:44:26 +00:00
leo
7e288e08c3 Use vme_mask, not sys_mask to enable the SCC interrupt. 1997-03-10 14:41:43 +00:00
leo
2e85636c46 $NetBSD -> $NetBSD$ Sigh. 1997-03-10 10:22:34 +00:00
leo
b9595171f0 Add support for the Lance ethernet card on the VME-bus (Riebl/PAM) 1997-03-10 09:44:52 +00:00
thorpej
dc1020fe40 Print the interrupt level in scsiattach(). 1997-03-10 08:37:31 +00:00
thorpej
bb0d35b7e4 Bump version - we compute the kernel load address differently. 1997-03-10 08:02:23 +00:00
thorpej
4e541ff7ea Fix rounding of lowram value; ensure the kernel load address is on
an 8k boundary.
1997-03-10 08:00:47 +00:00
mycroft
66c4e32b11 Just increment the generation count. Using the time is bogus and defeats
fsirand(8).
1997-03-10 06:18:28 +00:00
mikel
3c5e473fd6 LOFS is long gone 1997-03-10 03:27:22 +00:00
leo
3d849b9429 - Turn the sc_[tr]bufaddr fields into arrays of addresses instead of just
the base address. This allows for a more flexible layout of buffers
  in the Lance's memory.
- Add a new element 'sc_saved_csr0' to am7990_softc. It's value is or-ed
  with the current csr0 value in the am7990_intr() function. This allowes
  for a 'deferred' interrupt sceme.
1997-03-09 21:12:39 +00:00
ragge
2b8ac648a3 Frob pages before trying to map them, to be sure they exist. 1997-03-09 16:00:06 +00:00
ragge
b64bca2999 Fixed bug that caused d partition being treated as c.
RAW_PART is 2, not 3.
1997-03-09 15:55:58 +00:00
mikel
a71e39e5d5 fix some spelling errors noticed by Charles Kane <ckane@mipos2.intel.com>.
fix some more noticed by myself; all are in comments or strings.
1997-03-09 06:10:32 +00:00
cgd
8efa66858c fix problem compiling if neither PCI VGA nor TGA frame buffers were
configured.  Pointed out by Matt Jacob.
1997-03-08 19:25:49 +00:00
leo
d3c11c558c Enable SCC & MFP interrupts through the vme_mask register instead of
using the sys_mask register.
1997-03-07 21:45:41 +00:00
mark
682f911197 Updated for latest major number allocations. 1997-03-07 03:30:46 +00:00
thorpej
0b07209248 Allow depend target to be parallized, from Andrew Wheadon
<andrew@wipux2.wifo.uni-mannheim.de>, PR #3257.
1997-03-07 00:50:30 +00:00
thorpej
709ccfa853 Patch from Matt Thomas to deal with the fact that Pass 2.[012] of
the 21140A-A[CDE] have a buggy receiver which may hand and/or corrupt
data on receive overflows.
1997-03-06 22:32:20 +00:00
gwr
51cfd7ed4d Get the numbers of kernel MMU tables right. 1997-03-06 05:16:34 +00:00
briggs
47392571c5 Undo some damage that CVS somehow let me get away with. 1997-03-06 02:14:51 +00:00
gwr
9a79f92460 Clean out some junk I forgot to remove last time... 1997-03-06 00:15:56 +00:00
gwr
25d7b99a1f Implement "mach pgmap" for examining mappings. 1997-03-06 00:05:23 +00:00
gwr
a4e5a18b63 Add pmap_bootstrap_setprom() with sets the PROM level-A tables to
allow the PROM monitor to see mappings in kernel space.  This also
fixes a problem with exiting to the monitor with the stack pointer
set to some place in kernel space.  Also fix NUM_KERN_PTES, and
change get_pte() so it works on any virtual address.
1997-03-06 00:04:18 +00:00
gwr
3ca8e4699d Add pmap_bootstrap_setprom 1997-03-05 23:55:54 +00:00
gwr
201bc0aa96 Add ptest_addr 1997-03-05 23:54:08 +00:00
fvdl
b754b514dc Bring limits up to 'modern' standards. 1997-03-05 23:51:47 +00:00
gwr
da2622290c Allow access to the PROM via /dev/kmem (like the sparc port) 1997-03-05 23:02:29 +00:00