Home | History | Annotate | Download | only in xscale
History log of /src/sys/arch/arm/xscale/i80321_icu.c
RevisionDateAuthorComments
 1.27  06-Aug-2021  rin Simplify i80321_intr_calculate_masks().

G/C unused members of struct intrq.

No functional changes intended.
 1.26  20-Nov-2020  thorpej malloc(9) -> kmem(9)
 1.25  10-Nov-2019  chs branches: 1.25.8;
in many device attach paths, allocate memory with M_WAITOK instead of M_NOWAIT
and remove code to handle failures that can no longer happen.
 1.24  02-Aug-2012  skrll branches: 1.24.40;
Remove irqframe and replace with identical trapframe.
 1.23  12-Feb-2012  matt Change old-stlye-defintions to C89 prototypes.
Switch to CFATTACH_DECL_NEW/device_t/cfdata_t
Defer attaching interrupt evcnts.

Approved by releng.
 1.22  01-Jul-2011  dyoung branches: 1.22.2; 1.22.6;
#include <sys/bus.h> instead of <machine/bus.h>.
 1.21  20-Dec-2010  matt Move counting of faults, traps, intrs, soft[intr]s, syscalls, and nswtch
from uvmexp to per-cpu cpu_data and move them to 64bits. Remove unneeded
includes of <uvm/uvm_extern.h> and/or <uvm/uvm.h>.
 1.20  13-Jun-2010  tsutsui Apply fixes for PR port-arm/43339:
Set proper IPL_SOFTfoo values even in !FAST_SOFTINTS case.
Some assertions in MI code expect they have unique values,
per comments from rmind@.

Also cleanup various "interrupt hierarchy" code since IPL_NONE and
IPL_SOFTfoo should not be set by any hardware interrupt establish functions.

Ok'ed by mrg@, tested on shark and hpcarm.
 1.19  05-Jan-2009  briggs branches: 1.19.4; 1.19.6;
Ifdef out and comment a KASSERT() that's a bit too aggressive. There
are never any interrupts masked at IPL_VM before any interrupts have
been registered.
 1.18  27-Apr-2008  matt branches: 1.18.8; 1.18.10;
Merge kernel changes in matt-armv6 to HEAD.
 1.17  06-Jan-2008  matt branches: 1.17.6; 1.17.8; 1.17.10;
Cleanup softint lossage.
 1.16  11-Dec-2007  ad And you, be ye fruitful, and multiply; bring forth abundantly in the earth,
and multiply therein. (Genesis 9:6-8)
 1.15  03-Dec-2007  ad branches: 1.15.2; 1.15.4; 1.15.6;
Interrupt handling changes, in discussion since February:

- Reduce available SPL levels for hardware devices to none, vm, sched, high.
- Acquire kernel_lock only for interrupts at IPL_VM.
- Implement threaded soft interrupts.
 1.14  24-Nov-2006  wiz branches: 1.14.8; 1.14.24; 1.14.26; 1.14.28; 1.14.30; 1.14.36;
s/heirarchy/hierarchy/, from Zafer.
 1.13  08-Nov-2006  scw If I80321_HPI_ENABLED is defined, add support for handling interrupts from
devices hooked up to the HPI pin.

HPIs cannot be masked at the interrupt controller; they can only be masked
by disabling IRQs in the XScale core. To deal with this, we tweak the
interrupt frame so that IRQs are disabled when the interrupt dispatcher
returns due to a masked HPI interrupt. IRQs will be re-enabled by a
subsequent splx(9).

Fortunately the only instance where HPI is used is for the console UART
on a couple of boards, so this hack does not adversely affect performance.

Contributed by Wasabi Systems.
 1.12  17-May-2006  mrg branches: 1.12.8; 1.12.10;
remove 'inline' from the xxx_do_pending() function that is called from
external sources, and conflicts with it's prototype.
 1.11  24-Dec-2005  perry branches: 1.11.4; 1.11.6; 1.11.8; 1.11.12;
Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.
 1.10  11-Dec-2005  christos merge ktrace-lwp.
 1.9  03-Dec-2003  scw branches: 1.9.16;
As per the recent ixp425 fix (which is based on this code):

In the interrupt dispatch loop, make sure to handle any pending interrupts
which came in while we were dealing with the first interrupt(s), and which
are enabled at the current spl.

This fixes a problem where the intr_enabled/hw mask is not updated to
allow pending interrupts through until the next splx(). In some case,
interrupts could be delayed until the next clock tick.
 1.8  15-Jul-2003  lukem __KERNEL_RCSID()
 1.7  16-Jun-2003  thorpej branches: 1.7.2;
Rename IPL_IMP -> IPL_VM.
 1.6  09-Oct-2002  thorpej Clean up some bad interaction between the spl inlining stuff and
strict-prototypes.
 1.5  17-Aug-2002  briggs Add a new option EVBARM_BOARDTYPE to differentiate between different
evbarm ports. Inline _splraise/_spllower/splx for i80321 and iq80310
for more performance.
 1.4  14-Aug-2002  thorpej Don't need to frob CPSR in _splraise().
 1.3  30-Jul-2002  thorpej Use more descriptive interrupt names.
 1.2  28-Mar-2002  thorpej branches: 1.2.2; 1.2.4; 1.2.6; 1.2.8;
