ipc/ipcdev.git
7 years agoIncrease NAMESERVER_GET_TIMEOUT from 20000 to 40000 microseconds
Robert Tivy [Thu, 27 Feb 2014 02:08:05 +0000 (18:08 -0800)]
Increase NAMESERVER_GET_TIMEOUT from 20000 to 40000 microseconds

Product testing revealed that a remote core was occasionally taking
slighly longer than 20000 microseconds to respond (in the negative)
to a NameServer_getRemote() query.  We're not sure why it's taking
so long in some cases, as normally the remote core will respond in a
few hundred microseconds.

Doubling the timeout will affect the total query time across multiple
remote cores when some of those cores aren't running NameServer, but
this should be OK since it affects "startup" times with MessageQ_open()
and shouldn't affect normal "execute" times.

7 years agoRemove duplicated call to GateMP_close in gatempapp on BIOS side
vwan@ti.com [Wed, 26 Feb 2014 21:54:16 +0000 (13:54 -0800)]
Remove duplicated call to GateMP_close in gatempapp on BIOS side

Signed-off-by: VW <vwan@ti.com>
7 years agoBuild: Switch from ?= assignments to =
Chris Ring [Thu, 27 Feb 2014 00:34:57 +0000 (16:34 -0800)]
Build: Switch from ?= assignments to =

products.mak should use the [less confusing] = assignments, rather
than the set-if-not-already-set ?= assignment.  This helps with user
readability of the assignments.

7 years agoSDOCM00106664: Reduce slave-side trace from tests
Chris Ring [Wed, 26 Feb 2014 21:41:37 +0000 (13:41 -0800)]
SDOCM00106664: Reduce slave-side trace from tests

The slave-side trace enabled by the tests is too high.  It obfuscates
actual test output, as well as, in at least one case, was slowing
down the slave-side execution enough to cause host-side timeouts
waiting for replies.

This commit changes some Registry-related masks from ALWAYS_ON
to RUNTIME_OFF to help quiet things down.

7 years agoEnable gptimers in PD_IPU domain 3.21.00.06_eng
vwan@ti.com [Tue, 25 Feb 2014 00:09:30 +0000 (16:09 -0800)]
Enable gptimers in PD_IPU domain

This commit adds workaround to enable gptimers in PD_IPU domain on Vayu in QNX.
It enables example ex41_forwardmsg to run successfully.

Signed-off-by: VW <vwan@ti.com>
7 years agoSDOCM00106450 HeapMemMP_free fails to cache invalidate freed...
Ramsey Harris [Fri, 21 Feb 2014 18:48:15 +0000 (10:48 -0800)]
SDOCM00106450 HeapMemMP_free fails to cache invalidate freed...

The freed buffer content (after the header) was left in cache. If
buffer content was dirty, it would eventually be evicted with a
write-back possibly overwriting memory in use by a different core,
and cause heap corruption.

7 years agoSDOCM00106428 Add notify mailbox driver support on DRA7xx (Part 3)
Ramsey Harris [Fri, 21 Feb 2014 17:51:14 +0000 (09:51 -0800)]
SDOCM00106428 Add notify mailbox driver support on DRA7xx (Part 3)

Added notify mailbox driver support for ARP32. The IPC interrupt on
arp32 will dispatch to the appropriate driver (shm or mbx). This
improves the NotifyDriverShm performance because it checks only the
mailboxes which might have raised the given event instead of always
checking all mailboxes. Improved ROV view of NotifyDriverMbx. Added
a mailbox tab which shows inbound and outbound mailbox status. Better
ISA handling in source code and script code.

7 years agoAdd configurable polling interval to ipc_trace_daemon on QNX
vwan@ti.com [Fri, 21 Feb 2014 22:21:57 +0000 (14:21 -0800)]
Add configurable polling interval to ipc_trace_daemon on QNX

This commit adds a command line parameter to ipc_trace_daemon to set the
polling interval. The default is now set to 0.5 sec as the previous
default was too long. This addresses SDOCM00105472.

Signed-off-by: VW <vwan@ti.com>
7 years agoLinux/Qnx: MessageQBench test must check initial MSG put
Arnie Reynoso [Wed, 19 Feb 2014 22:56:54 +0000 (14:56 -0800)]
Linux/Qnx: MessageQBench test must check initial MSG put

The MessageQBench test must ensure the initial MessageQ_put during
the applications handshaking returns successful before continuing.

7 years agoAdd IPU1 support in QNX
vwan@ti.com [Wed, 19 Feb 2014 19:51:31 +0000 (11:51 -0800)]
Add IPU1 support in QNX

This commit adds support for IPU1 in QNX. It has the current limitation that
the core cannot be put into deep sleep in the idle task, so the function
IpcPower_idle() must be removed from the idle loop. This issue will be fixed
at a later time.

Signed-off-by: VW <vwan@ti.com>
7 years agoSDOCM00106428 Add notify mailbox driver support on DRA7xx (Part 2)
Ramsey Harris [Wed, 19 Feb 2014 02:16:50 +0000 (18:16 -0800)]
SDOCM00106428 Add notify mailbox driver support on DRA7xx (Part 2)

Updated Build module with NotifyDriverMbx.c to include new driver
in IPC product libraries (C66, M4, ARP32, A15g).

7 years agoVAYU QNX: Prevent race condition when host is slow to clear interrupts from IPU
vwan@ti.com [Sat, 15 Feb 2014 01:33:27 +0000 (17:33 -0800)]
VAYU QNX: Prevent race condition when host is slow to clear interrupts from IPU

