gstreamer-omap:sysbios-rpmsg.git
5 years agoIPC: Extend VirtQueue slave API
Suman Anna [Thu, 3 May 2012 22:58:14 +0000 (17:58 -0500)]
IPC: Extend VirtQueue slave API

The following changes have been made to the VirtQueue API used by
the slave:
  1. Add a vqId parameter to VirtQueue_create to make the index of
     the vq explicit and not depending on the invocation order.
  2. Add a len param to VirtQueue_addUsedBuf so users can control it.
  3. Add a *len param to VirtQueue_getAvailBuf so users are notified
     with the amount of received data

The MessageQCopy module which currently uses the VirtQueue API has
also been modified to adapt the new API

Signed-off-by: Ohad Ben-Cohen <ohad@wizery.com>
Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
5 years agoIPC: Correct VirtQueue_getAvailBuf based on review
G Anthony [Thu, 3 May 2012 20:30:12 +0000 (15:30 -0500)]
IPC: Correct VirtQueue_getAvailBuf based on review

A review of VirtQueue revealed the index to the available ring
buffer was being calculated differently than lguest from which
it was modelled. It worked given the current usage model, but
to be more correct, it should be updated to match what Linux
side does.

This change was verified to work by asserting that head index
was the same in both cases under sample tests. A minor trace
change to display the ring.avail addr is also added.

Signed-off-by: G Anthony <a0783926@ti.com>
Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
5 years agoMerge branch 'rpmsg-1.20' into master
Suman Anna [Wed, 23 May 2012 03:48:26 +0000 (22:48 -0500)]
Merge branch 'rpmsg-1.20' into master

Merged 1.20.02.04 into master in preparation for a
newer version of sysbios-rpmsg to support SMP/BIOS
with v3.4 kernel.

Conflicts:
src/ti/examples/srvmgr/resmgr_task.c
src/ti/resources/IpcMemory.xdt
src/ti/resources/IpcMemory.xs
src/ti/resources/package.bld
src/ti/resources/package.xs
src/ti/resources/rsc_table.h

Signed-off-by: Suman Anna <s-anna@ti.com>
5 years agoSamples: Update the ResMgr sample to check for proper status 1.20.02.04 2.00.00.00
Suman Anna [Thu, 5 Apr 2012 18:43:45 +0000 (13:43 -0500)]
Samples: Update the ResMgr sample to check for proper status

Resmgr Sample is modified to check for proper return status for
each of the resource request and release function calls. The sample
now prints an easy-to-read succeeded or failed status with the
corresponding status codes for various combinations of the resource
and constraints requests.

The sample has also been updated properly to support the different
resource request variations for OMAP5.

Signed-off-by: Chandra Sekhar.Anagani <chandu@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
5 years agoIPC: Handle unknown mbox messages correctly
Juan Gutierrez [Thu, 3 May 2012 21:31:30 +0000 (16:31 -0500)]
IPC: Handle unknown mbox messages correctly

The VirtQueue ISR function interprets a certain set of mailbox
messages, and all others as a notification of unprocessed
message(s) on a VirtQueue indicated by the value of the
mailbox message.

A check is added to verify that such index received is within the
valid virtqueue index range. This check prevents any out-of-bound
array accesses and related potential crashes/hangs.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
5 years agoIPC: Rename the vring buffer macros and variables
Suman Anna [Sat, 12 May 2012 22:30:44 +0000 (17:30 -0500)]
IPC: Rename the vring buffer macros and variables

The vring macros and variables used for defining the locations of
the vring buffers are virtual addresses (or device addresses),
and hence have been renamed appropriately.

Signed-off-by: Suman Anna <s-anna@ti.com>
5 years agoResMgr: Correct for coding style in internal structures
Suman Anna [Sun, 13 May 2012 16:15:36 +0000 (11:15 -0500)]
ResMgr: Correct for coding style in internal structures

The internal structures and enums used by ResMgr have
been adjusted for the SYS/BIOS coding style. The enums
in the exposed header are not being change to not
break compatibility.

Signed-off-by: Suman Anna <s-anna@ti.com>
5 years agoSrvMgr: Add support for OMAPRPC mechanism 1.20.02.03
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.

