diff options
author | Chris Kay <chris.kay@arm.com> | 2020-06-01 18:50:44 +0100 |
---|---|---|
committer | Chris Kay <chris@cjkay.com> | 2020-06-05 19:16:35 +0100 |
commit | e376c365590db77227bd04a880a3df3ffca289b6 (patch) | |
tree | 4788087d9bd75528585698f402691243139e2b9e /product/rddaniel | |
parent | 60e3381b3f1f9bde47c67976123913119f7f9e8b (diff) |
arch: Move interrupt numbers to CMSIS configuration
Because we compile with `-fshort-enums`, the current CMSIS IRQ
enumeration, which only holds the exception numbers, is reduced in width
to a single 8-bit value. This means that any attempt to convert from a
large interrupt number to an IRQn_Type, which CMSIS does in the next
patch, is not safe.
We fix this by moving the interrupt numbers to the IRQn_Type, so that we
can use the CMSIS APIs to manage these interrupts.
Change-Id: Ic2644b5b97fb6dab412d50b8168597c056727295
Signed-off-by: Chris Kay <chris.kay@arm.com>
Diffstat (limited to 'product/rddaniel')
-rw-r--r-- | product/rddaniel/include/fmw_cmsis.h | 29 | ||||
-rw-r--r-- | product/rddaniel/include/scp_rddaniel_irq.h | 26 | ||||
-rw-r--r-- | product/rddaniel/module/rddaniel_system/src/mod_rddaniel_system.c | 1 | ||||
-rw-r--r-- | product/rddaniel/scp_ramfw/config_mhu2.c | 3 | ||||
-rw-r--r-- | product/rddaniel/scp_ramfw/config_system_power.c | 3 | ||||
-rw-r--r-- | product/rddaniel/scp_ramfw/config_timer.c | 4 |
6 files changed, 28 insertions, 38 deletions
diff --git a/product/rddaniel/include/fmw_cmsis.h b/product/rddaniel/include/fmw_cmsis.h index 89e48f5d..04d64c8f 100644 --- a/product/rddaniel/include/fmw_cmsis.h +++ b/product/rddaniel/include/fmw_cmsis.h @@ -19,14 +19,29 @@ #define __Vendor_SysTickConfig 0U typedef enum IRQn { - NonMaskableInt_IRQn = -14, + Reset_IRQn = -15, + NonMaskableInt_IRQn = -14, + HardFault_IRQn = -13, MemoryManagement_IRQn = -12, - BusFault_IRQn = -11, - UsageFault_IRQn = -10, - SVCall_IRQn = -5, - DebugMonitor_IRQn = -4, - PendSV_IRQn = -2, - SysTick_IRQn = -1, + BusFault_IRQn = -11, + UsageFault_IRQn = -10, + SVCall_IRQn = -5, + DebugMonitor_IRQn = -4, + PendSV_IRQn = -2, + SysTick_IRQn = -1, + + SOC_WAKEUP0_IRQ = 16, /* SoC Expansion Wakeup */ + TIMREFCLK_IRQ = 33, /* REFCLK Physical Timer */ + PPU_CORES0_IRQ = + 50, /* Consolidated PPU Interrupt for cores 1-32, 129-160 */ + PPU_CORES1_IRQ = + 51, /* Consolidated PPU Interrupt for cores 33-64, 161-192 */ + PPU_CORES2_IRQ = + 52, /* Consolidated PPU Interrupt for cores 65-96, 193-224 */ + PPU_CORES3_IRQ = + 53, /* Consolidated PPU Interrupt for cores 97-128, 225-256 */ + PPU_CLUSTERS_IRQ = 54, /* Consolidated clusters PPU */ + MHU_AP_SEC_IRQ = 83, /* MHU secure IRQ between SCP and AP */ } IRQn_Type; #include <core_cm7.h> diff --git a/product/rddaniel/include/scp_rddaniel_irq.h b/product/rddaniel/include/scp_rddaniel_irq.h deleted file mode 100644 index b73cb116..00000000 --- a/product/rddaniel/include/scp_rddaniel_irq.h +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Arm SCP/MCP Software - * Copyright (c) 2020, Arm Limited and Contributors. All rights reserved. - * - * SPDX-License-Identifier: BSD-3-Clause - */ - -#ifndef SCP_RDDANIEL_IRQ_H -#define SCP_RDDANIEL_IRQ_H - -enum scp_rddaniel_interrupt { - SOC_WAKEUP0_IRQ = 16, /* SoC Expansion Wakeup */ - TIMREFCLK_IRQ = 33, /* REFCLK Physical Timer */ - MHU_AP_SEC_IRQ = 83, /* MHU secure irq bewteen SCP and AP */ - PPU_CORES0_IRQ = 50, /* Consolidated PPU Interrupt for cores - 1-32, 129-160 */ - PPU_CORES1_IRQ = 51, /* Consolidated PPU Interrupt for cores - 33-64, 161-192 */ - PPU_CORES2_IRQ = 52, /* Consolidated PPU Interrupt for cores - 65-96, 193-224 */ - PPU_CORES3_IRQ = 53, /* Consolidated PPU Interrupt for cores - 97-128, 225-256 */ - PPU_CLUSTERS_IRQ = 54, /* Consolidated clusters PPU */ -}; - -#endif /* SCP_RDDANIEL_IRQ_H */ diff --git a/product/rddaniel/module/rddaniel_system/src/mod_rddaniel_system.c b/product/rddaniel/module/rddaniel_system/src/mod_rddaniel_system.c index 01ea000d..c64dc3bd 100644 --- a/product/rddaniel/module/rddaniel_system/src/mod_rddaniel_system.c +++ b/product/rddaniel/module/rddaniel_system/src/mod_rddaniel_system.c @@ -14,7 +14,6 @@ #include "rddaniel_sds.h" #include "scp_css_mmap.h" #include "scp_pik.h" -#include "scp_rddaniel_irq.h" #include <mod_clock.h> #include <mod_power_domain.h> diff --git a/product/rddaniel/scp_ramfw/config_mhu2.c b/product/rddaniel/scp_ramfw/config_mhu2.c index 09cf6925..17af6096 100644 --- a/product/rddaniel/scp_ramfw/config_mhu2.c +++ b/product/rddaniel/scp_ramfw/config_mhu2.c @@ -6,7 +6,6 @@ */ #include "scp_css_mmap.h" -#include "scp_rddaniel_irq.h" #include "scp_rddaniel_mhu.h" #include <mod_mhu2.h> @@ -15,6 +14,8 @@ #include <fwk_id.h> #include <fwk_module.h> +#include <fmw_cmsis.h> + static const struct fwk_element mhu_element_table[] = { [SCP_RDDANIEL_MHU_DEVICE_IDX_SCP_AP_S_CLUS0] = { .name = "MHU_SCP_AP_S", diff --git a/product/rddaniel/scp_ramfw/config_system_power.c b/product/rddaniel/scp_ramfw/config_system_power.c index c0b66323..d3d4e521 100644 --- a/product/rddaniel/scp_ramfw/config_system_power.c +++ b/product/rddaniel/scp_ramfw/config_system_power.c @@ -6,7 +6,6 @@ */ #include "rddaniel_core.h" -#include "scp_rddaniel_irq.h" #include <mod_power_domain.h> #include <mod_ppu_v1.h> @@ -19,6 +18,8 @@ #include <fwk_module.h> #include <fwk_module_idx.h> +#include <fmw_cmsis.h> + #include <stdint.h> static const uint8_t system_power_to_sys_ppu0_state[] = { diff --git a/product/rddaniel/scp_ramfw/config_timer.c b/product/rddaniel/scp_ramfw/config_timer.c index db0fed9c..0828e41e 100644 --- a/product/rddaniel/scp_ramfw/config_timer.c +++ b/product/rddaniel/scp_ramfw/config_timer.c @@ -5,8 +5,6 @@ * SPDX-License-Identifier: BSD-3-Clause */ -#include "scp_rddaniel_irq.h" - #include <mod_timer.h> #include <fwk_element.h> @@ -14,6 +12,8 @@ #include <fwk_module.h> #include <fwk_module_idx.h> +#include <fmw_cmsis.h> + /* * Timer HAL config */ |