Commit Graph

2588 Commits

Author SHA1 Message Date
kleink
133ea38323 Add a WEAK_ALIAS() macro. 2000-06-23 12:18:45 +00:00
fvdl
1ee7d22c0b Remove prefix construction for softdeps. Add SOFTDEP option to GENERIC. 2000-06-22 20:27:49 +00:00
pk
6a56e89b7a Enable SUN4_MMU3L (sun4/400 3-level MMU support) 2000-06-21 13:46:43 +00:00
pk
5c1633af0d Fix pastos in bus_space_read_region_*() functions. 2000-06-21 13:41:23 +00:00
pk
2bb919e39a Update entries for VME devices ie[1-4]. 2000-06-20 14:24:24 +00:00
pk
a849fa0158 region_free: use correct index to invalidate a MMU region cookie in a pmap.
Remove work-around in pmap_enter(); the sun4/3-level MMU now works.
2000-06-20 12:04:22 +00:00
pk
c1aec32fc0 Use `pv_pool' in non-wait mode; for now, panic if memory is exhausted. 2000-06-19 21:06:32 +00:00
fvdl
51e81216d1 Rearrange previous slightly to avoid getting values that are too low;
the only goal here is to leave some space for the stack.
2000-06-18 23:03:45 +00:00
pk
d982283952 vme4_dmamap_[un]load: ensure enough DVMA space is allocated to cover the
buffer and store that amount in the DMA map to avoid re-computation.
Also add a cache flush as the bus_dmamap_sync() don't do that yet.
2000-06-18 19:30:21 +00:00
pk
a29dc4045f Conversion to bus_space*(). 2000-06-18 19:19:53 +00:00
mrg
feddb7ad96 merge in ultrasparc changes 2000-06-18 06:54:17 +00:00
fvdl
8dde6d4336 Account for the stack when computing the base va. This makes the
bootblocks work again on the 4/110.
2000-06-18 02:25:17 +00:00
pk
98726268ee Remove pointless debugging check. 2000-06-15 14:42:32 +00:00
pk
cc9163a28a Enable DMA interrupts. 2000-06-15 14:27:07 +00:00
pk
752b4566c4 bus_dmapmap_create: boundary must be 0, not NBPG. 2000-06-15 12:12:05 +00:00
veego
223d7455c7 Remove the obsolete config fragments for kernel crypto, because the IPsec
crypto code is now in the kernel source tree.
2000-06-14 22:02:13 +00:00
pk
f9cf3305c3 No need to cast return value of spl0(). 2000-06-09 10:47:25 +00:00
pk
9bf0d228f0 spl0() and spllowersoftclock() return void. 2000-06-09 10:43:52 +00:00
pk
1610381d13 GC unused `autoconf_nzs'. 2000-06-08 21:37:43 +00:00
pk
12db2d5991 viking_pcache_flush_page: use entire PA tag field. 2000-06-08 14:45:18 +00:00
gmcgarry
6de3467b52 - Clean up use of AUDIO_C_HANDLER.
- Copy bus_space handles into auio for fast handler.
2000-06-06 22:34:34 +00:00
pk
c7d426f2b5 viking_cache_flush_page: spell bitmasks in hex, not octal. 2000-06-06 20:08:29 +00:00
pk
8a0d25a707 Oops, type confusion.. 2000-06-06 09:20:31 +00:00
pk
b5321a5a5c Make the address argument of pcache_flush_page() a `paddr_t'. 2000-06-06 07:56:40 +00:00
thorpej
814826fdda Fix typo. kern/10291. 2000-06-05 20:47:47 +00:00
pk
862a955e34 Re-arrange code to flush physically indexed caches:
* replace `flush by line' function with a `flush by page' funtion, which
  also takes an argument to indicate that write-back caches need not
  validate its backing memory.

* use this function when allocating page table memory to flush the cache
  before mapping it into kernel virtual space.

* also use it in pmap_{zero,copy}_page(), so we can safely use non-cacheable
  access in there.
2000-06-05 20:38:24 +00:00
nisimura
4371d91433 Have MI ncr53c9x_attach() the 2nd and 3rd arguments for scsipi_adater
and scsipi_device respectively, with size reduction of ncr53c9x_softc.
Specifying NULL instructs the driver to use default adapter and default
device codes. Every target port has ncr53c9x_attach(sc, NULL, NULL) anyway.
2000-06-05 07:59:50 +00:00
cgd
cffb580806 Implement the more flexiable `evcnt' interface as discussed (briefly) on
tech-kern and now documented in evcnt(9).
2000-06-04 19:14:14 +00:00
thorpej
0e2f894851 Provide a CPU_IS_PRIMARY() macro in the MULTIPROCESSOR case. 2000-06-03 20:43:28 +00:00
pk
630ec72e5d Make sure to have the cache info before allocating the global cpu_info
virtual addresses.
2000-06-03 09:56:35 +00:00
pk
aae0ef4cc1 In pmap_cpu_alloc(), allocate memory for the PTE tables in one sweep. 2000-06-02 10:43:59 +00:00
pk
65e4bcd9df Re-initialize proc0.p_cpu' after allocating the global cpu_info'
address for the boot cpu (XXX)
2000-06-02 08:12:29 +00:00
matt
168343c32d Make the ramdisk space the same as the ramdisk size being built in distrib 2000-05-31 17:35:59 +00:00
pk
08d1e4928a Initialize `ci_self' on all CPUs.
Check `cpuinfo' pointers in mp_pause_cpus() & mp_resume_cpus()
2000-05-31 12:26:15 +00:00
pk
504ed6e58b Move switchexit() declaration in here. 2000-05-31 12:05:04 +00:00
pk
0985cc7d7e Remove obsolete function declarations.
Move switchexit() to cpu.h
2000-05-31 12:04:29 +00:00
pk
fca92e02ab Fix a couple of typos. 2000-05-31 11:23:21 +00:00
thorpej
8d5520dccf - In the MULTIPROCESSOR case, initialize p_cpu before a process is
marked SONPROC.
- Fix a bug where all cpu_info structures except for the boot CPUs
  would exist at both a CPU-local VA (CPUINFO_VA) and a gloal VA;
  The boot CPU's existed only a CPUINFO_VA.
- Add a self-reference pointer to the cpu_info that references the
  global address in the MULTIPROCESSOR case.  Just allow it to reference
  the `local' VA in the single-processor case, as CPUINFO_VA is global
  enough when there's only one processor to care about.  Change curcpu()
  to return the global address.
