summaryrefslogtreecommitdiff
path: root/sys/arch/mips64
AgeCommit message (Collapse)Author
2009-12-30curcpu()->ci_curpmap added. ok miod@Takuya ASADA
2009-12-28Fix compile error caused from previous commitTakuya ASADA
2009-12-28MP-safe pmap implemented, enable IPI in interrupt handler to avoid deadlock.Takuya ASADA
ok miod@
2009-12-25Pass both the virtual address and the physical address of the memory rangeMiod Vallat
when invoking the cache functions. The physical address is needed when operating on physically-indexed caches, such as the L2 cache on Loongson processors. Preprocessor abuse makes sure that the physical address computation gets compiled out when running on a kernel compiled for virtually-indexed caches only, such as the sgi kernel.
2009-12-25Don't bother returning a value in *_InvalidateICache(), as it's supposed to beMiod Vallat
a void function.
2009-12-13bit less aggressive about hiding; ok miodTheo de Raadt
2009-12-12Protect more definitions userland doesn't need to care about with _KERNELMiod Vallat
2009-12-12Switch page size from 4KB to 16KB on R10k kernels without R5k supportMiod Vallat
(i.e. IP27 and IP30 sgi kernels).
2009-12-12Introduce various CPU_### options to enable cpu-specific code or workarounds;Miod Vallat
be sure to rerun config(8) on your kernel configuration files.
2009-12-12unifdef -D__LP64__Miod Vallat
2009-12-11More changes to avoid truncating 64 bit pointers to 32 bits and sign-extendingMiod Vallat
them; allows userland with stack beyond 2GB to run.
2009-12-08Unconditionnaly move kernel virtual memory space to XKSEG, now that previousMiod Vallat
context.S fixes allows these settings to work for kernels linked in CKSEG0.
2009-12-08In cpu_switchto(), correctly ignore CKSEG0 curprocpaddr (and do not update theMiod Vallat
wired TLB entries).
2009-12-08Use a whole page for msgbuf if page size is larger than 4KB, instead ofMiod Vallat
the current 8KB.
2009-12-07Correctly skip available memory regions without (kernel) page alignedMiod Vallat
boundaries, entirely contained within a kernel page; issue raised by drahn@
2009-12-07Sync VM_MIN_ADDRESS with __LDPGSZ again.Miod Vallat
2009-12-07Support for 16KB page size kernels; page size is now set in <machine/param.h>Miod Vallat
rather than <mips64/param.h>. For now, kernels are kept at 4KB to give people some time to build 16KB compatible binaries; this will change before the end of this release cycle. Use of 16KB page size kernels yields a 18% speedup (which, offset by the 1.6% slowdown caused by the pmap changes, yields a 16.6% overall speedup).
2009-12-07If UPAGES would turn out to be 1, instead of using wired TLB entries to mapMiod Vallat
the u area after each context switch, simply convert it to an XKPHYS address, so that access to it never faults. Idea from NetBSD.
2009-12-07Use a pool to manage pmap pte pages and top level segment table, instead ofMiod Vallat
directly allocating pages from uvm; this will allow us to eventually use a different kernel page size without having to alter the pmap structures layout. No functional change; measured slowdown of 1.6% for 4KB page kernels.
2009-12-07When converting ARCBios memory spaces from ARCBios page size to the kernelMiod Vallat
page size, be sure to pick the strictest interval so as not to incorrectly claim ARCBios reserved data not (kernel) page size aligned as free memory. No functional change since the kernel uses the same page size as ARCBios (at the moment).
2009-12-07Be sure to always check tlbp return values for strictly negative valuesMiod Vallat
to consider the probe as failed; tlb pair #0 does not deserve to be magic in any way.
2009-12-07When trying to return to ARCBios on a 32 bit ARCBios machine (such as the O2),Miod Vallat
disable interrupts and unconditionnaly use proc0 u area as the stack, so that once ARCBios loses the upper 32 bits of the stack pointer, accessing the stack does not fault (proc0 u area is allocated in CKSEG0 for this reason).
2009-12-02use kstack for curprocpaddr instead of proc0paddr.Takuya ASADA
ok miod@
2009-11-30Crank __LDPGSZ from 4KB to 16KB, in preparation for a kernel page sizeMiod Vallat
increase as well. Binaries compiled before this change will not work once the kernel page size is cranked (in a few weeks), so you might want to update your userland and packages soon.
2009-11-28missing #ifdef MULTIPROCESSOR protection around locking code.Miod Vallat
2009-11-27Move MB_LEN_MAX into the machine-independent sys/limits.h header,Philip Guenthe
rather than defining it separately for each architecture. Also set it to 4, to accommodate for future UTF-8 support (rfc3629). Diff by stsp, committing to catch the libc major bump ok kettenis@, guenther@
2009-11-27atomic counter increment for SMP.Takuya ASADA
ok jsing@
2009-11-26Now IPI can interrupt to clock interrupt handler.Takuya ASADA
It prevents deadlock with TLB shootdown and clock interrupt. ok miod@
2009-11-26initialize cpu_info correctly.Takuya ASADA
ok miod@
2009-11-25IP30 IPI implementation.Takuya ASADA
Also few xheart modification for SMP. ok miod@
2009-11-24smp_malloc() implemented.Takuya ASADA
This function allocates memory using malloc or uvm_pglistalloc, then returns XKPHYS address of allocated memory. It's for avoid using virtual address on secondary cpus in early stage, and also in TLB handler. ok miod@
2009-11-22removing unnecessary locks.Takuya ASADA
ok jsing@
2009-11-22ncpus, ncpufound values are corrected.Takuya ASADA
ok miod@
2009-11-22SMP support on MIPS clock.Takuya ASADA
ok miod@
2009-11-22Fix compile error in uniprocessor kernel.Takuya ASADA
ok jsing@
2009-11-22Correct cording style.Takuya ASADA
ok jsing@
2009-11-22Allow mips ports to override VM_{MIN,MAX}_KERNEL_ADDRESS, and provide theMiod Vallat
address as a kernel variable for use by libkvm. On sgi IP27 and IP30 kernels, use XKSEG instead of CKSSEG; this will allow kernel KVM size to grow in the future if necessary.
2009-11-21Fix uninitialized variables in db_stack_trace_print(), and honour theMiod Vallat
frame count argument.
2009-11-21mplock, rw_cas implementedTakuya ASADA
ok miod@
2009-11-19Rename KSEG* defines to CKSEG* to match their names in 64 bit mode; alsoMiod Vallat
define more 64 bit spaces.
2009-11-19All callers of updateimask() immediately enable interrupts afterwards, so doMiod Vallat
it in updateimask() itself. No functional change.
2009-11-19Remove code allowing native binaries with O32 ABI to run, there aren't any...Miod Vallat
2009-11-19Factor triplicated code responsible to add memory information into aMiod Vallat
single place.
2009-11-18Stricter type usage (width and signedness); first step towards 64 bit ptes.Miod Vallat
2009-11-12typoMiod Vallat
2009-11-07Replace option TGT_ORIGIN200 and TGT_ORIGIN2000 with a single option,Miod Vallat
TGT_ORIGIN, which enables support for all IP27 and IP35 systems. The original two options have always been used together, and go back to when pefo thought supporting multiple nodes would be significant work. Since an Origin 200 can be a dual-node system, making a distinction between single node and multiple node systems is a moot point anyway. Be sure to rerun config(8) before rebuilding a kernel.
2009-11-07Change sgi system identification from a single system type list, to a smallerMiod Vallat
system type list (which really is the system family) and a subsystem type. No functional change yet.
2009-11-04Get rid of __HAVE_GENERIC_SOFT_INTERRUPTS now that all our platforms support it.Mark Kettenis
ok jsing@, miod@
2009-10-30Support IP30 secondary cpu bootup. ok miod@Takuya ASADA
2009-10-26Rename struct confargs to struct mainbus_attach_args for consistency and alsoMiod Vallat
to prevent further abuse of it.