Commit Graph

1155 Commits

Author SHA1 Message Date
thorpej a8f80ad4fd Fix a bogosity apparently inherited from when the Utah 4.3BSD code base
was converted to use Mach VM for Net2/4.4BSD.  The user segment table
pointer was originally stored in the PCB.  When Mach VM came along,
however, it was also stored in the pmap, and loaded into the PCB in
pmap_activate().  pmap_activate() would then note that the PCB's USTP
was now in sync with the pmap's USTP, and the low-level context switch
code would use the value from the PCB.

However, pmap_activate() would also load the hardware MMU context if
the pmap was the current pmap (or, in the case where pmaps can be shared,
such as in NetBSD, if the proc was the current proc).  The low-level
context switch code would then reload the hardware _again_ using the
USTP from the PCB.

However, the optimization of not calling pmap_activate() if "stchanged"
was false ended up causing some processes to use stale USTP values from
the PCB when the low-level context switch code reloaded the hardware!
This was noticed by using a real vfork(2) (which worked for some time
before failing, surprisingly!)

Since I'm hard pressed to find any real optimization here (since the
hardware was always reloaded once, sometimes twice!), the code now always
calls pmap_activate(), which uses the correct USTP value (the one in the
pmap).  The PCB's USTP is now ignored, and should eventually be g/c'd.

Another optimization can actually be performed, and I have added a comment
describing what it is, but have not yet implemented it.

Also note that most of the loadustp() functions where actually incomplete.
This has been corrected.  These functions should probably be split up into
MMU-specific operations, and called indirectly, rather than doing constant
run-time decision making based on values that will never change during the
course of a boot's lifetime.
1998-01-05 23:16:21 +00:00
perry 3625dbcd48 RCSID Police. 1998-01-05 21:34:56 +00:00
perry b46484bb8a RCSID Police. 1998-01-05 20:51:25 +00:00
thorpej b9f1b716f3 Now that all ports have pmap_activate(), and it has an identical interface,
prototype it in <vm/pmap.h>
1998-01-03 01:12:59 +00:00
thorpej dd966fca05 Change an argument name to PMAP_ACTIVATE() to more accurately describe the
semantics of the argument.
1998-01-01 20:05:23 +00:00
thorpej 287b63b321 - Make pmap_activate() and pmap_deactivate() take a struct proc *.
- Define active_user_pmap() and use it in the appropriate places (from hp300
  port).
1998-01-01 19:52:50 +00:00
perry 589a5e2c79 patch from is -- I don't know what it does, but he says it's critical. 1997-12-20 21:13:13 +00:00
tv 0a558b3f1f Standardize COMPAT_SUNOS -- remove all references to
sunos_exec_aout_makecmds() in machdep.c for various architectures and put
it in exec_conf.c like the other emulations; rename exec.h to
sunos_exec.h.
1997-12-04 15:33:17 +00:00
kleink c87631771e Add COMPAT_13. 1997-12-01 14:52:51 +00:00
mhitch c9d1ca0df4 delay() is using calculated timing, so correct the delay during polled
SCSI wait to get a more accurate timeout.
1997-11-27 22:43:44 +00:00
is a90ace971a Workaround for the "xanim volume setting problem":
We play mono samples on all 4 channels.
However, we get the volume settings for mono samples as a symmetic two-channel
setting... the other two channels used to stay at max volume...
I believe that something else is wrong here, but dont want to change MI
code (which in turn influences a couple of MD driver) thus late in the release
cycle.
1997-11-24 21:00:50 +00:00
veego 0fe37675f7 Ups, forget a 'i'. 1997-11-23 23:26:03 +00:00
lukem 6c986561ee * add commented out DDB_HISTORY_SIZE=100 if DDB exists in config file
* fix up use of 'options<SPACE><TAB>'
1997-11-17 01:57:23 +00:00
is ad4c422ef9 Oops. Somehow the code to actually config_find the BBC on A1200s wasn't
committed.
1997-11-13 23:03:10 +00:00
thorpej ce4c770f88 Make sure CPP, AR, AS, and RANLIB are defined. 1997-11-12 23:11:50 +00:00
thorpej a421995756 Define LORDER, NM, and TSORT here, like we do the rest of the tools. 1997-11-12 22:25:31 +00:00
is 9360bfcc81 Remove remnants from ISA com console attachment code, which caused, due
to missing variable initialization, a panic on the DraCo.
1997-11-10 22:29:03 +00:00
is ff1fd132f3 Forgot this yestereve: s/CV64CONSOLE/CV3DCONSOLE/ 1997-11-10 12:17:20 +00:00
is f31e12d69d - recognize CV3D in Zorro-II mode.
- use board address space > 4 MB, instead of iszthreepa(), to detect Z3-mode
  boards. We dont want the bus, but want the address configuration.
