gstreamer-omap:sysbios-rpmsg.git
6 years agoSamples: Add build support for OMAP5 targets
Suman Anna [Sat, 11 Feb 2012 03:38:41 +0000 (21:38 -0600)]
Samples: Add build support for OMAP5 targets

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

This warning is suppressed by adding a specific compiler option.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Enable the build of the ResMgr module for C64T platform.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

The StackDbg module license has been changed to BSD.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
6 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>
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 <malchev@google.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
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 <malchev@google.com>
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
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>
6 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>
6 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>
6 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>
6 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>
6 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>
6 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>
6 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>
6 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>
6 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>
6 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 <jgutierrez@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
6 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 <jgutierrez@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
6 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 <jgutierrez@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
6 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 <s-anna@ti.com>
Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
6 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 <s-anna@ti.com>
6 years agoSrvMgr: Add support for invoking a disconnect hook function 1.00.07.35
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
process.

Signed-off-by: Abhishek Ranka <asranka@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
6 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 <sakhtar@ti.com>
6 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 <sakhtar@ti.com>
6 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 <jgutierrez@ti.com>
6 years agoDEH: Add watchdog timer for M3 cores 1.00.06.34
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 <sakhtar@ti.com>
6 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 <sakhtar@ti.com>
6 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 <sakhtar@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoUtils: Update resources table for trace buffer size 1.00.05.33
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 <sakhtar@ti.com>
6 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 <sarthak@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoTrace: Relocate trace buffer and add dump support 1.00.04.32
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 <jgutierrez@ti.com>
6 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 <sakhtar@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
6 years agoSamples: Request GPT9 instead of GPT3 in resmgr sample 1.00.03.31
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 <jgutierrez@ti.com>
6 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
mask.

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
6 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 <jgutierrez@ti.com>
6 years agoResources: Adjust memory map for increased code size 1.00.02.30
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 <s-anna@ti.com>
6 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 <s-anna@ti.com>
6 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 <s-anna@ti.com>
6 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 <s-anna@ti.com>
6 years agoResources: Add 1D IO buffers to resource table and fix addresses 1.00.01.29
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 <s-anna@ti.com>
6 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 <fernando.lugo@ti.com>
6 years agoUtils: Update the firmware to carry section physical addresses 1.00.00.28
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 <s-anna@ti.com>
6 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 <s-anna@ti.com>
6 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
_IpcResource_translateError.

Signed-off-by: Fernando Guzman Lugo <fernando.lugo@ti.com>
6 years agoUtils: Adjust the permissions on script files 1.00.00.27
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 <s-anna@ti.com>
6 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

ti.tools.build 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 <a0783926@ti.com>
Signed-off-by: Shahid Akhtar <sakhtar@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
6 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 <s-anna@ti.com>
6 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 <s-anna@ti.com>
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 <s-anna@ti.com>
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 <s-anna@ti.com>
Signed-off-by: G Anthony <a0783926@ti.com>
Signed-off-by: Shreyas Prasad <shreyasp@ti.com>
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
environment.

Signed-off-by: G Anthony <a0783926@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
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 <a0783926@ti.com>
Signed-off-by: Mark Grosen <mgrosen@ti.com>
Signed-off-by: Miguel Vadillo <vadillo@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
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 <a0783926@ti.com>
Signed-off-by: Fernando Guzman Lugo <fernando.lugo@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
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 <shreyasp@ti.com>
Signed-off-by: G Anthony <a0783926@ti.com>
Signed-off-by: Fernando Guzman Lugo <fernando.lugo@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
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 <vadillo@ti.com>
Signed-off-by: G Anthony <a0783926@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>