For any given connection to a remote processor, one of the
following notify driver types may be used. Each driver has
different characteristics and system requirements.
- Driver_SHAREDMEMORY
-
This driver uses shared memory for passing the notify payload
between processors. Additional state is also stored in the
shared memory.
There is a separate, cache-aligned block of memory for each
event number. This is necessary to maintain cache coherency.
However, this requires a non-trivial amount of memory.
- Driver_MAILBOX
-
This driver uses a hardware FIFO (provided by the hardware
mailbox) to pass the notify payload between processors. No
shared memory is required by this driver.
This driver does not support the full Notify API set. This
driver has lower delivery latency when compard to the shared
memory driver.
C SYNOPSIS
struct NotifySetup.Connection |
|
Define a notify driver connection
var obj = new NotifySetup.Connection;
// notify driver
obj.procName = String ...
// remote processor name
FIELDS
driver
The driver to be used for this connection. See the Driver
enumeration for details.
procName
The name of the remote processor for the given connection.
DETAILS
Each IPC connection is defined by two end-points: the local
processor and the remote processor. Each connection supports
only one type of notify driver. In other words, both ends of
the connection must configure the same notify driver type.
However, when a processor has multiple connections (when
communicating with multiple remote processors), each connection
is configured independently. Therefore, different notify drivers
may be used for different connections. Currently, IPC supports
only one connection for each remote processor.
The configuration for a given connection must be coordinated with
the remote processor. Each processor is only able to configure its
local end-point for the connection. It is important that the remote
processor use the same notify driver for the connection.
C SYNOPSIS
metaonly config NotifySetup.common$ // module-wide |
|
Common module configuration parameters
DETAILS
All modules have this configuration parameter. Its name
contains the '$' character to ensure it does not conflict with
configuration parameters declared by the module. This allows
new configuration parameters to be added in the future without
any chance of breaking existing modules.
metaonly config NotifySetup.connections // module-wide |
|
Configure the notify driver for each given connection
DETAILS
Use this configuration parameter to define which notify driver
is to be used when communicating with remote processors. Create
one entry in this array for each connection. Each entry you create,
defines the local end-point of the connection. The remote processor
must have a complimentary entry in its connections array.
Any connection which is undefined, will use the shared memory
notify driver. It is not necessary to define all connections, just
the ones which will not use the default.
To define a local end-point connection, establish a reference to
this module and add a new entry to this array.
The following example show how to setup the mailbox driver for
communicating from DSP1 to EVE1 and EVE2.
Add the following to your DSP1 configuration script.
// configure the notify driver
var NotifySetup = xdc.useModule('ti.sdo.ipc.family.vayu.NotifySetup');
NotifySetup.connections.$add(
new NotifySetup.Connection({
driver: NotifySetup.Driver_MAILBOX,
procName: "EVE1"
})
);
NotifySetup.connections.$add(
new NotifySetup.Connection({
driver: NotifySetup.Driver_MAILBOX,
procName: "EVE2"
})
);
Add the following to your EVE1 configuration script.
// configure the notify driver
var NotifySetup = xdc.useModule('ti.sdo.ipc.family.vayu.NotifySetup');
NotifySetup.connections.$add(
new NotifySetup.Connection({
driver: NotifySetup.Driver_MAILBOX,
procName: "DSP1"
})
);
Add the following to your EVE2 configuration script.
// configure the notify driver
var NotifySetup = xdc.useModule('ti.sdo.ipc.family.vayu.NotifySetup');
NotifySetup.connections.$add(
new NotifySetup.Connection({
driver: NotifySetup.Driver_MAILBOX,
procName: "DSP1"
})
);