]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - ipc/ipcdev.git/log
ipc/ipcdev.git
10 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.

10 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).

10 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.

10 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.

10 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

10 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>
10 years agoModified MessageQApp and messageq_single to support > 65K messages. 3.10.02.12_eng
Ramsey Harris [Sat, 19 Oct 2013 03:06:59 +0000 (20:06 -0700)]
Modified MessageQApp and messageq_single to support > 65K messages.

The test would fail when sending more then 65K messages because the
message id was only 16 bits wide. Moved message id from header into
message payload and made it 32 bits wide. Cleaned up loop to be one
based (instead of 0-based). Turned off slave side prints.

10 years agoSDOCM00104583 RPMessage crash after 65k messages
Ramsey Harris [Thu, 17 Oct 2013 23:02:26 +0000 (16:02 -0700)]
SDOCM00104583 RPMessage crash after 65k messages

The semaphore was posted for every message added to the pool.
Added VRING_USED_F_NO_NOTIFY flag to only post semaphore when
needed. Moved clearing of flag to avoid race condition with
remote processor. Also changed the semaphore from counting
mode to binary mode.

10 years agoExamples: Move ti.configs.vayu into tests
Chris Ring [Fri, 18 Oct 2013 17:57:36 +0000 (10:57 -0700)]
Examples: Move ti.configs.vayu into tests

ti.configs.vayu was a convenience package for reusable config
snippets for IPC tests.  To reinforce this, and discourage outside
use of these snippets, this commit moves the content into the test
package and deletes the ti.configs.vayu package.

10 years agoExamples: Move ti.configs.omap54xx into tests
Chris Ring [Tue, 15 Oct 2013 18:08:50 +0000 (11:08 -0700)]
Examples: Move ti.configs.omap54xx into tests

ti.configs.omap54xx was a convenience package for reusable config
snippets for IPC tests.  To reinforce this, and discourage outside
use of these snippets, this commit moves the content into the test
package and deletes the ti.configs.omap54xx package.

10 years agoSDOCM00104194 Missing vayu package dependencies
Ramsey Harris [Tue, 15 Oct 2013 22:51:02 +0000 (15:51 -0700)]
SDOCM00104194 Missing vayu package dependencies

In close() function, bring in ISA specific module using the
program's target ISA chain. Look for oldest ISA which is
supported by device processor.

10 years agoCreate a separate BIOS configuration file for NameServerApp
vwan@ti.com [Tue, 15 Oct 2013 16:43:18 +0000 (09:43 -0700)]
Create a separate BIOS configuration file for NameServerApp

This commit decouples the configuration of NameServerApp from the MessageQ
tests. This is done because NameServerApp does not use MessageQ, and can
use a simpler configuration.

Signed-off-by: VW <vwan@ti.com>
10 years agoLinux: Update autotools to require KERNEL path
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.

10 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.

10 years agoBuild: Align products.mak variables across OS's
Chris Ring [Mon, 14 Oct 2013 22:32:58 +0000 (15:32 -0700)]
Build: Align products.mak variables across OS's

The make variable to indicate a platform is now consistent
between BIOS, QNX and Linux, and only needs to be set once.

Note that this is a compatibility break for consumers (e.g. SDKs)
which automate the consumption/build of IPC.  This is consciously
being introduced in a new Major.minor release (3.20) to keep
from breaking 3.00 and 3.10 users.

This resolves SDOCM00103415.

10 years agoRemove BIOS-side rpmsg trace for NameServerApp and MessageQ tests 3.20.00.02_eng
vwan@ti.com [Wed, 9 Oct 2013 20:23:03 +0000 (13:23 -0700)]
Remove BIOS-side rpmsg trace for NameServerApp and MessageQ tests

Signed-off-by: VW <vwan@ti.com>
10 years agoRemove static allocation of IPU_MEM_IOBUFS memory in OMAP5 QNX
vwan@ti.com [Tue, 8 Oct 2013 18:16:17 +0000 (11:16 -0700)]
Remove static allocation of IPU_MEM_IOBUFS memory in OMAP5 QNX

This commit removes unnecessary static memory allocation for
IPU_MEM_IOBUFS in the IPC resource manager on OMAP5 (SDOCM00104300)

Signed-off-by: VW <vwan@ti.com>
10 years agoGateMP: typo fixes
Chris Ring [Thu, 10 Oct 2013 15:55:46 +0000 (08:55 -0700)]
GateMP: typo fixes

Resolve a few typos in the GateMP.xdc file.  One notable
change is that an Assert message was corrected.  While this
should be merely a cosmetic change, end users experiencing the
assert will see a change in the message.

10 years agoOMAP5: Provide default Notify delegate
Chris Ring [Tue, 8 Oct 2013 15:32:20 +0000 (08:32 -0700)]
OMAP5: Provide default Notify delegate

The default Notify delegate for OMAP5 is NotifySetupNull.  This
satisfies the most common use case of the A15 running an HLOS,
and the slave cores not communicating with each other.

This addresses SDOCM00103112.

10 years agoRemoved unnecessary cast in parameter assignment. 3.20.00.01_eng
Ramsey Harris [Mon, 30 Sep 2013 22:24:45 +0000 (15:24 -0700)]
Removed unnecessary cast in parameter assignment.

