Commit Graph

2081 Commits

Author SHA1 Message Date
pk 2727683a09 more DIAGNOSTIC sanity checks 1998-10-06 19:24:03 +00:00
thorpej 0729240c88 Move the "XXX re-zero proc0 user area" to the end of configure(), before
interrupts are enabled.
1998-10-06 18:58:09 +00:00
thorpej 5006dbf868 cpu_set_kpc() prototype is already in <sys/systm.h>. 1998-10-05 22:11:15 +00:00
pk 40beab6ad6 If a lock is held do not spin in a read/write loop but just read the lock
until it is released. This is easier on the bus cache coherency logic.
1998-10-05 19:58:19 +00:00
christos 550ee6b308 rename getprop routine to avoid conflict with the one in bsd_openprom.h 1998-10-05 07:13:07 +00:00
christos 0bf5ff6ade make this compile with DIAGNOSTIC again. 1998-10-01 21:26:55 +00:00
thorpej c5b8d42e66 Need 14 longs for jmp_buf now (sigcontext has 128-bit signal mask at the
end).
1998-10-01 03:28:11 +00:00
pk f382e91b5e Add a field to identify the processor that has a process' FPU context. 1998-09-30 18:40:58 +00:00
pk 4826aac9cf Make the current FPU owner (`fpproc') a per-CPU entity. Unresolved issue
as yet: lazy FPU context switching may require co-operation from other
CPUs.
1998-09-30 18:38:57 +00:00
pk 8c29324cc7 Kernel configuration with multi-processor support. 1998-09-27 15:10:25 +00:00
pk 0a090af2c7 Add `ldstub()'. 1998-09-27 14:32:14 +00:00
pk e6ce8bcfc7 sparc spin lock functions. 1998-09-27 14:31:18 +00:00
pk 0a1a6fb7e0 This file is no longer used 1998-09-26 20:51:45 +00:00
pk 166c2a5fa5 fix typo 1998-09-26 20:15:59 +00:00
pk 9f352b7e15 Stop all other CPUs upon entering a debugger. 1998-09-26 20:14:48 +00:00
pk 01e64c640c Implement mp_pause_cpus() and mp_resume_cpus(): pause and resume all
CPUs except the one running this code.
1998-09-26 20:13:56 +00:00
pk 6ad3a051e8 mp_{pause,resume,halt}_cpu() prototypes. 1998-09-26 20:12:06 +00:00
pk 8ddcd514a6 Use CPU start function in obp.c 1998-09-26 19:09:56 +00:00
pk fe1cf94b9f Add wrappers for PROM's CPU start/stop functions. 1998-09-26 19:08:09 +00:00
pk a89a10c394 Add file obp.c 1998-09-26 19:06:47 +00:00
pk 43c1cb852c Move PROM interface prototypes into openprom.h
Use the `openprom_addr' structure for passing around physical addresses.
1998-09-26 18:20:19 +00:00
pk 09a4cf6caa Move PROM interface routines into their own file. 1998-09-26 18:15:34 +00:00
pk eb8de83739 `eccmemctl' inadvertently got into the `mandatory' list. 1998-09-25 11:40:16 +00:00
pk 27569e4050 Initialize pointer to the boot CPU's interrupt register. 1998-09-24 20:38:43 +00:00
pk 831354d6de Add `intreg' cpuinfo offset. 1998-09-24 20:37:17 +00:00
pk 58ab38cb69 Use per-CPU interrupt status register. 1998-09-23 11:07:28 +00:00
pk 9eca565a37 Make cgsix_sbus & cgsix_obio dependent on their respective attribute.s 1998-09-23 08:49:46 +00:00
pk d6746389a4 The nmi_* routines are sun4m-only. 1998-09-23 08:44:51 +00:00
pk aa1cf01930 Express per-processor interrupt registers in a C structure as well. 1998-09-22 13:42:26 +00:00
pk bd37118769 Dup header. 1998-09-22 13:41:03 +00:00
pk eca50c1c33 Flush cache after diddling with trap vectors. 1998-09-22 13:40:08 +00:00
pk 1186ba5102 Introduce a `flush entire cache' method. 1998-09-22 13:39:19 +00:00
pk 5afb0e8bcb Keep the per-processor interrupt status in the cpuinfo structure.
For now, map them to the fixed virtual addresses set up early in autoconf.c
1998-09-22 13:08:44 +00:00
chs c945760779 sign-extend some operand types which need it. 1998-09-22 05:40:14 +00:00
pk 709360e3ce Fill the `bpp' slot. 1998-09-21 21:13:51 +00:00
pk 20f2898a0c Merge sun4 and sun4c version of memerr() again. 1998-09-21 10:32:00 +00:00
pk af19654e85 We no longer need to access memerr() through a function pointer.
GC `cpumod' and `mmumod'.
1998-09-21 10:30:41 +00:00
pk c3b26811ac We no longer need to access memerr() through a function pointer. 1998-09-21 10:29:20 +00:00
pk ec34e18063 Don't map sbus `registers' on sun4c (i.e. sbus @ mainbus); it's almost
certainly not the control space we want..
1998-09-20 20:08:52 +00:00
pk 7a147080b8 Async arguments are no longer passed to the memory fault handler. 1998-09-20 20:01:15 +00:00
pk 4bf750b7df Add sun4m NMI handlers. 1998-09-20 20:00:09 +00:00
pk d0d9bb7669 Dedicate a pair of entry points to handling sun4m level 15 (NMI) interrupts.
Hardware NMIs are generated on various fault conditions that take place
asynchronously to the instruction stream. Software NMIs are going to be used
for inter-processor communications.

Get synchronous fault information separately from asynchronous fault
information. Do the former right after taking a memory fault trap and
store the values in temporary locations within the cpuinfo structure (XXX),
so we can unconditionally clear the sync fault status register after
MMU probe operations. This all is to work around a Hypersparc feature
which could lead to loss of fault information because of the fault
status register getting locked.
1998-09-20 19:54:48 +00:00
pk cd8dfa6798 Account for changes in struct cpuinfo & locore 1998-09-20 19:39:18 +00:00
pk 4128057c52 Split memory fault status function into `synchronous' and `asynchronous'
versions.
1998-09-20 19:37:50 +00:00
pk 2734182a74 Re-arrange the sun4m cases a bit.
Entry points no longer have async arguments.
1998-09-20 19:34:16 +00:00
pk c3e742adfb Format string for SI register. 1998-09-20 19:31:37 +00:00
pk b6da06d637 Name fault registers more like they're referred to in various docs. 1998-09-20 19:29:10 +00:00
pk a1a94bc5fc Use the expected name for the config attach structure. 1998-09-19 16:50:31 +00:00
pk 0a6347a24d Provide an error entry point like sbus and memory. 1998-09-19 16:45:43 +00:00
pk 812eb8c1da Add %b format strings. 1998-09-19 16:44:59 +00:00
pk 25d48215a2 Map Sbus control registers. 1998-09-19 15:49:50 +00:00
pk 8381b55bd7 Add a bunch of SBus control register definitions. 1998-09-19 15:48:55 +00:00
pk 1bcd9d3bbb Pass the children register space in the attach arguments. 1998-09-19 15:47:18 +00:00
pk ced4225429 Add `eccmemctl' device. 1998-09-18 20:19:12 +00:00
pk b3c7ebb7cd Handle ECC memory control found on a number of machines.
Also defines an entry point for memory errors reported by module interrupts.
1998-09-18 20:18:10 +00:00
pk 81d435b491 sigh.. put back non-garbage collectible `que' functions. 1998-09-18 08:07:08 +00:00
thorpej dcb541531a Minor cosmetic change. 1998-09-17 02:33:06 +00:00
thorpej c006c7c0da Sync w/ sendsig(). 1998-09-17 02:30:02 +00:00
thorpej e5ea525b9f Slight brain'o in last. 1998-09-17 02:26:26 +00:00
thorpej 5bc9dafaee Minor cosmetic change to sendsig(). 1998-09-17 02:24:56 +00:00
pk 59e5588098 Map the per-CPU counter registers into each cpu info area. 1998-09-16 13:39:48 +00:00
pk 49b5114713 Make all cpu info structures accessible through an array `cpus[_MAXNCPUS]'. 1998-09-16 13:36:23 +00:00
pk 543070847c Can't afford a 1K buffer in the data segment. 1998-09-15 20:03:50 +00:00
pk 0ad1257add sub-arch protection. 1998-09-15 13:12:25 +00:00
pk fb38024157 Use `swap' to install page-table entries which is recommended practice
for MP configurarions.
1998-09-14 22:45:36 +00:00
pk 1736bda754 Define `swap'. 1998-09-14 22:43:29 +00:00
pk 0a46abfd42 Collect redundant code into cpu_setup(). 1998-09-14 10:37:12 +00:00
pk b1b69e4195 Fix cache bit confusion in pmap_alloc_cpu(). 1998-09-14 09:46:11 +00:00
pk ff383dc20d Add compat_13_machdep.c 1998-09-13 20:34:34 +00:00
pk 190e4c429d Move compat_13 sigreturn() into its own file. 1998-09-13 20:33:33 +00:00
pk 82d2ea3a70 Remove left-over SUNOS_COMPAT line. 1998-09-13 20:24:15 +00:00
pk 9658554e18 Replace previous by something more complete. 1998-09-13 20:17:54 +00:00
pk 9d9f22fa79 Signal handling changes: sunos compat gets its own sendsig(); sunos
sigreturn() == compat_13_sigreturn().
1998-09-13 20:07:54 +00:00
mycroft 4e4f120db9 Update these for signal handling changes.
XXX Not tested yet.
1998-09-13 12:13:49 +00:00
pk 90054fd502 New sigcontext. 1998-09-13 11:41:02 +00:00
pk ba67f63901 Sync function prototypes; remove unsed variables. 1998-09-13 11:34:04 +00:00
pk b8de221a1e Pull in <sys/syscall.h> directly into locore.s 1998-09-13 11:12:36 +00:00
pk 875bff538c A few slight optimizations. 1998-09-12 19:50:59 +00:00
pk ad0f4a6fbb Nuke `insqeu' and `remque' 1998-09-12 19:46:00 +00:00
pk 8b7ee2cd89 Add hatching code for other CPUs. 1998-09-12 19:44:17 +00:00
pk e120fa4e14 Machinery to configure multiple CPUs. All CPUs found are spun up from the
auto-configuration cpu_attach() function using the firmware.
Currently, all CPUs except the one used to boot end up in an idle loop
in locore.
1998-09-12 15:33:40 +00:00
pk 1b077ae1cd Set cache control bits according to configured preference (if any). 1998-09-12 15:08:04 +00:00
pk 097a922a9c Add field holding the physical address of the MMU context table. 1998-09-12 14:12:49 +00:00
pk f390eccd7d Add missing bits to per-CPU MMU table allocator routine. 1998-09-12 14:11:53 +00:00
pk cd0a5fe245 Define some bit-format strings. 1998-09-12 13:59:19 +00:00
pk 18fbdfc2f8 Expose `v3' routines to everyone. 1998-09-12 13:34:38 +00:00
mycroft 62ea009b0e Update for signal handling changes. 1998-09-11 13:31:39 +00:00
pk f6b7ca884e Use our brand new extent_alloc1() function to allocate cache-aligned
DVMA addresses.
1998-09-10 21:08:39 +00:00
thorpej 70e641047c In cpu_coredump(), use MID_MACHINE rather than MID_* (whatever it expands
to).
1998-09-09 11:17:24 +00:00
thorpej 8abe0d6b1c Adjust for the new "reaper" kernel thread: do not free the vmspace and
u-area in machine-dependent code.  Instead, call exit2() to schedule
the reaper to free them for us, once it is safe to do so (i.e. we are
no longer running on the dead proc's vmspace and stack).
1998-09-09 00:07:48 +00:00
pk 07b0821d4d Adapt to cpuvar.h changes. 1998-09-07 23:04:28 +00:00
pk b09b9f7339 De-couple the CPU info structure from auto-configuration structures. 1998-09-07 23:02:40 +00:00
pk 729d765620 Clear up some type confusion. 1998-09-07 22:56:46 +00:00
pk e21c0b3450 Need to cast sbus attach `prom_vaddrs' field. 1998-09-07 07:15:51 +00:00
pk c4c4e35608 Undo last change (we're passing the address of a pointer here). 1998-09-07 07:11:11 +00:00
pk 457395fe53 Use the new "%b" format. 1998-09-06 21:38:36 +00:00
pk c529fe0888 memerr() is now an indirect call. 1998-09-06 21:18:59 +00:00
pk cda6fb7430 Sanitize memerr*() a bit. 1998-09-06 21:14:56 +00:00
eeh 484ce04810 The `address' field from the prom is really an unsigned 32-bit value.
Make it so.
1998-09-05 22:29:49 +00:00
eeh 5dc93bd9fe Remove function naming conflict. 1998-09-05 22:15:51 +00:00
pk b39d7e33be Assign my copyrights to TNF. 1998-09-05 15:42:41 +00:00
christos 50909bd6d9 Assign copyright to TNF. 1998-09-05 15:28:08 +00:00
lukem c9db84ecc9 distclean is a synonym for cleandir 1998-09-05 15:15:14 +00:00
pk acf16f7096 Assign my copyrights to TNF. 1998-09-05 15:11:22 +00:00
pk 2c9a80baf4 Assign my copyrights to TNF. 1998-09-05 14:01:08 +00:00
pk 5ebcb31dd0 Assign my copyrights to TNF. 1998-09-05 13:45:46 +00:00
pk 30b5826331 Hang on to `old VM' a little while longer.. 1998-09-01 18:05:27 +00:00
pk 779f357ede Implement cache alignment in bus_dmamem_load(). 1998-08-31 20:00:22 +00:00
pk 4dbdab4423 Erase sparc_nam2blk[]. 1998-08-30 21:54:25 +00:00
pk 88ab783b42 Define floppy device major number. 1998-08-30 21:53:35 +00:00
pk fc313d9031 Nuke old getprop() function and put its successor in place. 1998-08-30 21:30:41 +00:00
pk 400208c8b7 getpropA() => getprop() 1998-08-30 21:27:32 +00:00
pk 6f2539f8a6 getpropA() => getprop(). 1998-08-30 21:26:46 +00:00
pk fe6b9295a8 Adjust for some small changes in lsi64854 back-end driver. 1998-08-29 21:43:00 +00:00
pk 0a30d383a0 Sbus `esp' and `le' front-ends now attach in `sys/dev/sbus/files.sbus'. 1998-08-29 20:53:11 +00:00
pk e4091cb757 Split `esp' driver and DMA engine into separate front-end files.
The Sbus front-ends have all been moved to `sys/dev/sbus', while
the `obio' front-ends remain here.
1998-08-29 20:49:35 +00:00
pk 1f0567dd53 Nuke unnecessary header files. 1998-08-29 20:38:38 +00:00
mrg ed88a6f103 add support for finding kernels other than `netbsd'. the list is:
netbsd, netbsd.gz, netbsd.old, netbsd.old.gz, onetbsd, onetbsd.gz
and vmunix, in that order.  this is used by the bootable `bootfs'
image (suitable for floppies and cdroms), which contains a netbsd.gz
by default.
while i'm here, fix up `boot [device] -s' which got broke when
booting kernels with a - in their name was fixed..
1998-08-29 06:40:43 +00:00
pk 8e0c62893c Remove cache flush from dma_espintr(); the bus dma routines take care
of that now. Hence we no longer need <sparc/cpuvar.h>.
1998-08-28 20:14:36 +00:00
pk ca868d7da6 Specify our boundary restriction when allocating DMAble memory. 1998-08-28 20:07:52 +00:00
pk 221a000391 Pass on bus_dma*() aligment and boundary arguments. 1998-08-28 20:02:19 +00:00
pk f6a208ce6b Nuke Dprintf; fix formats. 1998-08-28 08:57:38 +00:00
pk 7e95972ed1 Add `audiocs' ("SUNW,CS4231") and `en' ("ENI-155s"). 1998-08-27 20:56:44 +00:00
mrg 82571f5403 move isp sbus attachment to dev/sbus 1998-08-27 11:41:24 +00:00
pk af5a3e52a5 yanko 1998-08-25 08:28:53 +00:00
pk c6905522d2 These files are no longer used. 1998-08-24 07:23:10 +00:00
pk 66795e62e7 Move sparc_vme_dmamem_map() outside `#ifdef SUN4M' 1998-08-23 10:40:38 +00:00
pk 4539119e83 Nuke phys_map & old dvmamap. 1998-08-23 10:08:25 +00:00
pk 4fe6cdf6ca Nuke obsolete prototype. 1998-08-23 10:07:09 +00:00
pk 2a6be00de5 Rename DVMA constants. 1998-08-23 10:05:53 +00:00
pk 666587112f Use bus_dmamem_{alloc,free} instead of the old VM hack. 1998-08-23 10:04:56 +00:00
pk e68fd96987 Remove DVMA address special cases in pv_changebit(). 1998-08-23 10:01:24 +00:00
pk 434a2cc972 Nuke phys_map & old dvmamap. 1998-08-23 09:59:24 +00:00
pk 9a2b941ecb Rename DVMA constants. 1998-08-23 09:53:03 +00:00
mrg c54c62ad31 bsd_audioio.h is not used. 1998-08-22 15:56:46 +00:00
pk 79dd1e8563 Convert to [pv]addr_t & [pv]size_t. 1998-08-21 14:13:53 +00:00
pk b8a1caac4a Convert to [pv]addr_t & [pv]size_t. 1998-08-21 14:12:18 +00:00
pk 24255abca0 iommu_{enter,remove} moved to iommuvar.h 1998-08-21 14:10:42 +00:00
pk ca5b5652b4 Remove vm_offset_t & vm_size_t. 1998-08-21 14:09:59 +00:00
pk f318f15bc3 Convert to [pv]addr_t. 1998-08-21 14:07:37 +00:00
pk 7575f8fac5 Move iommu_enter/iommu_remove here from <include/cpu.h>. 1998-08-21 13:29:57 +00:00
pk 02d030ca52 Pass on `NOWAIT' and `boundary' args to extent_alloc(). 1998-08-20 20:49:33 +00:00
pk 363b678b9e Flesh out more of the sun4 busdma functions. 1998-08-20 20:46:59 +00:00
pk 02c059eefa Pay attention to BUS_DMA_NOWAIT & boundary args where appropriate. 1998-08-20 20:45:40 +00:00
pk aee27828f9 Some machines (Voyagers) apparently have zs devices with multi-valued
register properties in the PROM.
1998-08-20 11:47:39 +00:00
augustss cd09067eb4 * Redo the way the way the MIDI driver attaches to audio devices.
* Improve the midisyn layer a little.
* Add a driver for the Yamaha OPL[23] FM synths.
  The opl driver is not finished yet; it sounds pretty awful.

For some strange reason I cannot get any FM sound from my SB64 cards,
but a regular SB16 works fine.
1998-08-17 21:16:09 +00:00
mycroft 62b1bf3e2e Assign my copyrights to TNF. 1998-08-15 10:51:16 +00:00
mycroft 129cbf95ee Minor edit. 1998-08-15 05:16:41 +00:00
mycroft b2827b9d36 Assign copyright to TNF. 1998-08-15 04:16:55 +00:00
mycroft 6d3d8a1350 Make copyright notices with my name consistent. 1998-08-15 03:02:31 +00:00