bios-syslink:bios-syslink.git
6 years agoSysLink-IPC: DEH - Remove C64T dependency
Shahid Akhtar [Mon, 13 Dec 2010 16:02:31 +0000 (10:02 -0600)]
SysLink-IPC: DEH - Remove C64T dependency

This patch is required to build the C64T targets successfully by not
compiling/linking the DEH module. The Tesla Hwi module does not have
an exception handler, and so should not include DEH module.

Signed-off-by: Shahid Akhtar <sakhtar@ti.com>
6 years agoSysLink-IPC: DEH - Introduce Device Error Handler module
Wajahat Khan [Wed, 10 Nov 2010 16:40:01 +0000 (10:40 -0600)]
SysLink-IPC: DEH - Introduce Device Error Handler module

Exceptions that are unrecoverable need to be communicated to
the host processor so that it can print debug information, do
resource cleanup and ultimately reload DSP. The notification
mechanism for sending events to the host processor has been
consolidated in a new module named Device Error Handler.

This module uses event id 4 to send notify messages to the host
processor. This is currently not a configurable event number.

For more information, please refer to the design document
located at: http://omappedia.com/wiki/Device_Error_Handling

Signed-off-by: Wajahat Khan <w-khan@ti.com>
6 years agoSysLink-IPC: SLPM - Modify hibernation timer logic to support WDT
Shahid Akhtar [Mon, 6 Dec 2010 20:42:25 +0000 (14:42 -0600)]
SysLink-IPC: SLPM - Modify hibernation timer logic to support WDT

Removed functions related to timer used for hibernation. The hibernation
timer is configured on A9 side, that notifies the M3 cores to go to
hibernation. The two different GPTimers 3 and 4 are now collapsed to
just one GPTimer 3, and the usage is extended on the A9 side to support
WatchDog Timer.

Signed-off-by: Shahid Akhtar <sakhtar@ti.com>
Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
6 years agoSysLink-IPC: SLPM - Fix for self-hibernation not triggered consistently
Juan Gutierrez [Fri, 3 Dec 2010 18:52:56 +0000 (12:52 -0600)]
SysLink-IPC: SLPM - Fix for self-hibernation not triggered consistently

The patch "SysLink-IPC: SLPM - Avoid Hiber-timer creation from Hwi context"
cleaned up some code in the SLPM idle function, and this change resulted
in the hibernation not getting triggered consistently due to a timing issue.

Once woken up by WUGEN, if the AppM3 idle function execution is slightly ahead
of the SysM3 idle function, then the SysM3 gptimer is refreshed before it
overflows causing the hibernation to never trigger.

This patch adds back some of the deleted changes in the patch mentioned above
to resolve the timing issue.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Miguel Vadillo <vadillo@ti.com>
Signed-off-by: Paul Hunt <hunt@ti.com>
6 years agoSysLink-IPC: Samples - Replace Task_sleep calls in MemMgr sample
Suman Anna [Thu, 25 Nov 2010 01:07:10 +0000 (19:07 -0600)]
SysLink-IPC: Samples - Replace Task_sleep calls in MemMgr sample

The MemMgr Client samples were still using the Task_sleep calls.
These calls need to be replaced with the equivalent slpm_Task_sleep
calls to be able to run successfully.

These changes were missed in an earlier patch that converted all
the Task_sleeps to slpm_Task_sleep calls.

Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoSysLink-IPC: SLPM - Avoid Hiber-timer creation from Hwi context
Juan Gutierrez [Wed, 24 Nov 2010 06:16:34 +0000 (00:16 -0600)]
SysLink-IPC: SLPM - Avoid Hiber-timer creation from Hwi context

The instance for hibernation timer was created on SysM3 when the
first mailbox message is received and the hibernation flag is set.

This patch avoids the creation of the timer from the Hwi context.
The timer is refreshed whenever a mailbox message is received on
SysM3, and this refresh call creates the timer instance if not
present. The hibernation timer instance for SysM3 is now created
within the SLPM idle function, similar to AppM3.

This patch resolves the GateMutex assertion error with the new
BIOS 6.31.00.18, caused by the creation of the timer in the ISR.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Miguel Vadillo <vadillo@ti.com>
Signed-off-by: Paul Hunt <hunt@ti.com>
6 years agoSysLink-IPC: Samples - Remove TilerMemUtils_* functions from mem samples
Fernando Guzman Lugo [Wed, 24 Nov 2010 16:04:00 +0000 (10:04 -0600)]
SysLink-IPC: Samples - Remove TilerMemUtils_* functions from mem samples

Dummy functions TilerMemUtils_convertToTilerSpace and
TilerMemUtils_convertPageModeToTilerSpace were removed
from source code, so the mem samples have also been cleaned
up to remove these calls.

Signed-off-by: Fernando Guzman Lugo <x0095840@ti.com>
6 years agoSysLink-IPC: MemMgr - Remove unused RCM remote functions
Fernando Guzman Lugo [Wed, 24 Nov 2010 16:02:57 +0000 (10:02 -0600)]
SysLink-IPC: MemMgr - Remove unused RCM remote functions

Only MemMgr_Alloc and MemMgr_Free functions are valid and being used
currently, all other RCM functions that were either not implemented
or unused have been cleaned up.

TilerMemUtils_convertToTilerSpace & TilerMemUtils_convertPageModeTo
TilerSpace API were also removed, so that DOMX need not define stubs
for these dummy functions.

Signed-off-by: Fernando Guzman Lugo <x0095840@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoSysLink-IPC: SLPM - Add IPU memory space access agent
Paul Hunt [Sat, 20 Nov 2010 23:02:24 +0000 (16:02 -0700)]
SysLink-IPC: SLPM - Add IPU memory space access agent

Provides M3 memory space read, write, and read-modify-write
access from MPU side driver and utilities.

Signed-off-by: Paul Hunt <hunt@ti.com>
6 years agoSysLink-IPC: SLPM - Replace GateMutex with GateSwi
Juan Gutierrez [Mon, 22 Nov 2010 20:53:20 +0000 (14:53 -0600)]
SysLink-IPC: SLPM - Replace GateMutex with GateSwi

slpm_deregister_timer(), slpm_deregister_timer(),
slpm_Task_sleep and slpm_Thread_sleep APIs use a GateMutex
object for protecting multiple tasks modifying and updating
the reference counter. The above API can be called from both
a Task context and a Swi context.

The new BIOS version 6.31.00.18 does not allow calling
GateMutex from a Swi context, and throws an error. The SLPM
GateMutex object is therefore replaced with a GateSwi object,
which can be called from both Task & Swi contexts.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Miguel Vadillo <vadillo@ti.com>
Signed-off-by: Paul Hunt <hunt@ti.com>
6 years agoSysLink-IPC: SLPM - Remove WA for re-enabling cache after hibernate abort
Juan Gutierrez [Mon, 22 Nov 2010 16:43:03 +0000 (10:43 -0600)]
SysLink-IPC: SLPM - Remove WA for re-enabling cache after hibernate abort

Power_Suspend routine provided by BIOS 6_31_00_06_eng was not re-enabling
cache for the case when the hibernation process is aborted. A small fix
was added in the SLPM module to workaround this issue previously.

The new BIOS 6_31_00_18 version includes the fix for the above issue in
the Power_Suspend API itself, so the SLPM workaround is no longer required.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Miguel Vadillo <vadillo@ti.com>
Signed-off-by: Paul Hunt <hunt@ti.com>
6 years agoSysLink-IPC: Config - Remove hack in config of excStackBuffer
Wajahat Khan [Fri, 15 Oct 2010 16:33:29 +0000 (11:33 -0500)]
SysLink-IPC: Config - Remove hack in config of excStackBuffer

