Commit Graph

21826 Commits

Author SHA1 Message Date
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
tv c70676bb18 PR #2736: wrap the softc in #ifdef _KERNEL so userland can include this
file to get at the ioctl values without barfing on the softc
1998-03-18 21:21:48 +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
bouyer 091dafd39f Add support for reading/writing FFS in non-native byte order, conditioned
to "options FFS_EI". The superblock and inodes (without blk addr) are
byteswapped at disk read/write time, other metadatas are byteswapped
when used (as they are acceeded directly in the buffer cache).
This required the addition of a "um_flags" field to struct ufsmount.
ffs_bswap.c contains superblock and inode byteswap routines also used
by userland utilities.
1998-03-18 15:57:26 +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
kml ffb211fb9d Ensure that the TCP segment size reflects the size of TCP options
in the packet.  This fixes a bug that was resulting in extra packets
in retransmissions (the second packet would be 12 bytes long,
reflecting the RFC1323 timestamp option size).
1998-03-17 23:50:30 +00:00
chuck 1e137afb43 typo in printf 1998-03-17 22:09:32 +00:00
thorpej f80f6601b0 Fix a typo in the bus_dma changes. 1998-03-17 21:30:38 +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
marc efbd14c45d mounting a union causes VOP_WHITEOUT to be called on the upper root
vn, with a 0 component.  If the upper fs was a unionfs,
union_whiteout() would deref compnent to get a struct proc, and panic.
struct proc was only being passed to FIXUP, which never used it.  It
turns out this happened a lot.  I ripped most of the unneeded code
out, and left in the few places that really did need the proc handle.
1998-03-17 08:36:57 +00:00
mrg be92b169f8 oops, missed a bit of KNF here. 1998-03-17 07:50:08 +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
leo d2551d5b3f Use bus-dma functions. 1998-03-16 15:36:17 +00:00
gwr 1284f08847 Make this match ../libsa/dev_disk.c 1998-03-16 14:49:26 +00:00
mycroft 2397f92b38 Implement CDIOCCLOSE. 1998-03-16 04:17:53 +00:00
mycroft e834dd10e7 Add CDIOCCLOSE. 1998-03-16 04:17:23 +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
cgd 85687409e1 don't forget to set dma_arg, when using DMA functions. also, minor
spacing bogon cleanup.  Pointed out by Kazuki Sakamoto in PR 5157.
1998-03-13 16:50:07 +00:00
ragge 52fbd35380 Add support for "root on qe". 1998-03-13 11:40:19 +00:00
cgd b9eaff9db8 when considering attaching compatibility-mode channels, try a quick reset
and see if anything responds.  if nothing (that's attributable to the
PCI IDE controller) responds, then that channel either has no devices on
it or has been disabled (via a non-standard mechanism) by the BIOS.  If nothing
responds, don't map the compat.-mode interrupt or attach the wdc to that
channel, because the BIOS is likely to assign that IRQ to a different PCI
device.  If that happens, the kernel will panic because that device will
try to map the IRQ level-triggered, but the compat interrupt will have been
mapped edge-triggered.  (One possible way around this is to map the compat
interrupt edge-triggered, but it's not clear reading the spec that this
is correct or desirable.)
1998-03-12 23:34:29 +00:00
bouyer 44650d03a6 Better fix for PR 5113, per discussion with fvdl: now that the vnode locking
interface allow recusive locks, use it instead of the local hack to avoid
recursive locking.
1998-03-12 16:51:41 +00:00
augustss 09f43c63cf Update probing for GUS a little. From soren@t.dk,
closes PR kern/5148.
1998-03-12 12:28:50 +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 d214d5c30a Add vm_page_alloc1() and vm_page_free1(), which allocate/free single
VM pages, not associated with any object.
1998-03-12 06:25:52 +00:00
thorpej 1f8d640c4b Bump maxusers to 64. 1998-03-12 06:04:47 +00:00
thorpej 6e6e2d7ebf Dump maxusers to 32. 1998-03-12 06:04:31 +00:00
thorpej d9a1f8ba36 Adjust the default and low-bound maxusers, now that the pmap can deal. 1998-03-12 06:04:14 +00:00
thorpej e3bda606eb Add support for UVM. 1998-03-12 05:45:04 +00:00
thorpej dfe0937a7e If not DEBUG, use the Virtual Page Table to get the PTE for kernel mappings
in pmap_enter() and pmap_emulate_reference().
1998-03-12 02:59:22 +00:00
thorpej 30766180a3 Nuke these; they are long-since obsolete. 1998-03-12 01:28:01 +00:00
thorpej 152a4bfa60 Increase the maximum userspace address to 4TB. Leave the stack at 8G
for now, but make a note that we might want to move it down to 4G later.
1998-03-12 01:25:52 +00:00
thorpej e046925c3a Massive cleanup and partial rewrite of the NetBSD/alpha pmap module.
Major change is that page table page management has been completely
rewritten.  Page tables are now accessed via K0SEG (no more KVA space
wasted on user page tables), and a much larger user address space is
supported.

