gstreamer-omap:sysbios-rpmsg.git
6 years agoBuild: Add build support for Dual-M3 with SMP (ipu) platforms 1.10.07.16-SMP1
Juan Gutierrez [Wed, 28 Mar 2012 00:08:09 +0000 (18:08 -0600)]
Build: Add build support for Dual-M3 with SMP (ipu) platforms

The build for Dual-M3 with SMP support for both OMAP4
and OMAP5 platforms only is enabled when defining the
smp build configuration option by:

   # make smp_config

When applying this configuration the prorper BIOS and XDC
tools versions with support for SMP are selected and only
the the SMP Dual-M3 targets are build after typing the
usual command:

   # make

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

   # make unconfig

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Paul Hunt <hunt@ti.com>
6 years agoUtils: Add build targets for Dual-M3 with SMP
Juan Gutierrez [Fri, 16 Mar 2012 16:40:36 +0000 (10:40 -0600)]
Utils: Add build targets for Dual-M3 with SMP

Two default binaries, smp-ducati-m3.bin & smp-omap5-duati-m3.bin,
are built to support Dual-M3 with SMP in both OMAP4 and OMAP5
targets respectively. The smp-omap5-ducati-m3.bin binary is still
built in M3 compatible mode.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Paul Hunt <hunt@ti.com>
6 years agoSamples: Add build support for Dual-M3 with SMP target
Juan Gutierrez [Thu, 15 Mar 2012 17:10:04 +0000 (11:10 -0600)]
Samples: Add build support for Dual-M3 with SMP target

Added build support for the existing samples to build
for Dual-M3 with SMP target using respective platform files and
configuration files.

Signed-off-by: Paul Hunt <hunt@ti.com>
Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
6 years agoConfigs: Add the configuration files for Dual-M3 with SMP support
Juan Gutierrez [Thu, 15 Mar 2012 16:46:58 +0000 (10:46 -0600)]
Configs: Add the configuration files for Dual-M3 with SMP support

Add the configuration files used by samples to generate a
baseimage for Dual-M3 with SMP support both for OMAP4 and
OMAP5 platform targets.

Signed-off-by: Paul Hunt <hunt@ti.com>
Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
6 years agoTrace: Customization for SMP under a macro
Juan Gutierrez [Sat, 17 Mar 2012 01:52:06 +0000 (19:52 -0600)]
Trace: Customization for SMP under a macro

Separates the implementation with/without SMP

Signed-off-by: Paul Hunt <hunt@ti.com>
Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
6 years agoDEH: Add exception handling support for Dual-M with SMP
Juan Gutierrez [Wed, 28 Mar 2012 23:18:23 +0000 (17:18 -0600)]
DEH: Add exception handling support for Dual-M with SMP

Watchdog and error handling support has been added for Dual-M3
with SMP.
Only one GTP is used for both cores as the watchdog timer.

Signed-off-by: Paul Hunt <hunt@ti.com>
Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
6 years agoServiceMgr: Use rpmsg-omx1 channel name for Dual-M3 with SMP
Juan Gutierrez [Fri, 16 Mar 2012 23:30:09 +0000 (17:30 -0600)]
ServiceMgr: Use rpmsg-omx1 channel name for Dual-M3 with SMP

Use rpmsg-omx1 channel name when using Dual-M3 with SMP support.
This helps to keep backward compatibility whit the corresponding
driver.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
6 years agoResources: Add support for Dual-M3 with SMP
Juan Gutierrez [Fri, 16 Mar 2012 15:39:51 +0000 (09:39 -0600)]
Resources: Add support for Dual-M3 with SMP

Add an SMP_ENABLE macro based on the platform information. This
will list just one trace buffer, one crash dump buffer and just
one entry point in the case of Dual-M3 with SMP support.

Signed-off-by: Paul Hunt <hunt@ti.com>
Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
6 years agoPM: Add power managment support for Dual-M3 with SMP
Juan Gutierrez [Tue, 27 Mar 2012 23:28:16 +0000 (17:28 -0600)]
PM: Add power managment support for Dual-M3 with SMP

A new IpcPowerIpu module is added that manages the PM aspects
of the Dual-M3 processors with SMP support.