Since bios_6_31_00_08, this hacked way of setting Hwi.excStackBuffer
is no longer needed.

Signed-off-by: Wajahat Khan <w-khan@ti.com>
6 years agoSysLink-IPC: Docs - Update README.txt with new tools info
Shahid Akhtar [Mon, 22 Nov 2010 21:55:02 +0000 (15:55 -0600)]
SysLink-IPC: Docs - Update README.txt with new tools info

Updated the README.txt document while upgrading BIOS to 6.31.00.18
and XDC to 3.20.05.76 versions. Public access links for BIOS and XDC
were also added to the notes.

Signed-off-by: Shahid Akhtar <sakhtar@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoSysLink-IPC: Notify - Reset notify registration chart correctly
Suman Anna [Thu, 11 Nov 2010 22:29:10 +0000 (16:29 -0600)]
SysLink-IPC: Notify - Reset notify registration chart correctly

This patch fixes a minor bug in the NotifyDriverShm unregistration process.
The notify registration chart is an array and stores all the registered
events in ascending order (dictates the notify event priorities). This
array is compacted whenever an event is unregistered. The compaction is
done by shifting all the events present to the right of the unregistering
event to the left, and replacing the blank slots with the invalid event
id, -1.

Currently, the next element to the element being unregistered is not reset
correctly, but still is copied over to the left. This leads to duplicate
registrations in the array when that event is also unregistered. This
scenario happens when a lower event is unregistered while a higher event
is present in the registration chart.

Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoSysLink-IPC: SLPM - Move Suspend/Resume callbacks to task context
Juan Gutierrez [Wed, 27 Oct 2010 13:55:21 +0000 (08:55 -0500)]
SysLink-IPC: SLPM - Move Suspend/Resume callbacks to task context

Notification callbacks for Suspend and Resume were executed in Swi
context which prevents calling slpm APIs that require pending for an
acknowledged response.

Moving these callbacks to be executed under a Thread context makes
it possible to request and release resources inside them without
the previous limitations.

DevH (Proc-Obit) messages were already being executed in a thread
context, so now all notifications are being called in a Thread
context.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Miguel Vadillo <vadillo@ti.com>
Signed-off-by: Paul Hunt <hunt@ti.com>
6 years agoSysLink-IPC: SLPM - Fix ref-counter check to avoid Sleep mode
Juan Gutierrez [Thu, 4 Nov 2010 19:04:49 +0000 (14:04 -0500)]
SysLink-IPC: SLPM - Fix ref-counter check to avoid Sleep mode

System timer registration (slpm_register_timer API) allows using
BIOS system timer for tick services. It also disables deepsleep mode
to avoid the core going to sleep while pending for a timeout.
This API keeps a reference counter that needs to be checked when
setting the Deep-sleep mode in each core.

The reference counter is per core. The system DeepSleepAllow flag
was set whenever the per-core ref-counter equals 0. The
DeepSleepAllow being common for both cores allowed both cores
go to sleep even if the reference counter of the other core
has not reached zero.

For InterM3 communication we could end up with one core hung
during a timeout while it is sleeping since the other core
allowed the common flag to allow DeepSleep mode

A proper check based on the System DeepSleepAllow flag AND the
ref-counter was added during the idle function to enable/disable
sleep mode in each core.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Miguel Vadillo <vadillo@ti.com>
Signed-off-by: Paul Hunt <hunt@ti.com>
6 years agoSysLink-IPC: SLPM - Add Source Clk for GPTimers as a parameter
Juan Gutierrez [Thu, 28 Oct 2010 21:17:12 +0000 (16:17 -0500)]
SysLink-IPC: SLPM - Add Source Clk for GPTimers as a parameter

With this patch it is now possible to select the source clock for
a gptimer when it is requested. The valid values are slpm_SYS_CLK
(38.4 MHz) and slpm_32_KHZ (32 KHz).

The interface has changed (but it is still compatible):

The parameter struct has one new field called src_clk

  typedef struct slpm_GptParams {
      UInt32       BaseAddr;
      Int32        number;
      Int32        src_clk;
  } slpm_GptParams;

The valid values are in the next enum in slpm_interface.h

  typedef enum slpm_gpt_src_clk {
      slpm_SYS_CLK,
      slpm_32_KHZ
  }

If no value is populated MPU side will set the SYS_CLK as
the default value.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Miguel Vadillo <vadillo@ti.com>
Signed-off-by: Paul Hunt <hunt@ti.com>
6 years agoSysLink-IPC: SLPM - Disallow self-hibernation while used resources exist
Juan Gutierrez [Wed, 3 Nov 2010 15:09:36 +0000 (10:09 -0500)]
SysLink-IPC: SLPM - Disallow self-hibernation while used resources exist

Ducati-self hibernation is prevented when any requestable slpm resource
is still in use. All the resources should be released in order to get
self hibernation triggered after some inactivity.

Previously this condition was tied only to IVAHD and ISS or I2c spinlock,
now it is extended to any resource requested via SLPM.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Miguel Vadillo <vadillo@ti.com>
Signed-off-by: Paul Hunt <hunt@ti.com>
6 years agoSysLink-IPC: RCM - Fix minor KW defect
Shahid Akhtar [Wed, 3 Nov 2010 21:04:04 +0000 (16:04 -0500)]
SysLink-IPC: RCM - Fix minor KW defect

Pointer was used first and checked for NULL later. Moved the
check for NULL condition earlier in the function.

Signed-off-by: Shahid Akhtar <sakhtar@ti.com>
6 years agoSysLink-IPC: RCM - Fix corner cases in RCM worker thread pool design
Suman Anna [Mon, 1 Nov 2010 22:25:54 +0000 (17:25 -0500)]
SysLink-IPC: RCM - Fix corner cases in RCM worker thread pool design

Fixes have been made to the following corner cases in the current
RCM worker thread pool design:
1. The worker thread, upon processing a message with a specific
   job id, looks up the corresponding job stream and fetches the
   next packet. If this packet belongs to a different pool, the
   thread places it on the corresponding pool's readyQueue but
   still has ownership of it. If the packet belongs to the same
   pool, it continues processing this message without picking
   up the message from the pool's readyQueue, thereby starving
   the messages on the readyQueue. The fix is to put the packet
   onto the corresponding readyQueue and wait for to be signalled
   again, thus preserving the order of messages on the readyQueue.
2. The above original execution flow also results in a packet being
   unhandled, if the worker thread is signalled to terminate. The
   above fix will also handle this orphaned message.
3. Any unprocessed messages on a pool's readyQueue are lost in the
   current implementation. These messages are sent back to the
   client after the pool's threads are all terminated.
4. If the server thread picks up a message, and is signalled to
   terminate at the same time, the termination is taking precedence
   over the picked up message resulting in a unprocessed message.
   The current fix is to process the message before exiting the
   server thread function.

Messages left over on the server MessageQ (and any the client has
added) after the server thread has terminated are currently not
handled, and needs to be fixed in the future.

Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoSysLink-IPC: RCM - Introduce RCM design enhancements
Shahid Akhtar [Tue, 19 Oct 2010 21:12:11 +0000 (16:12 -0500)]
SysLink-IPC: RCM - Introduce RCM design enhancements

