[Task-ID: ODUHIGH-455] Changes to support new L1 20.11
[o-du/l2.git] / src / mt / mt_ss.c
index a6a5410..03e7a28 100644 (file)
@@ -181,7 +181,8 @@ S16 rgBatchProc ARGS((
 char            my_buffer2[4096 * 4] = { 0 };
 char            my_buffer[4096] = { 0 };
 int             my_buffer_idx = 0;
-
+uint64_t        nWlsMacMemorySize = 0;
+uint64_t        nWlsPhyMemorySize = 0;
 
 
 #define sigsegv_print(x, ...)    my_buffer_idx += sprintf(&my_buffer[my_buffer_idx], x "\n", ##__VA_ARGS__)
@@ -515,6 +516,20 @@ SsRegCfg cfgRegInfo[SS_MAX_REGS] =
            { SS_POOL_STATIC, 0 }
         }
       }
+#ifndef INTEL_WLS_MEM
+   ,
+      {
+         SS_DFLT_REGION + 7, SS_MAX_POOLS_PER_REG - 1,
+         {
+            { SS_POOL_DYNAMIC, MT_POOL_0_DSIZE },
+            { SS_POOL_DYNAMIC, MT_POOL_1_DSIZE },
+            { SS_POOL_DYNAMIC, MT_POOL_2_DSIZE },
+            { SS_POOL_DYNAMIC, MT_POOL_3_DSIZE },
+            { SS_POOL_DYNAMIC, MT_POOL_4_DSIZE },
+            { SS_POOL_STATIC, 0 }
+         }
+      }
+#endif
 
 #endif /* SS_LOCKLESS_MEMORY */
 };
@@ -611,6 +626,21 @@ MtDynMemCfg mtDynMemoCfg =
            {SS_BLK_RELEASE_THRESHOLD, SS_BLK_ACQUIRE_THRESHOLD}
         }
       }
+#ifndef INTEL_WLS_MEM
+      ,
+         {
+            SS_DFLT_REGION + 7,                         /* region id */
+            MT_MAX_BKTS,                            /* number of buckets */
+            {
+               /* block size, no. of blocks, Upper threshold, lower threshold */
+               {SS_BLK_RELEASE_THRESHOLD, SS_BLK_ACQUIRE_THRESHOLD},
+               {SS_BLK_RELEASE_THRESHOLD, SS_BLK_ACQUIRE_THRESHOLD},
+               {SS_BLK_RELEASE_THRESHOLD, SS_BLK_ACQUIRE_THRESHOLD},
+               {SS_BLK_RELEASE_THRESHOLD, SS_BLK_ACQUIRE_THRESHOLD},
+               {SS_BLK_RELEASE_THRESHOLD, SS_BLK_ACQUIRE_THRESHOLD}
+            }
+         }
+#endif
 #if ((defined (SPLIT_RLC_DL_TASK)) && (!defined (L2_L3_SPLIT)))
       ,
         {
@@ -766,7 +796,7 @@ MtMemCfg mtMemoCfg =
         }
       },
       {
-        SS_DFLT_REGION + 5,                         /* region id */
+        SS_DFLT_REGION + 6,                         /* region id */
         MT_MAX_BKTS,                            /* number of buckets */
         MT_HEAP_SIZE,                           /* heap size */
         {
@@ -777,6 +807,21 @@ MtMemCfg mtMemoCfg =
            {MT_BKT_4_DSIZE, MT_BKT_4_STATIC_NUMBLKS}    /* block size, no. of blocks */
         }
       }
+#ifndef INTEL_WLS_MEM
+      ,
+         {
+            SS_DFLT_REGION + 7,                         /* region id */
+            MT_MAX_BKTS,                            /* number of buckets */
+            MT_HEAP_SIZE,                           /* heap size */
+            {
+               {MT_BKT_0_DSIZE, MT_BKT_0_STATIC_NUMBLKS},   /* block size, no. of blocks */
+               {MT_BKT_1_DSIZE, MT_BKT_1_STATIC_NUMBLKS},    /* block size, no. of blocks */
+               {MT_BKT_2_DSIZE, MT_BKT_2_STATIC_NUMBLKS},   /* block size, no. of blocks */
+               {MT_BKT_3_DSIZE, MT_BKT_3_STATIC_NUMBLKS},    /* block size, no. of blocks */
+               {MT_BKT_4_DSIZE, MT_BKT_4_STATIC_NUMBLKS}    /* block size, no. of blocks */
+            }
+         }
+#endif
 #endif /* SS_LOCKLESS_MEMORY */
       STATIC_MEM_CFG
    }
@@ -847,7 +892,7 @@ S16 smWrReadWlsConfigParams (Void);
 static int SOpenWlsIntf()
 {
    uint8_t i;
-   void *hdl;
+   void *hdl = NULLP;
 #define WLS_DEVICE_NAME "wls0"
 
    char *my_argv[] = {"gnodeb", "-c3", "--proc-type=auto", "--file-prefix", WLS_DEVICE_NAME, "--iova-mode=pa"};
@@ -869,7 +914,16 @@ static int SOpenWlsIntf()
    hdl = WLS_Open(WLS_DEVICE_NAME, 1);
 #endif
 #else
+#ifdef INTEL_L1_V19_10
    hdl = WLS_Open(WLS_DEVICE_NAME, WLS_MASTER_CLIENT, WLS_MEM_SIZE);
+#elif INTEL_L1
+   hdl = WLS_Open(WLS_DEVICE_NAME, WLS_MASTER_CLIENT, &nWlsMacMemorySize, &nWlsPhyMemorySize);
+
+   if(hdl == NULL)
+   {
+      printf("\nERROR: WLS_Open > DEVICE_NAME mismatch. WLS Device Name should be same as 'wls_dev_name' parameter in 'phycfg_xran.xml' file");
+   }
+#endif
 #endif
 
    osCp.wls.intf = hdl;
@@ -1540,6 +1594,8 @@ static S16 SAllocateWlsDynMem()
    osCp.wls.allocAddr = WLS_Alloc(osCp.wls.intf,
 #ifdef INTEL_L1_V19_10
         WLS_MEMORY_SIZE);
+#elif INTEL_L1
+    nWlsMacMemorySize+nWlsPhyMemorySize);   
 #else
    (reqdMemSz + (4 * 1024 * 1024)));
 #endif