Apple M1 Pro/Max SoCs come with a new version of the interrupt controller.
authorkettenis <kettenis@openbsd.org>
Tue, 1 Mar 2022 21:29:10 +0000 (21:29 +0000)
committerkettenis <kettenis@openbsd.org>
Tue, 1 Mar 2022 21:29:10 +0000 (21:29 +0000)
commitdefbb6a1a100cf354b8df9b3b5577ffa63a8e97f
treed65f84f7ce208a40c5b77f425fda0b9f91715054
parent3e1094ec6460013d6bc907e310b107719cb6446b
Apple M1 Pro/Max SoCs come with a new version of the interrupt controller.
This version appears to be more scalable (supports more cores, more
interrupts) but is still fairly similar to the previous generation so
it makes sense for them to share a driver.  One major difference is that
it seems that the new interrupt controller no longer has the ability to
have external interrupts target specific CPU cores.  Instead it delivers
them to whichever core is willing to handle the interrupt.  Since this
currently isn't compatible with what OpenBSD wants we disable the
delivery of external interrupts to the secondary cores by setting some
bits in an implementation-defined system register.

This makes OpenBSD run on M1 Pro/Max machines.

ok jsg@
sys/arch/arm64/dev/aplintc.c