6 years agoSamples: Update test_omx sample for proper OMX packet
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 <>
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 <>
Signed-off-by: Subramaniam C.A <>
Signed-off-by: Suman Anna <>
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 <>
Signed-off-by: Juan Gutierrez <>
6 years agoBuild: Add zero_init=off flag to ducati build options
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 <>
Signed-off-by: Suman Anna <>
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 <>
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 <>
Signed-off-by: Suman Anna <>
6 years agoUtils: Fix firmware versioning when run from other directories
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 <>
6 years agoUtils: Append version in firmware header
Juan Gutierrez [Mon, 17 Oct 2011 22:54:07 +0000 (17:54 -0500)]
Utils: Append version in firmware header

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

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

Signed-off-by: Juan Gutierrez <>
6 years agoPM: Cleanup IpcPower initialization
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 <>
6 years agoGates: Initialize HwSpinlock module state
Suman Anna [Wed, 12 Oct 2011 21:34:13 +0000 (16:34 -0500)]
Gates: Initialize HwSpinlock module state

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

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

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

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

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

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

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

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

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

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

Signed-off-by: Suman Anna <>
6 years agoUtils: Allow genrprc to be run from other directories
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 <>
Signed-off-by: Suman Anna <>
6 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

Signed-off-by: Suman Anna <>
Signed-off-by: Juan Gutierrez <>
6 years agoUtils: Enhance genextbin to provide two new features
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 <>
6 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 <>
Signed-off-by: Suman Anna <>
6 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 <>
6 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

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 <>
Signed-off-by: Shahid Akhtar <>
Signed-off-by: Iliyan Malchev <>
7 years agoBuild: Provide Makefile extensibility for custom XDC & tools-path
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.
        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 <>
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 <>
Signed-off-by: Juan Gutierrez <>
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 <>
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

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

The build system is updated to use a new XDC toolset,
XDC 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

Signed-off-by: Suman Anna <>
7 years agoSamples: Add a task to test HwSpinlock
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 <>
Signed-off-by: Suman Anna <>
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 <>
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

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 <>
Signed-off-by: Suman Anna <>
7 years agoDEH: Check Error buffer size sanity
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 <>
Signed-off-by: Suman Anna <>
7 years agoTrace: Check trace buffer size sanity
Juan Gutierrez [Thu, 15 Sep 2011 22:23:50 +0000 (17:23 -0500)]
Trace: Check trace buffer size sanity

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

Signed-off-by: Juan Gutierrez <>
Signed-off-by: Suman Anna <>
7 years agoConfigs: Move error buffers into the exception memory region
Juan Gutierrez [Thu, 15 Sep 2011 22:49:56 +0000 (17:49 -0500)]
Configs: Move error buffers into the exception memory region

Relocate the .errorbuf section into the new EXC_DATA
memory region.

Signed-off-by: Juan Gutierrez <>
Signed-off-by: Suman Anna <>
7 years agoPlatform: Create a new Exception region and relocate trace region
Juan Gutierrez [Thu, 15 Sep 2011 22:31:56 +0000 (17:31 -0500)]
Platform: Create a new Exception region and relocate trace region

A new memory region, EXC_DATA is created to contain the exception
or crash-dump data. The tracing memory region, TRACE_BUF is also
relocated. Both these memory regions are defined together in the
second 1MB entry of the original IPC region. This will facilitate
easier firewalling of the memory regions accessible by both A9
and M3 processors.

Signed-off-by: Juan Gutierrez <>
Signed-off-by: Suman Anna <>
7 years agoResources: Split the IPC carveout memory
Suman Anna [Fri, 16 Sep 2011 16:18:28 +0000 (11:18 -0500)]
Resources: Split the IPC carveout memory

The IPC carveout region needs to have access permissions from both
A9 and Ducati. This region serves multiple purposes/functionalities
- the shared memory is used for IPC buffers, trace data, exception
or crash-dump data and Power Management data. This region needs to
be contiguous for defining a single firewall region.

The IPC carveout region currently is 2MB and is split into two 1MB
entries at different virtual addresses to address the limitations
of the M3 memory mapping attributes. The first entry will continue
to be used for the IPC VirtQueue buffers, while the second entry
will be used to contain the remaining IPC data buffers/memory. The
address for the second entry is chosen within a executable memory
region as per the M3 memory map attributes, so that the power
management data can be moved into this entry region as well.

