Commit Graph

3117 Commits

Author SHA1 Message Date
kleink 5652bfe409 Re-add accidently removed line continuation in previous; noted by
"Valeriy E. Ushakow" <uwe@ptc.spbu.ru>.
2001-05-01 20:37:44 +00:00
thorpej cf67ac7122 Per discussion w/ chuck and chuck, restructure the md page stuff
to use a structure called "vm_page_md", and use __HAVE_VM_PAGE_MD
and __HAVE_PMAP_PHYSSEG.
2001-05-01 02:19:13 +00:00
kleink 99d1259e7f Don't let [gs]etcontext() and friends clash with userland. 2001-04-30 19:35:13 +00:00
thorpej 2b27ac7a99 Add a VM_MDPAGE_MEMBERS macro that defines pmap-specific data for
each vm_page structure.  Add a VM_MDPAGE_INIT() macro to init this
data when pages are initialized by UVM.  These macros are mandatory,
but ports may #define them to nothing if they are not needed/used.

This deprecates struct pmap_physseg.  As a transitional measure,
allow a port to #define PMAP_PHYSSEG so that it can continue to
use it until its pmap is converted to use VM_MDPAGE_MEMBERS.

Use all this stuff to eliminate a lot of extra work in the Alpha
pmap module (it's smaller and faster now).  Changes to other pmap
modules will follow.
2001-04-29 22:44:31 +00:00
kleink fe3c9ceaf7 * Move definitions of exact-width integer types from <machine/types.h>
to <sys/types.h> and <sys/stdint.h>.
* Add a new C99 <stdint.h> header, which provides integer types of
  explicit width, related limits and integer constant macros.
* Extend <inttypes.h> to provide <stdint.h> definitions and format
  macros for printf() and scanf().
* Add C99 strtoimax() and strtoumax() functions.
* Use the latter within scanf().
* Add C99 %j, %t and %z printf()/scanf() conversions for
  intmax_t, pointer-type and size_t arguments.
2001-04-28 15:41:28 +00:00
kleink 99054d7a6c Add definitions for C99 fastest minimum-width integer types. 2001-04-26 16:25:19 +00:00
bouyer 937a7a3ed9 Pull up the thorpej_scsipi branch to main branch.
This is a completely rewritten scsipi_xfer execution engine, and the
associated changes to HBA drivers. Overview of changes & features:
- All xfers are queued in the mid-layer, rather than doing so in an
  ad-hoc fashion in individual adapter drivers.
- Adapter/channel resource management in the mid-layer, avoids even trying
  to start running an xfer if the adapter/channel doesn't have the resources.
- Better communication between the mid-layer and the adapters.
- Asynchronous event notification mechanism from adapter to mid-layer and
  peripherals.
- Better peripheral queue management: freeze/thaw, sorted requeueing during
  recovery, etc.
- Clean separation of peripherals, adapters, and adapter channels (no more
  scsipi_link).
- Kernel thread for each scsipi_channel makes error recovery much easier
  (no more dealing with interrupt context when recovering from an error).
- Mid-layer support for tagged queueing: commands can have the tag type
  set explicitly, tag IDs are allocated in the mid-layer (thus eliminating
  the need to use buggy tag ID allocation schemes in many adapter drivers).
- support for QUEUE FULL and CHECK CONDITION status in mid-layer; the command
  will be requeued, or a REQUEST SENSE will be sent as appropriate.

Just before the merge syssrc has been tagged with thorpej_scsipi_beforemerge
2001-04-25 17:53:04 +00:00
thorpej 1c3a62e066 Sprinkle pmap_update() calls after calls to:
- pmap_enter()
- pmap_remove()
- pmap_protect()
- pmap_kenter_pa()
- pmap_kremove()
as described in pmap(9).

These calls are relatively conservative.  It may be possible to
optimize these a little more.
2001-04-24 04:30:50 +00:00
thorpej 92891185c3 Don't need a prototype for pmap_bootstrap_alloc(); the function
does not exist in the pmap API anymore.
2001-04-23 23:53:07 +00:00
pk f33abf3809 Bump PIL_NET to 7; some sbus network boards use this interrupt level.
Nuke PIL_IMP.
2001-04-23 14:40:03 +00:00
thorpej 69fd928d7c Remove pmap_kenter_pgs(). It was never really adopted by
anything, and the interface itself wasn't as flexible as
callers would have probably liked.
2001-04-23 01:02:06 +00:00
thorpej 55044638aa Remove pmap_kenter_pgs(). It was never really adopted by
anything, and the interface itself wasn't as flexible as
callers would have probably liked.
2001-04-22 23:42:11 +00:00
thorpej 69abdbf60c Undo a misguided previous change to the pmap_update() API. 2001-04-22 23:19:26 +00:00
thorpej 4738622712 Give pmap_update() an argument (a pmap_t) so that it knows which
pmap it should be updating.
2001-04-22 00:33:59 +00:00
thorpej 7f10ba88b1 #define away pmap_update() in <machine/pmap.h> so that no function
call overhead is incurred as we start sprinkling pmap_update() calls
throughout the source tree (no pmaps currently defer operations, but
we are adding the infrastructure to allow them to do so).
2001-04-21 23:51:14 +00:00
thorpej 15f731ee94 pmap_update() should not be equated with "flush entire TLB", it is
used to process deferred pmap operations.  Since these pmaps don't
defer anything, pmap_update() is a noop.
2001-04-21 17:25:01 +00:00
pk d373e2120f Fix fdc_c_hwintr() and use it as a fall back if the `fast trap' handler
cannot be registered.
2001-04-19 14:53:36 +00:00
pk 4485b7f720 pmap_enter():
* turn ad-hoc `pmap resources allocated during sleep' into a panic condition
  (this should all be prevented by higher level VM locking).
* arrange for ENOMEM to be returned if PMAP_CANFAIL is on, and malloc()
  and/or pool_get() fail.
2001-04-17 20:14:46 +00:00
kleink 40c8d08347 Oops, intptrs are always long integers. 2001-04-17 13:46:02 +00:00
kleink f06533a1ee Add definitions of C99 integer format conversion macros.
XXX Fastest minimum-width integer types haven't been decided upon yet.
2001-04-15 17:13:04 +00:00
kleink 739cb75837 Add definitions of C99 specified-width integer type limits.
XXX Fastest minimum-width integer types haven't been decided upon yet.
2001-04-15 15:29:02 +00:00
kleink cdcf9f46c5 Add definitions of C99 integer constant macros.
Tidy Makefiles up a little.
2001-04-14 22:46:19 +00:00
kleink a7c20e5788 Add definitions of C99 integer constant macros. 2001-04-14 22:38:33 +00:00
kleink 7affdab52e Add definitions of C99 minimum-width and greatest-width integer types.
XXX Fastest minimum-width integer types haven't been decided upon yet.
2001-04-14 12:19:49 +00:00
thorpej bf2dcec4f5 Remove the use of splimp() from the NetBSD kernel. splnet()
and only splnet() is allowed for the protection of data structures
used by network devices.
2001-04-13 23:29:55 +00:00
kleink 9133b51cd8 Replace the 'unsigned __COMPILER_INT64__' construct with a new name,
__COMPILER_UINT64__, to be supplied - if such a case is made, it shouldn't
be assumed that the unsigned type-specifier may be applied to it.
2001-04-12 22:01:18 +00:00
pk cd24bc13e7 Account for the number of counter ticks that elapse while statintr()
processing takes place. This prevents stat clock skew by a factor
approximately proportional to stathz (not a serious problem if stathz==100;
but considerable already if stathz==1000).
2001-04-09 21:28:50 +00:00
pk 2c2e7aca80 Add macro to convert a counter register value to microseconds. 2001-04-09 21:17:33 +00:00
pk a0daff5647 proc_trampoline(): mave the new process run at base interrupt priority level.
This is especially important for in-kernel processes started from here,
which would otherwise keep running at splclock().
2001-04-09 18:18:48 +00:00
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
mjacob 312d560493 add SES device (unused #4) 2001-02-28 00:06:28 +00:00
pk 18026ec99d * Make PAGE_SIZE et.al. constants, if possible.
* Add pvlist pointer to `struct pmap_physseg'
* Because of the above, add guard against multiple inclusions.
2001-02-27 22:40:08 +00:00
cgd 8a986b2e96 convert to use getprogname() 2001-02-19 22:48:57 +00:00
jmc 106522ed47 Add -f option. If used it will perform the low level block operations on the
file rather than requiring a raw device. Useful when dealing with vnd's
images and building snapshots. Also allows snapshots to be built in
securelevel > 0.
2001-02-19 06:23:55 +00:00
pk d850f6f9d2 Remove check for encoded iospace/nocache bits within physical addresses
in places where they can't possibly occur as the PA is for a VM managed
page.
2001-02-16 23:00:11 +00:00
pk 063b190de9 Hold off supplying the text/data gap to the VM manager; our pv table
handling isn't adequate yet.
2001-02-13 15:54:33 +00:00
pk e547d3816d pmap_page_upload(): check if `etext_gap' is there, just in case. 2001-02-13 13:48:15 +00:00
pk 460bc0a0fc Recover the ~64KB gap in between the text/rodata & data segments that's being
generated by the linker in sparc/ELF images. The physical pages in this gap
are unmapped from the kernel and given to the VM manager.
2001-02-12 22:02:58 +00:00
pk d713d112c9 Provide symbol `kernel_data_start' as the first address in the .data segment. 2001-02-12 21:56:54 +00:00
pk 203c10194b Supply a kernel link script that puts `etext' at the end of all
read-only sections. Modelled after a similar change in the i386 port.
2001-02-11 16:16:58 +00:00
pk 25a91d5c1e _bus_dma_valloc_skewed(): return a vaddr_t, not error codes; make missing
boundary check return an error, so the caller can decide how to respond.
2001-01-31 15:17:42 +00:00
pk 5538893eda sun4_dmamap_load(): Check if boundary condition can be satisfied instead
of panicing blindly.
2001-01-28 20:48:31 +00:00
bjh21 fe3273fbb4 Patch from PR kern/8001, submitted by Rafal Boni.
This adds support for EtherExpress/16 cards with 16k of RAM, and in the
process adds general support for PIO mode on these cards.  This entails
changing the way the i82586 driver handles bus barriers, since it doesn't
allow for strange cases like this.

This has been tested on the i386 port with the 'ix' driver in both
16KB (which was the source of the problem) and 32KB modes, as well
as with the 'ef' driver.  I've tested it (briefly) with 'ei' on arm26
as well.  In theory, drivers other than 'ix' should follow precisely the
same code paths as before.
2001-01-22 22:28:43 +00:00
jdolecek 8b24036797 Require the machine-dependant DDB commands to be in db_machine_command_table[]
and link it directly to db_command_table[] so that it's not necessary
to do this at runtime. Make db_machine_command_table[] const on all ports.
g/c now unneded stuff, like db_machine_commands_install(), db_machine_init()

Patch written by enami.
2001-01-22 13:56:55 +00:00
pk 57f38322d4 Add `-mno-fpu' to the compiler options once again: the current compiler
(egcs-2.91.66) is still liable to use FPU registers as temporaries.
2001-01-22 12:59:29 +00:00
christos 9bd2dee3b2 fix bit rot so that MP kernel compiles s/cpu_no/ci_cpuid/ 2001-01-21 07:48:29 +00:00
pk 13d4fcd69b In cpu_reboot(), only reset the TOD clock if the time is known to be good
enough, e.g. it has been initialized already by inittodr() or set
explicitly before by resettodr().  This prevents the TOD clock from going
way backwards when typing `halt' at the `mount root filesystem' prompt.
2001-01-20 13:44:29 +00:00
tv e58532a4bf No-op commit to force update to a non-"-kk" revision. 2001-01-18 17:47:58 +00:00
pk 13e03d4b43 On V0 proms, read the `idprom' property at the root node to get to the
station's ethernet address.
2001-01-18 12:50:10 +00:00
jdolecek d5d431e8ae make db_[e]regs[] const 2001-01-18 10:54:27 +00:00
fvdl c7f1462f3e Add machdep file for procfs. Currently only used for linux-style
/proc/cpuinfo (only active when procfs is mounted with -o linux).
For ports other than the i386 this currently produces an empty
string.
2001-01-17 00:07:18 +00:00
thorpej d74e432ed3 Make softclock a generic soft interrupt of the API is available,
adding the requisite void * argument to softclock().
2001-01-15 20:19:50 +00:00
martin a261276f16 The i4b raw b-channel devices actually do have an ioctl routine,
so better add this to the cdevsw entry.
Noted by Bruno Achauer.
2001-01-14 11:17:28 +00:00
thorpej 979919ee0f splpmap() -> splvm() 2001-01-14 02:03:48 +00:00
thorpej d85a75f583 Make sure everybody has an splvm() and equate it with splimp() (splimp()
is the historical name for this interrupt level, and the historical name
is going to go away in the near future).
2001-01-14 02:00:37 +00:00
martin f53c899649 Add isdn devices to all archs that seem to support at least one of the
necessary busses. Sync comments with reality for archs that already had
the devices.
2001-01-08 21:46:33 +00:00
takemura c5fd828440 replace 'long long' with int64_t to compile stand alone program with
compiler other than GCC.
2001-01-03 10:08:55 +00:00
itojun efa2b7073c make mbstate_t bigger (32 -> 128 bytes).
XXX if you have libc after citrus locale import, please recompile libc,
and your applications that use mbstate_t (rather rare).  really sorry
for the mess.
2000-12-26 10:35:28 +00:00
jdolecek e9e91a0fb5 split off thread specific stuff from struct sigacts to struct sigctx, leaving
only signal handler array sharable between threads
move other random signal stuff from struct proc to struct sigctx

This addresses kern/10981 by Matthew Orgass.
2000-12-22 22:58:52 +00:00
itojun 823498203f populate _BSD_MBSTATE_T_. add warning regarding to rune_t. 2000-12-21 06:03:47 +00:00
bouyer c71f40d166 Add pseudo-device vlan 2000-12-19 10:42:02 +00:00
jdolecek cacec11253 delete obsolete comment 2000-12-17 15:52:39 +00:00
jdolecek ca57e681bd g/c obsolete vtrace(2) stuff 2000-12-13 18:13:05 +00:00
mrg 703ec39a02 fix warnings in DEBUG & DIAGNSTIC code. 2000-12-06 01:47:49 +00:00
mrg ce0e1dea34 sync relocs with sparc64. 2000-12-04 01:49:34 +00:00
mrg 3806c27f34 sync a comment with sparc64/include/types.h 2000-12-04 01:33:36 +00:00
jdolecek f3d1c08b2a check emul flags for EMUL_HAS_SYS___syscall instead of comparing
callp to sysent; the COMPAT_AOUT hack is gone
2000-12-01 19:50:17 +00:00
pk cd9bcb98dc Undo most of rev 1.94 to make a.out emulation work again. 2000-11-27 13:31:18 +00:00
chs bac6420b96 fix reversed keywords in previous commit. 2000-11-23 21:58:54 +00:00
chs c588bbbe76 add a missing newline in a printf(). 2000-11-21 08:14:17 +00:00
jdolecek baae0324b9 restructure struct emul and execsw, in preparation to make emulations LKMable:
* move all exec-type specific information from struct emul to execsw[] and
  provide single struct emul per emulation
* elf:
  - kern/exec_elf32.c:probe_funcs[] is gone, execsw[] how has one entry
    per emulation and contains pointer to respective probe function
  - interp is allocated via MALLOC() rather than on stack
  - elf_args structure is allocated via MALLOC() rather than malloc()
* ecoff: the per-emulation hooks moved from alpha and mips specific code
  to OSF1 and Ultrix compat code as appropriate, execsw[] has one entry per
  emulation supporting ecoff with appropriate probe function
* the makecmds/probe functions don't set emulation, pointer to emulation is
  part of appropriate execsw[] entry
* constify couple of structures
2000-11-21 00:37:49 +00:00
chs c62d17a551 rationalize the use of b_flags for geteblk() buffers.
rather than assigning to the whole field, set or clear individual flags,
which implies that the B_BUSY and B_INVAL flags will remain set.
this allows us to make the assertion in brelse() that B_BUSY is set,
which is the purpose of all this.
2000-11-20 08:24:08 +00:00
pk 521b17daa6 Adjust OF_setprop() prototype. 2000-11-15 16:15:01 +00:00
pk 4a80a32735 Adjust setprop() prototype to match the one in dev/ofw/openfirm.h 2000-11-15 16:14:13 +00:00
pk 439b4b325a OF_getproplen(), OF_nextprop() and OF_setprop() prototypes are now in
dev/ofw/openfirm.h
2000-11-15 16:13:10 +00:00
pk 11eb59d511 Adjust setprop() prototype to match that in dev/ofw/openfirm.h 2000-11-15 16:12:01 +00:00
kleink a5a6bbd1a8 Defopt BLINK. 2000-11-14 11:34:51 +00:00
pk db6832a4b6 Detect "EOF" conditions on the memory-special files. 2000-11-13 15:31:44 +00:00
pk 84ee07379b Remove left-over turds from previous __P() cleanup. 2000-11-12 21:07:21 +00:00
pk 258784289c This file is no longer needed; it's superseded by the MI mk48xx driver. 2000-11-11 12:34:22 +00:00
pk d80d0a8b06 Print host ID in hex. 2000-11-11 12:24:07 +00:00
pk f88b137bd5 De-__P() this file. 2000-11-11 12:19:20 +00:00
pk 53c656364f Switch to MI mk48xx and intersil7170 time-of-day clock drivers. 2000-11-11 12:14:03 +00:00
pk 109cb0fd5e Rename storage for the sun4 idprom structure to `sun4_idprom_store'. 2000-11-11 12:12:46 +00:00
pk 0d4a68ac9b Pull in the mk48txx and intersil7170 drivers. 2000-11-11 11:19:52 +00:00
eeh 8c3f6a0d10 Adapt to new line discipline scheme. 2000-11-02 00:37:56 +00:00
pk b37856ac0e Update comment accompanying the SUN4_MMU3L option. 2000-11-01 14:34:22 +00:00
eeh ec079ca021 Pass on the sbus frequency. 2000-11-01 06:27:45 +00:00
pk 47e4ec04e2 Dispose of `boot.net.big'. 2000-10-31 23:29:36 +00:00
pk 4bddbd7e5f Align the DVMA mapping on NBPSG boundaries. 2000-10-31 23:28:11 +00:00
pk 628fe3035f Change the relocation address of `boot' once again to steer clear of
memory used by the PROM on sun4 and early sun4c machines.
2000-10-31 23:21:47 +00:00
pk f4dbaa7ac3 This file now lives in sys/dev/sun. 2000-10-31 21:55:14 +00:00
pk 62dddfec3c Enable sun4 support and VME devices. 2000-10-30 23:23:15 +00:00
pk 0e7d945483 This file is no longer used. 2000-10-20 11:31:59 +00:00
pk 2c6b19bec4 Add new-line to md attach message. 2000-10-20 11:28:04 +00:00
pk 4dd761fc83 Adjust md root filesystem size.
Enable MFS.
2000-10-20 11:24:48 +00:00
pk d037bc4f59 Change to relocation addresses that currently work on all machines.
boot programs at alternative addresses no longer built and installed
by default.
2000-10-20 11:21:08 +00:00
pk 44f6bd0d7f When relocating, there's no need to copy the BSS area. 2000-10-19 00:16:03 +00:00
pk 9d61e4d9a6 Account for the top-most 4 bits of obio addresses being zero on sun 4/100
machines, when inferring zs PROM device numbers from the physical address.
2000-10-18 23:55:11 +00:00
mjacob 7088593e82 Hmm- probably really ought to put ses into sparc GENERIC, since sparc
machines are one is very likely to run into SES units (what with all
the D1000's && A1000s out there now). I'll do it in sparc64 as soon
as I get that running for myself.
2000-10-16 01:29:06 +00:00
christos c49fc8469f void cast for lint. 2000-10-13 03:53:26 +00:00
christos 6b7dd5a41a add sunkbd.c and sunms.c; apparently these are now needed because
tty_conf.c brings them in.
2000-10-12 21:27:13 +00:00
christos 6708aee34f add missing kd_attach_input routine.
someone needs to clean this shit up.
2000-10-12 21:26:28 +00:00
abs 2824f4906d Ensure all INSTALL* kernels have two ptys, and a note explaining why:
pseudo-device  pty             2       # pseudo-terminals (Sysinst needs two)
(Some installers may not be using sysinst, in which case this just reduces
the number of ptys from 16 that are not used to 2 that are not used)
For i386 conf files, no change other than comments.
2000-10-02 18:43:34 +00:00
abs 5aa0a5abb1 Prior art in naming would suggest INSTALL_SYSINST rather than INSTALL-SYSINST. 2000-09-28 12:46:43 +00:00
abs 3ef92f0bdb Use "options<SPACE><TAB>" not "options<TAB>" - noted by simonb.
Move VNODE_OP_NOINLINE and NFS_V2_ONLY into '# Filesystem options' section.
Consistently label '# Filesystem options' and '#File systems' sections.
2000-09-25 13:54:50 +00:00
abs ccf1c822a6 Ensure all INSTALL config files have (at least) COPTS="-Os", cincluding bebox
based on it working already for macppc.
Also add commented out:
#options        VNODE_OP_NOINLINE       # Don't inline vnode op calls
#options        NFS_V2_ONLY             # Exclude NFS3 and NQNFS code
as suggestions for additional savings
2000-09-25 11:46:37 +00:00
jdolecek b1f94e26ab don't specify number of ptys if >= 16 (current default initial number)
pty comments: normalize and g/c what is no longer relevant
2000-09-24 15:59:26 +00:00
jdolecek 27824fb036 note support for verbose/quiet boot (-v, -q flags) 2000-09-24 12:33:58 +00:00
jdolecek 49c105ffdb add new macro BOOT_FLAG() (defined in <sys/boot_flag.h>) - this
maps standard boot flags to corresponding RB_* values
use BOOT_FLAG() in port's MD code as appropriate

as discussed on tech-kern, add new boot flags -v, -q for booting
verbosely or quietly, and corresponding AB_VERBOSE/AB_QUIET
boot flags; also add FreeBSD-compatible bootverbose macro and
NetBSD-specific bootquiet macro

for hpcmips, use new bootverbose instead of it's own hpcmips_verbose

Tested on i386, and to limited extend (compile of affected files) also for
mvme68k, hp300, luna68k, sun3.
2000-09-24 12:32:31 +00:00
pk d5fe063129 MULTIPROCESSOR: if the cache flush functions are no-ops on a single
processor, they can be no-ops in the MP case as well.
2000-09-19 13:44:35 +00:00
thorpej 72a24b4eae Add an align argument to uvm_map() and some callers of that
routine.  Works similarly fto pmap_prefer(), but allows callers
to specify a minimum power-of-two alignment of the region.
How we ever got along without this for so long is beyond me.
2000-09-13 15:00:15 +00:00
pk 4e56e1746f Turn off page zeroing in the idle loop; an unidentified bug causes (very
sporadic) user process corruption.
2000-09-10 11:32:04 +00:00
pk 3011e0816b Revise pv_table_map(): to simplify calculations, pv_table[] now covers
all of physical memory, i.e. it conceptually is pv_table[0..avail_end].
The previous version could lead to an off-by-one error in the page allocation
for pv_table[] in some memory configurations.
2000-09-09 10:24:34 +00:00
abs b5f864571c Switch INSTALL back to being used by miniroot install.
Add INSTALL-SYSINST config for sysinst install.
These are expected to diverge more as time progresses.
2000-09-04 16:16:18 +00:00
pk 710295327e Scheduler lock update. 2000-08-31 16:59:12 +00:00
pk 55af96281e Pull down from 1.4 branch: default relocation address = 3E0000 2000-08-28 19:10:31 +00:00
thorpej 4db6fc7542 Make need_resched() take a "struct cpu_info *" argument. This
causes gives a primitive form of processor affinity.  Its use in
roundrobin() still needs some work.
2000-08-25 01:04:06 +00:00
nathanw 5127aa189d In fdioctl(), allocate fd_formb dynamically when needed, rather than on
the stack, and remove the no-longer-necessary PHOLD()/PRELE() calls
in fdformat().

(This eliminates 1/3 of the instances of PHOLD()/PRELE() in the kernel code.)

XXX We still have too many mostly-redundant floppy drivers.
2000-08-24 20:04:28 +00:00
pk 7c10808744 Use common fb.c from sys/dev/sun. 2000-08-23 13:41:58 +00:00
pk 91f1b275c9 Remove driver declarations that are now in /sys/dev/{sbus,sun} 2000-08-22 21:29:49 +00:00
pk 702e1dd9e6 Use the framebuffer drivers & header files that now live in /sys/dev/sun. 2000-08-22 21:28:24 +00:00
thorpej 58e7a6954b Add spllock(). See spl(9) for details. 2000-08-22 19:46:26 +00:00
abs 02a00854f4 Diet a little to help fitting onto a floppy 2000-08-22 13:36:14 +00:00
thorpej 23a7f255d4 Make sure we provide splsched() as described in spl(9). 2000-08-21 02:06:31 +00:00
mrg e144281c4e move ofwboot & bootblk here; add a Makefile to build ofwboot.net 2000-08-20 14:58:36 +00:00
mrg 85737336b4 add/merge sparc64 support. 2000-08-20 14:57:16 +00:00
mrg 9bea0e1a52 fix ultrasparc support. 2000-08-20 14:56:28 +00:00
pk 4ec48d799f fbio.h moded to sys/dev/sun.
Retain symlink from /usr/include/machine.
2000-08-20 14:02:59 +00:00
pk 1f76e23f2c Drop two `#ifdef SUN4U's, since `sparc{64}/include/instr.h' are now synced. 2000-08-16 11:36:36 +00:00
pk d48d0665e9 Sync with sparc64. 2000-08-16 11:30:38 +00:00
mrg ac5a03b4eb find loadfile_machdep.h on sparc64. 2000-08-16 08:24:01 +00:00
mrg 3eeab3822d deal with 64 bit ELF 2000-08-16 08:16:58 +00:00
itojun 85dda25e94 move "options PULLDOWN_TEST" into sys/sys/mbuf.h (in #ifdef _KERNEL),
as it is no wthe default setting for everyone.

the reason we still use the name "PULLDOWN_TEST" while it is now default:
kame code sharing.
2000-08-13 01:31:15 +00:00
mrg 7d27fced15 remove some ".sparc64" file suffixes that are not necessary. 2000-08-10 13:34:39 +00:00
mrg 3f0e682019 add sparc64 support. 2000-08-10 13:27:47 +00:00
tshiozak 51a53de0d5 Preparation for the future introduction of multibyte locale.
- MB_LEN_MAX is increased to 32.
 - To ensure binary compatibility for old executables
   under multibyte locale, versioned setlocale is added.
 - __mb_len_cur definision is added in setlocale.c
   and enable it in stdlib.h .
   It is also important for multibyte locale stuffs,
   but I just forgot.
2000-08-08 22:31:13 +00:00
hannken 8e764c2ae5 Add missing `#ifdef SUN4U', `FTYPE_LNG' is only defined on sparc64. 2000-08-04 14:44:40 +00:00
eeh dd5c54d05c Add fpu emulation instrumentation and fixup FCMP and FCMPE emulation for v9.
And rename the 128-bit `x' routines to `q' to match v9 terminology:
	i - 32-bit int
	x - 64-bit int
	s - 32-bit fp
	d - 64-bit fp
	q - 128-bit fp
2000-08-03 18:32:07 +00:00
jdolecek e25636b5da g/c RB_DFLTROOT
I've tried hard to find also various usage() messages and remove the
appropriate flag from there as well, hopefully all occurences are covered.
2000-07-29 20:06:27 +00:00
mason 4a353b5330 Moving to a default of 64 PTYs. 2000-07-27 17:53:35 +00:00
mrg cc41b6af8f remove COMPAT_AOUT option. 2000-07-27 14:34:06 +00:00
pk 4a3cba7a65 Pull in <dev/clock_subr.h>. 2000-07-26 11:28:36 +00:00
pk f343e5777c Add `dma' to the `early device' list, since we need it before an `esp'
is configured. Traced and tested by Julian Coleman.
2000-07-25 21:50:03 +00:00
toddpw 6c80daae8d Ignore all undefined bits in the Tadpole microcontroller status register.
Only the low nibble is defined, and on at least one 3gx (mine) there is an
undefined bit which reads as a one -- bit 6 (0x40). This screwed tctrl_intr()
which would loop forever, thinking it always had new events to process.
2000-07-25 09:57:59 +00:00
pk a95d924d4d Fix delay slot error in the SUN4_MMU3L startup code. 2000-07-24 08:48:03 +00:00
mycroft 4cbff173ea Fix an obvious error that would cause fpu_ftoxi() to drop the upper half.
The compiler even emitted a warning for this...
2000-07-24 04:13:45 +00:00
mycroft bdc8c86c9e asm volatile --> __asm __volatile 2000-07-24 04:11:03 +00:00
pk a57e77c50f Minor comment update; remove unused code. 2000-07-22 21:23:05 +00:00
jdolecek ab07c9d5a9 switch to sys/conf/newvers_stand.sh for generation of version file
sync the message in boot/version with other ports using newvers_stand.sh
2000-07-21 22:02:54 +00:00
matt 2890290b0f Add com* at obio0. (Tadpole & JavaStation) 2000-07-15 19:59:53 +00:00
matt 1d97a430c4 Enhance this so it support the com port on the JavaStation 1 as well as
the tadpole internal modem.
2000-07-15 19:57:03 +00:00
pk 406e0f779f Add a `device class' interrupt level argument (from machine/intr.h)
to bus_interrupt_establish().

It's currently only used in sparc64/dev/psycho.c to assign a CPU interrupt
level to devices in PCI slots.
2000-07-09 20:57:41 +00:00
pk 2a57393a0f Re-arrange headers; drop <machine/cpu.h>. 2000-07-09 20:38:34 +00:00
pk 404e6e3a61 Drop KERNFS 2000-07-08 11:33:24 +00:00
sommerfeld 502fc00210 Comment out EON ISO-over-ip tunneling pseudo-driver, and document as
broken/fragile.  Unlikely to be of much use, and confuses new users
when their system crashes when they, or their dhclient stumble over
it.  See kern/10500, kern/8994 for the gory details.
2000-07-05 04:07:22 +00:00
pk 0cc7c0e470 Report spurious VME interrupts only #ifdef DEBUG for now. The i82586
based `ie1' board seems to cause this for no apparent reason.
2000-07-04 22:22:56 +00:00
pk 3214045e75 GC dead code. 2000-07-04 14:05:34 +00:00
pk 3cffbb811c Pass correct argument to the console channel close routine. 2000-07-04 13:57:40 +00:00
pk 93f987a210 The `si' driver has been transformed into an MI VME frontend. 2000-07-03 23:30:33 +00:00
pk 047b6f9582 * Remove MAX_DMA_LEN & si_minphys().
* Disable the DMA engine when setting up a DMA transfer, just in case
  the 5380 driver didn't instruct us to do so already.
* More useful debug output when entering the "left-over bytes" case after
  a DMA transfer finishes.
2000-07-03 20:55:12 +00:00
sommerfeld 88067a43e3 Build a boot_big.net (based at 700000) in addition to boot.net,
allowing you to netboot a kernel with a ramdisk inside on systems
where memory is laid out to allow this.
2000-07-03 02:04:02 +00:00
cgd a5c13f9ad4 Kwality control:
* put #includes of opt headers and headers to get protos used by
  net/netisr_dispatch.h in net/netisr.h (if !defined(_LOCORE)) (rather than
  in netisr_dispatch.h itself, and potentially nowhere, respectively).
* require netisr.h to be included before netisr_dispatch.h.
* minor additional cleanup of both netisr.h and netisr_dispatch.h.
* clean up uses to remove now-unnecessary header file inclusions, and
  local prototypes of the fns.
* convert netisr dispatch implementations which didn't use
  netisr_dispatch.h (pc532) to use it.
2000-07-02 04:40:33 +00:00
itojun d738f90fd7 raise MSIZE from 128 to 256.
- for sizeof(void *) == 8 arch, this is mandatory.  MHLEN is too small
  already (less than 80) and there are chances for unwanted packet loss due
  to m_pullup restriction.
- for other cases, the change should avoid allocating clusters in most cases
  (even when you have IPv4 IPsec tunnel, or IPv6 with moderate amount of
  extension header)

portmasters: if your arch chokes with the change (high memory usage or
whatever), please backout the change for your arch.
2000-06-30 17:55:11 +00:00
itojun d76ae83df8 add PULLDOWN_TEST for all the platforms.
XXX should be moved to somewhere else when stabilized
2000-06-30 17:10:15 +00:00
pk b7e36aabb5 When winding down a DMA transfer, don't complain about the actual
transfer count being smaller than the minimum transfer size for which
we would use DMA. The device may be disconnecting, to complete the
transaction at a later time. Just let the 5380 engine proceed acting
on the current SCSI bus phase.
2000-06-29 14:06:40 +00:00
mrg 8daa58f52b remove include of <vm/vm.h> and <machine/pmap.h>. <vm/vm.h> -> <uvm/uvm_extern.h> 2000-06-29 07:40:05 +00:00
pk 054fe0cb32 Move `DIAGNOSTIC || LOCKDEBUG'-only lock counters to the end of the cpu_info
structure, Just In Case.
2000-06-27 16:51:44 +00:00
pk 618d3d0fde VME/IOMMU DMA load must also relocate DVMA addresses to the start of VME space. 2000-06-27 09:05:23 +00:00
kleink bb2ed0f487 G/c _BSD_INTPTR_T_ and _BSD_UINTPTR_T_. 2000-06-27 05:53:22 +00:00
kleink 47b5c5e3b1 Resolve some formatting nits; add __intptr_t and __uintptr_t. 2000-06-27 04:58:51 +00:00
pk e2b1b6cd42 Split si & sw drivers. 2000-06-26 19:54:08 +00:00
kleink e695f72a2e Add <machine/int_types.h>, which provides namespace-pure definitions
of exact-width integer types.
2000-06-26 15:42:16 +00:00
mrg 2f159a1bac remove/move more mach vm header files:
<vm/pglist.h> -> <uvm/uvm_pglist.h>
	<vm/vm_inherit.h> -> <uvm/uvm_inherit.h>
	<vm/vm_kern.h> -> into <uvm/uvm_extern.h>
	<vm/vm_object.h> -> nothing
	<vm/vm_pager.h> -> into <uvm/uvm_pager.h>

also includes a bunch of <vm/vm_page.h> include removals (due to redudancy
with <vm/vm.h>), and a scattering of other similar headers.
2000-06-26 14:20:25 +00:00
pk 51a2c92940 The `sw' driver should not use vme bus routines. 2000-06-26 09:50:00 +00:00
simonb 889c658b5b Change the kernel mmap interface so that the offset to map is an
"off_t" and the return value is a "paddr_t" to allow mappings
at offsets past 2^31 bytes.  Somewhat inspired by FreeBSD, which
only changed the offset to a "vm_offset_t".

Includes updates for the i386, pc532 and sh3 mmmmap from Jason Thorpe.
2000-06-26 04:55:19 +00:00
mrg c543a66253 remove some redundant <vm/vm_xxx.h> includes 2000-06-25 13:26:19 +00:00
pk 8b3ad4a667 Use vme_dmamap_create() instead of bus_dmamap_create().
Remove Sun hardware id test from si_match().
2000-06-25 13:09:52 +00:00
pk 560d1ea54c Implement vme_dmamap_create/vme_dmamap_destroy, which allows us to
select the appropriate DVMA subrange for VME devices.
2000-06-25 13:07:34 +00:00
pk 0790f00e68 Maintain the DVMA map extent subregion boundaries in the bus_dma map
structure.
2000-06-24 22:47:45 +00:00
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
jhawk f3528d725d Interface change: db_printsym() takes a third argument, pr, a function
pointer indicating how to print the symbol. This allows db_printsym()
to called in places where db_printf() is not an appropriate output
function.

While straightforward, apologies in advance if I've introduced any minor
syntax errors; I was unable to test compilation this on all the affected
platforms.
2000-05-25 19:57:30 +00:00
thorpej 1140468205 Use preempt(), not an open-coded equivalent (which won't be
equivalent for long).
2000-05-24 16:48:33 +00:00
pk 1273031c4d Simplify the bus_dma(9) implementation:
- the `alignment' and `boundary' arguments in bus_dmamem_alloc() only
  serve as hints on how to break up a DMA transaction into chunks
  when necessary; it is not necessary on sparc DVMA hardware.

- exclusively use the VM page size (i.e. PAGE_SIZE et.al.) when computing
  resource allocations.

- remember the size of DVMA resource allocations in the private `_ds_sgsize'
  field in a dma segment descriptor.
2000-05-23 11:39:57 +00:00
pk 8c39bf5d24 MicroSPARC 1 cache issues:
- mark as CPUFLG_CACHE_MANDATORY to avoid cache inconsistencies in
  pmap_{zero,copy}_page().
- compute caching alias bits correctly
- add experimental optimisation in ms1_cache_flush().
2000-05-22 22:03:32 +00:00
mrg 296eaaa36d add two new CPU_ISXXX versions: CPU_ISSUN4U, CPU_ISSUN4MOR4U 2000-05-22 02:35:23 +00:00
eeh 3cee90e0e1 Need to provide a consdev to the cons_attach_input call now. 2000-05-21 14:36:15 +00:00
thorpej 071aed40ac A foolish consistency; most parts of the kernel use bp->b_data, so
change these from bp->b_un.b_addr to bp->b_data, as well.  This also
allows us more flexibility to experiment with other data buffer types
hung off of struct buf.
2000-05-19 18:54:22 +00:00
eeh 424619ca1a Fix the sparc64 console.
Unlike the other Sun machines, UltraSPARCs can have consoles run on different
chips than zs, so we need to support them.  So, here we go:

	Add a new PROM console driver with a major number and everything.
	This is the default driver if nothing else attaches.  It does not
	use the keyboard driver since the PROM translates keystrokes itself.
	(Unfortunately it also swallows L1-A).

	Have the keyboard driver take over the console when it attaches on a
	serial port.  When a serial port detects a keyboard and attaches the
	keyboard driver, it needs to provide a set of consdev vectors.  They
	keyboard driver will use those to send I/O to the keyboard and mouse.
2000-05-19 05:26:16 +00:00
pk 7caaf84b68 bus_dmamem_alloc: ensure alignment is always at least the page size. 2000-05-18 10:10:55 +00:00
pk 817862e208 vmapbuf: should not map the kernel address uncacheable. 2000-05-17 14:37:59 +00:00
thorpej 463931b3ba Nuke dk_establish() from orbit except from those ports which still use
it to determine the boot device: mvme68k, pc532, macppc, ofppc.  Those
platforms should be changed to use device_register().  In the mean time,
those ports defined __BROKEN_DK_ESTABLISH.
2000-05-16 05:45:44 +00:00
pk bde258dc12 bus_dmamem_alloc: round-up `alignment' to a be a multiple of the page size. 2000-05-10 14:27:51 +00:00
pk fbd2523c70 * Fix thinko in offset computations.
* Add DIAGNOSTIC checks.
2000-05-10 11:17:50 +00:00
pk 1bf775b965 Conform bus_dmamem_{alloc,map} usage to bus_dma(9) specs. 2000-05-09 22:42:08 +00:00
pk 2d12c9e33b The bus_dma(9) implementation now allocates DVMA addresses in
bus_dmamap_load_*() routines only. Note that DMA memory buffers
allocated with bus_dmamem_alloc() _must_ be loaded by bus_dmamap_load_raw().
2000-05-09 22:39:35 +00:00
pk 6411be9c63 Include <sparc/sparc/asm.h>, per PR#10082 2000-05-09 20:29:28 +00:00
hubertf 9f48bba3ae Add "install" target, so "make install" after building the kernel
does something useful.  The target can be redefined by putting a
install-kernel-${MACHINE_NAME} target that fits your needs into
/etc/mk.conf.
2000-05-09 00:56:21 +00:00
thorpej 6a33c86623 HAVE_GCC28 -> HAVE_EGCS, and make it match gcc 2.9 as well. Also,
make the use of -Wno-uninitialized explicit, don't rely on a compiler
hack to do it for us.
2000-05-09 00:32:19 +00:00
augustss 3a6e3a4670 Add (sometimes commented out) MIIVERBOSE option. 2000-05-08 13:49:44 +00:00
mycroft a7fb64072e Fix the RCS tag format. Duh. 2000-05-08 03:11:06 +00:00
mycroft f8e0411615 Make the audioamd assembler code compile again. 2000-05-08 03:09:54 +00:00
mycroft f5bd37be57 Make the SPARC audioamd driver at least *compile*. Well, the C code, that is.
*sigh*
2000-05-08 02:44:31 +00:00
hannken 0b2854eb6c Fix for lint during build of libc. 2000-05-05 20:12:00 +00:00
augustss e991ee6035 Use correct file name for amd7930. 2000-05-05 14:19:25 +00:00
pk f622dc8618 Define some more bits in the MXCC control register. 2000-05-05 11:07:15 +00:00
pk c49e7076d3 Simplify pmap_page_protect(); modelled after a similar change by
Art Grabowski in Openbsd.
2000-05-02 13:06:27 +00:00
pk d46e0d77c0 Remove unused code: getptesw4m(),setptesw4m() 2000-05-02 10:35:06 +00:00
augustss 361f2141f7 Adapt to new am7930 driver. PR 10033 from Gregory McGarry. 2000-05-02 06:35:12 +00:00
thorpej 855b79db92 Let each platform typedef the new __cpu_simple_lock_t, which should
be the most efficient type used for the atomic operations in the
simplelock structure, and should also be __volatile.
2000-05-02 04:41:04 +00:00
pk 91ec70f36d - De-inline VA2PA(); it isn't in any time-critical path. Saves a bunch of space.
- Disable special-cased viking cache flushing in setpgt4m(). This work-around
  should no longer be necessary.
- Remove some misc. dead code.
2000-05-01 15:19:46 +00:00
pk d4ac7f24ca Implement HyperSPARC specific pmap_{zero,copy}_page functions. 2000-05-01 14:06:41 +00:00
pk 784c538c3f Add definitions of HyperSPARC block fill/copy ASIs. 2000-05-01 14:05:53 +00:00
pk e327115496 FIx declaration in __ldstub. 2000-04-30 22:15:30 +00:00
pk 6832a2d6c9 Arrange to call uvm_pageidlezero() from idle loop. 2000-04-30 21:32:44 +00:00
pk 88fc960805 Define offset for uvm.page_idle_zero. 2000-04-30 21:29:16 +00:00
pk 1b8cac1bd9 Implement MXCC versions for pmap_{zero,copy}_page(). 2000-04-30 21:22:28 +00:00
pk 78391926bf Allow for CPU specific page clear and page copy functions. 2000-04-30 21:09:43 +00:00
pk 99ef6f17b5 Remove not-so-useful `#if DEBUG' code. 2000-04-30 14:23:29 +00:00
pk 3c5ac0b689 Rename MXCC control register. 2000-04-30 14:19:37 +00:00
pk 7373241c4c Rename MXCC control register.
Add MXCC stream register definitions.
2000-04-30 14:18:52 +00:00
thorpej dc8f3d3b3f Oops, install <machine/lock.h> on these systems, too. 2000-04-29 03:45:42 +00:00
thorpej f51470a514 Require that each each MACHINE/MACHINE_ARCH supply a lock.h. This file
contains the values __SIMPLELOCK_LOCKED and __SIMPLELOCK_UNLOCKED, which
replace the old SIMPLELOCK_LOCKED and SIMPLELOCK_UNLOCKED.  These files
are also required to supply inline functions __cpu_simple_lock(),
__cpu_simple_lock_try(), and __cpu_simple_unlock() if locking is to be
supported on that platform (i.e. if MULTIPROCESSOR is defined in the
_KERNEL case).  Change these functions to take an int * (&alp->lock_data)
rather than the struct simplelock * itself.

These changes make it possible for userland to use the locking primitives
by including <machine/lock.h>.
2000-04-29 03:31:45 +00:00
pk 43cdacc18b ctx_alloc: set context before flushing a stolen context's cache 2000-04-20 13:59:02 +00:00
itojun 3be41bae18 add stf pseudo interface (commented out due to possible security risks) 2000-04-19 06:50:27 +00:00
pk 4665cccb20 Comment-out the RASTERCONSOLE_{BG,FG} color settings; they represent
the default initialization.
2000-04-17 21:48:23 +00:00
pk a558005cec When constructing `ri_devcmap[]', pack four instances of the LUTs in each
32 bit wide entry (as not documented in the non-existent rasops(9)..)
2000-04-17 20:37:28 +00:00
pk d5a5871d3c Make sure to reset the CPU context in ctx_free(). 2000-04-17 20:32:00 +00:00
pk 470504f184 Use screen attributes passed to our hardware rasops routines.
Move colormap initialization to cg6reset(), so this is also done
on last close of the framebuffer device (e.g. after X server shutdown).
2000-04-16 22:17:03 +00:00
pk a644297344 Initialize the rasops device colormap to match colormaps used by
our supported devices (including even coloured text on the console).
2000-04-16 22:12:05 +00:00
pk 065ce82243 Switch initial colormap setup again to be compatible with the PROM's,
i.e. background at index 0: white, foreground at index 255: black.

Also, allocate a slice for an ANSI colormap, so we can experiment
with coloured text on the bare console.
2000-04-16 22:07:24 +00:00
pk 8505eb6375 Slight optimization when searching the video parameter table. 2000-04-16 21:01:43 +00:00
pk 20c3689343 Initialize local variable `bt' in cgthree_attach(). 2000-04-14 19:36:43 +00:00
pk cd955cb171 dvma_init: avoid integer variable overflow 2000-04-14 14:14:47 +00:00
tsutsui 7865e586d3 Typo in comments. (Zilog 8350 -> 8530) 2000-04-14 13:29:57 +00:00
christos 44c22dc618 make this compile with -DDEBUG_SVR4 [wrong variable name] 2000-04-12 15:13:15 +00:00
chs 1f7a988bd2 unconditionalize "ifdef sparc". 2000-04-12 04:06:41 +00:00
chs 19de42337d add rudimentary support for tracing stacks back into user space. 2000-04-10 01:22:09 +00:00
christos 0884c7e58f Disable previous; it makes things worse. 2000-04-09 05:48:07 +00:00
christos d1ea7c73a4 Try to emulate the svr4 setpsr trap. Needed by lwp. 2000-04-09 05:25:37 +00:00
thorpej 4044b5a41c Use separate callouts for motor-on and motor-off. Fixes a condition
where the floppy driver would wedge because a motor-on timeout would
be cancelled by another I/O operation cancelling a motor-off timeout.

From enami tsugutomo <enami@sm.sony.co.jp>.
2000-04-07 16:58:53 +00:00
pk 99dbc425e9 Use copyin/copyout to get a colormap from/to user space.
Also, prepare for the case of a colormap maintained in kernel space.
2000-04-04 21:47:17 +00:00
thorpej d11a9a62e2 Fix fallout from callout. 2000-04-04 17:20:54 +00:00
minoura 78b105698a Move dl* function definitions to libc on ELF.
Based on the patch supplied by Takuya Shiozaki <tshiozak@astec.co.jp>.
See http://mail-index.netbsd.org/tech-userlevel/2000/02/23/0000.html.
2000-04-02 15:35:47 +00:00
pk b6a73eb3a1 Make this compile without RASTERCONSOLE too. 2000-03-31 12:58:54 +00:00
pk a41d265271 Add hardware acceleration features for use with the RASTERCONSOLE option.
Code posted on port-sparc by `der Mouse'; it was slightly re-arranged to
fit the layout of this driver.
2000-03-30 13:57:50 +00:00
tsutsui 58714261cc Remove register declarations. 2000-03-30 11:37:21 +00:00
kleink 230876cf26 Merge parts of chs-ubc2 into the trunk:
* Remove the casts to vaddr_t from the round_page() and trunc_page() macros to
  make them type-generic, which is necessary i.e. to operate on file offsets
  without truncating them.
* In due course, cast pointer arguments to these macros to an appropriate
  integral type (paddr_t, vaddr_t).

Originally done by Chuck Silvers, updated by myself.
2000-03-26 20:42:21 +00:00
tsutsui 9100212ef0 Add a "sc_rev" member to ncr5380_softc and handle CXD1180 quirk
in MI ncr5380sbc.
2000-03-25 15:27:54 +00:00
hannken 43e3ea96f3 Fix typos from last commit (callout). 2000-03-24 11:46:46 +00:00
hannken f7049d302a Fix a typo from last commit. 2000-03-24 10:30:12 +00:00
thorpej 7b918b4088 New callout mechanism with two major improvements over the old
timeout()/untimeout() API:
- Clients supply callout handle storage, thus eliminating problems of
  resource allocation.
- Insertion and removal of callouts is constant time, important as
  this facility is used quite a lot in the kernel.

The old timeout()/untimeout() API has been removed from the kernel.
2000-03-23 06:40:33 +00:00