ipc/ipcdev.git
4 years agoQNX: Resmgr: Fix Compilation Warnings
Angela Stegmaier [Mon, 22 May 2017 21:04:37 +0000 (16:04 -0500)]
QNX: Resmgr: Fix Compilation Warnings

Fix compilation warnings discovered when compiling
with newer QNX versions.

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
4 years agoQNX: tests: Fix Compilation Warnings
Angela Stegmaier [Mon, 22 May 2017 21:04:36 +0000 (16:04 -0500)]
QNX: tests: Fix Compilation Warnings

Fix compilation warnings discovered when compiling with
newer QNX versions.

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
4 years agoQNX: Samples: Fix Compilation Warnings
Angela Stegmaier [Mon, 22 May 2017 21:04:35 +0000 (16:04 -0500)]
QNX: Samples: Fix Compilation Warnings

Fix compilation warnings discovered when building with
newer QNX versions.

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
4 years agoQNX: Loader: Fix Compilation Warnings
Angela Stegmaier [Mon, 22 May 2017 21:04:34 +0000 (16:04 -0500)]
QNX: Loader: Fix Compilation Warnings

Fix compilation warnings discovered when building with
newer QNX version.

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
4 years agoQNX: DRA7XX: Fix Compilation Warnings
Angela Stegmaier [Mon, 22 May 2017 21:04:33 +0000 (16:04 -0500)]
QNX: DRA7XX: Fix Compilation Warnings

This patch fixes compilation warnings in the DRA7XX-specific
files that were introduced with the newer QNX version build.

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
4 years agoQNX: Trace Daemon: Fix Compilation Warnings
Angela Stegmaier [Mon, 22 May 2017 21:04:32 +0000 (16:04 -0500)]
QNX: Trace Daemon: Fix Compilation Warnings

This patch fixes compilation warnings introduced with
the newer QNX version.

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
4 years agoQNX: Shmemallocator: Fix Compilation Warnings
Angela Stegmaier [Mon, 22 May 2017 21:04:31 +0000 (16:04 -0500)]
QNX: Shmemallocator: Fix Compilation Warnings

This patch fixes compilation warnings introduced with
the newer QNX version.

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
4 years agoQNX: Mx: Fix Compilation Warnings
Angela Stegmaier [Mon, 22 May 2017 21:04:30 +0000 (16:04 -0500)]
QNX: Mx: Fix Compilation Warnings

This patch fixes compilation warnings introduced with
newer QNX version build.

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
4 years agoQNX: Build: Fix Build for Newer QNX Versions on Windows
Angela Stegmaier [Mon, 22 May 2017 21:04:29 +0000 (16:04 -0500)]
QNX: Build: Fix Build for Newer QNX Versions on Windows

When building on Windows, the overriding of the usemsg
command in quiet.mk was causing the build to fail. It
appears that usemsg isn't always defined when building
with newer QNX versions and the overriding of the command should
be done conditionally.

This patch changes quiet.mk to only update the usemsg
command if it is defined.

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
4 years agoExamples: DRA7XX: Enable PM for DSP test images 3.46.00.02 3.46.00.02_eng
Angela Stegmaier [Thu, 20 Apr 2017 21:36:41 +0000 (16:36 -0500)]
Examples: DRA7XX: Enable PM for DSP test images

Enable the DSP PM for the test images also.

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
4 years agoWatchdog: Add Watchdog_restore for DRA7XX DSP
Angela Stegmaier [Thu, 20 Apr 2017 21:33:06 +0000 (16:33 -0500)]
Watchdog: Add Watchdog_restore for DRA7XX DSP

Watchdog code is not currently adding the Watchdog_restore
callback for DRA7XX DSP. When power management (suspend/resume)
is enabled for the DSP, the restore hook should be added
so that the values of the timer are proper upon resume.

Without this patch, when power management is enabled for the DSP,
the watchdog timeout is not proper after resuming from suspend.

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
4 years agoRemoteproc: OMAP-L138: Fix up resource table 3.46.00.01_eng
Suman Anna [Tue, 11 Apr 2017 21:04:22 +0000 (16:04 -0500)]
Remoteproc: OMAP-L138: Fix up resource table

The OMAP-L138 resource table structure definitions are incorrect,
the offset variable was defined to be an array of 13, whereas the
real valid entries are 3, thereby mis-representing the offsets of
the resources in the actual resource table when compared to the
resource structure definition. Fix this properly by adjusting the
array length.

While at this, also replace the name IPU with DSP in various macros.
The SoC only has a DSP, and has no IPU, and the IPU name can be
misleading for users even though there is no difference functionally.

Signed-off-by: Suman Anna <s-anna@ti.com>
4 years agoautotools: Update Linux tests Makefile.in for fault app name change
Angela Stegmaier [Mon, 10 Apr 2017 16:03:37 +0000 (11:03 -0500)]
autotools: Update Linux tests Makefile.in for fault app name change

Update the Makefile.in to account for the fault app name
change.

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
4 years agoAndroid: Makefile: Update Name of Fault Test Source File
Angela Stegmaier [Mon, 10 Apr 2017 16:03:36 +0000 (11:03 -0500)]
Android: Makefile: Update Name of Fault Test Source File

A recent change was made to rename the fault.c file to
MessageQFaultApp.c. This patch updates the Android.mk
file with the new source file name.

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
4 years agofault: Linux: Renamed test application fault to MessageQFaultApp 3.46.00.00_eng
Sam Nelson [Fri, 31 Mar 2017 13:41:41 +0000 (09:41 -0400)]
fault: Linux: Renamed test application fault to MessageQFaultApp

Updated Makefile.am accordingly

Signed-off-by: Sam Nelson <sam.nelson@ti.com>
4 years agofault: BIOS: Renamed test application fault to messageq_fault
Sam Nelson [Thu, 30 Mar 2017 18:56:44 +0000 (14:56 -0400)]
fault: BIOS: Renamed test application fault to messageq_fault

Updated package.bld accordingly

Signed-off-by: Sam Nelson <sam.nelson@ti.com>
4 years agorpmsg: Add Rpmsg NS 2.0 to OmapL138 platform
Sam Nelson [Thu, 30 Mar 2017 18:39:19 +0000 (14:39 -0400)]
rpmsg: Add Rpmsg NS 2.0 to OmapL138 platform

Additional of OMAPL138 in upcoming SDK releases will require support of
NS_2.0
( Note: The default will break compatibility with Upstream kernel which
does not support NS_2.0
The Non-NS_2.0 libraries are also created for customer to use, in case
if customer is using upstream kernel, but this will not fully tested)