Signed-off-by: Suman Anna <>
Signed-off-by: Juan Gutierrez <>
7 years agoUtils: Cleanup readrprc output format
Suman Anna [Thu, 15 Sep 2011 22:19:53 +0000 (17:19 -0500)]
Utils: Cleanup readrprc output format

The output of the readrprc utility has been cleaned up
a little bit for better readibility.

Signed-off-by: Suman Anna <>
7 years agoSrvMgr: Add support for invoking a disconnect hook function
Abhishek Ranka [Wed, 14 Sep 2011 18:15:20 +0000 (23:45 +0530)]
SrvMgr: Add support for invoking a disconnect hook function

The OMX_DISCONNECT message currently is completely processed within
the Service Manager module. There is no infrastructure support to
call a user-provided function so that the client can execute some
additional custom operations.

This patch adds the support for registering a user hook function with
the ServiceMgr module, which will be invoked upon a OMX_DISCONNECT
message. This hook function will be used to trigger resource cleanup
in case of abnormal or premature termination of a corresponding HLOS

Signed-off-by: Abhishek Ranka <>
Signed-off-by: Suman Anna <>
7 years agoDEH: Save raw exception registers into exception buffer
Shahid Akhtar [Thu, 15 Sep 2011 17:32:06 +0000 (12:32 -0500)]
DEH: Save raw exception registers into exception buffer

A subset of the SYS/BIOS Exception context data is saved in
raw binary form into the the exception buffer. This exception
buffer is accessible to the HLOS-side, and can be used as part
of a slave processor core dump. The exception buffer previously
had only a textual information regarding the exception type.

Signed-off-by: Shahid Akhtar <>
7 years agoUtils: Add error/crash-dump buffer
Shahid Akhtar [Tue, 26 Jul 2011 20:43:15 +0000 (15:43 -0500)]
Utils: Add error/crash-dump buffer

Added a new buffer to shared list of buffers for
storing all crash related data. The buffer is
similar to the trace buffer except that it stores
information regarding crashes or exceptions.

Signed-off-by: Shahid Akhtar <>
7 years agoPM: Add wake lock/unlock APIs to control deep sleep mode
Juan Gutierrez [Thu, 8 Sep 2011 15:42:22 +0000 (10:42 -0500)]
PM: Add wake lock/unlock APIs to control deep sleep mode

DeepSleep mode is used to gate the CPU clock when the M3 core
hits WFI. However, some internal resources like CTM and SysTick
timers are sourced from the CPU clock. So, when the CPU clk is
gated, these resources are also gated and stop working as soon
as the M3 Core idles.

The following API are provided to control the deep sleep mode.
Users must call these API in pairs.
    Void IpcPower_wakeLock();
    Void IpcPower_wakeUnlock();

The IpcPower_wakeLock() disables the deep sleep mode, and when
invoked, allows the internal resources to be functional as the
core is never gated. The IpcPower_wakeUnlock() restores the deep
sleep mode.

Signed-off-by: Juan Gutierrez <>
7 years agoDEH: Add watchdog timer for M3 cores
Shahid Akhtar [Tue, 26 Jul 2011 21:03:19 +0000 (16:03 -0500)]
DEH: Add watchdog timer for M3 cores

Added watchdog timer to M3 cores. GP timers
are used as watchdog timers. The timer is set
up by host and kicked by ducati periodically.

Signed-off-by: Shahid Akhtar <>
7 years agoDEH: Add a Device Exception Handler (DEH) module
Shahid Akhtar [Mon, 25 Jul 2011 22:56:51 +0000 (17:56 -0500)]
DEH: Add a Device Exception Handler (DEH) module

Added a new module ti.deh that notifies host of an error/exception
or unrecoverable error such as no-heap-memory, etc. It saves the
error/exception data in an error buffer.

Signed-off-by: Shahid Akhtar <>
7 years agoIPC: Modify postCrashToMailbox() API signature
Shahid Akhtar [Fri, 22 Jul 2011 21:57:31 +0000 (16:57 -0500)]
IPC: Modify postCrashToMailbox() API signature

The postCrashToMailbox() function in VirtQueue module has been
renamed appropriately to VirtQueue_postCrashToMailbox() to allow
DEH (Device Exception Handler) module to invoke this function.
The function signature has also been modified.

