summaryrefslogtreecommitdiffstats
path: root/sys/arch/octeon/dev/octeon_intr.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Let each interrupt controller driver choose how to implementvisa2019-03-171-2/+5
| | | | | | | intr_barrier(9). With this change, the barrier should finally work properly with cnmac(4) interrupts that have been assigned to secondary cores.
* Move intr_barrier(9) to the platform level so that it can be customized.visa2019-03-171-1/+7
|
* Unify the top-level structure of interrupt handles. This helpsvisa2019-03-161-8/+26
| | | | when implementing interrupt-specific logic for intr_barrier(9).
* Split octeon interrupt code into a glue layer and a CIU driver.visa2017-06-181-398/+61
| | | | | | | This makes possible to add drivers for other interrupt controllers on the platform. The glue layer has been derived from arm64/armv7.
* Move IPI control entry points into octeon_intr.c.visa2017-06-181-1/+68
| | | | Needed by upcoming driver changes.
* Extend the fdt interrupt API a little.visa2017-04-061-1/+15
|
* Add a routine for setting up interrupt handlers using fdt.visa2016-12-081-1/+32
| | | | ok kettenis@
* Add handling for the second interrupt bank.visa2016-12-041-29/+73
| | | | Needed by an upcoming driver.
* Implement octeon_intr_disestablish().visa2016-12-031-4/+32
|
* Drop stale prototypes and an outdated comment.visa2016-12-021-7/+1
|
* Simplify interrupt dispatching by processing requests withoutvisa2016-12-021-74/+73
| | | | prioritization by IPL.
* Drop pointless type casts.visa2016-11-201-9/+6
|
* Add $OpenBSD$ / replace $Id$ with $OpenBSD$.visa2016-07-161-0/+2
|
* Rename mips64's trap_frame into trapframe.mpi2016-03-061-3/+3
| | | | | | For coherency with other archs and in order to use it in MI code. ok visa@, tobiasu@
* xheart_splx() has to restore the interrupt mask even on secondary CPUsvisa2015-09-261-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | because each core has a separate mask. Otherwise the IPI can be left disabled accidentally on a non-primary CPU when the core uses the rendezvous mutex: 1. splraise(IPL_IPI) soft-masks the IPI. 2. An IPI hits and the CPU enters the interrupt handler. 3. The handler hard-masks the IPI. 4. The interrupt is not processed because of the CPU's current IPL. The IPI is left hard-masked on leaving the handler. 5. splx(s) lowers the IPL below IPL_IPI. However, the interrupt's hardware mask is left unchanged because of the CPU_IS_PRIMARY() check in xheart_splx(). After this, the system will eventually hang because the CPU does not respond to IPI requests of other cores. While here, fix a similar situation with CIU interrupts on octeon. This might save a few moments of debugging once non-primary CPUs are allowed to process CIU interrupts. ok miod@
* Let MP-safe interrupt handlers run without the kernel lock on octeon.visa2015-09-261-6/+16
| | | | ok kettenis@
* Do not grab the kernel lock for clock interrupts. Help and ok kettenis@miod2015-05-011-2/+2
|
* implement atomic operations using ll/sc, and convert rw_cas and callers of thejmatthew2014-09-301-2/+3
| | | | | | | pre-existing atomics to match. tested on sgi (octane) and octeon (erl) ok miod@ dlg@
* move octeonreg.h to a more generic location and add multiple inclusionjasper2013-06-021-1/+1
| | | | | | guards while here. ok uebayasi@
* Don't include <mips64/archtype.h> when you don't need it.miod2012-10-031-1/+0
|
* Split ever-growing mips <machine/cpu.h> into what 99% of the kernel needs,miod2012-10-031-0/+1
| | | | | | | which will remain in <machine/cpu.h>, and a new mips_cpu.h containing only the goriest md details, which are only of interest to a handful set of files; this is similar in spirit to what alpha does, but here <machine/cpu.h> does not include the new file.
* Handle the coprocessor 0 cause and status registers as a 64 bit value now,miod2012-09-291-1/+1
| | | | | as some odd mips designs need moro than 32 bits in there. This causes a lot of mechanical changes everywhere getsr() is used.
* Proide a mips_sync() macro to wrap asm("sync"), and replace gazillions ofmiod2012-09-291-3/+6
| | | | such statements with it.
* Remove leftover loongson or sgi references.miod2012-06-171-1/+1
|
* obio renamed iobus, moved interrupt handler code to dev/octeon_intr.csyuu2011-05-081-0/+323