gstreamer-omap:sysbios-rpmsg.git
6 years agoSrvMgr: Add support for OMAPRPC mechanism 1.10.08.21
Alberto Aguirre [Fri, 30 Mar 2012 19:31:42 +0000 (14:31 -0500)]
SrvMgr: Add support for OMAPRPC mechanism

OMAPRPC is a generic RPC on top of Service Manager.

Signed-off-by: Erik Rainey <erik.rainey@gmail.com>
Signed-off-by: Jesse Villarreal <jesse.villarreal@ti.com>
Signed-off-by: Alberto Aguirre <a-aguirre@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoSamples: Invoke ServiceMgr_start specifically
Suman Anna [Tue, 1 May 2012 01:49:58 +0000 (20:49 -0500)]
Samples: Invoke ServiceMgr_start specifically

Executables have to specifically invoke ServiceMgr_start to
start all the service tasks registered with the ServiceMgr
module. This change is needed to support the new enhancements
implemented in the ServiceMgr module - necessary to start the
the decoupled OMX Service task.

Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoConfigs: Include the OMX Service Manager module
Suman Anna [Mon, 30 Apr 2012 23:05:27 +0000 (18:05 -0500)]
Configs: Include the OMX Service Manager module

The OMX Service Manager module has to be invoked in the
config files to link the ti.srvmgr.omx library in the
final base images, and register the OMX service with the
ServiceMgr module.

Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoSrvMgr: Enhance Service Manager to allow multiple services
Suman Anna [Thu, 19 Apr 2012 00:39:00 +0000 (19:39 -0500)]
SrvMgr: Enhance Service Manager to allow multiple services

The Service Manager module has been enhanced to allow different
services to use its infrastructure. This is done to allow other
IPC protocols to use the VirtQueue transport infrastructure
in tandem.

The OMX Service that is inherently tied into Service Manager
is now decoupled and moved out of the Service Manager code
and is built as an independent library.

This is achieved through the following:
1. The internal functions to create and delete different
   instances of a service are made public through the API,
   ServiceMgr_createService and ServiceMgr_deleteService.
   The signature of these functions remain identical to the
   previous internal functions:
     UInt32 ServiceMgr_createService(Char * name, UInt32 * endpt);
     UInt32 ServiceMgr_deleteService(UInt32 addr);

2. A new API, ServiceMgr_registerSrvTask, is added that allows
   an external library to register its service task function
   with the ServiceMgr module. The registration is expected to
   be fairly early during the base image execution. All the task
   parameters are to be initialized before registering with
   ServiceMgr.
     Bool ServiceMgr_registerSrvTask(UInt16 reserved,
                                     Task_FuncPtr func,
                                     Task_Params *taskParams)

3. A new API, ServiceMgr_start, is added that allows all the
   registered services to be started. All service registrations
   has to be done before a call to this function. The reserved
   argument is to be used for future scalability for starting
   services with different processors, and is currently
   ignored.
     UInt ServiceMgr_start(UInt16 reserved);

OMX Service is registered and included in the executable at
configuration time.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoSrvMgr: Protect header against multiple inclusions
Suman Anna [Thu, 10 May 2012 02:58:29 +0000 (21:58 -0500)]
SrvMgr: Protect header against multiple inclusions

The ServiceMgr.h is missing the protection against
multiple includes. The C++ linkage also has been
fixed alongside.

Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoSrvMgr: Cleanup types in rpmsg omx header
Suman Anna [Mon, 7 May 2012 04:16:15 +0000 (09:46 +0530)]
SrvMgr: Cleanup types in rpmsg omx header

The types in the rpmsg_omx.h have been cleaned up to use
the standard types on the SYS/BIOS side.

Signed-off-by: Pradeep Venkatasubbarao <pradeepv@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoBuild: Update to newer XDC and IPC toolset 1.10.07.20
Suman Anna [Tue, 28 Feb 2012 21:05:00 +0000 (15:05 -0600)]
Build: Update to newer XDC and IPC toolset

The build system is updated to use newer XDC (XDC 3.23.02.47) and
IPC (IPC 1.24.02.27) tools.

This newer toolset are the latest on the respective release streams.

The README has also been updated with the corresponding download
links.

Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoConfigs: Don't delete terminated tasks 1.20.00.00
Juan Gutierrez [Wed, 28 Mar 2012 23:17:29 +0000 (17:17 -0600)]
Configs: Don't delete terminated tasks

The Task.deleteTerminatedTasks option provides cleanup within
BIOS code for deleting dynamically created tasks that complete
their execution by returning from their Task function or calling
a Task_exit. The user applications should not be deleting the
terminated tasks by themselves when this option is set. The
behavior in such a case is undefined or can result in an
exception.

This option is therefore set back to the default 'false', since
the current users do use BIOS threading significantly and do
invoke Task termination functions.

Signed-off-by: Paul Hunt <hunt@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoTrace: Rename the library from SysMin to ti.trace 1.10.07.19
Suman Anna [Sun, 6 May 2012 20:58:34 +0000 (15:58 -0500)]
Trace: Rename the library from SysMin to ti.trace

The SysMin library providing host-tracing support has been
renamed to include the the usual package name in the library
name, rather than just using a module name.

Other minor cleanup changes are also included.

Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoResources: Rename the library from IpcMemory to ti.resources
Suman Anna [Sun, 6 May 2012 20:56:08 +0000 (15:56 -0500)]
Resources: Rename the library from IpcMemory to ti.resources

The IpcMemory library has been renamed to include the
the usual package name in the library name, rather
than just using a module name.

Other minor cleanup changes are also included.

Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoRCM: Rename the library from grcm to ti.grcm
Suman Anna [Sun, 6 May 2012 20:51:39 +0000 (15:51 -0500)]
RCM: Rename the library from grcm to ti.grcm

The RCM library has been renamed to include the
the usual package name in the library name, rather
than just using a module name.

The building of the library with the host-side
legacy IPC package is obsolete and has been
cleaned up as well.

Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoDEH: Rename the library from Deh to ti.deh
Suman Anna [Sun, 6 May 2012 20:35:37 +0000 (15:35 -0500)]
DEH: Rename the library from Deh to ti.deh

