Commit Graph

1416 Commits

Author SHA1 Message Date
cl
ea5ec0212d add kernel part of concurrency support for SA on MP systems
- move per VP data into struct sadata_vp referenced from l->l_savp
  * VP id
  * lock on VP data
  * LWP on VP
  * recently blocked LWP on VP
  * queue of LWPs woken which ran on this VP before sleep
  * faultaddr
  * LWP cache for upcalls
  * upcall queue
- add current concurrency and requested concurrency variables
- make process exit run LWP on all VPs
- make signal delivery consider all VPs
- make timer events consider all VPs
- add sa_newsavp to allocate new sadata_vp structure
- add sa_increaseconcurrency to prepare new VP
- make sys_sa_setconcurrency request new VP or wakeup idle VP
- make sa_yield lower current concurrency
- set sa_cpu = VP id in upcalls
- maintain cached LWPs per VP
2004-03-14 01:08:47 +00:00
bjh21
e4247411fe Rename wsqms(4) to qms(4), since the "ws" is redundant now. While I'm here,
bundle it all into a single file, qms.c, replacing wsqms.c, wsqms_iomd.c,
and wsqmsvar.h.
2004-03-13 19:27:40 +00:00
bjh21
0d2fbdc9ee Add part of iomdkbc(4) that I missed last time. 2004-03-13 19:23:36 +00:00
bjh21
b8d9d01177 Rename arch/acorn32/dev/wskbdmap_mfii.c to arch/acorn32/dev/wskbdmap_mfii_rpc.c
to avoid config(8) confusion with dev/pckbport/wskbdmap_mfii.c.
2004-03-13 19:20:50 +00:00
bjh21
e63a7e9215 Remove support for freezing console on mouse-button presses, since that was
dependent on the old qms(4) driver, which is gone.
2004-03-13 18:48:26 +00:00
bjh21
497fe37693 Remove busmouse(4) drivers. Everyone should be using wsmouse(4) these days. 2004-03-13 18:29:34 +00:00
bjh21
db7410bc83 Remove pointless comments 2004-03-13 18:06:41 +00:00
bjh21
f869418166 Add support for using the MI pckbd and pms drivers with the IOMD keyboard
and mouse ports, with a new driver, iomdkbc(4).
2004-03-13 17:52:02 +00:00
bjh21
dff5222d3a Abstract the interface between pckbc(4), and the pckbd(4) and pms(4)
drivers that attach to it.  This allows for other host interface chips
that use the same keyboards and mice, such as the ones in the ARM
IOMD20, ARM7500, and SA-1111.  The PC-compatible driver is still
called pckbc(4), and the new abstraction layer is "pckbport", so the
child devices have moved from sys/dev/pckbc to sys/dev/pckbport, which
also contains some code shared between all host controllers.  To avoid
incompatibility, pckbdreg.h is still installed in
/usr/include/dev/pckbc.

In theory, this shouldn't cause any behavioural changes in the drivers
concerned.  Thy just use rather more function pointers than before.  Tested
on i386 and (with a new host driver) acorn32.  Compiled on several other
affected architectures.
2004-03-13 17:31:33 +00:00
scw
c29e82af70 Must Test Before Committing... 2004-02-27 18:55:19 +00:00
wiz
f05e6f1a3a occured -> occurred. From Peter Postma. 2004-02-24 15:12:51 +00:00
jdolecek
af46922ada add compat hook in check for zerodev; use this hook to recognize
the old ARM /dev/zero minor mapping #ifdef COMPAT_16
fixes second part of PR kern/23581 by Richard Earnshaw
2004-02-14 12:20:14 +00:00
bsh
ba2cd9f97b add lcd and spi 2004-02-14 07:20:20 +00:00
bsh
126ae44aa1 SPI support for Samsung S3C2410.
spi driver doesn't provide any actual I/O, and attaches child drivers
for devices that hooked to SPI ports.
2004-02-14 07:19:51 +00:00
bsh
0eedb024e6 Support S3C24X0's on-chip LCD controller.
lcd driver can be configured with or without wsdisplay.
With wsdisplay, it supports text mode using rasops in 8bpp or 16bpp.
Without it, users only can mmap(2) the framebuffer.

