summaryrefslogtreecommitdiff
path: root/sys/arch/powerpc
AgeCommit message (Collapse)Author
2002-01-26splclock() should block SPL_BIO - SPL_IMP.Dale Rahn
2002-01-25Instead of finding pages matching this physical page, match this specificDale Rahn
entry. Also terminate the search as soon as this entry is found.
2002-01-25How did this work? It used to attempt the tlb entry for a mapping it isDale Rahn
removing by using the va it is replacing it with, NO!. Calculate the va of the mapping by inverting the pte_hi calculation producing bits 4-19 of the address. This is enough to correctly invalidate the tlb entry for the mapping being removed.
2002-01-23Pool deals fairly well with physical memory shortage, but it doesn't dealArtur Grabowski
well (not at all) with shortages of the vm_map where the pages are mapped (usually kmem_map). Try to deal with it: - group all information the backend allocator for a pool in a separate struct. The pool will only have a pointer to that struct. - change the pool_init API to reflect that. - link all pools allocating from the same allocator on a linked list. - Since an allocator is responsible to wait for physical memory it will only fail (waitok) when it runs out of its backing vm_map, carefully drain pools using the same allocator so that va space is freed. (see comments in code for caveats and details). - change pool_reclaim to return if it actually succeeded to free some memory, use that information to make draining easier and more efficient. - get rid of PR_URGENT, noone uses it.
2002-01-21ARGH, fix it right...Dale Rahn
2002-01-21Better barrier protection. pefo found an instance where the previousDale Rahn
protection was not good enough. work from theo, pefo, toby.
2002-01-20fix quite appearent bug in cpu_swapin(), missing '&' can easily corruptDale Rahn
memory, pmap structure.
2002-01-13better accounting for 'soft' interrupts, before all exceptions wereDale Rahn
counted as soft interrupts.
2002-01-13Regress this one additional change, with this change more systemsDale Rahn
successfully ran 'make build'.
2002-01-06That was no fix, that broke things. If the pte entry is currently foundDale Rahn
in the po lists, it will NOT have the PTE_VALID bit set. Thus valid mappings could be ignored if enough mappings existed for that PTEG pair. This explains the bus_dma panics.
2002-01-06pte_spill() is executed on a special stack in real mode (vm not enabled).Dale Rahn
It is not valid to call pool_put() from that context. If called from that context, put the freed item on one of two lists (race safe), poalloc() will attempt to fetch from there, and pofree() will clean up if called from a normal context.
2001-12-17Move the process_read_reg prototype to the correct file, it is specifiedDale Rahn
in ptrace.h, not in md header files. Protect vector functions/variables with _KERNEL.
2001-12-13Fix for pmap extract from art.Dale Rahn
2001-12-08Sprinkle pmap_update calls where relevant and some otherArtur Grabowski
misc pmap usage fixes.
2001-12-05make nkmempages dynamic based on memory. okay art@ from netbsd:Niels Provos
date: 2000/02/11 19:22:52; author: thorpej; Add some very simple code to auto-size the kmem_map. We take the amount of physical memory, divide it by 4, and then allow machine dependent code to place upper and lower bounds on the size. Export the computed value to userspace via the new "vm.nkmempages" sysctl. NKMEMCLUSTERS is now deprecated and will generate an error if you attempt to use it. The new option, should you choose to use it, is called NKMEMPAGES, and two new options NKMEMPAGES_MIN and NKMEMPAGES_MAX allow the user to configure the bounds in the kernel config file.
2001-12-05Update pmap_update macro for arches Art missed. Still just a noop.Todd C. Miller
2001-11-29Kernel mappings (pmap_kenter_pa) should not be entered into the pv list.Dale Rahn
2001-11-29Fix for thinko that was caught in code review, error was found 3x, howeverDale Rahn
it was fixed 2x, leaving one instance of the error.
2001-11-28zap some typedefs.Artur Grabowski
vm_map_t -> struct vm_map * vm_map_entry_t -> struct vm_map_entry * simple_lock_data_t -> struct simplelock (uvm not done yet, coming in the next commit)
2001-11-28Make pmap_update functions into nops so that we can have a consistentArtur Grabowski
pmap_update API (right now it's nop).
2001-11-28pmap_kenter_pgs is not used and not really useful. remove.Artur Grabowski
2001-11-28Sync in more uvm changes from NetBSD.Artur Grabowski
This time we're getting rid of KERN_* and VM_PAGER_* error codes and use errnos instead.
2001-11-19Remove pointless additional 'syncing' instructions in the powerpc spl*()Dale Rahn
functions. Seems to have no effect on system run time (it should have...) reduces GENERIC kernel size by 52k.
2001-11-13Add AltiVec support to powerpc/macppc. This is not currently enabled becauseDale Rahn
the 'as' in openbsd source tree does not yet support altivec instructions. The pieces to enable it have been put in macppc/conf/GENERIC and macppc/conf/Makefile.macppc in comments. Once 'as' is updated the kernel option should be removed.
2001-11-11Fix matching brace error. Fortunately PGM errors do not happen in theDale Rahn
kernel much. This has been there quite a while.
2001-11-07unbreak child_return.Artur Grabowski
2001-11-06Replace inclusion of <vm/foo.h> with the correct <uvm/bar.h> when necessary.Miod Vallat
(Look ma, I might have broken the tree)
2001-11-06Let fork1, uvm_fork, and cpu_fork take a function/argument pair as argument,Artur Grabowski
instead of doing fork1, cpu_set_kpc. This lets us retire cpu_set_kpc and avoid a multiprocessor race. This commit breaks vax because it doesn't look like any other arch, someone working on vax might want to look at this and try to adapt the code to be more like the rest of the world. Idea and uvm parts from NetBSD.
2001-11-06Need to prototype pmap_pinit and pmap_release here.Artur Grabowski
(although they are leftovers from an earlier bad time, the macppc decided that it's a good idea to use them.)
2001-11-06No need for those prototypes here.Artur Grabowski
2001-11-05Workaround to prevent Altivec Unavilable problem.Dale Rahn
Why did Motorola put this exception misaligned with respect to all other exceptions? Altivec is not supported. This will cause any process executing altivec instructions to recieve an illegal instruction signal.
2001-09-21Correctly initialize variables in cpu_fork(). From NetBSD.Miod Vallat
2001-09-20Allow nesting of fault handlers by saving old onfault handler andDale Rahn
restoring it when the copying/copyout/badaddr functions finish.
2001-09-19merge vm/vm_kern.h into uvm/uvm_extern.h; art@ okMichael Shalayeff
2001-09-18Changing the way the pmap code works again.Dale Rahn
Changes to the pmap_enter code so that the pmap_kenter/pmap_kremove has a method to create mappings without adding them to the _pv lists (part of the point of pmap_k* functions). Also adds an interface so that device mappings can be created with cacheable attributes. So that devices such as display memory can be mapped writethru greatly increasing their speed.
2001-09-18Improve the panic message, print symbol and offset, of where fault occursDale Rahn
instead of just address. Managed to test this out a few times today.
2001-09-17pagemove() should use the pmap_k* functions instead of pmap_enter/remove.Dale Rahn
The buffer cache is initialized with pmap_k* for all powerpc systems. Does not cause a problem with current code because pmap_k* are only wrappers around pmap_enter/remove.
2001-09-15Rewrite of powerpc pmap_page_protect(), the old version had a couple ofDale Rahn
possible bugs in it which could cause the code to spin indefinately attempting to remove all mappings for a page. This is now able to survive a paging death program and additional other testing.
2001-09-14simplify userretArtur Grabowski
2001-09-10move vtophys proto into a port-area in order to remove it for macppc ↵Michael Shalayeff
eventually; drahn@ ok
2001-09-03Zero pages before handing them over to the VM layer.Dale Rahn
This seems to improve the reliablity of the system. Thanks to those who tested this.
2001-09-01The "powerpc" port which has supported the newer Apple Macintosh powerpc basedDale Rahn
is being renamed to macppc. This is to allow sharing of common code between different powerpc base platforms. Most of the work involved in the renaming process was performed by miod@ Files moved from powerpc/conf to macppc/conf files.powerpc was modified to keep powerpc common files.
2001-09-01The "powerpc" port which has supported the newer Apple Macintosh powerpc basedDale Rahn
is being renamed to macppc. This is to allow sharing of common code between different powerpc base platforms. Most of the work involved in the renaming process was performed by miod@ Files moved from powerpc/pci to macppc/pci The file pci_machdep.h was not moved in this conversion. It needs to be check if it is correct that should be the only shared powerpc/pci file. Or if that file too should be MD, or more files MI.
2001-09-01The "powerpc" port which has supported the newer Apple Macintosh powerpc basedDale Rahn
is being renamed to macppc. This is to allow sharing of common code between different powerpc base platforms. Most of the work involved in the renaming process was performed by miod@ Files moved from powerpc/mac to macppc/dev
2001-09-01The "powerpc" port which has supported the newer Apple Macintosh powerpc basedDale Rahn
is being renamed to macppc. This is to allow sharing of common code between different powerpc base platforms. Most of the work involved in the renaming process was performed by miod@ Files moved from powerpc/include to macppc/include Some files were not "moved" but wrapper files were created which include the powerpc/include version. Several of the powerpc/include files where changed to reflect that they are POWERPC_* not MACHINE_*.
2001-09-01The "powerpc" port which has supported the newer Apple Macintosh powerpc basedDale Rahn
is being renamed to macppc. This is to allow sharing of common code between different powerpc base platforms. Most of the work involved in the renaming process was performed by miod@ Files moved from powerpc/powerpc to macppc/macppc This moves hardware specific files from the common directory to the platform specific directory. This leaves common files. With this change all of the debugger (db_) files have been moved to the platform specific directory. The debugger should be reconsidered and commonized.
2001-09-01The "powerpc" port which has supported the newer Apple Macintosh powerpc basedDale Rahn
is being renamed to macppc. This is to allow sharing of common code between different powerpc base platforms. Most of the work involved in the renaming process was performed by miod@ Files moved from powerpc/compile to macppc/compile
2001-09-01The "powerpc" port which has supported the newer Apple Macintosh powerpc basedDale Rahn
is being renamed to macppc. This is to allow sharing of common code between different powerpc base platforms. Most of the work involved in the renaming process was performed by miod@ Files moved from powerpc/stand to macppc/stand
2001-09-01The "powerpc" port which has supported the newer Apple Macintosh powerpc basedDale Rahn
is being renamed to macppc. This is to allow sharing of common code between different powerpc base platforms. Most of the work involved in the renaming process was performed by miod@ Files moved from powerpc/stand/boot.mac to macppc/stand/boot.mac These files are the bootloader for the older Openfirmware, not currently supported.
2001-09-01The "powerpc" port which has supported the newer Apple Macintosh powerpc basedDale Rahn
is being renamed to macppc. This is to allow sharing of common code between different powerpc base platforms. Most of the work involved in the renaming process was performed by miod@ Files moved from powerpc/stand/mbr to macppc/stand/mbr