- s/CV64CONSOLE/CV3DCONSOLE/
- s/cv3d_zorroIII == 1/cv3d_zorroIII/ and s/cv3d_zorroIII != 1/!cv3d_zorroIII/
1997-11-09 23:30:47 +00:00
chopps 7b80c0d8fa make GENERIC more generic 1997-11-02 18:47:02 +00:00
lukem 3e8e744696 getopt returns -1 not EOF 1997-11-01 06:49:14 +00:00
veego d2ec787a03 Remove the unsuported options COMPAT_HPUX.
Enable COMAPT_09 and COMPAT_10 for old binaries.
Enable the console options for the CyberVision 64/3D and fix a typo for
ite7.
1997-10-29 21:16:48 +00:00
veego 6352bbdb7c The Console driver works now.
Added some fixes for Zorro2 mode, but keep it still disabled.
1997-10-29 20:00:47 +00:00
is c3feaf6bf5 Make splserial == spltty, for now. This should be revisited after the
release.
1997-10-27 22:13:25 +00:00
veego 2d11975bbd Include <bsd.subdir.mk> to build SUBDIRS. 1997-10-27 00:24:54 +00:00
is a16fd7d74e Make these compile after m68k/m68k.h 1.4->1.5. 1997-10-26 21:41:34 +00:00
mhitch 5b2fd76fd3 Don't rely on fixed padding to longword align the buffer used for non-aligned
transfers - compute aligned address when interface is attached.  Fixes PR#4258.
1997-10-24 01:50:03 +00:00
mhitch 9bec32eefe Check manufacturer and product codes correctly. The Blizzard 2060 driver
was trying to configure on a Cyberstorm MKI SCSI.
1997-10-24 01:43:49 +00:00
is 6c04d467ec Make l different from |.
Downgrades PR 1998 from software bug to change request.
1997-10-21 12:29:30 +00:00
is 25d10d4369 zbus.c 1997-10-19 21:22:19 +00:00
veego f08eca2b03 Add CyberVision 64/3D support. 1997-10-19 19:20:30 +00:00
veego 7017046979 New unit number for the CyberVision 64/3D. 1997-10-19 19:08:00 +00:00
veego 09b9eff341 Add an entry for the CyberVison 64/3D to the aconftab and to the
preconftab list.
1997-10-19 19:07:08 +00:00
veego c9252fa879 First version of the CyberVision 3D driver. This driver is based on
the CyberVision64 driver. Modified by Tobias Abt with some bugfixes
from Bernd Ernesti.
ZorroII is at the moment not supported and there is a small problem
with the Console driver where you just get a black screen, but the
system boots and you can use X11 without a problem.
1997-10-19 18:55:21 +00:00
augustss e7029fc0da Make the audio API (almost) SunOS compatible.
The changes is to allow some limited mixer manipulation through
the audio device (instead of the mixer device).
This rendered 4 methods in audio_hw_if unused so garbage collect these.
1997-10-19 07:41:33 +00:00
is fa78c4ba06 Driver for the VMC HyperCom3/zbus and the VMC HyperCom4.
lpt on HyperCom3 isn't supported yet.
1997-10-18 23:31:32 +00:00
is 84a59e77b2 Stopgap measure to handle EXTER interupts for the DraCo. Maybe this should
be handled by the locore.s code like for Amigas, but DraCos dont have
necessarily a CIA B.
1997-10-18 23:18:40 +00:00
is 61f82620c4 Part of this is voodoo from the sparc/machdep.c, part guesswork. 1997-10-18 10:50:50 +00:00
is d3baeaf812 Stopgap for splaudio(), needed by the Melody driver.
This will be replaced soon by something similar to the spltty stuff.
1997-10-17 19:39:34 +00:00
is 11446b9b6e TMS320AV110 (mpeg layer 2 decoder chip) and ZBUS Melody board, which uses it.
No optionboards yet for Melody, only audio driver.
MPEG data types for audio.c
1997-10-16 23:58:10 +00:00
christos e42293ca28 fix chrtoblk declaration 1997-10-16 23:37:34 +00:00
is 57ce3eaaf4 Move zbus attachment to the end, so that motherboard devices don't "jump"
if zbus devices of the same class are added.
1997-10-16 21:39:10 +00:00
thorpej 8bae901f73 Adjust for new home of "com" driver. 1997-10-16 01:06:37 +00:00
thorpej 19b8a62d74 Garbage-collect "com" driver declaration. 1997-10-16 01:02:56 +00:00
explorer 80513cb5ae o Make usage of /dev/random dependant on
pseudo-device   rnd                     # /dev/random and in-kernel generator
  in config files.

