Commit Graph

351 Commits

Author SHA1 Message Date
bjh21 4928854ae3 Arrange to inline hardsplx() into raisespl() and lowerspl(). This should
make them slightly faster, and makes it easier to see how much of the time
apparently spent in hardsplx() actually comes from deferred statclock
interrupts.
2001-05-01 22:19:09 +00:00
bjh21 c7d1f1542c Use the correct condition code when deciding whether to take an AST (oops!).
Also disable interrupts correctly in the APCS-32 case.
2001-05-01 11:01:12 +00:00
thorpej cf67ac7122 Per discussion w/ chuck and chuck, restructure the md page stuff
to use a structure called "vm_page_md", and use __HAVE_VM_PAGE_MD
and __HAVE_PMAP_PHYSSEG.
2001-05-01 02:19:13 +00:00
bjh21 a6b4c8d3da Strip the PSR bits off values of R15 before passing them to _mcount(). This
makes call-graph profiling actually work (hooray!).
2001-04-30 23:41:11 +00:00
bjh21 e5b19b546c Add two functions, int_off_save() and int_restore(), for mcount to use to
disable interrupts without getting into a loop or screwing up irq_handler().
Also use them.
2001-04-30 19:57:10 +00:00
thorpej 2b27ac7a99 Add a VM_MDPAGE_MEMBERS macro that defines pmap-specific data for
each vm_page structure.  Add a VM_MDPAGE_INIT() macro to init this
data when pages are initialized by UVM.  These macros are mandatory,
but ports may #define them to nothing if they are not needed/used.

This deprecates struct pmap_physseg.  As a transitional measure,
allow a port to #define PMAP_PHYSSEG so that it can continue to
use it until its pmap is converted to use VM_MDPAGE_MEMBERS.

