summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2017-01-20QNX: rpmsg-rpc: Add MAP_SHARED to mmap64 CallAngela Stegmaier
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>
2017-01-20Deh: DRA7XX: Add DEH and Watchdog to DSP2 testsAngela Stegmaier
Add the DEH and Watchdog module to the DSP2 tests for DRA7XX. Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
2017-01-20Watchdog: Add Config to disable WatchdogAngela Stegmaier
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>
2017-01-19Tests: ping_tasks: Use different description names for each channelSuman Anna
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>
2017-01-19Linux: Update user AF_RPMSG define for 4.7+ kernelsSuman Anna
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>
2017-01-11watchdog: enable __FAR__ for static variableSam Nelson
This allows freedom in memory placement of data memory sections. Signed-off-by: Sam Nelson <sam.nelson@ti.com>
2016-12-22lad: Skip daemon running check in AndroidMisael Lopez Cruz
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>
2016-12-22lad: Compile lad_dra7xx as app for AndroidMisael Lopez Cruz
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>
2016-12-15make: Update to build interfaces first3.44.01.01ipc-3.44-next3.44Sam Nelson
This change is aimed to avoid parallel build issues, due to interfaces not built. Signed-off-by: Sam Nelson <sam.nelson@ti.com>
2016-11-27autotools: Update of autogenerated filesSam Nelson
Captures change with subdir-objects removed Signed-off-by: Sam Nelson <sam.nelson@ti.com>
2016-11-27autotools: Update to remove subdir-objectsSam Nelson
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>
2016-11-22autoreconf: Linux: Update autotools generated filesSam Nelson
Check in autoreconf generated files after update to Makefile.am files Signed-off-by: Sam Nelson <sam.nelson@ti.com>
2016-11-08configure.ac: Update to avoid warnings with auroreconf3.44.00.00Sam Nelson
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>
2016-11-08Makefile.am: Update to use -pthreadSam Nelson
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>
2016-11-08Linux: Add pthread dependency for transportKarthik Ramanan
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>
2016-10-28Build scripts: Add far model for ipc dataSam Nelson
This helps to relocate and place data sections without any restrictions. Signed-off-by: Sam Nelson <sam.nelson@ti.com>
2016-10-28Build.xs: Add missing files for building A15 libraries in releaseSam Nelson
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>
2016-10-24Linux/Android: Refactor MessageQ_create to Register Later with NameServerAngela Stegmaier
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>
2016-09-29QNX: NameServer: Fix Debug Trace in NameServer_add3.43.03.05ipc-3.43-next3.43Angela Stegmaier
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>
2016-09-07Tests: Enable RPMSG_NS_2_0 for all Keystone 2 platforms3.43.02.04Suman Anna
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>
2016-08-31Linux: remove always true checkVishal Mahaveer
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>
2016-08-31QNX: Change LOGn to GT traces for consistencyAngela Stegmaier
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>
2016-07-22RcmServer: Replace System_printf with Log_printHarinarayan Bhatta
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>
2016-07-22Linux: NameServer_daemon: Check All Remote Cores Even if One Core is in Bad ↵Angela Stegmaier
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>
2016-07-12Watchdog: DRA7XX: Fix Watchdog Timer13 BaseAddrAngela Stegmaier
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>
2016-06-29grcm: Only Assert on Received Message Checks if Shutdown is FalseAngela Stegmaier
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>
2016-06-29Linux: GateMP_daemon: Fix incorrect mapping of IGateProvider_NULLAngela Stegmaier
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>
2016-06-29tests: gatempapp: update sr0 addresses to align with kernel dtsAngela Stegmaier
Update the sr0 addresses to align with default values for linux kernel jamr dts file. Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
2016-06-27ipc-bios.mak: Remove use of find command under windows3.43.01.03Sam Nelson
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>
2016-05-27makefile: Update makefile template to create lib directory3.43.01.023.43.00.01Sam Nelson
Without this, build will fail, when building for A15 targets alone Signed-off-by: Sam Nelson <sam.nelson@ti.com>
2016-05-25linux/ipc: Replace error message with debug print for GateMP Start3.43.00.00_engSam Nelson
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>
2016-05-18Remove INTMEM Type to match Linux K4.xAngela Stegmaier
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>
2016-05-18Tests: Update Tests to Remove INTMEM type usageAngela Stegmaier
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>
2016-05-18QNX: IPC: Handle Internal Memory Loading outside of Resource TableAngela Stegmaier
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>
2016-05-16ipc-bios.bld: Add building of smp libraries for A15Sam Nelson
Previously smp was supported for M4 targets only. Adding A15 support now. Signed-off-by: Sam Nelson <sam.nelson@ti.com>
2016-05-12Linux: GateMP: Check for Proper NameServer Value LengthAngela Stegmaier
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>
2016-04-27Shared memory cache managementJohn Godbey
Additional cache invalidates are needed to ensure all data remains fresh. Signed-off-by: John Godbey <j-godbey@ti.com>
2016-04-20Linux: tests: Call MessageQ_unbind in Fault TestAngela Stegmaier
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>
2016-04-20Linux: Reattach to Proc In NameServer daemon In case of Error RecoveryAngela Stegmaier
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>
2016-04-20Linux: Fix Error Handling in TransportRpmsg_deleteAngela Stegmaier
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>
2016-03-11GateMP: Fix for hostSupport with GateMPSupportNull3.42.01.03ipc-3.42-next3.42Angela Stegmaier
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>
2016-02-24Linux: GateMP: Baseaddr not Correctly Set when UIO is not Present3.42.00.02Angela Stegmaier
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>
2016-02-19deh: Watchdog: Timer structures declared as volatileStephen Molfetta
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>
2016-02-18ipc: Remove warnings found with MISRA checkersSam Nelson
- 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>
2016-02-15ipc: Fix to handle remote GateMP not available3.42.00.01_engSam Nelson
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>
2016-02-12tests: gatempapp: update cmem and sr0 addresses to align with kernelAngela Stegmaier
Update the cmem and sr0 addresses to align with default values for linux kernel. Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
2016-02-12ipc-bios.bld: Update default platform for C6678Sam Nelson
- Also update print string for unknown platform Signed-off-by: Sam Nelson <sam.nelson@ti.com>
2016-02-12GateMP: Correct exception stringSam Nelson
- Correct typo in Exception string for RemoteCustom2 Signed-off-by: Sam Nelson <sam.nelson@ti.com>
2016-02-12GateMP: Add check for zero resources caseSam Nelson
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>
2016-01-27tests: Update messageq_multicore to use ti.ipc.remoteproc.Resource3.42.00.00_engSam Nelson
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>