This commit prevents the same race condition that was fixed in commit id
feb7a8486ed537033c5aed5b170f52f758bddabe, this time for the IPUs as
the other commit only dealt with the DSP.

Signed-off-by: VW <vwan@ti.com>
7 years agoSDOCM00106428 Add notify mailbox driver support on DRA7xx (Part 1)
Ramsey Harris [Mon, 17 Feb 2014 22:14:54 +0000 (14:14 -0800)]
SDOCM00106428 Add notify mailbox driver support on DRA7xx (Part 1)

New NotifyDriverMbx module; initial implementation of notify mailbox
driver on dsp only. Added support for multiple notify driver configs
in NotifySetup; requires new dispatch isr for notify events.

7 years agoLinux/Qnx: MessageQ msg cannot be freed if put fails
Arnie Reynoso [Fri, 14 Feb 2014 19:53:31 +0000 (11:53 -0800)]
Linux/Qnx: MessageQ msg cannot be freed if put fails

MessageQ msg being put to the transport layer can only be freed
if the msg is successfully placed. Otherwise, it's the responsibility
of the application to free the msg.

7 years agoBIOS: Only build rpmsg libs when useful
Chris Ring [Fri, 14 Feb 2014 00:12:50 +0000 (16:12 -0800)]
BIOS: Only build rpmsg libs when useful

Many of the rpmsg-protocol-related IPC packages build for
all targets thrown at them (like good packages should).

However, we know many supported targets will never use the rpmsg
protocol, and we are therefore unnecessarily building libraries
that will never be used.

This commit changes some of the rpmsg-specific packages to not
build for targets that don't have any devices containing an
rpmsg-using HLOS-based host.

7 years agoLinux: Fix pkg-config dependency name 3.21.00.05_eng
Chris Ring [Thu, 13 Feb 2014 00:59:59 +0000 (16:59 -0800)]
Linux: Fix pkg-config dependency name

The name of dependent packages includes the 'lib' prefix - this
fixes pkg-config when run on libtiipc.pc.

7 years agoLinux: Fix warnings in LAD for non GateMP builds
Arnie Reynoso [Mon, 10 Feb 2014 22:28:27 +0000 (14:28 -0800)]
Linux: Fix warnings in LAD for non GateMP builds

To eliminate build warnings in LAD, variables used for GateMP enabled
code need to be encapsulated.

7 years agoLinux: Update autotools generated files
Chris Ring [Tue, 11 Feb 2014 19:41:38 +0000 (11:41 -0800)]
Linux: Update autotools generated files

Check in autoreconf-generated files after the change from
C66AK2E to 66AK2E.

7 years ago66AK2E: Linux: Remove leading 'C' in device name
Chris Ring [Tue, 11 Feb 2014 19:36:28 +0000 (11:36 -0800)]
66AK2E: Linux: Remove leading 'C' in device name

The initial Linux support for 66AK2E (commit
f45b1ad1a591b188eb1321102a3b8ed479eec490) went in with
the leading 'C66AK2E' identifier.  After review by the MCSDK team,
the leading 'C' was incorrect and removed.

Note that autotools' condition variables must start with a
leading character, so internally the variable 'C66AK2E' is
still used.  But the user only sees '66AK2E' when setting
the PLATFORM variable.

The BIOS-side changes are in a separate commit.

7 years ago66AK2E: BIOS: Remove leading 'C' in device name
Chris Ring [Tue, 11 Feb 2014 18:58:52 +0000 (10:58 -0800)]
66AK2E: BIOS: Remove leading 'C' in device name

The initial support for 66AK2E (commit
867efc6fa15f91639820614f6f9ca6ee6751ffa6) went in with
the 'C66AK2E' identifier.  After review by the MCSDK team,
the leading 'C' was incorrect and removed.

The XDC platform and catalog includes this leading 'C', so
most of the internal config-related support did not require
changes.

Finally, this is only the BIOS-side changes.  The Linux-side
changes will be done in a subsequent commit.

7 years agoSDOCM00106383: Remove C6x COFF support
Chris Ring [Tue, 11 Feb 2014 17:25:41 +0000 (09:25 -0800)]
SDOCM00106383: Remove C6x COFF support

C6x COFF support is being [softly] removed from IPC 3.21.  This
commit deletes C6x COFF-related variables from products.mak, but
leaves everything else intact.  If a user finds they need COFF
support, they can easily re-enable it themselves by setting the
variable(s) removed from products.mak and rebuilding.

Eventually the intent is to remove C6x COFF support altogether -
including the build support in ipc-bios.mak and ipc-bios.bld, and
possibly elsewhere.

7 years agoBIOS: GateMP host support must ensure maxNameLen is 32
Arnie Reynoso [Mon, 10 Feb 2014 19:49:16 +0000 (11:49 -0800)]
BIOS: GateMP host support must ensure maxNameLen is 32

When GateMP host support is enabled, the default GateMP must ensure
the size of the maxNameLen must be at least 32. The size must correspond
to the expected size on the host OS (Linux, Qnx, Android) which is
currently 32.

The default size for maxNameLen on the BIOS-side is 32. Thus this issue
hadn't be encountered.

7 years agoLinux/Android: Remove existing response FIFO in LAD
Arnie Reynoso [Mon, 10 Feb 2014 19:30:50 +0000 (11:30 -0800)]
Linux/Android: Remove existing response FIFO in LAD

In rare instances when LAD is improperly terminated, the PID-based
response FIFO will not be removed.  This will cause startup failures
of subsequent execution of LAD. The existing response FIFO must be
removed before creating new ones with the same PID. (SDOCM00106318)