Use all this stuff to eliminate a lot of extra work in the Alpha
pmap module (it's smaller and faster now).  Changes to other pmap
modules will follow.
2001-04-29 22:44:31 +00:00
bjh21 45eb40e8d3 Minimal implementation of cpu_sysctl(). 2001-04-29 15:13:45 +00:00
bjh21 e9c8a1fbb5 Add ipfilter, rnd, vcoda and raid. 2001-04-28 17:41:01 +00:00
bjh21 271fb855ce Arrange to restore R14 on return from __mcount, so that profiled assembler
routines will work.  We could put this in _PROF_PROLOGUE, but this seems
lighter-weight and possibly cleaner.
2001-04-26 22:09:57 +00:00
thorpej a60e816e7a Provide a pmap_resident_count() that simply expands to 0. 2001-04-25 18:03:19 +00:00
bjh21 90dfa8d8ff Undo my accidental revival of pmap_kenter_pgs(). 2001-04-25 16:30:03 +00:00
bjh21 7cf0a5e592 Arrange the "unamanaged" pages (entered through pmap_kenter_pa()) are tracked
and ignored as necessary.
2001-04-25 14:42:31 +00:00
bjh21 05d087e7c7 Remove definitions of CLKF_*. They're defined in <arm/cpu.h> now. 2001-04-24 18:15:44 +00:00
thorpej 1c3a62e066 Sprinkle pmap_update() calls after calls to:
- pmap_enter()
- pmap_remove()
- pmap_protect()
- pmap_kenter_pa()
- pmap_kremove()
as described in pmap(9).

These calls are relatively conservative.  It may be possible to
optimize these a little more.
2001-04-24 04:30:50 +00:00
thorpej 55044638aa Remove pmap_kenter_pgs(). It was never really adopted by
anything, and the interface itself wasn't as flexible as
callers would have probably liked.
2001-04-22 23:42:11 +00:00
thorpej ec66f67f3a Use pmap_kenter_pa() rather than pmap_kenter_pgs(). 2001-04-22 23:28:52 +00:00
thorpej 69abdbf60c Undo a misguided previous change to the pmap_update() API. 2001-04-22 23:19:26 +00:00
thorpej 5871b80f00 Use uvm_pageboot_alloc() for early memory allocation, rather than
calling pmap_steal_memory() directly.  On these platforms, since
uvm_pageboot_alloc() is a wrapper around pmap_steal_memory(), there
is no functional change.  This is merely for API consistency.
2001-04-22 18:21:48 +00:00
thorpej cfb5c7ed9f Make pmap_virtual_space() a required pmap function, even on platforms
which have pmap_steal_memory().  This is to reduce the API differences
between pmaps that implement pmap_steal_memory() and pmaps which do
not.

Note that pmap_steal_memory() needs to adjust *vstartp and/or
*vendp only if it used addresses within the range provided to UVM
via the pmap_virtual_space() call.  I.e. it is not necessary to do
so in any current pmap_steal_memory() implementation.
2001-04-22 17:22:57 +00:00
bjh21 8eed59a146 Move arcpp so it attaches before podulebus. 2001-04-22 15:26:07 +00:00
bjh21 11b40e716c Add arcpp. Not in GENERIC because I don't know it works. 2001-04-22 15:02:51 +00:00
bjh21 856547f067 Driver for Archimedes parallel ports. I haven't got a parallel printer, so
this is currently untested.
2001-04-22 15:01:25 +00:00
bjh21 2a1570b5d9 Add functions to twiddle the latch bits, patterned after the ones in Linux. 2001-04-22 15:00:13 +00:00
thorpej 4738622712 Give pmap_update() an argument (a pmap_t) so that it knows which
pmap it should be updating.
2001-04-22 00:33:59 +00:00
bjh21 660a20cd22 Add a skeleton driver for the random latches on the Archimedes, which are
shared between the printer port and floppy drive.  Useful facilities will be
added when I know what I need.
2001-04-22 00:26:35 +00:00
bjh21 85e1abfb39 Keep track of interrupt depth. With forthcoming changes to cpu.h, this gets
us accounting for interrupt time.
2001-04-21 18:51:17 +00:00
bjh21 e66c66730e Remove <arch/arm26/podulebus/podulebus.h>. Podulebus driverd now include
<dev/podulebus/podulebus.h>.
2001-04-19 13:47:07 +00:00
bjh21 074987f4a3 Ensure that we have some idea what a label_t is, even in userland. 2001-04-16 17:30:32 +00:00
bjh21 020a050984 Randomize the statclock period properly. We use the same algorithm as the
sparc port.
2001-04-16 14:12:38 +00:00
kleink f06533a1ee Add definitions of C99 integer format conversion macros.
XXX Fastest minimum-width integer types haven't been decided upon yet.
2001-04-15 17:13:04 +00:00
kleink 739cb75837 Add definitions of C99 specified-width integer type limits.
XXX Fastest minimum-width integer types haven't been decided upon yet.
2001-04-15 15:29:02 +00:00
bjh21 5a15be6a18 Don't panic on a stray IRQ, just log it and hope it goes away. This works for
my acemidi card at least.
2001-04-15 11:59:43 +00:00
kleink cdcf9f46c5 Add definitions of C99 integer constant macros.
Tidy Makefiles up a little.
2001-04-14 22:46:19 +00:00
kleink a7c20e5788 Add definitions of C99 integer constant macros. 2001-04-14 22:38:33 +00:00
bjh21 cee3528adc When checking if an IRQ is active, check for _all_ the right bits' being set,
not just some of them.
2001-04-14 19:58:58 +00:00
bjh21 e0e3b230c1 Remember to initialise the interrupt handle.
Bugs like this are my penalty for having my only supported podule in slot 0.
2001-04-14 18:39:20 +00:00
kleink 7affdab52e Add definitions of C99 minimum-width and greatest-width integer types.
XXX Fastest minimum-width integer types haven't been decided upon yet.
2001-04-14 12:19:49 +00:00
thorpej bf2dcec4f5 Remove the use of splimp() from the NetBSD kernel. splnet()
and only splnet() is allowed for the protection of data structures
used by network devices.
2001-04-13 23:29:55 +00:00
bjh21 d3c7885319 Make sure that every time we touch the referenced/modified bits, we do a
pmap_update_page() to get all the mappings of that page up-to-date.
2001-04-13 16:37:28 +00:00
bjh21 991d163aa2 Remove code from pmap_fault() that ws trying to do referenced/modified
emulation on kernel pages (and getting it wrong).
2001-04-13 15:09:35 +00:00
bjh21 7b00aef2da Rev 1.3 accidentally undid rev 1.2. Re-do it. 2001-04-13 14:50:47 +00:00
bjh21 ac01781de7 Make UBC_WINSHIFT a constant. 2001-04-13 12:40:16 +00:00
bjh21 d039e70428 Remove the "asc" driver. It's never worked, and we should have an MI version
sometime.
2001-04-10 21:33:00 +00:00
bjh21 5677634e50 Small comment correction. 2001-03-28 13:04:57 +00:00
bjh21 8bd452c648 Create an MI Ether3 driver. It's derived from the arm26 driver, which uses
my MI SEEQ 8005 driver, which is based on the arm32 ea driver.
2001-03-24 00:14:52 +00:00
bjh21 2714607c72 Add podulebus_shift_tag, which generates a bus_space_tag_t with a specified
address shift (stride).  This is necessary because many podules have standard
chips with odd address-bus wiring to allow for using LDM for
bus_space_*_multi_*().
2001-03-24 00:10:42 +00:00
lukem 723cd818d8 move duplicate definitions for:
pc, lpt, joy, ocis, apm, satlink, i4bctl, i4brbch, i4btel, i4btrc, i4b
from the port-specific arch/*/*/conf.c files into sys/conf.h
2001-03-21 22:25:52 +00:00
bjh21 de59def2f2 Remove spurious #define mod_base. 2001-03-20 23:29:07 +00:00
bjh21 86d6442c28 Move machine-dependent podulebus headers to <machine/podulebus_machdep.h>.
<dev/podulebus/podulebus.h> is the canonical file to include, and includes
<machine/podulebus_machdep.h>.
<arch/${MACHINE}/poudulebus/podulebus.h> remains for backward compatibility.
2001-03-20 22:59:39 +00:00
bjh21 61e80eef9b As Richard Earnshaw pointed out, bus_space_copy_1() and bus_space_copy_2()
had the wrong names and did the wrong things.  Both are now fixed.
2001-03-20 22:56:16 +00:00