This patch introduces two new RCM design enhancements:
1. RCM Server Worker pool threads
The RCM worker thread pool allows users to prioritize each call
to RCM server. If you create an RcmServer instance using just the
default values, the default pool will not have any threads. All
messages sent to the default pool will be processed by the server
thread function (in-band processing). The RCM server allows for
creation of static worker thread pools during create phase. Dynamic
creation of worker thread pools is not supported at this time.

On the client side, RcmClient_alloc() will initialize the message
with "poolId = RcmClient_DEFAULTPOOLID (this is default value)"
thus addressing the message to the default pool. The user can
change the poolId to send the message to a particular thread.
When the server thread function receives this message, it checks
the poolId to route the message to correct worker pool thread
or process the message itself (in-band processing). Similarly, the
user can set a jobId (which is set to RcmClient_DISCRETEJOBID by
default) for a group of messages which needs to be processed
sequentially.

2. Error Checking on uni-directional RCM messages
The RCM Client now has an error queue to which all the failed
RcmClient_execCmd (formerly RcmClient_execNoReply) RCM messages
are returned to. The user can check for these messages using the
new RcmClient_checkForError API.

Signed-off-by: Shahid Akhtar <sakhtar@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoSysLink-IPC: Samples - Add multi-buffer copy in MemAllocServer
Hari Kanigeri [Tue, 19 Oct 2010 19:17:59 +0000 (14:17 -0500)]
SysLink-IPC: Samples - Add multi-buffer copy in MemAllocServer

Add the support to copy from a given source buffer to a destination
buffer. The function fxnBufferCopy is provided for this purpose.

Signed-off-by: Hari Kanigeri <h-kanigeri2@ti.com>
6 years agoSysLink-IPC: Samples - BIOS Coding Standard formatting changes
Juan Gutierrez [Wed, 20 Oct 2010 22:57:32 +0000 (17:57 -0500)]
SysLink-IPC: Samples - BIOS Coding Standard formatting changes

Adjust the code to fit the Language Coding Standards defined for
DSP/BIOS and IPC modules. Functionality has not been changed.
The changes are merely to follow the coding standard.

The transport sample was deprecated, the transport layers is tested
by the resources sample.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Miguel Vadillo <vadillo@ti.com>
Signed-off-by: Paul Hunt <hunt@ti.com>
6 years agoSysLink-IPC: SLPM - Add Ducati self-hibernation and suspend support
Juan Gutierrez [Wed, 20 Oct 2010 17:40:41 +0000 (12:40 -0500)]
SysLink-IPC: SLPM - Add Ducati self-hibernation and suspend support

This patch adds the support for Ducati Self-hibernation and hibernation
during the System Suspend/Resume path.

Ducati self-hibernation is triggered after a certain period of
inactivity time. By default the Hiber_Period is set to 5 seconds.
The hibernation period could be changed in runtime using the next
API:

Bool slpm_HibTimer_setPeriod_us(UInt32 period)

GPT3/4 are used for triggering the Save-Context phase. Each Core
saves its NVIC and M3-Register context. SysM3 is in charge of saving
the common Ducati context(AMMU, L2RAM, CTM, etc).

Ducati Self-hibernation process:
After certain period of inactivity (Hiber_Period), APPM3 starts
saving its context and notifies SYSM3 to do the same. Just before
SYSM3 starts saving its own and the common context, it sends a
notification to A9 side. At this moment both cores are "idling".
Once each core has finished its saving phase, each one sets a
readyIdle flag in shared memory and goes in WFI state. A9 checks
these flags after receiving the Ducati-hibernation notification
and asserts the resets.

When the resets are de-asserted a restore context routine is
executed in each core. SYSM3 should be woken up first to restore
the common context. There is a Sync process in which each Core
waits for the other before enabling its interrupts and
resume.

Ducati hibernation in Suspend path:
The System Suspend message recieved by Ducati triggers the Ducati
hibernation to save the context and be ready to be reset. The main
difference between "suspend-induced" and "Ducati-self" hibernation
is that the former triggers Save context routine immediately after
receiving the Suspend message, the latter in the other hand, will
wait until Ducati reach the idle loop to start the saving context
phase.

Hibernation in Suspend path does not send the hibernation notification
to A9. A9 assumes that Ducati is ready to hibernate when it receives
the acknowledge for the suspend message from Ducati.

NOTE: In order to get this patch integrated with Multimedia baseimage,
multimedia configuration file should specify the proper mapping for
GPT3 and GPT4 in cfg file:

==== @ \wtsd_ducatimmsw\platform\base_image\Base_image_app_m3.cfg ====

  var dmTimer = xdc.useModule('ti.sysbios.timers.dmtimer.Timer');
  dmTimer.timerSettings[0].baseAddr = 0xA8034000;
  dmTimer.timerSettings[1].baseAddr = 0xA8036000;

======================================================================

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Miguel Vadillo <vadillo@ti.com>
Signed-off-by: Paul Hunt <hunt@ti.com>
6 years agoSysLink-IPC: SLPM - BIOS Coding Standard formatting changes
Juan Gutierrez [Tue, 19 Oct 2010 20:21:46 +0000 (15:21 -0500)]
SysLink-IPC: SLPM - BIOS Coding Standard formatting changes

Adjust the code to fit the Language Coding Standards defined
for DSP/BIOS and IPC modules. Functionality has not been changed.
The changes are merely to follow the coding standard.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Miguel Vadillo <vadillo@ti.com>
Signed-off-by: Paul Hunt <hunt@ti.com>
6 years agoSysLink-IPC: Samples - Update MemMgr samples to register an RCM Client
Angela Stegmaier [Thu, 19 Aug 2010 23:07:58 +0000 (18:07 -0500)]
SysLink-IPC: Samples - Update MemMgr samples to register an RCM Client

This patch updates the MemMgr samples to register an RCM Client
with the MemMgr through MemMgr_RegisterRCMClient().  Also, the
samples are updated to set the TaskEnv to a unique identifier, as
required to use MemMgr.

Also included some formatting changes.

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
6 years agoSysLink-IPC: MemMgr - Modify MemMgr to use user-provided RcmClient
Angela Stegmaier [Thu, 19 Aug 2010 22:55:49 +0000 (17:55 -0500)]
SysLink-IPC: MemMgr - Modify MemMgr to use user-provided RcmClient

This patch modifies the MemMgr module to use user-provided RcmClients
instead of a single hard-coded RcmClient.  With this change, the
applications' memory allocations through the MemMgr can be tracked
on the host-side per process.

Changes in this patch include:
1. Add MemMgr_RegisterRCMClient(Int id, Void *rcmClient)
2. Add MemMgr_UnregisterRCMClient(Int id, Void *rcmClient)
3. Remove RCM Client creation from MemMgr_init()
4. Remove RCM Client deletion from MemMgr_finalize()
5. Modified MemMgr_Alloc(), MemMgr_Free(), and MemMgr_debug()
   functions to retrieve the TaskEnv information and use the TaskEnv
   information to retrieve the registered Rcm Client.

This patch requires MemMgr users to:
1. Set the TaskEnv to be a unique identifier. This is a dependent
   requirement for proper functionality.
2. Call MemMgr_registerRCMClient() atleast once, passing the same
   unique identifier that was set in the TaskEnv,  before calling
   MemMgr_Alloc() or MemMgr_Free().
3. The TaskEnv can be set before each alloc or free call, thereby
   allowing a single task to communicate to multiple processes
   using different RcmClient handles.

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
7 years agoSysLink-IPC: SLPM - Set the proper Reset values for bw, lat and perf
Juan Gutierrez [Mon, 18 Oct 2010 15:19:10 +0000 (10:19 -0500)]
SysLink-IPC: SLPM - Set the proper Reset values for bw, lat and perf