7 years agoAndroid: Change LAD's working directory
Arnie Reynoso [Mon, 10 Feb 2014 19:24:24 +0000 (11:24 -0800)]
Android: Change LAD's working directory

Depending on user privileges when the LAD daemon is started, the
working directory may not be writable. The directory has been moved
to /data/lad.  File permissions at this level are easier to dictate
(SDOCM00106314).

7 years agoVirtQueue: Remove "A9" from #defines
Chris Ring [Mon, 10 Feb 2014 18:44:43 +0000 (10:44 -0800)]
VirtQueue: Remove "A9" from #defines

Many of our supported devices do not use A9s, so generalize
the definitions that previously used A9 in them.

7 years agoDRA7XX: Remove unnecessary rpmsg-related code
Chris Ring [Mon, 10 Feb 2014 17:47:21 +0000 (09:47 -0800)]
DRA7XX: Remove unnecessary rpmsg-related code

Similar to commit 16adcaad which cleaned up OMAP5 code, this
removes dead code for DRA7XX.  Most of the changes remove
untested, and likely broken, non-SMP code.

In at least one case, the code cleanup may fix previously
undiscovered issues.  For example, in VirtQueue_isr(), the first
switch() block was [likely inadvertently] skipped for DSP2.  There
is no known issue because of this, but now with this cleanup, DSP2
will (and should!) participate in this initial switch statement.

7 years agoDRA7XX: Use XDC preprocessor definitions
Chris Ring [Mon, 10 Feb 2014 17:41:59 +0000 (09:41 -0800)]
DRA7XX: Use XDC preprocessor definitions

Switch from IPC created preprocessor definitions (set by
package.bld) to standard XDC-provided definitions.

Also remove some minor dead code.

This is just code cleanup, no intended functional change.

7 years agoC66AK2E: BIOS: Fix C66AK2E test
Chris Ring [Fri, 7 Feb 2014 01:34:51 +0000 (17:34 -0800)]
C66AK2E: BIOS: Fix C66AK2E test

Building on 867efc6fa15f91639820614f6f9ca6ee6751ffa6, this
fixes a test that was failing to build for C66AK2E.

7 years agoVAYU QNX: Prevent race condition when ARM is slow to handle mailbox interrupts
vwan@ti.com [Thu, 6 Feb 2014 22:09:43 +0000 (14:09 -0800)]
VAYU QNX: Prevent race condition when ARM is slow to handle mailbox interrupts

This patch fixes a race condition where the host side in QNX is slow to clear a
mailbox interrupt. If the slave were to try to send another interrupt before
the ARM has cleared the first one, the code in InterruptDsp_intSend()
will simply drop it. This is bad because on QNX, the code in VirtQueue_ISR
interprets the received arg as the VirtQueue id. Hence if consecutive
messages were sent with different ids, the second message would be missed.

The fix is to poll whenever the mailbox is occupied, and send the message
only when the mailbox is free. (SDOCM00106278)

Signed-off-by: VW <vwan@ti.com>
7 years agoBIOS: Fix typo in variable name
Chris Ring [Thu, 6 Feb 2014 21:06:56 +0000 (13:06 -0800)]
BIOS: Fix typo in variable name

SZIE?  Really?  This stuff kills me.

7 years agoLinux: Update autotools generated files
Chris Ring [Tue, 4 Feb 2014 22:25:35 +0000 (14:25 -0800)]
Linux: Update autotools generated files

Check in autoreconf-generated files after the pkg-config
changes.

7 years agoSDOCM00103659: Add pkg-config support
Chris Ring [Tue, 4 Feb 2014 22:21:57 +0000 (14:21 -0800)]
SDOCM00103659: Add pkg-config support

This builds on commit 6348f9de, which added pkg-config support for
the mmrpc lib.  This commit adds pkg-config support
for the tiipc and tiipcutils libraries.

Also updates .gitignore to ignore the generated *.pc files.

7 years agoDRA7XX: Minor test cfg script refactoring
Chris Ring [Tue, 4 Feb 2014 18:23:04 +0000 (10:23 -0800)]
DRA7XX: Minor test cfg script refactoring

Only MmServicMgr-using slaves require the
ti.sysbios.xdcruntime.GateThreadSupport Module.  This moves
the dependency on that package from the common Dsp_vayu.cfg into
the one MmServiceMgr-based test.

7 years agoDRA7XX: Consolidate DSP1/2 config scripts
Chris Ring [Tue, 4 Feb 2014 18:05:07 +0000 (10:05 -0800)]
DRA7XX: Consolidate DSP1/2 config scripts

Lots of duplication between DRA7XX's ti/ipc/tests/Dsp(1|2).cfg
scripts.  This commit merges the two into Dsp_vayu.cfg, which
encapsulates the single "real" difference, which was the
MultiProc config name.  It also adjusts users of these Dsp .cfg
scripts to now use the common Dsp_vayu.cfg script.

7 years agoOMAP5: Adjust IPU carveout size and linker map
Suman Anna [Wed, 18 Dec 2013 20:30:28 +0000 (14:30 -0600)]
OMAP5: Adjust IPU carveout size and linker map

The sizes for the IPU data section has been reduced, in line
with the changes on the host OS side. There is no change in
the starting addresses of either the DSP or IPU. The linker
memory map file used for building OMAP5 samples has also been
adjusted accordingly.

Signed-off-by: Suman Anna <s-anna@ti.com>
7 years agoDRA7xx: Adjust carveout sizes and addresses
Suman Anna [Tue, 17 Dec 2013 22:07:26 +0000 (16:07 -0600)]
DRA7xx: Adjust carveout sizes and addresses

