freebsd-dev/sys
Ian Lepore 686450c898 Import ARM_INTRNG, the "next generation" interrupt architecture for arm
and armv6 architecures.  The primary enhancement over the old design is
support for hierarchical interrupt controllers (such as a gpio driver
which can receive interrupts from a root PIC and act as a PIC itself for
clients interested in handling a change of gpio pin state as an
interrupt).  The new code also provides an infrastructure for mapping
interrupts described in metadata in the form of a "controller reference
plus interrupt number" tuple into the simple "0-n" flat numeric space
understood by rman and the bus resource mechanisms.

Use of the new code is enabled by setting the ARM_INTRNG option, and by
making a few simple changes to the platform's support code.  In addition
each existing PIC driver needs changes to be ready for INTRNG; this commit
contains the changes for the arm/gic driver, which most armv6 SoCs use, but
it does not enable the new code yet on any platform.

This project has been many years in the making, starting as a GSoC project
by Jakub Klama (jceel@) in 2012.  That didn't get committed right away and
the source base evolved out from under it to some degree.  In 2014 I rebased
the diffs to then -current and did some enhancements in the area of mapping
interrupt numbers and storing associated fdt data, then the project went
cold again for a while.  Eventually Svata Kraus took that work in progress
and did another big round of work on it, removing most of the remaining
rough edges.  Finally I took that and made one more pass through it, mostly
disabling the "INTR_SOLO" feature for now, pending further design
discussions on how to most efficiently dispatch a pending interrupt through
more than one layer of PIC.  The current code with the INTR_SOLO feature
disabled uses approximate 100 extra cpu cycles for each cascaded PIC the
interrupt has to be passed to, so what's left to do is about efficiency, not
correct operation.

Differential Revision:	https://reviews.freebsd.org/D2047
2015-10-18 18:26:19 +00:00
..
amd64 Remove compatibility shims for legacy ATA device names. 2015-10-11 13:01:51 +00:00
arm Import ARM_INTRNG, the "next generation" interrupt architecture for arm 2015-10-18 18:26:19 +00:00
arm64 Correctly align the stack. The early csu assumed we passed the aux vector 2015-10-18 13:23:21 +00:00
boot Change gptldr from relocating 0xfff1 bytes of boot2 to relocating 0x20000 2015-10-08 15:38:34 +00:00
bsm
cam Make delete method set via kern.cam.da.X.delete_method persistent. 2015-10-11 18:26:06 +00:00
cddl MFV r289526: 2015-10-18 18:08:33 +00:00
compat Properly format pointer size independent CloudABI system calls. 2015-10-08 05:27:45 +00:00
conf Import ARM_INTRNG, the "next generation" interrupt architecture for arm 2015-10-18 18:26:19 +00:00
contrib Really fix ipfilter bug 3600459. 2015-10-18 03:09:03 +00:00
crypto const'ify an arg that we don't update... 2015-07-29 23:37:15 +00:00
ddb Make kstack_pages a tunable on arm, x86, and powepc. On i386, the 2015-08-10 17:18:21 +00:00
dev drop a bunch of white space at end of lines and end of files... 2015-10-18 08:13:51 +00:00
fs Ensure that when a blockable open of fifo returns success, a valid 2015-09-20 21:18:33 +00:00
gdb
geom Remove compatibility shims for legacy ATA device names. 2015-10-11 13:01:51 +00:00
gnu Fixing a memory leak on module unloading. 2015-09-11 22:43:35 +00:00
i386 Remove compatibility shims for legacy ATA device names. 2015-10-11 13:01:51 +00:00
isa
kern Replace /dev/acd0 with /dev/cd1 2015-10-17 08:51:10 +00:00
kgssapi
libkern Add the __aeabi_memclr8 symbol, clang 3.7 uses this. 2015-09-21 18:35:32 +00:00
mips Correctly use the default values for location of MAC addrs of arge0, 2015-10-18 04:50:51 +00:00
modules Use the right variable name. 2015-10-16 10:26:15 +00:00
net Remove several compat functions from pre-fib era. 2015-10-17 17:26:44 +00:00
net80211 net80211: move ieee80211_free_node() call on error from ic_raw_xmit() to ieee80211_raw_output(). 2015-10-12 04:55:20 +00:00
netgraph Add support for PPP-Max-Payload PPPoE tag (RFC4638). 2015-09-11 09:15:27 +00:00
netinet Fix deletion of ifaddr lle entries when deleting prefix from interface in 2015-10-18 12:26:25 +00:00
netinet6 Invoke lle_event for new entry iff it has lladdr set. 2015-10-04 19:10:27 +00:00
netipsec Take extra reference to security policy before calling crypto_dispatch(). 2015-09-30 08:16:33 +00:00
netnatm
netpfil pf: Fix TSO issues 2015-10-14 16:21:41 +00:00
netsmb
nfs Wait up to 10 seconds for late-initializing network interfaces to arrive. 2015-09-26 13:55:55 +00:00
nfsclient
nfsserver
nlm
ofed Fix build broken by r287861. 2015-09-16 15:40:08 +00:00
opencrypto Make IPsec work with AES-GCM and AES-ICM (aka CTR) in OCF... IPsec 2015-08-04 17:47:11 +00:00
pc98 Remove compatibility shims for legacy ATA device names. 2015-10-11 13:01:51 +00:00
powerpc Use IIC_EBUSBSY and IIC_BUSERR status values consistantly across all drivers. 2015-10-09 22:49:50 +00:00
rpc Increase group limit for kerberized NFSv4 2015-09-26 16:30:16 +00:00
security
sparc64 Add support for weak symbols to the kernel linkers. It means that 2015-09-20 01:27:59 +00:00
sys page sized is not spelled 4096 on all arches... 2015-10-18 08:08:37 +00:00
teken Sync HPA and VPA implementations with CUP. 2015-08-24 07:49:27 +00:00
tools Rename the /usr/share/doc/legal files to driver.LICENSE to work around 2015-10-16 00:38:05 +00:00
ufs Do not relocate extents to make them contiguous if the underlying drive can do 2015-10-16 03:06:02 +00:00
vm Only marker is guaranteed to be present on the queue after the relock 2015-10-18 09:33:28 +00:00
x86 Don't page-align the physical address when calling PHYS_TO_VM_PAGE(). 2015-10-17 14:58:55 +00:00
xdr
xen xen/console: Introduce a new console driver for Xen guest 2015-10-08 16:39:43 +00:00
Makefile