This patches set the proper values when releasing the constraints

The reset value for latency, performance and bandwidth are as follows

 slpm_NO_FREQ_CONSTRAINT      0
 slpm_NO_LAT_CONSTRAINT      -1 (0xFFFFFFFF)
 slpm_NO_BW_CONSTRAINT       -1 (0xFFFFFFFF)

When APPM3, SYSM3 or IPU resources are released, the constraints are updated
to reflect the constraints of the resources already available.
When all of these resources are not available the updated constraint should
be the respective reset value (lat =-1, perf = 0)

This patch also resolves the issue that overwrites the parameter values
for perf, lat and bw after request the resource. Now the parameters structure
could be populated before and after requesting the resource.

Signed-off-by: Juan Gutierrez jgutierrez@ti.com
Signed-off-by: Miguel Vadillo <vadillo@ti.com>
Signed-off-by: Paul Hunt <hunt@ti.com>
7 years agoSysLink-IPC: InterM3 - Fixed sync issue with InterM3 tests
Shahid Akhtar [Fri, 8 Oct 2010 21:49:26 +0000 (16:49 -0500)]
SysLink-IPC: InterM3 - Fixed sync issue with InterM3 tests

Added a delay in AppM3 part to prevent both M3 cores trying to open the
HeapBuf created by the A9

Signed-off-by: Shahid Akhtar <sakhtar@ti.com>
7 years agoSysLink IPC: MemMap & Config - Reserve and configure memory for crash dump tool
Wajahat Khan [Tue, 5 Oct 2010 03:56:14 +0000 (22:56 -0500)]
SysLink IPC: MemMap & Config - Reserve and configure memory for crash dump tool

Crash dump utility helps programmers debug Ducati crashes. At the time of crash
useful state info is stored by BIOS and can be dumped to a pre-configured
memory region. The map file has been updated to carve out a 16KB memory region
from MEM_HEAP_SYSM3. 4KB will be used for dumping context information such as
internal registers, offending thread type, handle etc. 12KB will be used for
dumping the thread/task/interrupt stack. These allocated memory regions have
been specified in the configuration file.

Signed-off-by: Wajahat Khan <w-khan@ti.com>
Signed-off-by: Shahid Akhtar <sakhtar@ti.com>
7 years agoSysLink-IPC: Docs Updated README.txt
Shahid Akhtar [Tue, 5 Oct 2010 18:47:40 +0000 (13:47 -0500)]
SysLink-IPC: Docs Updated README.txt

The README.txt was updated to upgrade to bios
6.31.00.06_eng

Signed-off-by: Shahid Akhtar <sakhtar@ti.com>
7 years agoSysLink-IPC: Samples - Error when requesting cstrs
Miguel Vadillo [Fri, 1 Oct 2010 18:48:23 +0000 (13:48 -0500)]
SysLink-IPC: Samples - Error when requesting cstrs

Resources was not requesting the cstrs in the correct way
causing an error in the test case.
Changes are:

1. Change the constraint values for IVAHD to real ones.
2. Removal of the BANDWIDTH type constraint not yet supported
   by the CSTRS FWK.

Test cases is now passing without issues.

Signed-off-by: Miguel Vadillo <vadillo@ti.com>
7 years agoSysLink IPC: Samples-Replacing regular sleep to avoid hangs in idle
Shahid Akhtar [Tue, 5 Oct 2010 01:07:11 +0000 (20:07 -0500)]
SysLink IPC: Samples-Replacing regular sleep to avoid hangs in idle

Replace all Task/Thread_sleep call with slpm_Task/Thread_sleep
functions to avoid hangs when DeepSleep state is enabled during
idle.
Deep-Sleep state stops the internal clock so the regular Task/Thread
sleep functions would not have a ticking clk running during idle.

All the syslink-bios samples have at least one Task_sleep just before
call the HeapBufOpen. If we go to Idle and DeepSleep state is
enabled the Task_sleep function will hang forever. The use of
these APIs addresses that issue by disabling the DeepSleep state during
the timeout period.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Miguel Vadillo <vadillo@ti.com>
Signed-off-by: Paul Hunt <hunt@ti.com>
Signed-off-by: Shahid Akhtar <sakhtar@ti.com>
7 years agoMerge "SysLink IPC: MemMgr-Avoid Deep-Sleep state at MemMgr_init"
Shahid Akhtar [Tue, 5 Oct 2010 00:17:11 +0000 (00:17 +0000)]
Merge "SysLink IPC: MemMgr-Avoid Deep-Sleep state at MemMgr_init"

7 years agoMerge changes Ice8b6d02,I1ec798cc
Shahid Akhtar [Mon, 4 Oct 2010 23:29:22 +0000 (23:29 +0000)]
Merge changes Ice8b6d02,I1ec798cc

* changes:
  SysLink IPC: SLPM-Use SysTick and DeepSleep to allow core retention
  SysLink IPC: Config - Use internal SysTick and CTM timers

7 years agoMerge "SysLink-IPC: MemUtils - Remove typo in export of VirtToPhys()"
Shahid Akhtar [Mon, 4 Oct 2010 22:58:44 +0000 (22:58 +0000)]
Merge "SysLink-IPC: MemUtils - Remove typo in export of VirtToPhys()"

7 years agoSysLink-IPC: InterM3 tests modified part 2
Shahid Akhtar [Mon, 4 Oct 2010 22:33:39 +0000 (17:33 -0500)]
SysLink-IPC: InterM3 tests modified part 2

7 years agoSysLink IPC: MemMgr-Avoid Deep-Sleep state at MemMgr_init
Juan Gutierrez [Fri, 1 Oct 2010 22:50:44 +0000 (17:50 -0500)]
SysLink IPC: MemMgr-Avoid Deep-Sleep state at MemMgr_init

Deep-Sleep prevents internal M3 timers from continuing to run
during idle (WFI).
Mem_mgr_init uses Task/Thread_sleeps APIS that use the internal M3
timer as its source clk. To prevent cut off the sourceclk for this
 timeoutfunctions, Task/Thread_sleep should be replaced
by the slpm_Task/Thread_sleep APIs that internally prevent the
Deep-Sleep state until the timeout is reached.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Miguel Vadillo <vadillo@ti.com>
Signed-off-by: Paul Hunt <hunt@ti.com>
7 years agoSysLink IPC: SLPM-Use SysTick and DeepSleep to allow core retention
Juan Gutierrez [Fri, 1 Oct 2010 22:30:10 +0000 (17:30 -0500)]
SysLink IPC: SLPM-Use SysTick and DeepSleep to allow core retention

Reverting the changes for use GPT3 and GPT4 as the BIOS source clock
Wugen mask is set only to enable Mbox interrupts. SysTick and CTM
internal Timer are able to come out Ducati from WFI as long as the
DEEPSLEEP state is not asserted.
Whenever DeepSleep is asserted SysTick and CTM clocks are gated as soon
as we go to Idle(WFI). This allows to hit core retention

However, since the clock are gated all timeout BIOS functions like
Task_sleep and Semaphore_pend called with a timeout would hang since
the BIOS timer source (SysTick) is gated.

To alleviate that problem, DeepSleep state should be disabled as long
as one of this timeout BIOS calls are in use.

Four APIS are delivered

Void slpm_register_timer().- Allow SyTick to be active during Idle. So
all timeout functions are able to return after its timeout.
Enable Timer calls with a reference count based and mutex protection

