Commit Graph

889 Commits

Author SHA1 Message Date
ragge
a7361f3acf Moved to dz_ibus.c,v 1999-08-06 18:58:28 +00:00
ragge
c7d47daa04 Moved from dz_vsbus.c,v 1999-08-06 18:58:27 +00:00
thorpej
d936f02b0b Implement priority raising, and use it as appropriate. 1999-08-05 18:48:55 +00:00
thorpej
37554502cf Correct a comment. 1999-08-05 18:31:06 +00:00
thorpej
eb20bbc780 Change the semantics of splsoftclock() to be like other spl*() functions,
that is priority is rasied.  Add a new spllowersoftclock() to provide the
atomic drop-to-softclock semantics that the old splsoftclock() provided,
and update calls accordingly.

This fixes a problem with using the "rnd" pseudo-device from within
interrupt context to extract random data (e.g. from within the softnet
interrupt) where doing so would incorrectly unblock interrupts (causing
all sorts of lossage).

XXX 4 platforms do not have priority-raising capability: newsmips, sparc,
XXX sparc64, and VAX.  This platforms still have this bug until their
XXX spl*() functions are fixed.
1999-08-05 18:08:08 +00:00
ragge
128cc8e9b2 For now; don't include the devices that are not yet converted. 1999-08-04 19:15:56 +00:00
ragge
2661ddc378 smg/lkc must have "qfont". 1999-08-04 19:15:11 +00:00
ragge
bebf926694 Adopt to new BI bus design. 1999-08-04 19:11:01 +00:00
ragge
fe04287ec0 Moved to dev/bi. 1999-08-04 19:09:46 +00:00
ragge
0b6c232028 BI bus has become MI now. 1999-08-03 19:56:21 +00:00
ragge
43bbc0f5c7 Protect against multiple includes. 1999-08-03 19:53:23 +00:00
ragge
901fb270ef Add a "generic" struct for dma without anything fancy. 1999-08-03 19:45:47 +00:00
ragge
8f9615d62c A bunch of changes:
- Free pte pages not in use anymore.
- Inline pmap_extract().
- Fix annoying page reference/modify bug. Fixes PR#7858 & PR#7859.
1999-08-01 13:48:06 +00:00
ragge
870769b516 Cpu_swapin() only need to set red zone now. 1999-08-01 12:07:31 +00:00
augustss
3652732791 Add wsmux device.
(Also add lots of missing chrtoblktbl[] entries.)
1999-07-29 19:14:35 +00:00
augustss
a7cd454b1d It's time to be COMPAT_14. 1999-07-29 10:37:12 +00:00
cgd
f886376518 be more efficient when doing the SYSTEM_LD_TAIL for -g kernels: don't
copy them just to strip them, use strip -o.
1999-07-26 05:20:44 +00:00
abs
2ceba51630 Work with obj dirs (It seems that ${.CURDIR}/... is your friend).
If I _had_ to pick an arch on which to learn how this stuff works, it probably
would not have been vax... unless of course I was experimenting with time
compressing drugs.  If we have a 1.4.2, this is definitely a candidate.
1999-07-18 05:55:45 +00:00
ragge
73d339e9e8 Rewrite the page table entry routines. Don't take a pte invalid fault for
missing pte's, instead map in pte entries in pmap_enter(). The user ptes
is no more handled by the VM system. All this made swapping start working
on VAX again.
Still to do:
- Keep refcount per pte page, so that those pages get free'd when the
  process is swapped out. Right now they are only free'd when the pmap
  is destroyed.

Many thanks to Chuck Silvers for all help finding the deadlock problems.
1999-07-10 22:04:59 +00:00
ragge
e2a9d46897 After swapin of a process, restore the red zone in kernel stack at the
correct place.
1999-07-10 21:55:17 +00:00
thorpej
0945bf58b0 Add examples for including the kernel crypto bits from either crypto-us
or crypto-intl, commented out, with instructions to use only one, and
adjust the prefix as necessary.
1999-07-09 18:55:33 +00:00
mrg
ecdad0ec33 clean up a bit after jason :)
- fix emitrules() like emitfiles() to deal with the prefix (otherwise it
  would attempt to find the file in the normal base for the NORMAL_C rule).
- add emitincludes() which adds include directives for each prefix to the
  $INCLUDES variable in the makefile.
- add %INCLUDES to each Makefile.arch to deal with the above.