The DEH library has been renamed to include the
the usual package name in the library name, rather
than just using a module name.

Other minor cleanup changes are also included.

Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoIPC: Link using correct profile library
Suman Anna [Sun, 6 May 2012 20:29:40 +0000 (15:29 -0500)]
IPC: Link using correct profile library

The IPC package library linkage is fixed up to return the
library based on the current build profile of the final
executable. The 'debug' profile library was being linked
into executables previously irrespective of the profile.

Other minor cleanup is also included in the package
build step.

Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoBuild: Cleanup Power Management build and linkage
Suman Anna [Sun, 6 May 2012 20:12:26 +0000 (15:12 -0500)]
Build: Cleanup Power Management build and linkage

The PM package build style has been cleaned up to allow
flexibility. The new build style allows different library
specific attributes to be passed by using the XDC global
build objects directly. This also removes a direct
dependency on the IPC product for build.

The PM package library linkage is also fixed up to return
the library based on profile. The 'debug' profile library
was being linked into executables irrespective of the
profile previously.

Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoBuild: Cleanup HDMIWA build
Suman Anna [Sun, 6 May 2012 20:09:21 +0000 (15:09 -0500)]
Build: Cleanup HDMIWA build

The HdmiWa package build style has been cleaned up to allow
flexibility. The new build style allows different library
specific attributes to be passed by using the XDC global
build objects directly. This also removes a direct
dependency on the IPC product for build.

Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoBuild: Cleanup HwSpinlock build
Suman Anna [Sun, 6 May 2012 19:54:03 +0000 (14:54 -0500)]
Build: Cleanup HwSpinlock build

The HwSpinlock package build style has been cleaned up to allow
flexibility. The new build style allows different library
specific attributes to be passed by using the XDC global
build objects directly. This also removes a direct
dependency on the IPC product for build.

Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoBuild: Cleanup Resource Manager build
Suman Anna [Sun, 6 May 2012 19:46:42 +0000 (14:46 -0500)]
Build: Cleanup Resource Manager build

The ResMgr package build style has been cleaned up to allow
flexibility. The new build style allows different library
specific attributes to be passed by using the XDC global
build objects directly. This also removes a direct
dependency on the IPC product for build.

Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoBuild: Cleanup Service Manager build
Suman Anna [Sun, 6 May 2012 19:35:24 +0000 (14:35 -0500)]
Build: Cleanup Service Manager build

The SrvMgr package build style has been cleaned up to allow
flexibility. The new build style allows different library
specific attributes to be passed by using the XDC global
build objects directly. This also removes a direct
dependency on the IPC product for build.

Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoIPC: Rename InterruptM3 to InterruptIpu 1.10.07.18
Suman Anna [Wed, 2 May 2012 23:45:40 +0000 (18:45 -0500)]
IPC: Rename InterruptM3 to InterruptIpu

The InterruptM3 module and API have been renamed to use the
more generic InterruptIpu name. This will make it agnostic
of the M3 or M4 underneath the IPU sub-system.

Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Paul Hunt <hunt@ti.com>
Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
6 years agoTrace: Introduce line buffer for local caching
Suman Anna [Fri, 4 May 2012 01:45:04 +0000 (20:45 -0500)]
Trace: Introduce line buffer for local caching

Introduce a local line buffer to which the characters are output.
The line buffer is flushed to the external shared buffer only
when the line is filled up or when a new line is encountered.

This change re-introduces back the actual flush functionality
(without a new line) present in the baseline SysMin module.
It also allows the future scalability for a SMP system wherein
the individual cores can write to their own line buffers without
mangling the actual output buffer.

Signed-off-by: Paul Hunt <hunt@ti.com>
Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoPM: Remove redundant critical section protections
Paul Hunt [Fri, 4 May 2012 00:40:19 +0000 (19:40 -0500)]
PM: Remove redundant critical section protections

Critical section protection within the IpcPower code is currently
performed by disabling both Hwi(s) and Swi(s). The code being
protected is fairly simple and does not invoke any calls (like
Swi_post or Semaphore_pend or Task_yield) that would invoke the
SYS/BIOS scheduler. The Hwi_disable and Hwi_restore combination
by itself is good enough to provide the required atomicity, so
the Swi calls have been cleaned up.

Signed-off-by: Paul Hunt <hunt@ti.com>
Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoBuild: Allow build only for debug and release profiles 1.10.07.17
Suman Anna [Wed, 2 May 2012 01:02:44 +0000 (20:02 -0500)]
Build: Allow build only for debug and release profiles

Cleanup the config.bld to remove all the target build profiles
other than 'release' and 'debug'. The build currently also builds
some other profiles such as 'whole_program_debug', 'coverage',
'whole_program', 'profile' etc for couple of libraries.

Signed-off-by: Chris Ring <cring@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoBuild: Cleanup generated files path in various packages
Suman Anna [Sat, 5 May 2012 05:29:55 +0000 (00:29 -0500)]
Build: Cleanup generated files path in various packages

Add the folder where different build files will be generated
to the package.bld in packages missing it. This will allow the
generated folder to be deleted automatically deleted upon a
'clean' build command.

Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoBuild: Display C6x CGT info and other minor cleanup
Suman Anna [Tue, 1 May 2012 22:23:14 +0000 (17:23 -0500)]
Build: Display C6x CGT info and other minor cleanup

The Makefile has been slightly revised to print the previously
missing C6x tools information. The XDC path variable has been
updated to look like the BIOS and IPC variables.

Other minor cleanup includes deleting the missing xdep on clean,
and fixing up the indentation of different assignments.

Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoUtils: Display the debug section size trace in Hex
Suman Anna [Tue, 1 May 2012 22:23:14 +0000 (17:23 -0500)]
Utils: Display the debug section size trace in Hex

Change the debug print during the resource table patch-up
phase to print the section size in hex. The current decimal
length is not reader-friendly.

Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoIPC: Delete virtio.h
G Anthony [Thu, 29 Sep 2011 00:30:03 +0000 (17:30 -0700)]
IPC: Delete virtio.h

This Linux side file was inadvertedly left in the ipc/rpmsg directory,
and is not required.