Simultaneous support for non-SMP and SMP-mode libraries has
also been added.

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>
5 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>
5 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>
5 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.

Simultaneous support for non-SMP and SMP-mode libraries has
also been added.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
5 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>
5 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>
5 years agoBuild: Update to newer XDC and IPC toolset 1.20.01.02
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,
and allow a single unified version of XDC and IPC tools between
the SMP and non-SMP versions.

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

Signed-off-by: Suman Anna <s-anna@ti.com>
5 years agoBuild: Cleanup SMP-mode files properly
Suman Anna [Thu, 10 May 2012 00:42:58 +0000 (19:42 -0500)]
Build: Cleanup SMP-mode files properly

The BUILD_SMP variable has to be defined and have a value of
1 to define a SMP build. This has to be passed for both the
build and clean commands. The xdc clean invocation is missing
this and has been fixed.

Signed-off-by: Suman Anna <s-anna@ti.com>
5 years agoTrace: Use proper locking for trace buffers in SMP mode
Suman Anna [Wed, 9 May 2012 00:55:44 +0000 (19:55 -0500)]
Trace: Use proper locking for trace buffers in SMP mode

SysMin has a line buffer for each core and a module-wide
shared buffer, common to both the cores and used to flush
out line buffers one at a time. The tracing functionality
depends on locking of these buffers properly. The line buffer
is protected by disabling local core interrupts, and the
shared buffer is protected by acquiring a system lock.

The current code is re-enabling the local core interrupts
before checking whether the line buffer needs flushing. This
opens up a small window for the line buffer to be overwritten
by a different task or interrupt while the current thread is
waiting for the system lock to flush the core line buffer.
This is fixed by enabling the local core interrupts properly
after checking on the flush condition. Releasing the system
gate re-enables the core interrupts automatically, so there
is no need for enabling local interrupts specifically when
flushing the line buffer.

Signed-off-by: Suman Anna <s-anna@ti.com>
5 years agoBuild: Add build support for IPU platforms in SMP-mode 1.20.01.01
Juan Gutierrez [Wed, 28 Mar 2012 00:08:09 +0000 (18:08 -0600)]
Build: Add build support for IPU platforms in SMP-mode

The build for SMP-mode IPU target is enabled for both OMAP4
and OMAP5 platforms by configuring the build system to an
exclusive SMP build mode:
   bash$ make smp_config

The proper BIOS and XDC versions that support SMP-mode are
selected automatically when the above configuration is chosen
overriding the non-SMP versions. Only the IPU SMP targets are
built upon issuing the usual build command:
   bash$ make

For going back to the default non-smp configuration
next command should be used:
   bash$ make unconfig

The SMP and regular mode binaries can be built by invoking
the build twice without doing a clean build, but only
changing the config.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Paul Hunt <hunt@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
5 years agoUtils: Build default target binaries for IPU SMP-mode
Juan Gutierrez [Fri, 16 Mar 2012 16:40:36 +0000 (10:40 -0600)]
Utils: Build default target binaries for IPU SMP-mode

Two default SMP-mode binaries for IPU, smp-ducati-m3.bin and
smp-omap5-duati-m3.bin, are built for OMAP4 and OMAP5 platforms
respectively. The binaries are still built in M3 compatible mode.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Paul Hunt <hunt@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
5 years agoSamples: Add SMP-mode IPU samples
Juan Gutierrez [Thu, 15 Mar 2012 17:10:04 +0000 (11:10 -0600)]
Samples: Add SMP-mode IPU samples

Added build support for the existing samples to build IPU
samples in SMP-mode using respective platform files and
configuration files.

Signed-off-by: Paul Hunt <hunt@ti.com>
Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
5 years agoConfigs: Add common configuration files for SMP-mode in IPU
Juan Gutierrez [Thu, 15 Mar 2012 16:46:58 +0000 (10:46 -0600)]
Configs: Add common configuration files for SMP-mode in IPU

Add the common configuration files used by samples to generate
baseimages in SMP-mode on IPU for both OMAP4 & OMAP5 target
platforms.

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>
5 years agoConfigs: Move Idle module from IpcCommon to specific cfg files
Juan Gutierrez [Thu, 15 Mar 2012 16:38:21 +0000 (10:38 -0600)]
Configs: Move Idle module from IpcCommon to specific cfg files

