summaryrefslogtreecommitdiff
path: root/sys/arch/mips64
AgeCommit message (Collapse)Author
2009-08-09Use the ANSI/ISO token paste operator. Requested by jsg@Joel Sing
ok miod@ jsg@
2009-08-06Make sure <machine/cpu.h> includes <machine/intr.h> when included with _LOCOREMiod Vallat
defined; cp0access.S relies on this.
2009-08-06Work in progress support for Loongson2E/2F processors; need option CPU_LOONGSON2Miod Vallat
in the kernel to be brought in, due to invasive differences in tlb operation. Comes with a separate cache operations file due to the cache being R5k-style with R10k-style way number encoding.
2009-08-06R4k-style coprocessor 0 config register uses 3 bits wide fields to tellMiod Vallat
L1 caches sizes; fix the masking accordingly.
2009-08-06Remove _InvalidateICachePage cache op, it isn't used by anything.Miod Vallat
2009-08-06Only compile RM7000 performance counter support if defined(RM7K_PERFCNTR).Miod Vallat
This code needs to be cleaned up, and made more generic to work with other processors counters as well.
2009-07-23Get rid of bus_mem_add_mapping().Miod Vallat
2009-07-22When disassembling, if our pc matches the beginning of a routine, thenMiod Vallat
it's at routine+0; do not search for the previous routine in the symbol table. This fixes tracebacks when the fault occurs on the first instruction of a routine.
2009-07-15missing va_end in bios_printf & dioopen. ok miod@Martynas Venckus
2009-06-17R14000 processors with revision 3 and above are actually R16000 revisionMiod Vallat
1 and above, so report them as such.
2009-06-13Enumerate all available nodes for hardware on IP27/IP35 systems; works to someMiod Vallat
extent, but isp(4) on other nodes do not work correctly yet.
2009-06-10Switch sgi to per-process AST, and move ast() from interrupt.c to trap.cMiod Vallat
where it can use userret() instead of duplicating it.
2009-06-02Add an r10k-specific cop0 control register.Miod Vallat
2009-05-27Rename the ast processing function from softintr() to ast(), to reduceMiod Vallat
confusion. Make sure this function is invoked with interrupts enabled now.
2009-05-25Years ago, I fixed an R5000 O2 instability by implementing a workaround forMiod Vallat
a chip bug, which was supposed to be fixed in that particular revision of the die but wasn't (tlbhandler.S 1.16). Being lazy, I did not write a runtime selection of the appropriate TLB handler code, although this was on my list. It turns out that this fix confuses the hell of R10000 processors revision 3 (but not earlier 2.x revisions), to the point of making the Origin 200 here hang so hard it would not even enter the NMI handler (don't ask me how I figured this was the cause). So it's time to choose the appropriate TLB handling flavour at runtime, building the trampoline code from the fixed exception handler location jumping to the handler address at runtime. As a bonus, kernels linked in KSEG0 get the address computation optimized and thus a smaller trampoline than before.
2009-05-22Drop almost unused <machine/psl.h> on sgi; move USERMODE() definition fromMiod Vallat
there to trap.c which is its only user. This also cleans up multiple inclusion of <machine/cpu.h> (because <machine/psl.h> includes it) in many places.
2009-05-21Make sure cpu_switchto() returns to the new proc with interrupts enabled (thisMiod Vallat
is bandaid until interrupt handling is made more sane.
2009-05-21In splinit(), adjust proc0 pcb values, for kthread to start with correctMiod Vallat
interrupt masks.
2009-05-21Make sure splx() reenables hardware interrupt sources, even there aren'tMiod Vallat
any such interrupts marked as pending.
2009-05-19Processing AST can trigger more AST. Loop on astpending instead of checkingMiod Vallat
only once.
2009-05-16Count LoadedProgram regions as free memory, since these are either the bootMiod Vallat
loader image (which we can safely overwrite) or the kernel image itself (in case of netboot) and there is already code to move the kernel image out of the free memory later on.
2009-05-15Revert 1.18, the memory bank allocation logic was actually correct, and IMiod Vallat
must have been on drugs when thinking otherwise.
2009-05-09Promote types in ARCBios function prototypes from int to long wheneverMiod Vallat
necessary, to allow the same C code to be used against 32 bit ARCBios, when compiled in 32 bit mode, or against 64 bit ARCBios, when compiled in native mode. Soon to be used by the boot blocks; this commit doesn't introduce any functional change yet.
2009-05-08Be sure to completely ignore ARCBios memory information on IP27 and IP35Miod Vallat
for now, as we get this information from elsewhere and bad things would happen if arcbios memory walk causes more memory segment entries to be populated than the KL memory walk will, later on.
2009-05-06Fix typo in a comment, and remove 20st-century mention of optionMiod Vallat
MACHINE_NONCONTIG (not even MACHINE_NEWNONCONTIG!)
2009-05-06Fix signedness of comparison used to know whether we have already reachedMiod Vallat
the next scheduled clock interrupt; the comparison would before always be true, causing the clock to really run at hz/2. While there, remove unused nanodelay() and attempt to clean clock initialization a bit.
2009-04-25Make pmap_steal_memory() return KSEG0 addresses only for kernels linked atMiod Vallat
KSEG0 addresses.
2009-04-25typo in commentsMiod Vallat
2009-04-19Add heuristics to tell IP27 and IP35 apart, as they will need to be handledMiod Vallat
differently at times.
2009-04-12Better constraints on the temporary register in atomic_{set,clear}bits_int.Miod Vallat
2009-03-26Remove cpu_wait(). It's original use was to be called from the reaper soOwain Ainsworth
MD code would free resources that couldn't be freed until we were no longer running in that processor. However, it's is unused on all architectures since mikeb@'s tss changes on x86 earlier in the year. ok miod@
2009-03-20Switch sgi to __HAVE_GENERIC_SOFT_INTERRUPTS.Miod Vallat
2009-02-15copystr(), copyinstr() and copyoutstr() should all return ENAMETOOLONG ifJoel Sing
string length exceeds maxlength. ok miod@
2008-12-03Some more ambigous -> ambiguous pointed out by mbalmer (there areStuart Henderson
others, these are the ones from code unlikely to be re-merged with upstream sources).
2008-10-23Move the va_copy define to <sys/stdrag.h> making sure it is uniformalyMark Kettenis
protected by __ISO_C_VISIBLE > 1999. With a little help from miod@. ok miod@
2008-10-15make random(9) return per-cpu values (by saving the seed in the cpuinfo),Theo de Raadt
which are uniform for the profclock on each cpu in a SMP system (but using a different seed for each cpu). on all cpus, avoid seeding with a value out of the [0, 2^31-1] range (since that is not stable) ok kettenis drahn
2008-10-10Add empty cpu_unidle() macros for architectures that currently don't doArtur Grabowski
anything special to prod a cpu to leave the idle loop in signotify. powerpc, i386, amd64 and sparc64 will follow soon so that everyone has the same interface to wake an idling cpu.
2008-10-10Define MAXCPUS on all architectures.Artur Grabowski
For now, sparc64 is arbitrarily set to 256 (only architecture that didn't have a practical limit in the code on the number of cpus).
2008-10-09Implement CPU_INFO_UNIT for everyone, not just MP kernels.Artur Grabowski
ok miod@
2008-09-23In pmap_steal_memory(), when a memory segment is completely allocated,Miod Vallat
remove it correctly from the array.
2008-09-23Fix uninitialized variable if the TOD clock value is horribly wrong.Miod Vallat
2008-09-07- replace dtoa w/ David's gdtoa, version 2008-03-15Martynas Venckus
- provide proper dtoa locks - use the real strtof implementation - add strtold, __hdtoa, __hldtoa - add %a/%A support - don't lose precision in printf, don't round to double anymore - implement extended-precision versions of libc functions: fpclassify, isnan, isinf, signbit, isnormal, isfinite, now that the ieee.h is fixed - separate vax versions of strtof, and __hdtoa - add complex math support. added functions: cacos, casin, catan, ccos, csin, ctan, cacosh, casinh, catanh, ccosh, csinh, ctanh, cexp, clog, cabs, cpow, csqrt, carg, cimag, conj, cproj, creal, cacosf, casinf, catanf, ccosf, csinf, ctanf, cacoshf, casinhf, catanhf, ccoshf, csinhf, ctanhf, cexpf, clogf, cabsf, cpowf, csqrtf, cargf, cimagf, conjf, cprojf, crealf - add fdim, fmax, fmin - add log2. (adapted implementation e_log.c. could be more acruate & faster, but it's good enough for now) - remove wrappers & cruft in libm, supposed to work-around mistakes in SVID, etc.; use ieee versions. fixes issues in python 2.6 for djm@ - make _digittoint static - proper definitions for i386, and amd64 in ieee.h - sh, powerpc don't really have extended-precision - add missing definitions for mips64 (quad), m{6,8}k (96-bit) float.h for LDBL_* - merge lead to frac for m{6,8}k, for gdtoa to work properly - add FRAC*BITS & EXT_TO_ARRAY32 definitions in ieee.h, for hdtoa&ldtoa to use - add EXT_IMPLICIT_NBIT definition, which indicates implicit normalization bit - add regression tests for libc: fpclassify and printf - arith.h & gd_qnan.h definitions - update ieee.h: hppa doesn't have quad-precision, hppa64 does - add missing prototypes to gdtoaimp - on 64-bit platforms make sure gdtoa doesn't use a long when it really wants an int - etc., what i may have forgotten... - bump libm major, due to removed&changed symbols - no libc bump, since this is riding on djm's libc major crank from a day ago discussed with / requested by / testing theo, sthen@, djm@, jsg@, merdely@, jsing@, tedu@, brad@, jakemsr@, and others. looks good to millert@ parts of the diff ok kettenis@ this commit does not include: - man page changes
2008-08-22Set PIE address range to avoid or minimize mmap pressure due to limitedKurt Miller
address space. The space between PAGE_SIZE and the non-pie fixed link address creates no mmap pressure so use that space for PIE. However on hppa the non-pie fixed link address is PAGE_SIZE so just use a small range for PIE to minimize mmap pressure. okay miod@
2008-07-28No longer clear ci_want_resched within cpu_switchto(), now that it's doneMiod Vallat
in the MI code.
2008-07-28In addition to cop0 sr, prevent cop0 ic from being modified inMiod Vallat
process_write_regs().
2008-07-25phyio -> physioMiod Vallat
2008-07-21- add proper double_t and float_t definitions for each archMartynas Venckus
- math.h shouldn't define FLT_EVAL_METHOD, but float.h should (per C99). remove from math.h, and add proper definitions in float.h ok millert@
2008-07-18Add a macro that clears the want_resched flag that need_resched sets.Artur Grabowski
Right now when mi_switch picks up the same proc, we didn't clear the flag which would mean that every time we service an AST we would attempt a context switch. For some architectures, amd64 being probably the most extreme, that meant attempting to context switch for every trap and interrupt. Now we clear_resched explicitly after every context switch, even if it didn't do anything. Which also allows us to remove some more code in cpu_switchto (not done yet). miod@ ok
2008-06-22Like alpha, db_stack_dump() on mips and sh needs complete frame informationMiod Vallat
and can not work from a stack address only. Mention this and abort instead of printing a wrong trace. (prefer kern.splassert=3 to =2 on these platforms)
2008-06-14A bunch of pool_get() + bzero() -> pool_get(..., .. | PR_ZERO)Michael Knudsen
conversions that should shave a few bytes off the kernel. ok henning, krw, jsing, oga, miod, and thib (``even though i usually prefer FOO|BAR''; thanks for looking.