Signed-off-by: Sam Nelson <sam.nelson@ti.com>
4 years agoLinux: GateHWSpinlock: Fix Compiler Warnings
Angela Stegmaier [Mon, 27 Mar 2017 18:42:29 +0000 (13:42 -0500)]
Linux: GateHWSpinlock: Fix Compiler Warnings

Fix the following compiler warnings in the Linux GateHWSpinlock
module:

../../../linux/src/api/gates/GateHWSpinlock.c: In function 'GateHWSpinlock_enter':
../../../linux/src/api/gates/GateHWSpinlock.c:346:23: warning: implicit declaration of function 'ioctl' [-Wimplicit-function-declaration]
             locked = !ioctl(Mod->fd, HWSPINLOCK_USER_LOCK, &data);

GateHWSpinlock.c: In function 'GateHWSpinlock_enter':
GateHWSpinlock.c:283:23: warning: implicit declaration of function 'ioctl' [-Wimplicit-function-declaration]
             locked = !ioctl(Mod->fd, HWSPINLOCK_USER_LOCK, &data);
                       ^
GateHWSpinlock_daemon.c: In function 'GateHWSpinlock_getConfig':
GateHWSpinlock_daemon.c:61:9: warning: unused variable 'i' [-Wunused-variable]
     int i;
         ^

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
4 years agoLinux/Android: MessageQ - Fix Implicit Declaration Warning
Angela Stegmaier [Mon, 27 Mar 2017 18:42:28 +0000 (13:42 -0500)]
Linux/Android: MessageQ - Fix Implicit Declaration Warning

This patch fixes the following compiler warning:

    lad.c:685:17: warning: implicit declaration of function 'MessageQ_announce'

This patch adds the MessageQ_announce prototype to MessageQ.h so
that MessageQ_announce is no longer implicitly declared.

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
4 years agoMessageQ: Remove Error declaration with local MessageQ object not available
Sam Nelson [Wed, 8 Mar 2017 19:01:31 +0000 (14:01 -0500)]
MessageQ: Remove Error declaration with local MessageQ object not available

There are cases where there is a MessageQ created on a different
process, in which case the local queue obj will be NULL.
The declaration of fail need to be removed.

Signed-off-by: Sam Nelson <sam.nelson@ti.com>
4 years agoLinux: Fix Static Analysis Reported Issues in IPC 3.45 3.45.00.00 3.45.00.00_eng
Angela Stegmaier [Wed, 18 Jan 2017 20:01:13 +0000 (14:01 -0600)]
Linux: Fix Static Analysis Reported Issues in IPC

This patch addresses the following static analysis reported
issues:

In linux/src/api/gates/GateMP.c:
Possible Null Pointer Dereference in GateMP_Instance_finalize

In linux/src/api/gates/GateMutex.c:
Possible Null Pointer Dereference in GateMutex_delete

In linux/src/api/MessageQ.c:
Uninitialized Variable in MessageQ_free

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
4 years agoQNX: rpmsg-rpc: Add MAP_SHARED to mmap64 Call
Angela Stegmaier [Thu, 19 Jan 2017 16:52:36 +0000 (10:52 -0600)]
QNX: rpmsg-rpc: Add MAP_SHARED to mmap64 Call

With newer QNX kernels, there are issues unless the MAP_SHARED/MAP_PRIVATE
flag is added to the mmap64 call alongside the MAP_PHYS parameter
in rpmsg-rpc.

This patch adds the MAP_SHARED flag to address the issues.

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
4 years agoDeh: DRA7XX: Add DEH and Watchdog to DSP2 tests
Angela Stegmaier [Tue, 17 Jan 2017 22:46:31 +0000 (16:46 -0600)]
Deh: DRA7XX: Add DEH and Watchdog to DSP2 tests

Add the DEH and Watchdog module to the DSP2 tests for DRA7XX.

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
4 years agoWatchdog: Add Config to disable Watchdog
Angela Stegmaier [Tue, 17 Jan 2017 22:45:38 +0000 (16:45 -0600)]
Watchdog: Add Config to disable Watchdog

Add a new module config to the Watchdog module that
allows to disable the module. The Watchdog
module is automatically included when Deh module is
included in an image. This parameter allows the user
to disable the watchdog while still using the Deh
module and allows this to be done from a config param
at the application level on the BIOS-side application.

The following can be added to the application config
file to disable Watchdog module (if desired) when including
Deh module.

    WD = xdc.useModule('ti.deh.Watchdog');
    WD.disableWatchdog = true;

There are other ways to disable the watchdog from Linux/Android
that already exist. This method just provides additional
flexibility to the user.

The default value is false if this parameter is not set.
So, if this parameter is not set, the behavior is the same as
before this patch.

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
4 years agoTests: ping_tasks: Use different description names for each channel
Suman Anna [Tue, 17 Jan 2017 21:33:33 +0000 (15:33 -0600)]
Tests: ping_tasks: Use different description names for each channel

The RPMSG_NS_2.0 feature was introduced to distinguish multiple channels of
the same service type to the host OS. The ping_tasks example however has been
using the same descriptor name for both the services. Use unique names for
each channel so that it conforms to the NS_2.0 design. Also, fixed some minor
incorrect whitespace indentation issues.

Issue found with the recent changes on upstream Linux 4.9 kernel.

Signed-off-by: Suman Anna <s-anna@ti.com>
4 years agoLinux: Update user AF_RPMSG define for 4.7+ kernels
Suman Anna [Thu, 12 Jan 2017 19:20:27 +0000 (13:20 -0600)]
Linux: Update user AF_RPMSG define for 4.7+ kernels

IPC's Linux user space support contains a copy of a few
kernel-defined structs and definitions including 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 mainline kernel's socket.h.

Prior to Linux 3.9, this was aways 40. Couple of new address
families were introduced in 4.6 (AF_KCM) and 4.7 (AF_QIPCRTR),
and as a result, we needed to set AF_RPMSG to 43 post 4.7 kernel.
The user space header has been updated to reflect on the kernel
version and appropriately assign the value of AF_RPMSG.

Do note that a specific value of AF_RPMSG can always be provided
through the products.mak when KERNEL_INSTALL_DIR is not set.

Signed-off-by: Suman Anna <s-anna@ti.com>
4 years agowatchdog: enable __FAR__ for static variable
Sam Nelson [Thu, 5 Jan 2017 22:18:51 +0000 (17:18 -0500)]
watchdog: enable __FAR__ for static variable

This allows freedom in memory placement of data memory sections.

