Remove VRING_USED_F_NO_NOTIFY flag in VirtQueue_kick and add barriers on QNX
This commit removes usage of VRING_USED_F_NO_NOTIFY flag in VirtQueue_kick on
QNX. This causes an interrupt to be sent for every buffer.
Also, barriers are added where appropriate to prevent any race condition due
to the Cortex-A15 weak memory model.
This addresses SDOCM00114151.
Signed-off-by: VW <vwan@ti.com>
This commit removes usage of VRING_USED_F_NO_NOTIFY flag in VirtQueue_kick on
QNX. This causes an interrupt to be sent for every buffer.
Also, barriers are added where appropriate to prevent any race condition due
to the Cortex-A15 weak memory model.
This addresses SDOCM00114151.
Signed-off-by: VW <vwan@ti.com>
Build libipc and libutils in QNX for dynamic linking
This addresses SDOCM00113498.
Signed-off-by: VW <vwan@ti.com>
This addresses SDOCM00113498.
Signed-off-by: VW <vwan@ti.com>
Properly free previously allocated file path string and other minor cleanup
Signed-off-by: VW <vwan@ti.com>
Signed-off-by: VW <vwan@ti.com>
Add carriage return to strings returned by /dev/ipc-file/* and /dev/ipc-state/*
Signed-off-by: VW <vwan@ti.com>
Signed-off-by: VW <vwan@ti.com>
Allow QNX IPC resource manager to be launched without starting any core
This commit allows the resource manager to be launched without specifying
any core in its core list. This is useful now that cores can be started
at a subsequent time.
Signed-off-by: VW <vwan@ti.com>
This commit allows the resource manager to be launched without specifying
any core in its core list. This is useful now that cores can be started
at a subsequent time.
Signed-off-by: VW <vwan@ti.com>
Reject all operations on DSP2 in QNX
Since DSP2 is not supported on QNX, we need to reject all attempts at
interacting with DSP2 using the new start/stop feature.
Signed-off-by: VW <vwan@ti.com>
Since DSP2 is not supported on QNX, we need to reject all attempts at
interacting with DSP2 using the new start/stop feature.
Signed-off-by: VW <vwan@ti.com>
Prevent SR0 owner from being stopped if host process is still using GateMP
Signed-off-by: VW <vwan@ti.com>
Signed-off-by: VW <vwan@ti.com>
Fix an issue where disabling mailbox interrupts on DSP1 disables IPU interrupts
Signed-off-by: VW <vwan@ti.com>
Signed-off-by: VW <vwan@ti.com>
Add initial support to start/stop cores after launching QNX IPC resource manager
This commit adds the ability to start and stop slave cores after the QNX
IPC resource manager has been previously launched, with at least a few known
caveats that would be fixed subsequently.
It addresses SDOCM00113295.
Signed-off-by: VW <vwan@ti.com>
This commit adds the ability to start and stop slave cores after the QNX
IPC resource manager has been previously launched, with at least a few known
caveats that would be fixed subsequently.
It addresses SDOCM00113295.
Signed-off-by: VW <vwan@ti.com>
Fix "@link @setConfig", should be "@link #setConfig"
SDOCM00113338 fix: reduce number of Tasks for messageq_multi.c
Also reduce the maximum number of threads supported in MessageQMulti.c
The need for this fix arose when the BIOS heap size was reduced in
some .cfg files in packages/ti/ipc/tests. The new, smaller heap was
not sufficient for allocating 55 Tasks (it failed at about the 30th
Task).
Also reduce the maximum number of threads supported in MessageQMulti.c
The need for this fix arose when the BIOS heap size was reduced in
some .cfg files in packages/ti/ipc/tests. The new, smaller heap was
not sufficient for allocating 55 Tasks (it failed at about the 30th
Task).
SDOCM00113339 fix: change TMS320TCI6630 to TMS320TCI6630K2L
SDOCM00113341 fix: restrict writing Ipc_Reserved struct to core's own area
In Ipc_attach(), when a 'memReq' size is 0, a core can write to another
core's Ipc_Reserved struct in SR0 when it isn't supposed to *ever* write
another core's area. The incorrect assignment needs to be done only when
MultiProc_self() < remoteProcId, similarly to how it is done in other places,
which ensures that a core is writing to only its own IpcReserved area.
In Ipc_attach(), when a 'memReq' size is 0, a core can write to another
core's Ipc_Reserved struct in SR0 when it isn't supposed to *ever* write
another core's area. The incorrect assignment needs to be done only when
MultiProc_self() < remoteProcId, similarly to how it is done in other places,
which ensures that a core is writing to only its own IpcReserved area.
SDOCM00113171 fix: release NameServerRemoteRpmsg gate on timeout
The NameServerRemoteRpmsg_get() function has a timeout-based Semaphore_pend
that can return failure when the timeout expires. The function returns
without releasing the gate when the timeout failure happens. This causes
any other thread to block when calling MessageQ_open(), while subsequent
MessageQ_open() calls on the same thread can succeed.
The NameServerRemoteRpmsg_get() function has a timeout-based Semaphore_pend
that can return failure when the timeout expires. The function returns
without releasing the gate when the timeout failure happens. This causes
any other thread to block when calling MessageQ_open(), while subsequent
MessageQ_open() calls on the same thread can succeed.
Move Watchdog module configuration assignments to module$use()
When the ti.deh package is loaded the Watchdog module$meta$init() method
is run. If the package is loaded by an architecture/device that is not
supported by Watchdog then module$meta$init() fails and the whole
configuration fails. This happens even when the Watchdog module is *not*
used, such as when the ti.deh package gets loaded as a result of an
xdc.module() reference.
When the ti.deh package is loaded the Watchdog module$meta$init() method
is run. If the package is loaded by an architecture/device that is not
supported by Watchdog then module$meta$init() fails and the whole
configuration fails. This happens even when the Watchdog module is *not*
used, such as when the ti.deh package gets loaded as a result of an
xdc.module() reference.
Fix recovery mechanism for late-attach use-case in QNX
This patch adds support for recovery from MMU faults, exceptions,
and watchdog timeouts when 'late-attached' to a slave core (SDOCM00112666).
Signed-off-by: VW <vwan@ti.com>
This patch adds support for recovery from MMU faults, exceptions,
and watchdog timeouts when 'late-attached' to a slave core (SDOCM00112666).
Signed-off-by: VW <vwan@ti.com>
Use core-specific WUGEN masks for suspend on OMAP
The WUGEN event masks for each core are set to values appropriate
for the architecture and core.
A new API is added that allows the application to control the WUGEN
event mask (IpcPower_{get,set}WugenEvtMask()).
Addresses CQ SDOCM00108585.
The WUGEN event masks for each core are set to values appropriate
for the architecture and core.
A new API is added that allows the application to control the WUGEN
event mask (IpcPower_{get,set}WugenEvtMask()).
Addresses CQ SDOCM00108585.
Update QNX Makefile to setup environment for QNX 6.6.0
Signed-off-by: VW <vwan@ti.com>
Signed-off-by: VW <vwan@ti.com>
Linux: GameMP inUse arrays had invalid address mappings
The GameMP address for the inUse arrays were being assigned incorrectly.
A page alignment was originally needed to properly map the arrays in
user space. After mapping, the alignment difference wasn't being taken
into consideration.
The GameMP address for the inUse arrays were being assigned incorrectly.
A page alignment was originally needed to properly map the arrays in
user space. After mapping, the alignment difference wasn't being taken
into consideration.
Add late-attach support for IPUs in QNX
This commit addresses CQ SDOCM00108582.
Signed-off-by: VW <vwan@ti.com>
This commit addresses CQ SDOCM00108582.
Signed-off-by: VW <vwan@ti.com>
9 years agoPrevent responses to timed-out NameServer requests from disrupting later reqs 3.23.00.00_eng
Prevent responses to timed-out NameServer requests from disrupting later reqs
This commit fixes the issue in SDOCM00112106 in QNX and BIOS. It adds a
sequence number to each NameServer message, so that when responses come
back this number can be used to identify the relevant response and ignore
the stale ones.
Signed-off-by: VW <vwan@ti.com>
This commit fixes the issue in SDOCM00112106 in QNX and BIOS. It adds a
sequence number to each NameServer message, so that when responses come
back this number can be used to identify the relevant response and ignore
the stale ones.
Signed-off-by: VW <vwan@ti.com>
Linux: Addresses timed-out NameServer requests in LAD
This commit fixes the issue in SDOCM00112106 on the Linux side. It
adds a sequence number to NameServer message so that responses can
be properly identified.
This commit fixes the issue in SDOCM00112106 on the Linux side. It
adds a sequence number to NameServer message so that responses can
be properly identified.
Fix MultiProc_self() in QNX to return the correct value
This commit fixes MultiProc_getConfig, so that its returned data structure
does not get corrupted. This in turn fixes MultiProc_self(), which
was returning the corrupted id.
This addresses CQ SDOCM00108594.
Signed-off-by: VW <vwan@ti.com>
This commit fixes MultiProc_getConfig, so that its returned data structure
does not get corrupted. This in turn fixes MultiProc_self(), which
was returning the corrupted id.
This addresses CQ SDOCM00108594.
Signed-off-by: VW <vwan@ti.com>
Add option to provide a valid path to crash dump file in QNX
This commit fixes an error that occurs during the recovery process when
an invalid path is used to store the contents of the remote core logs.
The -c flag can now be passed to the resource manager to specify a valid
path for the file.
This also changes a few instances where error messages were referring to
"syslink".
It addresses SDOCM00108056.
Signed-off-by: VW <vwan@ti.com>
This commit fixes an error that occurs during the recovery process when
an invalid path is used to store the contents of the remote core logs.
The -c flag can now be passed to the resource manager to specify a valid
path for the file.
This also changes a few instances where error messages were referring to
"syslink".
It addresses SDOCM00108056.
Signed-off-by: VW <vwan@ti.com>
9 years agoAdd MmServiceMgr_getId() to allow retrieval of service instance id 3.22 ipc-3.22-next 3.22.02.10_eng 3.22.02.11
Add MmServiceMgr_getId() to allow retrieval of service instance id
This commit adds MmServiceMgr_getId() to allow skeleton functions and service
deletion functions to retrieve the instance id it is acting upon. It also
reverts previous support for MmRpc_getId() and MmServiceMgr_register2.
Signed-off-by: VW <vwan@ti.com>
This commit adds MmServiceMgr_getId() to allow skeleton functions and service
deletion functions to retrieve the instance id it is acting upon. It also
reverts previous support for MmRpc_getId() and MmServiceMgr_register2.
Signed-off-by: VW <vwan@ti.com>
Reduce sizes of data footprint heavy hitters for benefit of K2E
Since K2E has "only" 512 KB of L2SRAM (other Keystone devices have
1024 KB or more), and since Keystone is modeled to put everything in
L2SRAM, reduce the size of BIOS heap, SysMin buffer, and MessageQ heap.
Also remove NameServerApp from K2E's tests since it is still blowing
its memory budget (will fix later).
Since K2E has "only" 512 KB of L2SRAM (other Keystone devices have
1024 KB or more), and since Keystone is modeled to put everything in
L2SRAM, reduce the size of BIOS heap, SysMin buffer, and MessageQ heap.
Also remove NameServerApp from K2E's tests since it is still blowing
its memory budget (will fix later).
Update help text of rpmsg-rpc-stress test for new options
Signed-off-by: VW <vwan@ti.com>
Signed-off-by: VW <vwan@ti.com>
Support in QNX MmRpc/MmServiceMgr to identify deleted instance during cleanup
This commit adds the MmRpc_getId API on host to return a unique id for
each MmRpc instance of a service. This id is passed to the cleanup function
registered in the newly introduced MmServiceMgr_register2() so that it can
clean up after a given MmRpc instance.
This commit addresses SDOCM00108138
Signed-off-by: VW <vwan@ti.com>
This commit adds the MmRpc_getId API on host to return a unique id for
each MmRpc instance of a service. This id is passed to the cleanup function
registered in the newly introduced MmServiceMgr_register2() so that it can
clean up after a given MmRpc instance.
This commit addresses SDOCM00108138
Signed-off-by: VW <vwan@ti.com>
Fix QNX build issue in Windows when QNX_CFLAGS is empty
This commit fixes the error where recurse.mk is not found on Windows if
QNX_CFLAGS is left empty in products.mak
Signed-off-by: VW <vwan@ti.com>
This commit fixes the error where recurse.mk is not found on Windows if
QNX_CFLAGS is left empty in products.mak
Signed-off-by: VW <vwan@ti.com>
SDOCM00108167 Uninitialized variable in notify driver template file
When building for a single processor (i.e. MultiProc has only one
processor), the generated function NotifySetup_sharedMemReq did
not initialize memReq. This is a special use-case for Vision SDK.
When building for a single processor (i.e. MultiProc has only one
processor), the generated function NotifySetup_sharedMemReq did
not initialize memReq. This is a special use-case for Vision SDK.
SDOCM00108149 Incorrect index computation in NotifySetup for v7M and v7A
When computing the mailbox table index in NotifySetup_plugHwi, the local
MultiProcID was used. It should have been using the local virtual ID. The
same bug was in NotifySetup_unplugHwi.
When computing the mailbox table index in NotifySetup_plugHwi, the local
MultiProcID was used. It should have been using the local virtual ID. The
same bug was in NotifySetup_unplugHwi.
9 years agoAdd option IPC_DISABLE_WATCHDOG to prevent plug of watchdog interrupt handlers 3.22.01.06_eng
Add option IPC_DISABLE_WATCHDOG to prevent plug of watchdog interrupt handlers
This commit adds a compile option, IPC_DISABLE_WATCHDOG, that allows non-deh
users in need of GP timers to prevent watchdog interrupt handlers to be
plugged on the host in QNX. This option can be specified via the variable
QNX_CFLAGS in products.mak.
Signed-off-by: VW <vwan@ti.com>
This commit adds a compile option, IPC_DISABLE_WATCHDOG, that allows non-deh
users in need of GP timers to prevent watchdog interrupt handlers to be
plugged on the host in QNX. This option can be specified via the variable
QNX_CFLAGS in products.mak.
Signed-off-by: VW <vwan@ti.com>
SDOCM00108114 Link error when building with DCE on IPU/Vayu
The notify setup module for vayu was unconditionally pulling in the
notify shared memory driver which, in turn, pulled in the ti.sdo.ipc
package. This caused undefined references when building an executable
for DCE because it was not supposed to use any IPC modules. The notify
driver now has a check to see if it should pull in IPC modules or not.
The notify setup module for vayu was unconditionally pulling in the
notify shared memory driver which, in turn, pulled in the ti.sdo.ipc
package. This caused undefined references when building an executable
for DCE because it was not supposed to use any IPC modules. The notify
driver now has a check to see if it should pull in IPC modules or not.
9 years agoFix error from calling MultiProc_getId with non-SMP IPU core name on OMAP5 QNX 3.22.00.05 3.30.00.00_eng
Fix error from calling MultiProc_getId with non-SMP IPU core name on OMAP5 QNX
Code in ipu_pm.c that was not previously exercised is now giving an error
when a watchdog timer interrupt is caught. This commit provides a fix.
Signed-off-by: VW <vwan@ti.com>
Code in ipu_pm.c that was not previously exercised is now giving an error
when a watchdog timer interrupt is caught. This commit provides a fix.
Signed-off-by: VW <vwan@ti.com>
Stop watchdog timers when shutting down VAYU IPU
This commit stops the timers when shutting down the IPU, and ensures
clean-up is performed properly when the resource manager is terminated.
Signed-off-by: VW <vwan@ti.com>
This commit stops the timers when shutting down the IPU, and ensures
clean-up is performed properly when the resource manager is terminated.
Signed-off-by: VW <vwan@ti.com>
Fix wrong OMAP5 #define
This commit corrects a typo to use SYSLINK_QNX_OMAP5430
instead of SYSLINK_QNX_OMAP5, which caused watchdog interrupts to
not be caught on the host OMAP5.
Signed-off-by: VW <vwan@ti.com>
This commit corrects a typo to use SYSLINK_QNX_OMAP5430
instead of SYSLINK_QNX_OMAP5, which caused watchdog interrupts to
not be caught on the host OMAP5.
Signed-off-by: VW <vwan@ti.com>
Missing dependency on NotifySetup module.
The InterruptIpu and InterruptHost modules call into the NotifySetup
module but failed to declare a dependency on it during configuration.
Cleaned up use of local variables, removed unused variables.
The InterruptIpu and InterruptHost modules call into the NotifySetup
module but failed to declare a dependency on it during configuration.
Cleaned up use of local variables, removed unused variables.
Add support for watchdog timer interrupts on DRA7xx IPU
This commit adds QNX support for watchdog timer interrupts. The resource
manager schedules recovery whenever an interrupt from GPTimer 4 or 9
is received.
Only one of IPU1 or IPU2 can use watchdog timers.
Signed-off-by: VW <vwan@ti.com>
This commit adds QNX support for watchdog timer interrupts. The resource
manager schedules recovery whenever an interrupt from GPTimer 4 or 9
is received.
Only one of IPU1 or IPU2 can use watchdog timers.
Signed-off-by: VW <vwan@ti.com>
SDOCM00107743 Optimization flags not removed for debug builds
This was an GNU template bug. The template incorrectly referenced the
BIOS build module instead of the IPC build module.
This was an GNU template bug. The template incorrectly referenced the
BIOS build module instead of the IPC build module.
SDOCM00106584 Notify mailbox driver support on DRA7xx (IPU, HOST) - Part 3
Added documentation to NotifySetup module explaining how to use and
configure the notify drivers. Used nodoc tag to hide functions which are
only to be used by other driver modules. Final commit for this feature.
Added documentation to NotifySetup module explaining how to use and
configure the notify drivers. Used nodoc tag to hide functions which are
only to be used by other driver modules. Final commit for this feature.
SDOCM00106584 Notify mailbox driver support on DRA7xx (IPU, HOST) - Part 2
Added notify mailbox driver support for HOST. This implementation is
very similar to the IPU version. Removed startup function. Interrupt
ISR re-write to match InterruptIpu module. Moved HOST MMU setup from
InterruptHost to NotifySetup.
Code cleanup in NotifyDriverMbx module. All processors now use the
same implementation. Fixed include files. Removed dead code from
InterruptArp32 and InterruptIpu modules. Code cleanup in InterruptDsp
and NotifySetup modules.
Added NotifyDriverMbx to Build.xs file list for A15g.
Added notify mailbox driver support for HOST. This implementation is
very similar to the IPU version. Removed startup function. Interrupt
ISR re-write to match InterruptIpu module. Moved HOST MMU setup from
InterruptHost to NotifySetup.
Code cleanup in NotifyDriverMbx module. All processors now use the
same implementation. Fixed include files. Removed dead code from
InterruptArp32 and InterruptIpu modules. Code cleanup in InterruptDsp
and NotifySetup modules.
Added NotifyDriverMbx to Build.xs file list for A15g.
SDOCM00106584 Notify mailbox driver support on DRA7xx (IPU, HOST) - Part 1
Added notify mailbox driver support for IPU. The InterruptIpu module
uses the NotifySetup module to dispatch interrupt to the correct notify
driver. The InterruptIpu ISR no longer checks all mailboxes for new
messages because the NotifySetup dispatch ISR already did this. Added
IPU support to the NotifySetup module.
The NotifyDriverMbx module now supports IPU. The code is the same as for
DSP and EVE. Added the module to product library builds for M3 and M4.
Added two new sub-mailboxes to the mailbox table. These are needed for
IPU1-0 to IPU1-1 communication when using the mailbox driver. For shared
memory driver, they did not use a mailbox for interrupt. They used
internal IPU interrupt.
Removed module startup method from InterruptDsp and InterruptIpu modules.
Consolidated startup code in NotifySetup. The NotifyDriverMbx startup
method was also consolidated (but not yet removed).
Removed interruptTable from InterruptDsp, InterruptIpu and NotifyDriverMbx
modules. Consolidated in NotifySetup. Added access method to NotifySetup
to fetch interrupt number from table.
Added new mailboxes to TableInit.xs: generateTable() method.
Added notify mailbox driver support for IPU. The InterruptIpu module
uses the NotifySetup module to dispatch interrupt to the correct notify
driver. The InterruptIpu ISR no longer checks all mailboxes for new
messages because the NotifySetup dispatch ISR already did this. Added
IPU support to the NotifySetup module.
The NotifyDriverMbx module now supports IPU. The code is the same as for
DSP and EVE. Added the module to product library builds for M3 and M4.
Added two new sub-mailboxes to the mailbox table. These are needed for
IPU1-0 to IPU1-1 communication when using the mailbox driver. For shared
memory driver, they did not use a mailbox for interrupt. They used
internal IPU interrupt.
Removed module startup method from InterruptDsp and InterruptIpu modules.
Consolidated startup code in NotifySetup. The NotifyDriverMbx startup
method was also consolidated (but not yet removed).
Removed interruptTable from InterruptDsp, InterruptIpu and NotifyDriverMbx
modules. Consolidated in NotifySetup. Added access method to NotifySetup
to fetch interrupt number from table.
Added new mailboxes to TableInit.xs: generateTable() method.
Add new flag to resource manager to disable recovery
This commit adds a new flag to disable the recovery mechanism in the QNX
resource manager. This is useful for debugging the slave processors and
prevents their state from being wiped in the event of a crash. (SDOCM00107765)
Signed-off-by: VW <vwan@ti.com>
This commit adds a new flag to disable the recovery mechanism in the QNX
resource manager. This is useful for debugging the slave processors and
prevents their state from being wiped in the event of a crash. (SDOCM00107765)
Signed-off-by: VW <vwan@ti.com>
Modify rpmsg-rpc-stress test to generate exceptions and watchdog timeouts
Fix Deh/Watchdog packaging issues, move StackDbg to ti/deh
Fixes various packaging problems, including moving StackDbg from
ti/trace to ti/deh.
Fix IpuSmp.cfg to use correct Timer index for GPTimer3 (for OMAP5 IPU).
Cleaned up test configs wrt/ using Deh. Config files for slaves that
have Deh/Watchdog but are not officially supported have commented-out
Deh/Watchdog config (OMAP5 IPU & DRA7XX IPU2 are the only slaves that
are officially supported).
Fixes various packaging problems, including moving StackDbg from
ti/trace to ti/deh.
Fix IpuSmp.cfg to use correct Timer index for GPTimer3 (for OMAP5 IPU).
Cleaned up test configs wrt/ using Deh. Config files for slaves that
have Deh/Watchdog but are not officially supported have commented-out
Deh/Watchdog config (OMAP5 IPU & DRA7XX IPU2 are the only slaves that
are officially supported).
Code cleanup to remove unused VirtQueue functions on QNX
Signed-off-by: VW <vwan@ti.com>
Signed-off-by: VW <vwan@ti.com>
Update MessageQMulti test to support up to 55 threads
Signed-off-by: VW <vwan@ti.com>
Signed-off-by: VW <vwan@ti.com>
Add INTMEM resource type support in QNX
This commit adds support for the new INTMEM resource type (SDOCM00107479).
For this resource type, we map the entry only for the loader on the host,
without mapping it to the slave MMU.
This commit also removes support of the hard-coded static entries defined
in the address translation table, which was originally there to ensure
slave internal memories are always mapped. To match up with the Linux
implementation we'll now rely on the INTMEM resource type instead.
Note that this does break compatibility with slave executables that were
previously built without the INTMEM resource entries but were relying
on the hard-coded internal memory definitions in the ipc resource manager.
Signed-off-by: VW <vwan@ti.com>
This commit adds support for the new INTMEM resource type (SDOCM00107479).
For this resource type, we map the entry only for the loader on the host,
without mapping it to the slave MMU.
This commit also removes support of the hard-coded static entries defined
in the address translation table, which was originally there to ensure
slave internal memories are always mapped. To match up with the Linux
implementation we'll now rely on the INTMEM resource type instead.
Note that this does break compatibility with slave executables that were
previously built without the INTMEM resource entries but were relying
on the hard-coded internal memory definitions in the ipc resource manager.
Signed-off-by: VW <vwan@ti.com>
Add subtest into rpmsg-rpc-stress test to trigger program-access MMU fault
This commit enhances the rpmsg-rpc-stress test to allow it to trigger MMU
fault via instruction fetch.
Signed-off-by: VW <vwan@ti.com>
This commit enhances the rpmsg-rpc-stress test to allow it to trigger MMU
fault via instruction fetch.
Signed-off-by: VW <vwan@ti.com>
Linux/Android: Option to set LAD working dir permissions
Added an optional flag (-p) to LAD, to allow users to set the permissions
of LAD's working directory at launch.
This is critical, if applications using IPC stack (MessageQ) are executed
in user-space while LAD is started as root. Without proper directory
permissions the user application will be unable to talk to the LAD daemon.
Added an optional flag (-p) to LAD, to allow users to set the permissions
of LAD's working directory at launch.
This is critical, if applications using IPC stack (MessageQ) are executed
in user-space while LAD is started as root. Without proper directory
permissions the user application will be unable to talk to the LAD daemon.
Add Deh/Watchdog support for OMAP5 & DRA7XX remote cores
The ti/deh package supports DSPs and IPUs, although the DSP support
needs some further work (Exception "dump" from SYS/BIOS when watchdog
fires is not valid, all zeroes for now).
The ti/ipc/tests have Deh/Watchdog enabled for IPU on OMAP5 and IPU2
on DRA7XX.
The new content contained herein originally came from:
http://git.omapzoom.org/?p=repo/sysbios-rpmsg.git;a=summary
The repo HEAD at the time of copying was:
commit 18c2b758f0674ee0baf95603248c6303afd9c854
This repo supported Deh/Watchdog for OMAP4/5.
The ti/deh package supports DSPs and IPUs, although the DSP support
needs some further work (Exception "dump" from SYS/BIOS when watchdog
fires is not valid, all zeroes for now).
The ti/ipc/tests have Deh/Watchdog enabled for IPU on OMAP5 and IPU2
on DRA7XX.
The new content contained herein originally came from:
http://git.omapzoom.org/?p=repo/sysbios-rpmsg.git;a=summary
The repo HEAD at the time of copying was:
commit 18c2b758f0674ee0baf95603248c6303afd9c854
This repo supported Deh/Watchdog for OMAP4/5.
NotifySetup_plugHwi() - initialize restore ier mask
On ARP32, when plugging a Hwi, specify the restore ier mask. This is
needed because we use a custom bit mask for the disable ier mask.
On ARP32, when plugging a Hwi, specify the restore ier mask. This is
needed because we use a custom bit mask for the disable ier mask.
Fixed minor typo in comment.
Fix MessageQ to support more than 52 instances in QNX
This fix changes MessageQ to obtain a port number assignment from MessageQCopy
and use it as local queue id as opposed to having MessageQ manage the ids
itself. This ensures the port number to be above 1024, so that it does not
collide with any reserved port such as the one for the Name Service.
This addresses CQ SDOCM00104834.
Signed-off-by: VW <vwan@ti.com>
This fix changes MessageQ to obtain a port number assignment from MessageQCopy
and use it as local queue id as opposed to having MessageQ manage the ids
itself. This ensures the port number to be above 1024, so that it does not
collide with any reserved port such as the one for the Name Service.
This addresses CQ SDOCM00104834.
Signed-off-by: VW <vwan@ti.com>
DRA7XX: Remove hard-coded vring addrs
Replace hard-coded vring addrs with runtime addrs read from
the resource table. This reduces the number of things to change
if the memory map moves around.
Replace hard-coded vring addrs with runtime addrs read from
the resource table. This reduces the number of things to change
if the memory map moves around.
BIOS: Remove dead DRA7XX VirtQueue code
Because BIOS-side virtqueue-based processors never run as the 'host',
half of the protocol is unused. This commit removes that dead code
for the BIOS-side DRA7XX VirtQueue driver.
Because BIOS-side virtqueue-based processors never run as the 'host',
half of the protocol is unused. This commit removes that dead code
for the BIOS-side DRA7XX VirtQueue driver.
OMAP5: Remove hard-coded vring addrs
Replace hard-coded vring addrs with runtime addrs read from
the resource table. This reduces the number of things to change
if the memory map moves around.
Replace hard-coded vring addrs with runtime addrs read from
the resource table. This reduces the number of things to change
if the memory map moves around.
BIOS: Remove dead OMAP5 VirtQueue code
Because BIOS-side virtqueue-based processors never run as the 'host',
half of the protocol is unused. This commit removes that dead code
for the BIOS-side OMAP5 VirtQueue driver.
Because BIOS-side virtqueue-based processors never run as the 'host',
half of the protocol is unused. This commit removes that dead code
for the BIOS-side OMAP5 VirtQueue driver.
Update resource table with physical device address of vrings in QNX
The physical device address of vrings needs to be updated in the
resource table in QNX, after memory has been allocated for these
vrings. This is so that Resource_getVringDA() on the slave side
can return the correct physical device address.
Signed-off-by: VW <vwan@ti.com>
The physical device address of vrings needs to be updated in the
resource table in QNX, after memory has been allocated for these
vrings. This is so that Resource_getVringDA() on the slave side
can return the correct physical device address.
Signed-off-by: VW <vwan@ti.com>
Linux: Use DESTDIR as configure --prefix option
If the user sets DESTDIR (e.g. in products.mak), pass that value
via the --prefix= option to ./configure.
Also relocate the DESTDIR variable definition in products.mak to
reflect it's used outside of QNX.
If the user sets DESTDIR (e.g. in products.mak), pass that value
via the --prefix= option to ./configure.
Also relocate the DESTDIR variable definition in products.mak to
reflect it's used outside of QNX.
Create Keystone platform instances with no external DDR defined
On MAR-based cores (i.e., C6x), SYS/BIOS will, by default, set the
"cacheable" bit for any external memory that it "sees", i.e., any
external memory that is defined for the platform. This happens regardless
of whether or not that memory is used for program placement. This
cacheable-ness is somewhat hidden to the programmer.
In order to offer better control of this, Keystone platform instances are
created with no external memory defined. This allows all MAR pages to be
tagged "non-cached" by default, and the programmer is free to set MAR bits
to their liking.
On MAR-based cores (i.e., C6x), SYS/BIOS will, by default, set the
"cacheable" bit for any external memory that it "sees", i.e., any
external memory that is defined for the platform. This happens regardless
of whether or not that memory is used for program placement. This
cacheable-ness is somewhat hidden to the programmer.
In order to offer better control of this, Keystone platform instances are
created with no external memory defined. This allows all MAR pages to be
tagged "non-cached" by default, and the programmer is free to set MAR bits
to their liking.
MultiProc: API Guide updates (doxygen)
Clarified OS-specific configuration details.
Added some use case descriptions for when
MultiProc_setLocalId() might be used.
Clarified OS-specific configuration details.
Added some use case descriptions for when
MultiProc_setLocalId() might be used.
Linux: Tracing ease of use
Allow end users to enable userspace tracing via an environment
variable (IPC_DEBUG). Setting IPC_DEBUG=1 enables 'some' trace,
setting IPC_DEBUG to 2 (or 3) enables more.
This imitates a popular feature from Codec Engine, details here:
http://processors.wiki.ti.com/index.php/CE_DEBUG
Allow end users to enable userspace tracing via an environment
variable (IPC_DEBUG). Setting IPC_DEBUG=1 enables 'some' trace,
setting IPC_DEBUG to 2 (or 3) enables more.
This imitates a popular feature from Codec Engine, details here:
http://processors.wiki.ti.com/index.php/CE_DEBUG
Linux: Fix a few build warnings
Added a missing header, deleted an unused variable.
Added a missing header, deleted an unused variable.
Remove dead code used for support of slaves with MMU disabled in QNX
This commit removes the SysLink_Override_Params mechanism that is used
to turn on support for slaves with MMU disabled. This mode was never
tested, nor do we anticipate supporting this in the future, given
the benefits of an MMU.
Signed-off-by: VW <vwan@ti.com>
This commit removes the SysLink_Override_Params mechanism that is used
to turn on support for slaves with MMU disabled. This mode was never
tested, nor do we anticipate supporting this in the future, given
the benefits of an MMU.
Signed-off-by: VW <vwan@ti.com>
QNX: Remove dead virtio-related macros
Note virtio in this case is the virtualized platform, not the
protocol rpmsg is built on.
We no longer support OMAP5 or DRA7XX-based virtio platforms,
this commit removes related preprocessor defines set in makefiles
and used throughout the code base.
Note virtio in this case is the virtualized platform, not the
protocol rpmsg is built on.
We no longer support OMAP5 or DRA7XX-based virtio platforms,
this commit removes related preprocessor defines set in makefiles
and used throughout the code base.
QNX: Stop building early for unsupported platforms
Catch an unsupported platform sooner with a simple check.
Without this check, the build proceeds and fails halfway through with
a confusing error - in my case it was when the loader was being built
and some of the required preprocessor defines weren't set.
Catch an unsupported platform sooner with a simple check.
Without this check, the build proceeds and fails halfway through with
a confusing error - in my case it was when the loader was being built
and some of the required preprocessor defines weren't set.
Fixed 'use' help text to add new -t option in ipc_trace_daemon for QNX
Minor update of the help text to add the option, in case the user uses the
'use' command for help.
This addresses CQ SDOCM00107256.
Signed-off-by: VW <vwan@ti.com>
Minor update of the help text to add the option, in case the user uses the
'use' command for help.
This addresses CQ SDOCM00107256.
Signed-off-by: VW <vwan@ti.com>
Add new resource type and corresponding struct for internal memory
A new resource type TYPE_INTMEM is added that allows specifying internal
memory resources that the kernel will map and later on load ELF file
sections.
This new type replaces TYPE_CRASHDUMP, which is not used or supported.
A new resource type TYPE_INTMEM is added that allows specifying internal
memory resources that the kernel will map and later on load ELF file
sections.
This new type replaces TYPE_CRASHDUMP, which is not used or supported.
Fix VirtQueue_getAvailBuf on QNX to avoid race condition
This is to address SDOCM00106156.
In commit c98d2c5624aac20bcdd738f5a54fbddca045fd69, we have fixed a race
condition on the BIOS side by clearing the VRING_USED_F_NO_NOTIFY flag
prior to checking whether there are remaining buffers. We are now doing
the same on the host side.
Note that this code is not currently exercised on the host, but is simply
maintained to ensure that the VirtQueue module is complete in functionality.
Signed-off-by: VW <vwan@ti.com>
This is to address SDOCM00106156.
In commit c98d2c5624aac20bcdd738f5a54fbddca045fd69, we have fixed a race
condition on the BIOS side by clearing the VRING_USED_F_NO_NOTIFY flag
prior to checking whether there are remaining buffers. We are now doing
the same on the host side.
Note that this code is not currently exercised on the host, but is simply
maintained to ensure that the VirtQueue module is complete in functionality.
Signed-off-by: VW <vwan@ti.com>
Linux: Quiet "unused variable" build warning
For Linux-based devices without GateMP support (e.g. OMAP5, TCI6638),
remove an unused variable declaration.
For Linux-based devices without GateMP support (e.g. OMAP5, TCI6638),
remove an unused variable declaration.
Docs: Minor spec clarifications for MmRpc
Clarify that the 'handle' parameter for various MmRpc APIs must
be valid.
Clarify that the 'handle' parameter for various MmRpc APIs must
be valid.
Build: Removed unused ti.sdo.ipc.build pkg
This package is no longer used and can be removed.
This package is no longer used and can be removed.
SDOCM00106949 IPC interrupt preempts itself on ARP32 (EVE)
Changed default interrupt vector to actual values. When creating Hwi
instances, compute a mask which blocks both interrupt vectors. Set
the mask in Hwi create params.
Changed default interrupt vector to actual values. When creating Hwi
instances, compute a mask which blocks both interrupt vectors. Set
the mask in Hwi create params.
SDOCM00106428 Notify mailbox driver support on DRA7xx (DSP, EVE)
New NotifyDriverMbx module; initial implementation of notify mailbox
driver on dsp and eve only. Added support for multiple notify driver
configs in NotifySetup; requires new dispatch isr for notify events.
The isr will dispatch to the appropriate driver (shm or mbx). Improved
the NotifyDriverShm performance because it checks only the mailboxes
which might have raised the given event instead of always checking all
mailboxes. Added ROV view of NotifyDriverMbx. Added a mailbox tab
which shows inbound and outbound mailbox status. Better ISA handling in
source code and script code. Updated Build module with NotifyDriverMbx.c
to include new driver in IPC product libraries for C66 and ARP32.
New NotifyDriverMbx module; initial implementation of notify mailbox
driver on dsp and eve only. Added support for multiple notify driver
configs in NotifySetup; requires new dispatch isr for notify events.
The isr will dispatch to the appropriate driver (shm or mbx). Improved
the NotifyDriverShm performance because it checks only the mailboxes
which might have raised the given event instead of always checking all
mailboxes. Added ROV view of NotifyDriverMbx. Added a mailbox tab
which shows inbound and outbound mailbox status. Better ISA handling in
source code and script code. Updated Build module with NotifyDriverMbx.c
to include new driver in IPC product libraries for C66 and ARP32.
BIOS: NameServerRemoteNotify callback may have uninitialized var
The callback function for NameServerRemoteNotify may end up with an
uninitialized swiHandle. Though this case should never happen, the handle
should be initialized and an assert must be issued if it remains NULL.
This also fixes a Coverity error with the variable.
The callback function for NameServerRemoteNotify may end up with an
uninitialized swiHandle. Though this case should never happen, the handle
should be initialized and an assert must be issued if it remains NULL.
This also fixes a Coverity error with the variable.
BIOS: NameServerRemote must copy names with 1 char less than max
The strncpy length must be max number of characters - 1 bytes. The last
character will be the null termination thus shouldn't be copied. This
fix addresses a Coverity buffer overrun error.
The strncpy length must be max number of characters - 1 bytes. The last
character will be the null termination thus shouldn't be copied. This
fix addresses a Coverity buffer overrun error.
BIOS: NameServerMessageQ names need proper termination
The NameServerMessageQ instanceName and name strings weren't being
properly null terminated when the names were 1 character less than the
maximum size. This addresses the following bug:
SDOCM00106336: NameServerMessageQ copy of name is not copying null
terminated character
The NameServerMessageQ instanceName and name strings weren't being
properly null terminated when the names were 1 character less than the
maximum size. This addresses the following bug:
SDOCM00106336: NameServerMessageQ copy of name is not copying null
terminated character
Remove dead code that appears to be trying to set L1D cache size to 0
The way to set an L1/L2 cache size is through the Build.platformTable
platform instance creation. The dead code that is removed here was not
only trying to change the cache size at too late a time, it was doing
so by setting a local variable that went nowhere.
The way to set an L1/L2 cache size is through the Build.platformTable
platform instance creation. The dead code that is removed here was not
only trying to change the cache size at too late a time, it was doing
so by setting a local variable that went nowhere.
Eliminate need to specify Syslink_Override_Params on QNX
This commit changes Syslink_Override_Params in Platform.c to an empty
string. It removes the need to specify carveouts in the string, which
was only used for verification purposes when there is a slave-side MMU.
Code associated with the verification of the resource table entries
against these carveouts is removed.
This commit also changes the default for mmuEnable to TRUE, since that
is currently the only mode we support.
This addresses CQ SDOCM00105667.
Signed-off-by: VW <vwan@ti.com>
This commit changes Syslink_Override_Params in Platform.c to an empty
string. It removes the need to specify carveouts in the string, which
was only used for verification purposes when there is a slave-side MMU.
Code associated with the verification of the resource table entries
against these carveouts is removed.
This commit also changes the default for mmuEnable to TRUE, since that
is currently the only mode we support.
This addresses CQ SDOCM00105667.
Signed-off-by: VW <vwan@ti.com>
Add timestamp prefix to LOG[0|1|2]() macros
For the timestamp prefix, subtract the start time (which is established
when the logFile is opened) so that the massive "since the epoch" value
is not displayed. For this, subtract only the timeval.tv_sec (seconds)
value so we don't have to worry about the "borrow" that results when
start_tv.tv_usec > tv.tv_usec (essentially, treat start_tv.tv_usec as 0,
which skews this "relative" time ahead by start_tv.tv_usec microseconds).
For the timestamp prefix, subtract the start time (which is established
when the logFile is opened) so that the massive "since the epoch" value
is not displayed. For this, subtract only the timeval.tv_sec (seconds)
value so we don't have to worry about the "borrow" that results when
start_tv.tv_usec > tv.tv_usec (essentially, treat start_tv.tv_usec as 0,
which skews this "relative" time ahead by start_tv.tv_usec microseconds).
Test: Fix NameServerApp config
IpcMgr_ipcStartup() was being added twice to the BIOS startup
function - once in nameserverapp.cfg (which is removed in this
commit) and again in messageq_common.cfg.xs (which is included
by nameserverapp.cfg). In addition to just being wrong, this
resulted in an abort on Keystone 2 devices.
Also, the MessageQ.SetupTransportProxy was errantly not assigned
in the nameserverapp.cfg script. This resulted in MessageQ.xs
pulling in 'default' MessageQ configuration, which pulled in much
more content than was necessary for this test (for example,
TransportShm, which then pulled in GateMP, SharedRegion, etc). By
explicitly assigning MessageQ.SetupTransportProxy to the
ti.ipc.transports.TransportRpmsgSetup module, these extra [unused]
modules are no longer pulled in.
IpcMgr_ipcStartup() was being added twice to the BIOS startup
function - once in nameserverapp.cfg (which is removed in this
commit) and again in messageq_common.cfg.xs (which is included
by nameserverapp.cfg). In addition to just being wrong, this
resulted in an abort on Keystone 2 devices.
Also, the MessageQ.SetupTransportProxy was errantly not assigned
in the nameserverapp.cfg script. This resulted in MessageQ.xs
pulling in 'default' MessageQ configuration, which pulled in much
more content than was necessary for this test (for example,
TransportShm, which then pulled in GateMP, SharedRegion, etc). By
explicitly assigning MessageQ.SetupTransportProxy to the
ti.ipc.transports.TransportRpmsgSetup module, these extra [unused]
modules are no longer pulled in.
Revert "SDOCM00106428 Add notify mailbox driver support on DRA7xx (Part 1)"
This reverts commit 3be15bd0ee6a26a8c1d712e698f4055b94f47043.
This reverts commit 3be15bd0ee6a26a8c1d712e698f4055b94f47043.
Revert "SDOCM00106428 Add notify mailbox driver support on DRA7xx (Part 2)"
This reverts commit 73882d944bb7b1865f4c35e4bdb35c05bc3da9e5.
This reverts commit 73882d944bb7b1865f4c35e4bdb35c05bc3da9e5.
Revert "SDOCM00106428 Add notify mailbox driver support on DRA7xx (Part 3)"
This reverts commit 65a4b382ea3fc702dedc51f02471149e642772b8.
This reverts commit 65a4b382ea3fc702dedc51f02471149e642772b8.
Fix misuse of SET_BIT macro to clear mailbox-interrupt-status-clear registers
The mailbox interrupt handling code in QNX IPC uses the SET_BIT macro to
clear status bits from the MAILBOX_IRQSTATUS_CLR_u registers. This is wrong,
because the macro does as follows:
>#define SET_BIT(num,pos) ((num) |= (1u << (pos)))
It will read the register and end up clearing *ALL* bits that are pending
during the write-back, as opposed to the specific one it needs to clear. If the
host is in the midst of processing an interrupt from a given core when a second
core writes to its (sub)mailbox, the second payload may be lost.
This commit changes the SET_BIT call to a direct register assignment of the
appropriate bit mask.
Signed-off-by: VW <vwan@ti.com>
The mailbox interrupt handling code in QNX IPC uses the SET_BIT macro to
clear status bits from the MAILBOX_IRQSTATUS_CLR_u registers. This is wrong,
because the macro does as follows:
>#define SET_BIT(num,pos) ((num) |= (1u << (pos)))
It will read the register and end up clearing *ALL* bits that are pending
during the write-back, as opposed to the specific one it needs to clear. If the
host is in the midst of processing an interrupt from a given core when a second
core writes to its (sub)mailbox, the second payload may be lost.
This commit changes the SET_BIT call to a direct register assignment of the
appropriate bit mask.
Signed-off-by: VW <vwan@ti.com>
Increase NAMESERVER_GET_TIMEOUT from 20000 to 40000 microseconds
Product testing revealed that a remote core was occasionally taking
slighly longer than 20000 microseconds to respond (in the negative)
to a NameServer_getRemote() query. We're not sure why it's taking
so long in some cases, as normally the remote core will respond in a
few hundred microseconds.
Doubling the timeout will affect the total query time across multiple
remote cores when some of those cores aren't running NameServer, but
this should be OK since it affects "startup" times with MessageQ_open()
and shouldn't affect normal "execute" times.
Product testing revealed that a remote core was occasionally taking
slighly longer than 20000 microseconds to respond (in the negative)
to a NameServer_getRemote() query. We're not sure why it's taking
so long in some cases, as normally the remote core will respond in a
few hundred microseconds.
Doubling the timeout will affect the total query time across multiple
remote cores when some of those cores aren't running NameServer, but
this should be OK since it affects "startup" times with MessageQ_open()
and shouldn't affect normal "execute" times.
Remove duplicated call to GateMP_close in gatempapp on BIOS side
Signed-off-by: VW <vwan@ti.com>
Signed-off-by: VW <vwan@ti.com>
Build: Switch from ?= assignments to =
products.mak should use the [less confusing] = assignments, rather
than the set-if-not-already-set ?= assignment. This helps with user
readability of the assignments.
products.mak should use the [less confusing] = assignments, rather
than the set-if-not-already-set ?= assignment. This helps with user
readability of the assignments.
SDOCM00106664: Reduce slave-side trace from tests
The slave-side trace enabled by the tests is too high. It obfuscates
actual test output, as well as, in at least one case, was slowing
down the slave-side execution enough to cause host-side timeouts
waiting for replies.
This commit changes some Registry-related masks from ALWAYS_ON
to RUNTIME_OFF to help quiet things down.
The slave-side trace enabled by the tests is too high. It obfuscates
actual test output, as well as, in at least one case, was slowing
down the slave-side execution enough to cause host-side timeouts
waiting for replies.
This commit changes some Registry-related masks from ALWAYS_ON
to RUNTIME_OFF to help quiet things down.
Enable gptimers in PD_IPU domain
This commit adds workaround to enable gptimers in PD_IPU domain on Vayu in QNX.
It enables example ex41_forwardmsg to run successfully.
Signed-off-by: VW <vwan@ti.com>
This commit adds workaround to enable gptimers in PD_IPU domain on Vayu in QNX.
It enables example ex41_forwardmsg to run successfully.
Signed-off-by: VW <vwan@ti.com>
SDOCM00106450 HeapMemMP_free fails to cache invalidate freed...
The freed buffer content (after the header) was left in cache. If
buffer content was dirty, it would eventually be evicted with a
write-back possibly overwriting memory in use by a different core,
and cause heap corruption.
The freed buffer content (after the header) was left in cache. If
buffer content was dirty, it would eventually be evicted with a
write-back possibly overwriting memory in use by a different core,
and cause heap corruption.
SDOCM00106428 Add notify mailbox driver support on DRA7xx (Part 3)
Added notify mailbox driver support for ARP32. The IPC interrupt on
arp32 will dispatch to the appropriate driver (shm or mbx). This
improves the NotifyDriverShm performance because it checks only the
mailboxes which might have raised the given event instead of always
checking all mailboxes. Improved ROV view of NotifyDriverMbx. Added
a mailbox tab which shows inbound and outbound mailbox status. Better
ISA handling in source code and script code.
Added notify mailbox driver support for ARP32. The IPC interrupt on
arp32 will dispatch to the appropriate driver (shm or mbx). This
improves the NotifyDriverShm performance because it checks only the
mailboxes which might have raised the given event instead of always
checking all mailboxes. Improved ROV view of NotifyDriverMbx. Added
a mailbox tab which shows inbound and outbound mailbox status. Better
ISA handling in source code and script code.
Add configurable polling interval to ipc_trace_daemon on QNX
This commit adds a command line parameter to ipc_trace_daemon to set the
polling interval. The default is now set to 0.5 sec as the previous
default was too long. This addresses SDOCM00105472.
Signed-off-by: VW <vwan@ti.com>
This commit adds a command line parameter to ipc_trace_daemon to set the
polling interval. The default is now set to 0.5 sec as the previous
default was too long. This addresses SDOCM00105472.
Signed-off-by: VW <vwan@ti.com>
Linux/Qnx: MessageQBench test must check initial MSG put
The MessageQBench test must ensure the initial MessageQ_put during
the applications handshaking returns successful before continuing.
The MessageQBench test must ensure the initial MessageQ_put during
the applications handshaking returns successful before continuing.
Add IPU1 support in QNX
This commit adds support for IPU1 in QNX. It has the current limitation that
the core cannot be put into deep sleep in the idle task, so the function
IpcPower_idle() must be removed from the idle loop. This issue will be fixed
at a later time.
Signed-off-by: VW <vwan@ti.com>
This commit adds support for IPU1 in QNX. It has the current limitation that
the core cannot be put into deep sleep in the idle task, so the function
IpcPower_idle() must be removed from the idle loop. This issue will be fixed
at a later time.
Signed-off-by: VW <vwan@ti.com>
SDOCM00106428 Add notify mailbox driver support on DRA7xx (Part 2)
Updated Build module with NotifyDriverMbx.c to include new driver
in IPC product libraries (C66, M4, ARP32, A15g).
Updated Build module with NotifyDriverMbx.c to include new driver
in IPC product libraries (C66, M4, ARP32, A15g).
VAYU QNX: Prevent race condition when host is slow to clear interrupts from IPU
This commit prevents the same race condition that was fixed in commit id
feb7a8486ed537033c5aed5b170f52f758bddabe, this time for the IPUs as
the other commit only dealt with the DSP.
Signed-off-by: VW <vwan@ti.com>
This commit prevents the same race condition that was fixed in commit id
feb7a8486ed537033c5aed5b170f52f758bddabe, this time for the IPUs as
the other commit only dealt with the DSP.
Signed-off-by: VW <vwan@ti.com>
SDOCM00106428 Add notify mailbox driver support on DRA7xx (Part 1)
New NotifyDriverMbx module; initial implementation of notify mailbox
driver on dsp only. Added support for multiple notify driver configs
in NotifySetup; requires new dispatch isr for notify events.
New NotifyDriverMbx module; initial implementation of notify mailbox
driver on dsp only. Added support for multiple notify driver configs
in NotifySetup; requires new dispatch isr for notify events.
Linux/Qnx: MessageQ msg cannot be freed if put fails
MessageQ msg being put to the transport layer can only be freed
if the msg is successfully placed. Otherwise, it's the responsibility
of the application to free the msg.
MessageQ msg being put to the transport layer can only be freed
if the msg is successfully placed. Otherwise, it's the responsibility
of the application to free the msg.