thorpej
0f95ffdc1d
Nuke swpctxt(); it's only used by the Mach pmap, which we will only ever
...
use for reference.
1998-03-19 06:44:25 +00:00
thorpej
003c50d1d5
Add a macro to invalidate the TLB for a given pmap/va pair. TLB
...
invalidation algorithm:
if (old mapping had PG_ASM set || pmap is active) {
TIBS(va);
if (also sync I-stream)
imb();
}
The check for "old mapping had PG_ASM" will get all kernel mappings (since
kernel mappings always have PG_ASM set).
This allows us to remove the bogus check for the kernel pmap in
active_pmap() - do so.
Use the new TLB invalidation macro whenever such action is needed.
1998-03-18 23:55:25 +00:00
thorpej
15adb17803
Eliminate the last argument from pmap_remove_mapping(); it makes its own
...
decisions about TLB invalidation.
1998-03-18 23:11:44 +00:00
thorpej
7ee4af11a7
Change active_pmap() to use the CPU mask (XXX and check for kernel pmap
...
as well, until some other changes are made). Nuke active_user_pmap(),
and change the places that used it to use active_pmap() instead (as well
as make some DIAGNOSTIC consistency checks).
1998-03-18 22:50:50 +00:00
is
ddc5b81d4f
68060 has 8k + 8k caches.
1998-03-18 22:19:40 +00:00
thorpej
605472f676
Optimize out a TLB invalidation in a common case of pmap_enter(): if
...
the PTE was previously invalid, no TLB invalidation is necessary because:
(1) when a PTE is invalidated, its entry is flushed from the
TLB
(2) the PALcode won't install an invalid PTE into the TLB.
1998-03-18 22:13:58 +00:00
matthias
e14a1c1120
Switch the pc532 to MACHINE_NEW_NONCONTIG and add machine specific bits
...
for UVM. All of this was mostly done by stealing code from the i386 port.
Prepare for stealing pmap.new.c as well.
1998-03-18 21:59:38 +00:00
thorpej
cfdf9a95ad
Keep track of which CPUs are using a pmap by setting/clearing bits
...
in the pmap's CPU mask in pmap_activate()/pmap_deactivate().
1998-03-18 21:57:03 +00:00
matthias
214f303d0e
Import from i386 because it contains a nice explanation of our MMU.
1998-03-18 21:52:02 +00:00
thorpej
43614761e3
In cpu_exit() deactivate the address space before freeing the vmspace
...
structure. We will continue to run on this context (which is the
global Lev1map at this point) right up until we switch to proc0's
context in switch_exit().
1998-03-18 20:38:07 +00:00
thorpej
87eb2cfded
Don't call pmap_deactivate() if we jumped into the middle of cpu_switch()
...
from switch_exit(), since by this time, the vmspace will have already
been deactivated and freed.
1998-03-18 20:36:13 +00:00
thorpej
b637a998f4
Add ASN housekeeping and a CPU mask to the pmap.
1998-03-18 19:39:23 +00:00
thorpej
961a955498
Move the "are we active" macros out of the header file.
1998-03-18 19:27:46 +00:00
thorpej
d37acae24c
Add a DIAGNOSTIC checks for the kernel pmap in pmap_create_lev1map()
...
and pmap_destroy_lev1map(). Correct a comment in another DIAGNOSTIC
panic.
1998-03-18 19:21:50 +00:00
thorpej
06b49b8f3e
Change a couple of assert()s to DIAGNOSTIC panics.
1998-03-18 19:12:57 +00:00
thorpej
438599b408
Correct a comment in pmap_bootstrap().
1998-03-18 19:04:42 +00:00
thorpej
56e004c995
Pass the max ASN from the HWRPB to pmap_boostrap().
1998-03-18 19:02:49 +00:00
thorpej
426d2953f5
Add a macro to test if PG_ASM (Address Space Match) is set in a PTE.
1998-03-18 19:00:15 +00:00
bouyer
9f50fca1fd
Add commented out "options FFS_EI"
1998-03-18 16:34:41 +00:00
thorpej
63dfa5e1a1
Minor cosmetic cleanup; no functional change.
1998-03-18 07:18:50 +00:00
thorpej
86d534a7d9
- Make MACHINE_NEW_NONCONTIG non-optional.
...
- Maintain two copies of the number and size of physical memory segments.
One copy, mem_clusters[], contains _all_ of physical RAM, for crash dumps.
The other copy, phys_seg_list[], starts out with all of physical RAM (and
is used to initialize mem_clusters[]), but is adjusted to be the memory
actually managed by the VM system.
- Fix computation of physmem; when support for MACHINE_NEW_NONCONTIG was
added, physmem was accidentally changed to not take into account the memory
located before the kernel, or the memory taken up by the kernel itself.
1998-03-18 07:16:10 +00:00
thorpej
02fa4134dc
- Make MACHINE_NEW_NONCONTIG non-optional.
...
- G/C some things left over from the old noncontig code.
1998-03-18 07:12:49 +00:00
thorpej
c718c9e278
- Make MACHINE_NEW_NONCONTIG non-optional.
...
- Make initialization of the message buffer a little less magic-looking.
- Maintain two copies of the number and size of physical memory segments.
One copy, mem_clusters[], contains _all_ of physical RAM, for crash dumps.
The other copy, phys_seg_list[], starts out with all of physical RAM (and
is used to initialize mem_clusters[]), but is adjusted to be the memory
actually managed by the VM system.
- Fix crash dumps with regard to multiple memory segments.
1998-03-18 07:11:22 +00:00
thorpej
c0cfbf8d7d
Make MACHINE_NEW_NONCONTIG non-optional.
1998-03-18 07:07:11 +00:00
chuck
1e137afb43
typo in printf
1998-03-17 22:09:32 +00:00
cgd
9b6471a47d
remove a few unnecessary and incorrect pointer checks.
1998-03-17 21:27:25 +00:00
chuck
6282e70846
print more info for a diagnostic panic
1998-03-17 19:15:07 +00:00
thorpej
9c1e8fc2ed
Implement the PMAP_NEW interface for UVM.
1998-03-17 05:15:24 +00:00
thorpej
1477f77353
Properly depend on the PMAP_NEW option.
1998-03-17 05:00:18 +00:00
thorpej
6bbfd3e9ff
Use pmap_kenter_pa() in _bus_dmamem_map() if PMAP_NEW.
1998-03-17 04:59:36 +00:00
thorpej
f8cff5ab23
Add a software PTE bit that indicates that a va -> pa mapping was entered
...
in the physical->virtual list.
1998-03-17 04:53:43 +00:00
gwr
19db8f3960
Add an anonymous declaration of struct pmap in pmap.h and put
...
typedef struct pmap *pmap_t there, removing the latter from
pmap3.h and pmap3x.h (so LKMs can use <vm/vm.h>).
1998-03-16 16:25:38 +00:00
leo
6356561f35
Use bus-dma functions. Also make sure that dma will not use the bounce
...
buffers (Tested & requested by Noriyuki Soda).
1998-03-16 15:48:00 +00:00
gwr
1284f08847
Make this match ../libsa/dev_disk.c
1998-03-16 14:49:26 +00:00
fair
78836acdba
make sure _SUN3_ or _SUN3X_ is defined.
1998-03-15 22:36:08 +00:00
fair
c89e1afb8b
saio.h is in ../libsa/, not <machine> and the Makefile does the right thing with -I, so fix compile error
1998-03-15 02:28:19 +00:00
mark
27ef26a468
Added csa device and scsibus attachments.
1998-03-14 17:15:52 +00:00
mark
29075565c0
Updated for new csa driver, the change to the oak driver and
...
the removal of the local ncr5380 driver.
1998-03-14 17:10:13 +00:00
mark
d15ce201d7
This local version of the ncr5380 driver is not longer needed now the
...
oak driver has been rewritten to use the MI one is /dev/ic/
1998-03-14 17:08:19 +00:00
mark
d6f6e4ee8e
Complete re-write of the Oak SCSI 1 driver to use the generic ncr5380
...
driver. Currently only supports 8 bit PIO.
1998-03-14 17:06:17 +00:00
mark
a1dd6a915a
Initial commmit of csa driver for the Cumana SCSI 1 adapter.
...
This driver uses the generic ncr5380 driver and currently only supports
8 bit PIO data transfers.
1998-03-14 17:04:30 +00:00
leo
4e466a839d
Move the bus_* functions from machdep.c to bus.c .
1998-03-13 21:05:10 +00:00
is
a830b47531
Ite keyboard map, for spanish Amiga keyboards.
...
Contributed by Inaki Saez <jisaez@sfe.indra.es>.
1998-03-13 19:28:11 +00:00
ragge
52fbd35380
Add support for "root on qe".
1998-03-13 11:40:19 +00:00
thorpej
00452b441f
Move PTE-related constants here, and make them not depend on a hard-coded
...
page size (i.e. use the one initialized from the HWRPB at boot time).
Do a bit of cleanup while here, rendering old inherited constants obsolete.
1998-03-12 07:29:21 +00:00
thorpej
4d8723232d
Garbage-collect a bunch of constants that were inherited, but are no
...
longer necessary or make sense.
1998-03-12 07:28:07 +00:00
thorpej
bd3c0e36cf
Garbage-collect this a bit.
1998-03-12 06:47:11 +00:00
thorpej
00a597fe92
Use vm_page_alloc1() and vm_page_free1() as appropriate.
1998-03-12 06:27:36 +00:00
thorpej
7bb58d92ce
Garbage-collect; vm_page_alloc1() and vm_page_free1() are now in MI code.
1998-03-12 06:26:26 +00:00
thorpej
1f8d640c4b
Bump maxusers to 64.
1998-03-12 06:04:47 +00:00