The function prototypes have identical signatures to those
defined in in IpcPower.c, but withour the additional processing
for handle 2 cores.

The processor differences are resolved by picking up
the proper file at build time by package.bld.

Signed-off-by: Paul Hunt <hunt@ti.com>
Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
6 years agoIPC: Add VirtQueue support for Dual-M3 with SMP
Juan Gutierrez [Tue, 27 Mar 2012 23:38:00 +0000 (17:38 -0600)]
IPC: Add VirtQueue support for Dual-M3 with SMP

Add support for establishing communication between MPU and
Dual-M3 with SMP through VirtQueue.

For SMP we only need one pair or virtqueues as if they were
only one core. SMP specific code was implemented in a separate
VirtQueueIpu.c.

Signed-off-by: Paul Hunt <hunt@ti.com>
Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
6 years agoIPC: Add interrupt functions for Dual-M3 with SMP support
Juan Gutierrez [Fri, 16 Mar 2012 15:45:03 +0000 (09:45 -0600)]
IPC: Add interrupt functions for Dual-M3 with SMP support

Add the specific interrupt functions for handling the
mbox interrupts for Dual-M3 with SMP support.
This functions are defined in InterruptIpu.c under the
generic InterruptProxy name.

The platform differentiation (SMP, non-SM) is resolved at
build time by package.bld, based on if the SMP environment
variable is defiend or not.

Signed-off-by: Paul Hunt <hunt@ti.com>
Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
6 years agoPlatform: Add a separate IPU platform target
Juan Gutierrez [Thu, 15 Mar 2012 16:20:02 +0000 (10:20 -0600)]
Platform: Add a separate IPU platform target

Add a separate IPU platform for target Dual-M3 with
Symmetric multiprocessing that defines the default memory map.
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>
6 years agoConfigs: Moving Idle module from IpcCommon to specific cfg file
Juan Gutierrez [Thu, 15 Mar 2012 16:38:21 +0000 (10:38 -0600)]
Configs: Moving Idle module from IpcCommon to specific cfg file

Idle module interface is different for SMP platform. The inclusion
of the module is 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>
6 years agoConfigs: Don't delete terminated tasks
Juan Gutierrez [Wed, 28 Mar 2012 23:17:29 +0000 (17:17 -0600)]
Configs: Don't delete terminated tasks

Signed-off-by: Paul Hunt <hunt@ti.com>
6 years agoPM: Set deepsleep before wfi
Juan Gutierrez [Tue, 27 Mar 2012 23:19:41 +0000 (17:19 -0600)]
PM: Set deepsleep before wfi

Make sure the deepsleep bit is set before hitting wfi.

Signed-off-by: Paul Hunt <hunt@ti.com>
6 years agoIPC: Fix for race in MessageQCopy initialization
Juan Gutierrez [Wed, 28 Mar 2012 00:22:01 +0000 (18:22 -0600)]
IPC: Fix for race in MessageQCopy initialization

When a task called this function set inmediately curInit
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,
which is wrong.

Signed-off-by: Paul Hunt <hunt@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>
7 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>
7 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>
7 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>
7 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>
7 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>
7 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>
7 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>
7 years agoUtils: Allow genrprc to be run from other directories 1.00.08.41
Rob Clark [Thu, 6 Oct 2011 19:55:36 +0000 (14:55 -0500)]
Utils: Allow genrprc to be run from other directories

Use full path derived from $0 to find helper apps.

Signed-off-by: Rob Clark <rob@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
7 years agoPlatform: Relocate power management memory region
Suman Anna [Mon, 19 Sep 2011 18:45:55 +0000 (13:45 -0500)]
Platform: Relocate power management memory region

The power management shared memory region, PM_DATA is relocated to
be present alongside other IPC regions - tracing memory region and
the crash-dump data memory region. This will facilitate easier
firewalling of the memory regions accessible by both A9 and M3
processors.

Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
7 years agoUtils: Enhance genextbin to provide two new features 1.00.07.40
Suman Anna [Fri, 30 Sep 2011 17:47:31 +0000 (12:47 -0500)]
Utils: Enhance genextbin to provide two new features