Signed-off-by: G Anthony <a0783926@ti.com>
6 years agoSrvMgr: Initialize ServiceMgr only once
Jesse Villarreal [Wed, 28 Mar 2012 14:55:18 +0000 (09:55 -0500)]
SrvMgr: Initialize ServiceMgr only once

Avoid re-initializing service manager by using a
reference count. This allows the API to be called
by different tasks.

Signed-off-by: Jesse Villarreal <jesse.villarreal@ti.com>
Signed-off-by: Alberto Aguirre <a-aguirre@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoIPC: Fix a race condition in MessageQCopy initialization
Juan Gutierrez [Wed, 28 Mar 2012 00:22:01 +0000 (18:22 -0600)]
IPC: Fix a race condition in MessageQCopy initialization

When a task called MessageQCopy_init function, it immediately
set the curInit variable to true before starting the actual
initialization. If another task called the same function, the
curInit was true already, and proceeded as if the initialization
was already done, while the module is still being initialized.

A semaphore initialized with its count to 1 is used as a mutual
exclusion protection between the competing tasks.

Signed-off-by: Paul Hunt <hunt@ti.com>
Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
6 years agoPlatform: Fix IPU clock frequency for OMAP5
Juan Gutierrez [Fri, 20 Apr 2012 17:57:08 +0000 (12:57 -0500)]
Platform: Fix IPU clock frequency for OMAP5

The max IPU clock rate in OMAP5 is actually 212.8 MHz. This
patch fixes the OMAP5's core0 and core1 platform files to
use the correct clock rate so that SYS/BIOS code calculate
any internal clock frequencies correctly.

This also eliminates the need for applications to manually
configure the following in their config files:
    BIOS.cpuFreq.hi = 0;
    BIOS.cpuFreq.lo = 212800000;

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoResources: Use macros for carveout resource sizes
Suman Anna [Mon, 16 Apr 2012 23:40:49 +0000 (18:40 -0500)]
Resources: Use macros for carveout resource sizes

The sizes for different carveout resource type entries in the
IPU and DSP Resource Table have been replaced with macros. This
should minimize the the need to repeat platform specific
pre-compiler flags at multiple places.

Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoUtils: Remove utils README file
Subramaniam C.A [Thu, 19 Apr 2012 15:36:53 +0000 (10:36 -0500)]
Utils: Remove utils README file

This file is obsolete and hence has been removed.

Signed-off-by: Subramaniam C.A <subramaniam.ca@ti.com>
6 years agoSrvMgr: Send boot init completion notification to host 1.10.07.16
Miguel Vadillo [Mon, 30 Jan 2012 21:44:13 +0000 (15:44 -0600)]
SrvMgr: Send boot init completion notification to host

Considering the creation of the rpmsg-omx channels as the point
when the booting/initialization is complete, send a special
notification message to the host.

This message is sent from just the AppM3 (in case of IPU) and DSP
cores, so that the host side can get notified by the core that
completes the initialization last.

Signed-off-by: Miguel Vadillo <vadillo@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoIPC: Add a function to notify host upon init completion
Miguel Vadillo [Mon, 30 Jan 2012 21:30:05 +0000 (15:30 -0600)]
IPC: Add a function to notify host upon init completion

In some situations, it is good to let the host know when the
boot has completed a certain basic initialiazation.

Add a function VirtQueue_postInitDone() and the message
RP_MSG_BOOTINIT_DONE to let the host know that the processor
core has finished the initialization during the boot process.
This can be used by the host processor to use some constraints
to speed up the loading and booting of the slave processors.

Signed-off-by: Miguel Vadillo <vadillo@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoPM: Add new API to control suspend process 1.10.06.15
Shahid Akhtar [Wed, 28 Mar 2012 18:34:46 +0000 (13:34 -0500)]
PM: Add new API to control suspend process

Added new API to allow applications/tasks on IPU or DSP to
control the suspend ability on the processors they are
executing on. The slave processors ignore the SUSPEND message
if user has disabled suspend.

These API compliment the existing IpcPower_wakeLock and
IpcPower_wakeUnlock API, but also allow the clocks to be cut
for better power savings.

New API added are:
UInt IpcPower_hibernateLock()
UInt IpcPower_hibernateUnlock()
Bool IpcPower_canHibernate()

The first 2 API return the current number of tasks holding
the suspend lock, and the last API returns if the processor
is allowed to suspend or not.

Signed-off-by: Shahid Akhtar <sakhtar@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoUtils: Add suspend address in resource table 1.10.05.14
Juan Gutierrez [Fri, 30 Mar 2012 23:44:45 +0000 (17:44 -0600)]
Utils: Add suspend address in resource table

Add the suspend address as a type of resource. The actual
virtual address is extracted from the image and patched
into the resource table.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoIPC: Remove intermediate calls in the proxy interrupt functions 1.10.04.13
Suman Anna [Tue, 10 Apr 2012 22:39:26 +0000 (17:39 -0500)]
IPC: Remove intermediate calls in the proxy interrupt functions

The InterruptProxy functions are converted into macros expanding
to equivalent target-specific interrupt functions to reduce the
overhead of one extra function call. The macros are expanded
appropriately by using target-specific preprocessor compiler
flags.

Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Paul Hunt <hunt@ti.com>
6 years agoIPC: Remove unnecessary headers in OffloadM3 file
Juan Gutierrez [Thu, 29 Mar 2012 01:17:00 +0000 (19:17 -0600)]
IPC: Remove unnecessary headers in OffloadM3 file

Remove header files that were included but not used
in OffloadM3.c file.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
6 years agoIPC: Add dependency towards pm package in rpmsg package
Juan Gutierrez [Fri, 16 Mar 2012 16:30:09 +0000 (10:30 -0600)]
IPC: Add dependency towards pm package in rpmsg package

When Idle functions are taken away or commented out from the common
configuration, the compiler is throwing a linker error (not finding
PM symbols) as it does not see any explicit dependency due to linker
optimizations.

An explicit dependency is added in the rpmsg package towards the pm
package to alleviate this problem.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
6 years agoConfigs: Enable named instances for the Task module
Juan Gutierrez [Fri, 23 Mar 2012 22:38:16 +0000 (16:38 -0600)]
Configs: Enable named instances for the Task module

