Commit Graph

2010 Commits

Author SHA1 Message Date
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
scottr ff2130346c Resolve bus_space_write_region_2() type mismatches. 2000-09-13 05:21:16 +00:00
scottr 7eb72c4f15 ae_write_mbuf() broke with the last change; revert. 2000-09-13 05:16:47 +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
thorpej 58e7a6954b Add spllock(). See spl(9) for details. 2000-08-22 19:46:26 +00:00
thorpej a86d1f4891 Add a lock around the scheduler, and use it as necessary, including
in the non-MULTIPROCESSOR case (LOCKDEBUG requires it).  Scheduler
lock is held upon entry to mi_switch() and cpu_switch(), and
cpu_switch() releases the lock before returning.

Largely from Bill Sommerfeld, with some minor bug fixes and
machine-dependent code hacking from me.
2000-08-20 21:50:06 +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
briggs 8d6c85d001 Remove hack for unswapped read/write_multi in swapped space.
Driver now uses read/write_multi_stream_2.
2000-08-01 13:08:39 +00:00
briggs 3ce3697584 Add bus_space_*_stream_N functions. 2000-07-31 22:40:25 +00:00
briggs bd823b939e Fix code to read a string from the nubus board--it was not terminating
the string properly when the string on the board is longer than the
pre-allocated space.
2000-07-31 22:39:17 +00:00
briggs 2cc07c0541 Add a DIAGNOSTIC panic if (count-using) bus_space macros are called with
a count of zero.  Some drivers do this accidentally and some bus_space
implementations will fail if count is passed as zero (they are set up in
a do-{}-while structure).
2000-07-31 14:59:15 +00:00
briggs 3717acff97 We may wish to install from an SMC-based ethernet, too. 2000-07-31 02:06:48 +00:00
briggs f5882c7ffa Make sure that bus_space read/write functions that take a count will not be
called if count is zero.  The smc91cxx driver, for example, may try to call
bus_space_write_multi_2() with a count of 0.
2000-07-30 23:17:23 +00:00
briggs 2f76646af1 Some uncommitted poking around. No functional change. 2000-07-30 21:48:54 +00:00
briggs 1e909ae3ca Add SMC-based ethernet and nsphy (AsanteFAST) and ukphy (just in case). 2000-07-30 21:46:39 +00:00
briggs e74ae8ee59 M.d. glue for nubus SMC 91cxx-based cards--including Focus Interlan and
AsanteFAST.
2000-07-30 21:43:40 +00:00
briggs fb9995989b Make bus_space_write_region_2 usage match prototype. 2000-07-30 21:41:59 +00:00
briggs d13747524c Fixup for bogus assumptions about bus_space_handle_t. 2000-07-30 21:40:49 +00:00
briggs c131e0d1b7 Remove unsupported Focus hardware--this is now probed in if_sm_nubus. 2000-07-30 21:40:09 +00:00
briggs 2bb296de77 Update hack to point to bus_space_handle base address. 2000-07-30 21:39:16 +00:00
briggs 9c85d4dc6a Add byte-swap and stride options to bus_space. Allocate as normal, then
call mac68k_bus_space_handle_swapped() or mac68k_bus_space_handle_set_stride().
Stride is untested.  Swapped code works for SMC ethernet.
2000-07-30 21:38:02 +00:00
briggs a3f6fd2274 Add nubus attachment for smc91cxx driver. 2000-07-30 21:36:04 +00:00
briggs 5d162e9bcf Add Sigma Designs L-View and AsanteFAST product codes. 2000-07-26 04:36:16 +00:00
briggs 98cdbc4cc9 Remove advertising clause with my name. 2000-07-26 04:35:46 +00:00
scottr c019fa32ca Revert a bit of the last change to make this compile again. 2000-07-05 07:33:52 +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
scottr d08e3b12a4 Stabilize ADB support for some non-Apple ADB peripherals. This is the
second (and final) part of the fix for PR 10086.  (There are no longer
any infinite-wait busy loops in the ADB driver!)
2000-07-03 08:59:26 +00:00
scottr da62d2ef12 Avoid attaching on the Mac TV, as this system seems to not be
completely backward compatible to the II-series sound hardware.
2000-07-02 21:10:14 +00:00
scottr 95497e28ce Add video hardware info for the Performa 550 and Macintosh TV. 2000-07-02 20:59:58 +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
mrg e6b451c8a6 fix wrong comment. 2000-07-01 03:35:07 +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
mrg 28d898391b remove include of <vm/vm.h>. <vm/vm.h> -> <uvm/uvm_extern.h> 2000-06-29 08:10:45 +00:00
mrg e185413725 remove redudant <vm/pmap.h> includes. <vm/pmap.h> -> <uvm/uvm_pmap.h> 2000-06-27 04:18:48 +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
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
wrstuden 491d7e6764 Fix logic bug which would keep PPS from working. Noticed by:
Charles Carvalho <carvalho@cisco.com>
2000-06-25 20:55:33 +00:00
mrg c543a66253 remove some redundant <vm/vm_xxx.h> includes 2000-06-25 13:26:19 +00:00
fvdl 1ee7d22c0b Remove prefix construction for softdeps. Add SOFTDEP option to GENERIC. 2000-06-22 20:27:49 +00:00
scottr fbafc16812 Revert debug-related bogon that snuck in (no change in functionality). 2000-06-18 22:58:45 +00:00
scottr cee7249423 Since interrupts are now enabled during ADB autoconfig, it's possible to get
a keyboard event before wskbd is attached. Make sure we've done that before
passing an event to kbd_intr(), which in turn hands off to wskbd_input().
This is another part of the fix for PR 10086.
2000-06-17 18:00:47 +00:00
scottr 6f644439a9 Only the first device that we're sure is a keyboard should be attached
as the wskbd console device.  (Part of the fix for PR 10086.)
2000-06-17 17:46:40 +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
fredb 1c3835d907 Enable "rnd" pseudo-device. It's no longer experimental, and works just
fine on mac68k.
2000-06-11 18:09:34 +00:00
scottr 50cde82828 Since interrupts are now enabled during ADB autoconfig, it's possible
to get a mouse event before wsmouse is attached. Make sure we've done
that before passing an event to wsmouse_input().
2000-06-11 17:26:47 +00:00
scottr 162689f352 We don't need ADB debugging enabled any longer. 2000-06-10 02:33:59 +00:00
scottr a91ead9a5d From Hauke Fath: clean up disklabel support, particularly for
native NetBSD labels.
2000-06-09 15:27:35 +00:00
scottr d220ba7dc4 Make this compile with GRF_COMPAT. Problem pointed out by Hauke Fath. 2000-06-08 06:01:27 +00:00
soren a9aa2abf94 defopt SYSCALL_DEBUG. 2000-06-06 18:52:30 +00:00
jhawk c063b64a2b Do not clear msgbufenabled in dumpsys(). Dump messages will now go to
the message buffer. This can be invaluable in debugging if the dump
fails (assuming a persistant message buffer)
2000-06-05 23:44:55 +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
thorpej 8871d8563a Add a comment on single-processor systems about p_cpu being initialized
by fork1().
2000-05-31 05:06:43 +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
jdolecek c5d51d433e fix prototype for fd_mod_free() - should fix port-mac68k/10063 2000-05-27 10:25:15 +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
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
thorpej 1140468205 Use preempt(), not an open-coded equivalent (which won't be
equivalent for long).
2000-05-24 16:48:33 +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
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
minoura 6943d5dd19 defopt FPSP. 2000-05-14 14:13:53 +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
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
itojun 3be41bae18 add stf pseudo interface (commented out due to possible security risks) 2000-04-19 06:50:27 +00:00
jdolecek 2a0b424186 LKM fixes:
* fix a typo in callout_stop() call
* prototype fd_mod_init(), fd_mod_free() to avoid warnings
* include iwm_mod.h