10 years agoQNX IPC: RscTable - Use MAP_NOINIT Flag to Allocate Mem
Angela Stegmaier [Fri, 23 Aug 2013 16:45:21 +0000 (11:45 -0500)]
QNX IPC: RscTable - Use MAP_NOINIT Flag to Allocate Mem

The QNX IPC dynamically allocates memory for the remote
core sections based on the resource table.  These sections
are allocated using an mmap call and can be quite large.
There is a performance improvement if the allocated
memory is not zero-initialized during allocation with
mmap. It may be desireable to trade off zero-initialization
of the memory for the performance improvement, so to
enable the memory to not be zero-initialized, the MAP_NOINIT
flag is added to the flags in the mmap call.

It is important to note that the MAP_NOINIT flag will only
relax the zero-init requirement if the memory being mapped
was previously freed using UNMAP_INIT_OPTIONAL. This is
considered set for any memory that hasn't been allocated before,
so can help with boot-up time. Also, The default behavior of munmap
is to not have this flag set. However, if the "-m~i" option is
used on the procnto command line, the default behavior of
munmap is changed to act like UNMAP_INIT_OPTIONAL is set.

So, this change will only gurantee the zero-init to be relaxed if the
additional change is made to use the "-m~i" option.

To be safe, this patch also explicitly zero-initializes the
vring memory after allocation, so that even if the zero-init
requirement is relaxed, the vring memory will be zero-ed.

Also, a flag named "ZEROINIT_CHUNKS" is added in the file, and
set to 0 by default. If it is desired to restore the behavior of
zero-initialization of the chunks, this can be set to 1, and
the QNX IPC rebuilt.

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
10 years agoOMAP5: resource table dead code cleanup
Chris Ring [Mon, 30 Sep 2013 20:20:44 +0000 (13:20 -0700)]
OMAP5: resource table dead code cleanup

Removed dead "#ifdef OMAP5" code chunks from two omap5-specific
files.  These files are already OMAP5-specific, they don't support
any other devices.

10 years agoAndroid: Added build support for ping_rpmsg app 3.10.01.11
Arnie Reynoso [Wed, 2 Oct 2013 20:49:34 +0000 (13:49 -0700)]
Android: Added build support for ping_rpmsg app

10 years agoAdd headers and libs to QNX 'make install' (part 2)
vwan@ti.com [Wed, 2 Oct 2013 01:05:44 +0000 (18:05 -0700)]
Add headers and libs to QNX 'make install' (part 2)

Export MessageQ-related headers and libs for QNX.  Also clean
up exported files in general to remove headers that are not needed.

This commit adds an additional file to a previous commit that
addressed SDOCM00102141.

10 years agoMerge recent 3.00 changes into 3.10 3.10.01.10_eng
Chris Ring [Tue, 1 Oct 2013 15:21:47 +0000 (08:21 -0700)]
Merge recent 3.00 changes into 3.10

10 years agoSDOCM00104043 MessageQ_open() returns not found 3.00.03.27_eng 3.00.03.28
Ramsey Harris [Tue, 1 Oct 2013 00:09:50 +0000 (17:09 -0700)]
SDOCM00104043 MessageQ_open() returns not found

Concurrency issues in NameServerRemoteNotify caused message corruption
which resulted in keys not being found. Fixed by moving state variables
from message to object state and by splitting existing swi into two
separate ones, one for request and one for response. Updated ROV.

10 years agoFix wrong usage description of resource manager (SDOCM00103947)
vwan@ti.com [Wed, 25 Sep 2013 22:45:23 +0000 (15:45 -0700)]
Fix wrong usage description of resource manager (SDOCM00103947)

This patch updates the description that appears when calling 'use ipc'.
It also removes the command line options -f and -d that are obsolete,
and updates the error messages that comes up when wrong arguments
are passed, to guide people towards correct usage.

Signed-off-by: VW <vwan@ti.com>
10 years agoAdd defaultErrFxn and an err fxn to module state
Judah Vang [Wed, 25 Sep 2013 22:13:54 +0000 (15:13 -0700)]
Add defaultErrFxn and an err fxn to module state

Update TransportCirc_setErrFxn to set the module errFxn at runtime.
Create a default Error Fxn which does nothing for TransportCirc.
If an error fxn is not specified it will be set to the default.

10 years agoSDOCM00103043:Resolve Concerto IPC stress test failures
Judah Vang [Fri, 20 Sep 2013 19:26:48 +0000 (12:26 -0700)]
SDOCM00103043:Resolve Concerto IPC stress test failures

10 years agoSDOCM00103935:Update to work with different cluster base id
Judah Vang [Fri, 20 Sep 2013 19:24:17 +0000 (12:24 -0700)]
SDOCM00103935:Update to work with different cluster base id

10 years agoSDOCM00103934:allow Swi priority to be configurable
Judah Vang [Fri, 20 Sep 2013 19:17:47 +0000 (12:17 -0700)]
SDOCM00103934:allow Swi priority to be configurable

10 years agoAndroid: Added support for MessageQ
Arnie Reynoso [Wed, 25 Sep 2013 15:50:34 +0000 (08:50 -0700)]
Android: Added support for MessageQ