2000-05-31 05:28:26 +00:00
cjs
a9a7dd7904 Fix typo in DEBUG code. 2000-05-30 03:26:34 +00:00
pk
ee396c032f Remove IOMMU page table allocation from pmap_bootstrap() and all the
hacks surrounding it.
2000-05-29 22:23:34 +00:00
pk
ce1fb71efc Use uvm_pglistalloc() to allocate memory for the I/O PTEs; modelled after
a similar change by Art Grabowski in Openbsd.
2000-05-29 20:41:10 +00:00
pk
7da3d45dfc Cleanup iommu_attach(). 2000-05-28 20:55:54 +00:00
pk
57b382f034 Add a few comments. 2000-05-28 20:54:42 +00:00
thorpej
e03e9e8086 Rather than starting init and creating kthreads by forking and then
doing a cpu_set_kpc(), just pass the entry point and argument all
the way down the fork path starting with fork1().  In order to
avoid special-casing the normal fork in every cpu_fork(), MI code
passes down child_return() and the child process pointer explicitly.

This fixes a race condition on multiprocessor systems; a CPU could
grab the newly created processes (which has been placed on a run queue)
before cpu_set_kpc() would be performed.
2000-05-28 05:48:59 +00:00
matt
22519583f3 Add tadpole specific devices. 2000-05-27 20:56:51 +00:00
mason
972014e5a8 Make compile after scheduler state cleanup. 2000-05-27 11:44:54 +00:00
sommerfeld
40339b39f9 Reduce use of curproc in several places:
- Change ktrace interface to pass in the current process, rather than
p->p_tracep, since the various ktr* function need curproc anyway.

 - Add curproc as a parameter to mi_switch() since all callers had it
handy anyway.

 - Add a second proc argument for inferior() since callers all had
curproc handy.

Also, miscellaneous cleanups in ktrace:

 - ktrace now always uses file-based, rather than vnode-based I/O
(simplifies, increases type safety); eliminate KTRFLAG_FD & KTRFAC_FD.
Do non-blocking I/O, and yield a finite number of times when receiving
EWOULDBLOCK before giving up.

 - move code duplicated between sys_fktrace and sys_ktrace into ktrace_common.

 - simplify interface to ktrwrite()
2000-05-27 00:40:29 +00:00
thorpej
a7d0570e67 First sweep at scheduler state cleanup. Collect MI scheduler
state into global and per-CPU scheduler state:

	- Global state: sched_qs (run queues), sched_whichqs (bitmap
	  of non-empty run queues), sched_slpque (sleep queues).
	  NOTE: These may collectively move into a struct schedstate
	  at some point in the future.

	- Per-CPU state, struct schedstate_percpu: spc_runtime
	  (time process on this CPU started running), spc_flags
	  (replaces struct proc's p_schedflags), and
	  spc_curpriority (usrpri of processes on this CPU).

	- Every platform must now supply a struct cpu_info and
	  a curcpu() macro.  Simplify existing cpu_info declarations
	  where appropriate.

	- All references to per-CPU scheduler state now made through
	  curcpu().  NOTE: this will likely be adjusted in the future
	  after further changes to struct proc are made.

Tested on i386 and Alpha.  Changes are mostly mechanical, but apologies
in advance if it doesn't compile on a particular platform.
2000-05-26 21:19:19 +00:00
jhawk
8e44b27348 Rename the machine-specific stack trace printing functions
from db_stack_trace_cmd() to db_stack_trace_print(),
and add an additional argument, a function pointer for an
output routine (i.e. printf() or db_printf()).

Add db_stack_trace_cmd() in db_command.[ch], calling
db_stack_trace_print() with db_printf() as the printer.

Move count==-1 special handling from db_stack_trace_print() [nee
db_stack_trace_cmd()] to db_stack_trace_cmd() [nascent here].

Again, I'm unable to test compilation on all affected platforms,
so advance apologies for potential brokenness.
2000-05-26 03:34:24 +00:00
thorpej
8964c35eca Introduce a new process state distinct from SRUN called SONPROC
which indicates that the process is actually running on a
processor.  Test against SONPROC as appropriate rather than
combinations of SRUN and curproc.  Update all context switch code
to properly set SONPROC when the process becomes the current
process on the CPU.
2000-05-26 00:36:42 +00:00