Fix sent in port-mac68k/9787 by Dave Huang.
2000-04-05 11:37:13 +00:00
scottr 3ca0215f69 Correct a pasto in pm_pmgrop_pm1(); while there were no negative side
effects, the place this code ended up couldn't have had any positive
effect, either.
2000-04-05 07:29:18 +00:00
scottr 15a3a17a43 Correct a few instances where we returned from a function that
had set splhigh() but returned without restoring the previous spl.
The PowerBook keyboard works better, now, but still starts to flake
out pretty badly at 70+ wpm.
2000-04-05 07:18:07 +00:00
scottr 4d23f7686d Attach all displays, keyboards, and mice, not just the first
ones found.
2000-03-31 08:27:43 +00:00
scottr 10c763efa3 The declaration for esp has moved to conf/files. (Hi Charles!) 2000-03-27 21:47:46 +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
thorpej b667a5a357 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:30:07 +00:00
scottr 7dbb8560d6 Revert to the old practice of always setting up MRG, even if we don't
need it for ADB.  Besides the misleading message at autoconf time,
MRG is sometimes useful for things other than ADB.
2000-03-20 08:07:52 +00:00
scottr 4f29e4d330 Add and use macros to build ADB FLUSH, LISTEN, and TALK commands. 2000-03-19 07:37:58 +00:00
scottr edfc8b89ad The MRG and direct ADB drivers were inconsistent in how they worked with
a serial console; the direct driver didn't care, but the MRG driver
wouldn't probe ADB when using a serial console.  Remove the check from
the MRG version of the code to resolve this difference.
2000-03-19 06:07:05 +00:00
scottr 513f613391 Add the RasterOps 24MxTV; this card operates in the same manner as two
other RasterOps boards we already handle.  Information provided by
Greg Kerr.
2000-03-18 20:53:24 +00:00
mycroft 6780878550 Fix pasto in previous. 2000-03-18 16:14:57 +00:00
mycroft 0af581a1a1 Add a ncr5380_attach() routine which does part of the initialization, attaches
the scsibus, and does the addref/delref dance.
2000-03-18 16:13:22 +00:00
scottr c62e39490c Check to make sure we get a valid handler ID in response to a TALK R3. 2000-03-18 08:07:50 +00:00
tron e86957458a Install "machineendian_machdep.h". 2000-03-17 22:36:31 +00:00
scottr 0a23aef85e Resurrect a chunk of code from the ite driver that we lost along the way.
This code is necessary for SE/30 internal video, at a minimum.
2000-03-17 04:46:32 +00:00
mycroft 9e21b6555a In the `MY THAT'S GROSS' department...
Eliminate the recursive include of machine/endian.h from sys/endian.h.
2000-03-17 00:09:18 +00:00
oster 1bad2e1909 Add the RAIDframe device major to the machine-dependent config files
so that the right entries get added to dev_name2blk[].  Needed for / on RAID.
(Whoops!  I missed checking these in when adding the RAID_AUTOCONFIG stuff.)
2000-03-14 15:56:51 +00:00
scottr 87bf486935 Back out previous; it's now dead code. 2000-03-09 23:15:23 +00:00
scottr d5f475149c The last change has proven unreliable. Attack the problem differently;
assume that the address we have is the correct PA if we can't
figure it out by groveling.  This time it really (yes, really)
works on the PowerBook 14x/16x/170.
2000-03-09 22:27:09 +00:00
scottr 6755970bcf Low-level drivers, like the Power Manager driver, can get us into a major
funk when they misbehave and give us unexpected results.  Specifically:

 - Don't assume that the first free slot is at the top of the table if
   we can't find one.
 - Don't increment ADBNumDevices when backfilling "holes" left by devices
   that didn't respond to a TALK R3 during the initial device scan.
 - Don't assume that an address reassignment worked; make sure something
   responds on the new address before plowing forward.
 - If after device reassignment there are no free slots, make sure to
   indicate this fact.
 - Failing all else, handle the situation where we run out of slots in
   the device table -- which now should "never" happen -- gracefully.

While the Power Manager driver still sometimes misbehaves, it shouldn't
cause the system to crash/hang due to us walking off the end of the
device table.
2000-03-07 06:35:22 +00:00
scottr 027952236a Two changes to facilitate (better) PowerBook 1xx support:
- Use a mask to account for address space "wrapping"
 - Check supervisor data space if we can't find a PTE in user data space
2000-03-04 08:16:16 +00:00
scottr a5d6bd9c7a Add get_pte_s() to search the supervisor space. 2000-03-04 08:10:51 +00:00
simonb 4eb55e447c Do the "<space><tab>" thing with the RAID_AUTOCONFIG option. 2000-02-29 06:32:20 +00:00
oster d9c47013b2 Defopt 'RAID_AUTOCONFIG'. Adding 'options RAID_AUTOCONFIG' turns on
the component auto-detection and auto-configuration of RAID sets.
Also, add "#options RAID_AUTOCONFIG" to the GENERIC config files.
2000-02-26 17:35:33 +00:00
scottr d67bf4504d Turn off some noise during autoconfig on the IIfx/Q9x0, making it
conditional on the TRACE_CONFIG debugging flag.
2000-02-24 05:02:33 +00:00
erh 8f03b9a04a Define the DONETISR macro and use netisr_dispatch.h. This is to cut down on code duplication and to standardize the available NETISRs across all ports. 2000-02-21 20:38:46 +00:00
scottr 5bc9da0d51 Correct some temporary confusion between the IOPs and the OSS: move
IOP init back to mac68k_init().  We'll deal with the OSS later.
2000-02-21 05:50:14 +00:00
scottr 45ac4c3122 Use constants defined in viareg.h to set value of VIA2. 2000-02-21 05:36:11 +00:00
scottr 17a313075f Correct some temporary confusion between the IOPs and the OSS: move
IOP init back to mac68k_init().  We'll deal with the OSS later.
2000-02-21 04:08:21 +00:00
scottr 5c7674d4dd Explicitly include headers needed by iopreg.h 2000-02-21 02:04:48 +00:00
scottr eb17197dee Initialize VIA/IOP/PSC from intr_init(). While here, re-order headers
to match KNF.
2000-02-21 01:51:37 +00:00
scottr 806c8c15e0 Initialize VIA/IOP/PSC from intr_init(). 2000-02-21 01:48:49 +00:00