this makes "prefix" actually work in a usable manner, and now i can move
on to fixing compiler warnings (errors) in the ESP code. :)
1999-07-09 09:52:55 +00:00
thorpej
b2781586c4 Normalize include paths. 1999-07-09 02:32:28 +00:00
thorpej
3ebbe095e0 Change the pmap_extract() interface to:
boolean_t pmap_extract(pmap_t, vaddr_t, paddr_t *);
This makes it possible for the pmap to map physical address 0.
1999-07-08 18:05:21 +00:00
itojun
5effafcaa6 kernel configuration for IPv6/IPsec. should be in GENERIC in the future.
(source code will be committed soon)
1999-07-01 07:00:12 +00:00
ragge
1647688f0d Use pmap_steal_memory() for early memory allocation. 1999-06-30 19:31:33 +00:00
ragge
8783dd4166 MSCP moved. 1999-06-30 18:48:06 +00:00
ragge
9c7dfb8eb4 Outdated; moved to another location. 1999-06-30 18:47:03 +00:00
ragge
996e5bf55a Stop the network interface after kernel is loaded but before starting it.
Not doing this caused packets to be read into memory somewhere after the
kernel was started but before the device was probed, normally in the
system page table. This gave quite unpredictable results...
1999-06-30 18:38:03 +00:00
ragge
a406e5332c Clean up the boot command selection a bit. Add a command "halt". 1999-06-30 18:33:33 +00:00
ragge
3b8e9ab16d Support loading the kernel from ustarfs. 1999-06-30 18:30:42 +00:00
ragge
04620b62b5 Search for include files in new locations. 1999-06-30 18:19:26 +00:00
ragge
1e7b5cf8ae Wrong definition of SID for MicroVAX I, from Brian Chase. 1999-06-28 13:13:53 +00:00
itojun
427639cdce - Call ip6intr if INET6 is defined.
- remove "need-flag" for mac68k esp driver, as it is not used in anywhere
  and conflicts with IPsec ESP header.

