matt
ff5f5ea027
Don't compile SPL/INTR stuff if NEWINTR is defined.
2001-09-05 17:08:41 +00:00
matt
0b5b9ca90e
Change <machine/irqhandler.h> to <machine/intr.h>. Change
...
{irq,fiq}handler_t to struct XXXhandler
2001-09-05 16:23:10 +00:00
matt
792b7ebd13
Change <machine/irqhandler.h> to <machine/intr.h> since the latter always
...
includes the former and is a standard include file.
2001-09-05 16:17:35 +00:00
matt
4370f884b2
Flesh XSCALE support.
2001-09-05 16:13:18 +00:00
wiz
b940fa8a83
Fix typos (CONS instead of CONF, and specifc instead of specific).
2001-09-04 21:45:19 +00:00
matt
b0f89169ee
Switch netwinder to use a common conf.c for the arm ports.
2001-09-03 01:50:00 +00:00
chris
37fb92dcab
Remove unused entries from the pcb. This is with a long term view of merging the arm26 and arm32 pcb's.
2001-08-27 11:39:43 +00:00
chris
140252be2b
Arm has a vac, so we must use pmap_enter/remove for vmapbuf rather than k* versions, otherwise we may not be doing the right caching thing.
2001-08-20 21:52:09 +00:00
jdolecek
c495131fe3
Move _insque()/_remque() to libkern. Once remaining uses would
...
be converted to <sys/queue.h> macros, _insque()/_remque() would be eliminated
altogether.
2001-08-12 08:35:31 +00:00
chris
0b0518e0dd
Fix compile without DIAGNOSTICs enabled
2001-08-11 14:47:56 +00:00
chris
191de4d242
Checking a whole host of pmap changes:
...
Improved locking (not that we actually use it on a uniprocessor, but one day :)
Removed unneeded splvm's
tweaked pmap_clean_page code to only flush the cache if the page is mapped in the current pmap (based on diff from richard E)
Adopted pv entry allocation mechanism from i386.
Laid framework for returning ptp's when we've finished with them rather than holding onto them till the process exits.
ptp's are now allocated with a uvm object for the pmap, means that we can walk a list to free them off in pmap_release, until they get freed off by pmap_remove.
Also implemented a page zeroing function when the processor is idling. Note that hpcarm may wish to disable this.
I believe this code to be stable, if anyone has any problems please shout up.
2001-08-11 13:20:19 +00:00
chris
c5de587666
Make use of pmap_kenter instead of pmap_enter for kernel buffers.
2001-08-11 13:00:48 +00:00
chris
6cca1c3f58
Update to make use of a proper kenter implementation for vmapbuf and vunmapbuf.
2001-08-11 12:57:25 +00:00
chris
6e43d02452
Patch in Richard E's changes to bcopy page, the loop doesn't need unrolling as much as it currently is due to the overhead of the load/stores taking most of the time. (profiling shows minimal time difference)
2001-08-11 12:44:42 +00:00
chris
9522cf08d4
Share procfs_machdep.c across arm.
2001-08-05 13:09:45 +00:00
matt
9509e734a3
Force size_t formats/arge to be (u_long). I'd use 'z' for this but gcc
...
2.95.3
2001-08-05 05:07:27 +00:00
chris
fa4e4d9668
Rework the pmap_release code to not have to walk the ptpt, it now uses a uvm_object to track the allocated vm_pages, this means it can free off the entries in the uvm_object.
...
Testing shows that it's about 5% faster on the make configure step for gmake.
2001-07-29 12:45:27 +00:00
chris
9f04d8d670
A couple of tidy ups to pmap:
...
pmap_t -> struct pmap * in pmap.c and pmap.h
kernel_pmap -> pmap_kernel() everywhere.
Compiled and booted on riscpc and cats.
2001-07-28 18:12:43 +00:00
chris
4a126d9937
finish moving common arm32 bits out into arm/arm32.
2001-07-28 15:08:10 +00:00
chris
27f96e8440
Move the generic arm32 files into arm/arm32 from arm32/arm32, tested kernel builds on cats and riscpc.
2001-07-28 13:28:03 +00:00
chs
b86053cc53
clean up pmap_k{enter_pa,remove}():
...
a page is allowed to be mapped normally when k-mapped.
use UVM_PGA_ZERO to get zeroed pages rather than zeroing here.
2001-07-08 19:44:43 +00:00
chris
4c32798eb8
Implement proper versions of kenter_pa and kremove, I've based them on versions provided by Richard E.
2001-07-06 20:15:13 +00:00
chris
b8ceed365f
Improve the vac_me_harder function, it is now slightly faster, however pmap_enter_pv is also now slightly slower, so they appear to balance out.
...
Note that I've some ideas in the works on how to improve the pv handling, so the slow down is short term only.
Also added non-advertising licence and copyright to myself and richard.
2001-06-25 23:22:38 +00:00
chris
407440a6b3
Add a pmap_map_ptes function to map another process page table entries into the current pmap (similair to pmap_pte) but this allows multiple use of it, rather than repeated calls of pmap_pte for pte, map_ptes returns a pointer to the va where the entries were mapped so it can be reused ptes can be found by indexing into it.
...
Update some of the functions that use pmap_pte to pmap_map_ptes.
Note that there's a dummy macro for pmap_unmap_ptes, this is because at some point locking will be needed, so we need to be able to unlock them.
Performance gain seems to be minimal, however long term it should help improve things.
This is similair to the i386 pmap_map_ptes, however it's based on a version from Richard Earnshaw.
2001-06-24 23:21:04 +00:00
chs
908aa6ff3d
remove "machine vmstat" command, since "show uvmexp" does the same thing.
2001-06-24 07:32:20 +00:00
chris
cca2bd293b
Use a pool to store pmap structs.
2001-06-22 09:09:42 +00:00
bjh21
95fe4db7e3
Replace arm/arm32/db_trace.c and arm26/arm26/db_trace.c with a unified version
...
in arm/arm. This version is based on the arm26 version, and includes dumping
the contents of stack frames, with automatic determination of the save code
pointer offset.
2001-06-05 09:25:05 +00:00
chris
878db7cfb8
Add support for ARM7TDMI, as provided in a patch from John Fremlin to port-arm32.
...
Shouldn't effect any currently in tree ports.
2001-06-03 18:32:33 +00:00
chs
e44e9dec8a
replace vm_page_t with struct vm_page *.
2001-05-26 21:27:02 +00:00
bjh21
b9ded015f4
strstr() is no longer used in the kernel. G/C it.
2001-05-13 14:17:36 +00:00
bjh21
e2b24925d1
Use get_bootconf_option() to find boot options, rather than home-grown
...
strstr()-based hacks.
2001-05-13 13:53:08 +00:00
bjh21
262c7835b0
In an ELF kernel, don't try to find an a.out symbol table.
2001-05-02 19:10:29 +00:00
thorpej
fe664428c8
Garbage-collect pmap_page_index().
2001-04-25 17:35:00 +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
toshii
61ff48a82e
In pmap_allocpagedir(), check if uvm_km_zalloc of ptpt is successful,
...
and handle alloc failure case.
2001-04-20 18:11:53 +00:00
matt
1a5fe5b583
Split cpu from mainbus so that cpu can attached to other buses (like ofbus).
2001-04-20 18:08:48 +00:00
chs
ac3bc537bd
eliminate the KERN_* error codes in favor of the traditional E* codes.
...
the mapping is:
KERN_SUCCESS 0
KERN_INVALID_ADDRESS EFAULT
KERN_PROTECTION_FAILURE EACCES
KERN_NO_SPACE ENOMEM
KERN_INVALID_ARGUMENT EINVAL
KERN_FAILURE various, mostly turn into KASSERTs
KERN_RESOURCE_SHORTAGE ENOMEM
KERN_NOT_RECEIVER <unused>
KERN_NO_ACCESS <unused>
KERN_PAGES_LOCKED <unused>
2001-03-15 06:10:32 +00:00
bjh21
c3c5158d00
Change the value of tf_pc in undefined-instruction handlers on arm32. It now
...
always points to the undefined instruction in question. It's up to the
handler to advance it to the next instruction if it wants execution to
continue there. This is how things have always worked on arm26.
2001-03-13 23:56:48 +00:00
bjh21
ce5529eabf
Change undefined instruction handler to use a linked list for each
...
co-processor. This is necessary so we can have several handlers for
CP0 (used as a catch-all for non-CP instructions).
Handlers are now removed using remove_coproc_handler(), rather than by calling
install_coproc_handler() with a NULL handler.
Because install_coproc_handler() can now allocate memory, there's a version
for use at boot time that doesn't.
2001-03-11 16:18:39 +00:00
matt
b7cd0eeaac
Move arm32/arm32/ast.c to arm/arm32/ast.c
2001-03-06 07:52:35 +00:00
matt
d6fc837c17
more vm_offset_t/vm_size_t -> {p,v}{addr,size}_t changes
...
move pmap_* declarations to pmap.h. fix conflicts this
exposed (e.g different definitions for pmap_bootstrap).
2001-03-04 19:05:55 +00:00
bjh21
496829a88b
Make compat_13_sys_sigreturn() work on arm26, and move it from
...
arch/arm/arm32/compat_13_machdep.c to arch/arm/arm/compat_13_machdep.c.
2001-03-04 15:27:03 +00:00
matt
58438fb425
Move compat_13_machdep.c, strstr.c, copystr.S, bcopyinout.S, and
...
bcopy_page.S to arm/arm32 and remove port-local copies.
2001-03-04 08:25:38 +00:00
matt
4679f9115c
Convert some vm_size_t to vsize_t/psize_t. Change vaddr_t to paddr_t
...
where appropriate.
2001-03-04 07:30:19 +00:00
matt
f97f725bc9
Remove OFW hooks. Allow ports to add there own hooks via
...
ARM_EXTRA_DB_COMMANDS.
2001-03-04 05:40:03 +00:00
matt
8655276e9a
Move these from arm32/arm32
2001-03-04 05:11:41 +00:00
matt
4e6f220e99
Move these from arm32/arm32
2001-03-04 05:08:43 +00:00
matt
7d33ba27bf
Move from arm32/arm32. s/vm_offset_t/vaddr_t/g
2001-03-04 05:08:09 +00:00