Idle module interface is different for SMP platform. SMP requires
that Idle functions be added to each of the cores, and if it is the
same Idle function, then it should be a thread-safe function. The
inclusion of the module is therefore moved from the generic
IpcCommon.cfg.xs file to each one of the specific core configuration
files.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Paul Hunt <hunt@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
5 years agoHDMIWA: Build HDMI WA libraries for both SMP and non-SMP modes
Suman Anna [Sun, 6 May 2012 21:36:09 +0000 (16:36 -0500)]
HDMIWA: Build HDMI WA libraries for both SMP and non-SMP modes

Two different hdmiwa libraries are built for both non-SMP and SMP
modes at build time based on configuration, and the appropriate
library is picked up during the linking stage in the final
executable based on the platform name.

The conditional build allows the build configuration to change
without overwriting the other mode's library.

Signed-off-by: Suman Anna <s-anna@ti.com>
5 years agoDEH: Build DEH for SMP and non-SMP modes
Suman Anna [Sun, 6 May 2012 06:48:04 +0000 (01:48 -0500)]
DEH: Build DEH for SMP and non-SMP modes

Two different DEH libraries are built for both non-SMP and SMP
modes at build time based on configuration, and the appropriate
library is picked up during the linking stage in the final
executable based on the platform name.

The conditional build allows the build configuration to change
without overwriting the other mode's library.

Signed-off-by: Suman Anna <s-anna@ti.com>
5 years agoPM: Add SMP support to the Power Management code
Juan Gutierrez [Tue, 27 Mar 2012 23:28:16 +0000 (17:28 -0600)]
PM: Add SMP support to the Power Management code

The SMP support is added to the core PM module for IPU,
IpcPower. The Power Management functionality is adjusted
for the lack of two independent processor cores in the
IPU. The simultaneous support for non-SMP and SMP modes
are provided through a compiler preprocessor macro.

Libraries for SMP and non-SMP mode are built simultaneously
during build time, and the appropriate library is picked up
during the linking stage in the final executable based on
the platform name.

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>
5 years agoPM: Configure deepsleep for IPU in a generic way
Juan Gutierrez [Tue, 27 Mar 2012 23:19:41 +0000 (17:19 -0600)]
PM: Configure deepsleep for IPU in a generic way

Depending on the BIOS version used, the Power Suspend API for IPU
could be executed as an asynchronous non-blocking call in just one
core (in a SMP environment) or as a synchronous blocking call in
both cores (non-SMP environment). This patch ensures that each
core sets/recovers its deepsleep configuration irrespective of the
mode and the core where the Power_suspend function is actually
executed.

Signed-off-by: Paul Hunt <hunt@ti.com>
Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
5 years agoGates: Build HwSpinlock for both SMP and non-SMP modes
Suman Anna [Sun, 6 May 2012 06:54:10 +0000 (01:54 -0500)]
Gates: Build HwSpinlock for both SMP and non-SMP modes

Two different hwspinlock libraries are built for both non-SMP
and SMP modes at build time based on configuration, and the
appropriate library is picked up during the linking stage in
the final executable based on the platform name.

The conditional build allows the build configuration to change
without overwriting the other mode's library.

Signed-off-by: Suman Anna <s-anna@ti.com>
5 years agoResMgr: Build Resource Manager for both SMP and non-SMP modes
Suman Anna [Sun, 6 May 2012 06:51:45 +0000 (01:51 -0500)]
ResMgr: Build Resource Manager for both SMP and non-SMP modes

Two different ResMgr libraries are built for both non-SMP and SMP
modes at build time based on configuration, and the appropriate
library is picked up during the linking stage in the final
executable based on the platform name.

The conditional build allows the build configuration to change
without overwriting the other mode's library.

Signed-off-by: Suman Anna <s-anna@ti.com>
5 years agoRCM: Build RCM for both SMP and non-SMP modes
Suman Anna [Sun, 6 May 2012 06:53:02 +0000 (01:53 -0500)]
RCM: Build RCM for both SMP and non-SMP modes

