Commit Graph

206 Commits

Author SHA1 Message Date
thorpej d76e7b8c6d Don't pass a nam2blk around at all; just have setroot() and friends reference
dev_name2blk[] directly.  Addresses PR #7622 (ITOH Yasufumi), although
in a different way.
1999-06-07 20:16:08 +00:00
thorpej beb8d06638 Generally update the comment above vunmapbuf(). 1999-05-26 22:19:33 +00:00
thorpej a2d06a4721 Generally update the comment above the vmapbuf() implementations. 1999-05-26 22:07:36 +00:00
thorpej 2580d306ab Change the vm_map's "entries_pageable" member to a r/o flags member, which
has PAGEABLE and INTRSAFE flags.  PAGEABLE now really means "pageable",
not "allocate vm_map_entry's from non-static pool", so update all map
creations to reflect that.  INTRSAFE maps are maps that are used in
interrupt context (e.g. kmem_map, mb_map), and thus use the static
map entry pool (XXX as does kernel_map, for now).  This will eventually
change now these maps are locked, as well.
1999-05-26 19:16:28 +00:00
thorpej 5832084eaf bus_dmamem_map() maps DMA safe memory, which is usually one or more
managed pages, into KVA space.  Since the pages are managed, we should
use pmap_enter(), not pmap_kenter_pa().

Also, when entering the mappings, enter with an access_type of
VM_PROT_READ | VM_PROT_WRITE.  We do this for a couple of reasons:

	(1) On systems that have H/W mod/ref attributes, the hardware
	    may not be able to track mod/ref done by a bus master.

	(2) On systems that have to do mod/ref emulation, this prevents
	    a mod/ref page fault from potentially happening while in an
	    interrupt context, which can be problematic.

This latter change is fairly important if we ever want to be able to
transfer DMA-safe memory pages to anonymous memory objects; we will need
to know that the pages are modified, or else data could be lost!

Note that while the pages are unowned (i.e. "just DMA-safe memory pages"),
they won't consume any swap resources, as the mappings are wired, and
the pages aren't on the active or inactive queues.
1999-05-25 23:14:03 +00:00
lukem e4a87aa1a9 * convert to using MI allocsys(). most ports were using an MD allocsys(),
although a couple still used the old pre-4.4-lite (?) mechanism.
* use format_bytes() to format the various printf()s that print out memory sizes
1999-05-20 08:21:42 +00:00
thorpej f98d358a1f Rework layer 2 protocol input routines. Instead of calling e.g. ether_input()
directly, call the function pointer (*if_input)(ifp, m).  The input routine
expects the packet header to be at the head of the packet, and will adjust
as necessary.  Privatize the layer 2 input and output routines, allowing
*_ifattach() to set them up as appropriate.
1999-05-18 23:52:51 +00:00
thorpej c10a926030 Allow the caller to specify a stack for the child process. If NULL,
the child inherits the stack pointer from the parent (traditional
behavior).  Like the signal stack, the stack area is secified as
a low address and a size; machine-dependent code accounts for stack
direction.