Signed-off-by: Shahid Akhtar <>
Signed-off-by: Suman Anna <>
7 years agoUtils: Update resources table for trace buffer size
Shahid Akhtar [Fri, 22 Jul 2011 21:49:14 +0000 (16:49 -0500)]
Utils: Update resources table for trace buffer size

Removed the fixed size of trace buffer from
src/ti/resources/rsc_table.h. Instead the size is
extracted from image and patched into resource table

Signed-off-by: Shahid Akhtar <>
7 years agoResources: Increase the size of 1D IO buffer area
Sarthak Aggarwal [Thu, 8 Sep 2011 03:44:13 +0000 (09:14 +0530)]
Resources: Increase the size of 1D IO buffer area

The 1D IO carveout buffers' size has been increased from 30MB to
90MB and is adjusted accordingly in the resource table. All the
other carveouts have also been moved down by 60MB respectively
to match this increased size.

Signed-Off-By: Sarthak Aggarwal <>
Signed-off-by: Suman Anna <>
7 years agoTrace: Relocate trace buffer and add dump support
Juan Gutierrez [Sun, 4 Sep 2011 05:06:06 +0000 (00:06 -0500)]
Trace: Relocate trace buffer and add dump support

Relocated the trace buffers into the IPC Memory area with
the name TRACE_BUF.

Added support for keeping track of how many characters have
been written into the trace buffer and how many have been
read by an external observer (kernel or userspace).

Signed-off-by: Juan Gutierrez <>
7 years agoTrace: Add a custom SysMin module for traces
Shahid Akhtar [Fri, 22 Jul 2011 21:20:10 +0000 (16:20 -0500)]
Trace: Add a custom SysMin module for traces

Added module ti.trace.SysMin that replaces xdc.runtime.SysMin.
The new modules allows flexibility and replaces SysMin_putchar()
and SysMin_flush() functions. The flush() function is not used
since we implement the traces in a circular buffer. The circular
buffers warps around when it reaches the end of the buffer

Signed-off-by: Shahid Akhtar <>
Signed-off-by: Suman Anna <>
7 years agoSamples: Request GPT9 instead of GPT3 in resmgr sample
Juan Gutierrez [Wed, 3 Aug 2011 02:22:12 +0000 (21:22 -0500)]
Samples: Request GPT9 instead of GPT3 in resmgr sample

Since GPT3 and GPT4 are now used to provide BIOS tick, the
sample is returning an error when trying to request GPT3.
This has been changed to request another timer, GPT9, instead.

Watchdog may utilize the GPT9 in the future, and if so it
may need to be disabled for testing this.

Signed-off-by: Juan Gutierrez <>
7 years agoPM: Enable GPT3 and GPT4 interrupts as wakeup sources
Juan Gutierrez [Tue, 2 Aug 2011 01:06:52 +0000 (20:06 -0500)]
PM: Enable GPT3 and GPT4 interrupts as wakeup sources

Currently GPT3 and GPT4 are selected by the configuration files as
the source of the BIOS tick. This requires that these interrupts
also be configured as wakeup sources for the M3 subsytem. Changes
have been added to enable these interrupts in the WUGEN mask.

Note that configuring different gptimers as the source clock will
require similar changes to enable those interrupts in the WUGEN

Signed-off-by: Juan Gutierrez <>
7 years agoConfigs: Use GPT3 and GPT4 as src clk for BIOS tick in Ducati
Juan Gutierrez [Fri, 29 Jul 2011 23:53:26 +0000 (18:53 -0500)]
Configs: Use GPT3 and GPT4 as src clk for BIOS tick in Ducati

BIOS tick is currently sourced by the SysTick timer internal to
the M3 subsystem. This timer will run continuously only as long
as the Ducati functional clock, MPU_M3_CLK is running.

In order to save power, MPU_M3_CLK needs to be gated, and this
happens when the deep sleep mode configuration is set, and both
M3 cores execute WFI.

The SysTick timer stops counting when the MPU_M3_CLK is gated,
and result in all the BIOS timer-based functions like Task_sleep,
Semaphore_pend, Event_pend to never finish and wake up the
subsystem. This is avoided by choosing external gptimers as the
BIOS tick sources instead of the SysTick internal timer.

SysTick internal M3 timer is overridden with GPT3 in Core0.
SysTick internal M3 timer is overridden with GPT4 in Core1.

Signed-off-by: Juan Gutierrez <>
7 years agoResources: Adjust memory map for increased code size
Suman Anna [Fri, 26 Aug 2011 23:17:01 +0000 (16:17 -0700)]
Resources: Adjust memory map for increased code size

