summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
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>
2016-01-05lad: Allow only one instance of the daemonMisael Lopez Cruz
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>
2016-01-05lad: Clean-up old response FIFOsMisael Lopez Cruz
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>
2015-12-21MmRpc: MmServiceMgr: Use Any Address for PortAngela Stegmaier
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>
2015-12-21Linux: Add support for the hwspinlock_user driverMisael Lopez Cruz
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>
2015-12-21Linux: Close spinlock device after gate is stoppedMisael Lopez Cruz
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>
2015-12-21daemon: Add support for UIO-based SR0Misael Lopez Cruz
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>
2015-12-15Merge remote-tracking branch 'origin/3.40' into ipc-nextAngela Stegmaier
2015-12-09Std.h: Remove unused types in Std.h files3.41.00.083.41.00.07_engipc-3.41-next3.41Sam Nelson
- 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>
2015-12-04tci663x: Correct error in Interrupt configuration3.41.00.06_engSam Nelson
- Update to previous patch - Interrupt configuration for only K2G is changed Signed-off-by: Sam Nelson <sam.nelson@ti.com>
2015-12-02bios: Update to remove reference to old ti.bios3.41.00.05_engSam Nelson
- 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>
2015-12-02Added K2E and K2L ARM Alias to Settings.xsJohn Godbey
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>
2015-11-25Interrupt: tci663x: Update Interrupt numbers for 66AK2G3.41.00.04_engSam Nelson
- 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>
2015-11-24Standardize #ifdef usage in the Interrupt ModuleJohn Godbey
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>
2015-11-24K2E and K2L RTOS support in IPC SettingsJohn Godbey
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>
2015-11-20Android: fix build issues with Android Marshmallowipc-3.40-next3.40Vishal Mahaveer
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>
2015-11-16MultiprocSetup ARM-RTOS check3.41.00.03_engJohn Godbey
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>
2015-11-16Support for Interrupts on ARM-RTOS in the K2 family.John Godbey
- 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>
2015-11-16tests: Remove reference to tci6638.Interrupt moduleSam Nelson
-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>
2015-11-16Multiproc: Remove internal API MultiProc_rprocSetIdSam Nelson
- 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>
2015-11-16Linux: Update autotools generated filesSam Nelson
- Check in autoreconf-generated files for 66AK2G support. Signed-off-by: Sam Nelson <sam.nelson@ti.com>
2015-11-1666AK2G: Linux: Add support for K2GSam Nelson
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>
2015-11-04Remoteproc: TCI66xx: Fix up resource tables3.41.00.02_engSuman Anna
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>
2015-10-29QNX: GateMP: Check Number of Resources for Gates Before MappingAngela Stegmaier
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>
2015-10-06ipc: transport: Add TCI6638 to use _rpmsg2 library3.41.00.01_engSam Nelson
- 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>
2015-10-06tci6638: rpmsg: Add define RPMSG_NS_2_0 for Keystone2 RPMSGSam Nelson
- 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>
2015-10-06tci6638: VirtQueue: Remove per core patch of the vring addressSam Nelson
- 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>
2015-10-05Enable Examples Compilation with C++ CompilerAngela Stegmaier
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>
2015-10-05Disable entry/exit trace in some List_* functions in QNXvwan@ti.com
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>
2015-10-05Improve MessageQ recovery on DRA7xx QNXvwan@ti.com
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>
2015-10-05Merge remote-tracking branch 'origin/ipc-3.40-next' into ipc-nextAngela Stegmaier
2015-10-01Tests: ping_rpmsg: Update Test with Proper Socket UsageAngela Stegmaier
This test was incorrectly using a socket that was connected to a remote endpoint to receive messages on the HOST. The remote core was using the source address to send the response when communicating with an rpmsg-proto channel, which is not a valid use of the rpmsg-proto channel. Only sockets which have been bound to a local endpoint by the application should be used to receive messages. When the remote core sends a message to an endpoint that is associated with a channel, there is a kernel crash because the private data for that endpoint is not as expected. Update the test case to properly use rpmsg-proto. With these updates, the test case now passes and there is no kernel crash. Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
2015-10-01QNX: Fix Trace Dump Core ID BugAngela Stegmaier
During error recovery, the IPC resource manager will dump the current traces for each remote core to a log file, if a log file was specified when launching the IPC. At the beginning of each core's trace dump, a header is printed to identify which core's traces were being printed. This trace was incorrectly using "i" instead of "id" to index the firmware array, resulting in an incorrect remote core id being printed in the header. This could even index the array beyond the valid range and cause a crash in IPC. This patch fixes the index so that it uses the proper variable ("id"), and also modifies the header to print the more user-friendly remote proc name instead of the remote proc ID. Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
2015-09-29Move Interrupt and NotifyCircSetup modules into tci663xRamsey Harris
Consolidate Interrupt and NotifyCircSetup modules from package ti.ipc.family.tci6638 into package ti.sdo.ipc.family.tci663x. This package is now able to support both Linux and non-Linux configurations. Replace Interrupt binding in VirtQueue with a proxy. Existing configurations will receive a warning when using the deprecated modules. The Interrupt module snoops for VirtQueue and NotifyCircSetup to avoid host conflict. Remove deprecated modules from custom build flow.
2015-09-29Fix test dual_transports to comply with MessageQAppRamsey Harris
The host program MessageQApp was modified to pass the message Id in the payload instead of the message header. Update DSP program with SyncMsg data type to access message Id in payload.
2015-09-17SDOCM00115347 Keystone 2 Interrupt module doesn't validate HOSTRamsey Harris
Add config validate function to ensure host processor is first in the MultiProc name list array. The Interrupt module makes this assumption; it will fail otherwise.
2015-09-17QNX: Fix in trace buffer dump during recoveryBuddy Liong
During the recovery, in deinit_ipc(), the IPC resource manager will try to dump the remote core trace information to a file. There is a possibility that the trace buffer may have become corrupted as a result of the crash on the remote core and that the write index, which resides in the trace buffer, has become corrupted as well. In this situation, there is a potential that the trace dump code will read beyond the mapped buffer for the TRACE BUF memory, causing the system to crash and be unable to recover. At this point a system restart is required to recover the system. There should be a check to make sure that the trace dump code is not indexing beyond the end of the trace buffer. Signed-off-by: Buddy Liong <buddy.budiono@ti.com> Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
2015-09-15Initial Keystone 2 Galileo build support on DSPRamsey Harris
Add new device name 66AK2G to top-level products.mak file. Add device TCI66AK2G02 alias to ti.sdo.ipc.family.Settings.
2015-09-15SDOCM00115293 Linux transport interfaces need documentationRamsey Harris
Add documentation to Linux transport interface header files.
2015-09-15Remove transport network interface hackRamsey Harris
Delete the INetworkTransportDummy interface. This file was overlooked when removing the transport network hack.
2015-09-15Eliminate config warning raised by ti.sdo.ipcmgrRamsey Harris
Replace xdc.loadPackage of ti.sdo.ipcmgr with xdc.useModule of ti.sdo.ipcmgr.IpcMgr.
2015-09-11Remove references to package ti.sdo.ipc.family.f28m35xRamsey Harris
Support has been removed for the f28 device. Remove old references.
2015-09-11SDOCM00077054 NameServer UG needs to document calling contextsRamsey Harris
Document the fact that NameServer_get cannot be called from Hwi or Swi context. This was the main point of the bug report.
2015-09-11For custom builds, add missing package dependenciesRamsey Harris
When using the custom IPC build option, the link order of some packages is pseudo-random. This results in linker errors. In ti.sdo.ipc.close(), add a package dependency to modules participating in the custom build flow.
2015-09-11c28: remove c28 supportChris Ring
Delete C28-related packages, and remove build-related support. Signed-off-by: Chris Ring <cring@ti.com>
2015-09-10QNX: Modification for QNX 6.5 compilation3.40.01.083.40.01.07_engBuddy Liong
This patch introduces the changes needed so that the QNX IPC can be compiled against QNX SDP 6.5.0. Where needed, a check is made to make one call when compiling against QNX SDP 6.6 and another call when compiling against QNX SDP 6.5 in order to take advantage of the newer functionality of QNX SDP 6.6. Signed-off-by: Buddy Liong <a0270631@ti.com> Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
2015-09-10SDOCM00118895 Missing access qualifier FAR in RPMessage moduleRamsey Harris
Add missing __FAR__ access qualifier to extern symbol declarations.
2015-09-09SDOCM00118574 Remove interface hack from transport packageRamsey Harris
Remove the module TransportNetworkDummy from the transports package and remove reference to the module in MessageQ.
2015-09-08SDOCM00118895 Missing access qualifier FAR in RPMessage moduleRamsey Harris
Add missing __FAR__ access qualifier to extern symbol declarations.
2015-09-04SDOCM00069628 GateMPSupportNull.getNumResources should return '0'Ramsey Harris
Fix metaonly module function to return zero instead of one.