Commit Graph

2788 Commits

Author SHA1 Message Date
pk
0929f3662e * Missing PROM_OPENFIRM: case in getdevtype() and prom_getether().
* In getdevtype(), use prom_instance_to_package() to get to the device node.

From Valeriy E. Ushakov on port-sparc@netbsd.org.
2001-04-04 15:41:46 +00:00
petrov
1c9cc1b092 use NCR_F_DMASELECT instead of ncr53c9x_dmaselect 2001-03-29 03:30:19 +00:00
pk
a97039b0ae pmap_release(), pmap_pinit() and the `pm_regstore' field are obsolete. 2001-03-26 23:18:51 +00:00
pk
4de5b658ad Use a pool cache for pmap allocation. The cached pmap structures include
a ready-to-use level 1 page table (on sun4m) and MMU context.
A simple `fork()' test shows an improvement in spent system time of
around 4 percent (which is just a bit disappointing, IMO, but it's
an improvement nonetheless).
2001-03-26 23:12:03 +00:00
pk
104bada017 Missing KERNEL_PROC_LOCK() in the WIN_OF trap code. 2001-03-26 21:58:34 +00:00
lukem
20ba07f2fe - add dev_noimpl(xxx,yyy) macro to replace "(dev_type_xxx((*))) yyy",
and use appropriately

- create more helper macros:
   . cdev__xyz_init(c,n), such as cdev__ocri_init() for
     /* open, close, read, ioctl */, etc.
   . cdev__xRy_init(c,n), where nullop is used instead of enodev to dummy out
     method `R' and the comments now read /* xxx (read) yyy */ instead
   . cdev__xyz_t_init(c,n,t) - as per cdev__xyz_init, but sets d_type = t
     as well

- use seltrue instead of dev_noimpl(poll,*), as (IIRC) cdevsw.d_poll should
  always DTRT WRT returning a valid result.  (a few devices previously
  incorrectly returned ENODEV)

- use dev_noimpl(stop,enodev) instead of dev_noimpl(stop,nullop) if tty
  == 0, because it doesn't matter if dev_type_stop isn't implemented in that
  case, and it allows the use of the cdev__xyz_init macros. certain ports
  (sparc,sparc64,x68k) used the nullop method for dev_type_stop in a few
  drivers, whereas everything else uses enodev

- ensure that the comments are accurate WRT the behaviour of a given entry
2001-03-26 12:33:22 +00:00
mrg
74786e7894 remove overzealous locking changes. 2001-03-22 15:56:43 +00:00
mrg
0fa02bb6e6 sync with sparc64. 2001-03-22 06:21:43 +00:00
mrg
e563dea3f6 sync with sparc64 (just some debug messages.) 2001-03-22 06:21:15 +00:00
lukem
723cd818d8 move duplicate definitions for:
pc, lpt, joy, ocis, apm, satlink, i4bctl, i4brbch, i4btel, i4btrc, i4b
from the port-specific arch/*/*/conf.c files into sys/conf.h
2001-03-21 22:25:52 +00:00
mrg
47e6a41505 only lock the kernel around sy_call if !SYCALL_MPSAFE 2001-03-21 09:01:16 +00:00
pk
b54ea24924 Merge in4_cksum(). 2001-03-21 00:38:47 +00:00
chs
e533061fce in mem_access_fault*(), when invoking the pcb_onfault mechanism, pass the
return value of uvm_fault() to the onfault routine via %o0.  users of
pcb_onfault now return this value to their callers rather than always
returning EFAULT. this allows i/o errors in VOP_GETPAGES() to be returned
back to read(), etc.
2001-03-18 17:11:22 +00:00
mrg
3bb2b205f9 show the cpu a process is running on in proc 2001-03-18 14:24:10 +00:00
mrg
45d39a2030 redo previous slightly differently. 2001-03-18 14:10:34 +00:00
mrg
e82b5bb630 "mach slock" for simple_locks 2001-03-18 14:06:10 +00:00
mrg
0fcd32a415 "mach cpu" is MP only. 2001-03-17 01:54:17 +00:00
mrg
e44f962032 steal a few mach commands from sparc64. add a #if 0'ed "mach cpu" 2001-03-16 10:28:53 +00:00
mrg
48fc32e16e #ifdef DDB, add new function cpu_debug_dump(). define CPU_INFO_ITERATOR and
CPU_INFO_FOREACH.
2001-03-16 10:26:11 +00:00
chs
ac3bc537bd eliminate the KERN_* error codes in favor of the traditional E* codes.
the mapping is:

KERN_SUCCESS			0
KERN_INVALID_ADDRESS		EFAULT
KERN_PROTECTION_FAILURE		EACCES
KERN_NO_SPACE			ENOMEM
KERN_INVALID_ARGUMENT		EINVAL
KERN_FAILURE			various, mostly turn into KASSERTs
KERN_RESOURCE_SHORTAGE		ENOMEM
KERN_NOT_RECEIVER		<unused>
KERN_NO_ACCESS			<unused>
KERN_PAGES_LOCKED		<unused>
2001-03-15 06:10:32 +00:00
mrg
ef26546e15 lock the kernel around calling interrupt stubs. 2001-03-15 03:20:43 +00:00
mrg
122b3a0e67 sprinkle KERNEL_LOCK() and KERNEL_PROC_LOCK() where they're missing. add
SYSCALL_DEBUG support to trap.c.
2001-03-15 03:01:39 +00:00
tsutsui
43bd337868 Update for recent changes to the MI i82586 driver.
(added 'why' argument to the channel attention hook function)
2001-03-13 16:31:14 +00:00
pk
1b84e6fb33 pasto: sc_maddr => sc_mem 2001-03-09 10:19:54 +00:00
thorpej
5dedbd1c97 Duh, don't forget the proc argument. 2001-03-08 01:46:18 +00:00
thorpej
3423154d78 Use bus_dmamap_load(), not bus_dmamap_load_raw(). 2001-03-08 01:38:57 +00:00
thorpej
2c4c690f14 Add the BUS_DMA_STREAMING flag. 2001-03-07 22:42:16 +00:00
pk
a917eabaec * A couple of #if defined(SUN4M)' should be #if defined(MULTIPROCESSOR)'
* Print notice if not all CPUs were attached
* Switch to SMP version of cache flush routines in just one place: in
  cpu_attach() after all known CPUs have been configured.
2001-03-06 13:39:22 +00:00
pk
b91b8796d9 Implement MSGBUFSIZE option. 2001-03-05 16:46:09 +00:00
pk
8eeb7a8a79 mp_{pause,resume}_cpu(): avoid crash when cpu(s) not yet configured. 2001-03-05 16:45:22 +00:00
pk
f3c74253b0 Fix `flags' argument to pmap_enter(). 2001-03-05 16:43:34 +00:00
pk
90e5095df2 Fix syntax error in previous change. 2001-03-05 07:16:19 +00:00
pk
4e14c96788 In debug printf: missing quote on format string. 2001-03-05 07:04:01 +00:00
pk
a1b18f9435 Fix syntax error in previous. 2001-03-04 21:28:11 +00:00
pk
bac5be6461 Simplify `bad alias' handling in pv_link()/pv_unlink():
- there's no need to have different PV_NC flags for sun4[c] & sun4m

	- deal with kvm_uncache() being called on a managed page in a
	  separate helper function that deals with the caching state
	  within the pv list for that page, avoiding interference with
	  the `bad alias' removals in pv_unlink().

