summaryrefslogtreecommitdiff
path: root/sys/arch/powerpc
AgeCommit message (Collapse)Author
2002-08-06No, powerpc is not Elf64, it is Elf32. stupid comment error.Dale Rahn
2002-07-30Add SIZE_MAX define. This is the same as SIZE_T_MAX but more portable.Todd C. Miller
The only OSes I've seen that use SIZE_T_MAX are 4.4BSD-derived whereas SYSV things seem to use SIZE_MAX. It is also consistent with SSIZE_MAX (which we already have). deraadt@ OK
2002-07-24- change pte_spill_X() to take an extra parameter to determine ifDale Rahn
the fault is a EXE fault or R/W fault. - mask/or the SR_NOEXEC bit into the segment register value when the number of executable pages becomes 0/non-zero. - create segments with SR_NOEXEC set, will be cleared when first exec mapping in the segment is created. - allow pte_spill_X() to deal with a new type of fault, page mapped but non executable, when execute was requested. Adds up to - non-exec stack support for powerpc.
2002-07-23Remove unused files now that powerpc archs use link_elf.hDale Rahn
2002-07-23Cardbus/pcmcia support for macppc. parts borrowed from NetBSD, and otherDale Rahn
portions of the tree.
2002-07-15Perform accounting for executable pages on powerpc, prepare forDale Rahn
non-executeable stack.
2002-07-12Cleanup: use less _t typedefs, use the structure itself.Dale Rahn
pmap_t is the exception, it is required by the MI code so pmap_t will be used instead of using 'struct pmap *' in the code. (consistency)
2002-06-10argh, no last minute changes...Dale Rahn
2002-06-10pmap cleanup and KNF.Dale Rahn
2002-06-09KNFDale Rahn
2002-06-08One ddb to rule them all.Miod Vallat
Move the ddb files form macppc/macppc to powerpc/ddb, so that mvmeppc can benefit from the better ddb that was in macppc. db_interface.c is left as an md part.
2002-06-08Factorize common parts (cache-related stuff).Miod Vallat
ok drahn@
2002-06-07More DDB fallout.Dale Rahn
2002-06-07This doesn't happen, and Debugger should not be used here anyway...Dale Rahn
2002-06-07Remove obsolete CLKF_BASEPRI(). ok niklas@, miod@ and art@Thomas Nordin
2002-06-06zapArtur Grabowski
2002-06-04spelling; raj@cerias.purdue.eduTheo de Raadt
2002-06-02withough -> withoutTheo de Raadt
2002-05-18Optimize pmap_remove(). It frequently is called with no mappings toDale Rahn
remove eg mmap() ok miod@ art@
2002-05-18Rename the MD db_stack_trace_cmd to db_stack_trace_print. Add an argumentArtur Grabowski
that specifies which printf funciton it should use. Implement db_stack_trace_cmd in MI code. Thanks to miod@ for all the tests.
2002-05-16Add systrace support to all the remaining architectures.Miod Vallat
Tested by various people on various platforms, I'm willing to fix any breakage this causes. ok niels@ deraadt@ and mickey@ (after his comments were applied)
2002-05-15Remove the assembler kludges to allow altivec support without assembler helpDale Rahn
now that binutils is updated. As hoped, resulting .o file was identical.
2002-05-14powerpc generates powerpc coredumps, not hppa coredumps.Dale Rahn
2002-05-13Add missing cnpollc() calls.Dale Rahn
2002-04-29Define placeholders for art's splassert() debugging stuff on all arches.Miod Vallat
Currently as no-ops everywhere. ok art@, deraadt@
2002-04-24Introduce a new file, machine/internal_types.h, to hold that specific archMarc Espie
type characteristics. internal_types.h will contain only settings invisible from standard C, e.g., in the __* or _[A-Z]* namespace, and be reused by files like limits.h. This allows us to shorten machine/limits.h greatly, as all the common defines are now in sys/limits.h, plus a small stub in internal_types.h. Tested on all arches as far as I know. Approved after discussion with art, millert, deraadt, and others.
2002-03-28do not use MID_ZERO! then file(1) does not workTheo de Raadt
2002-03-22Attribute table must be allocated 1-1 because it is accessed fromDale Rahn
pte_spill_r(). ok art@
2002-03-21Remove dead code, ifdef code which should be dead, KNF. Cleanup.Dale Rahn
2002-03-21Be more consistant about pted zeroing (the whole structure)Dale Rahn
Fix missing 'attr' initialization. Zero available memory. Raise available memory limit from 256MB to 1GB. This code has only been tested up to 512MB, but should be fine to 1GB. Ram modules are not avail to the developers to test out the machines up to their 1.5GB physical limit.
2002-03-21Swap the defines to be the ones we want to use, compat ones are definedDale Rahn
from the preferred.
2002-03-14Improved altivec support for powerpc/macppc.Dale Rahn
Fix bug where altivec context was not freed on process exit. Fix bug where vscr was not correctly saved/restored. replace asm statement was macros which expand to the same asm code or to .long XXX which evaluates to the same instruction since in-tree gas does not support altivec. Enable ALTIVEC support by default on macppc, still conditional for other powerpc ports.
2002-03-14Do not include headers twice. Pointed out by Dries Schellekens.Dale Rahn
2002-03-14Final __P removal plus some cosmetic fixupsTodd C. Miller
2002-03-14First round of __P removal in sysTodd C. Miller
2002-03-14Turn the ptrace(2) syscall into a kernel compile option, option PTRACE inMiod Vallat
your kernel configuration file. By default, GENERIC will enable this. When PTRACE is not enabled, several ptrace-like features of the procfs filesystem will be disabled as well (namely, the ability to read and write any process' registers, as well as attching, single stepping and detaching to/from processes). This should help paranoid people build better sandboxens, and us to build smaller ramdisks.
2002-03-13Complete rewrite of the powerpc pmap handling, Instead of keepingDale Rahn
the spill list for each PTEG, the V->P translations are stored in trees for each pmap. All valid kernel mappings are preallocated in 1-1 memory so that tlb spill/loads for kernel accesses can be looked up while physical, user mappings are not guaranteed to be 1-1 mapped, thus the kernel must go virtual to look up user mappings. While this is more expensive, the tree search is much lower cost than the long linked list search. Also on each pmap_remove() it was necessary to search the linked lists for each possible mapping, now it just looks up the entry in the tree. This change gives a 25-36% speedup in 'make build' time. What was around 2:50 is now around 1:55 on a 733MHz G4. This change causes a likely existing bug to appear quite often, it deals with the segment register invalidation in kernel mode. Because of that problem, currently this change limits the physical memory used to 256MB. This limitation will be fixed soon, it is not an error in the pmap code. * Effort sponsored in part by the Defense Advanced Research Projects * Agency (DARPA) and Air Force Research Laboratory, Air Force * Materiel Command, USAF, under agreement number F30602-01-2-0537.
2002-03-08Move the message buffer out of low memory, Openfirmware clears the areaDale Rahn
on reboot. perhaps OF uses it at other times? Since OF always use the same memory addresses, this should always allocate the same ram to the msgbuf, and allow it to be preserved across reboot.
2002-02-19get rid of old if 0'ed code. add support for __weak_alias and fixDale Rahn
support for __warn_references (both from alpha/sparc4).
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.