o Add declaration to all architectures.

o Clean up copyright message in rnd.c, rnd.h, and rndpool.c to include
  that this code is derived in part from Ted Tyso's linux code.
1997-10-13 00:46:08 +00:00
mhitch 31508593d3 Oops, wrong file was committed. Get the right one this time. 1997-10-12 19:32:12 +00:00
mhitch 7c5af2d5da Fix typo from DIOCGDEFLABEL implementation. 1997-10-11 16:13:19 +00:00
mycroft 3081c6f8cf AudioC[A-Z] -> AudioC[a-z]
AudioElinear -> AudioEslinear
1997-10-11 12:43:51 +00:00
mycroft a7aef46287 Use m68k/Makefile.inc. 1997-10-11 09:11:17 +00:00
mycroft 5c8d588138 Nuke NOOBJ. 1997-10-11 08:44:42 +00:00
mycroft acf0e569a5 Update all the tags goo, and use bsd.subdir.mk. 1997-10-11 08:42:02 +00:00
scottr 017e6c7f10 Address PR 4120 by synchronizing v{,un}mapbuf() with the i386 vm_machdep.c,
v 1.27, pulling in changes made there by Charles Hannum.  Also, incorporate
a few tweaks made by Gordon W. Ross in the sun3 version of this change.
1997-10-11 06:38:45 +00:00
mhitch 76b5a9517f The Blizzard-IV SCSI driver is now separate from the Blizzard-II. 1997-10-10 04:56:09 +00:00
mhitch 06ff9502c2 Add separate driver frontend for the Blizzard-IV; the differences with
the Blizzard-II are more extensive than I orginally thought.
1997-10-10 04:53:32 +00:00
is 9f6d6708f4 Help crosscompiling, by as -> $(AS). Define AS?= as in the calling
Makefile.$(ARCH)es. Will hopefully fix the (remaining) part or pr4010.
1997-10-09 20:40:18 +00:00
jtc c8f77c0b8b Fix tipo inherited from old version of TNF copyright template. 1997-10-09 07:25:45 +00:00
thorpej e3834cc351 Implement DIOCGDEFLABEL. 1997-10-08 23:37:50 +00:00
is e183d29c61 Oops, I forgot this when doing the recent 060sp make system change. 1997-10-07 19:23:37 +00:00
veego d39db07047 Update the 'depend on CPU configuration' section for the new or updated
ncr53c9x frontends.
1997-10-05 17:19:35 +00:00
veego b59e0fd6a7 Unused files after the sfas driver is replaced by the MI ncr53c9x driver. 1997-10-05 17:12:44 +00:00
thorpej 92a347c574 Copyright assigned to The NetBSD Foundation. 1997-10-04 09:38:47 +00:00
mhitch 66e9e9018c Replace Fastlane and Blizzard SCSI driver frontends, using the machine
independent ncr53c9x driver.  Add 12x0-IV support to the 1230 driver, and
add Cyberstorm SCSI I and II drivers.
1997-10-04 04:01:17 +00:00
mhitch 3d83dee874 Use a global variable to hold the current speed of the internal serial port.
This will be used by certain SCSI drivers to limit the length of DMA transfers
when the serial port is running at higher speeds.  GVP and Phase5 DMA
interfers significantly with CPU execution, and significantly increases
receive buffer overruns (silo overflow).  Reducing the DMA transfer length
can reduce the overruns.
1997-10-04 03:59:36 +00:00
lukem 7d508b124f define SIZE?=size, and use ${SIZE} instead of size. makes cross
compilation easier
1997-10-03 07:17:00 +00:00
christos 3996b53189 PR/4162: Chris Jones: make cleandir does not work properly; it does not
remove the object files and the .depend file in the kernel build directory.
1997-09-30 22:39:49 +00:00
is ac8e08ea4a When changing btst #7,_machineid+3 to cmpl #CPU_68060,_cputype, I forgot to
reverse the conditional branches. "We apologize for the inconvenience."
1997-09-29 20:52:05 +00:00
is d5e867bb03 Build the 68060 support package in the kernel build dir.
XXX PCB_ONFAULT is still hardwired to 64 in netbsd060sp.S.
1997-09-28 20:49:56 +00:00
is 3ad599d701 First part of splitting lpt.c, and the NetBSD/Amiga "supio" frontend. Needs
a bit more work to allow an ISA frontend.
1997-09-27 22:44:11 +00:00
veego 8a3aef8a1a Wait for a keypress after the system is halted and reboot after a key is
pressed.
1997-09-27 17:19:38 +00:00
is 663ab6e406 Most of _machineid->cputype. 1997-09-27 15:52:54 +00:00
is b0f51853ef conf.h: declare com instead of drcom.
conf.c: remove com declarations.
1997-09-27 10:38:10 +00:00
is 4fbbe844dc Locore.s cleanup round 1:
- MIT syntax to Motorola syntax moveml register lists (for better readability)
- comment alignment
- remove commented out debug or alternate code from early DraCo support
  development.