The Resource table has been updated with the new static carveout
addresses, to reflect the 2MB increase in memory of the Core1
code region.

Signed-off-by: Suman Anna <>
7 years agoPlatform: Increase the EXT_CODE size for Core1
Suman Anna [Fri, 26 Aug 2011 22:51:28 +0000 (15:51 -0700)]
Platform: Increase the EXT_CODE size for Core1

The EXT_CODE region used for .text & .cinit sections needs to
be increased to accomodate additional codecs. This size is
increased from 3MB to 5MB.

Signed-off-by: Suman Anna <>
7 years agoConfigs: Set Non-Posted policy for IPC & Peripheral regions
Suman Anna [Tue, 23 Aug 2011 18:16:22 +0000 (11:16 -0700)]
Configs: Set Non-Posted policy for IPC & Peripheral regions

The IPC and Peripheral regions' policy has been marked to the
default NON_POSTED policy. This is done to ensure that all
r/w(s) within the IPC and peripheral registers reach the
destination and in the same order as intended/issued by the
CPU. This policy avoids the CPU getting any stray interrupts
from peripherals as the order is now guaranteed.

Signed-off-by: Suman Anna <>
7 years agoIPC: Label the VirtQueue ids properly
Suman Anna [Mon, 22 Aug 2011 01:00:00 +0000 (20:00 -0500)]
IPC: Label the VirtQueue ids properly

The VirtQueue ids have been defined using names that are
contradictory to what they mean. The code is functional
since the vrings are already created correctly in reverse
order. The names are corrected for proper code readability.

Signed-off-by: Suman Anna <>
7 years agoResources: Add 1D IO buffers to resource table and fix addresses
Suman Anna [Sun, 7 Aug 2011 02:58:10 +0000 (21:58 -0500)]
Resources: Add 1D IO buffers to resource table and fix addresses

The 1D IO carveout buffers need to be mapped into the L2MMU, as
they won't be mapped into the TILER. This is added to the resource
table, so that it can be mapped into the MMU at the time of loading
and starting the ducati processors.

All the carveouts have been relocated to match the A9-side locations
for different sections (defined in the board files) to account for
the 1D IO carveout. The ducati image's code and ipc regions are now
assigned fixed physical addresses. The data section is immediately
before the 1D IO carveout area, and the IPC and code sections precede
the data section.

Signed-off-by: Suman Anna <>
7 years agoResMgr: Add i2c resource
Fernando Guzman Lugo [Tue, 26 Jul 2011 00:00:29 +0000 (19:00 -0500)]
ResMgr: Add i2c resource

Add i2c resource to IpcResource module, so that Ducati can
request it.

Signed-off-by: Fernando Guzman Lugo <>
7 years agoUtils: Update the firmware to carry section physical addresses
Suman Anna [Sat, 23 Jul 2011 03:26:27 +0000 (22:26 -0500)]
Utils: Update the firmware to carry section physical addresses

The utils.mmap and rsc_table.h.mmap versions (firmware v2 format with
additional 64-bit field for physical addresses) have been made the
mainline version. The BIOS image version has been bumped up to reflect
the new firmware section changes.

The rsc_table has also been adjusted for the resource table order. The
IPU_MEM_IPC, which contains the vring buffers, needs to be first if
using dynamic carveout. This is due to the current restrictions on the
Linux-side as to how the vring buffers are set up. The IPU_MEM_DATA is
moved down so that it would not affect the behavior if this carveout
section is made dynamic in the future too.

The flags field in resource_type is reverted back to reserved, and the
current IPU_MEMORY_FLAGS are removed since they provide no value and
the settings are already configured by default on the A9-side.

Signed-off-by: Suman Anna <>
7 years agoUtils: Remove the v1 firmware generator code
Suman Anna [Sat, 23 Jul 2011 03:11:47 +0000 (22:11 -0500)]
Utils: Remove the v1 firmware generator code

The original firmware generator code has been deleted to
pave way for making the v2 firmware generator as the
mainline version.

Signed-off-by: Suman Anna <>
7 years agoResMgr: Copy parameters and assert resource size only on success
Fernando Guzman Lugo [Thu, 21 Jul 2011 23:19:38 +0000 (18:19 -0500)]
ResMgr: Copy parameters and assert resource size only on success

