Fix for seg fault at 5th and 20th slot and SIB1
[o-du/l2.git] / src / 5gnrmac / rg_lmm.c
index 19bfcf0..059a754 100755 (executable)
@@ -83,9 +83,11 @@ static int RLOG_MODULE_ID=4096;
 #endif
 #include "ss_rbuf.h"
 #include "ss_rbuf.x"
-
 #include "lwr_mac.h"         /* MAC CL defines */
 #include "mac.h"
+#include "lwr_mac_phy.h"
+#include "lwr_mac_fsm.h"
+
 #ifdef __cplusplus
 extern "C" {
 #endif /* __cplusplus */
@@ -98,6 +100,8 @@ EXTERN Void rgGetSId ARGS((SystemId *s));
 ClCb   clGlobalCp;
 MacCb  macCb;
 
+int MacSchCellCfgReq(Pst *pst,MacCellCfg *macCellCfg);
+
 /* forward references */
 PRIVATE U16 rgLMMGenCfg ARGS((
    Inst           inst,
@@ -246,6 +250,9 @@ Reason reason;         /* reason */
    /* Initialize Scheduler as well */
    schActvInit(ENTRG, (DEFAULT_CELLS + SCH_INST_START), DFLT_REGION, PWR_UP);
 
+   /* Initialize lower mac */
+   lwrMacInit();
+
    RETVALUE(ROK);
 
 } /* rgActvInit */
@@ -2139,6 +2146,9 @@ int MacHdlCellCfgReq
                macCellCfgFillCfmPst(pst,&cfmPst);
                ret = (*packMacCellCfmOpts[cfmPst.selector])(&cfmPst,&macCellCfgCfm);
        }
+#ifdef INTEL_WLS
+   LwrMacEnqueueWlsBlock();
+#endif
    return ret;
 } /* end of MacHdlCellCfgReq */
 
@@ -2191,6 +2201,23 @@ int MacSchCellCfgReq
        schCellCfg.sib1SchCfg.searchSpaceZeroIndex = macCellCfg->sib1Cfg.searchSpaceZeroIndex; 
        schCellCfg.sib1SchCfg.sib1Mcs = macCellCfg->sib1Cfg.sib1Mcs; 
 
+       /* fill RACH config params */
+       schCellCfg.schRachCfg.prachCfgIdx = macCellCfg->prachCfg.prachCfgIdx;
+       schCellCfg.schRachCfg.prachSubcSpacing = \
+          macCellCfg->prachCfg.prachSubcSpacing;
+       schCellCfg.schRachCfg.msg1FreqStart = macCellCfg->prachCfg.msg1FreqStart;
+       schCellCfg.schRachCfg.msg1Fdm       = macCellCfg->prachCfg.msg1Fdm;
+       schCellCfg.schRachCfg.rootSeqIdx    = macCellCfg->prachCfg.fdm[0].rootSeqIdx;
+       schCellCfg.schRachCfg.numRootSeq    = macCellCfg->prachCfg.fdm[0].numRootSeq;
+       schCellCfg.schRachCfg.k1            = macCellCfg->prachCfg.fdm[0].k1;
+       schCellCfg.schRachCfg.ssbPerRach    = macCellCfg->prachCfg.ssbPerRach;
+       schCellCfg.schRachCfg.prachMultCarrBand = \
+          macCellCfg->prachCfg.prachMultCarrBand;
+       schCellCfg.schRachCfg.raContResTmr  = macCellCfg->prachCfg.raContResTmr;
+       schCellCfg.schRachCfg.rsrpThreshSsb = macCellCfg->prachCfg.rsrpThreshSsb;
+       schCellCfg.schRachCfg.raRspWindow   = macCellCfg->prachCfg.raRspWindow;
+
+
    cfgPst.srcProcId = pst->dstProcId;
        cfgPst.dstProcId = pst->srcProcId;
        cfgPst.srcEnt    = ENTRG;