History log of /openbsd-current/sys/arch/sparc64/dev/vbus.c
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 1.13 29-Mar-2024 miod

Drop the first argument of intr_establish().

Instead, require all callers to put the right value in the ih_pil field, and
have intr_establish() trust them rather than assigning this field again from
its first argument.

ok claudio@ kettenis@


Revision tags: OPENBSD_7_1_BASE OPENBSD_7_2_BASE OPENBSD_7_3_BASE OPENBSD_7_4_BASE OPENBSD_7_5_BASE
# 1.12 24-Oct-2021 mpi

Constify struct cfattach.

ok visa@ a long time ago


Revision tags: OPENBSD_6_4_BASE OPENBSD_6_5_BASE OPENBSD_6_6_BASE OPENBSD_6_7_BASE OPENBSD_6_8_BASE OPENBSD_6_9_BASE OPENBSD_7_0_BASE
# 1.11 27-Jun-2018 kettenis

Rework vbus(4) interrupt handling to be similar to cbus(4). Expose functions
to ack and enable/disable interrupts and don't enable interrupts by default.
Also don't ack interrupts by default.

Make use of this in vcons(4) to avoid interrupt storms that may occur
because of a race between the interrupt handler and the software
interrupt handler. Don't enable the interrupt handler unless somebody
actually has the console open. Ack the interrupt at the end of the softintr
handler.

Fixes console issue on SPARC T3 machines.

ok claudio@


Revision tags: OPENBSD_6_3_BASE
# 1.10 22-Dec-2017 kettenis

If we use the cookie-based interrupt API on sun4v, whe shouldn't put the
interrupts in the lookup table. On machines like the Oracle T7-2 this
would make the code believe that there is interrupt sharing, but since
we bypass intr_list_handler() when using the cookie-based interrupt API,
we wouldn't properly acknowledge the interrupt.

This fixes the last remaining problem with interrupts on the Oracle T7-2.


# 1.9 06-Dec-2017 kettenis

Implement support for using interrupt cookies in vbus(4) and vpci(4) as
introduced in version 3.0 of the Interrupt APIs group. This makes it possible
boot OpenBSD on SPARC T7/M7 hardware (although there still may be issues with
the onboard mpii(4) controller).


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE
# 1.8 27-Sep-2015 kettenis

Store the target CPU in "struct intrhand" and use it in intr_barrier().
Also use it wherever we configure the hardware to direct interrupts to the
right CPU.


Revision tags: OPENBSD_5_6_BASE OPENBSD_5_7_BASE OPENBSD_5_8_BASE
# 1.7 12-Jul-2014 tedu

add a size argument to free. will be used soon, but for now default to 0.
after discussions with beck deraadt kettenis.


Revision tags: OPENBSD_5_4_BASE OPENBSD_5_5_BASE
# 1.6 16-Jul-2013 kettenis

Add support for BUS_INTR_ESTABLISH_MPSAFE. This makes the previous commit
to vcons(4) actually have an effect.


Revision tags: OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE
# 1.5 11-Nov-2010 miod

Replace snprintf(foo, sizeof foo, "%s", ...) with strlcpy. ok deraadt@ krw@


Revision tags: OPENBSD_4_5_BASE OPENBSD_4_6_BASE OPENBSD_4_7_BASE OPENBSD_4_8_BASE
# 1.4 30-Dec-2008 kettenis

Pass down bus_dma tag.


# 1.3 10-Nov-2008 art

Use the correct sizeof for the _ca.
"obviously correct" kettenis@


# 1.2 12-Oct-2008 kettenis

Add interrupt support.


Revision tags: OPENBSD_4_4_BASE
# 1.1 08-Mar-2008 kettenis

Virtual bus for virtual devices on sun4v.


# 1.12 24-Oct-2021 mpi

Constify struct cfattach.

ok visa@ a long time ago


Revision tags: OPENBSD_6_4_BASE OPENBSD_6_5_BASE OPENBSD_6_6_BASE OPENBSD_6_7_BASE OPENBSD_6_8_BASE OPENBSD_6_9_BASE OPENBSD_7_0_BASE
# 1.11 27-Jun-2018 kettenis