If the Host side failed to allocate the resource, the resource size
and the paramaters are not valid.

The function Ipc_Resource_translateError function is also renamed to

Signed-off-by: Fernando Guzman Lugo <>
7 years agoUtils: Adjust the permissions on script files
Suman Anna [Tue, 26 Jul 2011 18:26:18 +0000 (13:26 -0500)]
Utils: Adjust the permissions on script files

The license addition patch removed the correct file permissions
on the script files inadvertantly, and is fixed now.

Signed-off-by: Suman Anna <>
7 years agoRCM: Remove RCM build dependency on PackageBuildHelp
G Anthony [Thu, 21 Jul 2011 23:47:02 +0000 (16:47 -0700)]
RCM: Remove RCM build dependency on PackageBuildHelp utility package for building RCM has been deleted,
since this module is only used by ti.grcm package. The ti.grcm
build has been enhanced to remove this build dependency.

Signed-off-by: G Anthony <>
Signed-off-by: Shahid Akhtar <>
Signed-off-by: Suman Anna <>
7 years agoUtils: Add license to missing bin generator files
Suman Anna [Tue, 26 Jul 2011 16:38:19 +0000 (11:38 -0500)]
Utils: Add license to missing bin generator files

BSD license is added to the binary generator files
which missed the license in the initial push.

Signed-off-by: Suman Anna <>
7 years agoDocs: Update README
Suman Anna [Tue, 26 Jul 2011 16:32:28 +0000 (11:32 -0500)]
Docs: Update README

Updated README to reflect the correct location of the tree,
and improved the build steps.

Signed-off-by: Suman Anna <>
7 years agoBuild: Generate a default firmware binary
Suman Anna [Thu, 21 Jul 2011 15:52:44 +0000 (10:52 -0500)]
Build: Generate a default firmware binary

Signed-off-by: Suman Anna <>
7 years agoBuild: Enable the sysbios-rpmsg build
Suman Anna [Wed, 20 Jul 2011 20:07:51 +0000 (15:07 -0500)]
Build: Enable the sysbios-rpmsg build

Enables the build for all the initial set of patches
from the top-level.

Signed-off-by: Suman Anna <>
Signed-off-by: G Anthony <>
Signed-off-by: Shreyas Prasad <>
7 years agoSamples: Initial commit for host-side samples
G Anthony [Tue, 19 Jul 2011 23:28:54 +0000 (18:28 -0500)]
Samples: Initial commit for host-side samples

This patch adds the host-side samples, and the necessary
instructions to build and run those samples in a Linux

Signed-off-by: G Anthony <>
Signed-off-by: Suman Anna <>
7 years agoSamples: Initial commit for bios-side samples
G Anthony [Thu, 21 Jul 2011 05:32:10 +0000 (00:32 -0500)]
Samples: Initial commit for bios-side samples

This patch adds the bios-side samples for OMAP4 M3 cores, and
tests the basic messaging, as well as resource allocations and
constraints framework. The samples also allow to test the power
management by including IpcPower module in the config files.

The build of these samples leverage the platform and
common config files.

Signed-off-by: G Anthony <>
Signed-off-by: Mark Grosen <>
Signed-off-by: Miguel Vadillo <>
Signed-off-by: Suman Anna <>
7 years agoConfigs: Initial commit for common configuration files
G Anthony [Wed, 20 Jul 2011 23:58:05 +0000 (18:58 -0500)]
Configs: Initial commit for common configuration files

Add the common configuration files used by samples and
other baseimages. The files include a AMMU configuration
file and IPC configurations  satisfying the OMAP4 M3
platform targets.

Signed-off-by: G Anthony <>
Signed-off-by: Fernando Guzman Lugo <>
Signed-off-by: Suman Anna <>
7 years agoPlatform: Initial commit for target platform maps
Suman Anna [Wed, 20 Jul 2011 23:35:17 +0000 (18:35 -0500)]
Platform: Initial commit for target platform maps

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

Signed-off-by: Shreyas Prasad <>
Signed-off-by: G Anthony <>
Signed-off-by: Fernando Guzman Lugo <>
Signed-off-by: Suman Anna <>
7 years agoResMgr: Initial commit for constraints framework
Miguel Vadillo [Wed, 20 Jul 2011 23:13:08 +0000 (18:13 -0500)]
ResMgr: Initial commit for constraints framework

Add support for requesting the following constraints:
    - Frequency
    - Latency
    - Bandwidth on L3 bus

