opnsense-src/sys
Kornel Duleba 986bbba9a6 arm/mv: Don't rely on firmware MSI mapping in ICU
On Armada8k boards various peripherals (e.g. USB) have interrupt lines
connected to on of the ICU interrupt controllers.
After an interrupt is detected it triggers MSI to a given address,
with a programmed value. This in turn triggers an SPI interrupt.
Normally MSI vector should be allocated by ICUs parent and set
during interrupt allocation.
Instead of doing that we relied on the ICU being pre-configured in firmware.
This worked with EDK2 and older versions of U-Boot, but in the newer
ones that is no longer the case.
Extend ICU msi-parents - GICP and SEI to support MSI interface
and use it during interrupt allocation.
This allows us to boot on Armada 7k/8k SoCs independent from the
firmware configuration and successfully use modern U-Boot + device tree.

For SATA interrupts we need to apply a WA previously done in firmware.
We have two SATA ports connected to one controller.
Each ports gets its own interrupt, but only one of them is
described in dts, also ahci_generic driver expects only one irq too.
Fix it by mapping both interrupts to the same MSI when one of them
is allocated, which allows us to use both SATA ports.

Reviewed by: mmel, mw
Obtained from: Semihalf
Sponsored by: Marvell
Differential Revision: https://reviews.freebsd.org/D28803
2021-07-20 23:24:42 +02:00
..
amd64 linux(4): Allow musl brand to use FUTEX_REQUEUE op. 2021-07-20 14:39:20 +03:00
arm arm/mv: Don't rely on firmware MSI mapping in ICU 2021-07-20 23:24:42 +02:00
arm64 Split out the arm64 ID field comparison function 2021-07-19 21:30:11 +00:00
bsm Add aio_writev and aio_readv 2021-01-02 19:57:58 -07:00
cam cam: Mark the qos data is valid in xpd_done_direct() too. 2021-07-17 16:12:00 -06:00
cddl fbt: Remove some handling for multiple CTF containers 2021-04-02 17:49:13 -04:00
compat linux(4): Factor out the futex_wait() op into linux_futex_wait(). 2021-07-20 14:40:24 +03:00
conf pf: fix LINT build 2021-07-20 18:08:30 +02:00
contrib zfs: Remove zfs-images submodule 2021-07-19 16:40:09 -04:00
crypto ossl: Use crypto_cursor_segment(). 2021-05-25 16:59:19 -07:00
ddb fix style nit: space after if 2021-05-05 15:26:09 -06:00
dev cxgbe(4): Initialize abs_id for ctrl and ofld queues. 2021-07-20 00:54:13 -07:00
dts dts: Bump the freebsd branding version to 5.13 2021-07-01 18:48:56 +02:00
fs nfscl: Send stateid.seqid of 0 for NFSv4.1/4.2 mounts 2021-07-19 17:35:39 -07:00
gdb gdb: report specific stop reason for watchpoints 2021-03-30 11:36:41 -03:00
geom eli: Zero pad bytes that arise when certain auth algorithms are used 2021-07-15 12:23:04 -04:00
gnu Remove the old dts imported tree. 2021-01-15 20:09:55 +01:00
i386 linux(4): Allow musl brand to use FUTEX_REQUEUE op. 2021-07-20 14:39:20 +03:00
isa newbus: Move from bus_child_{pnpinfo,location}_src to bus_child_{pnpinfo,location} with sbuf 2021-06-22 20:52:06 -06:00
kern Implement unprivileged chroot 2021-07-20 08:57:53 +00:00
kgssapi opencrypto: Introduce crypto_dispatch_async() 2021-02-08 09:19:19 -05:00
libkern Add missing libkern/strnstr.c file 2021-07-14 17:56:03 -07:00
mips Pass the syscall number to capsicum permission-denied signals 2021-07-16 18:06:44 +01:00
modules pf: syncookie support 2021-07-20 10:36:13 +02:00
net pf: clean up syncookie callout on vnet shutdown 2021-07-20 21:13:25 +02:00
net80211 net80211: ieee80211_probereq_ie fix length calculation for hw scans 2021-06-28 12:17:11 +00:00
netgraph Consistently use the SOLISTENING() macro 2021-06-14 17:32:27 -04:00
netinet pf: syncookie support 2021-07-20 10:36:13 +02:00
netinet6 sctp: Fix errno in case of association setup failures 2021-07-09 23:19:25 +02:00
netipsec ipsec: globalize lft zone and zero out buffers at allocation time 2021-06-28 08:14:26 +00:00
netpfil pf: clean up syncookie callout on vnet shutdown 2021-07-20 21:13:25 +02:00
netsmb netsmb: Avoid a read-after-free in smb_t2_request_int() 2021-05-26 10:45:40 -04:00
nfs Fix panic when using BOOTP to resolve root path. 2021-03-28 14:02:40 -05:00
nfsclient nfs: Cleanup dead files 2021-03-17 06:16:31 +11:00
nfsserver nfs: Cleanup dead files 2021-03-17 06:16:31 +11:00
nlm
ofed Fix LINT kernel build issues after c3987b8ea7 . 2021-07-12 18:00:30 +02:00
opencrypto crypto: Remove now-unused crypto_cursor_seg{base,len}. 2021-06-16 15:23:16 -07:00
powerpc Pass the syscall number to capsicum permission-denied signals 2021-07-16 18:06:44 +01:00
riscv Pass the syscall number to capsicum permission-denied signals 2021-07-16 18:06:44 +01:00
rpc Consistently use the SOLISTENING() macro 2021-06-14 17:32:27 -04:00
security mac: cheaper check for ifnet_create_mbuf and ifnet_check_transmit 2021-06-29 15:06:45 +02:00
sys linux(4): Modify sv_onexec hook to return an error. 2021-07-20 09:56:25 +03:00
teken loader: implement framebuffer console 2021-01-02 21:41:36 +02:00
tests tests: Revise FIB lookups per second benchmarking routines 2021-06-17 08:49:09 +02:00
tools makesyscalls.lua: improve generated file style(9) compliance 2021-05-13 13:59:25 -04:00
ufs ffs_softdep: force sync if journal is low in journal_check_space 2021-06-23 23:47:05 +03:00
vm uma: Fix a few problems with KASAN integration 2021-07-09 20:38:50 -04:00
x86 Drop "All rights reserved" from my copyright statements. 2021-07-20 10:05:50 +03:00
xdr
xen x86/xen: remove PVHv1 code 2021-05-17 11:41:21 +02:00
Makefile