By enabling the namedInstance field in the Task module, the name
associated with the task at the moment of creation will persist.
This improves the usability of tools that display instance objects.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
6 years agoSamples: Update host samples to work for both Ducati & DSP
Suman Anna [Tue, 13 Mar 2012 00:07:10 +0000 (19:07 -0500)]
Samples: Update host samples to work for both Ducati & DSP

Updated both the omx_sample and omx_benchmark sample source code to
be able to take in an additional argument to run the sample with
either of the Ducati processors or the DSP processor.

The scripts and README have also been updated. Changes are also made
to have these files copied one level down from where they are currently
required to be copied.

Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Chandra Sekhar.Anagani <chandu@ti.com>
6 years agoSamples: Update test_omx fxnDouble for proper OMX packet
Angela Stegmaier [Tue, 20 Dec 2011 19:03:45 +0000 (13:03 -0600)]
Samples: Update test_omx fxnDouble for proper OMX packet

Updated the fxnDouble function in test_omx to get the proper
args from the data packet. The first four bytes in the packet
are the map type and the args data starts after that.

Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
6 years agoServiceMgr: Use different omx-channel name for each processor 1.10.04.12
Juan Gutierrez [Mon, 5 Sep 2011 22:35:04 +0000 (17:35 -0500)]
ServiceMgr: Use different omx-channel name for each processor

Publish the OMX service using a different channel name
for each processor. This helps the host identify the exact
remote processor requesting the omx channel creation, and
allows it to create the corresponding driver.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
6 years agoResources: Add DMM/TILER register space to Resource Table 1.10.03.11
Suman Anna [Tue, 17 Jan 2012 10:30:23 +0000 (11:30 +0100)]
Resources: Add DMM/TILER register space to Resource Table

The DMM/TILER register space is added to the resource table, so that
it can be programmed into the L2MMU, and is accessible by Ducati and
DSP. The space is already configured properly in the AMMU.

Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoIPC: Throttle cache flushing in VirtQueue_cacheWb
Cris Jansson [Thu, 1 Mar 2012 01:18:58 +0000 (19:18 -0600)]
IPC: Throttle cache flushing in VirtQueue_cacheWb

VirtQueue_cacheWb() will rapidly flush the cache unless
it monitors the time of the last flush and avoids flushing
until a reasonable amount of time has passed.
This patch adds the logic to do that.

Signed-off-by: Cris Jansson <cjansson@ti.com>
6 years agoResMgr: Return error on NULL handle
Cris Jansson [Thu, 1 Mar 2012 19:16:55 +0000 (13:16 -0600)]
ResMgr: Return error on NULL handle

IpcResource_disconnect() is not returning when it
detects that a NULL handle has been passed to the function.
This patch adds the appropriate return statement.

Signed-off-by: Cris Jansson <cjansson@ti.com>
6 years agoRCM: Add missing fields to RcmServer_Struct
Cris Jansson [Tue, 28 Feb 2012 23:36:34 +0000 (17:36 -0600)]
RCM: Add missing fields to RcmServer_Struct

The opaque RcmServer_Struct does not match the internal
working structure RcmServer_Object when USE_MESSAGEQCOPY is
defined.  The missing fields are added to make the structure
definitions the same.  This fixes an assert in RcmServer_init()
when the struct sizes do not match.

Signed-off-by: Cris Jansson <cjansson@ti.com>
6 years agoUtils: Assign an entry point for DSP when not provided 1.10.03.10
Juan Gutierrez [Wed, 7 Mar 2012 17:53:28 +0000 (11:53 -0600)]
Utils: Assign an entry point for DSP when not provided

Symbol address of ti_sysbios_family_c64p_Hwi0 is assigned
as the entry point for DSP in genrprc utility, when no entry
point information is passed to genrprc utility. This symbol
branches off to the c_int00, and also satifies the 1K alignment
requirement for the DSP boot address.

This change is done in genrprc so that base images built outside
of sysbios-rpmsg can easily be used to generate a tesla binary
without having to specify any special entry point, in case if
they are not aware of the alignment restrictions. An user passed
entry point is still honored to retain the flexibility.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoBuild: Set proper entry point for DSP
Juan Gutierrez [Tue, 6 Mar 2012 23:22:17 +0000 (17:22 -0600)]
Build: Set proper entry point for DSP

The entry point is set by default to point to c_int00 for
all targets. However, DSP has an additional alignment
requirement for the boot address to be aligned on a 1K
boundary. The ti_sysbios_family_c64p_Hwi0 is already
aligned by SYS/BIOS on a 1K boundary. This is the address
of vector 0 and branches off to c_int00.

This patch sets this symbol as the entry point for DSP
through a linker option for all sysbios-rpmsg builds,
thereby satisfying the alignment requirement.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoDocs: Cleanup README
Suman Anna [Mon, 12 Mar 2012 16:51:07 +0000 (11:51 -0500)]
Docs: Cleanup README

Cleaned up the README document to remove obsolete links,
and added some more details about the TMS470 Code Gen
Tools.

Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoBuild: Improve flexibility for picking tool versions
Suman Anna [Mon, 12 Mar 2012 17:02:53 +0000 (12:02 -0500)]
Build: Improve flexibility for picking tool versions

The Makefile has been enhanced to be able to pick the BIOS
tool versions through parameters to the 'make' command. The
previous method of choosing custom versions through exported
shell environment variables is still valid. The parameters
to 'make' are the same as the environment variables, and
would override the corresponding environment variables.

Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoResources: Add support for both OMAP4 & OMAP5 platforms 1.10.03.09
Juan Gutierrez [Thu, 23 Feb 2012 01:34:19 +0000 (19:34 -0600)]
Resources: Add support for both OMAP4 & OMAP5 platforms

Add an OMAP5 macro based on the platform information. This
will facilitate the use of different memory maps for OMAP4
and OMAP5 platforms.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoPlatform: Increase OMAP5 IPU Core1 heap by 60MB
Suman Anna [Thu, 23 Feb 2012 01:37:01 +0000 (19:37 -0600)]
Platform: Increase OMAP5 IPU Core1 heap by 60MB

