Commit Graph

32618 Commits

Author SHA1 Message Date
matt
7f8f67eaed Re-enable PTE_EXEC. PTE_EXEC is now also cleared in pmap_zero_page,
pmap_copy_page, and pmap_clear_modify (pmap_clear_bit).  Remove #ifdef
MULTIPROCESSOR since the cache instructions operate on all caches on
all processors.
2002-08-14 14:25:15 +00:00
aymeric
c8bc51526f Remove the key repeating feature.
It is asking for trouble and is useless for the X server.
We can add it back later if need be.
2002-08-14 13:02:58 +00:00
shin
f14283b93c .cvsignore should not be used. 2002-08-14 12:44:33 +00:00
simonb
bff11b16da Remove the "comfound < 2" bogosity. 2002-08-14 12:31:38 +00:00
simonb
2eded71179 Remove an unused global variable (that was marked with an XXX!). 2002-08-14 12:29:50 +00:00
thorpej
da5ef20b1a Byte-swapping optimizations, enabled if compiling with GCC:
* Byte-swap 16-bit and 32-bit constants at compile-time.
* Inline 16-bit and 32-bit variable byte-swaps.  These take 3 and 4
  insns, respectively, and inlining saves the minimum 6 cycle penalty
  to call/return from the byte swap function.
2002-08-13 22:41:36 +00:00
fredette
0e92be5ea7 Converted the fault handlers for the PA7100LC and up to handle
mappings not marked TLB_NO_RW_ALIAS.
2002-08-13 20:29:52 +00:00
leo
0ec1f59ab6 For some reason, things stopped working without explicitely adding a rule
to link the bootblocks... Found and fix provided by Thomas Gerner.
2002-08-13 20:06:32 +00:00
aymeric
bb022a80b7 add (commented out) option WSDISPLAY_COMPAT_RAWKBD 2002-08-13 15:03:30 +00:00
aymeric
9e10bd8738 akbd's now have a raw mode, and implement the WSKBDIO_SETMODE ioctl.
Adapted from OpenBSD.
2002-08-13 15:00:42 +00:00
manu
5bd5c7bca2 Guard a variable declaration by #if so that it is not declared if it is not
used.
2002-08-13 09:46:21 +00:00
simonb
2f766ff3c2 Use the base space tag from the attach args, don't recreate it all the
time.
Clean up some include files.
2002-08-13 06:15:15 +00:00
simonb
b60f6d979d Remove old debugging printf(). 2002-08-13 05:52:11 +00:00
simonb
f0302072f1 Use "ibm4xx" instead of "galaxy"; galaxy was an early code name for the
405GP.
2002-08-13 05:43:24 +00:00
itojun
fe3d104e60 minor KNF 2002-08-13 05:33:51 +00:00
simonb
42dede3769 Move 4xx devices to their own config include file so they can be used
elsewhere.
2002-08-13 05:29:25 +00:00
simonb
9e00d2d7f9 Fix include file location botch in previous. 2002-08-13 05:25:39 +00:00
simonb
88682188fb Use the correct <foo>_attach_args; spotted by Jason Thorpe. 2002-08-13 05:23:33 +00:00
petrov
e36bdc8829 cpu_fork: clear PSTATE_PEF for a child process, reviewed by thorpej 2002-08-13 05:08:19 +00:00
simonb
497d6762cf Split out device register definitions to their own files as the are
common across many of the 4xx parts.  Leaves ibm405gp.h with device
address information specific to the 405GP CPU.  Now allows opb.c to
support multiple 4xx CPU types.
2002-08-13 04:57:48 +00:00
thorpej
98d6ec0b89 Add the brutal hack that allows us to limp along using the read/write
cache line allocation policy on XScale CPUs: in pmap_enter(), if the
pmap is the kernel pmap, clear the X-bit in the PTE, thus disabling
read/write-allocate for managed kernel mappings.

