ipc/ipcdev.git
8 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.

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

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

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

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

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

8 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>
8 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>
8 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>
8 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

8 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>
8 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>
8 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>
8 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>
8 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>
8 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>
8 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

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

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

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

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

8 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

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

8 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

8 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

8 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)

8 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)

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

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

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

8 years agoMore minor coding convention fixes
Chris Ring [Tue, 25 Jun 2013 21:32:23 +0000 (14:32 -0700)]
More minor coding convention fixes

Found by static analysis.

Signed-off-by: Chris Ring <cring@ti.com>
8 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 SDOCM00102067.

Signed-off-by: VW <vwan@ti.com>
8 years agoFix coding conventions in a few headers
Chris Ring [Mon, 24 Jun 2013 22:14:03 +0000 (15:14 -0700)]
Fix coding conventions in a few headers

Correct some IPC header issues recently identified by static
analysis.

8 years agoVayu: Remove ti.platform.vayu.* pkgs
Chris Ring [Sat, 22 Jun 2013 00:07:49 +0000 (17:07 -0700)]
Vayu: Remove ti.platform.vayu.* pkgs

In the IPC 3.00 stream the tests/examples switched to
ti.platforms.evmDRA7XX platform instances, but we left
these ti.platform.vayu.* platform packages in the IPC product
to not disrupt existing users of them.

Users have had adequate time to move to the XDC-provided
platform instances, so we are removing them in the IPC 3.10
stream.

8 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 SDOCM00102137.

8 years agoQNX IPC: MmRpc - Generate .so Libs also 3.00.01.24 3.10.00.00_eng
Angela Stegmaier [Thu, 4 Apr 2013 17:42:46 +0000 (12:42 -0500)]
QNX IPC: MmRpc - Generate .so Libs also

Generate .so libraries in addition to .a so that the
MmRpc can be dynamically linked.

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
8 years agoQNX IPC: Export MmRpc Libs and Headers
Chris Ring [Thu, 20 Jun 2013 23:22:44 +0000 (16:22 -0700)]
QNX IPC: Export MmRpc Libs and Headers

Export the MmRpc generated libraries to usr/lib and
export the header file to user/include/ti/ipc/mm.

This is so that apps can easily include the header and
link with the library.

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
8 years agoReplaced usage of pathconf() with PATH_MAX
vwan@ti.com [Tue, 18 Jun 2013 19:18:02 +0000 (12:18 -0700)]
Replaced usage of pathconf() with PATH_MAX

pathconf() returns error when file is located in /tmp. We switch to using PATH_MAX to avoid this problem.

Signed-off-by: VW <vwan@ti.com>
8 years agoVayu: Increased processor table size in NotifySetup module
Ramsey Harris [Tue, 18 Jun 2013 22:11:28 +0000 (15:11 -0700)]
Vayu: Increased processor table size in NotifySetup module

When building for all cores on Vayu device, with non-SMP mode
on IPU1, the processor table was too small.

Signed-off-by: Ramsey Harris <ramsey@ti.com>
8 years agoMmRpc: Remove 'base' field from MmRpc_Xlt struct 3.00.01.23_eng
Ramsey Harris [Tue, 18 Jun 2013 01:06:42 +0000 (18:06 -0700)]
MmRpc: Remove 'base' field from MmRpc_Xlt struct

This field was confusing and redundant. Given that the address
and offset to the embedded pointer are already available, the
base value can be derived in the MmRpc API layer.

Signed-off-by: Ramsey Harris <ramsey@ti.com>
8 years agoQNX: Remove tiler and update makefiles
vwan@ti.com [Mon, 17 Jun 2013 22:06:05 +0000 (15:06 -0700)]
QNX: Remove tiler and update makefiles

Tiler is now [correctly] managed independent from IPC.  This
commit removes tiler support from IPC.

8 years agoTests: Update tests to support concurrently loaded slaves
vwan@ti.com [Mon, 17 Jun 2013 05:00:59 +0000 (22:00 -0700)]
Tests: Update tests to support concurrently loaded slaves

