summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorHao Zhang2019-03-27 09:45:22 -0500
committerHao Zhang2019-04-24 14:27:39 -0500
commit8240943db7b6227f54c60c5b18408a08365850b1 (patch)
tree0bc36f8e61719321504d6be5676b217b62125d82 /arch
parent18526ed021239eb5bbd88e8919e8baf44fafab88 (diff)
downloadosal-8240943db7b6227f54c60c5b18408a08365850b1.tar.gz
osal-8240943db7b6227f54c60c5b18408a08365850b1.tar.xz
osal-8240943db7b6227f54c60c5b18408a08365850b1.zip
osal: PRSDK-4967: support run-time VIM base address configuration for J7
Signed-off-by: Hao Zhang <hzhang@ti.com>
Diffstat (limited to 'arch')
-rwxr-xr-xarch/core/r5/Arch_util.c23
1 files changed, 18 insertions, 5 deletions
diff --git a/arch/core/r5/Arch_util.c b/arch/core/r5/Arch_util.c
index 37b6549..9b8bb83 100755
--- a/arch/core/r5/Arch_util.c
+++ b/arch/core/r5/Arch_util.c
@@ -37,6 +37,7 @@
37#include <stdint.h> 37#include <stdint.h>
38#include <stdbool.h> 38#include <stdbool.h>
39#include <stdlib.h> 39#include <stdlib.h>
40#include <ti/csl/arch/r5/interrupt.h>
40#include <ti/osal/src/nonos/Nonos_config.h> 41#include <ti/osal/src/nonos/Nonos_config.h>
41 42
42#if defined (BUILD_MCU1_0) 43#if defined (BUILD_MCU1_0)
@@ -91,9 +92,6 @@ static bool gTimestampFirstTime = TRUE;
91static TimeStamp_Struct gTimeStamp = {0U}; 92static TimeStamp_Struct gTimeStamp = {0U};
92static HwiP_Handle gHwiPHandle; 93static HwiP_Handle gHwiPHandle;
93 94
94#define OSAL_ARCH_VIM_BASE_ADDR (0x103E0 << 14)
95
96
97/* This function enables the interrupt for a given interrupt number */ 95/* This function enables the interrupt for a given interrupt number */
98void OsalArch_enableInterrupt(uint32_t intNum) 96void OsalArch_enableInterrupt(uint32_t intNum)
99{ 97{
@@ -123,8 +121,23 @@ uintptr_t OsalArch_globalDisableInterrupt(void)
123/* Below function posts the interrupt */ 121/* Below function posts the interrupt */
124int32_t OsalArch_postInterrupt(uint32_t intrNum) 122int32_t OsalArch_postInterrupt(uint32_t intrNum)
125{ 123{
126 CSL_vimRegs *vimRegs; 124 CSL_vimRegs *vimRegs;
127 vimRegs = (CSL_vimRegs *)(uintptr_t)OSAL_ARCH_VIM_BASE_ADDR; 125 uint32_t vimBaseAddr;
126 CSL_ArmR5CPUInfo info;
127
128 CSL_armR5GetCpuID(&info);
129 if (info.grpId == (uint32_t)CSL_ARM_R5_CLUSTER_GROUP_ID_0)
130 {
131 /* MCU SS Pulsar R5 SS */
132 vimBaseAddr = (uint32_t)CSL_MCU_DOMAIN_VIM_BASE_ADDR;
133 }
134 else
135 {
136 /* MAIN SS Pulsar R5 SS */
137 vimBaseAddr = (uint32_t)CSL_MAIN_DOMAIN_VIM_BASE_ADDR;
138 }
139
140 vimRegs = (CSL_vimRegs *)(uintptr_t)vimBaseAddr;
128 return (CSL_vimSetIntrPending(vimRegs, intrNum)); 141 return (CSL_vimSetIntrPending(vimRegs, intrNum));
129} 142}
130 143