summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 6669e3e)
raw | patch | inline | side by side (parent: 6669e3e)
author | vwan@ti.com <vwan@ti.com> | |
Tue, 7 May 2013 22:32:46 +0000 (15:32 -0700) | ||
committer | Chris Ring <cring@ti.com> | |
Wed, 8 May 2013 20:35:01 +0000 (13:35 -0700) |
diff --git a/packages/ti/ipc/family/omap54xx/InterruptDsp.c b/packages/ti/ipc/family/omap54xx/InterruptDsp.c
index fa04d0569099e8c769d82f81f2c1bc4cdca763fe..8c5d40dbec8c79286f6b65acc51c076135d0b870 100644 (file)
static UInt16 appm3ProcId = MultiProc_INVALIDID;
static UInt16 hostProcId = MultiProc_INVALIDID;
static UInt16 dspProcId = MultiProc_INVALIDID;
+ static UInt16 ipuProcId = MultiProc_INVALIDID;
if (!configured) {
hostProcId = MultiProc_getId("HOST");
dspProcId = MultiProc_getId("DSP");
sysm3ProcId = MultiProc_getId("CORE0");
appm3ProcId = MultiProc_getId("CORE1");
+ ipuProcId = MultiProc_getId("IPU");
configured = TRUE;
}
+ /* We currently do not support interrupts from DSP to IPU in SMP mode */
+ Assert_isTrue(remoteProcId != ipuProcId, NULL);
+
if (remoteProcId == sysm3ProcId) {
REG32(MAILBOX_MESSAGE(HOST_TO_SYSM3_MBX)) = arg;
}
diff --git a/qnx/src/ipc3x_dev/ti/syslink/build/Qnx/resmgr/syslink_main.c b/qnx/src/ipc3x_dev/ti/syslink/build/Qnx/resmgr/syslink_main.c
index d96140e22d60280d9d481b6c2969511cca773510..502b294f29e5a24ea4e5ab004dbed8e260b4aac3 100644 (file)
#if defined(SYSLINK_PLATFORM_OMAP4430)
syslink_firmware[syslink_num_cores].proc = "SYSM3";
#else
+#ifndef SYSLINK_SYSBIOS_SMP
syslink_firmware[syslink_num_cores].proc = "CORE0";
+#else
+ syslink_firmware[syslink_num_cores].proc = "IPU";
+#endif
#endif
syslink_num_cores++;
#ifndef SYSLINK_SYSBIOS_SMP
diff --git a/qnx/src/ipc3x_dev/ti/syslink/family/omap5430/Platform.c b/qnx/src/ipc3x_dev/ti/syslink/family/omap5430/Platform.c
index 922ff61528c6d09367a633f0ddc4b36e141b78b4..12561a6864c0f465eaa0686d1ea82276ab8820bc 100644 (file)
#define HWSPINLOCK_SIZE 0x1000
#define HWSPINLOCK_OFFSET 0x800
+#ifndef SYSLINK_SYSBIOS_SMP
+#define CORE0 "CORE0"
+#else
+#define CORE0 "IPU"
+#endif
+
/** ============================================================================
* Application specific configuration, please change these value according to
* your application's need.
/*Char Syslink_Override_Params[MAX_SIZE_OVERRIDE_PARAMS];*/
+#ifndef SYSLINK_SYSBIOS_SMP
String Syslink_Override_Params = "ProcMgr.proc[CORE0].mmuEnable=TRUE;"
"ProcMgr.proc[CORE0].carveoutAddr0=0xBA300000;"
"ProcMgr.proc[CORE0].carveoutSize0=0x5A00000;"
+#else
+String Syslink_Override_Params = "ProcMgr.proc[IPU].mmuEnable=TRUE;"
+ "ProcMgr.proc[IPU].carveoutAddr0=0xBA300000;"
+ "ProcMgr.proc[IPU].carveoutSize0=0x5A00000;"
+#endif
"ProcMgr.proc[DSP].mmuEnable=TRUE;"
"ProcMgr.proc[DSP].carveoutAddr0=0xBA300000;"
"ProcMgr.proc[DSP].carveoutSize0=0x5A00000;";
String_cpy (config->multiProcConfig.nameList [0],
"HOST");
String_cpy (config->multiProcConfig.nameList [1],
- "CORE0");
+ "IPU");
String_cpy (config->multiProcConfig.nameList [2],
"DSP");
#else
config->ipu_pm_config.int_id = 58;
#ifdef SYSLINK_SYSBIOS_SMP
config->ipu_pm_config.num_procs = 2;
- config->ipu_pm_config.proc_ids[0] = 1; // CORE0 is set as 1 above
+ config->ipu_pm_config.proc_ids[0] = 1; // IPU is set as 1 above
config->ipu_pm_config.proc_ids[1] = 2; // DSP is set as 2 above
#else
config->ipu_pm_config.num_procs = 3;
GT_0trace (curTrace, GT_ENTER, "_Platform_setup");
/* Get MultiProc ID by name. */
- procId = MultiProc_getId ("CORE0");
+ procId = MultiProc_getId (CORE0);
handle = &Platform_objects [procId];
OMAP5430BENELLIPROC_destroy(procId);
#endif
- procId = MultiProc_getId ("CORE0");
+ procId = MultiProc_getId (CORE0);
+
handle = &Platform_objects [procId];
if (handle->pmHandle) {
ProcMgr_delete(&handle->pmHandle);
#endif
/* ------------------------- ipu0 cleanup ------------------------------- */
- handle = &Platform_objects [MultiProc_getId ("CORE0")];
+ handle = &Platform_objects [MultiProc_getId (CORE0)];
if (handle->pmHandle != NULL) {
tmpStatus = ProcMgr_delete (&handle->pmHandle);
GT_assert (curTrace, (tmpStatus >= 0));
}
}
- tmpStatus = OMAP5430BENELLIPROC_destroy (MultiProc_getId ("CORE0"));
+ tmpStatus = OMAP5430BENELLIPROC_destroy (MultiProc_getId (CORE0));
GT_assert (curTrace, (tmpStatus >= 0));
if ((status >= 0) && (tmpStatus < 0)) {
status = tmpStatus;
diff --git a/qnx/src/ipc3x_dev/ti/syslink/family/omap5430/ipu/omap5430BenelliProc.c b/qnx/src/ipc3x_dev/ti/syslink/family/omap5430/ipu/omap5430BenelliProc.c
index 38e1ddb342be8c6b58ef1b08ad09d4182dd58cdb..1193dc8e8b5ef213086fbe810e978c732d145120 100644 (file)
#define NumCarveouts 1
/* config param for core0 mmu */
+#ifndef SYSLINK_SYSBIOS_SMP
#define PARAMS_mmuEnable "ProcMgr.proc[CORE0].mmuEnable="
#define PARAMS_carveoutAddr0 "ProcMgr.proc[CORE0].carveoutAddr0="
#define PARAMS_carveoutSize0 "ProcMgr.proc[CORE0].carveoutSize0="
#define PARAMS_carveoutAddr1 "ProcMgr.proc[CORE0].carveoutAddr1="
#define PARAMS_carveoutSize1 "ProcMgr.proc[CORE0].carveoutSize1="
+#else
+#define PARAMS_mmuEnable "ProcMgr.proc[IPU].mmuEnable="
+#define PARAMS_carveoutAddr0 "ProcMgr.proc[IPU].carveoutAddr0="
+#define PARAMS_carveoutSize0 "ProcMgr.proc[IPU].carveoutSize0="
+#define PARAMS_carveoutAddr1 "ProcMgr.proc[IPU].carveoutAddr1="
+#define PARAMS_carveoutSize1 "ProcMgr.proc[IPU].carveoutSize1="
+#endif
#define PARAMS_mmuEnableDSP "ProcMgr.proc[DSP].mmuEnable="
#define PARAMS_carveoutAddr0DSP "ProcMgr.proc[DSP].carveoutAddr0="
#define PARAMS_carveoutSize0DSP "ProcMgr.proc[DSP].carveoutSize0="
diff --git a/qnx/src/ipc3x_dev/ti/syslink/inc/_MultiProcPlat.h b/qnx/src/ipc3x_dev/ti/syslink/inc/_MultiProcPlat.h
index 4269e48689dbdb103f4182fe2bdd601ab026f7ca..2fdb51f0066f492b72b4bdfa49b4cc0f9633ccfb 100644 (file)
MultiProc_Config MultiProc_PlatformConfig = {
.numProcessors = 3, /* numProcessors */
.nameList[0] = "HOST",
- .nameList[1] = "CORE0",
+ .nameList[1] = "IPU",
.nameList[2] = "DSP",
.id = 0,
};
diff --git a/qnx/src/ipc3x_dev/ti/syslink/ipc/hlos/knl/arch/omap5430/Omap5430IpcInt.c b/qnx/src/ipc3x_dev/ti/syslink/ipc/hlos/knl/arch/omap5430/Omap5430IpcInt.c
index b66f375ae16f1b3cdcf2c615c606a66d9d2c0d57..bf841f748702142abf0b19d2e86c8528e87d2bea 100644 (file)
#define OMAP5430_INDEX_HOST 3
#endif
+#ifndef SYSLINK_SYSBIOS_SMP
+#define CORE0 "CORE0"
+#else
+#define CORE0 "IPU"
+#endif
+
/* Macro to make a correct module magic number with refCount */
#define OMAP5430IPCINT_MAKE_MAGICSTAMP(x) \
((OMAP5430IPCINT_MODULEID << 12u) | (x))
MultiProc_getId ("CORE1");
#endif
Omap5430IpcInt_state.procIds [OMAP5430_INDEX_CORE0] =
- MultiProc_getId ("CORE0");
+ MultiProc_getId (CORE0);
Omap5430IpcInt_state.maxProcessors = MultiProc_getNumProcessors();
if (status >= 0) {
diff --git a/qnx/src/ipc3x_dev/ti/syslink/rpmsg-resmgr/hlos/knl/Qnx/family/omap5430/ipu_pm.c b/qnx/src/ipc3x_dev/ti/syslink/rpmsg-resmgr/hlos/knl/Qnx/family/omap5430/ipu_pm.c
index 917be42b4638b22673530efeb45522a6c175bdb5..08bf04c178e4c41f960443c4d1df98dc9f6ad45e 100644 (file)
#include <Bitops.h>
#include <_rpmsg.h>
+#ifndef SYSLINK_SYSBIOS_SMP
+#define CORE0 "CORE0"
+#else
+#define CORE0 "IPU"
+#endif
+
/* Defines the ipu_pm state object, which contains all the module
* specific information. */
struct ipu_pm_module_object {
static Bool ipu_pm_gptimer_interrupt(Ptr fxnArgs)
{
int num;
- uint16_t core0_id = MultiProc_getId("CORE0");
+ uint16_t core0_id = MultiProc_getId(CORE0);
uint16_t core1_id = MultiProc_getId("CORE1");
uint16_t dsp_id = MultiProc_getId("DSP");
int core0_loaded;
int core1_loaded;
unsigned long timeout;
- unsigned short core0_id = MultiProc_getId("CORE0");
+ unsigned short core0_id = MultiProc_getId(CORE0);
unsigned short core1_id = MultiProc_getId("CORE1");
unsigned short dsp_id = MultiProc_getId("DSP");
struct itimerspec value;
int retval = 0;
int core0_loaded;
int core1_loaded;
- unsigned short core0_id = MultiProc_getId("CORE0");
+ unsigned short core0_id = MultiProc_getId(CORE0);
unsigned short core1_id = MultiProc_getId("CORE1");
unsigned short dsp_id = MultiProc_getId("DSP");
/* ISR for Timer*/
static void ipu_pm_timer_interrupt (union sigval val)
{
- ipu_pm_save_ctx(MultiProc_getId("CORE0"));
+ ipu_pm_save_ctx(MultiProc_getId(CORE0));
return;
}
#else // BENELLI_SELF_HIBERNATION
return -EINVAL;
}
- if (proc_id == MultiProc_getId("CORE0")) {
+ if (proc_id == MultiProc_getId(CORE0)) {
ipu_pm_state.loaded_procs |= CORE0_LOADED;
#ifdef BENELLI_WATCHDOG_TIMER
ipu_pm_gpt_enable(GPTIMER_9);
if (retval < 0) {
#ifdef BENELLI_WATCHDOG_TIMER
- if (proc_id == MultiProc_getId("CORE0")) {
+ if (proc_id == MultiProc_getId(CORE0)) {
if (ipu_pm_state.gpt9IsrObject) {
OsalIsr_uninstall(ipu_pm_state.gpt9IsrObject);
OsalIsr_delete(&ipu_pm_state.gpt9IsrObject);
}
#endif
- if (proc_id == MultiProc_getId("CORE0")) {
+ if (proc_id == MultiProc_getId(CORE0)) {
#ifdef BENELLI_WATCHDOG_TIMER
OsalIsr_uninstall(ipu_pm_state.gpt9IsrObject);
OsalIsr_delete(&ipu_pm_state.gpt9IsrObject);