The starting addresses for the resource table carveouts have
been adjusted in line with the changes on the host OS side.
The IPU2 size has been decreased, and the starting addresses
of the vrings have been reshuffled.

The linker memory map has also been adjusted for IPU2. No memory
map changes were made to IPU1 and DSP1 processors even though
the host-side can support a little bit more larger footprint
images - the current memory maps for these processors is a
minimal memory map.

Signed-off-by: Suman Anna <s-anna@ti.com>
7 years agoVayu: Minor comment wordsmithing 3.21.00.03_eng 3.21.00.04_eng
Chris Ring [Sat, 1 Feb 2014 17:51:40 +0000 (09:51 -0800)]
Vayu: Minor comment wordsmithing

Fix typo, 80 char alignment.

7 years agoTests: Remove MPU mapping from gatempapp sample's resource table
Suman Anna [Fri, 31 Jan 2014 23:45:46 +0000 (17:45 -0600)]
Tests: Remove MPU mapping from gatempapp sample's resource table

The L4_PER mapping entry is split into three individual L4_PERx
entries. This is done to remove any mappings for the MPU-relevant
address spaces into the slave processor MMUs.

This change incorporates the same changes to the gatempapp resource
table as in commit,
e4b6067 "Remoteproc: DRA7xx: Remove MPU mapping from resource table".

Signed-off-by: Suman Anna <s-anna@ti.com>
7 years agoAndroid: Adds GateMP build support
Arnie Reynoso [Fri, 31 Jan 2014 16:32:10 +0000 (08:32 -0800)]
Android: Adds GateMP build support

The necessary build files have been updated to add GateMP for
Android.  The functionality has been verified manually using
breakpoints to ensure GateMP APIs are behaving as expected.

7 years agoLinux: LAD requires -l option for logging
Arnie Reynoso [Thu, 30 Jan 2014 23:32:47 +0000 (15:32 -0800)]
Linux: LAD requires -l option for logging

With the addition of GateMP support, the LAD daemon now processes
arguments differently. An 'l' option is now required to enable
logging. The 'g' option enables GateMP support. A usage output has
been added with an 'h' option.

Examples:
    lad_<platform> -h
    lad_<platform> -l log.txt
    lad_<platform> -g -l log.txt

7 years agoOMAP5: Minor test cfg cleanup
Chris Ring [Fri, 31 Jan 2014 16:31:33 +0000 (08:31 -0800)]
OMAP5: Minor test cfg cleanup

Minor config refactoring.  The GateThreadSupport module is only
needed by grcm users, but was brought in through Dsp.cfg which
is used by non-grcm-using tests.  Also, took the opportunity to
fixup some syntax buglets and remove some dead comments.

7 years agoLinux: Improve MessageQApp cmdline error handling
Chris Ring [Thu, 30 Jan 2014 22:16:01 +0000 (14:16 -0800)]
Linux: Improve MessageQApp cmdline error handling

In the MessageQApp, if an errant 2nd arg is passed on the command
line (e.g. "DSP" instead of "2"), the calculated procId is 0
(which is the host), and HOST<->HOST messaging is attempted.  This
isn't supported.

This commit catches that errant cmdline and emits an error.

7 years agoOMAP5: Remove unnecessary rpmsg-related code
Chris Ring [Thu, 30 Jan 2014 19:58:10 +0000 (11:58 -0800)]
OMAP5: Remove unnecessary rpmsg-related code

The original OMAP5 code import included support for running the
IPU in non-SMP BIOS.  This was untested in the context of IPC 3.x,
and is not supported.  The unsupported/dead stuff was obfuscating
the live stuff, so this commit removes it.

There is no intentional change in behavior, other than slight
performance improvement due to small bits of code removal.

7 years agoBIOS: Enable xdc__strict and fix issues
Chris Ring [Wed, 29 Jan 2014 01:35:50 +0000 (17:35 -0800)]
BIOS: Enable xdc__strict and fix issues

XDC provides a xdc__strict feature.  Defining that pre-processor
variable prior to #including <xdc/std.h> will disable deprecated
data types (e.g. Uint32 - note the lowercase 'i') and change
NULL from '0' to '(void *)0'.

This commit throws that xdc__strict definition when building the
BIOS-side code, and fixes issues that were found enabling it.

Interestingly, there were a few bugs that turned up during this
exercise (rare in the wild, but still good cleanup).

7 years agoGateMP: Revert ti_sdo_ipc_GateMP_getSharedAddr
vwan@ti.com [Fri, 24 Jan 2014 18:44:32 +0000 (10:44 -0800)]
GateMP: Revert ti_sdo_ipc_GateMP_getSharedAddr

This function was inadvertently modified in a previous commit,
and needs to be reverted back to its original state.
(SDOCM00106117)

Signed-off-by: VW <vwan@ti.com>
7 years agoLinux: Update autotools-generated files
Chris Ring [Thu, 23 Jan 2014 22:32:38 +0000 (14:32 -0800)]
Linux: Update autotools-generated files

7 years agoLinux: Fix gateMPApp unconditional build
Arnie Reynoso [Thu, 23 Jan 2014 17:10:53 +0000 (09:10 -0800)]
Linux: Fix gateMPApp unconditional build

The tests directory Makefile needs to ensure CMEM_INSTALL_DIR
variable is set before attempting to build the gateMPApp for DRA7XX.

7 years agoDocs: Update MmRpc doxygen documentation
Chris Ring [Wed, 15 Jan 2014 20:37:14 +0000 (12:37 -0800)]
Docs: Update MmRpc doxygen documentation

