Commit Graph

25994 Commits

Author SHA1 Message Date
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
cjs 64315ab079 Fix typos. 1997-03-11 00:10:16 +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
cgd bee34e4913 when doing 'make build', build lib/csu & install it before building
lib itself.  On the Alpha (and other ELF systems), shared library builds
require files built/installed by the csu build, so if lib/csu isn't
built/installed before lib is, DESTDIR builds won't work and normal builds
can mistakenly use old versions of some csu files.
1997-03-10 23:46:12 +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
cgd b3860e1660 fix _DYNAMIC definition bogon 1997-03-10 23:17:10 +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
cgd 78b14cccb3 s/mainprog_obj/__&/ 1997-03-10 23:13:31 +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
christos dd0a1d0814 Add a .MADE directive to indicated that the children of a target are
up-to-date, even when they are not. This is to simulate our current
make install behavior with proper dependencies.
1997-03-10 21:19:49 +00:00
hpeyerl 37c622153f Remove as per discussion with core. 1997-03-10 20:51:01 +00:00
perry 59e4dfa599 polish 1997-03-10 20:50:39 +00:00
is dd80c3d309 Back out the back-out. Don't ask. 1997-03-10 20:21:01 +00:00
perry e1f7d360a1 Initial cut of Canadian national language support 1997-03-10 20:17:43 +00:00
is 9d29e526db backout previos change; was not intended for trunk. 1997-03-10 19:36:40 +00:00
is 4ce26afebe back out previoius commit---wasn't intended for The Trunk 1997-03-10 19:26:23 +00:00
is 0edaa1c1e5 adapt to new ARP code. still needs work for non-Ethernet. 1997-03-10 19:18:42 +00:00
hpeyerl 7cfeaf46a0 Color me bored. 1997-03-10 19:07:19 +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
thorpej d7fa8cdb0d Use a slightly more sane way to cheat around XXX_BROKEN_GCC on the m68k.
The old way was more complex than necessary, and buggy, as pointed out
by Bruce Albrecht <bruce@zuhause.mn.org> in PR #3309.
1997-03-10 17:29:05 +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
fvdl ff19eb6a74 warnx --> warn, warnx wasn't needed anymore after previous change
(pointed out by enami tsugutomo)
1997-03-10 14:14:37 +00:00
leo 2e85636c46 $NetBSD -> $NetBSD$ Sigh. 1997-03-10 10:22:34 +00:00
mycroft 0e6463ba0a Do the DEFAULT thing with mountd_flags. Don't output an extra
newline for statd and lockd.
1997-03-10 10:15:11 +00:00
mycroft 814cb67087 Minor cleanup. 1997-03-10 09:45:58 +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
mycroft 40202c2514 Minor cleanup. 1997-03-10 09:34:59 +00:00
mycroft 2069c0127b If foo_flags is DEFAULT, run the program with a default set of flags. Most
users will use this, and therefore will never have to worry about flags
changing between releases.  It's also a bit less error-prone.
1997-03-10 09:16:13 +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
scottr d35d739042 Document statd_flags and lockd_flags 1997-03-10 07:06:17 +00:00
scottr ba3dca973c Add configuration flags for lockd/statd, and start them if an
NFS server or client is configured and the flags are not NO.
1997-03-10 06:32:37 +00:00