Void slpm_deregister_timer().- Enable the DeepSleep state. It gates
intrernal M3 timers, allowing core retention during idle. Reference
count based, plus mutes protection

void slpm_Task_sleep (UInt timeout).- It is the wrapped version of
Task_sleep. Alows internal timer running until timeout is reached

Bool slpm_Thread_sleep(UInt timeout, Error_Block *eb ).- Wrapped
version of Thread_sleep that allows timer during idle until timeout

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Miguel Vadillo <vadillo@ti.com>
Signed-off-by: Paul Hunt <hunt@ti.com>
7 years agoSysLink IPC: Config - Use internal SysTick and CTM timers
Juan Gutierrez [Fri, 1 Oct 2010 21:22:15 +0000 (16:22 -0500)]
SysLink IPC: Config - Use internal SysTick and CTM timers

Reverting the use of GPT3 and GPT4 as the source clock
for BIOS Timer.

SysTick and CTM are gated whenever the SLEEPDEEP is asserted
Ducati Clocks need to be gated to be able to hit core retention
The use of SysTIck and CTM along with SLEEPDEEP options set the
conditions to hit core retention when Ducati is Idle

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Miguel Vadillo <vadillo@ti.com>
Signed-off-by: Paul Hunt <hunt@ti.com>
7 years agoSysLink-IPC: InterM3 tests modified
Shahid Akhtar [Fri, 1 Oct 2010 17:30:51 +0000 (12:30 -0500)]
SysLink-IPC: InterM3 tests modified

7 years agoSysLink-IPC: MemUtils - Remove typo in export of VirtToPhys()
Wajahat Khan [Mon, 20 Sep 2010 21:35:26 +0000 (16:35 -0500)]
SysLink-IPC: MemUtils - Remove typo in export of VirtToPhys()

When being used in test code, including this module with as-it-is
generates a re-definition warning. The problem arises from the
typo in function definition and function export. The VirtToPhys()
is defined with a captial 'V' in SyslinkMemUtils.c but is
exported as lowercase 'v' in SyslinkMemUtils.xdc. To remove the
warning and keep the API same, one has to export the function with
capital 'V' as well.

7 years agoSysLink-IPC: Samples-Updating proper sequence for request IVAHD
Juan Gutierrez [Wed, 22 Sep 2010 21:52:02 +0000 (16:52 -0500)]
SysLink-IPC: Samples-Updating proper sequence for request IVAHD

When IvaHD is requested also the IvaSeq0 and IvaSeq1 should be
requested in the proper order. Releasing IvaHd implies release
these resources in the reverse order

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Miguel Vadillo <vadillo@ti.com>
Signed-off-by: Paul Hunt <hunt@ti.com>
7 years agoSysLink-IPC: Samples - Updating proper sequence for requesting IVAHD
Juan Gutierrez [Wed, 22 Sep 2010 21:52:02 +0000 (16:52 -0500)]
SysLink-IPC: Samples - Updating proper sequence for requesting IVAHD

When IvaHD is requested also the IvaSeq0 and IvaSeq1 should be
requested in the proper order. Releasing IvaHd implies release
these resources in the reverse order

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Miguel Vadillo <vadillo@ti.com>
Signed-off-by: Paul Hunt <hunt@ti.com>
7 years agoMerge "SysLink-IPC: SLPM - KW Fix Uninitialized obj value"
Shahid Akhtar [Tue, 21 Sep 2010 21:14:19 +0000 (21:14 +0000)]
Merge "SysLink-IPC: SLPM - KW Fix Uninitialized obj value"

7 years agoMerge "SysLink-IPC: Samples - SLPM Samples KW and building fixes"
Shahid Akhtar [Tue, 21 Sep 2010 21:13:43 +0000 (21:13 +0000)]
Merge "SysLink-IPC: Samples - SLPM Samples KW and building fixes"

7 years agoMerge "SysLink-IPC: SLPM - Enabling interrupts on WUGEN mask and IRQWAKEEN"
Shahid Akhtar [Tue, 21 Sep 2010 21:13:18 +0000 (21:13 +0000)]
Merge "SysLink-IPC: SLPM - Enabling interrupts on WUGEN mask and IRQWAKEEN"

7 years agoMerge "SysLink-IPC: Config - Using GPTimers for ticking Ducati"
Shahid Akhtar [Tue, 21 Sep 2010 21:12:16 +0000 (21:12 +0000)]
Merge "SysLink-IPC: Config - Using GPTimers for ticking Ducati"

7 years agoSysLink-IPC: SLPM - KW Fix Uninitialized obj value
Juan Gutierrez [Mon, 20 Sep 2010 22:17:49 +0000 (17:17 -0500)]
SysLink-IPC: SLPM - KW Fix Uninitialized obj value

obj value could be dereferenced as NULL

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
7 years agoSysLink-IPC: Samples - SLPM Samples KW and building fixes
Juan Gutierrez [Mon, 20 Sep 2010 04:36:49 +0000 (23:36 -0500)]
SysLink-IPC: Samples - SLPM Samples KW and building fixes

Updating SLPM samples to make them build with last changes
in the slpm module.
Resolving KW issues

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
7 years agoSysLink-IPC: SLPM - Enabling interrupts on WUGEN mask and IRQWAKEEN
Juan Gutierrez [Fri, 17 Sep 2010 01:23:53 +0000 (20:23 -0500)]
SysLink-IPC: SLPM - Enabling interrupts on WUGEN mask and IRQWAKEEN

Enabling GPT, mailbox and IVA interrupts wake-up interrupts

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Miguel Vadillo <vadillo@ti.com>
Signed-off-by: Paul Hunt <hunt@ti.com>
7 years agoSyslink-IPC: Samples - Add sleep in DucatiMMUFault for reg dump
Wajahat Khan [Fri, 17 Sep 2010 16:52:44 +0000 (11:52 -0500)]
Syslink-IPC: Samples - Add sleep in DucatiMMUFault for reg dump

The sample returns right after making the read at invalid address.
The notification to A9 happens for the MMU fault but no register
dump was seen. Adding a Task_sleep after the read enables the
dumping of registers with state information.

Signed-off-by: Wajahat Khan <w-khan@ti.com>
7 years agoSysLink IPC: Docs - Updated README.txt
Shahid Akhtar [Fri, 17 Sep 2010 21:08:10 +0000 (16:08 -0500)]
SysLink IPC: Docs - Updated README.txt

Updated the README.txt file to include the tools information and
locations. Also corrected the build instructions to use the updated
tools.

Signed-off-by: Shahid Akhtar <sakhtar@ti.com>
7 years agoSysLink-IPC: Config - Using GPTimers for ticking Ducati
Juan Gutierrez [Fri, 17 Sep 2010 00:22:31 +0000 (19:22 -0500)]
SysLink-IPC: Config - Using GPTimers for ticking Ducati

SysTick Internal M3 timer is overriden by GPTIMER 3 in SYSM3
SysTick Internal M3 timer is overriden by GPTIMER 4 in APPM3

The change is needed to enable retention

Systick timer is not able to wake up from retention
if SleepDeep options in set.

Using Gptimers avoids this issue

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Miguel Vadillo <vadillo@ti.com>
Signed-off-by: Paul Hunt <hunt@ti.com>
7 years agoSysLink-IPC: Samples - Resources test ends too soon with titan changes
Juan Gutierrez [Wed, 15 Sep 2010 22:53:41 +0000 (17:53 -0500)]
SysLink-IPC: Samples - Resources test ends too soon with titan changes