7 years agoLinux: Update to autotools files for GateMP addition 3.21.00.02_eng
Chris Ring [Wed, 22 Jan 2014 00:32:22 +0000 (16:32 -0800)]
Linux: Update to autotools files for GateMP addition

7 years agoLinux: Added GateMP support for DRA7XX devices
Arnie Reynoso [Tue, 21 Jan 2014 22:17:44 +0000 (14:17 -0800)]
Linux: Added GateMP support for DRA7XX devices

GateMP support has been added using the device's spinlocks.

To enable GateMP on the host, throw -g option when launching the
LAD daemon as follows:

        ./lad_dra7xx log.txt -g

To enable GateMP on the slave core, the core must be configured as
the owner of SR0 and GateMP.hostSupport config param must be set
to 'true' as follows:

         var GateMP = xdc.useModule('ti.sdo.ipc.GateMP');
         GateMP.hostSupport = true;

The slave core with GateMP enabled must the loaded (remoteproc)
prior to the execution of LAD on the host. This adds a restriction
on LAD that wasn't previously there.

Note: Initial validation has only been performed on DRA7XX DSP1.

7 years agoLinux: Update autotools generated files
Chris Ring [Tue, 21 Jan 2014 21:41:42 +0000 (13:41 -0800)]
Linux: Update autotools generated files

Check in autoreconf-generated files for C66AK2E support.

7 years agoC66AK2E: Linux: Introduce support for C66AK2E
Chris Ring [Tue, 21 Jan 2014 21:31:52 +0000 (13:31 -0800)]
C66AK2E: Linux: Introduce support for C66AK2E

The C66AK2E device is an A15 + C66 DSP, similar in hardware
to the TCI663X family of devices.  This commit adds Linux-side
support.

Note that this commit doesn't update the autotools-generated
files.  That will be done in a separate commit.

7 years agoC66AK2E: BIOS: Introduce support for C66AK2E
Chris Ring [Tue, 21 Jan 2014 21:19:39 +0000 (13:19 -0800)]
C66AK2E: BIOS: Introduce support for C66AK2E

The C66AK2E device is an A15 + C66 DSP, similar in hardware
to the TCI663X family of devices.  This commit adds BIOS-side
support.

7 years agoLinux: Update autotools generated files
Chris Ring [Tue, 21 Jan 2014 19:20:10 +0000 (11:20 -0800)]
Linux: Update autotools generated files

Check in autoreconf-generated files.

7 years agoTCI6630: Linux: Introduce support for TCI6630K2L
Chris Ring [Fri, 17 Jan 2014 01:07:41 +0000 (17:07 -0800)]
TCI6630: Linux: Introduce support for TCI6630K2L

The TCI6630K2L device is an A15 + 4 C66 DSPs, very similar
to TCH6638K2K (A15 + 8 C66 DSPs).  This commit adds
Linux support.

Note that this commit doesn't update the autotools-generated
files.  That will be done in a separate commit.

7 years agoTCI6630: BIOS: Introduce support for TCI6630K2L
Chris Ring [Wed, 15 Jan 2014 21:09:22 +0000 (13:09 -0800)]
TCI6630: BIOS: Introduce support for TCI6630K2L

The TCI6630K2L device is an A15 + 4 C66 DSPs, very similar
to TCI6638K2K (A15 + 8 C66 DSPs).  This commit adds
BIOS-side support.

7 years agoIncrease the max name length for GateMP's NameServer on QNX to 32
vwan@ti.com [Thu, 16 Jan 2014 19:41:03 +0000 (11:41 -0800)]
Increase the max name length for GateMP's NameServer on QNX to 32

This is to match up with the BIOS side default configuration in GateMP, and to
accommodate for the name of the default gate, which is 17-byte long.

Signed-off-by: VW <vwan@ti.com>
7 years agoLinux: Update autotools generated files
Arnie Reynoso [Thu, 16 Jan 2014 17:09:50 +0000 (09:09 -0800)]
Linux: Update autotools generated files

The autotools generated files have been update to reflect the addition
of a pkgconfig file for the mmrpc library.

Including the generated files in the development branch eliminates the
need for users to have autotools (autoconf, autoamke, and libtool) to
build ipc Linux sources.

7 years agoLinux: Add package config information to mmrpc
Arnie Reynoso [Thu, 16 Jan 2014 17:05:52 +0000 (09:05 -0800)]
Linux: Add package config information to mmrpc

This patch adds the libmmrpc.pc to package config.
This aides in identifying the correct CFLAGS for any user or mmrpc
as below.

pkg-config --cflags libmmrpc

Using the above command, the applications using libmmrpc can
find the cflags automatically using pkg-config thus avoiding to
explicitly set the path to MmRpc.h

7 years agoSDOCM00106019 IPC makefile template does not honor Build.customCCOpts
Ramsey Harris [Wed, 15 Jan 2014 23:33:12 +0000 (15:33 -0800)]
SDOCM00106019 IPC makefile template does not honor Build.customCCOpts

The makefile template had an incorrect reference to the BIOS module.
This caused the wrong customCCOpts to be used in the makefile.

7 years agoLAD: Dead code removal
Chris Ring [Sat, 14 Dec 2013 00:53:16 +0000 (16:53 -0800)]
LAD: Dead code removal

Removed some dead code.

7 years agoRemoteproc: DRA7xx: Cleanup references to OMAP5
Suman Anna [Thu, 19 Dec 2013 01:12:26 +0000 (17:12 -0800)]
Remoteproc: DRA7xx: Cleanup references to OMAP5

OMAP5 has it own resource table files, so clean up any references
to OMAP5 from the DRA7xx resource table files.