Support for MessageQ and related application(LAD) was added for Android.
Android specific build files have been created/modified to build all
user-side libraries (libmmrpc, libtiipc, libtiutils) and applications
from within the Android filesystem. This include test apps (MesssageQ*).

A few changes were also needed by the common source files that
are shared across Linux and Android builds.

10 years agoLinux: Removed circular dependencies from ipc libs
Arnie Reynoso [Wed, 25 Sep 2013 20:44:00 +0000 (13:44 -0700)]
Linux: Removed circular dependencies from ipc libs

The circular dependencies between libtiipc and libtiipcutils has
been removed by moving the assignment of the user side application's
MultiProc config structure to the libtiipcutils library via a new
function (_MultiProc_initCfg).

This also forces the creation of a LAD specific libtiipcutils library
(libtiipcutils_lad), which the daemon needs to link against.

10 years agoTest: Add autotools-generated Makefile.in
Chris Ring [Wed, 25 Sep 2013 20:40:19 +0000 (13:40 -0700)]
Test: Add autotools-generated Makefile.in

This is the second half of the Makefile.am changes in
47557586d086d61d2c361796388a61598563b413.  That commit changed
Makefile.am, this commit is the associated, generated Makefile.am.

10 years agoImplement reference counting in NameServer_create/delete (SDOCM00103730)
vwan@ti.com [Mon, 23 Sep 2013 21:57:22 +0000 (14:57 -0700)]
Implement reference counting in NameServer_create/delete (SDOCM00103730)

10 years agoAdd headers and libs to QNX 'make install'
vwan@ti.com [Tue, 24 Sep 2013 17:45:08 +0000 (10:45 -0700)]
Add headers and libs to QNX 'make install'

Export MessageQ-related headers and libs for QNX.  Also clean
up exported files in general to remove headers that are not needed.

This addresses SDOCM00102141.

10 years agoNew unit test for MessageQ delivery. 3.10.01.09_eng
Ramsey Harris [Mon, 16 Sep 2013 21:09:08 +0000 (14:09 -0700)]
New unit test for MessageQ delivery.

This test validates SDOCM00103664 MessageQ_get() can discard
msgs when a msg is available from more than one remote core.

10 years agoAndroid.mk: remove HEAPTRACK library dependency
Sunita Nadampalli [Fri, 13 Sep 2013 22:30:37 +0000 (17:30 -0500)]
Android.mk: remove HEAPTRACK library dependency

BUILD_HEAPTRACKED_SHARED_LIBRARY is a local define
in hardware/ti/omap4xxx. using this build macro inside
ipc component, unnecessarily creates build dependency with
omap4xx path. And this heaptrack feature is not required
for ipc. Hence removed the HEAPTRACK option.

Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
10 years agoBuild: Enable builds without SMP support
Chris Ring [Wed, 11 Sep 2013 03:54:08 +0000 (20:54 -0700)]
Build: Enable builds without SMP support

Some customers (including the TI RTOS SDK) do not use SMP
BIOS and therefore don't require the libraries.  To improve
build times and reduce the disk size for these users, a
new variable, BIOS_SMPENABLED, was created in products.mak.
Its default value is 1 (enabled), which maintains the
behavior of previous releases.  Setting it to 0 disables
the build of SMP-enabled libraries.

Note that some platforms require SMP libraries to be built,
otherwise their test executables may fail to build.

This resolves SDOCM00103413.

10 years agoMessageQ: Fix MessageQ_get() dropping messages
Robert Tivy [Tue, 10 Sep 2013 23:01:49 +0000 (16:01 -0700)]
MessageQ: Fix MessageQ_get() dropping messages

MessageQ_get() had a bug where it would loop over all remote cores
looking for and getting a message and would return the message from
the highest numbered processor (in MultiProc order) that had one
available, tossing messages received from lower numbered processors.

The MessageQ_get() loop now terminates as soon as the first message
is found.  Further to this change, on the next call to the function
it starts looking for messages from the processor that is "next" in
the (cyclic) list after the one in which it last found a message.

Fixes SDOCM00103664.

Signed-off-by: Robert Tivy <rtivy@ti.com>
10 years agoMmRpc: updated to new Linux rpmsg_rpc.h API 3.10.00.08 3.20.00.00_eng
Ramsey Harris [Thu, 5 Sep 2013 19:51:40 +0000 (12:51 -0700)]
MmRpc: updated to new Linux rpmsg_rpc.h API

Two structures changed a field name from reserved to fd.

Also aligned the QNX copy of this header to match.

10 years agoNameServer: fix Linux-requested remote ns lookups
Chris Ring [Wed, 4 Sep 2013 22:01:14 +0000 (15:01 -0700)]
NameServer: fix Linux-requested remote ns lookups

BIOS-side NameServerRemoteRpmsg.c was recently taught to
support NameServer lookups larger than 32 bits.  Prior to
that education, it assumed all requestors were asking for
only 32 bits of NameServer data.

Linux must now indicate how big its NameServer buffer is
so the BIOS-side knows how to fill it.  When this > 32-bit
lookup support was added, QNX was correctly modified; Linux
was overlooked.