Resources was asking for GPIO 50, since GPIO is already taken for
somebody else, test finishes sending the proper error, but the rest
of resources are not tested. Test modified to use GPIO 49 instead.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
7 years agoSysLink-IPC: SLPM - Disable Ducati self-hibernation
Juan Gutierrez [Wed, 15 Sep 2010 02:58:11 +0000 (21:58 -0500)]
SysLink-IPC: SLPM - Disable Ducati self-hibernation

This patch disables SysTick Timer during the PM idle function just
before entering WFI state to achieve CORE retention. Ducati
self-hibernation is also isabled temporarily as it is breaking the
RCM functionality due to a conflict with BIOS time/clock services.

CORE retention is still not achieved with these changes. There is
a conflict between PM and SysTick Timer usage, and the usage of
GPTIMER3 is being explored to resolve this problem.

Signed-off-by: Paul Hunt <hunt@ti.com>
7 years agoSysLink-IPC: Config - Remove Pwr.L2RAM from M3 common configuration
Juan Gutierrez [Fri, 10 Sep 2010 18:58:19 +0000 (13:58 -0500)]
SysLink-IPC: Config - Remove Pwr.L2RAM from M3 common configuration

There is no need to override the Pwr.L2RAM with the AMMU mapped
address. At the point when L2 context is saved the unicache has been
bypassed, so the physical address (set in BIOS) works, even if there
is no corresponding mapping in the AMMU

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Miguel Vadillo <vadillo@ti.com>
Signed-off-by: Paul Hunt <hunt@ti.com>
7 years agoSysLink-IPC: MemMgr - Revert to static mapping for VirtToPhys()
Wajahat Khan [Fri, 10 Sep 2010 22:38:29 +0000 (17:38 -0500)]
SysLink-IPC: MemMgr - Revert to static mapping for VirtToPhys()

The dummy read approach does not guarantee a clean return if the
given address is not mapped. With static mapping, one is promised
a clean exit but the scope of addresses that VirtToPhys API is
valid on is reduced to tiler, ducati internal heap and shared mem.
Also added a print, in case VirtToPhys API fails to find a mapping
for suppplied virtual address, to help debug.

Signed-off-by: Wajahat Khan <w-khan@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
7 years agoSysLink-IPC: SLPM - Fix for KW defects on SLPM module
Juan Gutierrez [Tue, 7 Sep 2010 21:26:22 +0000 (16:26 -0500)]
SysLink-IPC: SLPM - Fix for KW defects on SLPM module

Patch fixes the following KW defects in the SLPM module
1. obj may be NULL and dereferenced
2. Array out of bounds

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
7 years agoSysLink-IPC: Samples - Add support for TITAN
Miguel Vadillo [Tue, 7 Sep 2010 16:33:09 +0000 (11:33 -0500)]
SysLink-IPC: Samples - Add support for TITAN

Previously when an error occurred this was only visible
in Ducati context via logs.

Now when an error occurs this one is send back to user space
to print the test status in order to be reported to TITAN
framework.

slpmtest and slpmresources will receive an error from ducati
side whenever an error happens.

Signed-off-by: Miguel Vadillo <vadillo@ti.com>
Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
7 years agoSysLink-IPC: SLPM - Fix for function declared implicitly warning
Juan Gutierrez [Tue, 7 Sep 2010 19:20:30 +0000 (14:20 -0500)]
SysLink-IPC: SLPM - Fix for function declared implicitly warning

This patch resolves the next compilation Warning:
"InterruptDucati.c", line 438: warning: function declared implicitly
The name of the function was incorrect in idle.h

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
7 years agoSysLink-IPC: Config - Update new tools and M3 config
Juan Gutierrez [Fri, 3 Sep 2010 21:08:20 +0000 (16:08 -0500)]
SysLink-IPC: Config - Update new tools and M3 config

Signed-off-by: Shahid Akhtar <sakhtar@ti.com>
Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
7 years agoSysLink-IPC: Config - Enable Context info dump when an exception occurs
Wajahat Khan [Wed, 1 Sep 2010 21:52:02 +0000 (16:52 -0500)]
SysLink-IPC: Config - Enable Context info dump when an exception occurs

This change enables the the enableException field in Hwi module. This  enables
dumping of program state information to the console by the exception handler.

Signed-off-by: Wajahat Khan <w-khan@ti.com>
7 years agoSysLink-IPC: IPC - KW defect fixes
Shahid Akhtar [Thu, 26 Aug 2010 18:20:25 +0000 (13:20 -0500)]
SysLink-IPC: IPC - KW defect fixes

This patch fixes KW defects in IPC.

Signed-off by: Shahid Akhtar <sakhtar@ti.com>

7 years agoSysLink-IPC: Samples - Resources/Cstr_Fwk/hibernation
Miguel Vadillo [Thu, 2 Sep 2010 19:02:02 +0000 (14:02 -0500)]
SysLink-IPC: Samples - Resources/Cstr_Fwk/hibernation

slpmresources and slpmtest test cases now includes

New Resources:
- FDIF
- IPU
- MPU
- IVASEQ0
- IVASEQ1

Constraints Framework:
- IVAHD
- ISS
- L3Bus
- SYSM3
- APPM3

Retention/Hibernation support:
- Go to retention and then to hibernation after 5 seconds
  of inactivity.

KW fixes:
- Possible NULL pointer dereference of hRcb
- TaskHandleArray of size 32 may use index value 32.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Miguel Vadillo <vadillo@ti.com>
Signed-off-by: Paul Hunt <hunt@ti.com>
7 years agoSysLink-IPC: SLPM - Enable Hibernation Support
Juan Gutierrez [Thu, 2 Sep 2010 18:56:50 +0000 (13:56 -0500)]
SysLink-IPC: SLPM - Enable Hibernation Support

Hibernation feature is setup but keep disabled by default
slpm_pm_enable_hibernation API is delivered to enable hibernation
slpm_pm_disable_hibernation API is delivered to disable hibernation

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Miguel Vadillo <vadillo@ti.com>
Signed-off-by: Paul Hunt <hunt@ti.com>
7 years agoSysLink-IPC: SLPM - IPU Constraint Framework Support
Juan Gutierrez [Thu, 2 Sep 2010 17:26:06 +0000 (12:26 -0500)]
SysLink-IPC: SLPM - IPU Constraint Framework Support

IPU constraints are re-evaluated based on SYSM3, APPM3 and IPU
individual constraints.
IPU could only set directly the Latency constraint
IPU Perf should be set as SYSM3 and APPM3 combination
Perf is not supported for L3Bus
Only L3 supports BW

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Miguel Vadillo <vadillo@ti.com>
Signed-off-by: Paul Hunt <hunt@ti.com>
7 years agoSysLink-IPC: SLPM - Allowing switch context while getting spinlock
Juan Gutierrez [Mon, 30 Aug 2010 17:06:17 +0000 (12:06 -0500)]
SysLink-IPC: SLPM - Allowing switch context while getting spinlock

Adding a Task_sleep to avoid deadlocks when two thread/task
are competing for the rcb spinlock.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Miguel Vadillo <vadillo@ti.com>
Signed-off-by: Paul Hunt <hunt@ti.com>
7 years agoSysLink-IPC: SLPM - Full Resources support
Juan Gutierrez [Fri, 27 Aug 2010 17:39:23 +0000 (12:39 -0500)]
SysLink-IPC: SLPM - Full Resources support

