-
-/*******************************************************************
- *
- * @brief Configures serving cell config common in sib1
- *
- * @details
- *
- * Function : fillServCellCfgCommSib
- *
- * Functionality:
- * - fills Serving cell config common for SIB1
- *
- * @params[in] SrvCellCfgCommSib pointer
- * @return ROK - success
- * RFAILED - failure
- *
- ** ****************************************************************/
-uint8_t fillServCellCfgCommSib(SrvCellCfgCommSib *srvCellCfgComm)
-{
- PdcchCfgCommon pdcchCfg;
- PdschCfgCommon pdschCfg;
- PcchCfg pcchCfg;
- RachCfgCommon rachCfg;
- PuschCfgCommon puschCfg;
- PucchCfgCommon pucchCfg;
- TddUlDlCfgCommon tddCfg;
-
-#ifdef O1_ENABLE
- srvCellCfgComm->scs = convertScsValToScsEnum(cellParams.ssbSubCarrierSpacing);
-#else
- srvCellCfgComm->scs = NR_SCS;
-#endif
-
- /* Configuring DL Config Common for SIB1*/
- srvCellCfgComm->dlCfg.freqBandInd = NR_FREQ_BAND;
- srvCellCfgComm->dlCfg.offsetToPointA = OFFSET_TO_POINT_A;
-#ifdef O1_ENABLE
- srvCellCfgComm->dlCfg.dlScsCarrier.scsOffset = cellParams.ssbOffset;
- srvCellCfgComm->dlCfg.dlScsCarrier.scs = convertScsValToScsEnum(cellParams.ssbSubCarrierSpacing);
- srvCellCfgComm->dlCfg.dlScsCarrier.scsBw = cellParams.bSChannelBwUL;
-#else
- srvCellCfgComm->dlCfg.dlScsCarrier.scsOffset = SSB_SUBCARRIER_OFFSET;
- srvCellCfgComm->dlCfg.dlScsCarrier.scs = NR_SCS;
- srvCellCfgComm->dlCfg.dlScsCarrier.scsBw = NR_BANDWIDTH;
-#endif
- srvCellCfgComm->dlCfg.locAndBw = FREQ_LOC_BW;
-
- /* Configuring PDCCH Config Common For SIB1 */
- pdcchCfg.present = BWP_DownlinkCommon__pdcch_ConfigCommon_PR_setup;
- pdcchCfg.ctrlRsrcSetZero = CORESET_0_INDEX;
- pdcchCfg.searchSpcZero = SEARCHSPACE_0_INDEX;
- pdcchCfg.searchSpcId = PDCCH_SEARCH_SPACE_ID;
- pdcchCfg.ctrlRsrcSetId = PDCCH_CTRL_RSRC_SET_ID;
- pdcchCfg.monitorSlotPrdAndOffPresent = SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl1;
- //pdcchCfg.monitorSlotPrdAndOff = \
- SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl1;
- pdcchCfg.monitorSymbolsInSlot[0] = 128;
- pdcchCfg.monitorSymbolsInSlot[1] = 0;
- pdcchCfg.numCandAggLvl1 = SearchSpace__nrofCandidates__aggregationLevel1_n8;
- pdcchCfg.numCandAggLvl2 = SearchSpace__nrofCandidates__aggregationLevel2_n4;
- pdcchCfg.numCandAggLvl4 = SearchSpace__nrofCandidates__aggregationLevel4_n2;
- pdcchCfg.numCandAggLvl8 = SearchSpace__nrofCandidates__aggregationLevel8_n1;
- pdcchCfg.numCandAggLvl16 = SearchSpace__nrofCandidates__aggregationLevel16_n0;
- pdcchCfg.searchSpcType = SearchSpace__searchSpaceType_PR_common;
- pdcchCfg.commSrchSpcDciFrmt = PDCCH_SERACH_SPACE_DCI_FORMAT;
- pdcchCfg.searchSpcSib1 = PDCCH_SEARCH_SPACE_ID_SIB1;
- pdcchCfg.pagingSearchSpc = PDCCH_SEARCH_SPACE_ID_PAGING;
- pdcchCfg.raSearchSpc = PDCCH_SEARCH_SPACE_ID_PAGING;
- srvCellCfgComm->dlCfg.pdcchCfg = pdcchCfg;
-
- /* Configuring PDSCH Config Common For SIB1 */
- pdschCfg.present = BWP_DownlinkCommon__pdsch_ConfigCommon_PR_setup;
- pdschCfg.numTimeDomRsrcAlloc = 2;
- pdschCfg.timeDomAlloc[0].k0 = PDSCH_K0_CFG1;
- pdschCfg.timeDomAlloc[0].mapType = PDSCH_TimeDomainResourceAllocation__mappingType_typeA;
- pdschCfg.timeDomAlloc[0].sliv = calcSliv(PDSCH_START_SYMBOL,PDSCH_LENGTH_SYMBOL);
-
- pdschCfg.timeDomAlloc[1].k0 = PDSCH_K0_CFG2;
- pdschCfg.timeDomAlloc[1].mapType = PDSCH_TimeDomainResourceAllocation__mappingType_typeA;
- pdschCfg.timeDomAlloc[1].sliv = calcSliv(PDSCH_START_SYMBOL,PDSCH_LENGTH_SYMBOL);
-
- srvCellCfgComm->dlCfg.pdschCfg = pdschCfg;
-
- /* Configuring BCCH Config for SIB1 */
- srvCellCfgComm->dlCfg.bcchCfg.modPrdCoeff = BCCH_Config__modificationPeriodCoeff_n16;
-
- /* Configuring PCCH Config for SIB1 */
- pcchCfg.dfltPagingCycle = convertPagingCycleEnumToValue(PagingCycle_rf256);
- pcchCfg.nAndPagingFrmOffsetType = PCCH_Config__nAndPagingFrameOffset_PR_oneT;
- pcchCfg.pageFrameOffset = 0;
- pcchCfg.ns = convertNsEnumToValue(PCCH_Config__ns_one);
- pcchCfg.firstPDCCHMontioringType = PCCH_Config__firstPDCCH_MonitoringOccasionOfPO_PR_sCS30KHZoneT_SCS15KHZhalfT;
- memset(pcchCfg.firstPDCCHMontioringInfo, 0, sizeof(uint16_t));
- pcchCfg.firstPDCCHMontioringInfo[0] = 44;
-
- srvCellCfgComm->dlCfg.pcchCfg = pcchCfg;
-
-
- /* Configuring UL Config Common */
-#ifdef O1_ENABLE
- srvCellCfgComm->ulCfg.ulScsCarrier.scsOffset = cellParams.ssbOffset;
- srvCellCfgComm->ulCfg.ulScsCarrier.scs = convertScsValToScsEnum(cellParams.ssbSubCarrierSpacing);
- srvCellCfgComm->ulCfg.ulScsCarrier.scsBw = cellParams.bSChannelBwUL;
-#else
- srvCellCfgComm->ulCfg.ulScsCarrier.scsOffset = SSB_SUBCARRIER_OFFSET;
- srvCellCfgComm->ulCfg.ulScsCarrier.scs = NR_SCS;
- srvCellCfgComm->ulCfg.ulScsCarrier.scsBw = NR_BANDWIDTH;
-#endif
- srvCellCfgComm->ulCfg.freqBandInd = NR_FREQ_BAND;
- srvCellCfgComm->ulCfg.pMax = UL_P_MAX;
- srvCellCfgComm->ulCfg.locAndBw = FREQ_LOC_BW;
- srvCellCfgComm->ulCfg.timeAlignTimerComm = TimeAlignmentTimer_infinity;
-
- /* Configuring RACH Config Common for SIB1 */
- rachCfg.present = BWP_UplinkCommon__rach_ConfigCommon_PR_setup;
- rachCfg.prachCfgIdx = PRACH_CONFIG_IDX;
- rachCfg.msg1Fdm = RACH_ConfigGeneric__msg1_FDM_one;
- rachCfg.msg1FreqStart = PRACH_FREQ_START;
- rachCfg.zeroCorrZoneCfg = ZERO_CORRELATION_ZONE_CFG;
- rachCfg.preambleRcvdTgtPwr = PRACH_PREAMBLE_RCVD_TGT_PWR;
- rachCfg.preambleTransMax = RACH_ConfigGeneric__preambleTransMax_n200;
- rachCfg.pwrRampingStep = RACH_ConfigGeneric__powerRampingStep_dB2;
- rachCfg.raRspWindow = RACH_ConfigGeneric__ra_ResponseWindow_sl10;
- rachCfg.numRaPreamble = NUM_RA_PREAMBLE;
- rachCfg.numSsbPerRachOcc = RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR_one;
- rachCfg.numCbPreamblePerSsb = CB_PREAMBLE_PER_SSB;
- rachCfg.contResTimer = RACH_ConfigCommon__ra_ContentionResolutionTimer_sf64;
- rachCfg.rsrpThreshSsb = RSRP_THRESHOLD_SSB;
- rachCfg.rootSeqIdxPresent = RACH_ConfigCommon__prach_RootSequenceIndex_PR_l139;
- rachCfg.rootSeqIdx = ROOT_SEQ_IDX;
- rachCfg.msg1Scs = PRACH_SUBCARRIER_SPACING ;
- rachCfg.restrictedSetCfg = PRACH_RESTRICTED_SET_CFG;
- srvCellCfgComm->ulCfg.rachCfg = rachCfg;
-
- /* Configuring PUSCH Config Common for SIB1 */
- puschCfg.puschCfgPresent = BWP_UplinkCommon__pusch_ConfigCommon_PR_setup;
- puschCfg.numTimeDomRsrcAlloc = 2;
- puschCfg.timeDomAllocList[0].k2 = PUSCH_K2_CFG1;
- puschCfg.timeDomAllocList[0].mapType = PUSCH_TimeDomainResourceAllocation__mappingType_typeA;
- puschCfg.timeDomAllocList[0].sliv = calcSliv(PUSCH_START_SYMBOL,PUSCH_LENGTH_SYMBOL);
- puschCfg.timeDomAllocList[1].k2 = PUSCH_K2_CFG2;
- puschCfg.timeDomAllocList[1].mapType = PUSCH_TimeDomainResourceAllocation__mappingType_typeA;
- puschCfg.timeDomAllocList[1].sliv = calcSliv(PUSCH_START_SYMBOL,PUSCH_LENGTH_SYMBOL);
- puschCfg.msg3DeltaPreamble = PUSCH_MSG3_DELTA_PREAMBLE;
- puschCfg.p0NominalWithGrant = PUSCH_P0_NOMINAL_WITH_GRANT;
- srvCellCfgComm->ulCfg.puschCfg = puschCfg;
-
- /* Configuring PUCCH Config Common for SIB1 */
- pucchCfg.present = BWP_UplinkCommon__pucch_ConfigCommon_PR_setup;
- pucchCfg.rsrcComm = PUCCH_RSRC_COMMON;
- pucchCfg.grpHop = PUCCH_ConfigCommon__pucch_GroupHopping_neither;
- pucchCfg.p0Nominal = PUCCH_P0_NOMINAL;
- srvCellCfgComm->ulCfg.pucchCfg = pucchCfg;
-
- /* Configuring TDD UL DL config common */
- tddCfg.refScs = SubcarrierSpacing_kHz30;
- tddCfg.txPrd = TDD_UL_DL_Pattern__dl_UL_TransmissionPeriodicity_ms5;
- tddCfg.numDlSlots = NUM_DL_SLOTS;
- tddCfg.numDlSymbols = NUM_DL_SYMBOLS;
- tddCfg.numUlSlots = NUM_UL_SLOTS;
- tddCfg.numUlSymbols = NUM_UL_SYMBOLS;
- srvCellCfgComm->tddCfg = tddCfg;
-
- srvCellCfgComm->ssbPosInBurst = 192;
- srvCellCfgComm->ssbPrdServingCell = SSB_PERIODICITY;
- srvCellCfgComm->ssPbchBlockPwr = SSB_PBCH_PWR;
-
- return ROK;
-}
-