Signed-off-by: Suman Anna <s-anna@ti.com>
7 years agoIpcMgr: Fix comment typo 3.21.00.01_eng
Chris Ring [Fri, 13 Dec 2013 20:09:44 +0000 (12:09 -0800)]
IpcMgr: Fix comment typo

No functional change - just fixed a typo.

7 years agoDRA7XX: Improve SMP detection and error messages
Chris Ring [Fri, 13 Dec 2013 19:35:48 +0000 (11:35 -0800)]
DRA7XX: Improve SMP detection and error messages

Specifically for the ti.ipc.family.vayu package, which is limited
to use on HLOS-based systems, only SMP BIOS is supported on the
IPUs.  This commit improves the package's SMP detection (in
getLibs()) and error reporting (in validate()).

7 years agoIgnore 'remote get' timeouts in NameServer_get when procId array is supplied in QNX.
vwan@ti.com [Fri, 13 Dec 2013 01:50:03 +0000 (17:50 -0800)]
Ignore 'remote get' timeouts in NameServer_get when procId array is supplied in QNX.

This patch fixes an oversight in commit 2427c7d168fb42a3e277f7d4c7827e7cdc955ac2,
where 'remote get' timeouts were ignored when procId array is NULL, but not
for the case when the procId array is supplied.

7 years agoChange NameServer_get to ignore 'remote get' timeouts in BIOS
vwan@ti.com [Fri, 13 Dec 2013 01:56:21 +0000 (17:56 -0800)]
Change NameServer_get to ignore 'remote get' timeouts in BIOS

This patch allows NameServer requests to succeed even when some of the other
remote cores are not yet ready to handle NameServer requests.

7 years agoFix wrong assertion in packages/ti/sdo/ipc/family/vayu/InterruptDsp.c
vwan@ti.com [Fri, 13 Dec 2013 01:59:22 +0000 (17:59 -0800)]
Fix wrong assertion in packages/ti/sdo/ipc/family/vayu/InterruptDsp.c

7 years agoMerge remote-tracking branch 'origin/ipc-3.20-next' into ipc-next 3.21.00.00_eng
Chris Ring [Mon, 9 Dec 2013 20:54:15 +0000 (12:54 -0800)]
Merge remote-tracking branch 'origin/ipc-3.20-next' into ipc-next

7 years agoMerge remote-tracking branch 'origin/ipc-3.10-next' into ipc-3.20-next ipc-3.20-next
Chris Ring [Mon, 9 Dec 2013 20:51:40 +0000 (12:51 -0800)]
Merge remote-tracking branch 'origin/ipc-3.10-next' into ipc-3.20-next

7 years agoMerge remote-tracking branch 'origin/3.00' into ipc-3.10-next ipc-3.10-next
Chris Ring [Mon, 9 Dec 2013 20:46:10 +0000 (12:46 -0800)]
Merge remote-tracking branch 'origin/3.00' into ipc-3.10-next

Conflicts:
linux/src/tests/Makefile.am
linux/src/tests/Makefile.in

7 years agoSDOCM00105512: Support unnamed Linux MessageQs
Chris Ring [Fri, 6 Dec 2013 00:52:42 +0000 (16:52 -0800)]
SDOCM00105512: Support unnamed Linux MessageQs

The MessageQ API supports unnamed MessageQs; update Linux's
LAD-based MessageQ creation command to handle this.

Previously a segment fault would occur due to strncpy() being
passed a NULL src string array.

7 years agoRemoves all references to OMAP4 and TI81xx devices in QNX codebase
vwan@ti.com [Sat, 23 Nov 2013 01:03:28 +0000 (17:03 -0800)]
Removes all references to OMAP4 and TI81xx devices in QNX codebase

This is to address SDOCM00101830.

Signed-off-by: VW <vwan@ti.com>
7 years agoLinux: Update autotools to require KERNEL path 3.00 ipc-3.00-next 3.00.04.29
Arnie Reynoso [Wed, 16 Oct 2013 17:14:10 +0000 (10:14 -0700)]
Linux: Update autotools to require KERNEL path

The IPC Linx-side build now requires KERNEL path to be set to
build all libraries and test applications redardless of platform.

This change is needed since rpmsg has been made Linux kernel version
aware.
(cherry picked from commit ffd46a7143ff4e25ea14085b44ff5105c9912769)

Conflicts:
linux/src/tests/Makefile.am
linux/src/tests/Makefile.in
products.mak

7 years agoLinux: Update user AF_RPMSG define for 3.9 kernel
Arnie Reynoso [Wed, 16 Oct 2013 17:11:11 +0000 (10:11 -0700)]
Linux: Update user AF_RPMSG define for 3.9 kernel

IPC's Linux user space support contains a copy of a few
kernel-defined structs and definitions.  This is necessary
because the kernel headers are not include-able by user space.
One of these values is the socket address family used for
rpmsg-based sockets - AF_RPMSG.  This definition is always
'one more' than the last address family defined by the kernel's
socket.h.

Prior to Linux 3.9, this was aways 40.  In Linux 3.9, a new
address family was introduced (AF_VSOCK), and as a result we
needed to set AF_RPMSG to 41.  To enable this, the user space
header reflects on the kernel version and appropriately assigns
the value of AF_RPMSG.

Note that in addition to adding 3.9+ support, this commit also
cleans up some dead code.

7 years agoRelease the OMAP5 DSP MMU from reset after loading the core 3.20 3.20.00.06
vwan@ti.com [Wed, 13 Nov 2013 18:16:28 +0000 (10:16 -0800)]
Release the OMAP5 DSP MMU from reset after loading the core