For users, this commit fixes Linux NameServer lookups (which
most users see as MessageQ_open() calls) which have been broken
since 82e4969d635d0f6cbee3c6fcc3df3a7be39bc852.  Tag-wise,
this Linux-only bug was introduced in the 3.10.00.06_eng build.

10 years agoFixed compiler warning when assigning buffer address to descriptor.
Ramsey Harris [Wed, 4 Sep 2013 18:37:07 +0000 (11:37 -0700)]
Fixed compiler warning when assigning buffer address to descriptor.

10 years agoLinux: Removed install-hook to include *.la files
Arnie Reynoso [Wed, 4 Sep 2013 17:32:59 +0000 (10:32 -0700)]
Linux: Removed install-hook to include *.la files

The Linux autotools install-hook to delete *la files as part of the
installation was removed.

10 years agoDev: Add new QNX binaries to .gitignore 3.10.00.07_eng
Chris Ring [Mon, 2 Sep 2013 03:52:34 +0000 (20:52 -0700)]
Dev: Add new QNX binaries to .gitignore

10 years agoRemoved unused IPU processor name from NotifySetup.
Ramsey Harris [Sat, 31 Aug 2013 00:23:51 +0000 (17:23 -0700)]
Removed unused IPU processor name from NotifySetup.

The IPU interrupt setup is not handled by the NotifySetup module.
In addition, the IPU references were incorrect for non-smp mode.

10 years agoBuild: Cosmetic changes to products.mak
Chris Ring [Fri, 30 Aug 2013 22:45:15 +0000 (15:45 -0700)]
Build: Cosmetic changes to products.mak

Developers added the many variables to products.mak over time.
This commit tries to address inconsistencies throughout the file,
including:
   * indication of optional variables
   * descriptions of variables
   * white space

It also moves the PLATFORM variable (used by both Linux and
BIOS) out of the Linux section and into a more common area.

10 years agoOMAP5 QNX: Changed ipc.c to avoid calling GateMP since it is not yet supported
vwan@ti.com [Fri, 30 Aug 2013 01:36:51 +0000 (18:36 -0700)]
OMAP5 QNX: Changed ipc.c to avoid calling GateMP since it is not yet supported

Signed-off-by: VW <vwan@ti.com>
10 years agoFixed make install for QNX (Vayu) to export GateMPApp
vwan@ti.com [Thu, 29 Aug 2013 23:46:44 +0000 (16:46 -0700)]
Fixed make install for QNX (Vayu) to export GateMPApp

Signed-off-by: VW <vwan@ti.com>
10 years agoAdded MmRpc_use()/MmRpc_release() API functions.
Ramsey Harris [Fri, 30 Aug 2013 00:31:43 +0000 (17:31 -0700)]
Added MmRpc_use()/MmRpc_release() API functions.

These functions call into the driver to make the buffers
persistent from the remote processor view. This allows the
remote processor to maintain persistent references to the
buffers across multiple calls to MmRcp_call().

10 years agoQNX IPC: rpmsg_rpc - Don't Use Primary Offset in Translations
Angela Stegmaier [Wed, 28 Aug 2013 22:49:41 +0000 (17:49 -0500)]
QNX IPC: rpmsg_rpc - Don't Use Primary Offset in Translations

The primary offset for the params is not needed in the
translations. The translation code was incorrectly subtracting
the primary offset when calculating the location of the pointer
to be translated. The translation offset is the offset from the
start of the params data pointer, and not the offset from the
start of the params base. So, the params data pointer plus the
translation offset is all that is needed in order to get the
location of the translation.

Also, fix the reverse translations so that the correct
value is put back in the buffer.

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
10 years agoAdd base field to MmRpc_Xlt structure. 3.10.00.06_eng
Ramsey Harris [Wed, 28 Aug 2013 22:06:36 +0000 (15:06 -0700)]
Add base field to MmRpc_Xlt structure.

Fixed the offset calculation for embedded pointers by allowing
the caller to specify encoded base value. Enhanced some comments.
Code cleanup.

10 years agoChanges to support non-NameServer-capable slaves on Linux
Robert Tivy [Tue, 27 Aug 2013 23:19:16 +0000 (16:19 -0700)]
Changes to support non-NameServer-capable slaves on Linux

Ipc setup code was giving up when any slave failed to connect to Linux
sockets.  It now succeeds when at least one slave connects.  Previously,
both NameServer_setup() (in LAD) and MessageQ_attach()es called from
Ipc_start() were expected to succeed for all remote cores specified in
MultiProc.  Now those functions can tolerate slave connection failures and
will report success if at least one slave can connect.

10 years agoChange NameServer_get to ignore 'remote get' timeouts and use a reduced period.
vwan@ti.com [Wed, 28 Aug 2013 18:30:44 +0000 (11:30 -0700)]
Change NameServer_get to ignore 'remote get' timeouts and use a reduced period.

This is to fix SDOCM00102548 for QNX, so that MessageQ_open succeeds when
the IPU is loaded with an executable that does not 'speak' NameServer.

Signed-off-by: VW <vwan@ti.com>
10 years agoAdded GateMPApp test for GateMP verification
vwan@ti.com [Mon, 26 Aug 2013 21:21:47 +0000 (14:21 -0700)]
Added GateMPApp test for GateMP verification