Fix soft interrupts.
 1.1  27-Mar-2002  thorpej Basic support for the Intel i80321 I/O Processor (Xscale core).

Note: This is a snapshot of work-in-progress; there are still some
bugs to be shaken out.
 1.2.8.3  06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.2.8.2  23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.2.8.1  28-Mar-2002  jdolecek file i80321_icu.c was added on branch kqueue on 2002-06-23 17:34:57 +0000
 1.2.6.2  18-Nov-2002  he Pull up revision 1.4 (requested by thorpej in ticket #679):
Don't need to frob CPSR in _splraise().
 1.2.6.1  11-Nov-2002  he Pull up revision 1.3 (requested by thorpej in ticket #583):
Use more descriptive interrupt names.
 1.2.4.1  30-Aug-2002  gehenna catch up with -current.
 1.2.2.5  18-Oct-2002  nathanw Catch up to -current.
 1.2.2.4  19-Aug-2002  thorpej Partial (ARM only) sync with trunk -- significant performance improvements
for XScale-based systems.
 1.2.2.3  01-Aug-2002  nathanw Catch up to -current.
 1.2.2.2  01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.2.2.1  28-Mar-2002  nathanw file i80321_icu.c was added on branch nathanw_sa on 2002-04-01 07:39:16 +0000
 1.7.2.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.7.2.2  18-Sep-2004  skrll Sync with HEAD.
 1.7.2.1  03-Aug-2004  skrll Sync with HEAD
 1.9.16.4  21-Jan-2008  yamt sync with head
 1.9.16.3  07-Dec-2007  yamt sync with head
 1.9.16.2  30-Dec-2006  yamt sync with head.
 1.9.16.1  21-Jun-2006  yamt sync with head.
 1.11.12.1  24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.11.8.1  24-May-2006  yamt sync with head.
 1.11.6.1  01-Jun-2006  kardel Sync with head.
 1.11.4.1  09-Sep-2006  rpaulo sync with head
 1.12.10.1  10-Dec-2006  yamt sync with head.
 1.12.8.2  12-Jan-2007  ad Sync with head.
 1.12.8.1  18-Nov-2006  ad Sync with head.
 1.14.36.3  18-Feb-2008  mjf Sync with HEAD.
 1.14.36.2  27-Dec-2007  mjf Sync with HEAD.
 1.14.36.1  08-Dec-2007  mjf Sync with HEAD.
 1.14.30.3  28-Jan-2008  matt Given the that there are only 4 IPLs (ignoring soft IPLs), a number of
cleanups can be done:
Remove _SPL_* aliases.
Don't store irqmasks in ci_cpl, just make it an ipl level.
Add fast softint switching support.
 1.14.30.2  09-Jan-2008  matt sync with HEAD
 1.14.30.1  09-Nov-2007  matt Make all the evbarm kernels build again. Fix lossage from rebase.
 1.14.28.2  20-Jan-2008  chris Sync to HEAD.
 1.14.28.1  01-Jan-2008  chris Sync with HEAD.
 1.14.26.1  09-Dec-2007  jmcneill Sync with HEAD.
 1.14.24.2  28-Feb-2008  rjs Sync with HEAD.
 1.14.24.1  26-Dec-2007  rjs Sync with HEAD.
 1.14.8.2  03-Dec-2007  ad Sync with HEAD.
 1.14.8.1  03-Dec-2007  ad Sync with HEAD.
 1.15.6.2  08-Jan-2008  bouyer Sync with HEAD
 1.15.6.1  13-Dec-2007  bouyer Sync with HEAD
 1.15.4.1  13-Dec-2007  yamt sync with head.
 1.15.2.1  26-Dec-2007  ad Sync with head.
 1.17.10.3  11-Aug-2010  yamt sync with head.
 1.17.10.2  04-May-2009  yamt sync with head.
 1.17.10.1  16-May-2008  yamt sync with head.
 1.17.8.1  18-May-2008  yamt sync with head.
 1.17.6.2  17-Jan-2009  mjf Sync with HEAD.
 1.17.6.1  02-Jun-2008  mjf Sync with HEAD.
 1.18.10.1  09-Jan-2009  snj Pull up following revision(s) (requested by briggs in ticket #237):
sys/arch/arm/xscale/i80321_icu.c: revision 1.19
Ifdef out and comment a KASSERT() that's a bit too aggressive. There
are never any interrupts masked at IPL_VM before any interrupts have
been registered.
 1.18.8.1  19-Jan-2009  skrll Sync with HEAD.
 1.19.6.2  05-Mar-2011  rmind sync with head
 1.19.6.1  03-Jul-2010  rmind sync with head
 1.19.4.1  17-Aug-2010  uebayasi Sync with HEAD.
 1.22.6.1  18-Feb-2012  mrg merge to -current.
 1.22.2.2  30-Oct-2012  yamt sync with head
 1.22.2.1  17-Apr-2012  yamt sync with head
 1.24.40.1  13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.25.8.1  14-Dec-2020  thorpej Sync w/ HEAD.

RSS XML Feed