(I wanted to do this stuff for a long time, but always had "more important"
things to do.)
1997-09-24 19:49:08 +00:00
is 970af214ab Deal with HUPCL, closing (but in a different way than proposed) PR 1010. 1997-09-21 17:21:24 +00:00
leo c5ba7a3102 Move the definition of MSGBUFSIZE up to the machine-arch level if
possible. Pointed out by Bernd Ernesti.
1997-09-20 12:06:37 +00:00
leo d4713d24c2 Implement the kernel part of pr-1891. This allows for a more flexible sized
msgbuf. Note that old 'dmesg' and 'syslogd' binaries will continue running,
though old 'dmesg' binaries will output a few bytes of junk at the start of
the buffer, and will miss a few bytes at the end of the buffer.
1997-09-19 13:52:37 +00:00
mhitch 24cbd68d21 Enable the 800x600 Super72 display mode in the generic kernel. 1997-09-19 03:30:41 +00:00
mhitch a07bb333b1 Add an 800x600 Super72 mode; started by Neil Clark and finished by me.
NOTE: due to hardware requirement of the AGA chipset, the framebuffer width
has to be a multiple of 64 bits.  An 800x600 display will use a memory width
of 832 bits, which the current X server can't handle.  To get a usable
display, the width needs to be 832 or 768.
1997-09-19 03:27:10 +00:00
mhitch c95e55b9ec Read the received data register before clearing the RBF interrupt. Clearing
RBF appears to also clear the OVRUN bit in the receive data, resulting in
the loss of of overflow status.
1997-09-18 03:53:12 +00:00
mhitch 0d05b5c280 Use the buffer length passed as a parameter to vmapbuf() and vunmapbuf()
instead of bp->b_bcount.  The I/O operation may have changed bp->b_bcount,
and not all of the kernel virtual memory will be freed.  This will result
in the VM system putting pages back on the free list which are still
mapped.   This may cause a deadlock later trying to enter pages into
the kernel pmap.  [See PR#4120 for more details.]
1997-09-18 03:38:31 +00:00
is 718fb97e11 Support for the upcoming NetBSD/Amiga Hypercom driver family:
* support chip clocks != COM_FREQ, by introducing sc_frequency (for the
  mainline code) and adding a frequency parameter right after the rate
  parameter to comcnattach() and com_kgdb_attach().
- Make com_isa and com_multi initialize sc_frequency to COM_FREQ.
- Make i386/machdep.c and alpha/dec_xxx.c call com*attach() with the freq.
  parameter.
* supio_attach_args get two more fields: a sc_ipl and a sc_arg, both ints.
- com_supio uses the first for interupt establishment (all childs will, as
  soon as they exist) and the 2nd for sc_frequency.
- drsupio passes sc_ipl alway as 5, and for the "com"s, sc_arg as 16*115200
- hyper will pass sc_ipl as 6, and sc_arg as 16 * 460800
1997-09-16 20:34:23 +00:00
is dc914f2ee7 Only create verbose delay loop calibration message for DIAGNOSTIC kernels. 1997-09-15 22:17:55 +00:00
is 33d1f0d190 A few more boards. This really should be split into a seperate file, only
active if the kernel has ZBUS_VERBOSE similar to PCI, EISA, (podulebus?),
but I don't have that stuff ready yet.
1997-09-15 21:37:35 +00:00
mycroft a9155c5057 Set the status word as well, and remove a bogus comment. 1997-09-12 10:29:20 +00:00
mycroft 30073771b6 Move definition of FPCOPROC into the Makefile, since it's always required. 1997-09-12 08:13:26 +00:00
mycroft e9f392b0a9 Eliminate some uses of FPCOPROC. 1997-09-12 08:08:50 +00:00
mycroft 49f0bbb105 Nuke Locore.c. It's way too out of date to be useful at this point. 1997-09-12 07:59:20 +00:00
mycroft 982f24e698 Always initialize all registers in setregs(). 1997-09-12 07:00:30 +00:00
mycroft 16a8787248 Fix execve(2) and *setregs() interfaces so emulations can set registers in a
more correct way.  (See tech-kern.)
1997-09-11 23:01:44 +00:00
chopps 44f6ba6c55 VM_MAX_ADDRESS is the user max address -- adjust 1997-09-11 14:01:07 +00:00
veego b8b28812be Add missing keypad entry for '+' and correct a comment. From pr#3893. 1997-09-06 12:41:10 +00:00
is 7a5cd3368f We may not open the 'a' partition here, as there are Amiga partition tables
without an 'a' partition. We open the RAW_PART partition instead.
Without this, a boot partition on the 'b' or later partition of such a disk
won't be found.
1997-08-31 16:33:13 +00:00
is e7c8f94f9d Yet another BROKEN removed, and another small cleanup. 1997-08-27 20:41:30 +00:00
is 1dc1561ebc Rename the _probe function to _match, and remove the
#ifdef _BROKEN_INDIRECT_CONFIG which we dont need here.
Thanks to Bernd Ernesti for pointing this out.
1997-08-27 20:35:46 +00:00
is 2f824e16e8 Oops, forgot this in last kilocommit:
Attach com at drsupio, drsupio at mainbus, and make
the ttyC0 stuff refer to the com driver.
1997-08-27 20:18:19 +00:00
is 0564e80e3e This is no longer needed. 1997-08-27 19:37:30 +00:00
is f7c9a70a19 Define supio, a direct bus with a single locator, the port number. This
is for "standard PC i/o stuff" at known and constant locations, e.g. when
multi-io chips are used on non-ISA mainboards.
Implement drsupio.c, the DraCo version of this.
Attach the generic com.c to this bus.
Remove the old drcom hack.
1997-08-27 19:32:47 +00:00
is 45a8ec2d22 Amiga port bus.h. Currenlty, only the _1 functions are implemented. 1997-08-27 18:52:57 +00:00
is 2e45e81622 machine/intr.h for the Amiga port. Mostly a wrapper around other includes. 1997-08-27 18:41:25 +00:00
is 47e8019573 Add __GENERIC_SOFT_INTERRUPTS implementation.
Currently, this is only kind of a wrapper around the *_sicallback() function
family. This way, we'll only break the new driver if it doesn't work.
After more drivers are converted, we'll change it to be the other way round.
1997-08-27 18:31:14 +00:00
bouyer 6f3bab1f59 Merge scsipi branch in the mainline. This add support for ATAPI devices
(currently only CD-ROM drives on i386). The sys/dev/scsipi system provides 2
busses to which devices can attach (scsibus and atapibus). This needed to
change some include files and structure names in the low level scsi drivers.
1997-08-27 11:22:52 +00:00