This patch increases the IPU Core1 heap section by 60MB to enable
14MP Camera ZSL use-case on OMAP5 platform.

The IO buffer space (1D buffers) has been moved from 0x88000000
to 0x90000000 to accomodate this increased size.

Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoUtils: Build default target binaries for OMAP5 1.10.02.08
Suman Anna [Sat, 11 Feb 2012 03:42:37 +0000 (21:42 -0600)]
Utils: Build default target binaries for OMAP5

Two default binaries, omap5-ducati-m3.bin & omap5-tesla-dsp.bin,
are built to support OMAP5 M4 and DSP targets respectively. The
omap5-ducati-m3.bin binary is still built in M3 compatible mode.

Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoBuild: Enable build for OMAP5 platforms
Suman Anna [Sat, 11 Feb 2012 03:49:17 +0000 (21:49 -0600)]
Build: Enable build for OMAP5 platforms

Enables the build for OMAP5 platforms, which may have a
different memory layout.

Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
6 years agoSamples: Add build support for OMAP5 targets
Suman Anna [Sat, 11 Feb 2012 03:38:41 +0000 (21:38 -0600)]
Samples: Add build support for OMAP5 targets

Added build support for the existing samples to build
for OMAP5 targets using respective platform files and
configuration files.

Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
6 years agoConfigs: Add common configuration files for OMAP5
Suman Anna [Sat, 11 Feb 2012 03:32:19 +0000 (21:32 -0600)]
Configs: Add common configuration files for OMAP5

Add the common configuration files used by samples and
other baseimages for OMAP5. The files include a sample
AMMU configuration file and IPC configurations satisfying
the OMAP5 M4 and DSP platform targets.

Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
6 years agoPlatform: Add OMAP5 platform targets
Suman Anna [Sat, 11 Feb 2012 03:23:53 +0000 (21:23 -0600)]
Platform: Add OMAP5 platform targets

Add separate OMAP5 target platform modules that define
the default memory maps. These regions will be used by
the build process to place the ELF sections appropriately.

These would be updated later to build for proper M4 ISA
(requires newer toolset).

Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
6 years agoSamples: Enable Unicache and AMMU for DSP samples 1.10.02.07
Juan Gutierrez [Mon, 5 Sep 2011 19:34:36 +0000 (14:34 -0500)]
Samples: Enable Unicache and AMMU for DSP samples

Enable Unicache for DSP samples, using the TeslaAMMU
configuration file.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoConfigs: Add an AMMU configuration file for DSP
Juan Gutierrez [Mon, 5 Sep 2011 19:34:36 +0000 (14:34 -0500)]
Configs: Add an AMMU configuration file for DSP

Add an example AMMU configuration file for DSP. This programs
the AMMU entries and enables Cache.

Sample applications can include this file or a modified version
of this file to enable Cache in their base-images.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Jesse Villarreal <jesse.villarreal@ti.com>
6 years agoBuild: Select build targets based on CGT environment variables 1.10.02.06
Juan Gutierrez [Mon, 5 Mar 2012 22:40:05 +0000 (16:40 -0600)]
Build: Select build targets based on CGT environment variables

The build targets are chosen depending on whether its code generation
tools environment variable is set or not. This enables an user to do
a minimal build only for the target that the user is interested in.

In a clean build:
- If only TMS470CGTOOLPATH is set, only M3 target will be built.
- If only C6000CGTOOLPATH is set, only C64 target will be  built
- If both tool path environment variables are set, both C64T and M3
  targets will be built

In a dirty build:
- In order to enable or disable a target, an user would need to export
  or unset the corresponding tool path variable, and touch the
  src/config.bld to have the change become effective.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoUtils: Check and pass only the defined arguments
Juan Gutierrez [Tue, 28 Feb 2012 21:41:40 +0000 (15:41 -0600)]
Utils: Check and pass only the defined arguments

Warnings were returned when building for just one core target
(like dsp). Errors were due to uninitialized arguments for
core1. There is no need for checking these arguments if core1
is not being built.

This patch defines only the arguments that would be used based
on input files and passes these to genbase and mkheader
utilities.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoBuild: Suppress "incomplete type not allowed" warning for DSP
Juan Gutierrez [Mon, 31 Oct 2011 21:02:41 +0000 (16:02 -0500)]
Build: Suppress "incomplete type not allowed" warning for DSP

DSP uses a different compiler toolchain (C6000), and throws a
warning "incomplete type not allowed" when an array is declared
without defining the array size. This option is already enabled
for the M3 target.

This warning is suppressed by adding a specific compiler option.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
6 years agoTrace: Fix variable alignment when building for DSP
Juan Gutierrez [Thu, 20 Oct 2011 17:29:43 +0000 (12:29 -0500)]
Trace: Fix variable alignment when building for DSP

writeIdx and readIdx variables are placed at the the end of
the trace buffer. They should be allocated contiguously. So
the alignment should be the same as the size of the variables
(one word). Not specifying the alignment when allocating these
variables was working for M3 but not for DSP. Changing the
alignment to 0x4 (word size), both the variables are allocated
and aligned properly for both M3 and DSP.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
6 years agoBuild: Generate a default firmware binary for DSP
Juan Gutierrez [Wed, 17 Aug 2011 21:20:14 +0000 (16:20 -0500)]
Build: Generate a default firmware binary for DSP

Build for the C64T platform is enabled. The test_omx_dsp sample
is used as the default source to generate the tesla-dsp.bin image
for DSP.

For DSP, the entry point ti_sysbios_family_c64p_Hwi0 needs to be
passed explicitly as an argument to the image generator in order
to properly get the initial boot address.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
6 years agoConfigs: Include DEH module in DSP baseimage
Juan Gutierrez [Mon, 31 Oct 2011 21:51:39 +0000 (16:51 -0500)]
Configs: Include DEH module in DSP baseimage

Include the DEH module for handling DSP errors. It also saves
the excpetion data into the error buffer.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
6 years agoResources: Include crash-dump buffer in DSP resource table
Juan Gutierrez [Mon, 31 Oct 2011 21:48:21 +0000 (16:48 -0500)]
Resources: Include crash-dump buffer in DSP resource table

