| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
intr_barrier(9).
With this change, the barrier should finally work properly with
cnmac(4) interrupts that have been assigned to secondary cores.
|
| |
|
|
|
|
| |
when implementing interrupt-specific logic for intr_barrier(9).
|
|
|
|
|
|
|
| |
This makes possible to add drivers for other interrupt controllers
on the platform.
The glue layer has been derived from arm64/armv7.
|
|
|
|
| |
Needed by upcoming driver changes.
|
| |
|
|
|
|
| |
ok kettenis@
|
|
|
|
| |
Needed by an upcoming driver.
|
| |
|
| |
|
|
|
|
| |
prioritization by IPL.
|
| |
|
| |
|
|
|
|
|
|
| |
For coherency with other archs and in order to use it in MI code.
ok visa@, tobiasu@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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@
|
|
|
|
| |
ok kettenis@
|
| |
|
|
|
|
|
|
|
| |
pre-existing atomics to match.
tested on sgi (octane) and octeon (erl)
ok miod@ dlg@
|
|
|
|
|
|
| |
guards while here.
ok uebayasi@
|
| |
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
as some odd mips designs need moro than 32 bits in there. This causes a lot
of mechanical changes everywhere getsr() is used.
|
|
|
|
| |
such statements with it.
|
| |
|
|
|