The genextbin utility has been enhanced to provide the following
2 new features:
1. The genextbin utility will use an optional additional argument
   along with the current input binary argument, to generate the
   pre-signed binary. This is done using optional option arguments,
   -i and -o for input and output binaries respectively. The behavior
   is the same as previous version if no output binary is inputed.
2. The input binary is checked if it is already a processed or
   pre-signed binary.

Signed-off-by: Suman Anna <s-anna@ti.com>
7 years agoDEH: Print a stack trace with the crash message
Iliyan Malchev [Wed, 28 Sep 2011 18:01:56 +0000 (11:01 -0700)]
DEH: Print a stack trace with the crash message

Use the StackDbg helper module to print a stack trace
when an exception occurs.

Signed-off-by: Iliyan Malchev <malchev@google.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
7 years agoDEH: Add stack dump to trace buffer on exception
Iliyan Malchev [Wed, 28 Sep 2011 08:25:41 +0000 (01:25 -0700)]
DEH: Add stack dump to trace buffer on exception

Signed-off-by: Iliyan Malchev <malchev@google.com>
7 years agoTrace: Add a new StackDbg module
Iliyan Malchev [Thu, 29 Sep 2011 22:28:59 +0000 (17:28 -0500)]
Trace: Add a new StackDbg module

A new module StackDbg provides API to unwind the stack natively, without
the aid of symbolic debugging information and without the usage of a frame
pointer.  The algorithm used is heuristic, and so the stack trace may be
partial or incorrect.  For the most past, though, the algorithm produces an
accurate trace, and when it does not, it is obvious that the stack trace is
wrong.

The stack-walking function takes as an argument a visit function, which is
called for every potential stack entry.  The visit function may choose to print
out that entry, or to add it to a stack-trace buffer for later printing, or to
ignore it.  The visit function also tells the stack-trace function for each
entry, whether the stack-walking should continue or stop.  This way a caller of
the stack-walking function may unwind the stack only as much as it necessary.

Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Shahid Akhtar <sakhtar@ti.com>
Signed-off-by: Iliyan Malchev <malchev@google.com>
7 years agoBuild: Provide Makefile extensibility for custom XDC & tools-path 1.00.07.39
Suman Anna [Thu, 22 Sep 2011 22:37:13 +0000 (17:37 -0500)]
Build: Provide Makefile extensibility for custom XDC & tools-path

Provide build extensibility to choose your own XDC version, and
the location of all the BIOS-side tools in your environment. This
would allow a user easier build integration without having to
modify the Makefile.

The tools location can be defined through the environment variable,
BIOSTOOLSROOT. The Makefile extensibility is currently limited only
to XDC through the environment variable, XDCVERSION.
    Eg:
        export BIOSTOOLSROOT = /usr/ducati-tools
        export XDCVERSION = xdctools_3_22_01_21

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

Signed-off-by: Suman Anna <s-anna@ti.com>
7 years agoTrace: Configure timestamp format based on BIOS tick period
Suman Anna [Fri, 23 Sep 2011 04:24:49 +0000 (23:24 -0500)]
Trace: Configure timestamp format based on BIOS tick period

The timestamp currently being printed in the traces is programmed
to work with only a BIOS tick period of 1ms. The BIOS tick period
is a configurable option, and if changed, the current trace
timestamps would be incorrect.

Changes have been made to compute the timestamp based on the value
of the tick period. The current changes would support a range of
tick period values from 1 us to 1 sec. Anything beyond would need
additional changes, but 1 sec is already a decently large tick
period value for various Clock related functions.

Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
7 years agoBuild: Add recent new files to ignore list
Suman Anna [Fri, 16 Sep 2011 15:56:03 +0000 (10:56 -0500)]
Build: Add recent new files to ignore list

Couple of new files that were added/generated recently have been
added to the git ignore list.

Signed-off-by: Suman Anna <s-anna@ti.com>
7 years agoUtils: Add the genextbin utility
Suman Anna [Thu, 4 Aug 2011 00:53:25 +0000 (19:53 -0500)]
Utils: Add the genextbin utility