Update the tests so that each core registers a different
endpoint name.  In this way multiple images can be loaded
at the same time and these tests can be run for each core
without having to unload and reload another image.

8 years agoTests: Update RPC Stress test
Angela Stegmaier [Mon, 17 Jun 2013 04:55:01 +0000 (21:55 -0700)]
Tests: Update RPC Stress test

Update the test so that each core registers a different
endpoint name.  In this way multiple images can be loaded
at the same time and this test can be run for each core
without having to unload and reaload another image.

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
8 years agoQNX: Don't Disable Host->rproc Interrupts During Register
vwan@ti.com [Mon, 17 Jun 2013 04:36:16 +0000 (21:36 -0700)]
QNX: Don't Disable Host->rproc Interrupts During Register

The register/unregister functions are clearing mailbox
messages and disabling the host->rproc interrupts.  When loading
multiple remote procs, this can cause an issue where the
remote proc's host->rproc interrupt remains disabled and the
remote proc is unable to receive interrupts.

This patch removes the code to avoid disabling the interrupt.

8 years agoBIOS: Remove M3 executable support for Vayu and OMAP5
Chris Ring [Sat, 15 Jun 2013 18:52:43 +0000 (11:52 -0700)]
BIOS: Remove M3 executable support for Vayu and OMAP5

No longer build the OMAP5 and Vayu tests when the M3 target
is set.  We want to migrate users of these devices to the M4
target.

Also, an issue in BIOS 6.35.02 restricts Vayu to only M4
target support, so this ensures BIOS 6.35.02 users don't
hit this issue.

8 years agoConfig and package updates for new XDCtools and SYS/BIOS builds
Ramsey Harris [Thu, 13 Jun 2013 23:14:08 +0000 (16:14 -0700)]
Config and package updates for new XDCtools and SYS/BIOS builds

This fixes build and configuration issues for the following imports:

SYS/BIOS 6.35.02.44_eng
XDCtools 3.25.01.64_eng

Signed-off-by: Ramsey Harris <ramsey@ti.com>
8 years agoTests: Update tests to use DRA7XX platform instance
Chris Ring [Thu, 13 Jun 2013 22:34:17 +0000 (15:34 -0700)]
Tests: Update tests to use DRA7XX platform instance

Teach ti.ipc.tests to use instances of the
ti.platforms.evmDRA7XX platform rather than the IPC-specific
vayu platforms.  These IPC-specific platforms can now be removed,
although we'll save that for the 3.10 stream so we don't break
existing users of them.

Note the two subtle changes in ipc-bios.bld.  First, the
platform name should be 'ti.platforms.evmDRA7XX' (note the
plural 'platforms').  Second, the platform defined by XDC includes
an instance named "IPU2", so our locally defined instance name
cannot match that - so it's changed to lowercase 'ipu2'.  Going
forward, we should standardize on platform instances with
all lower-case names.

Signed-off-by: Chris Ring <cring@ti.com>
8 years agoVayu: More support for the DRA7XX part number
Chris Ring [Thu, 13 Jun 2013 22:26:14 +0000 (15:26 -0700)]
Vayu: More support for the DRA7XX part number

'DRA7XX' and 'Vayu' are the same device.  An earlier
commit added support for 'DRA7XX' but missed a few places,
which this commit addresses.

These missing changes were found when enabling platform instance
support to HLOS-based examples, so these changes are isolated to
packages used in HLOS environments.

Signed-off-by: Chris Ring <cring@ti.com>
8 years agoVayu: Remove unnecessary dependency in InterruptIpu
Chris Ring [Wed, 12 Jun 2013 22:13:23 +0000 (15:13 -0700)]
Vayu: Remove unnecessary dependency in InterruptIpu

There was an unnecessary dependency from the IPU interrupt handler
(ti.sdo.ipc.family.vayu.InterruptIpu) onto the core of IPC
(ti.sdo.ipc.Ipc).  For the MmServiceMgr use case, which needs the
interrupt handler but not the core of IPC, this dependency brought
in unnecessary code/data.