Signed-off-by: Sam Nelson <sam.nelson@ti.com>
4 years agolad: Skip daemon running check in Android
Misael Lopez Cruz [Wed, 7 Dec 2016 22:38:31 +0000 (16:38 -0600)]
lad: Skip daemon running check in Android

The Android service start already takes care of checking
if the service is already running, so it's not required
to check again if the daemon is running or not.

It's recommended to add an Android service in the init.rc
script file for the lad_dra7xx.  For instance:

  service lad_dra7xx /system/bin/lad_dra7xx -g
      class main
      user media
      group system
      oneshot

The service can be set up to automatically launch when
Android boots or manually started later:

  $ start lad_dra7xx

Directly running the lad_dra7xx executable in Android is
discouraged as the capability to enforce that only one
instance is running is lost.

Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
4 years agolad: Compile lad_dra7xx as app for Android
Misael Lopez Cruz [Wed, 7 Dec 2016 22:38:30 +0000 (16:38 -0600)]
lad: Compile lad_dra7xx as app for Android

lad_dra7xx is being launched as an Android service. The
service status is tracked based on the pid of the binary
run when the service is launched.

In daemon mode, the pid that Android keeps track of is that
of the parent process that started the daemon.  So, the
lad_dra7xx service status is not properly shown.

The lad_dra7xx will be compiled in app mode for Android to
avoid the problem described above.  The lad_dra7xx will
continue as a daemon for Linux.

Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
4 years agomake: Update to build interfaces first 3.44 ipc-3.44-next 3.44.01.01
Sam Nelson [Mon, 12 Dec 2016 16:48:53 +0000 (11:48 -0500)]
make: Update to build interfaces first

This change is aimed to avoid parallel build issues, due to interfaces
not built.

Signed-off-by: Sam Nelson <sam.nelson@ti.com>
4 years agoautotools: Update of autogenerated files
Sam Nelson [Sun, 27 Nov 2016 13:58:48 +0000 (08:58 -0500)]
autotools: Update of autogenerated files

Captures change with subdir-objects removed

Signed-off-by: Sam Nelson <sam.nelson@ti.com>
4 years agoautotools: Update to remove subdir-objects
Sam Nelson [Sun, 27 Nov 2016 13:57:08 +0000 (08:57 -0500)]
autotools: Update to remove subdir-objects

automake has a bug handling subdir-objects.
Removing subdir-objects for now and live with warning to avoid build
issue.

Signed-off-by: Sam Nelson <sam.nelson@ti.com>
4 years agoautoreconf: Linux: Update autotools generated files
Sam Nelson [Wed, 16 Nov 2016 22:22:56 +0000 (17:22 -0500)]
autoreconf: Linux: Update autotools generated files

Check in autoreconf generated files after update to Makefile.am files

Signed-off-by: Sam Nelson <sam.nelson@ti.com>
4 years agoconfigure.ac: Update to avoid warnings with auroreconf 3.44.00.00
Sam Nelson [Sat, 5 Nov 2016 15:37:07 +0000 (11:37 -0400)]
configure.ac: Update to avoid warnings with auroreconf

Without these fixes, the following warnings were seen and now fixed

configure.ac:54: warning: Unknown LT_INIT option `gcc'
linux/src/api/Makefile.am:61: warning: source file
'$(top_srcdir)/linux/src/heaps/HeapStd.c' is in a subdirectory,
linux/src/api/Makefile.am:61: but option 'subdir-objects' is disabled

Signed-off-by: Sam Nelson <sam.nelson@ti.com>
4 years agoMakefile.am: Update to use -pthread
Sam Nelson [Sat, 5 Nov 2016 15:36:20 +0000 (11:36 -0400)]
Makefile.am: Update to use -pthread

Based on gcc documentation and other discussions online, looks like
"-pthread" is required in compile options.
Needed to add -pthread with CFLAGS

Signed-off-by: Sam Nelson <sam.nelson@ti.com>
4 years agoLinux: Add pthread dependency for transport
Karthik Ramanan [Mon, 31 Oct 2016 06:51:59 +0000 (12:21 +0530)]
Linux: Add pthread dependency for transport

On Poky based builds, the ti-ipc compilation results in the below
error:

.libs/libtitransportrpmsg.so: undefined reference to `pthread_join'
                              ~~~~~~~~~~~~~~~~~~~

Signed-off-by: Karthik Ramanan <a0393906@ti.com>
4 years agoBuild scripts: Add far model for ipc data
Sam Nelson [Fri, 28 Oct 2016 15:31:41 +0000 (11:31 -0400)]
Build scripts: Add far model for ipc data

This helps to relocate and place data sections without any restrictions.

Signed-off-by: Sam Nelson <sam.nelson@ti.com>
4 years agoBuild.xs: Add missing files for building A15 libraries in release
Sam Nelson [Fri, 28 Oct 2016 01:49:24 +0000 (21:49 -0400)]
Build.xs: Add missing files for building A15 libraries in release

Without this fix the NonInstrumented example builds fail for K2
platforms with IPC configured for Build.LibType_NonInstrumented

Signed-off-by: Sam Nelson <sam.nelson@ti.com>
4 years agoLinux/Android: Refactor MessageQ_create to Register Later with NameServer
Angela Stegmaier [Thu, 29 Sep 2016 20:47:00 +0000 (15:47 -0500)]
Linux/Android: Refactor MessageQ_create to Register Later with NameServer

In the current MessageQ_create implementation, the NameServer
registration is done early, before local creation in the user
library is done. It is therefore possible that a remote core
could open a MessageQ that is still being created and put a
message to that MessageQ. This can result in dropped messages
or in the worst case a crash.

This patch moves the NameServer registration to the end of
the creation sequence so that the MessageQ cannot be opened
before it is fully created.

A new LAD command called MESSAGEQ_ANNOUNCE is added that is specifically
for registering a previously created MessageQ with the NameServer.

Once all creation is completed and the MessageQ is ready to
receive messages, the MessageQ_create api makes the call to LAD
MESSAGEQ_ANNOUNCE to register with the NameServer.

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
4 years agoQNX: NameServer: Fix Debug Trace in NameServer_add 3.43 ipc-3.43-next 3.43.03.05
Angela Stegmaier [Wed, 28 Sep 2016 22:02:44 +0000 (17:02 -0500)]
QNX: NameServer: Fix Debug Trace in NameServer_add

Fix a trace in NameServer_add which was assuming a 32-bit aligned
pointer, but the pointer may not be aligned. So, print only the
first byte, as the size of the entry is varaible anyway.

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
5 years agoTests: Enable RPMSG_NS_2_0 for all Keystone 2 platforms 3.43.02.04
Suman Anna [Fri, 2 Sep 2016 18:35:20 +0000 (13:35 -0500)]
Tests: Enable RPMSG_NS_2_0 for all Keystone 2 platforms