Two different grcm libraries are built for both non-SMP and SMP
modes at build time based on configuration, and the appropriate
library is picked up during the linking stage in the final
executable based on the platform name.

The conditional build allows the build configuration to change
without overwriting the other mode's library.

Signed-off-by: Suman Anna <s-anna@ti.com>
5 years agoTrace: Customize tracing for SMP-mode
Suman Anna [Sat, 17 Mar 2012 01:52:06 +0000 (19:52 -0600)]
Trace: Customize tracing for SMP-mode

The tracing code has been enhanced to support the SMP-mode.
In SMP-mode, each processor core will have its own line
buffer and the traces are output into this linebuffer until
a new line is output or the line buffer has been filled up.
The respective line buffer is flushed out into the shared
output buffer with the processor core id prepended to the
respective line buffer trace.

Libraries for SMP and non-SMP mode are built simultaneously
during build time, and the appropriate library is picked up
during the linking stage in the final executable based on
the platform name.

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>
5 years agoResources: Add SMP-mode support to resource table
Juan Gutierrez [Fri, 16 Mar 2012 15:39:51 +0000 (09:39 -0600)]
Resources: Add SMP-mode support to resource table

Add a 'SMP' macro based on the platform information to support
SMP-mode on the IPU sub-system. This will list just one trace
buffer, one crash dump buffer and just one entry point as the
two IPU processors are treated as a single processor system
in SMP mode.

Libraries for SMP and non-SMP mode are built simultaneously
during build time, and the appropriate library is picked up
during the link stage in the final executable.

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>
5 years agoSrvMgr: Use rpmsg-omx1 channel name for IPU in SMP mode
Juan Gutierrez [Fri, 16 Mar 2012 23:30:09 +0000 (17:30 -0600)]
SrvMgr: Use rpmsg-omx1 channel name for IPU in SMP mode

The IPU subsystem will create only one rpmsg channel in SMP
mode. The name 'rpmsg-omx1' is used to publish the channel
name in SMP mode. This helps to keep backward compatibility
with the corresponding driver and userspace applications.

Simultaneous support is provided for both non-SMP and SMP
modes through a compiler preprocessor macro. Libraries for
both the modes are built simultaneously during build time,
and the appropriate library is picked up during the linking
stage in the final executable based on the platform name.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
5 years agoIPC: Add SMP support to the VirtQueue module
Suman Anna [Thu, 3 May 2012 01:58:41 +0000 (20:58 -0500)]
IPC: Add SMP support to the VirtQueue module

The SMP support in IPU is added to the core IPC transport
layer - the VirtQueue module. For SMP, we only need one
pair of VirtQueues as if they were only one core. Support
for non-SMP and SMP is simultaneously provided by using a
compiler preprocessor macro.

Libraries for SMP and non-SMP mode are built simultaneously
during build time, and the appropriate library is picked up
during the link stage in the final executable.

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>
5 years agoIPC: Add SMP support to IPU interrupt functions
Suman Anna [Mon, 7 May 2012 01:15:59 +0000 (20:15 -0500)]
IPC: Add SMP support to IPU interrupt functions

The SMP support is added to the IPU Interrupt layer using
a pre-processor macro. The Interrupt layer is modified as
if only one processor is receiving the mailbox interrupts.

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>
5 years agoPlatform: Add separate IPU platform targets for SMP
Juan Gutierrez [Thu, 15 Mar 2012 16:20:02 +0000 (10:20 -0600)]
Platform: Add separate IPU platform targets for SMP

Add separate IPU target platform modules that define the
default memory maps for the dual-core M3/M4 subsystems
in OMAP4/OMAP5 running a Symmetric Multi-Processing (SMP)
BIOS. These regions will be used by the build process to
place the ELF sections appropriately.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Paul Hunt <hunt@ti.com>
Signed-off-by; Suman Anna <s-anna@ti.com>

5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 years agoResources: Add DMM/TILER register space to Resource Table 1.00.09.47
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. The
space is already configured properly in the AMMU.

Signed-off-by: Suman Anna <s-anna@ti.com>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>
5 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>