diff --git a/packages/ti/sdo/ipc/family/vayu/NotifySetup.xs b/packages/ti/sdo/ipc/family/vayu/NotifySetup.xs
index a7dd9f8dba0fc99ea7b0399f5441d4f1f47d57ff..3a2d36db24faf7caed06d3e4c346c972b994a837 100644 (file)
/*
- * Copyright (c) 2012-2014 Texas Instruments Incorporated - http://www.ti.com
+ * Copyright (c) 2012-2013, Texas Instruments Incorporated
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-
/*
* ======== NotifySetup.xs ========
*
*/
-var MultiProc = null;
+
+var NotifyDriverShm = null;
+var Notify = null;
+var MultiProc = null;
+var NotifySetup = null;
/*
* ======== module$use ========
*/
function module$use()
{
- var TableInit = xdc.useModule("ti.sdo.ipc.family.vayu.TableInit");
-
- /* load modules needed in meta domain and in target domain */
- MultiProc = xdc.useModule('ti.sdo.utils.MultiProc');
-
- xdc.useModule('xdc.runtime.Assert');
-
- /* initialize procIdTable */
- TableInit.initProcId(this);
-
- /* initialize mailboxTable */
- TableInit.generateTable(this);
+ NotifyDriverShm = xdc.useModule('ti.sdo.ipc.notifyDrivers.NotifyDriverShm');
+ Notify = xdc.useModule('ti.sdo.ipc.Notify');
+ MultiProc = xdc.useModule('ti.sdo.utils.MultiProc');
+ NotifySetup = this;
- /* Initialize mailbox base address table */
- this.mailboxBaseAddr[0] = 0x4208B000; /* EVE1 Internal Mailbox 0 */
- this.mailboxBaseAddr[1] = 0x4208C000; /* EVE1 Internal Mailbox 1 */
- this.mailboxBaseAddr[2] = 0x4208D000; /* EVE1 Internal Mailbox 2 */
- this.mailboxBaseAddr[3] = 0x4218B000; /* EVE2 Internal Mailbox 0 */
- this.mailboxBaseAddr[4] = 0x4218C000; /* EVE2 Internal Mailbox 1 */
- this.mailboxBaseAddr[5] = 0x4218D000; /* EVE2 Internal Mailbox 2 */
- this.mailboxBaseAddr[6] = 0x4228B000; /* EVE3 Internal Mailbox 0 */
- this.mailboxBaseAddr[7] = 0x4228C000; /* EVE3 Internal Mailbox 1 */
- this.mailboxBaseAddr[8] = 0x4228D000; /* EVE3 Internal Mailbox 2 */
- this.mailboxBaseAddr[9] = 0x4238B000; /* EVE4 Internal Mailbox 0 */
- this.mailboxBaseAddr[10] = 0x4238C000; /* EVE4 Internal Mailbox 1 */
- this.mailboxBaseAddr[11] = 0x4238D000; /* EVE4 Internal Mailbox 2 */
- this.mailboxBaseAddr[12] = 0x48840000; /* System Mailbox 5 */
- this.mailboxBaseAddr[13] = 0x48842000; /* System Mailbox 6 */
- this.mailboxBaseAddr[14] = 0x48844000; /* System Mailbox 7 */
- this.mailboxBaseAddr[15] = 0x48846000; /* System Mailbox 8 */
+ var loopIdx;
- /* determine which notify drivers to include */
- this.$private.driverMask = 0;
-
- /* for unspecfied connections, the default is shared memory */
- if (this.connections.length < (MultiProc.numProcessors - 1)) {
- this.$private.driverMask |= this.Driver_SHAREDMEMORY;
+ for (loopIdx = 0; loopIdx < this.NUM_CORES; loopIdx++) {
+ this.procIdTable[loopIdx] = -1;
}
- /* remember which notify drivers have been specified */
- for (var i = 0; i < this.connections.length; i++) {
- if (this.connections[i].driver == this.Driver_SHAREDMEMORY) {
- this.$private.driverMask |= this.Driver_SHAREDMEMORY;
- }
- if (this.connections[i].driver == this.Driver_MAILBOX) {
- this.$private.driverMask |= this.Driver_MAILBOX;
- }
+ /* note: IPU intentionally omitted, nothing to setup */
+ this.eve1ProcId = MultiProc.getIdMeta("EVE1");
+ this.eve2ProcId = MultiProc.getIdMeta("EVE2");
+ this.eve3ProcId = MultiProc.getIdMeta("EVE3");
+ this.eve4ProcId = MultiProc.getIdMeta("EVE4");
+ this.dsp1ProcId = MultiProc.getIdMeta("DSP1");
+ this.dsp2ProcId = MultiProc.getIdMeta("DSP2");
+ this.hostProcId = MultiProc.getIdMeta("HOST");
+
+ if (this.eve1ProcId != MultiProc.INVALIDID) {
+ this.procIdTable[this.eve1ProcId] = 0;
}
-
- /* load notify drivers into configuration model */
- if (this.$private.driverMask & this.Driver_SHAREDMEMORY) {
- xdc.useModule('ti.sdo.ipc.notifyDrivers.NotifyDriverShm');
+ if (this.eve2ProcId != MultiProc.INVALIDID) {
+ this.procIdTable[this.eve2ProcId] = 1;
}
- if (this.$private.driverMask & this.Driver_MAILBOX) {
- xdc.useModule('ti.sdo.ipc.family.vayu.NotifyDriverMbx');
+ if (this.eve3ProcId != MultiProc.INVALIDID) {
+ this.procIdTable[this.eve3ProcId] = 2;
}
-}
-
-/*
- * ======== module$static$init ========
- * Initialize the target state object.
- */
-function module$static$init(state, mod)
-{
- var procId;
-
- state.numPlugged = 0;
-
- /* Initialize the state connAry from the config params. Translate
- * processor names into IDs for better runtime performance.
- */
- state.connAry.length = mod.connections.length;
-
- for (var i = 0; i < mod.connections.length; i++) {
- procId = MultiProc.getIdMeta(mod.connections[i].procName);
- state.connAry[i].procId = procId;
- state.connAry[i].driver = mod.connections[i].driver;
+ if (this.eve4ProcId != MultiProc.INVALIDID) {
+ this.procIdTable[this.eve4ProcId] = 3;
}
-
- /* finish initializing the interrupt table */
- if (Program.build.target.isa == "v7M4") {
-// TODO
-// if (Core.id == 0) {
-// Hwi.construct(state.hwi, 53, NotifyDriverMbx.isr);
-// }
-// else {
-// Hwi.construct(state.hwi, 54, NotifyDriverMbx.isr);
-// }
- /* interrupt event IDs used by this processor */
- for (var i = 0; i < state.interruptTable.length; i++) {
- state.interruptTable[i] = 0xFFFF; /* TODO */
- }
+ if (this.dsp1ProcId != MultiProc.INVALIDID) {
+ this.procIdTable[this.dsp1ProcId] = 4;
}
- else if (Program.build.target.isa == "arp32") {
- /* interrupt event IDs used by this processor */
- for (var i = 0; i < state.interruptTable.length; i++) {
- state.interruptTable[i] = 0xFFFF; /* TODO */
- }
+ if (this.dsp2ProcId != MultiProc.INVALIDID) {
+ this.procIdTable[this.dsp2ProcId] = 5;
}
- else if (Program.build.target.isa == "66") {
- /* interrupt event IDs used by this processor */
- state.interruptTable[0] = 55; /* EVE1 -> DSP1 or DSP2 */
- state.interruptTable[1] = 56; /* EVE2 -> DSP1 or DSP2 */
- state.interruptTable[2] = 58; /* EVE3 -> DSP1 or DSP2 */
- state.interruptTable[3] = 59; /* EVE4 -> DSP1 or DSP2 */
- state.interruptTable[4] = 60; /* DSP1 -> DSP2 */
- state.interruptTable[5] = 60; /* DSP2 -> DSP1 */
- state.interruptTable[8] = 57; /* HOST -> DSP1 or DSP2 */
-
- /* these are not known at config time, set at runtime */
- state.interruptTable[6] = 0; /* IPU1 -> DSP1 or DSP2 */
- state.interruptTable[7] = 0; /* IPU2 -> DSP1 or DSP2 */
- state.interruptTable[9] = 0; /* IPU1-1 -> DSP1 or DSP2 */
- state.interruptTable[10] = 0; /* IPU2-1 -> DSP1 or DSP2 */
- }
- else if (Program.build.target.isa == "v7A15") {
- /* interrupt event IDs used by this processor */
- for (var i = 0; i < state.interruptTable.length; i++) {
- state.interruptTable[i] = 0xFFFF; /* TODO */
- }
-
- /* TODO */
- // Hwi.construct(state.hwi, 77, NotifyDriverMbx.isr);
- }
- else {
- throw("Invalid target: " + Program.build.target.$name);
- }
-
- /* initialize the driver table */
- for (var i = 0; i < state.isrDispatchTable.length; i++) {
- state.isrDispatchTable[i] = null;
+ if (this.hostProcId != MultiProc.INVALIDID) {
+ this.procIdTable[this.hostProcId] = 8;
}
}