The rpmsg channel publishing requires RPMSG_NS_2_0 to be defined
for all Keystone 2 platforms, otherwise the channels are not
created properly on the Linux kernel side and the ping_tasks and
ping_rpmsg base images do not work with corresponding MPU-side
samples.

Signed-off-by: Suman Anna <s-anna@ti.com>
5 years agoLinux: remove always true check
Vishal Mahaveer [Fri, 26 Aug 2016 19:15:46 +0000 (14:15 -0500)]
Linux: remove always true check

With latest Android N compiler, we get following error. Fixing it by
removing the always true check.

linux/src/api/NameServer.c:311:17: error: comparison of array 'rsp.get.buf'
not equal to a null pointer is always true [-Werror,-Wtautological-pointer-compare]
    if (rsp.get.buf != NULL) {
        ~~~~~~~~^~~    ~~~~
linux/src/api/NameServer.c:453:17: error: comparison of array 'rsp.get.buf'
not equal to a null pointer is always true [-Werror,-Wtautological-pointer-compare]
    if (rsp.get.buf != NULL) {
        ~~~~~~~~^~~    ~~~~

Signed-off-by: Vishal Mahaveer <vishalm@ti.com>
5 years agoQNX: Change LOGn to GT traces for consistency
Angela Stegmaier [Fri, 29 Jul 2016 22:09:04 +0000 (17:09 -0500)]
QNX: Change LOGn to GT traces for consistency

The QNX IPC code has a mix of LOGn and GT traces. This patch
modifies all the LOGn traces to be GT traces for consistency,
and to give better control to trace enabling.

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
5 years agoRcmServer: Replace System_printf with Log_print
Harinarayan Bhatta [Thu, 21 Jul 2016 10:58:00 +0000 (16:28 +0530)]
RcmServer: Replace System_printf with Log_print

System_printf in this function floods the IPU trace buffer and drowns out other
logs because this code is executed for every MmRpc_call made from the host.
Log_print provides better control to enable or disable logs on a per module
basis.

Signed-off-by: Harinarayan Bhatta <harinarayan@ti.com>
5 years agoLinux: NameServer_daemon: Check All Remote Cores Even if One Core is in Bad State
Angela Stegmaier [Wed, 20 Jul 2016 20:51:57 +0000 (15:51 -0500)]
Linux: NameServer_daemon: Check All Remote Cores Even if One Core is in Bad State

The current implementation will cease checking of the remaining remote cores in
the cluster if NameServer_getRemote fails for any reason other than
NameServer_E_NOTFOUND or NameServer_E_RESOURCE. If one of the remote cores in
the cluster is in an unresponsive state, then either NameServer_E_TIMEOUT or
NameServer_E_FAIL could be returned. And when that error code is returned, no
more remote cores in the cluster will be checked by NameServer_get. So if one
core goes into a bad state, then communication becomes blocked for all remaining
cores in the cluster.

To improve error handling and allow other cores to continue communication with
the HOST even if one core has crashed, the remaining cores should continue to
be checked, regardless of an error being returned from one of the cores.

This patch modifies NameServer_get so that if NameServer_getRemote fails for
a particular core, it no longer breaks, but continues to try the remaining
cores. In this way a crashed core does not block communication with the other
cores.

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
5 years agoWatchdog: DRA7XX: Fix Watchdog Timer13 BaseAddr
Angela Stegmaier [Thu, 7 Jul 2016 20:15:34 +0000 (15:15 -0500)]
Watchdog: DRA7XX: Fix Watchdog Timer13 BaseAddr

The baseaddr for watchdog timer 13 was being incorrectly set
for DRA7XX DSP. This patch fixes the value to be the correct
address.

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
5 years agogrcm: Only Assert on Received Message Checks if Shutdown is False
Angela Stegmaier [Mon, 27 Jun 2016 19:57:18 +0000 (14:57 -0500)]
grcm: Only Assert on Received Message Checks if Shutdown is False

If RPMessage_recv returns due to shutdown, then no valid message
is received by the call, and it should not assert if the message
is invalid.

This patch fixes the code to only do the assert checks if shutdown
is false.

Also fixes a minor issue with a trace referencing a parameter
that no longer exists.

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
5 years agoLinux: GateMP_daemon: Fix incorrect mapping of IGateProvider_NULL
Angela Stegmaier [Thu, 23 Jun 2016 21:16:01 +0000 (16:16 -0500)]
Linux: GateMP_daemon: Fix incorrect mapping of IGateProvider_NULL

In the case that IGateProvider_NULL is used for one of the remoteCustom
gates, the code will anyway attempt to map it and throw and error trace.
The code continues as this is the last part of the attach and the error
is essentially ignored as part of the design of GateMP support in order
to allow the LAD daemon to continue even if the setup fails. So the error
trace doesn't cause any functionality failure.

Fix up the code so that mappings are only done when there is a valid
size, so that the valid case of IGateProvider_NULL is properly handled.

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
5 years agotests: gatempapp: update sr0 addresses to align with kernel dts
Angela Stegmaier [Thu, 23 Jun 2016 18:41:49 +0000 (13:41 -0500)]
tests: gatempapp: update sr0 addresses to align with kernel dts

Update the sr0 addresses to align with default values for
linux kernel jamr dts file.

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
5 years agoipc-bios.mak: Remove use of find command under windows 3.43.01.03
Sam Nelson [Mon, 27 Jun 2016 19:49:15 +0000 (15:49 -0400)]
ipc-bios.mak: Remove use of find command under windows

Avoid use of find command in windows:
Use of find in windows results in build issues, especially with
xdctools/bin in the path.
Also there is no examples modules under packages directory  ( examples
are maintained outside packages directory) and so no need to filter
them.

Signed-off-by: Sam Nelson <sam.nelson@ti.com>
5 years agomakefile: Update makefile template to create lib directory 3.43.00.01 3.43.01.02
Sam Nelson [Fri, 27 May 2016 18:07:30 +0000 (14:07 -0400)]
makefile: Update makefile template to create lib directory

Without this, build will fail, when building for A15 targets alone

Signed-off-by: Sam Nelson <sam.nelson@ti.com>
5 years agolinux/ipc: Replace error message with debug print for GateMP Start 3.43.00.00_eng
Sam Nelson [Tue, 24 May 2016 19:40:38 +0000 (15:40 -0400)]
linux/ipc: Replace error message with debug print for GateMP Start

Error print was misleading when this is expected in case the GateMP not
supported in the system. Replaced with Verbose print

Signed-off-by: Sam Nelson <sam.nelson@ti.com>
5 years agoRemove INTMEM Type to match Linux K4.x
Angela Stegmaier [Mon, 16 May 2016 21:09:00 +0000 (16:09 -0500)]
Remove INTMEM Type to match Linux K4.x

Starting in Linux kernel 4.1, the INTMEM type is removed
in favor of the internal memory sections needed for loading
being handled entirely in the Linux kernel. As such, the
INTMEM type no longer is defined.

This patch updated the rsc_types header file to match the
Linux defined types, which no longer defines the INTMEM
type.

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
5 years agoTests: Update Tests to Remove INTMEM type usage
Angela Stegmaier [Mon, 16 May 2016 21:08:59 +0000 (16:08 -0500)]
Tests: Update Tests to Remove INTMEM type usage

Update the tests to remove usage of the INTMEM type
which is deprecated starting in Linux kernel 4.1.

Note that this is a compatibility break with k3.14
and the tests only support k4.1 and newer kernels
now.

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
5 years agoQNX: IPC: Handle Internal Memory Loading outside of Resource Table
Angela Stegmaier [Mon, 16 May 2016 21:06:46 +0000 (16:06 -0500)]
QNX: IPC: Handle Internal Memory Loading outside of Resource Table

This patch essentially reverts the following commits:
    1. "Add fw_rsc_intmem definition to support new TYPE_INTMEM entries in QNX"
        (commit 4a5f6fd0864854a99d430c6e6e7c65fb962f00e4)
    2. " Add INTMEM resource type support in QNX"
        (commit  eb3d6bcfd35b823746c6032a9f811fc414824704)

Support for TYPE_INTMEM is being removed. Instead the internal memory
regions will be available by default from the QNX resource manager, without
the remote core image needing to speicify a special resource table
entry. The changes are being made to align with coming BIOS-side changes
to remove the TYPE_INTMEM.

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
5 years agoipc-bios.bld: Add building of smp libraries for A15
Sam Nelson [Thu, 12 May 2016 18:36:33 +0000 (14:36 -0400)]
ipc-bios.bld: Add building of smp libraries for A15

Previously smp was supported for M4 targets only.
Adding A15 support now.

Signed-off-by: Sam Nelson <sam.nelson@ti.com>
5 years agoLinux: GateMP: Check for Proper NameServer Value Length
Angela Stegmaier [Tue, 10 May 2016 16:28:00 +0000 (11:28 -0500)]
Linux: GateMP: Check for Proper NameServer Value Length

After getting the NameServer value for _GateMP_TI_dGate, check
to make sure that the length is equal to the expected value.
This is to prevent using some uninitialized values to configure
the GateMP. Indirectly, this can help check if hostSupport
has been enabled on the remote processor or not, because
currently, only if hostSupport has been enabled are there 4
entries. Otherwise there are only 2 entries.

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
5 years agoShared memory cache management
John Godbey [Wed, 27 Apr 2016 15:52:03 +0000 (11:52 -0400)]
Shared memory cache management

Additional cache invalidates are needed to ensure all data remains fresh.

Signed-off-by: John Godbey <j-godbey@ti.com>
5 years agoLinux: tests: Call MessageQ_unbind in Fault Test
Angela Stegmaier [Fri, 15 Apr 2016 15:01:51 +0000 (10:01 -0500)]
Linux: tests: Call MessageQ_unbind in Fault Test

Call MessageQ_unbind in the fault test to unbind the application
from remote cores that it doesn't care about. This is useful in
the case of remote core recovery, so that recovery of a remote
core doesn't trigger errors in MessageQ APIs if the application
doesn't care about the state of a particular core. In this way,
the MessageQ for the application is only bound to the core(s)
with which it is communicating.

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
5 years agoLinux: Reattach to Proc In NameServer daemon In case of Error Recovery
Angela Stegmaier [Fri, 15 Apr 2016 15:01:50 +0000 (10:01 -0500)]
Linux: Reattach to Proc In NameServer daemon In case of Error Recovery

In the case of error recovery on one core while more than one
core is currently connected to the LAD daemon, the refcount for
the NameServer daemon will never reach zero unless all connected
applications call Ipc_stop. This will prevent the NameServer
daemon from reconnecting to the recovered remote core until all
applications call Ipc_stop. This is not desireable behavior because
this prevents an application opening a MessageQ on the recovered
core until all applications call Ipc_stop.

Instead, the patch makes changes to internally re-connect with the
recovered core within NameServer daemon itself in the case of
remote core error recovery. The NameServer daemon will continue
trying to reconnect to the recovered core until successful. In
this way, the other applications are not required to exit for a new
MessageQ_open to be successful with the recovered core.

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
5 years agoLinux: Fix Error Handling in TransportRpmsg_delete
Angela Stegmaier [Thu, 14 Apr 2016 21:01:48 +0000 (16:01 -0500)]
Linux: Fix Error Handling in TransportRpmsg_delete

TransportRpmsg_delete was not checking for a NULL handle
before de-referencing it, resulting in an application crash
if it was called with a NULL handle. A NULL handle was
being passed to TransportRpmsg_delete in the case where
TransportRpmsg_create socket connect call failed. In this
case, TransportRpmsg_create called TransportRpmsg_delete
with a NULL handle.

This patch adds a check for a NULL handle before de-referencing
the pointer in TransportRpmsg_delete, and also takes care
to cleanup the socket in TransportRpmsg_create in the failure
case where it cannot be cleaned by TransportRpmsg_delete.

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
5 years agoGateMP: Fix for hostSupport with GateMPSupportNull 3.42 ipc-3.42-next 3.42.01.03
Angela Stegmaier [Tue, 8 Mar 2016 22:45:32 +0000 (16:45 -0600)]
GateMP: Fix for hostSupport with GateMPSupportNull

The default configuration for GateMP remoteCustom2 is to use
GateMPSupportNull. In this case, the remoteCustom2InUse array
will be NULL. Due to this, the virtToPhys translation will
fail. If Asserts are enabled for the GateMP module, this
will result in a failure.

This patch fixes the issue by first checking if the pointer
is NULL before attempting the translation, since it is a valid
case for the pointer to be NULL.

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
5 years agoLinux: GateMP: Baseaddr not Correctly Set when UIO is not Present 3.42.00.02
Angela Stegmaier [Wed, 24 Feb 2016 21:59:29 +0000 (15:59 -0600)]
Linux: GateMP: Baseaddr not Correctly Set when UIO is not Present

In the case where UIO is not present, the GateMP_get_sr0() function
should set the baseaddr to 0. However, the code was not correctly
de-referencing the baseaddr parameter when attempting to set it to
zero, resulting in an un-initialized value for baseaddr when the UIO
driver is not present. This can result in an incorrect address for
the inUse arrays with consequences such as failure to map or other
unexpected behavior.

This patch fixes it to properly set the baseaddr to 0 for the case
where UIO is not present.

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
5 years agodeh: Watchdog: Timer structures declared as volatile
Stephen Molfetta [Tue, 16 Feb 2016 16:31:46 +0000 (10:31 -0600)]
deh: Watchdog: Timer structures declared as volatile

Watchdog implementation configures timers to operate in posted-write
mode, requiring SW to poll on TWPS register prior to subsequent write
access.

Therefore, references to the Watchdog timer instance must be declared
as volatile.  Otherwise, the initial value read of the TWPS will be
used as the polling value indefinitely, causing a potential lockup
if the application is completely idle.

Signed-off-by: Stephen Molfetta <sjmolfetta@ti.com>
5 years agoipc: Remove warnings found with MISRA checkers
Sam Nelson [Wed, 17 Feb 2016 19:04:48 +0000 (14:04 -0500)]
ipc: Remove warnings found with MISRA checkers

- Removed following warning "In the definition of a function-like
macro each instance of a parameter shall be enclosed in parentheses
unless it is used as the operand of # or ##

Signed-off-by: Sam Nelson <sam.nelson@ti.com>
5 years agoipc: Fix to handle remote GateMP not available 3.42.00.01_eng
Sam Nelson [Mon, 15 Feb 2016 21:04:51 +0000 (16:04 -0500)]
ipc: Fix to handle remote GateMP not available

There is an issue when GateMP in the remote processor is not available,
resulting in error. This fix handles the case gracefully by
ignoring remote gateMP availability.

Signed-off-by: Sam Nelson <sam.nelson@ti.com>
5 years agotests: gatempapp: update cmem and sr0 addresses to align with kernel
Angela Stegmaier [Thu, 11 Feb 2016 21:50:09 +0000 (15:50 -0600)]
tests: gatempapp: update cmem and sr0 addresses to align with kernel

Update the cmem and sr0 addresses to align with default values for
linux kernel.

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
5 years agoipc-bios.bld: Update default platform for C6678
Sam Nelson [Thu, 11 Feb 2016 19:27:25 +0000 (14:27 -0500)]
ipc-bios.bld: Update default platform for C6678

- Also update print string for unknown platform

Signed-off-by: Sam Nelson <sam.nelson@ti.com>
5 years agoGateMP: Correct exception string
Sam Nelson [Thu, 11 Feb 2016 19:19:59 +0000 (14:19 -0500)]
GateMP: Correct exception string

- Correct typo in Exception string for RemoteCustom2

Signed-off-by: Sam Nelson <sam.nelson@ti.com>
5 years agoGateMP: Add check for zero resources case
Sam Nelson [Thu, 11 Feb 2016 19:19:58 +0000 (14:19 -0500)]
GateMP: Add check for zero resources case

When reserving SR0 regions for GateMp instances, in some cases,
(for example the NULL gate) has zero resources. This was
not handled properly and resulted in failure. Fix is to avoid doing
unnecessary operations in case of zero resources.

Signed-off-by: Sam Nelson <sam.nelson@ti.com>
5 years agotests: Update messageq_multicore to use ti.ipc.remoteproc.Resource 3.42.00.00_eng
Sam Nelson [Mon, 25 Jan 2016 21:35:28 +0000 (16:35 -0500)]
tests: Update messageq_multicore to use ti.ipc.remoteproc.Resource

Before this fix, the rsc table header file was included directly in C
code. And the table was getting optimized away due to no direct
reference to the resource table. This resulted in failure of test
downloaded through user space loader.

Instead added the configuration to include the resource table (without
vdev and vring) through configuration file, which is more cleaner.

Signed-off-by: Sam Nelson <sam.nelson@ti.com>
5 years agolad: Allow only one instance of the daemon
Misael Lopez Cruz [Thu, 3 Dec 2015 00:29:11 +0000 (18:29 -0600)]
lad: Allow only one instance of the daemon

Make sure only one instance of the LAD daemon is running
at a time.  This implementation is based on syslink's
daemon.

Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
5 years agolad: Clean-up old response FIFOs
Misael Lopez Cruz [Mon, 21 Dec 2015 17:39:30 +0000 (11:39 -0600)]
lad: Clean-up old response FIFOs

The LAD daemon was only deleting specific FIFOs for new clients
whose PIDs had a corresponding old FIFO left over.  This was not
effective as the client side checks if the FIFO doesn't exist
before sending the LAD_CONNECT command, so the old FIFO was
not deleted.

The cleanup is changed to delete any old FIFO left over from
previous LAD sessions.  The cleanup implementation is based on
wpa_supplicant's.

Signed-off-by: Vishal Mahaveer <vishalm@ti.com>
Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
5 years agoMmRpc: MmServiceMgr: Use Any Address for Port
Angela Stegmaier [Fri, 18 Dec 2015 17:05:30 +0000 (11:05 -0600)]
MmRpc: MmServiceMgr: Use Any Address for Port

It is not required that the local endpoint be a certain value
when creating an OmapRpc instance. Since we are performing a
NameMap of the created endpoint to the host, the endpoint can
be any value. In fact, hard-coding the value prevents multiple
MmServiceMgr instances from being created on a processor.

This patch changes the port value from the hard-coded value
of 59 to be a value that is assigned by the RPMessage_create
call. In this way, multiple MmServiceMgr instances can
be created.

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
5 years agoLinux: Add support for the hwspinlock_user driver
Misael Lopez Cruz [Fri, 18 Dec 2015 21:50:52 +0000 (15:50 -0600)]
Linux: Add support for the hwspinlock_user driver

The hwspinlock_user is a character driver that exposes ioctls to
lock and unlock a given hwspinlock instance.  The hwspinlock_user
creates the /dev/hwspinlock device file.

The hwspinlock_user driver is used as the first option when available,
otherwise the previous /dev/mem approach is used.

The hwspinlock_user.h uapi header file is kept locally as it may not
be present in all supported kernels.

Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
5 years agoLinux: Close spinlock device after gate is stopped
Misael Lopez Cruz [Fri, 18 Dec 2015 21:50:51 +0000 (15:50 -0600)]
Linux: Close spinlock device after gate is stopped

The spinlock device is opened in the GateHWSpinlock_start()
function, but it's never closed.  The device is now being
closed in GateHWSpinlock_stop().

Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
5 years agodaemon: Add support for UIO-based SR0
Misael Lopez Cruz [Fri, 18 Dec 2015 21:50:50 +0000 (15:50 -0600)]
daemon: Add support for UIO-based SR0

The GateMP daemon uses /dev/mem to access SR0, where the gate
usage arrays are kept.  /dev/mem may not be present in all
production systems due to the security risk that it implies.

A userspace I/O driver approach can be used as an alternative.
The Linux kernel needs to expose a UIO named 'sr0' in order
to access the shared region from userspace.  The daemon is now
capable of finding such UIO entry if exists, and otherwise
fall back to the previous /dev/mem based approach.

Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
5 years agoMerge remote-tracking branch 'origin/3.40' into ipc-next
Angela Stegmaier [Tue, 15 Dec 2015 20:02:04 +0000 (14:02 -0600)]
Merge remote-tracking branch 'origin/3.40' into ipc-next

5 years agoStd.h: Remove unused types in Std.h files 3.41 ipc-3.41-next 3.41.00.07_eng 3.41.00.08
Sam Nelson [Wed, 9 Dec 2015 12:49:06 +0000 (07:49 -0500)]
Std.h: Remove unused types in Std.h files

- These types are no longer used in IPC
- Moving forward the idea is to move to using standard C99 types
  instead of defining types here in this local file.
- This also fixes issues with Int8, where other components defining
  the same changed it to use int8_t which is defined a signed char

Signed-off-by: Sam Nelson <sam.nelson@ti.com>
5 years agotci663x: Correct error in Interrupt configuration 3.41.00.06_eng
Sam Nelson [Thu, 3 Dec 2015 18:43:08 +0000 (13:43 -0500)]
tci663x: Correct error in Interrupt configuration

- Update to previous patch
- Interrupt configuration for only K2G is changed

Signed-off-by: Sam Nelson <sam.nelson@ti.com>
5 years agobios: Update to remove reference to old ti.bios 3.41.00.05_eng
Sam Nelson [Wed, 2 Dec 2015 04:02:02 +0000 (23:02 -0500)]
bios: Update to remove reference to old ti.bios

- old references to ti.bios is getting deprecated in BIOS 6.45 and later
  releases.  Removing here to avoid build issues with new bios releases.

Signed-off-by: Sam Nelson <sam.nelson@ti.com>
5 years agoAdded K2E and K2L ARM Alias to Settings.xs
John Godbey [Mon, 30 Nov 2015 17:10:25 +0000 (12:10 -0500)]
Added K2E and K2L ARM Alias to Settings.xs

The device name under the BIOS target configuration
is different for DSP and ARM.  Settings needs an alias
for the ARM core to build ARM-RTOS even on existing platforms

Signed-off-by: John Godbey <j-godbey@ti.com>
5 years agoInterrupt: tci663x: Update Interrupt numbers for 66AK2G 3.41.00.04_eng
Sam Nelson [Tue, 24 Nov 2015 21:19:51 +0000 (16:19 -0500)]
Interrupt: tci663x: Update Interrupt numbers for 66AK2G

- The DSP interrupt number and host interrupt numbers are different for
K2G compared to other Keystone devices.
- Seperate entry need created to capture the K2G settings.

Signed-off-by: Sam Nelson <sam.nelson@ti.com>
5 years agoStandardize #ifdef usage in the Interrupt Module
John Godbey [Mon, 23 Nov 2015 21:48:07 +0000 (16:48 -0500)]
Standardize #ifdef usage in the Interrupt Module

Changed the formatting of the #ifdef definitions to
#if defined(xdc_target__isaCompatible_xxxx)
to better follow the existing code.

Signed-off-by: John Godbey <j-godbey@ti.com>
5 years agoK2E and K2L RTOS support in IPC Settings
John Godbey [Fri, 20 Nov 2015 18:44:53 +0000 (13:44 -0500)]
K2E and K2L RTOS support in IPC Settings

Added the hooks for ARM_RTOS support on the K2E and K2L platforms in Settings.xs.

Signed-off-by: John Godbey <j-godbey@ti.com>
5 years agoAndroid: fix build issues with Android Marshmallow 3.40 ipc-3.40-next
Vishal Mahaveer [Fri, 20 Nov 2015 19:43:09 +0000 (13:43 -0600)]
Android: fix build issues with Android Marshmallow

pthread definitions are updated in Android M, update definitions
accordingly. Using PLATFORM_SDK_VERSION to determine versions < Android M

Android version numbers can be found here:
https://source.android.com/source/build-numbers.html#platform-code-names-versions-api-levels-and-ndk-releases

Signed-off-by: Vishal Mahaveer <vishalm@ti.com>
5 years agoMultiprocSetup ARM-RTOS check 3.41.00.03_eng
John Godbey [Mon, 16 Nov 2015 18:01:01 +0000 (13:01 -0500)]
MultiprocSetup ARM-RTOS check

Added an ifdef to the file to let ARM-RTOS build cleanly without modifying
other files.

Signed-off-by: John Godbey <j-godbey@ti.com>
5 years agoSupport for Interrupts on ARM-RTOS in the K2 family.
John Godbey [Mon, 16 Nov 2015 18:30:57 +0000 (13:30 -0500)]
Support for Interrupts on ARM-RTOS in the K2 family.

- Added support for the Interrupt module running on ARM-RTOS.
- Updated Interrupt.c to handle the ARM side.
- Added an entry for hardware semaphore support in Settings.xs.

Signed-off-by:John Godbey <j-godbey@ti.com>

5 years agotests: Remove reference to tci6638.Interrupt module
Sam Nelson [Fri, 13 Nov 2015 23:33:22 +0000 (18:33 -0500)]
tests: Remove reference to tci6638.Interrupt module

-ti.ipc.family.tci6638.Interrupt is deprecated and any reference to
 this module need to removed from test/example code

Signed-off-by: Sam Nelson <sam.nelson@ti.com>
5 years agoMultiproc: Remove internal API MultiProc_rprocSetId
Sam Nelson [Fri, 13 Nov 2015 23:32:44 +0000 (18:32 -0500)]
Multiproc: Remove internal API MultiProc_rprocSetId

- MultiProc_rprocSetId and LAD_RPROC_SETID are no longer needed
  as the out of order download issue is taken care in the
  Remoteproc/RPMSG kernel driver

Signed-off-by: Sam Nelson <sam.nelson@ti.com>
5 years agoLinux: Update autotools generated files
Sam Nelson [Fri, 13 Nov 2015 00:01:35 +0000 (19:01 -0500)]
Linux: Update autotools generated files

- Check in autoreconf-generated files for 66AK2G support.

Signed-off-by: Sam Nelson <sam.nelson@ti.com>
5 years ago66AK2G: Linux: Add support for K2G
Sam Nelson [Fri, 13 Nov 2015 20:36:55 +0000 (15:36 -0500)]
66AK2G: Linux: Add support for K2G

    The C66AK2G 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.

Signed-off-by: Sam Nelson <sam.nelson@ti.com>
5 years agoRemoteproc: TCI66xx: Fix up resource tables 3.41.00.02_eng
Suman Anna [Fri, 30 Oct 2015 16:37:13 +0000 (11:37 -0500)]
Remoteproc: TCI66xx: Fix up resource tables

The TCI6638/TCI6614 resource table structure definitions are
incorrect - the offset variable was defined to be an array
of 13, whereas the real valid entries are either 2 or 3,
thereby mis-representing the offsets of the resources in the
actual resource table when compared to the resource structure
definition. Fix this properly by adjusting the array length.

While at this, also remove the current TYPE_CARVEOUT entry as
well, Keystone family of SoCs do not have an MMU, so can not
really support dynamically allocated addresses for text or
data sections.

Signed-off-by: Suman Anna <s-anna@ti.com>
5 years agoQNX: GateMP: Check Number of Resources for Gates Before Mapping
Angela Stegmaier [Thu, 22 Oct 2015 22:00:05 +0000 (17:00 -0500)]
QNX: GateMP: Check Number of Resources for Gates Before Mapping

A recent change to the BIOS-side GateMPSupportNull exposed an issue in
the GateMP module in which it may attempt to map an address of 0x0.
Previously, when GateMPSupportNull was used, the number of resources
was set as 1 and a valid address was obtained. With the update,
the number of resources for GateMPSupportNull is now 0. In this case,
the GateMP code will attempt to map an address of 0x0, of size 0,
which will fail.

This patch fixes the code to first check that the number of resources
is not 0, and only then proceed with the mapping. If the number of
resources is 0, then we skip the mapping for that remote gate.

This patch also makes a minor update to the LOGs for the failure
cases for mapping remoteCustom1InUse and remoteCustom2InUse to
print the proper remote InUse array.

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
5 years agoipc: transport: Add TCI6638 to use _rpmsg2 library 3.41.00.01_eng
Sam Nelson [Wed, 16 Sep 2015 17:29:03 +0000 (13:29 -0400)]
ipc: transport: Add TCI6638 to use _rpmsg2 library

- RPMSG2 supports RPMSG_NS_2_0 which is default for
  remoteproc driver in kernel version 4.1

Signed-off-by: Sam Nelson <sam.nelson@ti.com>
5 years agotci6638: rpmsg: Add define RPMSG_NS_2_0 for Keystone2 RPMSG
Sam Nelson [Sat, 1 Aug 2015 15:15:54 +0000 (11:15 -0400)]
tci6638: rpmsg: Add define RPMSG_NS_2_0 for Keystone2 RPMSG

- Note this will break backward compatiblity with keystone2 remoteproc driver
  based on kernel version 3.10.x
- RPMSG_NS_2_0 is default for keystone2 remoteproc driver
  based on kernel version 4.1

Signed-off-by: Sam Nelson <sam.nelson@ti.com>
5 years agotci6638: VirtQueue: Remove per core patch of the vring address
Sam Nelson [Sat, 1 Aug 2015 15:14:58 +0000 (11:14 -0400)]
tci6638: VirtQueue: Remove per core patch of the vring address

- Update VirtQueue driver to remove the per core patching of Vring address
- This patch was required with the keystone 2 remoteproc driver
  based on kernel version 3.10.x
- No longer needed for kernel drivers added on the 4.1 2015 LTS kernel
  for keystone2
- Currently putting under #ifdef in case customer wants use it to use
  with older kernel

Signed-off-by: Sam Nelson <sam.nelson@ti.com>
5 years agoEnable Examples Compilation with C++ Compiler
Angela Stegmaier [Wed, 23 Sep 2015 20:56:31 +0000 (15:56 -0500)]
Enable Examples Compilation with C++ Compiler

Attempting to compile the examples and tests in Linux with
the c++ compiler resulted in the following errors:

In file included from MessageQApp.c:46:0:
../../../packages/ti/ipc/Ipc.h:148:22: error: ‘<anonymous>’ has incomplete type
../../../packages/ti/ipc/Ipc.h:148:26: error: invalid use of ‘Void {aka void}’

In file included from ../../../linux/include/_lad.h:50:0,
                 from ../../../linux/include/ladclient.h:58,
                 from LAD_client.c:48:
../../../linux/include/_GateMP.h:78:3: error: conflicting declaration 'typedef struct GateMP_Object GateMP_Object'
In file included from ../../../linux/include/_lad.h:49:0,
                 from ../../../linux/include/ladclient.h:58,
                 from LAD_client.c:48:
../../../packages/ti/ipc/GateMP.h:222:16: error: 'struct GateMP_Object' has a previous declaration as 'struct GateMP_Object

This patch fixes these compilation issues so that the Linux examples can
be compiled with c++. Note that this patch does not have complete
changes to allow IPC to be compiled using the c++ compiler, but only
the examples.

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
5 years agoDisable entry/exit trace in some List_* functions in QNX
vwan@ti.com [Mon, 24 Aug 2015 17:07:46 +0000 (10:07 -0700)]
Disable entry/exit trace in some List_* functions in QNX

Some functions in the List module are called with interrupts disabled. When
these functions write to the slog (IPC_DEBUG_SLOG_LEVEL=7), a hard hang
is occasionally observed. This patch disables the entry/exit trace in these
functions to prevent the system from entering the deadlock state.

Signed-off-by: VW <vwan@ti.com>
5 years agoImprove MessageQ recovery on DRA7xx QNX
vwan@ti.com [Mon, 24 Aug 2015 16:59:45 +0000 (09:59 -0700)]
Improve MessageQ recovery on DRA7xx QNX

Previously, after recovery, an application using MessageQ is expected to
terminate. We are now improving this by having MessageQ_get/put return
MessageQ_E_SHUTDOWN after recovery is performed, upon which the application
can cleanup, and call Ipc_stop and Ipc_start to "restart" IPC. After that the
application can use IPC again.

This commit also adds a Fault test to validate this behavior.

This is to address CQ SDOCM00116175.

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