summaryrefslogtreecommitdiffstats
path: root/sys/sparc64
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix reverse ordering of locks. add a comment about locks on some platforms.julian2002-06-291-1/+1
| | | | Submitted by: jhb@freebsd.org
* Part 1 of KSE-IIIjulian2002-06-295-5/+72
| | | | | | | | | | | | | The ability to schedule multiple threads per process (one one cpu) by making ALL system calls optionally asynchronous. to come: ia64 and power-pc patches, patches for gdb, test program (in tools) Reviewed by: Almost everyone who counts (at various times, peter, jhb, matt, alfred, mini, bernd, and a cast of thousands) NOTE: this is still Beta code, and contains lots of debugging stuff. expect slight instability in signals..
* Add files that are new for KSE.julian2002-06-291-0/+38
|
* Fix a deletion during traversal tailq bug.jake2002-06-291-1/+2
|
* Do NOT enable ATA_STATIC_ID -- cmd646 controller will be !ata2!,obrien2002-06-291-1/+3
| | | | | | | | and you will not mount an ATA /: mountroot> ufs:/ad0a Mounting root from ufs:/ad0a setrootbyname failed ffs_mountroot: can't find rootvp
* Remove a couple of __P() stragglers.peter2002-06-291-4/+4
|
* GENERIC now builds with -Werror, so remove NO_WERROR.mux2002-06-271-1/+0
| | | | Approved by: jake
* pmap_kremove can no longer be used to remove the magic device mappingsjake2002-06-253-1/+16
| | | | | | | installed with pmap_kenter_flags, since the physical addresses may not have an associated vm_page. Add a function to do this. Tested by: Tomi Vainio <Tomi.Vainio@Sun.COM>
* Add an MD callout like cpu_exit, but which is called after sched_lock isjake2002-06-241-0/+22
| | | | | | | | | obtained, when all other scheduling activity is suspended. This is needed on sparc64 to deactivate the vmspace of the exiting process on all cpus. Otherwise if another unrelated process gets the exact same vmspace structure allocated to it (same address), its address space will not be activated properly. This seems to fix some spontaneous signal 11 problems with smp on sparc64.
* Remove unused diagnostic function cread_free_thread().mini2002-06-241-6/+0
| | | | Approved by: alfred
* Add a missing prototype to fix a warning.mux2002-06-231-0/+2
|
* Include machine/critical.h to get missing prototypes.mux2002-06-231-0/+1
| | | | Reviewed by: tmm
* Fix a bug related to marking pages virtually uncacheable due to illegaljake2002-06-221-4/+4
| | | | | | | dcache aliasing. A page that already had more than 1 mapping of the same virtual colour would not be correctly uncached. Noticed by: Artur Grabowski <art@openbsd.org>
* Warning fix.mux2002-06-221-3/+3
| | | | Reviewed by: peter
* {f,s}usword -> {f,s}uword16. Implement {f,s}uword32.jake2002-06-202-46/+94
| | | | Requested by: peter
* Deorbit suibyte(). It was only used for split address space systemspeter2002-06-202-24/+0
| | | | for supporting UIO_USERISPACE (ie: it wasn't used).
* Move the "- 1" into the RQB_FFS(mask) macro itself so thatpeter2002-06-201-1/+1
| | | | | | | | | | | | | | implementations can provide a base zero ffs function if they wish. This changes #define RQB_FFS(mask) (ffs64(mask)) foo = RQB_FFS(mask) - 1; to #define RQB_FFS(mask) (ffs64(mask) - 1) foo = RQB_FFS(mask); On some platforms we can get the "- 1" for free, eg: those that use the C code for ffs64(). Reviewed by: jake (in principle)
* Sync with i386.obrien2002-06-181-8/+10
|
* Add constants for the min and max prom addresses. Use these instead ofjake2002-06-172-3/+6
| | | | | | magic numbers. Use stxa_sync instead of stxa; membar #Sync; to ensure that no instruction is placed between the two. This can cause random corruption even though interrupts are already disabled.
* Add PCI bus enumeration and latency timer setup to the sparc64 MD PCItmm2002-06-124-88/+203
| | | | | | | | code. Both tasks are not always performed completely by the firmware. The former is required to get some e450 models to boot; the latter fixes the repeated fifo underruns with hme(4)s and gem(4)s observed on some machines (and probably performance problems with other peripherals as well).
* Add code to drop to ddb when a process gets a fatal signal that usuallyjake2002-06-081-0/+8
| | | | | suggests kernel bugs (4, 10, 11). Add a sysctl debug.debugger_on_signal which turns this on and off, default off.
* Re-enable SMP by default.jake2002-06-081-1/+1
|
* Remove test code.jake2002-06-084-33/+0
|
* Remove code from trap which is handled in userland now.jake2002-06-083-27/+5
|
* Fix bizarre SMP problems. The secondary cpus sometimes start up with junkjake2002-06-085-1/+51
| | | | | | in their tlb which the prom doesn't clear out, so we have to do so manually before mapping the kernel page table or the cpu can hang due various conditions which cause undefined behaviour from the tlb.
* Comment out options SMP for now until I figure out what's going on.jake2002-06-071-1/+1
|
* - Fixup / remove obsolete comments.jhb2002-06-071-24/+18
| | | | | | | | | | | - ktrace no longer requires Giant so do ktrace syscall events before and after acquiring and releasing Giant, respectively. - For i386, ia32 syscalls on ia64, powerpc, and sparc64, get rid of the goto bad hack and instead use the model on ia64 and alpha were we skip the actual syscall invocation if error != 0. This fixes a bug where if we the copyin() of the arguments failed for a syscall that was not marked MP safe, we would try to release Giant when we had not acquired it.
* Use pmap_map instead of pmap_kenter to map the message buffer. Its toojake2002-06-051-3/+3
| | | | early for pmap_kenter.
* Bump TSB_PAGES_SHIFT to 4. Less sucks too much.jake2002-06-041-1/+1
|
* Move the definition of ElfN_Hashelt to common headers. The only platformdfr2002-05-301-11/+0
| | | | which has a different definition for this is alpha.
* Forgot to commit this file. Catch up to loader->kernel abi changes.jake2002-05-291-2/+6
|
* Forward declare struct trapframe.jake2002-05-291-0/+2
|
* Remove BOOTP_WIRED_TO= since I keep forgetting to take this out and screwingjake2002-05-291-1/+0
| | | | over people with gems.
* Don't try to flush illegal alises from the data cache in vmapbuf andjake2002-05-291-30/+0
| | | | vunmapbuf, this is handled by pmap now.
* Add an MD page flag for tracking if a page is cacheable or not, so thatjake2002-05-292-1/+7
| | | | | we don't flush all mappings of a physical page in order to make it virtually cachable again, if it is already cachable.
* Remove an unused variable.jake2002-05-291-1/+0
|
* Merge the code in pv.c into pmap.c directly. Place all page mappings ontojake2002-05-296-50/+187
| | | | | | | | | | the pv lists in the vm_page, even unmanaged kernel mappings. This is so that the virtual cachability of these mappings can be tracked when a page is mapped to more than one virtual address. All virtually cachable mappings of a physical page must have the same virtual colour, or illegal alises can be created in the data cache. This is a bit tricky because we still have to recognize managed and unmanaged mappings, even though they are all on the pv lists.
* Add pv list linkage and a pmap pointer to struct tte. Remove separatelyjake2002-05-296-225/+92
| | | | allocated pv entries and use the linkage in the tte for pv operations.
* Use a contrived 'tlb_entry' structure for passing the mappings for thejake2002-05-294-5/+13
| | | | | kernel text and data from the loader to the kernel, so that the tte format is not part of the loader->kernel ABI.
* Remove pmap.pm_pvlist and make the functions that use it no-ops. These arejake2002-05-293-53/+3
| | | | | all optimizations for architectures which have large sparse page tables, and/or can't put the pv linkage inside of the page table entries.
* Add declarations of suword32 and suword64. Add implementations of one ordfr2002-05-262-0/+48
| | | | | the other (or both) to all the platforms. Similar for fuword32 and fuword64.
* Convert the interrupt queue from an array to a linked list. Implementjake2002-05-258-200/+383
| | | | | intr_dequeue in asm so that it can easily be modified to do light weight context switching.
* Try to handle "double faults" occuring at more trap levels (ie 4 :)).jake2002-05-252-28/+28
|
* Minor style.jake2002-05-251-3/+5
|
* Make the run queue parameters machine dependent. Optimize 64 bitjake2002-05-251-0/+58
| | | | | | | architectures by using a 64 bit word for the bit array which keeps track of non-empty queues. Reviewed by: peter
* Update tsb_tte_enter prototype per tsb.c rev 1.20.jake2002-05-211-1/+1
|
* Rewrite pmap_enter to avoid copying ttes in all cases.jake2002-05-212-111/+98
| | | | | Pass the tte data to tsb_tte_enter instead of a whole tte, also to avoid copying.
* Redefine the tte accessor macros to take a pointer to a tte, instead of thejake2002-05-215-84/+77
| | | | | | | value of the tag or data field. Add macros for getting the page shift, size and mask for the physical page that a tte maps (which may be one of several sizes). Use the new cache functions for invalidating single pages.
* Add SMP aware cache flushing functions, which operate on a single physicaljake2002-05-207-17/+327
| | | | | page. These send IPIs if necessary in order to keep the caches in sync on all cpus.
* Forward declare struct trapframe.jake2002-05-201-0/+2
|
OpenPOWER on IntegriCloud