summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 9450f67)
raw | patch | inline | side by side (parent: 9450f67)
author | vwan@ti.com <vwan@ti.com> | |
Fri, 8 Nov 2013 02:02:43 +0000 (18:02 -0800) | ||
committer | Chris Ring <cring@ti.com> | |
Fri, 8 Nov 2013 20:44:40 +0000 (12:44 -0800) |
Add static memory entry to inform loader of internal memory area on IPU.
Also remove some code that was overriding the static entries.
This addresses SDOCM00104907.
Signed-off-by: VW <vwan@ti.com>
Also remove some code that was overriding the static entries.
This addresses SDOCM00104907.
Signed-off-by: VW <vwan@ti.com>
diff --git a/qnx/src/ipc3x_dev/ti/syslink/family/omap5430/Platform.c b/qnx/src/ipc3x_dev/ti/syslink/family/omap5430/Platform.c
index 8f1eb5b0b12fe3947cc41efac50ac5395454d92c..9bcd6ee85bab40183f8133b952cf0fbe53c79222 100644 (file)
/* Create an instance of the Processor object for
* OMAP5430 */
OMAP5430BENELLIPROC_Params_init (NULL, &ipu0ProcParams, procId);
- pa = cfg->pAddr;
- va = cfg->vAddr;
- memEntries = ipu0ProcParams.memEntries;
- for (i = 0; i < ipu0ProcParams.numMemEntries; i++) {
- memEntries[i].addr[ProcMgr_AddrType_MasterPhys] = pa;
- memEntries[i].addr[ProcMgr_AddrType_MasterKnlVirt] = va;
- pa += memEntries[i].size;
- va += memEntries[i].size;
- }
+
handle->sHandles.ipu0.pHandle = OMAP5430BENELLIPROC_create (
procId,
&ipu0ProcParams);
/* Create an instance of the Processor object for
* OMAP5430 */
OMAP5430BENELLIPROC_Params_init(NULL, &ipu1ProcParams,procId);
- pa = cfg->pAddr;
- va = cfg->vAddr;
- memEntries = ipu1ProcParams.memEntries;
- for (i = 0; i < ipu1ProcParams.numMemEntries; i++) {
- memEntries[i].addr[ProcMgr_AddrType_MasterPhys] = pa;
- memEntries[i].addr[ProcMgr_AddrType_MasterKnlVirt] = va;
- pa += memEntries[i].size;
- va += memEntries[i].size;
- }
+
handle->sHandles.ipu1.pHandle = OMAP5430BENELLIPROC_create(procId,
&ipu1ProcParams);
/* Create an instance of the Processor object for
* OMAP5430 */
OMAP5430BENELLIPROC_Params_init (NULL, &dspProcParams, procId);
- pa = cfg->pAddr_dsp;
- va = cfg->vAddr_dsp;
- memEntries = dspProcParams.memEntries;
- for (i = 0; i < dspProcParams.numMemEntries; i++) {
- memEntries[i].addr[ProcMgr_AddrType_MasterPhys] = pa;
- memEntries[i].addr[ProcMgr_AddrType_MasterKnlVirt] = va;
- pa += memEntries[i].size;
- va += memEntries[i].size;
- }
+
handle->sHandles.dsp.pHandle = OMAP5430BENELLIPROC_create (
procId,
&dspProcParams);
diff --git a/qnx/src/ipc3x_dev/ti/syslink/family/omap5430/ipu/omap5430BenelliHalReset.c b/qnx/src/ipc3x_dev/ti/syslink/family/omap5430/ipu/omap5430BenelliHalReset.c
index ce5b5733c10918e6f63088062693f7cbcba0f8c6..3a8a5b1f2fbe72724efecea7b0fdddd99dd9a62e 100644 (file)
* @sa
*/
Int
-OMAP5430BENELLI_halResetCtrl (Ptr halObj, Processor_ResetCtrlCmd cmd, UInt32 entryPt)
+OMAP5430BENELLI_halResetCtrl (Ptr halObj, Processor_ResetCtrlCmd cmd)
{
Int status = PROCESSOR_SUCCESS;
OMAP5430BENELLI_HalObject * halObject = NULL;
@@ -107,7 +107,7 @@ OMAP5430BENELLI_halResetCtrl (Ptr halObj, Processor_ResetCtrlCmd cmd, UInt32 ent
UINT32 DSPClkStCtrl;
Int ret;
- GT_3trace (curTrace, GT_ENTER, "OMAP5430BENELLI_halResetCtrl", halObj, cmd, entryPt);
+ GT_2trace (curTrace, GT_ENTER, "OMAP5430BENELLI_halResetCtrl", halObj, cmd);
GT_assert (curTrace, (halObj != NULL));
GT_assert (curTrace, (cmd < Processor_ResetCtrlCmd_EndValue));
diff --git a/qnx/src/ipc3x_dev/ti/syslink/family/omap5430/ipu/omap5430BenelliProc.c b/qnx/src/ipc3x_dev/ti/syslink/family/omap5430/ipu/omap5430BenelliProc.c
index 88b1e694282706278a99ed1bc4a462adbf5552fa..b02951720090edb8f301e32b640b13480f799758 100644 (file)
*
* ============================================================================
*
- * Copyright (c) 2010-2011, Texas Instruments Incorporated
+ * Copyright (c) 2010-2013, Texas Instruments Incorporated
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
/*!
* @brief Number of static entries in address translation table.
*/
-#define AddrTable_STATIC_COUNT 0
+#define AddrTable_IPU_STATIC_COUNT 1
+#define AddrTable_DSP_STATIC_COUNT 0
/*!
* @brief max entries in translation table.
/* Default memory regions */
-static UInt32 AddrTable_count = AddrTable_STATIC_COUNT;
+static UInt32 AddrTable_IPU_count = AddrTable_IPU_STATIC_COUNT;
+static UInt32 AddrTable_DSP_count = AddrTable_DSP_STATIC_COUNT;
/* Default memory regions */
static ProcMgr_AddrInfo OMAP5430BENELLIPROC_defaultMemRegions [AddrTable_SIZE] =
{
+ /* L2 RAM */
+ {
+ .addr[ProcMgr_AddrType_MasterKnlVirt] = -1u,
+ .addr[ProcMgr_AddrType_MasterUsrVirt] = -1u,
+ .addr[ProcMgr_AddrType_MasterPhys] = 0x55020000u,
+ .addr[ProcMgr_AddrType_SlaveVirt] = 0x20000000u,
+ .addr[ProcMgr_AddrType_SlavePhys] = -1u,
+ .size = 0x10000u,
+ .isCached = FALSE,
+ .mapMask = ProcMgr_SLAVEVIRT,
+ .isMapped = TRUE,
+ .refCount = 0u /* refCount set to 0 for static entry */
+ },
};
/* Default memory regions for DSP */
OMAP5430BENELLIPROC_ModuleObject OMAP5430IPU0PROC_state =
{
.config_size = sizeof (OMAP5430BENELLIPROC_Config),
- .defInstParams.numMemEntries = AddrTable_STATIC_COUNT,
+ .defInstParams.numMemEntries = AddrTable_IPU_STATIC_COUNT,
.isSetup = FALSE,
.procHandle = NULL,
.gateHandle = NULL
OMAP5430BENELLIPROC_ModuleObject OMAP5430IPU1PROC_state =
{
.config_size = sizeof (OMAP5430BENELLIPROC_Config),
- .defInstParams.numMemEntries = AddrTable_STATIC_COUNT,
+ .defInstParams.numMemEntries = AddrTable_IPU_STATIC_COUNT,
.isSetup = FALSE,
.procHandle = NULL,
.gateHandle = NULL
OMAP5430TESLAPROC_ModuleObject OMAP5430DSPPROC_state =
{
.config_size = sizeof (OMAP5430TESLAPROC_Config),
- .defInstParams.numMemEntries = AddrTable_STATIC_COUNT,
+ .defInstParams.numMemEntries = AddrTable_DSP_STATIC_COUNT,
.isSetup = FALSE,
.procHandle = NULL,
.gateHandle = NULL
{
case PROCTYPE_IPU0:
pMemRegn = OMAP5430BENELLIPROC_defaultMemRegions;
- numMemEntries = AddrTable_count;
+ numMemEntries = AddrTable_IPU_count;
break;
#ifndef SYSLINK_SYSBIOS_SMP
case PROCTYPE_IPU1:
pMemRegn = OMAP5430BENELLIPROC_defaultMemRegions;
- numMemEntries = AddrTable_count;
+ numMemEntries = AddrTable_IPU_count;
break;
#endif
case PROCTYPE_DSP:
pMemRegn = OMAP5430TESLAPROC_defaultMemRegions;
- numMemEntries = AddrTable_count;
+ numMemEntries = AddrTable_DSP_count;
break;
}
SysLink_MemEntry_Block memBlock;
Char configProp[SYSLINK_MAX_NAMELENGTH];
ProcMgr_AddrInfo * pMemRegn = NULL;
+ UInt32 * AddrTable_count = NULL;
GT_2trace (curTrace, GT_ENTER, "OMAP5430BENELLIPROC_attach", handle, params);
case PROCTYPE_IPU0:
pState = &OMAP5430IPU0PROC_state;
pMemRegn = OMAP5430BENELLIPROC_defaultMemRegions;
+ AddrTable_count = &AddrTable_IPU_count;
break;
#ifndef SYSLINK_SYSBIOS_SMP
case PROCTYPE_IPU1:
pState = &OMAP5430IPU1PROC_state;
pMemRegn = OMAP5430BENELLIPROC_defaultMemRegions;
+ AddrTable_count = &AddrTable_IPU_count;
break;
#endif
case PROCTYPE_DSP:
pState = (OMAP5430BENELLIPROC_ModuleObject *)&OMAP5430DSPPROC_state;
pMemRegn = OMAP5430TESLAPROC_defaultMemRegions;
+ AddrTable_count = &AddrTable_DSP_count;
break;
}
if (entry->map == FALSE) {
/* update table with entries which don't require mapping */
- if (AddrTable_count != AddrTable_SIZE) {
- me = &pMemRegn[AddrTable_count];
+ if (*AddrTable_count != AddrTable_SIZE) {
+ me = &pMemRegn[*AddrTable_count];
me->addr[ProcMgr_AddrType_MasterKnlVirt] = -1u;
me->addr[ProcMgr_AddrType_MasterUsrVirt] = -1u;
me->isCached = entry->isCached;
me->mapMask = entry->mapMask;
- AddrTable_count++;
+ (*AddrTable_count)++;
}
else {
status = PROCESSOR_E_FAIL;
status,
"Failed to enable the slave MMU");
}
+ else {
+#endif
+ status = OMAP5430BENELLI_halResetCtrl(object->halObject,
+ Processor_ResetCtrlCmd_MMU_Release);
+ if (status < 0) {
+ /*! @retval status */
+ GT_setFailureReason (curTrace,
+ GT_4CLASS,
+ "OMAP5430BENELLI_halResetCtrl",
+ status,
+ "Reset MMU_Release failed");
+ }
+#if !defined(SYSLINK_BUILD_OPTIMIZE)
+ }
}
}
#endif /* if !defined(SYSLINK_BUILD_OPTIMIZE) */
Int i = 0;
ProcMgr_AddrInfo * ai;
ProcMgr_AddrInfo * pMemRegn = NULL;
+ UInt32 staticCount = 0;
+ UInt32 * AddrTable_count = NULL;
GT_1trace (curTrace, GT_ENTER, "OMAP5430BENELLIPROC_detach", handle);
{
case PROCTYPE_IPU0:
pMemRegn = OMAP5430BENELLIPROC_defaultMemRegions;
+ staticCount = AddrTable_IPU_STATIC_COUNT;
+ AddrTable_count = &AddrTable_IPU_count;
break;
#ifndef SYSLINK_SYSBIOS_SMP
case PROCTYPE_IPU1:
pMemRegn = OMAP5430BENELLIPROC_defaultMemRegions;
+ staticCount = AddrTable_IPU_STATIC_COUNT;
+ AddrTable_count = &AddrTable_IPU_count;
break;
#endif
case PROCTYPE_DSP:
pMemRegn = OMAP5430TESLAPROC_defaultMemRegions;
+ staticCount = AddrTable_DSP_STATIC_COUNT;
+ AddrTable_count = &AddrTable_DSP_count;
break;
}
|| (procHandle->bootMode == ProcMgr_BootMode_NoLoad_Pwr)) {
if (procHandle->procId == PROCTYPE_IPU0 ||
procHandle->procId == PROCTYPE_DSP) {
- /* Disable MMU */
- GT_0trace (curTrace,
+ status = OMAP5430BENELLI_halResetCtrl(object->halObject,
+ Processor_ResetCtrlCmd_MMU_Reset);
+ if (status < 0) {
+ /*! @retval status */
+ GT_setFailureReason (curTrace,
+ GT_4CLASS,
+ "OMAP5430BENELLI_halResetCtrl",
+ status,
+ "Reset MMU failed");
+ }
+ else {
+ /* Disable MMU */
+ GT_0trace (curTrace,
GT_2CLASS,
" OMAP5430BENELLIPROC_detach: "
"Disabling Slave MMU ...");
- status = OMAP5430BENELLI_halMmuCtrl (object->halObject,
+ status = OMAP5430BENELLI_halMmuCtrl (object->halObject,
Processor_MmuCtrlCmd_Disable,
NULL);
#if !defined(SYSLINK_BUILD_OPTIMIZE)
- if (status < 0) {
- GT_setFailureReason (curTrace,
+ if (status < 0) {
+ GT_setFailureReason (curTrace,
GT_4CLASS,
"OMAP5430BENELLIPROC_detach",
status,
"Failed to disable the slave MMU");
- }
+ }
#endif /* if !defined(SYSLINK_BUILD_OPTIMIZE) */
+ }
}
/* delete all dynamically added entries */
- for (i = AddrTable_STATIC_COUNT; i < AddrTable_count; i++) {
+ for (i = staticCount; i < *AddrTable_count; i++) {
ai = &pMemRegn[i];
ai->addr[ProcMgr_AddrType_MasterKnlVirt] = -1u;
ai->addr[ProcMgr_AddrType_MasterUsrVirt] = -1u;
ai->isMapped = FALSE;
ai->refCount = 0u;
}
- object->params.numMemEntries = AddrTable_STATIC_COUNT;
- AddrTable_count = AddrTable_STATIC_COUNT;
+ object->params.numMemEntries = staticCount;
+ *AddrTable_count = staticCount;
//No need to reset.. that will be done in STOP
/* tmpStatus = OMAP5430BENELLI_halResetCtrl (object->halObject,
}
else {
#endif /* if !defined(SYSLINK_BUILD_OPTIMIZE) */
- status = OMAP5430BENELLI_halResetCtrl(object->halObject,
- Processor_ResetCtrlCmd_MMU_Release,
- entryPt);
+
+ if(handle->procId != MultiProc_getId("DSP")) {
+ status = ipu_setup(object->halObject, object->params.memEntries,
+ object->params.numMemEntries);
+ }
+ else {
+ status = tesla_setup(object->halObject,
+ object->params.memEntries,
+ object->params.numMemEntries);
+ }
+
if (status < 0) {
/*! @retval status */
GT_setFailureReason (curTrace,
GT_4CLASS,
"OMAP5430BENELLI_halResetCtrl",
status,
- "Reset MMU_Release failed");
+ "ipu_setup failed");
}
else {
- if(handle->procId != MultiProc_getId("DSP"))
- status = ipu_setup(object->halObject, object->params.memEntries,
- object->params.numMemEntries);
- else
- status = tesla_setup(object->halObject,
- object->params.memEntries,
- object->params.numMemEntries);
+ if (handle->procId == MultiProc_getId("DSP")) {
+ /* Get the user virtual address of the PRM base */
+ sysCtrlMapInfo.src = 0x4A002000;
+ sysCtrlMapInfo.size = 0x1000;
+ sysCtrlMapInfo.isCached = FALSE;
+
+ status = Memory_map (&sysCtrlMapInfo);
+ if (status < 0) {
+ status = PROCESSOR_E_FAIL;
+ GT_setFailureReason (curTrace,
+ GT_4CLASS,
+ "ProcMgr_load",
+ status,
+ "Memory_map failed");
+ }
+ else {
+ *(UInt32 *)(sysCtrlMapInfo.dst + 0x304) = entryPt;
+
+ sysCtrlUnmapInfo.addr = sysCtrlMapInfo.dst;
+ sysCtrlUnmapInfo.size = sysCtrlMapInfo.size;
+ sysCtrlUnmapInfo.isCached = FALSE;
+ Memory_unmap (&sysCtrlUnmapInfo);
+ }
+ }
+ if (status >= 0) {
+ status = OMAP5430BENELLI_halResetCtrl(object->halObject,
+ Processor_ResetCtrlCmd_Release);
+ }
if (status < 0) {
/*! @retval status */
GT_setFailureReason (curTrace,
GT_4CLASS,
"OMAP5430BENELLI_halResetCtrl",
status,
- "ipu_setup failed");
- }
- else {
- if (handle->procId == MultiProc_getId("DSP")) {
- /* Get the user virtual address of the PRM base */
- sysCtrlMapInfo.src = 0x4A002000;
- sysCtrlMapInfo.size = 0x1000;
- sysCtrlMapInfo.isCached = FALSE;
-
- status = Memory_map (&sysCtrlMapInfo);
- if (status < 0) {
- status = PROCESSOR_E_FAIL;
- GT_setFailureReason (curTrace,
- GT_4CLASS,
- "ProcMgr_load",
- status,
- "Memory_map failed");
- }
- else {
- *(UInt32 *)(sysCtrlMapInfo.dst + 0x304) = entryPt;
-
- sysCtrlUnmapInfo.addr = sysCtrlMapInfo.dst;
- sysCtrlUnmapInfo.size = sysCtrlMapInfo.size;
- sysCtrlUnmapInfo.isCached = FALSE;
- Memory_unmap (&sysCtrlUnmapInfo);
- }
- }
- if (status >= 0) {
- status = OMAP5430BENELLI_halResetCtrl(object->halObject,
- Processor_ResetCtrlCmd_Release,
- entryPt);
- }
- if (status < 0) {
- /*! @retval status */
- GT_setFailureReason (curTrace,
- GT_4CLASS,
- "OMAP5430BENELLI_halResetCtrl",
- status,
- "Reset Release failed");
- }
+ "Reset Release failed");
}
}
+
#if !defined(SYSLINK_BUILD_OPTIMIZE)
}
#endif /* if !defined(SYSLINK_BUILD_OPTIMIZE) */
- return status;
+ return status;
}
else {
#endif /* if !defined(SYSLINK_BUILD_OPTIMIZE) */
status = OMAP5430BENELLI_halResetCtrl(object->halObject,
- Processor_ResetCtrlCmd_Reset,
- 0);
+ Processor_ResetCtrlCmd_Reset);
if (status < 0) {
/*! @retval status */
GT_setFailureReason (curTrace,
}
ipu_destroy(object->halObject);
- status = OMAP5430BENELLI_halResetCtrl(object->halObject,
- Processor_ResetCtrlCmd_MMU_Reset,
- 0);
- if (status < 0) {
- /*! @retval status */
- GT_setFailureReason (curTrace,
- GT_4CLASS,
- "OMAP5430BENELLI_halResetCtrl",
- status,
- "Reset MMU failed");
- }
#if !defined(SYSLINK_BUILD_OPTIMIZE)
}
}
else {
status = OMAP5430BENELLI_halResetCtrl(object->halObject,
- Processor_ResetCtrlCmd_Reset,
- 0);
+ Processor_ResetCtrlCmd_Reset);
if (status < 0) {
GT_setFailureReason(curTrace, GT_4CLASS,
"OMAP5430BENELLIPROC_control",
"Error while Resetting proc");
}
else {
- status = OMAP5430BENELLI_halResetCtrl(object->halObject,
- Processor_ResetCtrlCmd_MMU_Reset,
- 0);
+ status = OMAP5430BENELLI_halResetCtrl(
+ object->halObject,
+ Processor_ResetCtrlCmd_MMU_Reset);
if (status < 0) {
GT_setFailureReason(curTrace, GT_4CLASS,
"OMAP5430BENELLIPROC_control",
case Omap5430BenelliProc_CtrlCmd_Resume:
if (procHandle->state == ProcMgr_State_Suspended) {
status = OMAP5430BENELLI_halResetCtrl(object->halObject,
- Processor_ResetCtrlCmd_MMU_Release,
- 0);
+ Processor_ResetCtrlCmd_MMU_Release);
if (status < 0) {
GT_setFailureReason(curTrace, GT_4CLASS,
"OMAP5430BENELLIPROC_control",
"Error while restoring MMU context");
}
else {
- status = OMAP5430BENELLI_halResetCtrl(object->halObject,
- Processor_ResetCtrlCmd_Release,
- 0);
+ status = OMAP5430BENELLI_halResetCtrl(
+ object->halObject,
+ Processor_ResetCtrlCmd_Release);
if (status < 0) {
GT_setFailureReason(curTrace, GT_4CLASS,
"OMAP5430BENELLIPROC_control",
diff --git a/qnx/src/ipc3x_dev/ti/syslink/inc/knl/OMAP5430BenelliHalReset.h b/qnx/src/ipc3x_dev/ti/syslink/inc/knl/OMAP5430BenelliHalReset.h
index e0cba6ed55b367922a65c799976257eba18a08c5..cc17d483a2c31cd73f0c9d176cd242fdb3d433a2 100644 (file)
*
* ============================================================================
*
- * Copyright (c) 2010-2011, Texas Instruments Incorporated
+ * Copyright (c) 2010-2013, Texas Instruments Incorporated
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
/* Function to control reset operations for this slave device. */
-Int OMAP5430BENELLI_halResetCtrl (Ptr halObj, Processor_ResetCtrlCmd cmd,
- UInt32 entryPt);
+Int OMAP5430BENELLI_halResetCtrl (Ptr halObj, Processor_ResetCtrlCmd cmd);
#if defined (__cplusplus)