This patch reverts the behavior from a previous patch that moved the MMU release
to be done prior to the load. It was causing the IPC resource manager to crash when
reloading the Tesla multiple times.

Signed-off-by: VW <vwan@ti.com>
7 years agoList supported core ids for QNX IPC manager in help/use text.
vwan@ti.com [Tue, 12 Nov 2013 21:36:42 +0000 (13:36 -0800)]
List supported core ids for QNX IPC manager in help/use text.

Signed-off-by: VW <vwan@ti.com>
7 years agoSDOCM00104726 Fix RcmServer.c compile warning
Ramsey Harris [Tue, 12 Nov 2013 18:37:39 +0000 (10:37 -0800)]
SDOCM00104726 Fix RcmServer.c compile warning

The C28 is a 16-bit processor. I added a cast to promote the key
to a 32-bit value to give sufficient room for the shift operation.
This promotion was happening implicitly on 32-bit processors.

7 years agoAdd support for loading to IPU internal memory on QNX OMAP5 3.20.00.05_eng
vwan@ti.com [Fri, 8 Nov 2013 02:02:43 +0000 (18:02 -0800)]
Add support for loading to IPU internal memory on QNX OMAP5

Add static memory entry to inform loader of internal memory area on IPU.
Also remove some code that was overriding the static entries.
This addresses SDOCM00104907.

Signed-off-by: VW <vwan@ti.com>
7 years agoAdd support for loading to slaves' internal memory on QNX Vayu
vwan@ti.com [Fri, 8 Nov 2013 00:47:44 +0000 (16:47 -0800)]
Add support for loading to slaves' internal memory on QNX Vayu

Add static memory entry to inform loader of internal memory areas on DSP1 and IPU2.
This addresses SDOCM00104907.

Signed-off-by: VW <vwan@ti.com>
7 years agoSDOCM00099002 Make LibType_Debug build profile same as custom.
Ramsey Harris [Wed, 6 Nov 2013 19:56:10 +0000 (11:56 -0800)]
SDOCM00099002 Make LibType_Debug build profile same as custom.

Merged updates in ti.sysbios.Build module into ti.ipc.sdo.Build.
Turn off package library builds when building IPC for product
release. Added ti.sdo.ipc.Build.libType config param. Added source
files to Pkg.otherFiles for source only release. Added package
debug library build support. Removed package ti.sdo.utils from
ti.sdo.ipc.Build file list, it builds separately now.

7 years agoSDOCM00104913: Warnings when DRM_PREFIX not set
Arnie Reynoso [Thu, 7 Nov 2013 16:06:32 +0000 (08:06 -0800)]
SDOCM00104913: Warnings when DRM_PREFIX not set

When DRM_PREFIX isn't set, the Linux test examples issue warnings of
unsafe cross-compilation.  This is due to the Makefile setting include
paths based on a non-existent DRM_PREFIX path. The Makefile now
conditionally sets include paths when autotools config variables are
set.

7 years agoLinux: Autoconf script requires updating
Arnie Reynoso [Thu, 7 Nov 2013 16:15:23 +0000 (08:15 -0800)]
Linux: Autoconf script requires updating

The Linux Autoconf script had not been updated after previous changes
to the configure.ac file had been made.

7 years agoUse size_t cast instead of fixed-length integer cast
Robert Tivy [Mon, 4 Nov 2013 23:55:44 +0000 (15:55 -0800)]
Use size_t cast instead of fixed-length integer cast

When using fixed-length integer-based cast (unsigned int or unsigned long)
to or from a pointer type, errors/warnings are thrown from one compiler
or another, depending on the integer size vs. the pointer size.  The
size_t type adjusts based on pointer size, so it allows a clean compile.

Also had to add a cast after existing cast, creating an ugly double-cast.

Signed-off-by: Robert Tivy <rtivy@ti.com>
7 years agoRemove ducati trace thread in QNX
vwan@ti.com [Tue, 5 Nov 2013 01:21:56 +0000 (17:21 -0800)]
Remove ducati trace thread in QNX

The ducati trace thread was deemed redundant wrt. the IPC trace daemon,
and was stealing early trace when the -g option is thrown due to a longer
delay between the time when the slave is started and when the thread is
created. Hence it has been removed. This patch also adjusts the trace buffer size
in GateMPApp to match up with its resource entry. This addresses SDOCM00103794.

Signed-off-by: VW <vwan@ti.com>
7 years agoSDOCM00104689 Remove MultiProc_setBaseIdOfCluster API
Ramsey Harris [Mon, 4 Nov 2013 17:03:24 +0000 (09:03 -0800)]
SDOCM00104689 Remove MultiProc_setBaseIdOfCluster API

This API never worked and the intended behavior is not supported.

7 years agoMerge 3.10.02.13 into ipc-next 3.20.00.04_eng
Chris Ring [Fri, 1 Nov 2013 00:24:47 +0000 (17:24 -0700)]
Merge 3.10.02.13 into ipc-next

7 years agoModify MessageQApp and MessageQBench in QNX to match slave-side changes 3.10 3.10.02.13
vwan@ti.com [Wed, 30 Oct 2013 21:54:08 +0000 (14:54 -0700)]
Modify MessageQApp and MessageQBench in QNX to match slave-side changes

The tests would fail due to previous changes in the messageq_single
server in how the Message Id was being assigned and used. Updated the
QNX-side test example to reflect these changes.

Signed-off-by: VW <vwan@ti.com>
7 years agoUpdate message protocol between host and server.
Ramsey Harris [Wed, 30 Oct 2013 20:55:39 +0000 (13:55 -0700)]
Update message protocol between host and server.