XXX: 1-, 2-, 4-, or 24- bpp mode is not supported yet.
XXX: S3C24x0's LCD controller can have virtual screen which is bigger
     than actual LCD panel. Our wsdisplay framework doesn't have
     features to utilize it.
2004-02-14 07:12:50 +00:00
scw
a402937c23 Avoid using two 'GPIO' bits of the interrupt mask to signify soft
interrupts; some boards actually use those GPIO pins as external
interrupt sources.

Instead, assign soft interrupt bits to on-chip sources which are
not used by the IXP425 port.
2004-02-13 15:49:02 +00:00
wiz
d20841bb64 Uppercase CPU, plural is CPUs. 2004-02-13 11:36:08 +00:00
bsh
03e6ee6d67 add register definitions for LCD controller, AD converter, and SPI. 2004-02-12 03:52:46 +00:00
bsh
da6312579b be consistent with #define<TAB> 2004-02-12 03:47:29 +00:00
bjh21
62c2e676ba Increase the attach priority of opms(4) and kbd(4) (also rpckbd(4), but that
slipped into a previous commit) so that they can override the forthcoming
iomdkbc(4) if necessary.
2004-02-08 13:43:52 +00:00
bjh21
11ab4a17ac Attach rpckbd(4) and kbd(4) in the same place, so that they can't both end
up attached at the same time, and so that they can both prevent the forthcoming
iomdkbc(4) attaching to the keyboard slot.
[ file missed in last commit ]
2004-02-08 13:41:53 +00:00
bjh21
165d7132e7 Attach rpckbd(4) and kbd(4) in the same place, so that only one of them can
attach at a time, and so that either of them can prevent the forthcoming
iomdkbd(4) attaching to the keyboard slot.
2004-02-08 13:39:21 +00:00
junyoung
9a410f9ed0 Rename es_check in struct execsw to es_makecmds. 2004-02-06 08:02:58 +00:00
reinoud
91f1fdd2b7 The `beep' device has been removed but aparently this small reference was
obmitted resulting in a compilation failure in the autobuilds.

It effectively removes the now redundant reference to "beep.h" and removes
an associated prototype that wasn't used.
2004-01-29 16:43:42 +00:00
rearnsha
8e61df4a12 Switch the ARM9 to using the Dcache in write-back mode. Avoid an
unknown problem with dcache_inv_range by using a wbinv for now
(similarly for ARM10).

When setting the ARM9 system control register, use the computed
cpuctrlmask value (not 0xffffffff) so that the clocking-mode bits are
not reset to FastBus mode (which isn't very fast).
2004-01-26 15:54:16 +00:00
scw
b9992109f0 Make it possible to call badaddr_read() from interrupt context, even
if curpcb is NULL, by borrowing lwp0's pcb if necessary (needed to
be able to set pcb_onfault).

Problem reported by Allen Briggs.
2004-01-26 10:45:24 +00:00
bjh21
ed0dd3010c Remove spurious inclusion of obsolete <arch/arm/iomd/waveform.h>. 2004-01-25 14:46:44 +00:00
bjh21
d7db239545 Remove another mention of "beep". 2004-01-25 13:52:00 +00:00
bjh21
239eec55fd Remove mentions of "beep" driver. 2004-01-25 13:51:29 +00:00
bjh21
5efebff42a Remove the "beep" driver. Its function is largely subsumed by a
combination of audio(4), wskbd(4) and audiobell().  Proposed a week
ago on port-acorn32 with no reaction whatever.
2004-01-25 13:46:59 +00:00
skrll
3dfd94284a Leave errno as zero when we SIGSEGV. This means my CATS now passes
regress/lib/libc/siginfo/sigsegv

OK'd by christos.
2004-01-21 15:39:21 +00:00
martin
da4e67accc Do not export __HAVE_RAS to userland. Applications are supposed to try
rasctl() and detect failure with EOPNOTSUPP.
2004-01-18 18:23:19 +00:00
bjh21
3bcd444b32 vidcaudio_set_params() must return a value (oops!). 2004-01-18 14:42:09 +00:00
scw
ee92d9d4d2 Fix ARM_VECTORS_LOW fallout caused by the recent reaper removal.
Just before removing the vector page mapping, switch to the kernel
pmap's L1/vector page mapping so as not to pull the rug out from
under ourselves.

To prevent the stale L1/vector page mapping from being restored by
cpu_switch, replace the relevant fields of the dying process' pcb
with those of lwp0's pcb.
2004-01-18 13:03:50 +00:00
bjh21
8078bc62c9 Change the control flow in vidcaudio_set_params() so as to make the indentation
less hairy.
2004-01-17 23:41:20 +00:00
bjh21
5510e882f1 Adjust vt(4) (WHICH MUST DIE) to the new way of handling bells on
NetBSD/acorn32.
2004-01-17 22:52:42 +00:00
bjh21
13d0914a93 Use audiobell for system beeps on acorn32 when vidcaudio(4) is compiled in.
Remove the vestigal sysbeep device and replace it with the same kind of
mechanism that pckbd(4) uses to find the bell, which is just as ugly, but
more standard.  Adapt beep(4) to the new world (though I'm not sure it
deserves to live).
2004-01-17 21:49:24 +00:00
bjh21
e095fd5eda More light KNF. 2004-01-17 21:25:25 +00:00
bjh21
2ae7606f01 Light KNF. 2004-01-17 21:24:29 +00:00
bjh21
e37ee89427 Don't include option headers we're not going to use. 2004-01-17 21:16:13 +00:00
bjh21
b727d5da17 KNF. 2004-01-17 21:14:46 +00:00
bjh21
8e0990aadd Un-__P. 2004-01-17 21:05:40 +00:00
scw
dcb1b313f5 Use __insn_barrier() to prevent the compiler reordering splx/splraise
relative to the code they're supposed to protect.
2004-01-12 10:25:06 +00:00
bjh21
75080c1305 The VIDC20 data sheet doesn't define the polarity of the sign bit for
8-bit VIDC audio.  Both Richard Earnshaw and I had guessed that a set
bit was positive (the same as normal mu-law), but the AudioWorks
manual, and Sound_SoundLog on RISC OS, seem to disagree.  Change
MULAW_TO_VIDC to match Sound_SoundLog, since the latter is probably
definitive.
2004-01-10 22:33:24 +00:00
jdolecek
089abdad44 Rearrange process exit path to avoid need to free resources from different
process context ('reaper').

From within the exiting process context:
* deactivate pmap and free vmspace while we can still block
* introduce MD cpu_lwp_free() - this cleans all MD-specific context (such
  as FPU state), and is the last potentially blocking operation;
  all of cpu_wait(), and most of cpu_exit(), is now folded into cpu_lwp_free()
* process is now immediatelly marked as zombie and made available for pickup
  by parent; the remaining last lwp continues the exit as fully detached
* MI (rather than MD) code bumps uvmexp.swtch, cpu_exit() is now same
  for both 'process' and 'lwp' exit

uvm_lwp_exit() is modified to never block; the u-area memory is now
always just linked to the list of available u-areas. Introduce (blocking)
uvm_uarea_drain(), which is called to release the excessive u-area memory;
this is called by parent within wait4(), or by pagedaemon on memory shortage.
uvm_uarea_free() is now private function within uvm_glue.c.

MD process/lwp exit code now always calls lwp_exit2() immediatelly after
switching away from the exiting lwp.

g/c now unneeded routines and variables, including the reaper kernel thread
2004-01-04 11:33:29 +00:00
chris
190f92bccf Currently the eb7500atx doesn't have a cmos_read function, however it also
won't use the RPC600_IOMD_ID code path, so disable that code path for the
eb7500atx.
2004-01-03 14:53:16 +00:00
chris
48afc0a2fc Add conf framework support for riscstation. Add a rsbus as this allows
acccesses with addresses shifted by the amount specified in the cookie.

Also make the inclusion of the wscons file the resposibility of whoever
includes files.iomd.  (found while attempting to checking riscstation
support into evbarm)
2004-01-03 14:46:17 +00:00
chris
d69e128c9d On a riscstation leave the iobase as requested, don't add IO_CONF_BASE to
it.
2004-01-03 14:42:12 +00:00
chris
078c5853f3 When adding a new interrupt handler to the iomd, turn off interrupts so
we don't run the risk of an interrupt happening while things are being
updated.
2004-01-03 13:11:47 +00:00
bjh21
2becc547c7 The lmcaudio driver was only ever used on the RC7500, which we don't support
these days.  Let the CVS history be its only memorial.
2004-01-01 19:12:13 +00:00