aboutsummaryrefslogtreecommitdiff
path: root/product/rddaniel
diff options
context:
space:
mode:
authorChris Kay <chris.kay@arm.com>2020-06-01 18:50:44 +0100
committerChris Kay <chris@cjkay.com>2020-06-05 19:16:35 +0100
commite376c365590db77227bd04a880a3df3ffca289b6 (patch)
tree4788087d9bd75528585698f402691243139e2b9e /product/rddaniel
parent60e3381b3f1f9bde47c67976123913119f7f9e8b (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.h29
-rw-r--r--product/rddaniel/include/scp_rddaniel_irq.h26
-rw-r--r--product/rddaniel/module/rddaniel_system/src/mod_rddaniel_system.c1
-rw-r--r--product/rddaniel/scp_ramfw/config_mhu2.c3
-rw-r--r--product/rddaniel/scp_ramfw/config_system_power.c3
-rw-r--r--product/rddaniel/scp_ramfw/config_timer.c4
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
*/