Signed-off-by: VW <vwan@ti.com>
10 years agoGateMP: Introduce support for GateMP on QNX
vwan@ti.com [Tue, 27 Aug 2013 16:48:45 +0000 (09:48 -0700)]
GateMP: Introduce support for GateMP on QNX

To enable GateMP,throw the -g option when launching the IPC resource
manager.

On the BIOS side, DSP1 must be configured as the owner of SR0 and
the new GateMP.hostSupport config param must be set to true like
this:

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

Note that it's initially only been validated on DRA7XX DSP1.

Signed-off-by: VW <vwan@ti.com>
10 years agoMmRpc: Added support for Android OS build
Sunita Nadampalli [Tue, 27 Aug 2013 17:04:30 +0000 (12:04 -0500)]
MmRpc: Added support for Android OS build

Introduce an initial Android.mk build script, and slight
code change to build the MmRpc library.

Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
10 years agoMessageQ: Fix for Linux msgs sent to wrong slave 3.10.00.05_eng
Chris Ring [Sat, 24 Aug 2013 14:57:24 +0000 (07:57 -0700)]
MessageQ: Fix for Linux msgs sent to wrong slave

Previously the MultiProc-to-Linux-kernel-rproc-index mapping was
hard-coded in the MessageQ-based socket library to be
rprocIndex = MultiProc_id - 1.  This was too simple for the async
loading use cases on systems with > 1 slave.

A recent kernel patch looks up the rpmsg channel based on Linux
kernel rproc index, meaning the socket's 'connect' and 'bind'
calls now need to provide the actual rproc index.  Today's Linux
kernels ensure the rproc index will be consistent from run to run
(so long as all slaves are configured enabled), so this rproc-
index-to-MultiProc-id can be known and hard-coded ahead of time.

This commit records that hard-coding in the MultiProcCfg_*.c
source files, and now provides the appropriate rproc index in
the socket 'connect' and 'bind' calls.

This user-space commit requires a matching update to the kernel
space drivers.

10 years agoLinux: Remove KERNEL and DRM requirement
Arnie Reynoso [Thu, 22 Aug 2013 22:05:27 +0000 (15:05 -0700)]
Linux: Remove KERNEL and DRM requirement

Remove the KERNEL and DRM dependency for OMAP54xx and
DRA7xx builds.  We'll build as many libs/tests as possible,
given the provided dependencies.

If the user doesn't supply KERNEL, we won't build the MmRpc
libs; if they don't supply DRM, we won't build tests that
depend on DRM... but we'll still build, for example,
MessageQ libs and tests.

10 years agoMessageQ: Merge new IPC 1.25.03 MessageQ features
Chris Ring [Tue, 20 Aug 2013 18:59:03 +0000 (11:59 -0700)]
MessageQ: Merge new IPC 1.25.03 MessageQ features

The IPC 1.25.03 patch introduced two MessageQ-related features:

SDOCM00099783: MessageQ_free needs a hook function
SDOCM00095724: MessageQ_create should allow a queueId to be
specified instaned of finding free slot

These were driven by MCU/TI-RTOS programs, but may be useful for
other use cases.

This commit brings those features into IPC 3.x.

10 years agoTests: mmrpc_test: Fix unitialized status variable in mmrpc_test.c
G Anthony [Wed, 14 Aug 2013 22:25:06 +0000 (15:25 -0700)]
Tests: mmrpc_test: Fix unitialized status variable in mmrpc_test.c

This was causing the mmrpc_test to report failure, when in fact it succeeded.

Signed-off-by: G Anthony <a0783926@ti.com>
10 years agoTests: mmrpc_test: Removed omapconf comment and getchar from mmrpc_test.
G Anthony [Wed, 14 Aug 2013 22:31:54 +0000 (15:31 -0700)]
Tests: mmrpc_test: Removed omapconf comment and getchar from mmrpc_test.

This was previously inserted for debugging purposes.

Signed-off-by: G Anthony <a0783926@ti.com>
10 years agoTests: rpc_task: Invalidate the compute structure in Mx_compute fxn.
G Anthony [Wed, 14 Aug 2013 16:41:46 +0000 (09:41 -0700)]
Tests: rpc_task: Invalidate the compute structure in Mx_compute fxn.

This to ensure the cache is invalidated before reading the fields of this
structure, which may be in cached memory (Tiler).

Signed-off-by: G Anthony <a0783926@ti.com>
10 years agoBuild CMEM library only if platform is specified. 3.10.00.04_eng
Ramsey Harris [Thu, 8 Aug 2013 16:41:50 +0000 (09:41 -0700)]
Build CMEM library only if platform is specified.

CMEM library is platform specific. You just specify a platform
to build the library and programs that use CMEM.

10 years agoAdded offset pointer support to MmRcp.
Ramsey Harris [Thu, 8 Aug 2013 01:26:51 +0000 (18:26 -0700)]
Added offset pointer support to MmRcp.

New parameter type to support data pointers into managed memory
allocations such that the data pointer is offset from the base
address.

10 years agoMoved drm libraries out of common variable.
Ramsey Harris [Wed, 7 Aug 2013 22:27:55 +0000 (15:27 -0700)]
Moved drm libraries out of common variable.