Many thanks to Chris Demetriou and Ross Harvey for helpful insight and
debugging assistance.
1998-03-12 01:24:52 +00:00
thorpej 900e1c90bd Nuke ALPHA_STSIZE and ALPHA_MAX_PTSIZE. Add macros to compute and operate
on segments mapped by L1 and L2 PTEs.
1998-03-12 01:21:21 +00:00
ragge 51964fa1e8 Standalone routine for DEQNA, written by Roar Thronaes. 1998-03-11 22:13:55 +00:00
leo dd709a7f89 Make it possible to interface to big-endian cpu's. 1998-03-11 20:57:03 +00:00
fvdl f75b1046d4 Fix flags mess-up in vget. LK_EXCLUSIVE -> 0 (even indicated in the
comment, d'oh!)
1998-03-11 15:52:02 +00:00
augustss d644f9b973 Apply cs4236 fix from rh@vip.at. Closes PR 5143. 1998-03-11 09:26:05 +00:00
chuck 927ec8b012 bug fix: when doing uvm_vnp_sync() actually skip over blocked uvn's so
that we don't try and sync them later.   should get rid of the
"uvm_vnp_sync: dying vnode on sync list" related warnings that were
occuring during a "make install."
1998-03-11 01:37:40 +00:00
chuck b87759e7f2 bug fix: bring in-line with rest of uvm: use kernel_map for object offset
rather than kmem_map.   should fix PR#5129 reported by
	Lennart Augustsson.
1998-03-10 14:53:20 +00:00
chuck 21624aaf72 uvm_dump now dumps some important pointers for debugging 1998-03-10 14:36:55 +00:00
kleink 5cf59ee9ad Move the permission check in vfs_syscalls.c::change_owner() back to
ufs_chown() again - the facility required in this context would be a
filesystem-specific super-user determination, which is not available yet.
1998-03-10 11:56:40 +00:00
kleink 071ab13ebb Move the permission check in change_owner() back to ufs_vnops::ufs_chown()
again - the facility required in this context would be a filesystem-specific
super-user determination, which is not available yet.  Also, add some
clarification to a comment.
1998-03-10 11:49:33 +00:00
leo 0dd40d6952 Bus-dma implementation for the atari. Heavily based on the i386
implementation.
1998-03-10 11:42:53 +00:00
mrg d59aba65d9 build msdosfs LKM with UVM support. pr#5014 1998-03-10 06:53:36 +00:00
scottr 20a21d162e Sync mc_rint() prototype with if_mcvar.h. (How did this
one slip by?  Forty lashes for me...)
1998-03-09 23:05:28 +00:00
thorpej 7225aae835 Move check for user-pmap-still-using-Lev1map from pmap_enter_ptpage()
to pmap_enter().
1998-03-09 22:31:23 +00:00
christos 83449d8960 - fix pcmcia_scan_cis to return:
-1 error
	 0 desired tuple not found
	 1 desired tuple found
1998-03-09 21:54:13 +00:00
christos 441bea9142 - more 3c562 magic; document that the 0x88 tuple only works in 3c562a-c
and not in d where it goes back to use the eeprom method. So we detect
  when the tuple method fails and fall back to the original method.
- even more 3c562 magic; the updated linux driver mentions that addresses
  0x??00-0x??7f only work instead of the previous...
1998-03-09 21:52:31 +00:00
thorpej daa9cfae50 Don't do the Segtabzero-for-dev-zero hack. 1998-03-09 20:43:28 +00:00
thorpej e456fc0538 Simplify/speed up pagemove() somewhat by using the Virtual Page Table. 1998-03-09 20:17:03 +00:00
thorpej 78a173bada Define VPT_INDEX(), which computes the index into the Virtual Page Table
of the PTE that maps the specified virtual address.

Thanks to Chris Demetriou and Ross Harvey for clarifying the VPT.
1998-03-09 19:57:57 +00:00
mark fd250aecdd Remove the width specifier in the podule manufacturer printf(). 1998-03-09 19:14:44 +00:00
mark eff3470d02 Make this driver build again. Needs overhaulling. 1998-03-09 19:12:59 +00:00
mark c2efbb1d9a Implement the bus_space_write_multi_1() function for the podulebus
(podulebus_wm_1()).
1998-03-09 19:11:30 +00:00
is 20251e62f9 Bug fix for the Ariadne panic: don't touch addresses outside the buffer we
got passed.
- analysis by Charles Hannum
- bugfix by Michael van Elst
- test by Thorsten Frueauf & Matthias Scheler
1998-03-09 17:00:33 +00:00
mikel a57a8d66ff let panic() call DDB, don't do it ourselves; from Nathan Williams in PR 5131 1998-03-09 06:32:51 +00:00
mikel 7d4b078022 print proper invalid IRQ, from Heiko Rupp in PR 5128 1998-03-09 06:20:26 +00:00
mrg 8106d13596 KNF. 1998-03-09 00:58:55 +00:00
is 90e5d61467 Conditionally (on defined(DRACO)) compile new DraCo keyboard code sequences.
Pointed out by Bernd Ernesti.
1998-03-08 19:59:15 +00:00
gwr 56fd5cb1ae Like INSTALL and INSTALL3X, leave out DDB.
(Can patch using the PROM if needed.)
1998-03-08 19:38:05 +00:00
gwr d7e49b6a5b Make comments refer to GENERIC3X, not GENERIC 1998-03-08 19:33:09 +00:00
gwr 9c0c7119c3 Leaner configurations for the installation media.
(Small enough to work on all machines.)
1998-03-08 19:29:40 +00:00
gwr b043198b53 Sync with sun3/machdep.c (should factor out common stuff...)
> Do the "early breakpoint" (if booted with "-d") even if we
> have only the PROM to handle it, so one can patch things.
1998-03-08 19:12:53 +00:00
gwr 7db30c0844 Do the "early breakpoint" (if booted with "-d") even if we
have only the PROM to handle it, so one can patch things.
1998-03-08 19:09:58 +00:00
gwr d342d51752 Fix comments 1998-03-08 18:56:08 +00:00
gwr 4242e2ab10 No need for default base addresses here anymore. 1998-03-08 18:54:23 +00:00
gwr 5242b3b02a Need to use an offset to map the colormap H/W now that the
config address is that of the P4 register.  Oops.
1998-03-08 18:53:17 +00:00