This is required for clone(2).
1999-05-13 21:58:32 +00:00
drochner fe310dd299 include <lib/libkern/libkern.h> for intoa()/inet_ntoa() 1999-05-07 16:19:27 +00:00
kleink 6290fed1b6 SVR4-related typo in previous. 1999-05-06 14:16:07 +00:00
christos d27f70c075 Include opt_compat_sunos.h 1999-04-29 16:22:03 +00:00
bad c98240fc07 Don't use the direct console on color machines, which is currently not
supported.  Use serial console instead.
From Matt Debergalis PR 7488.
1999-04-29 14:51:20 +00:00
kleink e1529b8f93 Pull in the right generic m68k header. (Where was my mind?) 1999-04-29 14:38:39 +00:00
thorpej b8073b401b Garbage-collect the VM_MBUF_SIZE constant. Instead, use the size
(nmbclusters * mclbytes), so that the right amount of KVA space is
allocated if those variables are patched.
1999-04-26 22:46:44 +00:00
simonb 5d8b1ef3e4 g/c REAL_CLISTS. 1999-04-25 02:56:26 +00:00
dbj 9176bfee30 add nextkbd flag to nextcons.c so that kernel can be cleanly
configured without a video console
patch submitted by Matt Debergalis
1999-04-24 17:55:10 +00:00
chs 05b971dd5f in pmap_pageable(), rather than marking a PT page as not modified
to trick the pagedaemon into freeing it later, just unmap the page
and free it immediately.  fixes PR 7337.
1999-04-22 04:24:52 +00:00
kleink ed74932033 Add COMPAT_SVR4 for m68k. 1999-04-19 21:22:56 +00:00
chs f455dd6596 add a `flags' argument to uvm_pagealloc_strat().
define a flag UVM_PGA_USERESERVE to allow non-kernel object
allocations to use pages from the reserve.
use the new flag for allocations in pmap modules.
1999-04-11 04:04:04 +00:00
drochner 010bce1d1a add BUS_SPACE_ALIGNED_POINTER() definitions for completeness 1999-04-10 14:06:27 +00:00
thorpej 967b8c433c Don't call configure() from cpu_startup(). 1999-04-01 00:17:45 +00:00
mycroft 93768384ee Fix a bug in pmap_collect_pv(), even though nobody currently uses it:
When we put a page on the collection list, we must subtract NPVPPG from the
total free count: one for each pv_entry that's free in that page, and one for
each free pv_entry in other pages that we're going to eat by moving the ones
in the page being collected.
1999-03-27 05:57:02 +00:00
mycroft 9affa543a5 Oops; forgot to change some pmap_enter() calls. 1999-03-27 03:34:08 +00:00
dbj 2e0fe35095 added kgdb support. 1999-03-27 02:59:41 +00:00
wrstuden 2adccc50fa Add pps support. Only enable pps if CLOCAL & !MDMBUF. 1999-03-27 01:21:36 +00:00
mycroft 12d512bbb7 Oops; vm_offset_t -> vaddr_t. 1999-03-27 00:30:06 +00:00
mycroft 9c6b797796 Changes for modified pmap_enter() API:
* Map the message buffer with access_type = VM_PROT_READ|VM_PROT_WRITE `just
  because'.
* Map the file system buffers with access_type = VM_PROT_READ|VM_PROT_WRITE to
  avoid possible problems with pagemove().
* Do not use VM_PROT_EXEC with either of the above.
* Map pages for /dev/mem with access_type = prot.  Also, DO NOT use
  pmap_kenter() for this, as we DO NOT want to lose modification information.
* Map pages in dumpsys() with VM_PROT_READ.
* Map pages in m68k mappedcopyin()/mappedcopyout() and writeback() with
  access_type = prot.
* For now, bus_dma*(), pmap_map(), vmapbuf(), and similar functions still use
  access_type = 0.  This should probably be revisited.
1999-03-26 23:41:25 +00:00
dbj f1d7b3337a Disable non functional esp driver and scsi support. 1999-03-26 23:17:53 +00:00
dbj 25ea4fb7a7 tweaks to compile with egcs -Werror
minor changes to scsi driver register accesses.
1999-03-26 06:54:40 +00:00
dbj d1bbf5a190 Added support for using wscons as console.
Enabled wscons as default console.
Use option SERCONSOLE now to use serial console instead now.
1999-03-26 04:42:59 +00:00
dbj 5a7e7178c8 fix polled keyboard support 1999-03-26 04:17:46 +00:00
dbj 0fabf8441f add KS_bar and KS_backslash to default us keymap. 1999-03-26 04:15:27 +00:00
dbj 4717d3e130 fix typo allocating color framebuffer map. 1999-03-24 23:47:46 +00:00
dbj a859ba2b23 Applied patches from Matt Debergalis <deberg@mit.edu>.
These patches include:
  Added framebuffer mapping for color framebuffer to support color wscons
    which is coming soon.
  Renamed wskbdmap_mfii[ch] to wskbdmap_next[ch]
  Changed video to be white on black instead of black on white.
  Now handles and discards mouse interrupts.
  Video and keyboard is now working on mono machines.