NOTE: Not all constraints are available for all resources.

Signed-off-by: Miguel Vadillo <>
Signed-off-by: G Anthony <>
Signed-off-by: Suman Anna <>
7 years agoSrvMgr: Initial commit for Service Manager
G Anthony [Thu, 21 Jul 2011 01:15:35 +0000 (20:15 -0500)]
SrvMgr: Initial commit for Service Manager

Adds a simple Service Manager that handles requests
from host to create services by name, and provides the
endpoint to the new task. Also, includes a NameMap
module to send requests to the host-side to create
corresponding host side's endpoint.

Signed-off-by: G Anthony <>
Signed-off-by: Mark Grosen <>
Signed-off-by: Suman Anna <>
7 years agoRCM: Initial commit for Remote Command Messaging modules
G Anthony [Thu, 21 Jul 2011 03:08:00 +0000 (22:08 -0500)]
RCM: Initial commit for Remote Command Messaging modules

Add the Remote Command Messaging (RCM) modules. These are based
on RCM modules from SysLink/Framework Compoents, and supports a
modified RcmServer module that depends on uses the new
MessageQCopy module. RcmClient module is not supported.

Signed-off-by: G Anthony <>
Signed-off-by: Mark Grosen <>
Signed-off-by: Suman Anna <>
7 years agoBuild: Initial Commit for package build utility
G Anthony [Wed, 20 Jul 2011 23:00:45 +0000 (18:00 -0500)]
Build: Initial Commit for package build utility

Add a utility for building XDC packages within the
sysbios-rpmsg tree.

Signed-off-by: G Anthony <>
Signed-off-by: Suman Anna <>
7 years agoIPC: Initial commit for RPMSG IPC
Shreyas Prasad [Thu, 21 Jul 2011 01:40:57 +0000 (20:40 -0500)]
IPC: Initial commit for RPMSG IPC

Adds a new remote processor messaging (RPMSG) IPC framework,
with the lowest level transport based on the Linux VirtIO
framework. The higher-level IPC functionality is provided
by a MessageQCopy module, that is similar to SysLink's
MessageQ module.

Signed-off-by: Shreyas Prasad <>
Signed-off-by: Mark Grosen <>
Signed-off-by: G Anthony <>
Signed-off-by: Suman Anna <>
7 years agoPM: Initial commit for Ducati Power Management module
Fernando Guzman Lugo [Wed, 20 Jul 2011 23:25:23 +0000 (18:25 -0500)]
PM: Initial commit for Ducati Power Management module

A new module, IpcPower, is added to manage PM requests from the host
processor. There is no need for any timer, as everything is managed by
the PM framework on the host side. Ducati side only needs to handle the
context save & restore.

Signed-off-by: Fernando Guzman Lugo <>
Signed-off-by: G Anthony <>
Signed-off-by: Suman Anna <>
7 years agoUtils: Initial commit for firmware generator
Mark Grosen [Thu, 21 Jul 2011 04:30:22 +0000 (23:30 -0500)]
Utils: Initial commit for firmware generator

Add the firmware .bin generator utility.

Signed-off-by: Robert Tivy <>
Signed-off-by: Mark Grosen <>
Signed-off-by: Suman Anna <>
7 years agoResources: Initial commit for resource table
G Anthony [Wed, 20 Jul 2011 21:09:50 +0000 (16:09 -0500)]
Resources: Initial commit for resource table

Adds a resource table to be incorporated into
the image. The .mmap version is a future version
of this table.

Signed-off-by: G Anthony <>
Signed-off-by: Suman Anna <>
7 years agoUtils: Initial commit for ELF image parsing
Robert Tivy [Wed, 20 Jul 2011 19:45:46 +0000 (14:45 -0500)]
Utils: Initial commit for ELF image parsing

Import the ELF Loader code from SysLink 2.0 to be
able to parse the images to be able to use in the
generation of a proprietary firmware binary image.

Signed-off-by: Robert Tivy <>
Signed-off-by: Mark Grosen <>
Signed-off-by: Suman Anna <>
7 years agoSetup: Initial setup
Suman Anna [Tue, 19 Jul 2011 22:05:47 +0000 (17:05 -0500)]
Setup: Initial setup

Initial setup for SYS/BIOS RPMSG. Added a README file and a
.gitignore file to ignore most of the generated XDC files.

Signed-off-by: Suman Anna <>