History log of /openbsd-current/sys/arch/armv7/marvell/mvmpic.c
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 1.7 10-Apr-2023 jsg

spelling


Revision tags: OPENBSD_7_3_BASE
# 1.6 05-Mar-2023 jmatthew

Mask off IPL flags before storing the IPL for an interrupt.
This fixes the IPL calculations in mpic_calc_mask() in the presence
of IPL_MPSAFE interrupts such as mvneta(4).

ok patrick@ kettenis@ dlg@


Revision tags: OPENBSD_7_1_BASE OPENBSD_7_2_BASE
# 1.5 24-Oct-2021 mpi

Constify struct cfattach.

ok visa@ a long time ago, ok patrick@


Revision tags: OPENBSD_6_8_BASE OPENBSD_6_9_BASE OPENBSD_7_0_BASE
# 1.4 14-Jul-2020 patrick

Extend the interrupt API on arm64 and armv7 to be able to pass around
a struct cpu_info *. From a driver point of view the fdt_intr_establish_*
API now also exist same functions with a *_cpu suffix. Internally the
"old" functions now call their *_cpu counterparts, passing NULL as ci.
NULL will be interpreted as primary CPU in the interrupt controller code.

The internal framework for interrupt controllers has been changed so that
the establish methods provided by an interrupt controller function always
takes a struct cpu_info *.

Some drivers, like imxgpio(4) and rkgpio(4), only have a single interrupt
line for multiple pins. On those we simply disallow trying to establish
an interrupt on a non-primary CPU, returning NULL.

Since we do not have MP yet on armv7, all armv7 interrupt controllers do
return NULL if an attempt is made to establish an interrupt on a different
CPU. That said, so far there's no way this can happen. If we ever gain
MP support, this is a reminder that the interrupt controller drivers have
to be adjusted.

Prompted by dlg@
ok kettenis@


Revision tags: OPENBSD_6_5_BASE OPENBSD_6_6_BASE OPENBSD_6_7_BASE
# 1.3 07-Dec-2018 patrick

For shared interrupts we need to make sure that we register
with the lowest IPL. Once we actually run the IRQ handler
we raise to the highest IPL. Fixes a crash seen when having
a network card in the PCIe slot of the MacchiatoBin.

ok ccardenas@


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE
# 1.2 25-Aug-2017 patrick

Add missing OpenBSD CVS tag


# 1.1 25-Aug-2017 patrick

Add mvmpic(4), a driver for the interrupt controller that sits between
the ARM Generic Interrupt Controller and the Ethernet controller on
the Armada 388 (SolidRun ClearFog, Turris Omnia).

ok kettenis@


# 1.6 05-Mar-2023 jmatthew

Mask off IPL flags before storing the IPL for an interrupt.
This fixes the IPL calculations in mpic_calc_mask() in the presence
of IPL_MPSAFE interrupts such as mvneta(4).

ok patrick@ kettenis@ dlg@


Revision tags: OPENBSD_7_1_BASE OPENBSD_7_2_BASE
# 1.5 24-Oct-2021 mpi

Constify struct cfattach.

ok visa@ a long time ago, ok patrick@


Revision tags: OPENBSD_6_8_BASE OPENBSD_6_9_BASE OPENBSD_7_0_BASE
# 1.4 14-Jul-2020 patrick

Extend the interrupt API on arm64 and armv7 to be able to pass around
a struct cpu_info *. From a driver point of view the fdt_intr_establish_*
API now also exist same functions with a *_cpu suffix. Internally the
"old" functions now call their *_cpu counterparts, passing NULL as ci.
NULL will be interpreted as primary CPU in the interrupt controller code.

The internal framework for interrupt controllers has been changed so that
the establish methods provided by an interrupt controller function always
takes a struct cpu_info *.

Some drivers, like imxgpio(4) and rkgpio(4), only have a single interrupt
line for multiple pins. On those we simply disallow trying to establish
an interrupt on a non-primary CPU, returning NULL.

Since we do not have MP yet on armv7, all armv7 interrupt controllers do
return NULL if an attempt is made to establish an interrupt on a different
CPU. That said, so far there's no way this can happen. If we ever gain
MP support, this is a reminder that the interrupt controller drivers have
to be adjusted.

Prompted by dlg@
ok kettenis@


Revision tags: OPENBSD_6_5_BASE OPENBSD_6_6_BASE OPENBSD_6_7_BASE
# 1.3 07-Dec-2018 patrick

For shared interrupts we need to make sure that we register
with the lowest IPL. Once we actually run the IRQ handler
we raise to the highest IPL. Fixes a crash seen when having
a network card in the PCIe slot of the MacchiatoBin.

ok ccardenas@


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE
# 1.2 25-Aug-2017 patrick

Add missing OpenBSD CVS tag


# 1.1 25-Aug-2017 patrick

Add mvmpic(4), a driver for the interrupt controller that sits between
the ARM Generic Interrupt Controller and the Ethernet controller on
the Armada 388 (SolidRun ClearFog, Turris Omnia).

