Przeglądaj źródła

SoC/evalsoc: Adapt irq id according max irq number

Huaqi Fang 9 miesięcy temu
rodzic
commit
fa811dbacb
1 zmienionych plików z 16 dodań i 9 usunięć
  1. 16 9
      SoC/evalsoc/Common/Include/evalsoc.h

+ 16 - 9
SoC/evalsoc/Common/Include/evalsoc.h

@@ -205,25 +205,32 @@ typedef enum IRQn {
 #endif
 } IRQn_Type;
 
+#if defined(CFG_IRQ_NUM) && (CFG_IRQ_NUM > 38)
+#define IRQn_OFFSET             0
+#else
+#define IRQn_OFFSET             32
+#endif
+
 #ifdef CFG_HAS_CLIC
 /* UART0 Interrupt */
 /* NOTE: Take care the external uart irq may not work, it require a correct evalsoc cpu configuration */
 /* NOTE: For latest 200/300 cpu, this UART0_IRQn maybe SOC_INT19_IRQn */
-#define UART0_IRQn                                 SOC_INT51_IRQn
+/* Please check Interrupts of Eval_SoC section in Nuclei_Processor_Integration_Guide.pdf */
+#define UART0_IRQn                                 (SOC_INT51_IRQn - IRQn_OFFSET)
 /* QSPI Interrupt */
-#define QSPI0_IRQn                                 SOC_INT53_IRQn
-#define QSPI1_IRQn                                 SOC_INT54_IRQn
-#define QSPI2_IRQn                                 SOC_INT55_IRQn
+#define QSPI0_IRQn                                 (SOC_INT53_IRQn - IRQn_OFFSET)
+#define QSPI1_IRQn                                 (SOC_INT54_IRQn - IRQn_OFFSET)
+#define QSPI2_IRQn                                 (SOC_INT55_IRQn - IRQn_OFFSET)
 #else
 /* UART0 Interrupt */
-#define UART0_IRQn                                 PLIC_INT33_IRQn
+#define UART0_IRQn                                 (PLIC_INT33_IRQn - IRQn_OFFSET)
 /* QSPI Interrupt */
-#define QSPI0_IRQn                                 PLIC_INT35_IRQn
-#define QSPI1_IRQn                                 PLIC_INT36_IRQn
-#define QSPI2_IRQn                                 PLIC_INT37_IRQn
+#define QSPI0_IRQn                                 (PLIC_INT35_IRQn - IRQn_OFFSET)
+#define QSPI1_IRQn                                 (PLIC_INT36_IRQn - IRQn_OFFSET)
+#define QSPI2_IRQn                                 (PLIC_INT37_IRQn - IRQn_OFFSET)
 #endif
 
-#define PLIC_UART0_IRQn                            PLIC_INT33_IRQn
+#define PLIC_UART0_IRQn                            (PLIC_INT33_IRQn - IRQn_OFFSET)
 
 
 /* =========================================================================================================================== */