Add support for resources like FDIF, IPU, IVASEQ0, IVASEQ1
ResetcContraints at Request time
Update Queue path library for new BIOS version

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Miguel Vadillo <vadillo@ti.com>
Signed-off-by: Paul Hunt <hunt@ti.com>
7 years agoSysLink-IPC: SLPM - misc/Queue.h is deprecated in BIOS_6_30_03_43_eng
Juan Gutierrez [Fri, 27 Aug 2010 17:17:11 +0000 (12:17 -0500)]
SysLink-IPC: SLPM - misc/Queue.h is deprecated in BIOS_6_30_03_43_eng

Migration to BIOS_6_30_03_43_eng requires update Queue.h from
ti/sysbios/misc/Queue.h to ti/sysbios/knl/Queue.h

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Miguel Vadillo <vadillo@ti.com>
Signed-off-by: Paul Hunt <hunt@ti.com>
7 years agoSysLink-IPC: SLPM - Add Thread to Handle OBIT Notifications
Angela Stegmaier [Fri, 27 Aug 2010 20:09:08 +0000 (15:09 -0500)]
SysLink-IPC: SLPM - Add Thread to Handle OBIT Notifications

This patch adds a thread to the slpm that is used to handle
PID_OBIT notifications.

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
7 years agoSysLink-IPC: SLPM - Fix slpm_detach to avoid Assert
Angela Stegmaier [Thu, 19 Aug 2010 23:10:22 +0000 (18:10 -0500)]
SysLink-IPC: SLPM - Fix slpm_detach to avoid Assert

This patch modifies slpm_detach so that getHandle is not called
before first determining if the remote proc id is MPU.  Otherwise,
an assert happens when trying to detach AppM3 from SysM3.

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
7 years agoSysLink-IPC: Samples - InterM3 samples now use event number 4
Subramaniam C.A [Fri, 27 Aug 2010 00:53:20 +0000 (19:53 -0500)]
SysLink-IPC: Samples - InterM3 samples now use event number 4

The samples previously used event number 3. Since 3 is added
to the reserved event list, we use 4.

Signed-off-by: Subramaniam C.A <subramaniam.ca@ti.com>
7 years agoSysLink-IPC: SLPM - Fix in slpm_getspinlock function
root [Wed, 25 Aug 2010 10:54:32 +0000 (05:54 -0500)]
SysLink-IPC: SLPM - Fix in slpm_getspinlock function

slpm_getspinlock function is returning the key uninitialized if
it aquires the lock in first attempt. The patch initializes key.
Also handles the code formatting of this function.

Signed-off-by: Hari Kanigeri <h-kanigeri2@ti.com>
Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
7 years agoSysLink-IPC: Notify - Increase reserved events to 4
Suman Anna [Wed, 25 Aug 2010 23:31:28 +0000 (18:31 -0500)]
SysLink-IPC: Notify - Increase reserved events to 4

IPC uses the first 4 notify events for internal notifications. The Notify
reserved events should therefore be 4, and not 3. Otherwise, the applications
may register with event 3 and send a wrong value back thereby causing
undesired effects.

Signed-off-by: Suman Anna <s-anna@ti.com>
7 years agoSysLink-IPC: Samples - DucatiMMUFault attaches before MMUFAULT
Subramaniam C.A [Thu, 26 Aug 2010 19:22:30 +0000 (14:22 -0500)]
SysLink-IPC: Samples - DucatiMMUFault attaches before MMUFAULT

The sample caused an MMU fault before doing ipc attach that caused the
A9 kernel to hang.

Also corrected the tsk name to tskMMUFault.

Signed-off-by: Subramaniam C.A <subramaniam.ca@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
7 years agoSysLink-IPC: Samples - Add cache operations in MemAllocServer test case
root [Wed, 25 Aug 2010 21:16:23 +0000 (16:16 -0500)]
SysLink-IPC: Samples - Add cache operations in MemAllocServer test case

Add the cache write back after updating the buffer received from
remote Processor.

Signed-off-by: Hari Kanigeri <h-kanigeri2@ti.com>
7 years agoSysLink-IPC: Samples - Start DSP Notify sample from event 4
Suman Anna [Fri, 27 Aug 2010 00:10:44 +0000 (19:10 -0500)]
SysLink-IPC: Samples - Start DSP Notify sample from event 4

The IPC code uses the first 4 notify events for internal notifications.
The DSP image is missing a similar change done on the Ducati samples.
This patch updates all starting event number in the DSP Notify sample
to 4.

Signed-off-by: Suman Anna <s-anna@ti.com>
7 years agoSysLink-IPC: Samples - Start Notify samples from event 4
Suman Anna [Wed, 25 Aug 2010 23:21:30 +0000 (18:21 -0500)]
SysLink-IPC: Samples - Start Notify samples from event 4

The IPC code uses the first 4 notify events for internal notifications.
The current Notify samples register event 3 from the application, and as
such the application is inadvertently notified when the devh module sends
event 3. This patch updates all starting event number in the Notify samples
to 4.

Signed-off-by: Suman Anna <s-anna@ti.com>
7 years agoSysLink-IPC: MemMgr - Implement VirtToPhys API through dummy read approach
Wajahat Khan [Mon, 16 Aug 2010 23:35:34 +0000 (18:35 -0500)]
SysLink-IPC: MemMgr - Implement VirtToPhys API through dummy read approach

The approach relies on making a dummy approach to the virtual address
whose physical address is desired. The implementation involves walking
the TLBs to read the entry brought in by the dummy read. Static translation
is disabled for pre-allocated ducati address space.

Signed-off-by: Wajahat Khan <w-khan@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
7 years agoSysLink-IPC: Config - Add support to track HeapBufMP allocations
Suman Anna [Tue, 17 Aug 2010 17:40:30 +0000 (12:40 -0500)]
SysLink-IPC: Config - Add support to track HeapBufMP allocations

This patch turns on the default configuration option for tracking
HeapBufMP allocations.

Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Subramaniam C.A <subramaniam.ca@ti.com>
7 years agoSysLink-IPC: MemMgr - Implement static Virt-Phys mapping
Shahid Akhtar [Fri, 6 Aug 2010 17:03:18 +0000 (12:03 -0500)]
SysLink-IPC: MemMgr - Implement static Virt-Phys mapping

This is a temporary patch until the final solution is implemented properly.
The va to pa translation is handled using a static lookup and relies that
physical memory assigned to Ducati is fixed.

Signed-off-by: Shahid Akhtar <sakhtar@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
7 years agoSysLink-IPC: Samples - Add Tesla RCM samples
Suman Anna [Tue, 3 Aug 2010 22:49:56 +0000 (17:49 -0500)]
SysLink-IPC: Samples - Add Tesla RCM samples

Added new RCM samples for Tesla. These include the RCM stress
samples as well as the remaining RCM single and multi-test
samples.

Signed-off-by: Suman Anna <s-anna@ti.com>
7 years agoSysLink-IPC: Samples - Adopt common configuration for DSP samples
Suman Anna [Tue, 3 Aug 2010 22:48:33 +0000 (17:48 -0500)]
SysLink-IPC: Samples - Adopt common configuration for DSP samples

The existing DSP sample configurations have been adopted to use the
common configuration. Also included changes to have the samples functional.

Signed-off-by: Suman Anna <s-anna@ti.com>
7 years agoSysLink-IPC: Build - Common configuration for Tesla images
Suman Anna [Wed, 4 Aug 2010 19:52:59 +0000 (14:52 -0500)]
SysLink-IPC: Build - Common configuration for Tesla images