Add the TYPE_CRASHDUMP to include the crash-dump buffer
for DSP.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
6 years agoPlatform: Add Exception region for DSP
Juan Gutierrez [Mon, 31 Oct 2011 21:41:14 +0000 (16:41 -0500)]
Platform: Add Exception region for DSP

EXC_DATA region is reserved to contain the exception and
crash dump data. The region is defined just before the
PM_DATA section, and is placed towards the end of the
1MB reserved for the IPC region.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoPM: Set wake-up generation capability for GPT6 on DSP
Juan Gutierrez [Mon, 31 Oct 2011 21:43:56 +0000 (16:43 -0500)]
PM: Set wake-up generation capability for GPT6 on DSP

GPT6 is used as the watchdog timer in DSP. In order to
be able to wake up DSP, the corresponding WUGEN bit must
be set.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
6 years agoDEH: Add exception handling support for DSP
Juan Gutierrez [Mon, 31 Oct 2011 21:37:50 +0000 (16:37 -0500)]
DEH: Add exception handling support for DSP

Watchdog and error handling support has been added for DSP.
GPT 6 is used as the watchdog timer.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoSamples: Add support to build a sample for DSP
Juan Gutierrez [Wed, 17 Aug 2011 21:14:18 +0000 (16:14 -0500)]
Samples: Add support to build a sample for DSP

Add support to build a BIOS-side sample for OMAP DSP processor.
This leverages the existing test_omx sample and builds it for
the DSP target as well. This sample enables to verify basic
messaging between DSP and the host.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
6 years agoConfigs: Initial commit for common DSP configuration files
Juan Gutierrez [Wed, 17 Aug 2011 21:08:40 +0000 (16:08 -0500)]
Configs: Initial commit for common DSP configuration files

Add a common configuration file that can be used by samples
and other DSP baseimages. The files include a common Tesla
configuration file satisfying the OMAP4 dsp platform target.

The configuration uses GPT5 as the source for System Tick on
the DSP core. The configuration is done manually to enable the
WUGEN bit and set the idlemode as smart-idle with wake-up. This
way, the GPT5 will be able to generate an interrupt and wakeup
the DSP core even if the sub-system has been gated.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoResources: Add DSP resource table
Juan Gutierrez [Wed, 17 Aug 2011 20:36:41 +0000 (15:36 -0500)]
Resources: Add DSP resource table

Add a resource table for DSP with all the memory information and
other required resources. The proper mappings for peripheral and
data areas is specified by the physical address. The ipc, code
and data sections are assigned to fixed physical addresses too
just along-side the carveout memory regions reserved for Ducati
MM use-cases.

Additional macros were also defined to identify sub-1M sizes, and
are used in specifying the sizes for various DSP memory regions.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Jesse Villarreal <jesse.villarreal@ti.com>
6 years agoPlatform: Rearrange the memory sections for DSP
Juan Gutierrez [Wed, 17 Aug 2011 20:23:16 +0000 (15:23 -0500)]
Platform: Rearrange the memory sections for DSP

Add specific sections for code, data, heap, Trace and PM
regions that mimic the arrangement made on Ducati. The
section sizes have also been increased to a default minimal
sizes.

This memory map is designed to use a total of 4MB of memory
- 1 MB for code & data, 2 MB for heap, and 1MB for all the
IPC sections.

The TRACE_BUF section is used to store the DSP traces, and
have them visible to the host processor. The PM_DATA section
is reserved specifically for code to save and restore the
context used to resume the DSP after hibernation.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoPM: Add support for DSP power managment
Juan Gutierrez [Wed, 17 Aug 2011 20:52:36 +0000 (15:52 -0500)]
PM: Add support for DSP power managment

A new IpcPowerDsp module is added that manages the PM aspects
of the DSP processors. This module handles the request from the
PM framework on the MPU-side side to suspend DSP. Other features
supported by this module include Retention, DSP Context Save &
Restore, and power-related 'idle' instruction.

The function prototypes have identical signatures to those
defined in in IpcPower.c. However, the latter file caters only
to Ducati. The processor differences are resolved by picking up
the proper file at build time by package.bld. Each package will
include only its IpcPower functions.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoResMgr: Build ResMgr module for C64T
Juan Gutierrez [Mon, 5 Sep 2011 22:26:07 +0000 (17:26 -0500)]
ResMgr: Build ResMgr module for C64T

Enable the build of the ResMgr module for C64T platform.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
6 years agoIPC: Add support for DSP over the VirtQueue infrastructure
Juan Gutierrez [Mon, 22 Aug 2011 14:47:13 +0000 (09:47 -0500)]
IPC: Add support for DSP over the VirtQueue infrastructure

Add support for establishng communication between DSP and
MPU through VirtQueue. The VirQueue base id for DSP is 4.

When registering the mbox interrupt in DSP, the irq status
should be cleared before enabling the interrupt itself. The
interrupt edge signal is missed if a mbox message is already
enqueued before enabling the interrupt.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoIPC: Rearrange mboxId to procId mappings 1.10.01.05
Juan Gutierrez [Mon, 22 Aug 2011 15:56:29 +0000 (10:56 -0500)]
IPC: Rearrange mboxId to procId mappings

MPU-side uses a pair of mailboxes for duplex communication between
MPU and a remote processor. The distribution is as follows:
    mailbox_1:
        mpu --> rproc1 : mbox 0
        mpu <-- rproc1 : mbox 1

    mailbox_2
        mpu <-- rproc2 : mbox 2
        mpu --> rproc2 : mbox 3