Yes, this is ugly.  But it makes userland code run with r/w-allocate,
which is a huge improvement on systems with low core memory performance.
2002-08-13 03:36:30 +00:00
thorpej
17c9690153 The Elan SC520's PIT runs at 1.1892MHz; set TIMER_FREQ so that
time is kept properly.
2002-08-13 02:46:36 +00:00
thorpej
65e781f38c Fix previous (need to add IO_TIMER1 to the register offsets). 2002-08-13 02:42:54 +00:00
itojun
f9b8434a5c fix includes (use dev/ic/i8253reg.h) 2002-08-13 02:17:45 +00:00
simonb
c34bffaed6 Add the `pci' device. 2002-08-13 01:15:31 +00:00
thorpej
05210534c0 No need for two copies of the i8253 register definitions. Remove the
i386-specific copy, and adjust its users to add in the timer i/o base
as necessary.
2002-08-13 00:50:33 +00:00
matt
c75c0aa911 Print DAR and DSISR on user ALIgnment traps (e.g. treat them as being
similar to DSI tracks).
2002-08-12 22:44:03 +00:00
rjs
92f063ee47 Always clear SA11x0 GPIO in interrupt handler. 2002-08-12 22:26:41 +00:00
thorpej
d7be866fc8 Rearrange the beginning of cpu_switch() slightly to reduce data-dep
stalls on StrongARM and XScale.
2002-08-12 21:00:12 +00:00
bjh21
28b7728edf Add RCSID and remove unused <sys/errno.h>. 2002-08-12 20:38:06 +00:00
bjh21
7c599c85ae Add RCSID. 2002-08-12 20:37:31 +00:00
bjh21
2e026f9f8c When copyin/out or copyin/outstr catches a pagefault, have it return the
correct error code (provided by the fault handler in R0) rather than always
returning EFAULT.
2002-08-12 20:34:47 +00:00
bjh21
664bea62e3 __KERNEL_RCSID 2002-08-12 20:19:04 +00:00
bjh21
ca86069053 When pcb_onfault is set, pass the error code we get from uvm_fault()
(or EFAULT if we never called uvm_fault) to the onfault handler in R0,
in case it wants to use it.
2002-08-12 20:17:37 +00:00
thorpej
3d6f9f69ab Make a slight tweak to register usage to save an instruction. 2002-08-12 19:33:01 +00:00
thorpej
4b8b317d4b There are other systems besides the PS/2 L40 that enable A20
via the Configuration Port, so restructure the code a little
to allow for them, and list at least one other system that does
(anything based on AMD Elan SC520).

XXX We don't actually check for Elan SC520 yet.
2002-08-12 14:27:34 +00:00
bjh21
596763b7de The only caller of fuswintr() and suswintr(), addupc_intr(), can handle their
returning -1, so have them always do that rather than panicking.
2002-08-12 14:20:44 +00:00
mrg
828c2ebb9f general clean up. should not affect anything. (this is part of a patch
from eeh to reduce frivolous cache flushes.)
2002-08-12 12:04:31 +00:00
simonb
b16f7fe1fc Add a pvr field to 'struct opb_dev', to allow the opb_devs array to
contain info about on-chip devices for more than one CPU type.
2002-08-12 07:55:08 +00:00
thorpej
156a4a378d Add elansc* at pci? (AMD Elan SC520 System Controller). 2002-08-12 03:28:52 +00:00
simonb
6bf1aaf8eb Reorganise the IBM 4xx bus layout, using terminology from the IBM
documentation:
 - Remove "mainbus" altogether.
 - The new root is "plb" - the Processor Local Bus.
 - Attached to this is the "opb" - the On-chip Peripheral Bus, to which
   all the on-chip devices are attached (except the cpu and pci host
   bridge).
 - Port-specific code can pass an array of 'struct plb_dev' to
   config_rootfound() to attach extra devices to the plb.  The walnut
   port attaches a "pbus" (Peripheral Bus) in here for the RTC and
   pc keyboard controller to attach to.
There is still much 405GP specific code; the next round of changes will
generalise this to enable easier support for other 4xx CPUs.
2002-08-12 02:06:18 +00:00
thorpej
7d2b11a8b0 Add a driver for the AMD Elan SC520 System Controller. The "elansc"
driver attaches where "pchb" would normally attach (it matches at a
higher match priority).  The "elansc" driver currently provides support
for the watchdog timer built-in the SC520.

Thanks to Jasper Wallace for laying the ground-work for this (most
notably by providing a work-around for a watchdog-related bug in the
SC520).
2002-08-12 01:03:12 +00:00
bjh21
657216ff0f Remove a file which was accidentally resurrected. 2002-08-11 23:20:11 +00:00
bjh21
206c97ccc2 Move the arm32 copystr.S from arch/arm/arm32 to arch/arm/arm and add support
for 26-bit modes (basically saving R14 when we might get a page fault).
Use it on all ARM architectures now.
2002-08-11 23:17:24 +00:00
fredette
02f0a2cf44 Significant pmap changes to no longer rely on the "U-bit" (TLB_UNCACHEABLE)
to deal with aliasing of regular memory pages, because many processors don't
support it.

Now, the pmap marks all mappings of a page that has any non-equivalent
aliasing and any writable mapping, and the fault handlers watch for this
and flush other mappings out of the TLB and cache before (re)entering a
conflicting mapping.

When a page has non-equivalent aliasing, only one writable mapping at
a time may be in the TLB and cache.  If no writable mapping is in the
TLB and cache, any number of read-only mappings may be.

The PA7100LC/PA7300LC fault handlers have not been converted yet.
2002-08-11 22:29:07 +00:00
bjh21
b6228a7d06 New, improved version of copyin(), copyout(), and kcopy() by Allen Briggs.
This version works on both 26-bit and 32-bit machines.  For large copies,
it's up to three times as fast as the old arm32 version and five times as
fast as the old arm26 version.  For small copies it seems to be even faster
(getrusage() is apparently over ten times faster on an ARM610).

Hooray for Allen!
2002-08-11 21:19:12 +00:00
bjh21
cf963eaeb7 Add a curpcb variable, since the new bcopyinout.S will need one. 2002-08-11 20:50:39 +00:00
bjh21
947a208541 Disable IRQs and FIQs when rebooting. 2002-08-11 20:45:10 +00:00
bjh21
bd0fd7fdb4 BUFPAGES=2 seems to be the practical minimum. 2002-08-11 20:43:51 +00:00
fredette
2e5e562514 Add better support for controlling the LEDs, and use it. Now the
LEDs blink on network receive, network send, and disk interrupt,
and the high LEDs display the current load average (up to 15).
2002-08-11 19:53:41 +00:00