This should be the only MD change in IPv6 support, except kernel config file.
Very sorry if you have any compilation problem with it (I believe it is okay).
If your favorite arch is not included in here, please add a
call to ip6intr() from softintr handle.
1999-06-28 08:20:40 +00:00
ragge
51dd099ef5 Add DW750 and DW780 UBA support. Still no BDP's. 1999-06-21 16:23:00 +00:00
ragge
e0972091c8 Remove moved files. 1999-06-20 18:19:19 +00:00
ragge
e410ff8410 Remove moved files. 1999-06-20 18:14:41 +00:00
ragge
7a1f65022b Remove more unused files. 1999-06-20 16:00:14 +00:00
ragge
dc65be6cf8 Remove old unused files. 1999-06-20 15:58:28 +00:00
ragge
92a492d5ea Some 4000/200 fixes. From Michael Kukat. 1999-06-20 15:52:51 +00:00
ragge
e2fb3def19 Use uba & mscp code from dev/ instead. 1999-06-20 01:05:19 +00:00
ragge
cc43d8766d Fix of bug causing allocations of physical pages to get wrong address. 1999-06-20 00:59:54 +00:00
ragge
abcc4bed15 Better support for tracing stacks. From Chuck McManis. 1999-06-20 00:58:23 +00:00
ragge
cb57cab9b1 Add macros to round/trunc vax pages. 1999-06-20 00:53:58 +00:00
ragge
76b9763345 Add some small checks to avoid unwanted panic types. 1999-06-20 00:53:02 +00:00
ragge
069858b1e2 Want device-register, to detect qbus boot devices. 1999-06-20 00:50:08 +00:00
ragge
656c580511 Don't try to disconnect SCSI disks. From Michael Kukat.
Now DEC disks also works in VAXstations :-)
1999-06-19 15:46:05 +00:00
cgd
7c02d93c04 nuke current definitions provided by __BUS_SPACE_COMPAT_OLDDEFS.
I'll do what I can to make new ones soon.  8-)
1999-06-18 04:49:24 +00:00
thorpej
0288ffb53a pmap_change_wiring() -> pmap_unwire(). 1999-06-17 19:23:20 +00:00
thorpej
f5a527bb4e Remove pmap_pageable(); no pmap implements it, and it is not really useful,
because pmap_enter()/pmap_change_wiring() (soon to be pmap_unwire())
communicate the information in greater detail.
1999-06-17 18:21:21 +00:00
thorpej
2c35c7bd03 Only declare block major numbers for devices which can be the root device. 1999-06-07 20:31:27 +00:00
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
ragge
3bb07459cd Qbus moved in hierarchy. 1999-06-06 19:10:49 +00:00
ragge
4756cdb74e Page tables must be pageable (where did this disappear?)
Fix a PGOFSET -> VAX_PGOFSET miss.
Stylistic cleanup.
1999-06-06 19:09:50 +00:00
ragge
f6d61fb6ad Add an define for SGMAP. 1999-06-06 19:07:11 +00:00
ragge
d55d0ac4b5 Add some more IPRs for KA670. 1999-06-06 19:06:29 +00:00
ragge
db8c0c9c4c Use gencons if VAX670. 1999-06-06 19:05:21 +00:00
ragge
02637941e5 Ops, forgot this file. 1999-06-06 19:03:40 +00:00
ragge
134b65fde3 Added support for Qbus DMA. 1999-06-06 19:00:53 +00:00
ragge
64572c459a sgmap files, copied from the Alpha port and modified for vax. 1999-06-06 18:58:50 +00:00
ragge
22b5707362 Complete support for VAX 4000/300. From Michael Kukat. (michael@camaronet.de) 1999-06-06 14:23:46 +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
ragge
ad1db202f7 bus.h'ify more of the vax code. 1999-05-24 20:10:30 +00:00
ragge
0354feab8e Make this file compile again. 1999-05-23 23:06:24 +00:00
ragge
373e7cc828 Rewrite the "emulate page reference bits" code to avoid a bunch of
pv_lists traversal and unneccessary page faults.
1999-05-23 23:03:44 +00:00
ragge
539f825799 Better and more understandable way to find out CPU type. 1999-05-23 22:56:53 +00:00
ragge
6c98e1bae7 Routine to figure out which system type is booted. 1999-05-23 22:00:43 +00:00
ragge
f1fc4934a3 Use common routines to identify cpu type.
Set up a SCB to be able to handle clock interrupts in the boot program.
Now timer countdown should work on all types of vaxen.
1999-05-23 21:58:19 +00:00
ragge
b337d4d3c7 Don't detect glass tty if the machine is a workstation.
Hint from Thomas Seidmann.
1999-05-20 23:00:58 +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
christos
c596c324e3 Define __builtin_*() for lint 1999-05-03 16:30:31 +00:00
ragge
a5ce96e985 EEEK! The signal changes a while ago caused the user struct to be
on top of the "red zone" in the kernel stack. This phenomenon has
caused many unexplainable things to happen the last year.
1999-05-02 17:28:43 +00:00
ragge
fc6020e344 Real-time clock is started on the same way on all CPUs, there is no
need for a special CPU-dependent hook for this.
1999-05-01 16:13:43 +00:00
ragge
cec112a434 Make LK201 arrow keys work again. 1999-04-29 16:58:58 +00:00
thorpej
5d82bfc656 Garbage-collect VM_MBUF_SIZE. 1999-04-26 22:47:34 +00:00
simonb
5d8b1ef3e4 g/c REAL_CLISTS. 1999-04-25 02:56:26 +00:00
ragge
d9010c853c Don't try to init the L2 cache if there is no L2 cache. (KA640) 1999-04-19 14:50:57 +00:00
ragge
d80adac6a7 Only allocate QDSS memory if there is a QDSS as console.
QDSS should also work on KA650 now. (untested)
1999-04-17 17:02:49 +00:00
ragge
e9689cc9bd Use "access_type" in pmap_enter() more intelligent.
Allocate device register space bigger than the logical page size
from the kernel map, thus decreasing the pre-allocated page table memory.
1999-04-17 00:01:18 +00:00
ragge
71a57b22eb Use the pool allocator for mbufs instead of a separate submap. 1999-04-14 23:42:00 +00:00
ragge
797a7428d6 First towards use of bus.h routines on vax. Allocate DMA memory for
LANCE chip on vaxstations.
1999-04-14 23:14:45 +00:00
ragge
397795c32d Machines using KA48 must have memory mapped in, and use the same
addresses for console as KA46. From Michael Kukat.
1999-04-14 16:19:03 +00:00
pk
ca0b7aaa87 Ungarble the copyright notice. 1999-04-12 20:57:52 +00:00
pk
b13e5d1469 Quote "AS IS" as in the majority of Carnegy Mellon notices. 1999-04-12 20:38:17 +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
pk
c40eb1cd97 Fix a pasto in copyright text which has been procreating like rabbits.. 1999-04-06 20:09:18 +00:00
ragge
60d4b9c2bd A bunch of small fixes to make boot work on most VAXen. 1999-04-01 20:40:07 +00:00
ragge
978ab908d4 Slimmed install kernel with md-root. 1999-04-01 20:36:32 +00:00
thorpej
967b8c433c Don't call configure() from cpu_startup(). 1999-04-01 00:17:45 +00:00
ragge
d30ddfde0f Change console detection a little bit. 1999-03-27 15:33:46 +00:00
ragge
11f0bebf2b #define was wrong. Some .c should be .s. 1999-03-27 09:33:30 +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
ragge
dbc385934b Buggfixes for VS 4000/VLC. Basic support for VS4000/90 and MV4000/300.
From Michael Kukat.
1999-03-26 22:04:07 +00:00
ragge
c9f75bc587 Didn't reset interrupt flag after reading. From Christopher Sekiya. 1999-03-26 19:35:30 +00:00