History log of /src/sys/arch/mips/include/intr.h |
Revision | | Date | Author | Comments |
1.13 |
| 16-Feb-2021 |
simonb | Add no-profiled attribute for splhigh_noprof() and splx_noprof().
|
1.12 |
| 17-Aug-2020 |
skrll | branches: 1.12.2; Disable __HAVE_PREEMPTION. It is currently marked
#if defined(MULTIPROCESSOR) && defined(__HAVE_FAST_SOFTINTS)
but has no chance of working on OCTEON due to at least the spl functions
|
1.11 |
| 26-Jul-2020 |
simonb | #define<tab> Nuke trailing whitespace.
|
1.10 |
| 06-Jun-2015 |
matt | Add a IPI for watchdogs.
|
1.9 |
| 01-Jun-2015 |
matt | Rework cavium support in preparation for MULTIPROCESSOR support
|
1.8 |
| 19-May-2014 |
rmind | branches: 1.8.4; Implement MI IPI interface with cross-call support.
|
1.7 |
| 11-Mar-2012 |
mrg | branches: 1.7.2; 1.7.12; normalise RCSID handling some.
|
1.6 |
| 03-Mar-2012 |
matt | define IPL_SAFEPRI which will be used by kern_synch.c to initialize safepri.
|
1.5 |
| 02-May-2011 |
matt | branches: 1.5.4; 1.5.8; Add an IPI for xcalls.
|
1.4 |
| 20-Feb-2011 |
matt | Major merge forward from matt-nb5-mips64. New fixup code. New common SPL code. New common interrupt code. Move related variables into structures. Cleanup locore (move MD variable into it). Kill StudlyCaps Use PCU for FPU
|
1.3 |
| 11-Apr-2000 |
nisimura | branches: 1.3.96; 1.3.98; 1.3.104; 1.3.106; Introduce cpu_intr() whose body is now provided by target ports in their own ways. Ugly fixup #define in machine/intr.h have gone. mips_hardware_intr global variable patch work has gone.
|
1.2 |
| 28-Mar-2000 |
simonb | Don't `extern' function declarations. While we're there, remove trailing blank lines and white space.
|
1.1 |
| 26-Mar-1998 |
jonathan | branches: 1.1.16; * Create /sys/arch/mips/include/intr.h, with extern declaration of interrupt-callout vector from mips locore dispatch code to port code. * Move branch-emulation declaration to mips/include/trap.h. * Garbage-collect pmax/pmax/trap.h. Not needed now pmax/pmax_trap.c is gone, and after above tidy-up.
|
1.1.16.1 |
| 20-Nov-2000 |
bouyer | Remove files that are no longer on the trunck
|
1.3.106.1 |
| 05-Mar-2011 |
bouyer | Sync with HEAD
|
1.3.104.1 |
| 06-Jun-2011 |
jruoho | Sync with HEAD.
|
1.3.98.2 |
| 31-May-2011 |
rmind | sync with head
|
1.3.98.1 |
| 05-Mar-2011 |
rmind | sync with head
|
1.3.96.18 |
| 19-Jan-2012 |
matt | When running an N32 kernel, run it with 64-bit addresses even though the kernel itself will only use 32-bit addresses. There are exceptions. bus_space_handles are now register_t instead of intptr_t. This allows them to contain XKPHYS addresses. Now bus_space can use XKPHYS addresses and not required non-KSEG1 devices to be mapped in KSEG2 thereby leaving more KSEG2 space for the kernel to use.
The cache range routines (but not index routines) now take a register_t instead of vaddr_t so they can too take a XKPHYS address. This allows the pmap to use a page's XKPHYS address to clean sync the icache thereby avoiding massive icache invalidations.
Since "cache" instruction effects are global to all CPUs and their caches, we can use the above to greatly simplify MP page isyncs. If using an O32 kernel with pages outside KSEG0, index ops still need to be performed since there isn't an a quick way of mapping the page.
|
1.3.96.17 |
| 31-Dec-2011 |
matt | Add IST_EDGE_RISING and IST_EDGE_FALLING.
|
1.3.96.16 |
| 05-Feb-2011 |
cliff | - protect option includes ("opt_multiprocessor.h") with #ifdef _KERNEL_OPT
|
1.3.96.15 |
| 05-Feb-2011 |
cliff | - include opt_multiprocessor.h for MULTIPROCESSOR dependency - add IPI tag defines for SUSPEND, HALT, and bump NIPIS
|
1.3.96.14 |
| 22-Dec-2010 |
matt | Cleanup definition of __HAVE_PREEMPTION
|
1.3.96.13 |
| 09-Jun-2010 |
matt | Add a _IPL_NAMES(pfx) which is a list of strings corresponding to the IPL names.
|
1.3.96.12 |
| 16-May-2010 |
matt | Add IPL_DDB. This is needed for watchdog on sbmips and for IPIs used by DDB. It's above IPL_SCHED but below IPL_HIGH.
|
1.3.96.11 |
| 15-May-2010 |
matt | Make sure we have a spare cell at the sr_map to make splintr will stop.
|
1.3.96.10 |
| 24-Mar-2010 |
cliff | - add IPI_AST variant of IPI_NOP to allow seperate event counting
|
1.3.96.9 |
| 21-Mar-2010 |
cliff | - if __INTR_PRIVATE is not defined, declare (but do not define) struct splsw
|
1.3.96.8 |
| 11-Mar-2010 |
matt | s/IPI_ISYNC/IPI_SYNCICACHE/
|
1.3.96.7 |
| 28-Feb-2010 |
matt | Split FPU support into separate file and keep internals private to that file. Make it MPSAFE. Change interface to be very similar to what's used on other architectures. Add l_md.md_fpcpu to mdlwp (needed for MPSAFE) Move pridtab from <mips/cpu.h> to <mips/locore.h> Add initial common IPI dispatcher. Split cpu_* routines from mips_machdep.c into cpu_subr.c Add cpu_startup_common which has the code replicated in half-dozen plus machdep.c files.
|
1.3.96.6 |
| 28-Feb-2010 |
matt | Now that we use stubs for the spl* calls, we no longer need to export struct splsw or struct ipl_sr_map to the world. So we protect those with __INTR_PRIVATE.
|
1.3.96.5 |
| 23-Feb-2010 |
matt | Instead of a read-only ipl_sr_bits, define a ipl_sr_map struct and fill that in the interrupt init routine. There's a default ipl_sr_map will operate correctly, but isn't performant.
|
1.3.96.4 |
| 22-Feb-2010 |
matt | Add initial list of IPIs for MIPS SMP.
|
1.3.96.3 |
| 16-Feb-2010 |
matt | Add __HAVE_PREEMPTION support for NetBSD/mips. Kill IPL_PREEMPT since it isn't needed.
|
1.3.96.2 |
| 15-Feb-2010 |
matt | Completely redo how interrupts and SPL are handled in NetBSD/mips. [XXX locore_mips1.S still needs to adapted.]
Nested interrupts now work. Except for MIPS_SOFT_MASK and MIPS_SR_INT_IE, how interrupts work is completely abstracted. spl is handled through the mips_splsw table. Direct manipulation of the status register is no longer done (except for MIPS_SR_INT_IE). A new <mips/intr.h> contains the common IPL/IST/spl* definitions for all ports.
Interrupt delivery is completely different. Clock interrupts may interrupt device interrupts. ci_idepth is now handled by the caller of cpu_intr as are softints (both can be optimized/simplified in the case of interrupts of usermode code). cpu_intr has new arguments and now get called at IPL_HIGH with MIPS_SR_INT_IE set and its logic is:
void cpu_intr(int ppl, vaddr_t pc, uint32_t status) { int ipl; uint32_t pending; while (ppl < (ipl = splintr(&pending))) { splx(ipl); /* enable interrupts */ <handle pending interrupts> (void)splhigh(); /* disable interrupts */ } }
mipsX_subr.S has been reworked. All user handlers (user_intr, systemcall, user_gen_exception) now use common return to usermode code in lwp_trampoline. ast() has changed to void ast(void) since the previous pc argument was never used.
The playstation IPL_ICU_MASK support has been nuked. MIPS_DYNAMIC_STATUS_MASK may soon be nuked soon.
A bunch of debugging code was left conditionalized by PARANOIA. If this code detects a bug, it will enter an infinite loop. It is expected that the kernel will be debugged in a simulator or with a hardware debugger so that the state at that point can be analyzed.
|
1.3.96.1 |
| 11-Apr-2000 |
matt | file intr.h was added on branch matt-nb5-mips64 on 2010-02-15 07:36:03 +0000
|
1.5.8.3 |
| 06-Mar-2012 |
mrg | sync to -current
|
1.5.8.2 |
| 06-Mar-2012 |
mrg | sync to -current
|
1.5.8.1 |
| 04-Mar-2012 |
mrg | sync to latest -current.
|
1.5.4.1 |
| 17-Apr-2012 |
yamt | sync with head
|
1.7.12.1 |
| 10-Aug-2014 |
tls | Rebase.
|
1.7.2.2 |
| 03-Dec-2017 |
jdolecek | update from HEAD
|
1.7.2.1 |
| 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
1.8.4.1 |
| 06-Jun-2015 |
skrll | Sync with HEAD
|
1.12.2.1 |
| 03-Apr-2021 |
thorpej | Sync with HEAD.
|