| #
38376d36 |
| 25-Jun-2025 |
Jens Wiklander <jens.wiklander@linaro.org> |
drivers: hfic: handle well-known interrupt IDs
The paravirtualized interrupt interface has a few interrupt IDs reserved for special purposes, for instance, the timer interrupt ID. Trying to manipula
drivers: hfic: handle well-known interrupt IDs
The paravirtualized interrupt interface has a few interrupt IDs reserved for special purposes, for instance, the timer interrupt ID. Trying to manipulate will often result in a returned error. However, these interrupt are all edge-triggered so they can be ignored without being reasserted immediately. So in the assert() that checks that the operation was successful, allow operations on the well-known IDs to fail.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| #
2a50ce7d |
| 07-Feb-2025 |
Etienne Carriere <etienne.carriere@foss.st.com> |
core: interrupt: rename .add handler to .configure
Rename field add of struct itr_ops to configure for consistency since that handler is used the configure the interrupt. Update existing interrupt d
core: interrupt: rename .add handler to .configure
Rename field add of struct itr_ops to configure for consistency since that handler is used the configure the interrupt. Update existing interrupt drivers accordingly.
By the way fix inline comment spelling typo (s/contrainsts/constraints/).
Signed-off-by: Etienne Carriere <etienne.carriere@foss.st.com> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
49655078 |
| 07-Dec-2023 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: hfic: fix HF_INTERRUPT HVC calls
The HF_INTERRUPT HVC calls has until now not been completely correct. HF_INTERRUPT_ENABLE is used to enable/disable a virtual interrupt on the current CPU whil
core: hfic: fix HF_INTERRUPT HVC calls
The HF_INTERRUPT HVC calls has until now not been completely correct. HF_INTERRUPT_ENABLE is used to enable/disable a virtual interrupt on the current CPU while HF_INTERRUPT_RECONFIGURE is used to globally enable a physical interrupt. So update the HFIC callbacks accordingly.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| #
e37b526d |
| 07-Dec-2023 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: move hafnium.h into hfic.c
hafnium.h is only included from hfic.c so move the content into that file instead. Comments trying to describe the paravirtualized interface are removed and replaced
core: move hafnium.h into hfic.c
hafnium.h is only included from hfic.c so move the content into that file instead. Comments trying to describe the paravirtualized interface are removed and replaced by a link to official documentation.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| #
422798c9 |
| 11-Oct-2023 |
Jens Wiklander <jens.wiklander@linaro.org> |
drivers: hfic: remove stubbed functions
With the commit b2d6db21ec5e ("core: interrupt: helper function for raise_pi, raise_sgi, set_affinity") the struct itr_ops .raise_pi, .raise_sgi, and .set_aff
drivers: hfic: remove stubbed functions
With the commit b2d6db21ec5e ("core: interrupt: helper function for raise_pi, raise_sgi, set_affinity") the struct itr_ops .raise_pi, .raise_sgi, and .set_affinity are now optional so remove the stubbed functions.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| #
99e2612c |
| 16-May-2023 |
Etienne Carriere <etienne.carriere@foss.st.com> |
drivers: move to interrupt_call_handlers()
Removes itr_handle() in favor to interrupt_call_handlers(). This changes updates all implemented main interrupt controller drivers that are the GIC driver,
drivers: move to interrupt_call_handlers()
Removes itr_handle() in favor to interrupt_call_handlers(). This changes updates all implemented main interrupt controller drivers that are the GIC driver, the HFIC driver and Atmel SAIC driver.
Reviewed-by: Alvin Chang <alvinga@andestech.com> Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Signed-off-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| #
59feef28 |
| 02-Jun-2023 |
Etienne Carriere <etienne.carriere@linaro.org> |
drivers: hfic: implement mask/unmask handlers
Implements Hafnium interrupts mask/unmask operation handlers using interrupt disable/enable operation handlers. This change is needed as mask/unmask ope
drivers: hfic: implement mask/unmask handlers
Implements Hafnium interrupts mask/unmask operation handlers using interrupt disable/enable operation handlers. This change is needed as mask/unmask operation handlers are required by the new native interrupt framework.
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| #
01980f3f |
| 16-May-2023 |
Etienne Carriere <etienne.carriere@linaro.org> |
core: interrupt: rename itr_init()
Renames itr_init() to interrupt_main_init() as a later change will modify interrupt chip API functions using interrupt_ as prefix.
Reviewed-by: Jens Wiklander <je
core: interrupt: rename itr_init()
Renames itr_init() to interrupt_main_init() as a later change will modify interrupt chip API functions using interrupt_ as prefix.
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| #
358bf47c |
| 16-May-2023 |
Etienne Carriere <etienne.carriere@linaro.org> |
core: interrupt: rename itr_core_handler()
Renames itr_core_handler() to interrupt_main_handler() as a later change will modify interrupt chip API functions using interrupt_ as prefix.
Reviewed-by:
core: interrupt: rename itr_core_handler()
Renames itr_core_handler() to interrupt_main_handler() as a later change will modify interrupt chip API functions using interrupt_ as prefix.
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| #
67e55c51 |
| 16-May-2023 |
Etienne Carriere <etienne.carriere@linaro.org> |
core: define main interrupt controller data from its driver
All but one platforms define CPU core interrupt controller from their platform main.c source file next to its main interrupt handler. This
core: define main interrupt controller data from its driver
All but one platforms define CPU core interrupt controller from their platform main.c source file next to its main interrupt handler. This change factorize these implementation by moving the definition of the controller data instance straight in the controller driver source file. This change makes each controller driver to implement straight itr_core_handler() function, preventing a extra branch on interrupt execution. Interrupt controller driver initialization function now straight calls itr_core_init().
This changes treats case when CFG_CORE_WORKAROUND_ARM_NMFI is enable to not conflict with core/arch/arm/kernel/thread.c that already overrides itr_core_handler() weak implementation.
With this change, the main controller initialization function (gic_init(), gic_init_base_addr(), gic_cpu_init() and hfic_init()) no more gets the controller data as input argument.
As a consequence, definition of struct hfic_data and struct gic_data moves from their respective driver header file to the respective driver source file.
As a consequence, gic_dump() no more requires an argument.
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| #
a0602052 |
| 08-Nov-2022 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: add driver for hafnium interrupt controller
Adds a driver for the paravirtualized interrupt controller provided by Hafnium at S-EL2. The driver is enabled with CFG_CORE_HAFNIUM_INTC=y.
The in
core: add driver for hafnium interrupt controller
Adds a driver for the paravirtualized interrupt controller provided by Hafnium at S-EL2. The driver is enabled with CFG_CORE_HAFNIUM_INTC=y.
The interrupt controller is limited compared to the GIC and only works with interrupt ids which are already added in the SP manifest or as predefined reserved interrupt ids.
Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|