index fee32241c166b6bb5dc680a50cb24ca7ec2c0700..68168e0c0dfce577d449a18c4290c758c7cd97df 100755 (executable)
uint32_t numDesc,
uint32_t descSize,
uint32_t* pDescMemBase,
- int memRegion)
+ int memRegion,
+ int start_index)
{
//Qmss_MemRegInfo memInfo;
- Int32 result;
- Int n;
- static int netapi_qm_region_index=0;
+ int result;
memset(&memInfo,0,sizeof(Qmss_MemRegInfo));
memInfo.descBase = pDescMemBase;
memInfo.descSize = descSize;
memInfo.descNum = numDesc;
memInfo.manageDescFlag = Qmss_ManageDesc_MANAGE_DESCRIPTOR;
- //memInfo.memRegion = memRegion;
- memInfo.memRegion = -1;
-#if 0
- if(memRegion == TUNE_NETAPI_QM_GLOBAL_REGION)
- {
- memInfo.startIndex = TUNE_NETAPI_QM_START_INDEX; //was 0
- netapi_qm_region_index += numDesc;
- }else if(memRegion ==NETAPI_LOCAL_REGION)
+
+ if (pRmClientHandle)
{
- /* 2nd region for descriptors (perhaps private?) */
- memInfo.startIndex = netapi_qm_region_index;
+ memInfo.memRegion = -1;
+ memInfo.startIndex = QMSS_START_INDEX_NOT_SPECIFIED;
}
else
{
- return -1 ;
+ memInfo.memRegion = memRegion;
+ memInfo.startIndex = start_index;
}
-#endif
+
memset (pDescMemBase, 0, (descSize * numDesc));
result = Qmss_insertMemoryRegion (&memInfo);
-
+
if (result < QMSS_SOK)
{
- netapi_Log ("netapip_qmSetupMemRegion: Qmss_insertMemoryRegion returned error code %d\n", result);
return (-1);
}
- printf("netapip_qmSetupMemRegion: region: %d\n", memInfo.memRegion);
netapi_proc_master->memRegion = memInfo.memRegion;
return 1;
}
result = Qmss_startCfg(&startCfg);
if (result != QMSS_SOK)
{
- netapi_Log ("netapip_startQm: Qmss_start failed with error code %d\n", result);
return (-1);
}
return 1;
nwalSizeInfo_t nwalSizeInfo;
nwal_RetValue nwalRetVal;
nwalGlobCfg_t nwalGlobCfg;
+ nwalBaseAddrCfg_t nwalBaseAddrCfg;
uint8_t count;
int sizes[nwal_N_BUFS];
int aligns[nwal_N_BUFS];
void* bases[nwal_N_BUFS];
Pktlib_HeapCfg heapCfg;
- int32_t errCode;
+ int32_t errCode = 0;
void* pBase = NULL;
NETAPI_PA_SHM_T* paEntry = NULL;
NETAPI_SA_SHM_T* saEntry = NULL;
uint32_t localCtxSize = 0;
memset(p_nwal_context,0,sizeof( NETAPI_NWAL_GLOBAL_CONTEXT_T) );
memset(&nwalGlobCfg,0,sizeof(nwalGlobCfg_t ) );
-
+ memset (&nwalBaseAddrCfg, 0, sizeof(nwalBaseAddrCfg_t));
pBase = hplib_shmOpen();
if (pBase)
{
if(hplib_shmAddEntry(pBase, sizeof(NETAPI_PA_SHM_T), PA_ENTRY) == hplib_OK)
{
paEntry = (NETAPI_PA_SHM_T*)hplib_shmGetEntry(pBase,PA_ENTRY);
- nwalGlobCfg.instPoolBaseAddr = (void *)paEntry;
+ nwalBaseAddrCfg.pInstPoolPaBaseAddr= (void *)paEntry;
}
else
{
- netapi_Log("netapip_initNwal: Unable to Add shared memory segment for PASS\n");
return -1;
}
if(hplib_shmAddEntry(pBase, sizeof(NETAPI_SA_SHM_T), SA_ENTRY) == hplib_OK)
{
saEntry = (NETAPI_SA_SHM_T*)hplib_shmGetEntry(pBase,SA_ENTRY);
- nwalGlobCfg.instPoolSaBaseAddr = (void*) saEntry;
+ nwalBaseAddrCfg.pInstPoolSaBaseAddr= (void*) saEntry;
}
else
{
- netapi_Log("netapip_initNwal: Unable to Add shared memory segment for SASS\n");
return -1;
}
if(hplib_shmAddEntry(pBase, sizeof(NETAPI_NWAL_SHM_T), NWAL_ENTRY) == hplib_OK)
{
- printf("netapip_initNwal: calling shmGetEntry for nwal\n");
nwalEntry = (NETAPI_NWAL_SHM_T*)hplib_shmGetEntry(pBase,NWAL_ENTRY);
- printf("netapip_initNwal: base address of nwal entry: 0x%x\n", (uint32_t) nwalEntry);
}
else
{
- netapi_Log("netapip_initNwal: Unable to Add shared memory segment for SASS\n");
return -1;
}
Pktlib_createHeap(&heapCfg, &errCode);
if(nwalGlobCfg.pa2SaBufPool.bufPool[0].heapHandle == NULL)
{
- netapi_Log ("netapip_initNwal: Pktlib_createHeap:Heap Creation Failed for PA to SA Buffer Pool, Error Code: %d\n",
- errCode);
netapipErrTeardown();
return -1;
}
p_nwal_context->sa2pa_heap = Pktlib_createHeap(&heapCfg, &errCode);
if(nwalGlobCfg.sa2PaBufPool.bufPool[0].heapHandle == NULL)
{
- netapi_Log ("netapip_initNwal: Pktlib_createHeap:Heap Creation Failed for SA to PA Buffer Pool, Error Code: %d\n",
- errCode);
netapipErrTeardown();
return -1;
}
/* Update nwal cfg with virtual PA and SA addresses */
- nwalGlobCfg.paVirtBaseAddr = (uint32_t) netapi_VM_VirtAddr->passCfgVaddr;
+ nwalBaseAddrCfg.paVirtBaseAddr = (uint32_t) netapi_VM_VirtAddr->passCfgVaddr;
- nwalGlobCfg.saVirtBaseAddr = (uint32_t) netapi_VM_VirtAddr->passCfgVaddr +
+ nwalBaseAddrCfg.pSaVirtBaseAddr = (uint32_t) netapi_VM_VirtAddr->passCfgVaddr +
CSL_NETCP_CFG_SA_CFG_REGS -
CSL_NETCP_CFG_REGS;
;
aligns);
if(nwalRetVal != nwal_OK)
{
- netapi_Log ("netapip_initNwal: nwal_getBufferReq Failed %d\n", nwalRetVal);
return nwal_FALSE;
}
if(NETAPI_NWAL_CONFIG_BUFSIZE_NWAL_HANDLE < sizes[nwal_BUF_INDEX_INST])
{
- printf(" 1memSize issue %d %d\n",
- sizes[nwal_BUF_INDEX_INST], NETAPI_NWAL_CONFIG_BUFSIZE_NWAL_HANDLE);
/* Resize Memory */
return nwal_FALSE;
//while(1);
if(NWAL_CHAN_HANDLE_SIZE < sizes[nwal_BUF_INDEX_INT_HANDLES])
{
/* Resize Memory */
- printf(" 2memSize issue %d %d\n",
- sizes[nwal_BUF_INDEX_INT_HANDLES], NWAL_CHAN_HANDLE_SIZE);
- /* Resize Memory */
return nwal_FALSE;
//while(1);
(uint32_t *)Osal_nwalLocToGlobAddr((uint32_t)paEntry->paBuf0);
if((NETAPI_NWAL_CONFIG_BUFSIZE_PA_BUF0) < sizes[nwal_BUF_INDEX_PA_LLD_BUF0])
{
- printf(" 3memSize issue %d %d\n",
- sizes[nwal_BUF_INDEX_PA_LLD_BUF0], NETAPI_NWAL_CONFIG_BUFSIZE_PA_BUF0);
/* Resize Memory */
return nwal_FALSE;
//while(1);
(uint32_t *)Osal_nwalLocToGlobAddr((uint32_t)paEntry->paBuf1);
if((NETAPI_NWAL_CONFIG_BUFSIZE_PA_BUF1) < sizes[nwal_BUF_INDEX_PA_LLD_BUF1])
{
- printf(" 4memSize issue %d %d\n",
- sizes[nwal_BUF_INDEX_PA_LLD_BUF1], NETAPI_NWAL_CONFIG_BUFSIZE_PA_BUF1);
/* Resize Memory */
return nwal_FALSE;
//while(1);
(uint32_t *)Osal_nwalLocToGlobAddr((uint32_t)paEntry->paBuf2);
if((NETAPI_NWAL_CONFIG_BUFSIZE_PA_BUF2) < sizes[nwal_BUF_INDEX_PA_LLD_BUF2])
{
- printf(" 5memSize issue %d %d\n",
- sizes[nwal_BUF_INDEX_PA_LLD_BUF2], NETAPI_NWAL_CONFIG_BUFSIZE_PA_BUF2);
/* Resize Memory */
return nwal_FALSE;
//while(1);
(uint32_t *)Osal_nwalLocToGlobAddr((uint32_t)saEntry->salldHandle);
if((NETAPI_NWAL_CONFIG_BUFSIZE_SA_LLD_HANDLE) < sizes[nwal_BUF_INDEX_SA_LLD_HANDLE])
{
- printf(" 6memSize issue %d %d\n",
- sizes[nwal_BUF_INDEX_SA_LLD_HANDLE],
- NETAPI_NWAL_CONFIG_BUFSIZE_SA_LLD_HANDLE);
/* Resize Memory */
return nwal_FALSE;
//while(1);
bases[nwal_BUF_INDEX_SA_CONTEXT] = (uint32_t *)Osal_nwalLocToGlobAddr((uint32_t)netapi_VM_SaContextVaddr);
/* also save this here for easy access to sa_start */
- nwalGlobCfg.scPoolBaseAddr = bases[nwal_BUF_INDEX_SA_CONTEXT];
+ nwalBaseAddrCfg.pScPoolBaseAddr= bases[nwal_BUF_INDEX_SA_CONTEXT];
count++;
bases[nwal_BUF_INDEX_SA_LLD_CHAN_HANDLE] =
if((NETAPI_NWAL_CONFIG_BUFSIZE_SA_LLD_HANDLE_PER_CHAN * TUNE_NETAPI_MAX_NUM_IPSEC_CHANNELS*2) <
sizes[nwal_BUF_INDEX_SA_LLD_CHAN_HANDLE])
{
- printf(" 7memSize issue %d %d\n",
- sizes[nwal_BUF_INDEX_SA_LLD_CHAN_HANDLE],
- NETAPI_NWAL_CONFIG_BUFSIZE_SA_LLD_HANDLE_PER_CHAN * TUNE_NETAPI_MAX_NUM_IPSEC_CHANNELS*2);
/* Resize Memory */
return nwal_FALSE;
//while(1);
bases[nwal_BUF_INDEX_SA_LLD_CHAN_HANDLE] = 0;
count = count+3;
#endif
- if(count != nwal_N_BUFS)
- {
- printf("count failure: %d\n", count);
- return nwal_FALSE;
- //while(1);
- }
/* Initialize NWAL module */
nwal_getLocContextBufferReq(nwalSizeInfo.nProc, &localCtxSize);
- printf("testNwGlobInit: localCtxSize: 0x%x\n", localCtxSize);
pNwalLocCtxMem = malloc(localCtxSize);
nwal_createProc(bases[nwal_BUF_INDEX_INST],
pNwalLocCtxMem,
- (void*)nwalGlobCfg.saVirtBaseAddr,
- nwalGlobCfg.instPoolSaBaseAddr,
- nwalGlobCfg.scPoolBaseAddr,
- (void*)nwalGlobCfg.paVirtBaseAddr,
- nwalGlobCfg.instPoolBaseAddr);
-
+ &nwalBaseAddrCfg);
- if (pNwalLocCtxMem)
- printf("netapip_initNwal: passing 0x%x to nwal as local ctx intance:n",
- pNwalLocCtxMem);
+ nwalGlobCfg.pBaseAddrCfg = &nwalBaseAddrCfg;
nwalRetVal = nwal_create(&nwalGlobCfg,
&nwalSizeInfo,
sizes,
bases,
- //&p_nwal_context->nwalInstHandle
&gPNwalInstHandle);
- //printf("netapip_initNwal: nwalInstanceHandle: 0x%x\n", gPNwalGlobCtx);
if(nwalRetVal != nwal_OK)
{
- netapi_Log ("netapip_initNwal: nwal_create Failed %d\n",nwalRetVal);
return nwal_FALSE;
- //while(1);
}
- netapi_Log("netapip_initNwal- Global and Local Network initialization Successful \n");
return 1;
}
int master)
{
nwalLocCfg_t nwalLocCfg;
+ nwalBaseAddrCfg_t nwalBaseAddrCfg;
int count=0;
static int first_time = 0;
nwal_RetValue nwalRetVal;
void* pBase = NULL;
NETAPI_NWAL_SHM_T* nwalEntry = NULL;
void* pNwalLocCtxMem = NULL;
- memset(&nwalLocCfg,0,sizeof(nwalLocCfg));
+
NETAPI_SA_SHM_T* saEntry = NULL;
NETAPI_PA_SHM_T* paEntry = NULL;
void* pInstPoolPaBaseAddr;
void* paVirtBaseAddr;
uint32_t localCtxSize;
+
+ memset(&nwalLocCfg,0,sizeof(nwalLocCfg));
+ memset(&nwalBaseAddrCfg, 0, sizeof(nwalBaseAddrCfg_t));
+
/* Update the Start of Packet Offset for the default flows created
* by NWAL
*/
pInstPoolPaBaseAddr = (void *)paEntry;
nwal_getLocContextBufferReq(TUNE_NETAPI_NUM_CORES, &localCtxSize);
- printf("testNwGlobInit: localCtxSize: 0x%x\n", localCtxSize);
pNwalLocCtxMem = malloc(localCtxSize);
if (pNwalLocCtxMem == NULL)
{
- netapi_Log ("netapip_startNwal:malloc failure for nwal local context memory\n");
return -1;
}
+ nwalBaseAddrCfg.pSaVirtBaseAddr = baseAddr;
+ nwalBaseAddrCfg.pInstPoolSaBaseAddr = instPoolSaBaseAddr;
+ nwalBaseAddrCfg.pScPoolBaseAddr = pScPoolBaseAddr;
+ nwalBaseAddrCfg.paVirtBaseAddr = paVirtBaseAddr;
+ nwalBaseAddrCfg.pInstPoolPaBaseAddr = pInstPoolPaBaseAddr;
/* this is 1 time per process */
nwal_createProc(nwalEntry,
pNwalLocCtxMem,
- baseAddr,
- instPoolSaBaseAddr,
- pScPoolBaseAddr,
- paVirtBaseAddr,
- pInstPoolPaBaseAddr);
+ &nwalBaseAddrCfg);
}
/* this is for every thread including 1st thread of the process */
netapi_proc_master->spinLock.lock(&pnetapiShm->netapi_util_lock);
if(nwalRetVal != nwal_OK)
{
- netapi_Log (">nwal_start:Failed ->err %d !!!\n", nwalRetVal);
return -1;
}
- else
- printf("netapip_startnwal: complete !!!!!!!!!!!!!!!!!!!\n");
p->state = NETAPI_NW_CXT_LOC_ACTIVE;
return 1;
{
#ifdef CORTEX_A8
return t64_start();
+#else
+ return 0;
#endif
}
static uint8_t* netapip_sharedMemoryMalloc(uint32_t size)
{
- //printf("netapip_sharedMemoryMalloc called for size: %d\n", size);
return (uint8_t *)hplib_vmMemAlloc(size +
pnetapiShm->netapi_global.cfg.def_heap_extra_size ,
128,
static void netapip_sharedMemoryFree(uint8_t* ptr, uint32_t size)
{
/* Do Nothing. */
- //printf("netapip_sharedMemoryMalloc called for size: %d\n", size);
- //hplib_vmMemFree(ptr, size + pnetapiShm->netapi_global.cfg.def_heap_extra_size,0);
- netapi_Log("netapi Unexpected. need to provide a free () for some reason!! \n");
return;
}
Pktlib_HeapHandle sharedHeapHandle;
Pktlib_HeapHandle controlRxHeapHandle,controlTxHeapHandle;
Pktlib_HeapCfg heapCfg;
- int32_t errCode;
+ int32_t errCode = 0;
int count=0;
#ifdef NETAPI_USE_DDR
netapi_VM_MempoolAttr[0].phys_addr = 0;
netapi_VM_MempoolAttr[0].size = 0;
+#ifdef NETAPI_USE_DDR_AND_MSMC
/* Init attributes for un-cached MSMC */
netapi_VM_MempoolAttr[1].attr = HPLIB_ATTR_UN_CACHED;
netapi_VM_MempoolAttr[1].phys_addr = CSL_MSMC_SRAM_REGS;
netapi_VM_MempoolAttr[1].size = TUNE_NETAPI_PERM_MEM_SZ;
+#endif
#else
- netapi_VM_MempoolAttr[1].attr = HPLIB_ATTR_KM_CACHED0;
- netapi_VM_MempoolAttr[1].phys_addr = 0;
- netapi_VM_MempoolAttr[1].size = 0;
-
/* Init attributes for un-cached MSMC */
netapi_VM_MempoolAttr[0].attr = HPLIB_ATTR_UN_CACHED;
netapi_VM_MempoolAttr[0].phys_addr = CSL_MSMC_SRAM_REGS;
netapi_VM_MempoolAttr[0].size = TUNE_NETAPI_PERM_MEM_SZ;
+#ifdef NETAPI_USE_DDR_AND_MSMC
+ netapi_VM_MempoolAttr[1].attr = HPLIB_ATTR_KM_CACHED0;
+ netapi_VM_MempoolAttr[1].phys_addr = 0;
+ netapi_VM_MempoolAttr[1].size = 0;
+#endif
#endif
/* initialize all the memory we are going to use
- chunk for buffers, descriptors
- memory mapped peripherals we use, such as QMSS, PA, etc */
+#ifdef NETAPI_USE_DDR_AND_MSMC
result = hplib_vmInit(&netapi_VM_VirtAddr[0],
2,
&netapi_VM_MempoolAttr[0]);
+#else
+ result = hplib_vmInit(&netapi_VM_VirtAddr[0],
+ 1,
+ &netapi_VM_MempoolAttr[0]);
+#endif
- if (result == hplib_OK)
- netapi_Log("netapip_systemInit: - hplib_vmInit pass\n");
- else
+ if (result != hplib_OK)
{
- netapi_Log("netapip_systemInit: - hplib_vmInit fail\n");
return -1;
}
if (global_master_process == NETAPI_TRUE)
{
hplib_initMallocArea(0);
+#ifdef NETAPI_USE_DDR_AND_MSMC
hplib_initMallocArea(1);
+#endif
#ifdef NETAPI_ENABLE_SECURITY
#define SEC_CONTEXT_SZ 384 //not tunable
/* allocate 2x number of tunnels since we need one for inflow and one for data mode */
SEC_CONTEXT_SZ), 128, 0);
if (!netapi_VM_SaContextVaddr)
{
- netapi_Log("netapip_systemInit: Failed to map SA context memory region\n");
return (-1);
}
- netapi_Log("netapip_systemInit: SA Memory mapped/allocated at address %p.\n", netapi_VM_SaContextVaddr);
#else
netapi_VM_SaContextVaddr= (char *) NULL;
#endif
TUNE_NETAPI_DESC_SIZE),
128,
0);
- netapi_Log("netapip_systemInit(sysMaster): desc region=%x global desc region=%x\n",
- netapi_VM_QMemLocalDescRam, netapi_VM_QMemGlobalDescRam);
/* Initialize Queue Manager Sub System */
result = netapip_initQm (pnetapiShm->netapi_global.cfg.def_max_descriptors,
pRmClientHandle);
if (result != 1)
{
- netapi_Log("netapip_systemInit: returned from netapip_initQm with failure\n");
return -1;
}
/* Start the QMSS. */
if (netapip_startQm(pRmClientHandle) != 1)
{
- netapi_Log("netapip_systemInit: returned from netapip_startQm with failure\n");
return -1;
}
pnetapiShm->netapi_global.cfg.def_tot_descriptors_for_us,
TUNE_NETAPI_DESC_SIZE,
(unsigned int *) netapi_VM_QMemGlobalDescRam,
- TUNE_NETAPI_QM_GLOBAL_REGION);
+ pnetapiShm->netapi_global.cfg.memoryRegion,
+ pnetapiShm->netapi_global.cfg.start_index);
if(result <0)
{
- netapi_Log("netapip_systemInit: can't setup QM shared region\n");
return -1;
}
/* Initialize CPPI CPDMA */
result = netapip_initCppi(pRmClientHandle);
if (result != 1)
{
- netapi_Log ("netapi: Error initializing CPPI SubSystem error code : %d\n",result);
return -1;
}
/* CPPI and Queue Manager are initialized. */
- netapi_Log ("netapi: Queue Manager and CPPI are initialized.\n");
/* create main pkt heap */
/* Initialize the Shared Heaps. */
memset ((void *)&heapCfg, 0, sizeof(Pktlib_HeapCfg));
/* Populate the heap configuration */
heapCfg.name = "netapi";
-// heapCfg.memRegion = TUNE_NETAPI_QM_GLOBAL_REGION;
heapCfg.memRegion = memInfo.memRegion;
- printf("netapip_systemInit: memRegion: %d\n",memInfo.memRegion);
heapCfg.sharedHeap = 1;
heapCfg.useStarvationQueue = 0;
heapCfg.dataBufferSize = pnetapiShm->netapi_global.cfg.def_heap_buf_size;
/* Create Shared Heap with specified configuration. */
sharedHeapHandle = Pktlib_createHeap(&heapCfg, &errCode);
- if (!sharedHeapHandle) { netapi_Log(">'netapi' heap create failed, Error Code: %d\n",errCode); return -1;}
+ if (!sharedHeapHandle) { return -1;}
handle->netcp_heap= sharedHeapHandle;
- printf("netapi_systemInit: netapi heap handle: 0x%x\n",
- handle->netcp_heap);
/* Update for Control */
heapCfg.name = "netapi_control_rx";
heapCfg.sharedHeap = 1;
controlRxHeapHandle = Pktlib_createHeap(&heapCfg, &errCode);
//todo -> cleanup on failure
- if (!controlRxHeapHandle) { netapi_Log("netapi -'netapi_control_rx' heap create failed, Error Code: %d\n",errCode); return -1;}
+ if (!controlRxHeapHandle) { return -1;}
handle->netcp_control_rx_heap= controlRxHeapHandle;
controlTxHeapHandle = Pktlib_createHeap(&heapCfg, &errCode);
//todo -> cleanup on failure
- if (!controlTxHeapHandle) { netapi_Log("netapi -'netapi_control_tx' heap create failed, Error Code: %d\n",errCode); return -1;}
+ if (!controlTxHeapHandle) { return -1;}
handle->netcp_control_tx_heap= controlTxHeapHandle;
/* now NWAL */
result = netapip_initNwal(memInfo.memRegion,
&netapi_pktlib_ifTable,
&pnetapiShm->netapi_global.nwal_context,
&pnetapiShm->netapi_global.cfg);
- if (result<0) {netapi_Log("netapi init_nwal() failed\n"); return -1; }
- netapi_Log("netapip_systemInit: returned from netapip_initNwal\n");
+ if (result<0) { return -1; }
/* Common Initialization for all cores */
while(count < TUNE_NETAPI_MAX_NUM_TRANS)
{
&pnetapiShm->netapi_global.cfg,
&pnetapiShm->netapi_global.nwal_context,
handle->master);
- if (result<0) {netapi_Log("netapi start_nwal() failed\n"); return -1; }
- netapi_Log("netapip_systemInit: returned from netapip_startNwal\n");
+ if (result<0) { return -1; }
}
else
{
return -1;
if (hplib_checkMallocArea(1) != hplib_OK)
return -1;
-#if 1
+
#ifdef NETAPI_ENABLE_SECURITY
/* allocate 2x number of tunnels since we need one for inflow and one for data mode */
netapi_VM_SaContextVaddr = hplib_vmMemAlloc((TUNE_NETAPI_MAX_NUM_IPSEC_CHANNELS*2 *
SEC_CONTEXT_SZ), 128, 0);
if (!netapi_VM_SaContextVaddr)
{
- netapi_Log("netapip_systemInit: Failed to map SA context memory region\n");
return (-1);
}
- netapi_Log("netapip_systemInit: SA Memory mapped/allocated at address %p.\n", netapi_VM_SaContextVaddr);
#else
- netapi_VM_SaContextVaddr= (char *) NULL;
+ netapi_VM_SaContextVaddr= (char *) NULL;
#endif
TUNE_NETAPI_DESC_SIZE),
128,
0);
- netapi_Log("netapip_systemInit(procMaster): desc region=%x global desc region=%x\n",
- netapi_VM_QMemLocalDescRam, netapi_VM_QMemGlobalDescRam);
-
-#endif
/****************************************************
* partial initialization. For process, not for SOC
***************************************************/
result = netapip_initQm (pnetapiShm->netapi_global.cfg.def_max_descriptors,
pRmClientHandle);
-
if (result != 1)
{
- netapi_Log("netapip_systemInit: returned from netapip_initQm with failure\n");
return -1;
}
/* Start the QMSS. */
if (netapip_startQm(pRmClientHandle) != 1)
{
- netapi_Log("netapip_systemInit: returned from netapip_startQm with failure\n");
return -1;
}
-#if 1
+
result= netapip_qmSetupMemRegion(
pnetapiShm->netapi_global.cfg.def_tot_descriptors_for_us,
TUNE_NETAPI_DESC_SIZE,
(unsigned int *) netapi_VM_QMemGlobalDescRam,
- TUNE_NETAPI_QM_GLOBAL_REGION);
+ pnetapiShm->netapi_global.cfg.memoryRegion,
+ pnetapiShm->netapi_global.cfg.start_index);
if(result <0)
{
- netapi_Log("netapip_systemInit: can't setup QM shared region\n");
return -1;
}
-#endif
/* Initialize CPPI CPDMA */
result = netapip_initCppi(pRmClientHandle);
if (result != 1)
{
- netapi_Log ("netapi: Error initializing CPPI SubSystem error code : %d\n",result);
return -1;
}
/* CPPI and Queue Manager are initialized. */
- netapi_Log ("netapi: Queue Manager and CPPI are initialized.\n");
/* create main pkt heap for this process */
/* Initialize the Shared Heaps. */
/* Create Shared Heap with specified configuration. */
sharedHeapHandle = Pktlib_createHeap(&heapCfg, &errCode);
//todo -> cleanup on failure
- if (!sharedHeapHandle) { netapi_Log(">'netapi' heap create failed, Error Code: %d\n",errCode); return -1;}
+ if (!sharedHeapHandle) { return -1;}
handle->netcp_heap= sharedHeapHandle;
- printf("netapi_systemInit: netapi heap handle: 0x%x\n",
- handle->netcp_heap);
//open shared heap handle but create new controlRx & Tx heaps for this
//process
heapCfg.numPkts = TUNE_NETAPI_CONFIG_NUM_CTL_RX_BUF;
heapCfg.numZeroBufferPackets= 0;
controlRxHeapHandle = Pktlib_createHeap(&heapCfg, &errCode);
- if (!controlRxHeapHandle) { netapi_Log("netapi -'netapi_control_rx' heap create failed, Error Code: %d\n",errCode); return -1;}
+ if (!controlRxHeapHandle) { return -1;}
handle->netcp_control_rx_heap= controlRxHeapHandle;
heapCfg.name = "netapi_control_tx";
heapCfg.numPkts = TUNE_NETAPI_CONFIG_NUM_CTL_TX_BUF;
controlTxHeapHandle = Pktlib_createHeap(&heapCfg, &errCode);
- if (!controlTxHeapHandle) { netapi_Log("netapi -'netapi_control_tx' heap create failed, Error Code: %d\n",errCode); return -1;}
+ if (!controlTxHeapHandle) { return -1;}
handle->netcp_control_tx_heap= controlTxHeapHandle;
/* Common Initialization for all threads in process */
handle->master);
if (result<0)
{
- netapi_Log("netapi start_nwal() failed\n");
return -1;
}
- netapi_Log("netapip_systemInit: returned from netapip_startNwal\n");
}
//get timer running
#ifdef CORTEX_A8
netapip_initTimer();
- netapi_Log("netapip_systemInit: returned from netapip_initTimer\n");
#endif
***************************************************************************/
void netapip_zapQ(int queueNum)
{
- char * descPtr;
int i;
if (!queueNum)
{
for (i=0;;i+=1 )
{
/* Pop descriptor from source queue */
- if ((descPtr = (char *)pktio_mQmssQueuePopRaw(queueNum)) == NULL)
+ if (pktio_mQmssQueuePopRaw(queueNum) == NULL)
{
break;
}
}
- if(i)
- {
- netapi_Log("netapip_zapQ: @recovery - %d descriptors cleaned from qn %d\n",i, queueNum);
- }
}
printf(" > #dataBufThreshStatus=%d #dataBufStarvCounter=%d #zBufThreshStatus=%d #zBufStarvCounter=%d \n",
pktLibHeapStats.dataBufferThresholdStatus,pktLibHeapStats.dataBufferStarvationCounter,
pktLibHeapStats.zeroDataBufferThresholdStatus, pktLibHeapStats.zeroDataBufferStarvationCounter);
-#if 0
-Pktlib_getHeapStats(netapi_get_global()->nwal_context.pa2saTX_heap,&pktLibHeapStats);
-netapi_Log("PA2SA(egress) stats> #free=%d #zb=%d #garbage=%d\n", pktLibHeapStats.numFreeDataPackets,
- pktLibHeapStats.numZeroBufferPackets, pktLibHeapStats.numPacketsinGarbage);
-netapi_Log(" > #dataBufThreshStatus=%d #dataBufStarvCounter=%d #zBufThreshStatus=%d #zBufStarvCounter=%d \n",
- pktLibHeapStats.dataBufferThresholdStatus,pktLibHeapStats.dataBufferStarvationCounter,
- pktLibHeapStats.zeroDataBufferThresholdStatus, pktLibHeapStats.zeroDataBufferStarvationCounter);
-#endif
Pktlib_getHeapStats(netapi_get_global()->nwal_context.sa2pa_heap,&pktLibHeapStats);
printf("SA2PA stats> #free=%d #zb=%d #garbage=%d\n", pktLibHeapStats.numFreeDataPackets,
pktLibHeapStats.numZeroBufferPackets, pktLibHeapStats.numPacketsinGarbage);