Home | History | Annotate | Download | only in arm32
History log of /src/sys/arch/arm/arm32/intr.c
RevisionDateAuthorComments
 1.36  20-Jun-2020  skrll KNF #includes

Remove some unnecessary ones while I'm here.
 1.35  20-Jun-2020  skrll Trailing whitespace
 1.34  01-Sep-2012  matt Rework includes and include <uvm/uvm_extern.h> for pmap.h
 1.33  27-Jul-2012  matt Remove safepri and use IPL_SAFEPRI instead. This may be defined in a MD
header file (if not, a value of 0 is assmued).
 1.32  20-Dec-2010  matt branches: 1.32.8; 1.32.16;
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.31  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.30  19-Nov-2008  matt branches: 1.30.6; 1.30.8;
No need to include <machine/atomic.h>
 1.29  11-Jun-2008  rafal branches: 1.29.2; 1.29.4; 1.29.10;
Let the shark boot again. Fixes port-shark/38929. While I'm here fix the
splsoft... macros to always raise the IPL (oops!).
 1.28  27-Apr-2008  matt branches: 1.28.2; 1.28.4;
Merge kernel changes in matt-armv6 to HEAD.
 1.27  24-Feb-2008  matt branches: 1.27.2; 1.27.4;
no need to include opt_irqstats.h
 1.26  06-Jan-2008  matt branches: 1.26.2; 1.26.6;
Cleanup softint lossage.
 1.25  03-Dec-2007  ad branches: 1.25.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.24  17-Oct-2007  garbled branches: 1.24.2;
Merge the ppcoea-renovation branch to HEAD.

This branch was a major cleanup and rototill of many of the various OEA
cpu based PPC ports that focused on sharing as much code as possible
between the various ports to eliminate near-identical copies of files in
every tree. Additionally there is a new PIC system that unifies the
interface to interrupt code for all different OEA ppc arches. The work
for this branch was done by a variety of people, too long to list here.

TODO:
bebox still needs work to complete the transition to -renovation.
ofppc still needs a bunch of work, which I will be looking at.
ev64260 still needs to be renovated
amigappc was not attempted.

NOTES:
pmppc was removed as an arch, and moved to a evbppc target.
 1.23  13-Aug-2007  tsutsui branches: 1.23.2;
Remove all references to spl_mask. Now it isn't used by any sources.
Discussed on port-arm.
 1.22  04-Aug-2007  tsutsui branches: 1.22.2;
Fix a typo in a debug printf message.
 1.21  09-Mar-2007  thorpej branches: 1.21.2; 1.21.8; 1.21.10; 1.21.12; 1.21.14; 1.21.16; 1.21.18;
Make ipl_t and ipl_cookie_t 8-bit values. kmutex is now down to 12 bytes
(from 20) on ARM.

Approved by Matt Thomas.
 1.20  20-Feb-2007  matt Don't double count uvmexp.softs
 1.19  20-Feb-2007  matt _setsoftintr takes a si, not a ipl, so don't map it.
Shark now boots to multiuser!
 1.18  18-Feb-2007  matt Move declaration of spl_smasks. make spl_smasks and soft_interrupts static.
 1.17  18-Feb-2007  matt Don't export spl_smasks or soft_interrupts. They are local to intr.c
Make sure that softintr_init() is called when needed.
Assume __HAVE_GENERIC_SOFT_INTERRUPTS is defined (since newlock2 requires it).
 1.16  18-Feb-2007  matt Map IPL_SOFTxxx to SI_SOFTxxx.
 1.15  18-Feb-2007  matt Add __HAVE_GENERIC_SOFT_INTERRUPTS support for shark. This was done by
extenting the current arm generic intrs to support softintrs. Add
IPL_SOFTCLOCK, IPL_SOFTNET, IPL_SOFTSERIAL.
 1.14  21-Dec-2006  yamt branches: 1.14.2;
merge yamt-splraiseipl branch.

- finish implementing splraiseipl (and makeiplcookie).
http://mail-index.NetBSD.org/tech-kern/2006/07/01/0000.html
- complete workqueue(9) and fix its ipl problem, which is reported
to cause audio skipping.
- fix netbt (at least compilation problems) for some ports.
- fix PR/33218.
 1.13  11-Dec-2005  christos branches: 1.13.20; 1.13.22;
merge ktrace-lwp.
 1.12  15-Jul-2003  lukem branches: 1.12.16;