Signed-off-by: Chris Ring <cring@ti.com>
8 years agoMmServiceMgr: Hide internal MmServiceMgr_start() fxn
Chris Ring [Wed, 12 Jun 2013 22:12:35 +0000 (15:12 -0700)]
MmServiceMgr: Hide internal MmServiceMgr_start() fxn

Minor documentation change to hide the internal
MmServiceMgr_start() from doxygen-generated API reference guides.

Signed-off-by: Chris Ring <cring@ti.com>
8 years agoVayu: Enable configuration of IPU mailbox virt addrs 3.00.01.22_eng
Chris Ring [Fri, 7 Jun 2013 21:59:17 +0000 (14:59 -0700)]
Vayu: Enable configuration of IPU mailbox virt addrs

IPC must access the physical mailbox addresses (physically
at 0x4XXX_XXXX) via virtual addresses (typically set up
using the IPU's AMMU).  System integrators need the
flexibility to place these mailboxes at different virtual
addresses.

System integrators can now use the InteruptIpu.mailboxBaseAddr[]
config params to place these mailboxes at virtual
addresses other than the default (which is 0x6XXX_XXXX).

Also clarified the cdoc documentation.

Signed-off-by: Chris Ring <cring@ti.com>
8 years agoQNX IPC: Main - Use Absolute Path of Firmware
Angela Stegmaier [Thu, 30 May 2013 18:52:38 +0000 (13:52 -0500)]
QNX IPC: Main - Use Absolute Path of Firmware

Save the absolute path of the firmware file to use
when loading the firmware.

This is useful for the recovery situation, where the
relative path will no longer work.

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
8 years agoAdded support for new platform: ti.platforms.evmDRA7XX
Ramsey Harris [Sun, 9 Jun 2013 22:26:03 +0000 (15:26 -0700)]
Added support for new platform: ti.platforms.evmDRA7XX

Added evmDRA7XX alias for Vayu in family Settings.xs. Removed
references to simVayu platform.

Signed-off-by: Ramsey Harris <ramsey@ti.com>
8 years agoQNX IPC: RPMSG-RPC - Don't Wait for Response During Destroy
Angela Stegmaier [Wed, 29 May 2013 16:55:25 +0000 (11:55 -0500)]
QNX IPC: RPMSG-RPC - Don't Wait for Response During Destroy

When calling rpmsg_rpc_destroy, all existing connections
are disconnected so that the remote core may be reloaded
and stale connections are not left open.

When rpmsg_rpc_destroy is called, it is assumed that
the remote processor has already been stopped.  In this
case, there is no need to wait for a response from the
disconnect call.  Instead, the connection can immediately
be marked as disconnected and destroy can continue.

This patch modifies each remote core connection to have
a parameter that tells whether or not the destroy function
is currently executing.  Then, the disconnect call is
updated to check to see if destroy is being executed.  If
destroy is being executed, then it does not send the
message to the remote core and wait for a response.  Instead,
the connection is simply marked as disconnected.

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
8 years agoQNX IPC: Main - Fix Compile Warnings
Angela Stegmaier [Wed, 29 May 2013 15:35:46 +0000 (10:35 -0500)]
QNX IPC: Main - Fix Compile Warnings

This patch fixes the following compilation warnings:

qnx/src/ipc3x_dev/ti/syslink/build/Qnx/resmgr/syslink_main.c:
In function 'deinit_syslink_device':
qnx/src/ipc3x_dev/ti/syslink/build/Qnx/resmgr/syslink_main.c:450:
warning: unused variable 'i'
qnx/src/ipc3x_dev/ti/syslink/build/Qnx/resmgr/syslink_main.c:
In function 'deinit_syslink_trace_device':
qnx/src/ipc3x_dev/ti/syslink/build/Qnx/resmgr/syslink_main.c:392:
warning: control reaches end of non-void function
qnx/src/ipc3x_dev/ti/syslink/build/Qnx/resmgr/syslink_main.c:
In function 'init_syslink_trace_device':
qnx/src/ipc3x_dev/ti/syslink/build/Qnx/resmgr/syslink_main.c:374:
warning: control reaches end of non-void function

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
8 years agoQNX IPC: Vayu - Fix Compile Warnings
Angela Stegmaier [Wed, 29 May 2013 15:31:10 +0000 (10:31 -0500)]
QNX IPC: Vayu - Fix Compile Warnings

This patch fixes the following compilation warnings:

qnx/src/ipc3x_dev/ti/syslink/family/common/vayu/vayuipu/vayucore1/VAYUIpuCore1HalReset.c:
In function 'VAYUIPUCORE1_halResetCtrl':
qnx/src/ipc3x_dev/ti/syslink/family/common/vayu/vayuipu/vayucore1/VAYUIpuCore1HalReset.c:108:
warning: unused variable 'counter'

qnx/src/ipc3x_dev/ti/syslink/family/common/vayu/vayuipu/VAYUIpuPwr.c:
In function 'VAYUIPUPWR_on':
qnx/src/ipc3x_dev/ti/syslink/family/common/vayu/vayuipu/VAYUIpuPwr.c:1091:
warning: implicit declaration of function 'VAYUIPUMMU_enable'
qnx/src/ipc3x_dev/ti/syslink/family/common/vayu/vayuipu/VAYUIpuPwr.c:
In function 'VAYUIPUPWR_off':
qnx/src/ipc3x_dev/ti/syslink/family/common/vayu/vayuipu/VAYUIpuPwr.c:1156:
warning: implicit declaration of function 'VAYUIPUMMU_disable'

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
8 years agoQNX IPC: Samples - Fix Compile Warnings
Angela Stegmaier [Wed, 29 May 2013 15:38:06 +0000 (10:38 -0500)]
QNX IPC: Samples - Fix Compile Warnings

This patch fixes the following compilation warnings:

qnx/src/ipc3x_dev/ti/syslink/samples/hlos/rpmsg-rpc-stress/usr/tests_rpc_stress.c:
In function 'test_exec_call':
qnx/src/ipc3x_dev/ti/syslink/samples/hlos/rpmsg-rpc-stress/usr/tests_rpc_stress.c:280:
warning: assignment makes integer from pointer without a cast
qnx/src/ipc3x_dev/ti/syslink/samples/hlos/rpmsg-rpc-stress/usr/tests_rpc_stress.c:376:
warning: format '%x' expects type 'unsigned int', but argument 2 has type
'int *'
qnx/src/ipc3x_dev/ti/syslink/samples/hlos/rpmsg-rpc-stress/usr/tests_rpc_stress.c:376:
warning: format '%x' expects type 'unsigned int', but argument 3 has type
'void *'

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
8 years agoResource: Introduce customTable to override resource table
Chris Ring [Tue, 28 May 2013 20:25:13 +0000 (13:25 -0700)]
Resource: Introduce customTable to override resource table

Users need to override the resource table.  Introduce the
customTable boolean config param which uses set to true
to indicate they will provide their own table (and IPC shouldn't
generate a table for them).

They then have the responsibility to provide their own table
(with a symbol named ti_ipc_remoteproc_ResourceTable) at link
time.

8 years agoRemoteProc: rework resource_table definition/usage
Chris Ring [Fri, 31 May 2013 01:50:48 +0000 (18:50 -0700)]
RemoteProc: rework resource_table definition/usage

Introduce the resource_table struct (defined in Linux) and
rework the device/core-specific resource tables to derive from
that struct (rather than redefine the struct themselves.

No functional difference, but this provides a better
framework and example for end users when they (soon!) are enabled
to define their own resource_table-based structs.

8 years agoTest: Remove unnecessary trace
Chris Ring [Fri, 31 May 2013 17:48:54 +0000 (10:48 -0700)]
Test: Remove unnecessary trace

Minor test cleanup, removing unnecessary trace statements.

Removed trivial copy-n-paste comment at the end of the file.

8 years agoFix MessageQMulti's multi_process.sh script for QNX and install it
vwan@ti.com [Thu, 30 May 2013 23:05:12 +0000 (16:05 -0700)]
Fix MessageQMulti's multi_process.sh script for QNX and install it

8 years agoFixed build warning in MessageQMulti test
vwan@ti.com [Thu, 30 May 2013 20:36:47 +0000 (13:36 -0700)]
Fixed build warning in MessageQMulti test

Signed-off-by: Chris Ring <cring@ti.com>
8 years agoCleanup: remove directory qnx/src/ipc3x_dev/ti/syslink/rpmsg-resmgr
vwan@ti.com [Fri, 31 May 2013 17:02:55 +0000 (10:02 -0700)]
Cleanup: remove directory qnx/src/ipc3x_dev/ti/syslink/rpmsg-resmgr

OMAP5 power management code in this directory is moved to qnx/src/ipc3x_dev/ti/syslink/family/omap5430, and the power management code itself was modified to remove checks with rpmsg-resmgr.

Signed-off-by: VW <vwan@ti.com>
8 years agoCleanup: remove directory qnx/src/ipc3x_dev/ti/syslink/rpmsg-dce
vwan@ti.com [Wed, 29 May 2013 00:22:09 +0000 (17:22 -0700)]
Cleanup: remove directory qnx/src/ipc3x_dev/ti/syslink/rpmsg-dce

Signed-off-by: VW <vwan@ti.com>
8 years agoCleanup: remove directory qnx/src/ipc3x_dev/ti/syslink/rpmsg-omx
vwan@ti.com [Wed, 29 May 2013 00:17:25 +0000 (17:17 -0700)]
Cleanup: remove directory qnx/src/ipc3x_dev/ti/syslink/rpmsg-omx

Signed-off-by: VW <vwan@ti.com>
8 years agoCleanup: removed directory qnx/src/ipc3x_dev/perfutils
vwan@ti.com [Tue, 28 May 2013 23:44:57 +0000 (16:44 -0700)]
Cleanup: removed directory qnx/src/ipc3x_dev/perfutils

Signed-off-by: VW <vwan@ti.com>
8 years agoChanged Makefile.am to enable 'make dist' of files in hlos_common for Linux
vwan@ti.com [Tue, 28 May 2013 23:34:08 +0000 (16:34 -0700)]
Changed Makefile.am to enable 'make dist' of files in hlos_common for Linux

Signed-off-by: VW <vwan@ti.com>
8 years agoMoved utils/MultiProc.c into hlos_common directory for both Linux and QNX.
vwan@ti.com [Sat, 25 May 2013 00:20:21 +0000 (17:20 -0700)]
Moved utils/MultiProc.c into hlos_common directory for both Linux and QNX.

Signed-off-by: VW <vwan@ti.com>
8 years agoMoved Std.h into ti/ipc namespace for QNX.
vwan@ti.com [Tue, 28 May 2013 22:31:56 +0000 (15:31 -0700)]
Moved Std.h into ti/ipc namespace for QNX.

Signed-off-by: VW <vwan@ti.com>
8 years agoMoved headers common to both Linux and QNX into hlos_common directory.
vwan@ti.com [Fri, 24 May 2013 22:37:23 +0000 (15:37 -0700)]
Moved headers common to both Linux and QNX into hlos_common directory.

This is done to avoid unnecessary duplication of code.

Signed-off-by: VW <vwan@ti.com>
8 years agoVayu: Fixed AMMU fault when running SYS/BIOS on IPU1 3.00.01.21_eng
Ramsey Harris [Thu, 30 May 2013 02:33:15 +0000 (19:33 -0700)]
Vayu: Fixed AMMU fault when running SYS/BIOS on IPU1

Prevent invalid mailbox accesses for interrupts between core0 and core1
because those interrupts do not use mailboxes.

8 years agoQNX IPC: Vayu - Add DSP1 MMU1 Programming
Angela Stegmaier [Wed, 29 May 2013 16:12:25 +0000 (09:12 -0700)]
QNX IPC: Vayu - Add DSP1 MMU1 Programming

Currently, only MMU0 is being programmed for DSP1.
For EDMA traffic, there is a second MMU (MMU1), which
needs to be programmed.  DSP1 applications which
use EDMA would want to also have the MMU1 programmed
so that the address space is the same.

This patch adds programming of the DSP MMU1
with the same entries to match the programming
of the DSP MMU0.

Additionally, this patch attaches an interrupt
to the DSP1 MMU1 for notification of MMU events.
No default interrupt is programmed for DSP1 MMU1,
so an unused MPU interrupt is selected for use and
the interrupt crossbar is programmed accordingly.
The interrupt selected is MPU interrupt 143.

8 years agoOMAP4: Removed files specific to OMAP4 in qnx directory
vwan@ti.com [Fri, 24 May 2013 22:47:05 +0000 (15:47 -0700)]
OMAP4: Removed files specific to OMAP4 in qnx directory

This commit removes all source files that are specific to OMAP4,
which the product does not support. Note that there are still file
names, variable names, macros, etc. related to OMAP4 that will need
subsequent clean up.

Files in tiler and rpmsg-resmgr directories have been left in place
as we are discussing their removal in an on-going thread.

A minor change was needed in syslink_main.c as well in order to
eliminate its use of type 'u32' defined in rprcfmt.h, so that we can
remove the latter file, which is specific to the OMAP4 loader.

Signed-off-by: VW <vwan@ti.com>
8 years agoStyle: Change //-style comments to /* */ style
Chris Ring [Wed, 22 May 2013 22:49:45 +0000 (15:49 -0700)]
Style: Change //-style comments to /* */ style

Some users, especially those with MISRA-C requirements, don't
allow //-style comments.

Note that this addresses the files in packages/ti/ipc/*, there may
be more, but I didn't hunt further.

8 years agoBIOS: Fix minor typo in comment/docs
Chris Ring [Mon, 20 May 2013 20:07:02 +0000 (13:07 -0700)]
BIOS: Fix minor typo in comment/docs

8 years agoTCI6614: Improve error message during config
Chris Ring [Mon, 20 May 2013 20:00:02 +0000 (13:00 -0700)]
TCI6614: Improve error message during config

When this package is integrated into an unsupported environment,
it provides a better error message.

For example, before this change, when [errantly] integrating into
an OMAP5-based system, configuration would report:
    TypeError: Cannot read property "IPCGR0" from undefined

Now it reports:
    ti.ipc.family.tci6614.Interrupt : OMAP5430 unsupported

8 years agoRemoved duplicated MultiProc config info from Platform.c and simply use the info...
vwan@ti.com [Thu, 16 May 2013 18:11:28 +0000 (11:11 -0700)]
Removed duplicated MultiProc config info from Platform.c and simply use the info from _MultiProc_cfg.

8 years agoRemoved libcfg.a and moved _MultiProc_cfg into resource manager for QNX.
vwan@ti.com [Thu, 16 May 2013 17:34:02 +0000 (10:34 -0700)]
Removed libcfg.a and moved _MultiProc_cfg into resource manager for QNX.

This is done to match a similar change in Linux that moved _MultiProc_cfg into the daemon process,

A side-effect is that Ipc_start must now be called prior to any MultiProc API.

8 years agoRemove BUILD_FOR_VIRTIO from products.mak and added support for DEVICE simvayu
vwan@ti.com [Mon, 13 May 2013 18:56:32 +0000 (11:56 -0700)]
Remove BUILD_FOR_VIRTIO from products.mak and added support for DEVICE simvayu

DEVICE simvayu corresponds to a simulated vayu device

Signed-off-by: Chris Ring <cring@ti.com>
8 years agoIPC: Added conditional variable assignments to missing
Arnie Reynoso [Thu, 9 May 2013 20:24:18 +0000 (13:24 -0700)]
IPC: Added conditional variable assignments to missing

Signed-off-by: Chris Ring <cring@ti.com>
8 years agoNameServerRemoteRpmsg: Fixed strncpy operation to prevent overflow. 3.00.00.20
G Anthony [Wed, 15 May 2013 23:41:35 +0000 (16:41 -0700)]
NameServerRemoteRpmsg: Fixed strncpy operation to prevent overflow.

This is an improved solution to the patch:

195d2692fa95224d3c634daf8fe9bbd3860c7e16 BIOS: Fixed NameServerRemoteRpmsg MessageQ instanceName and name length

which now uses the actual destination length as the max characters for
strncpy() to copy, and ensures null termination of the copied string.

Improvement pointed out by Rob Tivy.

Signed-off-by: G Anthony <a0783926@ti.com>
8 years agoVirtQueue: VirtQueue_init() reads vring addr from resource table, checks MAR. 3.00.00.19_eng
G Anthony [Tue, 7 May 2013 01:21:13 +0000 (18:21 -0700)]
VirtQueue: VirtQueue_init() reads vring addr from resource table, checks MAR.

Previously, VirtQueue used hardcoded vring addresses in the code.  Now, these
are read from the Resource Table, allowing the host to update them at load
time.

However, it is still expected that the vring memory is non-cached, and that
the system configuration has set this up in the CFG file.

VirtQueue_init() asserts if the vring addresses are not in the resource table,
or if the MAR bits for the vring memory show it as being caceable.

This is done only for OMAPL138 and TCI6638 VirtQueue in this patch.

Signed-off-by: G Anthony <a0783926@ti.com>
8 years agoResource: Added accessor to read vring addresses from resource table.
G Anthony [Mon, 6 May 2013 23:56:06 +0000 (16:56 -0700)]
Resource: Added accessor to read vring addresses from resource table.

This will support the capability of allowing the host to allocate the vrings,
and specify the vring control structure address to the slave.

Also, renamed the existing getEntry() method to getMemEntry(), as it only
works for CARVEOUT and DEVMEM types.

Signed-off-by: G Anthony <a0783926@ti.com>
8 years agoTCI6638: Switched to ROM model (-c) from RAM model (-cr) link option.
G Anthony [Mon, 6 May 2013 22:56:16 +0000 (15:56 -0700)]
TCI6638: Switched to ROM model (-c) from RAM model (-cr) link option.

Kestone II DSP images were not able to be reloaded without rebooting the EVM.
This was due to the "-cr" linker options being thrown (RAM model), which
prevented processing of .cinit records at run time (done in ROM model).

So, "-cr" option was removed.

Keystone team mentioned that RLE compression was keeping the resource table
from being read properly without the "-cr" option, so added in the
"--cinit_compression=off" option just in case.  This also has the benefit
of improving DSP boot times.

Reloading the DSPs via MPM server was validated on Keystone II EVM
(over remote connection).

Signed-off-by: G Anthony <a0783926@ti.com>
8 years agoTCI6638: Linux target side scripts for loading, running lad, dumping trace.
G Anthony [Mon, 29 Apr 2013 23:39:33 +0000 (16:39 -0700)]
TCI6638: Linux target side scripts for loading, running lad, dumping trace.

Useful scripts to be used for the 8 core TCI6638 platformm.

Signed-off-by: G Anthony <a0783926@ti.com>
8 years agoLinux: Test - Cleanup to mmrpc build after sources moved to a common location
Arnie Reynoso [Fri, 10 May 2013 18:31:31 +0000 (11:31 -0700)]
Linux: Test - Cleanup to mmrpc build after sources moved to a common location

Signed-off-by: Chris Ring <cring@ti.com>
8 years agoLinux: Building test applications as platform independent where appropriate
Arnie Reynoso [Fri, 10 May 2013 18:12:15 +0000 (11:12 -0700)]
Linux: Building test applications as platform independent where appropriate

Platform dependent application's are no longer needed since a MultiProc
            LAD daemon has been added.

Signed-off-by: Chris Ring <cring@ti.com>
8 years agoIPC: Tests - Add an Error Test Case
Angela Stegmaier [Tue, 7 May 2013 09:41:45 +0000 (04:41 -0500)]
IPC: Tests - Add an Error Test Case

Add an error test case to test for MMU fault
detection.

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>