A genextbin utility is added that processes the Ducati binary and
gives out an extended binary with the MMU L1 PTE table and the
firmware section TOC information needed by the signing tool. The
two generated sections are placed at specific physical address
locations and needs to be matched in the signing and authentication
tools.

Signed-off-by: Suman Anna <s-anna@ti.com>
7 years agoBuild: Update to XDC 3.22.03.41 toolset 1.00.07.38
Suman Anna [Wed, 21 Sep 2011 15:18:39 +0000 (10:18 -0500)]
Build: Update to XDC 3.22.03.41 toolset

The build system is updated to use a new XDC toolset,
XDC 3.22.03.41. This toolset fixes an incremental build
issue - the base image is not regenerated when an included
library source code file is modified unless the image is
either deleted or the corresponding config file is
'touch'ed.

Signed-off-by: Suman Anna <s-anna@ti.com>
7 years agoSamples: Add a task to test HwSpinlock 1.00.07.37
Juan Gutierrez [Wed, 3 Aug 2011 17:36:16 +0000 (12:36 -0500)]
Samples: Add a task to test HwSpinlock

A new file, hwspinlock_task.c is added and is used to test
various API provided by the HwSpinlock module like create &
delete; to lock & unlock.

Several tasks of different priorities are created in the test
task to compete against each other for different HwSpinlocks.
The HwSpinlock test task is added as part of test_omx test,
but is kept disabled by default.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
7 years agoConfigs: Add HwSpinlock module to common configuration file
Juan Gutierrez [Sun, 24 Jul 2011 14:18:18 +0000 (09:18 -0500)]
Configs: Add HwSpinlock module to common configuration file

Add hwspinlock package in common configuration file, so it can be
linked and included in the sample images.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
7 years agoGates: Create a BIOS-side HwSpinlock module
Juan Gutierrez [Sat, 23 Jul 2011 23:15:53 +0000 (18:15 -0500)]
Gates: Create a BIOS-side HwSpinlock module

The HwSpinlock module provides hardware assistance for
synchronization among multiple processors. This module
provides the following main API:

1. HwSpinlock_Handle HwSpinlock_create(HwSpinlock_Params *params);
     Creates a handle for the HwSpinlock specified in the
     parameters.

2. Int HwSpinlock_delete(HwSpinlock_Handle handle);
     Frees the the HwSpinlock associated with handle.

3. Int HwSpinlock_enter(HwSpinlock_Handle handle,
                        HwSpinlock_PreemptGate pType,
                        UInt timeout, HwSpinlock_Key *key);
     Attempts to lock the HwSpinlock corresponding to the handle
     with a timeout limit specified in ticks (usually 1 ms). If
     the HwSpinlock is already taken, the function will busy loop
     waiting for it to be released, but bails out if the timeout
     elapses. If the HwSpinlock is successfully taken, preemption
     at Task, Hwi or Swi level could be disabled according to
     pType. A key is returned to unlock the HwSpinlock.
     pType could be:
       HwSpinlock_PreemptGate_NONE   = 0,  NO protection
       HwSpinlock_PreemptGate_HWI    = 1,  HWI protection level
       HwSpinlock_PreemptGate_SWI    = 2,  SWI protection level
       HwSpinlock_PreemotGate_TASK   = 3   TASK protection level

4. Void HwSpinlock_leave(HwSpinlock_Handle handle,
                         HwSpinlock_Key *key);
     Unlocks a previously locked HwSpinlock, and restores back the
     previously disabled preemption level. Key must be passed to
     successfully unlock.

5. Int HwSpinlock_getId(HwSpinlock_Handle handle);
     Returns the HwSpinlock Id.

6. HwSpinlock_State HwSpinlock_getState(HwSpinlock_Handle handle);
     Returns TRUE if the HwSpinlock is held by that particular
     handle. FALSE means that the HwSpinlock is FREE or it is
     taken by another processor.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
7 years agoDEH: Check Error buffer size sanity 1.00.07.36
Juan Gutierrez [Thu, 15 Sep 2011 22:25:31 +0000 (17:25 -0500)]
DEH: Check Error buffer size sanity

Throw a compilation error if the size of the error
buffer is larger than its memory segment.

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