Rework vbus(4) interrupt handling to be similar to cbus(4). Expose functions
to ack and enable/disable interrupts and don't enable interrupts by default.
Also don't ack interrupts by default.

Make use of this in vcons(4) to avoid interrupt storms that may occur
because of a race between the interrupt handler and the software
interrupt handler. Don't enable the interrupt handler unless somebody
actually has the console open. Ack the interrupt at the end of the softintr
handler.

Fixes console issue on SPARC T3 machines.

ok claudio@


Revision tags: OPENBSD_6_3_BASE
# 1.10 22-Dec-2017 kettenis

If we use the cookie-based interrupt API on sun4v, whe shouldn't put the
interrupts in the lookup table. On machines like the Oracle T7-2 this
would make the code believe that there is interrupt sharing, but since
we bypass intr_list_handler() when using the cookie-based interrupt API,
we wouldn't properly acknowledge the interrupt.

This fixes the last remaining problem with interrupts on the Oracle T7-2.


# 1.9 06-Dec-2017 kettenis

Implement support for using interrupt cookies in vbus(4) and vpci(4) as
introduced in version 3.0 of the Interrupt APIs group. This makes it possible
boot OpenBSD on SPARC T7/M7 hardware (although there still may be issues with
the onboard mpii(4) controller).


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE
# 1.8 27-Sep-2015 kettenis

Store the target CPU in "struct intrhand" and use it in intr_barrier().
Also use it wherever we configure the hardware to direct interrupts to the
right CPU.


Revision tags: OPENBSD_5_6_BASE OPENBSD_5_7_BASE OPENBSD_5_8_BASE
# 1.7 12-Jul-2014 tedu

add a size argument to free. will be used soon, but for now default to 0.
after discussions with beck deraadt kettenis.


Revision tags: OPENBSD_5_4_BASE OPENBSD_5_5_BASE
# 1.6 16-Jul-2013 kettenis

Add support for BUS_INTR_ESTABLISH_MPSAFE. This makes the previous commit
to vcons(4) actually have an effect.


Revision tags: OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE
# 1.5 11-Nov-2010 miod

Replace snprintf(foo, sizeof foo, "%s", ...) with strlcpy. ok deraadt@ krw@


Revision tags: OPENBSD_4_5_BASE OPENBSD_4_6_BASE OPENBSD_4_7_BASE OPENBSD_4_8_BASE
# 1.4 30-Dec-2008 kettenis

Pass down bus_dma tag.


# 1.3 10-Nov-2008 art

Use the correct sizeof for the _ca.
"obviously correct" kettenis@


# 1.2 12-Oct-2008 kettenis

Add interrupt support.


Revision tags: OPENBSD_4_4_BASE
# 1.1 08-Mar-2008 kettenis

Virtual bus for virtual devices on sun4v.


# 1.11 27-Jun-2018 kettenis

Rework vbus(4) interrupt handling to be similar to cbus(4). Expose functions
to ack and enable/disable interrupts and don't enable interrupts by default.
Also don't ack interrupts by default.

Make use of this in vcons(4) to avoid interrupt storms that may occur
because of a race between the interrupt handler and the software
interrupt handler. Don't enable the interrupt handler unless somebody
actually has the console open. Ack the interrupt at the end of the softintr
handler.

Fixes console issue on SPARC T3 machines.

ok claudio@


Revision tags: OPENBSD_6_3_BASE
# 1.10 22-Dec-2017 kettenis

If we use the cookie-based interrupt API on sun4v, whe shouldn't put the
interrupts in the lookup table. On machines like the Oracle T7-2 this
would make the code believe that there is interrupt sharing, but since
we bypass intr_list_handler() when using the cookie-based interrupt API,
we wouldn't properly acknowledge the interrupt.

This fixes the last remaining problem with interrupts on the Oracle T7-2.


# 1.9 06-Dec-2017 kettenis