10 years agoRan autoreconf to generate new makefiles and configure script.
Ramsey Harris [Wed, 7 Aug 2013 19:28:09 +0000 (12:28 -0700)]
Ran autoreconf to generate new makefiles and configure script.

10 years agotests: mmrpc_test: Updated Mx_compute() to test rpmsgrpc buff translation.
G Anthony [Wed, 7 Aug 2013 01:27:30 +0000 (18:27 -0700)]
tests: mmrpc_test: Updated Mx_compute() to test rpmsgrpc buff translation.

Requires DRM library, to allocate DRM buffers, allowing access to
shared memory via user virtual and DMA_BUF handles.

Signed-off-by: G Anthony <a0783926@ti.com>
10 years agotests: mmrpc_test: Add DRM library to Linux side makefiles.
G Anthony [Wed, 7 Aug 2013 01:25:14 +0000 (18:25 -0700)]
tests: mmrpc_test: Add DRM library to Linux side makefiles.

DRM library is needed for the Mx_Compute() buffer translation use case.

Add DRM_PREFIX in ipc-linux.mak and Makefile.am

Signed-off-by: G Anthony <a0783926@ti.com>
10 years agoproducts.mak: Added DRM_PREFIX setting.
G Anthony [Wed, 7 Aug 2013 01:34:35 +0000 (18:34 -0700)]
products.mak: Added DRM_PREFIX setting.

This DRM_PREFIX is used by linux/src/tests/Makefile.am

Signed-off-by: G Anthony <a0783926@ti.com>
10 years agoLinux: Added DRM_PREFIX config variable to the Linux build for OMAP5 and DRA7XX devices
Arnie Reynoso [Tue, 6 Aug 2013 17:47:25 +0000 (10:47 -0700)]
Linux: Added DRM_PREFIX config variable to the Linux build for OMAP5 and DRA7XX devices

10 years agoSet status field in fw_rsc_vdev after MessageQCopy_attach and before RscTable_update...
vwan@ti.com [Wed, 7 Aug 2013 00:56:20 +0000 (17:56 -0700)]
Set status field in fw_rsc_vdev after MessageQCopy_attach and before RscTable_update in QNX

Signed-off-by: VW <vwan@ti.com>
10 years agoMxServer_compute: Incremented num params from 1 to 2 to match signature.
G Anthony [Thu, 1 Aug 2013 17:29:45 +0000 (10:29 -0700)]
MxServer_compute: Incremented num params from 1 to 2 to match signature.

Previously, MxServer_compute function had only 1 paramter (return val included)
in the signature.

This was not being checked by the QnX rpmsgrpc driver, but is being checked by
Linux rpmsgrpc driver, which caught the inconsistency during an RpcCall.

This has been fixed.

Signed-off-by: G Anthony <a0783926@ti.com>
10 years agoVirtQueue: OMAP5: Poll for VDEV status in VirtQueue_startup()
G Anthony [Tue, 6 Aug 2013 13:29:58 +0000 (06:29 -0700)]
VirtQueue: OMAP5: Poll for VDEV status in VirtQueue_startup()

This resolves a race condition where the first slave RPMSG send would block
in a non-task context on a Semaphore_pend(), when the slave loads faster than
than the host can prime the send buffers in the vring to the host.

This patch implements the solution for OMAP5 separately.

Signed-off-by: G Anthony <a0783926@ti.com>
10 years agoVirtQueue: Poll for VDEV status in VirtQueue_startup() to sync rpmsg on boot.
G Anthony [Thu, 25 Jul 2013 23:43:45 +0000 (16:43 -0700)]
VirtQueue: Poll for VDEV status in VirtQueue_startup() to sync rpmsg on boot.

Previously, various methods (or none) have been implemented to ensure that
the slave has buffers available in the vring to the host before sending its
first message.

VirtQueue_startup() now polls the status bit in the VDEV struct of the Resource
table for a completion status, written by the host after the VDEV is created
successfully.

This resolves a race condition where the first slave RPMSG send would block
in a non-task context on a Semaphore_pend(), when the slave loads faster than
than the host can prime the send buffers in the vring to the host.

This patch implements the solution for Vayu separately.

Signed-off-by: G Anthony <a0783926@ti.com>
10 years agoResource: Add accessor to read the status field from a VDEV struct.
G Anthony [Thu, 25 Jul 2013 23:38:29 +0000 (16:38 -0700)]
Resource: Add accessor to read the status field from a VDEV struct.

The Linux host will write a VIRTIO_CONFIG_* status into the remote processor
resource table upon completion of VDEV creation.

As this corresponds to priming of vring buffers for RPMSG type VDEVs, this is
a useful status for the slave to poll before it sends it's first RPMSG
to the host.

Other non-Linux HLOS must implement a similar status update mechanism.

Signed-off-by: G Anthony <a0783926@ti.com>
10 years agoVirtQueue: Added capability to see Log_print from Vayu/OMAP5 VirtQueue. 3.10.00.03_eng
G Anthony [Wed, 24 Jul 2013 23:08:01 +0000 (16:08 -0700)]
VirtQueue: Added capability to see Log_print from Vayu/OMAP5 VirtQueue.

The VirtQueue modules for Vayu and OMAP5 are not XDC modules.