1999-03-24 23:15:51 +00:00
mrg ca5f9685bb clean up kernel/config files files for machVM lossage. 1999-03-24 06:06:09 +00:00
mrg d2397ac5f7 completely remove Mach VM support. all that is left is the all the
header files as UVM still uses (most of) these.
1999-03-24 05:50:49 +00:00
dbj c1824c37af more minor changes, mostly in minor tweaks to debuggin output.
tweaks to handling dmasize != dmalen correctly.
changed minimum dma segment length for tail buffer.
1999-03-23 08:42:39 +00:00
chs ab7269f62a if uvm_fault() fails with KERN_RESOURCE_SHORTAGE, send a SIGKILL
and print a message about it.  this will be used to recover from
out-of-swap conditions.
1999-03-18 04:56:01 +00:00
sommerfe bc533621ed defopt MINIROOTSIZE 1999-03-17 18:59:21 +00:00
minoura e518820ca8 Pullin m68k/ieee.h. 1999-03-15 11:55:53 +00:00
dbj 00c8d4dd90 changed dma start alignment from 4 to 16 so that the cache flush
functions always have cache line aligned segments.
continued experimentation with scsi driver.
1999-03-14 10:31:05 +00:00
dbj bb8f1300ce moved declaration of nextdma_intr into correct header file. 1999-03-04 14:18:25 +00:00
dbj 1f4e96b222 continued experimentation trying to understand why we drop
scsi write completion interrupts (the dma appears to complete ok)
Now copy read tail buffer after we bus_dma_sync it and not before.
1999-03-03 16:02:23 +00:00
dbj e7058e7205 turn on diagnostic check in dma for controller bits at shutdown.
adjusted esp overrun to avoid diagnostic check triggering.
1999-03-02 12:11:24 +00:00
explorer 3ebb419571 Update to slightly altered rnd_attach_source() api 1999-02-28 17:08:05 +00:00
scottr d32ed292af defopt BUFCACHE and BUFPAGES. 1999-02-27 06:39:34 +00:00
is f71d843a65 synchronize types, and s/curproc/p/ in one forgotten place 1999-02-26 22:37:57 +00:00
is 0f5ed05445 next68k specific part of PR 6152 fix 1999-02-26 21:34:38 +00:00
hubertf 56f2d188fc RCS ID police 1999-02-15 04:54:34 +00:00
dbj f651d280fa Continue hacking on esp driver. Seems relatively stable in read only mode.
write operations appear to lose scsi interrupts and causes timeouts.
changes in this checkin include:
a nextdma bugfix causing a diagnostic check to erroneously trigger
Changed tail strategy to only use tail buffer for the minimal end slop
changed expected write dma overrun to 32 bytes.
turned on nextdma diagnostic check for dma end address since it
no longer gets triggerred by ethernet dma and helps debug scsi dma.
Added esp debugging printout and support.
1999-02-14 10:19:51 +00:00
dbj 997f74e47c Continued work on esp scsi driver. Now can at least do enough i/o to create and mount
a filesystem, but is not stable enough yet for general use.
increased priority of ethernet interrupts, mostly useful to aid debugging
of scsi interrupts while using an nfs disk.
added additional debugging output in the next dma driver.
perform extranneous cache flushes/purges before dma reads/ after dma writes
to aid debugging of scsi dma.
1999-02-13 09:44:50 +00:00
lukem dcab0210a0 convert from NOxxx= to MKxxx=no.
include <bsd.own.mk> if testing a MKxxx variable.
1999-02-13 02:54:17 +00:00
mycroft 2a304686e6 Minor cleanup.
Make the initializer for BAUDLO depend on PCLK directly; it was incorrect on
some ports where PCLK is not 4.9152MHz.
XXX Is the default value actually used?
1999-02-11 15:28:03 +00:00
kleink f69591d12d Use of casts as lvalues is a GNU C extension; rearrange slightly. 1999-02-10 17:03:26 +00:00
dbj 3e0d6eb0b4 overhalt of scsi driver.
it still probes the disks ok, but is having trouble with 0xdeadbeef
in buffers read from the disk.  Suspected problems with DMA alignment
and toggling the secret ninja dma control register
1999-02-03 20:44:43 +00:00
mycroft be1af660c0 Don't set DCD_IE in the frontends. KGDB doesn't even use DCD, and the tty
frontends get it from zsparam() anyway.
1999-02-03 20:25:05 +00:00
dbj f41cded075 make dma flushing more efficient and avoid stray interrupts when not using polled io.
remove check for normal chaining interrupts and add check for combined chaining interrupts
only when used with a tail chain.  This allows scsi to work for short unaligned buffers
and large aligned buffers.
1999-02-02 14:04:53 +00:00
dbj d97559225c Removed some already commented out test code.
added debugging printout when invoking polled dma interrupt.
1999-02-02 12:46:13 +00:00
dbj f6955fc60b Fix return value in interrupt routine so that dma gets flushed correctly.
Turn on the esp_match since polling the scsi bus now works.
1999-02-01 12:53:48 +00:00
dbj b970be0907 Made reboot and halt work. 1999-01-31 18:12:14 +00:00
dbj 107dd5ccc6 use WSEMUL_VT100 instead of WSEMUL_SUN 1999-01-31 18:07:41 +00:00
dbj 21ab415ee6 Added support for setting boothowto from boot loader flags.
print out string of `.' when powering down to work around ununderstood
behavior of rtc chip.
1999-01-31 07:02:33 +00:00
dbj f0b3caaceb Accidentally uncommitted wscons change.
attach nextdisplay to mainbus for wscons support.
1999-01-31 06:59:30 +00:00
dbj 7919e08986 wscons based console video & keyboard support for the NeXT
from Matt DeBergalis
1999-01-28 11:46:22 +00:00
dbj 5a0e49ac08 Finished the setting of the system date from the rtc. 1999-01-27 11:27:16 +00:00
dbj 0dee80a0e4 print out interrupt status register and mask when stray interrupt occurs.
to aid debugging
1999-01-27 06:39:31 +00:00
dbj 49ad0ddfa1 Continue work on scsi driver. Added tail dma buffer. Still non functional. 1999-01-27 06:37:49 +00:00
dbj b9795e9e3c Fixed dma instability introduced with nextdma.c rev 1.7
This fix removes putting 0xfeedbeef in the unused restart registers.
When that was done, the machine would panic after a short while
with 0xfeedbeef in the normal dma buffer registers.  A restart
cycle is probably hapenning without an interrupt or something.
1999-01-27 06:08:29 +00:00
thorpej 2fb041ce0a No need for <sys/mtio.h> 1999-01-19 18:18:41 +00:00
chuck 417e5339f0 MNN is no longer optional 1999-01-16 20:31:50 +00:00
thorpej c84a74b16b Don't define "mc68020". Nothing uses it. 1999-01-15 23:21:25 +00:00
bouyer dc306354b0 Move the bswap functions from libutil to libc (this bups the
minor of libc and the major of libutil). For little-endian architectures
merge the bnswap() assembly versions with nto* and hton* using symbols
aliasing. Use symbol renaming for the bswap function in this case to avoid
namespace pollution.
Declare bswap* in machine/bswap.h, not machine/endian.h. For little-endian
machines, common code for inline macros go in machine/byte_swap.h
Sync libkern with libc.
Adjust #include in kernel sources for machine/bswap.h.
1999-01-15 13:31:15 +00:00
abs 1e21e1233b Change 'from from' to 'from' in some comments 1999-01-13 09:25:59 +00:00
thorpej e598335d1c Garbage-collect `mbutl'. 1999-01-09 22:10:12 +00:00
dbj e41d023363 Moved optional devices out of std.next68k and put them in GENERIC instead.
This is patch supplied in pr 6725.
1999-01-09 05:08:54 +00:00
augustss fc5f9ee81d Add -Wpointer-arith warning since `void *' arithmetic is not ANSI C. 1999-01-08 19:26:12 +00:00
dbj c67d9eac9d Applied supplied patches from pr port-next68k/6709
add bus_space support for mono framebuffer
1999-01-02 13:42:17 +00:00
dbj 0f11abef49 Aded include for files.wscons so changes from pr 6707 to conf.c compile. 1999-01-02 13:30:45 +00:00
dbj bb1f20f1fa Reformatted changes from previous patch to match style guidelines. 1999-01-02 13:23:31 +00:00
dbj 70b3738d46 applied patch from pr port-next68k/6708: add wscons devices to next68k MAKEDEV 1999-01-02 13:14:18 +00:00
dbj 99c914d1be Added check that M68040 is defined in case user interrupted creation
of assym.h, leaving it empty.
1999-01-02 13:03:20 +00:00
dbj 48d4303235 applied patch from pr port-next68k/6704: next68k zs driver formatting error
zs driver needs to print a newline.
1999-01-02 12:47:50 +00:00
dbj c96a4ad63d Continued work on esp driver. Now successfully identifies a scsi target.
Unfortunately, to get dma to work, we have to align past the end of
the buffer, which smashes other variables on the stack.
match function still disabled, as it isn't ready yet.
1998-12-30 12:02:03 +00:00
dbj d3e627398e changed register for start of dma buffer to be DD_NEXT_INITBUF instead
of DD_NEXT for regular dma transfers, and not just ethernet transmit.
Keep track of dma read/write direction and set it each time we start or
restart dma.  This allows scsi to work, and doesn't appear to hinder ethernet.
1998-12-30 03:05:29 +00:00
dbj ba3bedf25e After some experimentation, now allow dma start alignment to be 4.
Removed separate alignment constant for ethernet since it appears to
be unnecessary.
1998-12-27 09:03:14 +00:00
dbj ea8f01b987 Continued experimentation on SCSI driver.
Added nextdma_debug variable to control debug printouts in nextdma driver
when ND_DEBUG is defined.
1998-12-26 06:17:44 +00:00
dbj db8bf6a623 Revamped DMA interface to unify chaining and non-chaining dma sequences.
Updated ethernet driver to work with new interface.
Continue work on esp driver.
1998-12-19 09:31:44 +00:00
itohy 36416d8500 Added options COMPAT_LINUX and EXEC_ELF32 as comments
to GENERIC configuration files.
1998-12-15 19:50:00 +00:00
itohy c05dadc113 Added COMPAT_LINUX support. 1998-12-15 19:36:36 +00:00
dbj 54a0e65b02 initialized unused dma registers to 0xdeadbeef instead of 0 to aid debugging. 1998-12-08 09:35:07 +00:00
hwr 59acb69be1 Add (commented out) 'gre' pseudo device line. Feedback is welcome.
Inspired by Klaus Klein.
1998-11-25 20:30:44 +00:00
dbj 0a67f72c26 uncommented the "intrnames" definitions used by vmstat to
label interrupt counts.
1998-11-24 07:02:10 +00:00
thorpej 5f0577babc Adapt to the new scsipi_adapter interface. 1998-11-19 21:43:00 +00:00
mrg db3051d720 fix problems in many d_mmap routines:
- returned EOPNOTSUPP rather than -1.
	- no check for negative offset.
many of these fix potential security problems in these drivers.


XXX XXX XXX
the d_mmap cdev routine should be changed to have a prototype like:
	paddr_t (*d_mmap) __P((dev_t, off_t, int));

by someone!
1998-11-19 15:38:20 +00:00
dbj 044d782820 Removed unused buserr and addrerr declarations. 1998-11-19 08:32:26 +00:00
oster cf5710c839 Added a (commented out) configuration line for the RAIDframe device driver. 1998-11-16 16:44:55 +00:00
dbj a712d8ae87 Moved UVM define from GENERIC to std.next68k
Added -Wno-main to warnflags, if compiler supports it.
1998-11-16 04:37:56 +00:00
dbj 87cb8573e1 Finished changes to use UVM on next68k.
Turn on UVM by default in GENERIC kernel.
1998-11-14 04:32:50 +00:00
oster c74d32c5fc Updating of bdev's and cdev's to support RAIDframe. 1998-11-13 04:47:03 +00:00
thorpej 49c62c4336 Changes to support fork_kthread():
- cpu_set_kpc() now takes void *arg third argument, passed to the
  entry point.
- cpu_fork() allows parent to be non-curproc iff parent is proc0.
  When forking non-curproc, assume its state has already been saved.
- Adjust various pieces of machine-dependent code to account of all of this.
1998-11-11 06:41:23 +00:00