Implement support for using interrupt cookies in vbus(4) and vpci(4) as
introduced in version 3.0 of the Interrupt APIs group. This makes it possible
boot OpenBSD on SPARC T7/M7 hardware (although there still may be issues with
the onboard mpii(4) controller).


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE
# 1.8 27-Sep-2015 kettenis

Store the target CPU in "struct intrhand" and use it in intr_barrier().
Also use it wherever we configure the hardware to direct interrupts to the
right CPU.


Revision tags: OPENBSD_5_6_BASE OPENBSD_5_7_BASE OPENBSD_5_8_BASE
# 1.7 12-Jul-2014 tedu

add a size argument to free. will be used soon, but for now default to 0.
after discussions with beck deraadt kettenis.


Revision tags: OPENBSD_5_4_BASE OPENBSD_5_5_BASE
# 1.6 16-Jul-2013 kettenis

Add support for BUS_INTR_ESTABLISH_MPSAFE. This makes the previous commit
to vcons(4) actually have an effect.


Revision tags: OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE
# 1.5 11-Nov-2010 miod

Replace snprintf(foo, sizeof foo, "%s", ...) with strlcpy. ok deraadt@ krw@


Revision tags: OPENBSD_4_5_BASE OPENBSD_4_6_BASE OPENBSD_4_7_BASE OPENBSD_4_8_BASE
# 1.4 30-Dec-2008 kettenis

Pass down bus_dma tag.


# 1.3 10-Nov-2008 art

Use the correct sizeof for the _ca.
"obviously correct" kettenis@


# 1.2 12-Oct-2008 kettenis

Add interrupt support.


Revision tags: OPENBSD_4_4_BASE
# 1.1 08-Mar-2008 kettenis

Virtual bus for virtual devices on sun4v.


# 1.10 22-Dec-2017 kettenis

If we use the cookie-based interrupt API on sun4v, whe shouldn't put the
interrupts in the lookup table. On machines like the Oracle T7-2 this
would make the code believe that there is interrupt sharing, but since
we bypass intr_list_handler() when using the cookie-based interrupt API,
we wouldn't properly acknowledge the interrupt.

This fixes the last remaining problem with interrupts on the Oracle T7-2.


# 1.9 06-Dec-2017 kettenis

Implement support for using interrupt cookies in vbus(4) and vpci(4) as
introduced in version 3.0 of the Interrupt APIs group. This makes it possible
boot OpenBSD on SPARC T7/M7 hardware (although there still may be issues with
the onboard mpii(4) controller).


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE
# 1.8 27-Sep-2015 kettenis

Store the target CPU in "struct intrhand" and use it in intr_barrier().
Also use it wherever we configure the hardware to direct interrupts to the
right CPU.


Revision tags: OPENBSD_5_6_BASE OPENBSD_5_7_BASE OPENBSD_5_8_BASE
# 1.7 12-Jul-2014 tedu

add a size argument to free. will be used soon, but for now default to 0.
after discussions with beck deraadt kettenis.


Revision tags: OPENBSD_5_4_BASE OPENBSD_5_5_BASE
# 1.6 16-Jul-2013 kettenis

Add support for BUS_INTR_ESTABLISH_MPSAFE. This makes the previous commit
to vcons(4) actually have an effect.


Revision tags: OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE
# 1.5 11-Nov-2010 miod

Replace snprintf(foo, sizeof foo, "%s", ...) with strlcpy. ok deraadt@ krw@


Revision tags: OPENBSD_4_5_BASE OPENBSD_4_6_BASE OPENBSD_4_7_BASE OPENBSD_4_8_BASE
# 1.4 30-Dec-2008 kettenis

Pass down bus_dma tag.


# 1.3 10-Nov-2008 art

Use the correct sizeof for the _ca.
"obviously correct" kettenis@


# 1.2 12-Oct-2008 kettenis

Add interrupt support.


Revision tags: OPENBSD_4_4_BASE
# 1.1 08-Mar-2008 kettenis

Virtual bus for virtual devices on sun4v.