For non-XDC files, a module name needs to be registered so that Log_print
and Diags will work.

This introduces a private _VirtQueue_init() function, called in
VirtQueue_create(), to register VirtQueue with the Diags/Log system.

Signed-off-by: G Anthony <a0783926@ti.com>
10 years agoMerge tag '3.00.02.26' into ipc-next 3.10.00.02_eng
Chris Ring [Fri, 26 Jul 2013 03:48:53 +0000 (20:48 -0700)]
Merge tag '3.00.02.26' into ipc-next

3.00.02.26

10 years ago.gitignore: Ignore patch files
Suman Anna [Mon, 22 Jul 2013 23:14:16 +0000 (18:14 -0500)]
.gitignore: Ignore patch files

Add *.patch to .gitignore so that patches can remain in the
tree when a regular git clean is performed.

Signed-off-by: Suman Anna <s-anna@ti.com>
10 years agoConfigs: DRA7xx: Change IPU1 BIOS tick timer to use GPT11
Suman Anna [Wed, 24 Jul 2013 17:09:21 +0000 (12:09 -0500)]
Configs: DRA7xx: Change IPU1 BIOS tick timer to use GPT11

Both the IPU1 and IPU2 are currently configured to use the
same GPTimer as the source for BIOS tick timer. Switch the
IPU1 timer to use GPT11 instead so that both the processors
can be run simultaneously.

Signed-off-by: Suman Anna <s-anna@ti.com>
10 years agoConfigs: DRA7xx: Update the dmtimer addresses
Suman Anna [Wed, 24 Jul 2013 16:40:43 +0000 (11:40 -0500)]
Configs: DRA7xx: Update the dmtimer addresses

DRA7xx has 16 timers and the MMU equivalent addresses are defined
only for a subset of these dmtimers. Define the addresses for all
the dmTimer addresses as per the resource table configuration for
a HLOS usecase.

Signed-off-by: Suman Anna <s-anna@ti.com>
10 years agoRemoteproc: DRA7xx: Remove MPU mapping from resource table
Suman Anna [Wed, 24 Jul 2013 16:26:06 +0000 (11:26 -0500)]
Remoteproc: DRA7xx: Remove MPU mapping from 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.

Signed-off-by: Suman Anna <s-anna@ti.com>
10 years agoping_rpmsg: Updated test to take numLoops and CoreId arguments.
G Anthony [Tue, 23 Jul 2013 22:13:40 +0000 (15:13 -0700)]
ping_rpmsg: Updated test to take numLoops and CoreId arguments.

Test updated to allow testing rpmsg_proto socket over multiple cores, and
in multiple processes via command shell.

Signed-off-by: G Anthony <a0783926@ti.com>
10 years agoVayu: Added DRA7XX platform to configure.ac and Makefile.am for Linux builds.
G Anthony [Tue, 23 Jul 2013 22:06:22 +0000 (15:06 -0700)]
Vayu: Added DRA7XX platform to configure.ac and Makefile.am for Linux builds.

Also, added DRA7XX MultiProc configuration table to build MessageQ tests for
Vayu.

Signed-off-by: G Anthony <a0783926@ti.com>
10 years agoSrvMgr: Publish OMX server for DRA7xx IPU1 & DSP2 processors
Suman Anna [Thu, 18 Jul 2013 22:58:08 +0000 (17:58 -0500)]
SrvMgr: Publish OMX server for DRA7xx IPU1 & DSP2 processors

Add logic to publish separate rpmsg-omx channel devices to the
host for IPU1 and DSP2 processors for DRA7xx. These are kept
different so that they can be run simultaneously with IPU2 and
DSP1 processors without causing any name conflicts.

Signed-off-by: Suman Anna <s-anna@ti.com>
10 years agoVayu: Tests: Add support for IPU1 and DSP2
G Anthony [Mon, 22 Jul 2013 21:18:23 +0000 (14:18 -0700)]
Vayu: Tests: Add support for IPU1 and DSP2

- Resource Table: Vring physical addresses are made unique depending on VAYU
  core, and need to match CMA base addresses; given both DSP and IPU
  have IOMMU's, the device addresses otherwise remain the same.
- Adjust test image memory maps to fit in 6MB footprint for initial testing.
- Add support to build tests for IPU1 and DSP2 platform instances.

Signed-off-by: G Anthony <a0783926@ti.com>
[s-anna@ti.com: add dsp2 and ipu1 build targets]
Signed-off-by: Suman Anna <s-anna@ti.com>
Vayu: Tests: Adjust memory maps for IPU1 and DSP2

Retain the memory map for IPU2 while creating a newer
memory map for IPU1. Also fix some of the other sizes.

Signed-off-by: Suman Anna <s-anna@ti.com>
10 years agoRevert "Resources: Define memory region type for carveout entries"
G Anthony [Tue, 23 Jul 2013 16:19:53 +0000 (09:19 -0700)]
Revert "Resources: Define memory region type for carveout entries"

This reverts commit 7c6349ba5dddddf10e082d7180ef422505623928
(from omapzoom.org sysbios-rpmsg repo), so that we do not need the hack on
the kernel-side for the expected reserved field.

Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: G Anthony <a0783926@ti.com>
10 years agoBuild: Entry point alignment to ti.ipc.remoteproc
Chris Ring [Tue, 16 Jul 2013 17:22:07 +0000 (10:22 -0700)]
Build: Entry point alignment to ti.ipc.remoteproc