ok kettenis@


# 1.5 24-Oct-2021 mpi

Constify struct cfattach.

ok visa@ a long time ago, ok patrick@


Revision tags: OPENBSD_6_8_BASE OPENBSD_6_9_BASE OPENBSD_7_0_BASE
# 1.4 14-Jul-2020 patrick

Extend the interrupt API on arm64 and armv7 to be able to pass around
a struct cpu_info *. From a driver point of view the fdt_intr_establish_*
API now also exist same functions with a *_cpu suffix. Internally the
"old" functions now call their *_cpu counterparts, passing NULL as ci.
NULL will be interpreted as primary CPU in the interrupt controller code.

The internal framework for interrupt controllers has been changed so that
the establish methods provided by an interrupt controller function always
takes a struct cpu_info *.

Some drivers, like imxgpio(4) and rkgpio(4), only have a single interrupt
line for multiple pins. On those we simply disallow trying to establish
an interrupt on a non-primary CPU, returning NULL.

Since we do not have MP yet on armv7, all armv7 interrupt controllers do
return NULL if an attempt is made to establish an interrupt on a different
CPU. That said, so far there's no way this can happen. If we ever gain
MP support, this is a reminder that the interrupt controller drivers have
to be adjusted.

Prompted by dlg@
ok kettenis@


Revision tags: OPENBSD_6_5_BASE OPENBSD_6_6_BASE OPENBSD_6_7_BASE
# 1.3 07-Dec-2018 patrick

For shared interrupts we need to make sure that we register
with the lowest IPL. Once we actually run the IRQ handler
we raise to the highest IPL. Fixes a crash seen when having
a network card in the PCIe slot of the MacchiatoBin.

ok ccardenas@


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE
# 1.2 25-Aug-2017 patrick

Add missing OpenBSD CVS tag


# 1.1 25-Aug-2017 patrick

Add mvmpic(4), a driver for the interrupt controller that sits between
the ARM Generic Interrupt Controller and the Ethernet controller on
the Armada 388 (SolidRun ClearFog, Turris Omnia).

ok kettenis@


# 1.4 14-Jul-2020 patrick

Extend the interrupt API on arm64 and armv7 to be able to pass around
a struct cpu_info *. From a driver point of view the fdt_intr_establish_*
API now also exist same functions with a *_cpu suffix. Internally the
"old" functions now call their *_cpu counterparts, passing NULL as ci.
NULL will be interpreted as primary CPU in the interrupt controller code.

The internal framework for interrupt controllers has been changed so that
the establish methods provided by an interrupt controller function always
takes a struct cpu_info *.

Some drivers, like imxgpio(4) and rkgpio(4), only have a single interrupt
line for multiple pins. On those we simply disallow trying to establish
an interrupt on a non-primary CPU, returning NULL.

Since we do not have MP yet on armv7, all armv7 interrupt controllers do
return NULL if an attempt is made to establish an interrupt on a different
CPU. That said, so far there's no way this can happen. If we ever gain
MP support, this is a reminder that the interrupt controller drivers have
to be adjusted.

Prompted by dlg@
ok kettenis@


Revision tags: OPENBSD_6_5_BASE OPENBSD_6_6_BASE OPENBSD_6_7_BASE
# 1.3 07-Dec-2018 patrick

For shared interrupts we need to make sure that we register
with the lowest IPL. Once we actually run the IRQ handler
we raise to the highest IPL. Fixes a crash seen when having
a network card in the PCIe slot of the MacchiatoBin.

ok ccardenas@


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE
# 1.2 25-Aug-2017 patrick

Add missing OpenBSD CVS tag


# 1.1 25-Aug-2017 patrick

Add mvmpic(4), a driver for the interrupt controller that sits between
the ARM Generic Interrupt Controller and the Ethernet controller on
the Armada 388 (SolidRun ClearFog, Turris Omnia).

ok kettenis@


# 1.3 07-Dec-2018 patrick

For shared interrupts we need to make sure that we register
with the lowest IPL. Once we actually run the IRQ handler
we raise to the highest IPL. Fixes a crash seen when having
a network card in the PCIe slot of the MacchiatoBin.

ok ccardenas@


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE
# 1.2 25-Aug-2017 patrick

Add missing OpenBSD CVS tag


# 1.1 25-Aug-2017 patrick

Add mvmpic(4), a driver for the interrupt controller that sits between
the ARM Generic Interrupt Controller and the Ethernet controller on
the Armada 388 (SolidRun ClearFog, Turris Omnia).

ok kettenis@


Revision tags: OPENBSD_6_2_BASE
# 1.2 25-Aug-2017 patrick

Add missing OpenBSD CVS tag


# 1.1 25-Aug-2017 patrick

Add mvmpic(4), a driver for the interrupt controller that sits between
the ARM Generic Interrupt Controller and the Ethernet controller on
the Armada 388 (SolidRun ClearFog, Turris Omnia).

ok kettenis@