The message protocol changed on the server side. Updated host
application to use the new protocol.

7 years agoTest: Modified MessageQBench due to server changes
Arnie Reynoso [Wed, 30 Oct 2013 16:58:27 +0000 (09:58 -0700)]
Test: Modified MessageQBench due to server changes

The test would fail due to previous changes in the messageq_single
server in how the Message Id was being assigned and used. Updated the
Linux-side test example to reflect these changes. Performed some code
clean-up in the process.

7 years agoPrevent MMU registers from becoming unreadable
vwan@ti.com [Mon, 21 Oct 2013 22:37:38 +0000 (15:37 -0700)]
Prevent MMU registers from becoming unreadable

This commit changes the DSP domain power state transition register
CM_DSP_CLKSTCTRL from forcing a wake-up transition on the domain (SW_WKUP),
to using automatic transitions (HW_AUTO). This prevents the MMU registers from
becoming unreadable after repeatedly pulling the MMU out of reset and putting
it back into reset.

Signed-off-by: VW <vwan@ti.com>
7 years agoQNX IPC: OMAP5 - Enable DSP-MMU Fault Recovery
Angela Stegmaier [Wed, 4 Sep 2013 21:00:45 +0000 (16:00 -0500)]
QNX IPC: OMAP5 - Enable DSP-MMU Fault Recovery

Add the DSP MMU interrupt to listen for DSP-MMU faults.
Also fix a bug where the shm_phys_addr_dsp was not being
properly reset to 0, resulting in recovery failing to
happen properly.

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
Signed-off-by: VW <vwan@ti.com>
7 years agochange 'swiPriority' to module config param
Judah Vang [Fri, 25 Oct 2013 22:14:35 +0000 (15:14 -0700)]
change 'swiPriority' to module config param

Setting 'swiPriority' had no effect because it was an instance parameter
and the swi is created internally by IpcMgr.  Change 'swiPriority' to be
a module config parameter.  This allows users to change the priority of
the swi thread which created in their configuration script.

7 years agoSDOCM00104757 Fixed VirtQueue notification race condition
Ramsey Harris [Fri, 25 Oct 2013 21:29:34 +0000 (14:29 -0700)]
SDOCM00104757 Fixed VirtQueue notification race condition

Enable notification before checking message pool. This might
result in an unnecessary notification but this is benign. Disable
notification as before (when new message has been acquired).

7 years agoSDOCM00103636: ping_rpmsg OMAP5 test broken
Chris Ring [Fri, 25 Oct 2013 19:39:54 +0000 (12:39 -0700)]
SDOCM00103636: ping_rpmsg OMAP5 test broken

The OMAP5 and DRA7XX Linux kernels require slave-side code to
use RPMSG_NS_2_0-compatible calls to NameMap_register().  When
moving to the XDC-provided ti.platforms.sdp5430 platform, the
check for which platforms need to throw -DRPMSG_NS_2_0 broke.
As a result, the ping_rpmsg test, specifically for OMAP5, was
building incorrectly.

7 years agoExamples: Added ping_tasks to talk w/ Linux app
Arnie Reynoso [Tue, 22 Oct 2013 18:50:43 +0000 (11:50 -0700)]
Examples: Added ping_tasks to talk w/ Linux app

A slave-side ping_tasks example was added that interfaces with the
Linux kernel's rpmsg_client_sample. This example demonstrates how to
leverage the Linux kernel's rpmsg driver to communicate directly to
the slave-side BIOS RPMessage interface.

7 years agoExamples: Modify BIOS ping_rpmsg with dynamic Tasks
Arnie Reynoso [Tue, 22 Oct 2013 18:35:54 +0000 (11:35 -0700)]
Examples: Modify BIOS ping_rpmsg with dynamic Tasks

The ping_rpmsg test example has be modified to create it's Task
dynamically.  This is in anticipation of upcoming examples that will
reuse the ping_rpmsg configuration on the BIOS-side(slaves).

7 years agoFix TCI6636 platform typo in comment
Chris Ring [Thu, 24 Oct 2013 20:45:15 +0000 (13:45 -0700)]
Fix TCI6636 platform typo in comment

Minor comment change to fix TCI6636 platform variable name.

7 years agoOMAP5: Fix test build of nameserverapp
Chris Ring [Mon, 21 Oct 2013 18:20:11 +0000 (11:20 -0700)]
OMAP5: Fix test build of nameserverapp

When moving scripts from ti/configs/omap5 into ti/ipc/tests,
some scripts were renamed (to avoid conflicts with ti/configs/vayu
scripts of the same name).  One of the renames was missed in
nameserverapp.cfg.

Ideally this would have been included in
3cb709f6d6ebbf62b5d2ac25c9fb9f84ab2a8a1a.  Oh, well.

7 years agoMerge tag '3.10.02.12_eng' into ipc-next 3.20.00.03_eng
Chris Ring [Mon, 21 Oct 2013 02:46:01 +0000 (19:46 -0700)]
Merge tag '3.10.02.12_eng' into ipc-next

7 years agoMask off signals before creating thread pool in QNX resource manager
vwan@ti.com [Fri, 18 Oct 2013 18:39:46 +0000 (11:39 -0700)]
Mask off signals before creating thread pool in QNX resource manager

This commit ensures that SIGTERM is caught by the main thread by masking off signal
handling in the other threads of the thread pool. This allows the IPC resource
manager to terminate correctly after MessageQ is used (SDOCM00102268).

Signed-off-by: VW <vwan@ti.com>