Move the logic ensuring entry point alignment from
ipc-bios.bld into ti.ipc.remoteproc.  This is a commonly
used package in environments where these alignment
constraints exist.

This also enables customer executables to 'freely' meet
the necessary entry point alignment requirements without
explicitly doing anything.

Note that because of the clever technique employed to ensure
alignment, namely setting the entry point to BIOS's
already-aligned HWI vector table, we only override the entry
point this flag if BIOS is used.  If BIOS is not used, it
becomes the application's responsibility to ensure any
device-specific entry point alignment constraints are met.

A nice side effect is that ipcdev can now build executables
that don't have a BIOS dependency.

10 years agoC64T: use common C6x compiler opts
Chris Ring [Tue, 16 Jul 2013 16:51:01 +0000 (09:51 -0700)]
C64T: use common C6x compiler opts

The compiler options IPC throws for the C64T target should
be the same as other C6x targets; there's no need for them
to be different.

Note that these C64T-specific flags were introduced in
8f8201d89c330e1776645b572b9151ea9b5e99ce.
This commit reverts that.

10 years agoChanges for new cmem.h location and CMEM library 3.00.02.26
Robert Tivy [Fri, 12 Jul 2013 04:13:25 +0000 (21:13 -0700)]
Changes for new cmem.h location and CMEM library

Linux Utils 4.00 simplified the directory structure of
CMEM from Linux Utils 3.x.  This commit updates to that new
release.

This only affects users of the nano test.

10 years agoEnable BIOS-side to build for specific platforms
Chris Ring [Wed, 10 Jul 2013 18:58:14 +0000 (11:58 -0700)]
Enable BIOS-side to build for specific platforms

Enhance ipc-bios.bld to only add specified platforms
to a target.  This allows C66 users to build only Vayu
executables without TCI6638 (for example).  Previously,
when enabling C66 support, C66 executables for all
platforms were built, which was always more than the
user needed.

This reuses the [previously Linux-specific] PLATFORM
variable in products.mak to indicate which BIOS-side
platform to build executables for.

10 years agoMerge remote-tracking branch 'origin/3.00' into ipc-next 3.10.00.01_eng
Chris Ring [Mon, 8 Jul 2013 23:46:59 +0000 (16:46 -0700)]
Merge remote-tracking branch 'origin/3.00' into ipc-next

10 years ago6636: More Linux and BIOS 6636 support 3.00.02.25_eng
Chris Ring [Wed, 3 Jul 2013 21:13:46 +0000 (14:13 -0700)]
6636: More Linux and BIOS 6636 support

Add tci6636 as a new PLATFORM visible to Linux autotools.

On the BIOS side, treat 6636 just like 6638 in config and
build scripts.

10 years agoLinux: MmRpc libraries build only for platforms that support MmRpc regardless of...
Arnie Reynoso [Mon, 1 Jul 2013 18:28:13 +0000 (11:28 -0700)]
Linux: MmRpc libraries build only for platforms that support MmRpc regardless of KERNEL_INSTALL_DIR settings.

This addresses SDOCM00102069

10 years agoTCI6636: Change MultiProc names to match TCI6638
Judah Vang [Mon, 1 Jul 2013 18:28:49 +0000 (11:28 -0700)]
TCI6636: Change MultiProc names to match TCI6638

10 years agoQNX: Fix multi_process.sh for < 10 processes
vwan@ti.com [Fri, 21 Jun 2013 22:28:13 +0000 (15:28 -0700)]
QNX: Fix multi_process.sh for < 10 processes

The slave side executables can only handle a maximum of 10 threads,
so the script did not work corrently when it inadvertently tried to
look for an 11th thread.

This addresses SDOCM00102315 (in 3.00 stream).

Signed-off-by: VW <vwan@ti.com>
(cherry picked from commit d51cd492b52da4fb68bbeb75debd4d16f774a764)

10 years agoQNX: Fix default build to not 'install'
Chris Ring [Fri, 21 Jun 2013 21:56:52 +0000 (14:56 -0700)]
QNX: Fix default build to not 'install'

The default build goal shouldn't run the 'install' goal.

This addresses SDOCM00102313 (in 3.00 stream).
(cherry picked from commit 5034b514740a987fe1f80456402c89fd1ed84c08)

10 years agoChange adds support for TCI6634 and TCI6636
Judah Vang [Fri, 28 Jun 2013 21:54:39 +0000 (14:54 -0700)]
Change adds support for TCI6634 and TCI6636

Fixes a build error when using the new TCI6636 platform.

10 years agoQNX: Minor file inclusion cleanup
Chris Ring [Fri, 28 Jun 2013 18:30:23 +0000 (11:30 -0700)]
QNX: Minor file inclusion cleanup

Mop up a few #include file dependencies.

10 years agoQNX: Remove unnecessary header inclusion
Chris Ring [Wed, 26 Jun 2013 23:13:24 +0000 (16:13 -0700)]
QNX: Remove unnecessary header inclusion

Removal of a single unnecessary header file included in
QNX's NameServer_daemon.