__KERNEL_RCSID()
 1.11  16-Jun-2003  thorpej branches: 1.11.2;
Rename IPL_IMP -> IPL_VM.
 1.10  19-Oct-2002  bsh make atomic_{set,clear}_bit() inline for arm32 ports, and
add <machine/atomic.h> for them.
 1.9  06-Sep-2002  gehenna branches: 1.9.2;
Merge the gehenna-devsw branch into the trunk.

This merge changes the device switch tables from static array to
dynamically generated by config(8).

- All device switches is defined as a constant structure in device drivers.

- The new grammer ``device-major'' is introduced to ``files''.

device-major <prefix> char <num> [block <num>] [<rules>]

- All device major numbers must be listed up in port dependent majors.<arch>
by using this grammer.

- Added the new naming convention.
The name of the device switch must be <prefix>_[bc]devsw for auto-generation
of device switch tables.

- The backward compatibility of loading block/character device
switch by LKM framework is broken. This is necessary to convert
from block/character device major to device name in runtime and vice versa.

- The restriction to assign device major by LKM is completely removed.
We don't need to reserve LKM entries for dynamic loading of device switch.

- In compile time, device major numbers list is packed into the kernel and
the LKM framework will refer it to assign device major number dynamically.
 1.8  31-Jan-2002  chris branches: 1.8.4; 1.8.8;
Fix the type of irqmasks (any reason it's even been added as an extern when it's in irqhandler.h with the correct type and array size?)
 1.7  30-Jan-2002  thorpej New interrupt framework for NetBSD/evbarm, and accompanying new
interrupt code for the IQ80310 board support package.

XXX The Integrator board support package still uses the old-style
arm32 interrupt code, so some compatibility hacks have been added
for it. When the Integrator uses new-style interrupts, those hacks
can go away.
 1.6  07-Jan-2002  chris Finish up the changes to get LOOSE_PROTOTYPES working for cats.
Note that this leaves a few inconsistencies (no more than we already had though) eg initarm is now prototyped in arm32/machdep.h, however only cats currently makes use of that header.
 1.5  21-Dec-2001  bjh21 Merge ast() and userret() between arm32 and arm26. The implementation used
is the arm32 one.
 1.4  26-Nov-2001  thorpej Move interrupt-related stuff out of stubs.c into intr.c.
 1.3  27-Oct-2001  rearnsha branches: 1.3.2;
Pull in machine/conf.h to find out if we have the plcom serial driver.
If so, then call plcomsoft when appropriate.
 1.2  05-Sep-2001  matt branches: 1.2.4;
Change <machine/irqhandler.h> to <machine/intr.h> since the latter always
includes the former and is a standard include file.
 1.1  28-Jul-2001  chris branches: 1.1.2;
Move the generic arm32 files into arm/arm32 from arm32/arm32, tested kernel builds on cats and riscpc.
 1.1.2.6  10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.1.2.5  11-Feb-2002  jdolecek Sync w/ -current.
 1.1.2.4  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.1.2.3  13-Sep-2001  thorpej Update the kqueue branch to HEAD.
 1.1.2.2  03-Aug-2001  lukem update to -current
 1.1.2.1  28-Jul-2001  lukem file intr.c was added on branch kqueue on 2001-08-03 04:10:58 +0000
 1.2.4.1  12-Nov-2001  thorpej Sync the thorpej-mips-cache branch with -current.
 1.3.2.6  11-Nov-2002  nathanw Catch up to -current
 1.3.2.5  17-Sep-2002  nathanw Catch up to -current.
 1.3.2.4  28-Feb-2002  nathanw Catch up to -current.
 1.3.2.3  11-Jan-2002  nathanw More catchup.
 1.3.2.2  08-Jan-2002  nathanw Catch up to -current.
 1.3.2.1  27-Oct-2001  nathanw file intr.c was added on branch nathanw_sa on 2002-01-08 00:23:08 +0000
 1.8.8.1  19-May-2002  gehenna Remove unnecessary #include
 1.8.4.1  17-Mar-2002  thorpej IPL_IMP -> IPL_VM
 1.9.2.1  24-Oct-2002  bjh21 Sync with trunk.
 1.11.2.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.11.2.2  18-Sep-2004  skrll Sync with HEAD.
 1.11.2.1  03-Aug-2004  skrll Sync with HEAD
 1.12.16.6  27-Feb-2008  yamt sync with head.
 1.12.16.5  21-Jan-2008  yamt sync with head
 1.12.16.4  07-Dec-2007  yamt sync with head
 1.12.16.3  03-Sep-2007  yamt sync with head.
 1.12.16.2  26-Feb-2007  yamt sync with head.
 1.12.16.1  30-Dec-2006  yamt sync with head.
 1.13.22.6  18-Dec-2006  yamt ipl_to_spl: include ipl number in panic messages.
 1.13.22.5  23-Oct-2006  yamt ipl_to_spl: add IPL_STATCLOCK.
 1.13.22.4  09-Oct-2006  yamt add missing IPL_NONE case.
 1.13.22.3  21-Sep-2006  yamt implement splraiseipl for hpcarm, shark, and acorn32.
 1.13.22.2  21-Sep-2006  yamt revert the previous which was committed unintentionally.
 1.13.22.1  21-Sep-2006  yamt *** empty log message ***
 1.13.20.1  12-Jan-2007  ad Sync with head.
 1.14.2.2  12-Mar-2007  rmind Sync with HEAD.
 1.14.2.1  27-Feb-2007  yamt - sync with head.
