| #
487788a6
|
| 09-Aug-2024 |
Elliott Mitchell <ehem+freebsd@m5p.com> |
intrng: fix INTR_ROOT_* constants
Switch to INTR_ROOT_COUNT as this name better describes its purpose.
Remove the default INTR_ROOT_IRQ from the core. Define it (redundantly) in each architecture'
intrng: fix INTR_ROOT_* constants
Switch to INTR_ROOT_COUNT as this name better describes its purpose.
Remove the default INTR_ROOT_IRQ from the core. Define it (redundantly) in each architecture's header, but now placed alongside its sibling values (if defined by the platform, e.g. arm64 INTR_ROOT_FIQ).
Reviewed by: mhorne Pull Request: https://github.com/freebsd/freebsd-src/pull/1280
show more ...
|
| #
7b16a4a7
|
| 06-Dec-2024 |
Warner Losh <imp@FreeBSD.org> |
sys/intr.h: Make it safe to include from assembler
Sometimes we need defines from this file in assembler code. Today we do the heavyweight approach of using genassym for that. However, they are just
sys/intr.h: Make it safe to include from assembler
Sometimes we need defines from this file in assembler code. Today we do the heavyweight approach of using genassym for that. However, they are just #defines, so in the future we want to include sys/intr.h to pick up the needed constants in exception.S.
PR: 283041 Sponsored by: Netflix Reviewed by: mmel, andrew Differential Revision: https://reviews.freebsd.org/D47846
show more ...
|
| #
4b01a7fa
|
| 25-Oct-2024 |
Kyle Evans <kevans@FreeBSD.org> |
Revert "intrng: change multi-interrupt root support type to enum"
This reverts commit 536c8d948e8563141356fd41fb8bfe65be289385. The change seemed fine on the surface, but converting to an enum has
Revert "intrng: change multi-interrupt root support type to enum"
This reverts commit 536c8d948e8563141356fd41fb8bfe65be289385. The change seemed fine on the surface, but converting to an enum has raised some concerns due to the asm <-> C interface. Back it out and let someone else deal with it later if they'd like to.
Further context about the concerns can be found in D47279.
show more ...
|
| #
4f12b529
|
| 24-Oct-2024 |
Kyle Evans <kevans@FreeBSD.org> |
sys/intr.h: formally depend on machine/intr.h
sys/intr.h originally started life as an extract of arm's intr.h, and this include was dropped in its place. Changes in flight want to add some MD defi
sys/intr.h: formally depend on machine/intr.h
sys/intr.h originally started life as an extract of arm's intr.h, and this include was dropped in its place. Changes in flight want to add some MD definitions that we'll use in the more MI parts of INTRNG.
Let's formally reverse the dependency now since this is way more common in general. All of the includes switched in this change that I spot-checked were in-fact wanting declarations historically included in sys/intr.h anyways.
Reviewed by: andrew, imp, jrtc27, mhorne, mmel, olce Differential Revision: https://reviews.freebsd.org/D47002
show more ...
|
| #
536c8d94
|
| 24-Oct-2024 |
Elliott Mitchell <ehem+freebsd@m5p.com> |
intrng: change multi-interrupt root support type to enum
uint32_t is handy for directly interfacing with assembly-language. For the C portion, enum is much handier. In particular there is no need
intrng: change multi-interrupt root support type to enum
uint32_t is handy for directly interfacing with assembly-language. For the C portion, enum is much handier. In particular there is no need to count the number of roots by hand. This also works better for being able to build kernels with varying numbers of roots.
Switch to INTR_ROOT_COUNT as this better matches the purpose of the value. Switch to root_type, rather than rootnum for similar reasons.
Remove the default from the core. Better to require the architectures to declare the type since they will routinely deviate and a default chosen now will likely be suboptimal.
Leave intr_irq_handler() taking a register type as that better matches for interfacing with assembly-language.
show more ...
|
| #
fae8755f
|
| 24-Jan-2024 |
Jessica Clarke <jrtc27@FreeBSD.org> |
intrng: Extract arm/arm64 IPI->PIC glue code
The arm and arm64 implementations of dispatching IPIs via PIC_IPI_SEND are almost identical, and entirely MI with the lone exception of a single store ba
intrng: Extract arm/arm64 IPI->PIC glue code
The arm and arm64 implementations of dispatching IPIs via PIC_IPI_SEND are almost identical, and entirely MI with the lone exception of a single store barrier on arm64 (that is likely either redundant or needed on arm too). Thus, de-duplicate this code by moving it to INTRNG as a generic IPI glue framework. The ipi_* functions remain declared in MD smp.h headers and implemented in MD code, but are trivial wrappers around intr_ipi_send that could be made MI, at least for INTRNG ports, at a later date.
Note that, whilst both arm and arm64 had an ii_send member in intr_ipi to abstract over how to send interrupts,, they were always ultimately using PIC_IPI_SEND, and so this complexity has been removed. A follow-up commit will re-introduce the same flexibility by instead allowing a device other than the root PIC to be registered as the IPI sender.
As part of this, strengthen a MAXCPU assertion that was missed in commit 2f0b059eeafc ("intrng: switch from MAXCPU to mp_ncpus") (which itself is mis-titled).
Reviewed by: mmel, mhorne MFC after: 1 month Differential Revision: https://reviews.freebsd.org/D35898
show more ...
|
| #
95ee2897
|
| 16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: two-line .h pattern
Remove /^\s*\*\n \*\s+\$FreeBSD\$$\n/
|
| #
d7e3b05b
|
| 14-Dec-2022 |
Elliott Mitchell <ehem+freebsd@m5p.com> |
arm: remove passing trapframe to intr_ipi_dispatch()
This was needed before INTRNG was in place and handling the push of curthread->td_intr_frame. Since INTRNG now handles this, there is no longer
arm: remove passing trapframe to intr_ipi_dispatch()
This was needed before INTRNG was in place and handling the push of curthread->td_intr_frame. Since INTRNG now handles this, there is no longer and need for playing around with the frame inside IPI interrupts.
show more ...
|
| #
5c2967f6
|
| 29-Nov-2020 |
Michal Meloun <mmel@FreeBSD.org> |
Remove the pre-ARMv6 and pre-INTRNG code. ARM has required ARMV6+ and INTRNg for some time now, so remove always false #ifdefs and unconditionally do always true #ifdefs.
|
| #
3611ec60
|
| 18-Aug-2018 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r337646 through r338014.
|
| #
487788a6
|
| 09-Aug-2024 |
Elliott Mitchell <ehem+freebsd@m5p.com> |
intrng: fix INTR_ROOT_* constants
Switch to INTR_ROOT_COUNT as this name better describes its purpose.
Remove the default INTR_ROOT_IRQ from the core. Define it (redundantly) in each architecture'
intrng: fix INTR_ROOT_* constants
Switch to INTR_ROOT_COUNT as this name better describes its purpose.
Remove the default INTR_ROOT_IRQ from the core. Define it (redundantly) in each architecture's header, but now placed alongside its sibling values (if defined by the platform, e.g. arm64 INTR_ROOT_FIQ).
Reviewed by: mhorne Pull Request: https://github.com/freebsd/freebsd-src/pull/1280
show more ...
|
| #
7b16a4a7
|
| 06-Dec-2024 |
Warner Losh <imp@FreeBSD.org> |
sys/intr.h: Make it safe to include from assembler
Sometimes we need defines from this file in assembler code. Today we do the heavyweight approach of using genassym for that. However, they are just
sys/intr.h: Make it safe to include from assembler
Sometimes we need defines from this file in assembler code. Today we do the heavyweight approach of using genassym for that. However, they are just #defines, so in the future we want to include sys/intr.h to pick up the needed constants in exception.S.
PR: 283041 Sponsored by: Netflix Reviewed by: mmel, andrew Differential Revision: https://reviews.freebsd.org/D47846
show more ...
|
| #
4b01a7fa
|
| 25-Oct-2024 |
Kyle Evans <kevans@FreeBSD.org> |
Revert "intrng: change multi-interrupt root support type to enum"
This reverts commit 536c8d948e8563141356fd41fb8bfe65be289385. The change seemed fine on the surface, but converting to an enum has
Revert "intrng: change multi-interrupt root support type to enum"
This reverts commit 536c8d948e8563141356fd41fb8bfe65be289385. The change seemed fine on the surface, but converting to an enum has raised some concerns due to the asm <-> C interface. Back it out and let someone else deal with it later if they'd like to.
Further context about the concerns can be found in D47279.
show more ...
|
| #
4f12b529
|
| 24-Oct-2024 |
Kyle Evans <kevans@FreeBSD.org> |
sys/intr.h: formally depend on machine/intr.h
sys/intr.h originally started life as an extract of arm's intr.h, and this include was dropped in its place. Changes in flight want to add some MD defi
sys/intr.h: formally depend on machine/intr.h
sys/intr.h originally started life as an extract of arm's intr.h, and this include was dropped in its place. Changes in flight want to add some MD definitions that we'll use in the more MI parts of INTRNG.
Let's formally reverse the dependency now since this is way more common in general. All of the includes switched in this change that I spot-checked were in-fact wanting declarations historically included in sys/intr.h anyways.
Reviewed by: andrew, imp, jrtc27, mhorne, mmel, olce Differential Revision: https://reviews.freebsd.org/D47002
show more ...
|
| #
536c8d94
|
| 24-Oct-2024 |
Elliott Mitchell <ehem+freebsd@m5p.com> |
intrng: change multi-interrupt root support type to enum
uint32_t is handy for directly interfacing with assembly-language. For the C portion, enum is much handier. In particular there is no need
intrng: change multi-interrupt root support type to enum
uint32_t is handy for directly interfacing with assembly-language. For the C portion, enum is much handier. In particular there is no need to count the number of roots by hand. This also works better for being able to build kernels with varying numbers of roots.
Switch to INTR_ROOT_COUNT as this better matches the purpose of the value. Switch to root_type, rather than rootnum for similar reasons.
Remove the default from the core. Better to require the architectures to declare the type since they will routinely deviate and a default chosen now will likely be suboptimal.
Leave intr_irq_handler() taking a register type as that better matches for interfacing with assembly-language.
show more ...
|
| #
fae8755f
|
| 24-Jan-2024 |
Jessica Clarke <jrtc27@FreeBSD.org> |
intrng: Extract arm/arm64 IPI->PIC glue code
The arm and arm64 implementations of dispatching IPIs via PIC_IPI_SEND are almost identical, and entirely MI with the lone exception of a single store ba
intrng: Extract arm/arm64 IPI->PIC glue code
The arm and arm64 implementations of dispatching IPIs via PIC_IPI_SEND are almost identical, and entirely MI with the lone exception of a single store barrier on arm64 (that is likely either redundant or needed on arm too). Thus, de-duplicate this code by moving it to INTRNG as a generic IPI glue framework. The ipi_* functions remain declared in MD smp.h headers and implemented in MD code, but are trivial wrappers around intr_ipi_send that could be made MI, at least for INTRNG ports, at a later date.
Note that, whilst both arm and arm64 had an ii_send member in intr_ipi to abstract over how to send interrupts,, they were always ultimately using PIC_IPI_SEND, and so this complexity has been removed. A follow-up commit will re-introduce the same flexibility by instead allowing a device other than the root PIC to be registered as the IPI sender.
As part of this, strengthen a MAXCPU assertion that was missed in commit 2f0b059eeafc ("intrng: switch from MAXCPU to mp_ncpus") (which itself is mis-titled).
Reviewed by: mmel, mhorne MFC after: 1 month Differential Revision: https://reviews.freebsd.org/D35898
show more ...
|
| #
95ee2897
|
| 16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: two-line .h pattern
Remove /^\s*\*\n \*\s+\$FreeBSD\$$\n/
|
| #
d7e3b05b
|
| 14-Dec-2022 |
Elliott Mitchell <ehem+freebsd@m5p.com> |
arm: remove passing trapframe to intr_ipi_dispatch()
This was needed before INTRNG was in place and handling the push of curthread->td_intr_frame. Since INTRNG now handles this, there is no longer
arm: remove passing trapframe to intr_ipi_dispatch()
This was needed before INTRNG was in place and handling the push of curthread->td_intr_frame. Since INTRNG now handles this, there is no longer and need for playing around with the frame inside IPI interrupts.
show more ...
|
| #
5c2967f6
|
| 29-Nov-2020 |
Michal Meloun <mmel@FreeBSD.org> |
Remove the pre-ARMv6 and pre-INTRNG code. ARM has required ARMV6+ and INTRNg for some time now, so remove always false #ifdefs and unconditionally do always true #ifdefs.
|
| #
3611ec60
|
| 18-Aug-2018 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r337646 through r338014.
|
| #
795272d8
|
| 15-Aug-2018 |
Andrew Turner <andrew@FreeBSD.org> |
Remove checks for now unsupported CPU_* values in arm headers.
Sponsored by: DARPA, AFRL
|
| #
c81b12e0
|
| 27-Jul-2018 |
Warner Losh <imp@FreeBSD.org> |
Revert r336773: it removed too much.
r336773 removed all things xscale. However, some things xscale are really armv5. Revert that entirely. A more modest removal will follow.
Noticed by: andrew@
|
| #
626930c2
|
| 27-Jul-2018 |
Warner Losh <imp@FreeBSD.org> |
Remove xscale support
The OLD XSCALE stuff hasn't been useful in a while. The original committer (cognet@) was the only one that had boards for it. He's blessed this removal. Newer XSCALE (GUMSTIX)
Remove xscale support
The OLD XSCALE stuff hasn't been useful in a while. The original committer (cognet@) was the only one that had boards for it. He's blessed this removal. Newer XSCALE (GUMSTIX) is for hardware that's quite old. After discussion on arm@, it was clear there was no support for keeping it.
Differential Review: https://reviews.freebsd.org/D16313
show more ...
|
| #
ff945277
|
| 17-Jul-2018 |
Warner Losh <imp@FreeBSD.org> |
Remove kernel support for armeb
Remove all the big-endian arm architectures (ixp425 and ixp435) support in the kernel and associated drivers.
Differential Revision: https://reviews.freebsd.org/D16
Remove kernel support for armeb
Remove all the big-endian arm architectures (ixp425 and ixp435) support in the kernel and associated drivers.
Differential Revision: https://reviews.freebsd.org/D16257
show more ...
|
| #
244af1d4
|
| 03-Apr-2018 |
Marcin Wojtas <mw@FreeBSD.org> |
Enable ArmadaXP using INTRNG interrupt controller
Defining INTRNG remove some necessary registers and declarations of pic_init_secondary, pic_ipi_send, pic_ipi_read and pic_ipi_clear. Because Marvel
Enable ArmadaXP using INTRNG interrupt controller
Defining INTRNG remove some necessary registers and declarations of pic_init_secondary, pic_ipi_send, pic_ipi_read and pic_ipi_clear. Because Marvell ArmadaXP and Armada38X always use INTRNG, include all INTRNG code and remove code that does not use it. Separate pic registers declarations for Armada38X are unnecessary, it works properly with ArmadaXP config.
Submitted by: Rafal Kozik <rk@semihalf.com> Reviewed by: andrew Obtained from: Semihalf Sponsored by: Stormshield Differential Revision: https://reviews.freebsd.org/D14734
show more ...
|