Note that currently never called for managed pages, but for now I'm
keeping the support in.
2001-03-04 21:12:24 +00:00
mrg
b301668cb5 build sparc64 bootblk, ofwboot, & ofwboot.net on sparc 2001-03-04 15:34:45 +00:00
mrg
e85a9ee949 this is a sparc64 program. so -DSUN4U, machine -> sparc64. cleanup. 2001-03-04 14:50:05 +00:00
mrg
0a1cdb5f63 allow sparc "make release" to build a sparc64 capable 32 bit kernel. 2001-03-04 10:12:56 +00:00
pk
51668836b3 Remove unused declaration of `cpcb', which is no longer a global variable. 2001-03-03 19:42:38 +00:00
pk
d74da58795 alloc_cpuinfo: zero all the memory we allocate; not just the `cpuinfo' part.
cpu_attach: initialize `curpcb->pcb_wim' for each additional CPU.
2001-03-03 19:40:28 +00:00
pk
bb5f16e6e0 Sprinkle KERNEL_PROC_LOCK()s at the kernel entry points. 2001-03-03 19:11:02 +00:00
pk
bba5d36487 Initialize the IPI message locks. 2001-03-02 17:00:13 +00:00
pk
0548d12369 * proc_trampoline: call `proc_trampoline_mp()' #if MULTIPROCESSOR;
currently necessary to acquire the `running in kernel mode' lock;
  pointed out by Bill Sommerfeld/Simon Gerraty.

* remove reference to `cpu_set_kpc()' from comments, as we don't have it.
2001-03-02 10:27:00 +00:00
pk
e999fb6b77 bootstrap area: remove dead code + some trivial reformatting 2001-03-02 09:48:13 +00:00
pk
d98e8d5bca * Correct the `flags' argument in call to pmap_enter().
* Enable the message buffer at a temporary virtual address (KERNBASE)
  in bootstrap(), if that can be done.
2001-03-01 16:14:25 +00:00
pk
813b8d79fd * Correct the `flags' argument in several calls to pmap_enter().
* message buffer initialisation:
	- change the buffer size to 8192 on all platforms
	- don't assume the buffer is always located at physical address 0
	- drop the SUN4 hack that left first half of the page unused;
	  I believe this is no longer necessary, since the msgbuf
	  data structure is duely sanity-checked before use in initmsgbuf().
2001-03-01 16:09:25 +00:00
pk
6ae8b9ec6d Drop MSGBUFSIZE; we don't use it and it can't currently be configured
to a different value anyway.
2001-03-01 15:59:04 +00:00
pk
80ba31bd21 Drop the managed() macro; it is no longer used.
State the intended use of the vm_{first,last,num}_phys variables that are
still exported from pmap.c.
2001-03-01 15:56:47 +00:00
pk
aad0b0bcd2 Change pv list' management to use the hooks provided in the vm_physmem'
structure. While this comes with the cost of having to search the
`vm_physmem' array every time need to find a PV entry corresponing to
some physical address, we gain the flexibility needed to support
arbitrary non-contiguous ranges of physical memory addresses.

Also, eliminate the need to sort the memory address ranges as presented
by the machine's PROM, and the requirement that physical memory starts
at address 0 (when possible).
2001-03-01 15:52:18 +00:00
pk
b87a62e09a Make sure that e.g. myetheraddr() has a valid idprom pointer as soon as
possible on sun4, since it may be used before the clock attaches.
2001-02-28 14:45:23 +00:00