Move the common configuration and linker configuration into
separate config files. These files need to be included in all
the samples baseimage configuration files.

Signed-off-by: Suman Anna <s-anna@ti.com>
7 years agoSysLink-IPC: Targets - Tesla Platform configuration file changes
Suman Anna [Mon, 2 Aug 2010 22:05:56 +0000 (17:05 -0500)]
SysLink-IPC: Targets - Tesla Platform configuration file changes

Tesla memory map has been changed to separate out code and data sections,
as well as match IPC shared regions to align with the Ducati side. The
memory is reduced by a lot and the trace region is arranged to be just
before the IPC Shared Memory in RAM.

Signed-off-by: Suman Anna <s-anna@ti.com>
7 years agoSysLink-IPC: Samples - DSP samples initial commit
Suman Anna [Fri, 30 Jul 2010 23:57:01 +0000 (18:57 -0500)]
SysLink-IPC: Samples - DSP samples initial commit

This patch adds the initial OMAP4 MPU-DSP samples.

Signed-off-by: Fernando Guzman Lugo <x0095840@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Shahid Akhtar <sakhtar@ti.com>
7 years agoSysLink-IPC: Trace - Add traces for Tesla.
Angela Stegmaier [Thu, 29 Jul 2010 16:50:53 +0000 (11:50 -0500)]
SysLink-IPC: Trace - Add traces for Tesla.

This patch adds to Tesla the possibility for sending Traces

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
7 years agoSysLink-IPC: IPC - Add DSP support
Fernando Guzman Lugo [Thu, 29 Jul 2010 17:13:54 +0000 (12:13 -0500)]
SysLink-IPC: IPC - Add DSP support

This patch adds DSP support to existing SysLink. MPU-DSP communication
is only enabled/verified currently.

The following are the main changes:
- Enable registration of Tesla ISR with MPU.
- Mailbox register map is fixed and synched up in both InterruptDsp and
  InterruptDucati modules to reflect the correct mailbox numbers.
- MPU requires the procId to be present in the payload, and the mailbox send
  is corrected for this behavior.

Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Fernando Guzman Lugo <x0095840@ti.com>
7 years agoSysLink-IPC: Targets - DSP platform initial commit
Suman Anna [Tue, 27 Jul 2010 17:45:16 +0000 (12:45 -0500)]
SysLink-IPC: Targets - DSP platform initial commit

Add the support for building for the C64T DSP target
in OMAP4.

Signed-off-by: Fernando Guzman Lugo <x0095840@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
Signed-off-by: Shahid Akhtar <sakhtar@ti.com>
7 years agoSysLink-IPC: Samples - Add runtime MMU fault samples
Angela Stegmaier [Thu, 5 Aug 2010 23:47:37 +0000 (18:47 -0500)]
SysLink-IPC: Samples - Add runtime MMU fault samples

This patch adds samples that will generate an MMU fault at
runtime when used with the rcm_singletest.out on the host.

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
7 years agoSysLink-IPC: Build - Add support for default builds for ES2.0 and ES1.0
Subramaniam C.A [Thu, 5 Aug 2010 07:46:02 +0000 (02:46 -0500)]
SysLink-IPC: Build - Add support for default builds for ES2.0 and ES1.0

With ES2.0, the workaround is disabled. With ES1.0, workaround is enabled by
default. Also used a define for ES1.0 to include ES1.0 specific code under
the define.

Signed-off-by: Subramaniam C.A <subramaniam.ca@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
7 years agoSysLink-IPC: SLPM - Using h/w spinlock to protect slpm shared memory access
Juan Gutierrez [Thu, 5 Aug 2010 14:26:18 +0000 (09:26 -0500)]
SysLink-IPC: SLPM - Using h/w spinlock to protect slpm shared memory access

Using h/w spinlock 4 to protect slpm shared memory access

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Miguel Vadillo <vadillo@ti.com>
Signed-off-by: Paul Hunt <hunt@ti.com>
7 years agoSysLink-IPC: IPC - Increasing in 1 the reserved h/w spinlocks
Juan Gutierrez [Thu, 5 Aug 2010 14:21:17 +0000 (09:21 -0500)]
SysLink-IPC: IPC - Increasing in 1 the reserved h/w spinlocks

The h/w spinlocks 0 to 3 are reserved for usage by I2C driver
h/w spinlock 4 is reserved for shared slpm memory

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Miguel Vadillo <vadillo@ti.com>
Signed-off-by: Paul Hunt <hunt@ti.com>
7 years agoSysLink-IPC: Samples - SLPM Resource samples update
Juan Gutierrez [Wed, 4 Aug 2010 14:55:26 +0000 (09:55 -0500)]
SysLink-IPC: Samples - SLPM Resource samples update

Support for request SYSM3, APPM3, L3BUS resources using SLPM APIs

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Miguel Vadillo <vadillo@ti.com>
Signed-off-by: Paul Hunt <hunt@ti.com>
7 years agoSysLink-IPC: SLPM - Fix for Set Constraints Function
Juan Gutierrez [Wed, 4 Aug 2010 14:49:53 +0000 (09:49 -0500)]
SysLink-IPC: SLPM - Fix for Set Constraints Function

Set Constraints Function was never dereferencing argument

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Miguel Vadillo <vadillo@ti.com>
Signed-off-by: Paul Hunt <hunt@ti.com>
7 years agoSysLink-IPC: Samples - SLPM samples update. AuxClk ,Idle, Suspend
Juan Gutierrez [Tue, 3 Aug 2010 01:40:39 +0000 (20:40 -0500)]
SysLink-IPC: Samples - SLPM samples update. AuxClk ,Idle, Suspend

Update of Resources Test case
New Test_MPUSYS_Test_PM_Core0
New Test_MPUAPP_Test_PM_Core1

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Miguel Vadillo <vadillo@ti.com>
Signed-off-by: Paul Hunt <hunt@ti.com>
7 years agoSysLink-IPC: SLPM - AuxClk support, preliminary Idle and Constraints APIs
Juan Gutierrez [Tue, 3 Aug 2010 00:16:44 +0000 (19:16 -0500)]
SysLink-IPC: SLPM - AuxClk support, preliminary Idle and Constraints APIs

Support AuxClk Resource
Error Codes Rearrange
Preliminary implementation for set constraints APIs
Preliminary implementation for Idle and Suspend/Resume routines
Version update

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Miguel Vadillo <vadillo@ti.com>
Signed-off-by: Paul Hunt <hunt@ti.com>
7 years agoSysLink-IPC: IPC - Move ipu_pm shared memory to reserved section
Juan Gutierrez [Mon, 2 Aug 2010 23:43:01 +0000 (18:43 -0500)]
SysLink-IPC: IPC - Move ipu_pm shared memory to reserved section

Reserving a unique common ipu_pm memory section.
This chunk of memory is shared among all attached processors.
The memory is reserved at ipc start time instead of allocating it from
heap for each attached processor.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Miguel Vadillo <vadillo@ti.com>
Signed-off-by: Paul Hunt <hunt@ti.com>
7 years agoSysLink-IPC: Build - Configure CGT path using environment variable
Subramaniam C.A [Thu, 5 Aug 2010 07:42:18 +0000 (02:42 -0500)]
SysLink-IPC: Build - Configure CGT path using environment variable

Changed config.bld to get M3 cgt tool path from an environment variable.
Also updated the README.

Signed-off-by: Subramaniam C.A <subramaniam.ca@ti.com>
Signed-off-by: Nicolas Dechesne <n-dechesne@ti.com>