- move sched_changepri back to kern_synch.c as it doesn't know PPQ anymore.
 1.21.18.3  09-Dec-2007  jmcneill Sync with HEAD.
 1.21.18.2  16-Aug-2007  jmcneill Sync with HEAD.
 1.21.18.1  09-Aug-2007  jmcneill Sync with HEAD.
 1.21.16.3  28-Feb-2008  rjs Sync with HEAD.
 1.21.16.2  26-Dec-2007  rjs Sync with HEAD.
 1.21.16.1  01-Nov-2007  rjs Sync with HEAD.
 1.21.14.1  15-Aug-2007  skrll Sync with HEAD.
 1.21.12.1  07-Aug-2007  matt Sync with HEAD.
 1.21.10.1  03-Oct-2007  garbled Sync with HEAD
 1.21.8.1  19-Apr-2007  thorpej Convert to the new atomic ops API.
 1.21.2.2  03-Dec-2007  ad Sync with HEAD.
 1.21.2.1  20-Aug-2007  ad Sync with HEAD.
 1.22.2.5  21-Mar-2008  chris Sync with head.
 1.22.2.4  26-Jan-2008  chris Fix merge botch.
 1.22.2.3  20-Jan-2008  chris Sync to HEAD.
 1.22.2.2  01-Jan-2008  chris Sync with HEAD.
 1.22.2.1  18-Aug-2007  chris Sync with HEAD
 1.23.2.4  23-Mar-2008  matt sync with HEAD
 1.23.2.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.23.2.2  09-Jan-2008  matt sync with HEAD
 1.23.2.1  11-Sep-2007  matt s/current_spl_level/curcpu()->ci_cpl/
 1.24.2.2  18-Feb-2008  mjf Sync with HEAD.
 1.24.2.1  08-Dec-2007  mjf Sync with HEAD.
 1.25.6.1  08-Jan-2008  bouyer Sync with HEAD
 1.26.6.4  17-Jan-2009  mjf Sync with HEAD.
 1.26.6.3  29-Jun-2008  mjf Sync with HEAD.
 1.26.6.2  02-Jun-2008  mjf Sync with HEAD.
 1.26.6.1  03-Apr-2008  mjf Sync with HEAD.
 1.26.2.1  24-Mar-2008  keiichi sync with head.
 1.27.4.3  11-Aug-2010  yamt sync with head.
 1.27.4.2  04-May-2009  yamt sync with head.
 1.27.4.1  16-May-2008  yamt sync with head.
 1.27.2.2  17-Jun-2008  yamt sync with head.
 1.27.2.1  18-May-2008  yamt sync with head.
 1.28.4.1  18-Jun-2008  simonb Sync with head.
 1.28.2.1  23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.29.10.1  15-Feb-2014  matt Merge armv7 support from HEAD, specifically support for the BCM5301X
and BCM56340 evbarm kernels.
 1.29.4.1  19-Jan-2009  skrll Sync with HEAD.
 1.29.2.1  13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.30.8.2  05-Mar-2011  rmind sync with head
 1.30.8.1  03-Jul-2010  rmind sync with head
 1.30.6.1  17-Aug-2010  uebayasi Sync with HEAD.
 1.32.16.1  28-Nov-2012  matt Merge improved arm support (especially Cortex) from HEAD
including OMAP and BCM53xx support.
 1.32.8.1  30-Oct-2012  yamt sync with head

RSS XML Feed