rproc1 is used for abstracting both M3 cores in one entity. mbox0
& mbox1 are properly reserved for Rx/Tx in Core0. However, mbox 2
is used for Rx in Core1 due to the rerouting logic. This is not
correct since mbox2 should be reserved for the second rproc, DSP.
This patch assigns mbox 4 for Rx in Core1 to avoid conflicts when
both remoteprocs (M3's and DSP) are enabled together.

The mbox nomenclature has also been modified to reflect the sending
direction.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoIPC: Add a proxy interface for handling proc specific interrupts
Juan Gutierrez [Sat, 20 Aug 2011 00:23:37 +0000 (19:23 -0500)]
IPC: Add a proxy interface for handling proc specific interrupts

The InterruptProxy interface provides a thin layer of abstraction
for using the same functions in common source code to send, clear,
register, enable and disable mbox interrupts, irrespective of the
type of processor - DSP or M3.

Interrupt-specific calls are replaced by the generic InterruptProxy
interface functions. The functions that handle the mbox interrupts
for DSP and M3 are still defined in InterruptDsp and InterruptM3
files respectively.

The processor differentiation is resolved at build time by
package.bld. Each package will link against the proper processor
specific functions.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoBuild: Provide Makefile extensibility for custom BIOS & IPC versions 1.10.01.04
Suman Anna [Tue, 28 Feb 2012 20:36:29 +0000 (14:36 -0600)]
Build: Provide Makefile extensibility for custom BIOS & IPC versions

Provide build extensibility to choose your own BIOS or IPC versions.
This would allow an user easier build integration without having to
modify the Makefile for either of BIOS or IPC versions.

The Makefile extensibility for XDC is already in place, and it is
now provided for BIOS and IPC as well through the environment
variables BIOSVERSION & IPCVERSION. These are optional, and if not
defined, the build will pick up the default versions defined in the
Makefile.
    Eg:
        export BIOSVERSION=bios_6_32_01_38
        export IPCVERSION=ipc_1_23_01_26

The README has also been updated to reflect the latest changes.

Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoUtils: Handle non-annotated tags for versioning
Suman Anna [Tue, 28 Feb 2012 20:24:18 +0000 (14:24 -0600)]
Utils: Handle non-annotated tags for versioning

All tags in sysbios-rpmsg are annotated by default, but this
may not be true for all the derived trees or the source trees
of the final base-image. The git describe command used in the
script to generate the versioning has been fixed to handle
plain tags as well.

Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Jesse Villarreal <jesse.villarreal@ti.com>
6 years agoIPC: Invoke OffloadM3 calls only for M3 target
Juan Gutierrez [Tue, 28 Feb 2012 21:33:44 +0000 (15:33 -0600)]
IPC: Invoke OffloadM3 calls only for M3 target

A new macro M3_ONLY is defined and is used to compile in the
OffloadM3 calls in the VirtQueue module.

The OffloadM3 module is meaningful only on Ducati, and this
macro is defined for M3 target only to avoid building or
linking in this module for DSP or any other non-M3 targets.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoHDMIWA: Add a solution for excessive ACR packet reduction problem 1.10.01.03
Deepa Gowdru [Fri, 3 Feb 2012 06:59:55 +0000 (12:29 +0530)]
HDMIWA: Add a solution for excessive ACR packet reduction problem

A HW bug in OMAP4430 ES2.0, 2.1 & 2.2 will send excessive ACR Packets
than necessary and leads to AVR inter-op issues and to "CTS Interval"
compliance failures. A SW solution is implemented in Ducati code to
overcome this problem by controlling the ACR_CTRL register using
programmable timer interrupts. The solution is implemented on the BIOS
side due to much more promising interrupt latencies.

Signed-off-by: vamsi krishna k <x0093442@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Axel Castaneda Gonzalez <x0055901@ti.com>
Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
6 years agoSamples: Remove resource table trace from Core0 samples 1.10.00.02
Juan Gutierrez [Fri, 2 Dec 2011 17:39:04 +0000 (11:39 -0600)]
Samples: Remove resource table trace from Core0 samples

In order to have the linker include the resource table in the
baseimage, the resource variable needs to be used in some form.
Otherwise the optimization in the linker detects that this is a
non-referenced variable and removes it from the baseimage. To
alleviate this, a dummy trace was used to make sure the resource
table section is present in the firmware binary.

The new IpcMemory module inherently adds this trace, and so the
trace in SysM3 samples is no longer required and is removed.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
6 years agoConfigs: Include the IpcMemory module
Juan Gutierrez [Fri, 2 Dec 2011 17:36:17 +0000 (11:36 -0600)]
Configs: Include the IpcMemory module

Pull in the IpcMemory module that defines the BIOS
Resource Table. The Resource Table is automatically
linked in now by using this module, and is placed at
a common address for the two M3 cores. There is no
need for using a specific linker section mapping in
the base image configuration files.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
6 years agoResources: Introduce new IpcMemory module
Juan Gutierrez [Fri, 2 Dec 2011 17:23:43 +0000 (11:23 -0600)]
Resources: Introduce new IpcMemory module

A new IpcMemory module is added to provide address translation
functions operating on the resource table. The IpcMemory module
now inherently includes the resource table as part of the module.
The table is statically created and allocated in the address
specified by IpcMemory.loadAddr. Default address is 0x3000.

Alternatively, the table location could be specified by segment.
If a valid segment is assigned to IpcMemory.loadSegment, the
base address of that segment will be used as the load address
overridng whatever value is assigned to IpcMemory.loadAddr.

The APIs provided by this module for translating virtual to
physical addresses and vice-versa are:
    Int IpcMemory_virtToPhys(UInt32 va, UInt32 *pa)
    Int IpcMemory_physToVirt(UInt32 pa, UInt32 *va)

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoSamples: Use a macro for delay time in ResMgr sample
Suman Anna [Fri, 16 Dec 2011 17:58:35 +0000 (11:58 -0600)]
Samples: Use a macro for delay time in ResMgr sample

Defined a new macro for the delay used in the ResMgr sample.
This should allow this delay to be changed easily, if the
BIOS clock tickPeriod is changed.

Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoIPC: Add offload infrastructure 1.10.00.01
Sameer Venkatraman [Wed, 19 Oct 2011 07:33:08 +0000 (02:33 -0500)]
IPC: Add offload infrastructure

Add simple offloading mechanism so Core1 (AppM3) can execute
arbitrary one argument functions on Core0 (SysM3). The functions
would still reside and be built with the AppM3 baseimage.

This is a temporary solution until a proper inter core communication
mechanism is established. The current solution is designed by
defining new Mailbox message payloads, and having the VirtQueue stack
treat these messages specially.

Change-Id: I28ff44196eaf59b05edfe98201156252851807af
Signed-off-by: Sameer Venkatraman <sameerv@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Alberto Aguirre <a-aguirre@ti.com>
6 years agoSamples: Update test_omx sample for proper OMX packet 1.00.09.45 1.10.00.00
Chandra Sekhar.Anagani [Tue, 22 Nov 2011 23:16:29 +0000 (17:16 -0600)]
Samples: Update test_omx sample for proper OMX packet

Updated the test_omx sample to copy the component name
correctly in the GetHandle offload function, based on the
offset in the OMX Packet

Signed-off-by: Chandra Sekhar.Anagani <chandu@ti.com>
6 years agoSamples: Update host sample to work with latest rpmsg-omx
Subramaniam C.A [Tue, 30 Aug 2011 16:58:20 +0000 (11:58 -0500)]
Samples: Update host sample to work with latest rpmsg-omx

Updated the omx_sample to be in line with the latest rpmsg-omx
implementation. The rpmsg-omx driver parses the data packet being
sent to perform verification and translation of any buffer handles.
The number of buffer handles being passed in the buffer is expected
at the beginning of the data payload in the omx packet.

Signed-off-by: Anagani Chandra <chandu@ti.com>
Signed-off-by: Subramaniam C.A <subramaniam.ca@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoTrace: Change StackDbg to BSD license
Iliyan Malchev [Tue, 15 Nov 2011 21:47:02 +0000 (15:47 -0600)]
Trace: Change StackDbg to BSD license

The StackDbg module license has been changed to BSD.

Signed-off-by: Iliyan Malchev <malchev@google.com>
Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
6 years agoBuild: Add zero_init=off flag to ducati build options 1.00.09.44
G Anthony [Fri, 5 Aug 2011 23:10:44 +0000 (16:10 -0700)]
Build: Add zero_init=off flag to ducati build options

This build option turns off zero initialization of uninitialized
sections, and greatly reduces the boot time, both on target devices
as well as emulator platforms.

Signed-off-by: G Anthony <a0783926@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoResMgr: Serialize messages to the IPC RM server
Fernando Guzman Lugo [Thu, 15 Sep 2011 09:21:44 +0000 (04:21 -0500)]
ResMgr: Serialize messages to the IPC RM server

Serialize send and receive messages sent to IPC RM server to avoid
getting wrong resource id back in a multi-threaded scenario.

Signed-off-by: Fernando Guzman Lugo <fernando.lugo@ti.com>
6 years agoUtils: Add tool dependencies in the firmware header
Juan Gutierrez [Wed, 19 Oct 2011 21:34:59 +0000 (16:34 -0500)]
Utils: Add tool dependencies in the firmware header

Extract the directory names of the tools used to build the
core images. The names are appended as part of the version
in the header of the firmware binary.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoUtils: Fix firmware versioning when run from other directories 1.00.08.43 1.00.09.43
Suman Anna [Wed, 19 Oct 2011 17:52:24 +0000 (12:52 -0500)]
Utils: Fix firmware versioning when run from other directories

The current firmware versioning logic has been fixed to give out
the correct sysbios-rpmsg version information when the genrprc
utility is run from a different directory.

Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoUtils: Append version in firmware header
Juan Gutierrez [Mon, 17 Oct 2011 22:54:07 +0000 (17:54 -0500)]
Utils: Append version in firmware header

Use git describe command to identify the core0, core1 and
sysbios-rpmsg version used to create the firmware binary.

The M3 baseimages (xem3's) are expected to reside in a git
repository. Copying the same binaries to an external folder
and generating the firmware binary using the baseimages from
that external folder will not give out the desired information.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
6 years agoPM: Cleanup IpcPower initialization 1.00.08.42
Suman Anna [Wed, 12 Oct 2011 22:07:53 +0000 (17:07 -0500)]
PM: Cleanup IpcPower initialization

The IpcPower module initialization sequence has been cleaned
up to fix minor issues.

Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoGates: Initialize HwSpinlock module state
Suman Anna [Wed, 12 Oct 2011 21:34:13 +0000 (16:34 -0500)]
Gates: Initialize HwSpinlock module state

The HW Spinlock module needs to be initialized to avoid having
invalid handles at the beginning.

Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoIPC: Initialize queueRegistry array to NULL
Fernando Guzman Lugo [Wed, 12 Oct 2011 18:49:58 +0000 (13:49 -0500)]
IPC: Initialize queueRegistry array to NULL

The array needs to be initialized to NULL to avoid having invalid
values at the beginning.

Signed-off-by: Fernando Guzman Lugo <fernando.lugo@ti.com>
6 years agoIPC: Always notify for every new vring buffer sent by host
Juan Gutierrez [Wed, 12 Oct 2011 16:53:28 +0000 (11:53 -0500)]
IPC: Always notify for every new vring buffer sent by host

After receiving a notification for a new message from the host,
the guest loops and retrieves all the available messages. While
inside the loop and checking for new messages, the guest sets
the vring flag to NO_NOTIFY. This flag tells the host to not
notify the guest if a new message is put in shared memory. As
long as the guest is still inside the loop, new incoming
messages will be discovered without the need of being notified.
When no no more new messages are detected in shared memory, the
guest will set the vring flag as NOTIFY and gets out of the loop.

There is a small latency between the time the guest sets the flag
in shared memory and the time this value is properly read by the
host. Due to this latency, the guest could miss a notification
and thereby a new message, as the host could see the flag as
NO_NOTIFY and decides not to send an interrupt while the guest
is getting out of the loop and changing the flag value to NOTIFY.

This leads to the shared memory having a new message without the
guest never being aware as it never received a notification. The
guest will wait until next notification from the host. However,
this may result in a application deadlock as the host might never
send another message.

In order to avoid the above corner case, it is better to let the
host always notify the guest whenever a new message intended for
the guest is put in shared memory.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
6 years agoBuild: Turn off cinit compression
Suman Anna [Mon, 10 Oct 2011 18:57:41 +0000 (13:57 -0500)]
Build: Turn off cinit compression

Add a linker option to turn off cinit compression - this is done
to improve the boot-time of the ducati image. This results in
slightly larger images, but the loading of this increased size
is quicker than the decompressing during the boot.

Signed-off-by: Suman Anna <s-anna@ti.com>