Commit 47e8a242 authored by Sakthivel Velumani's avatar Sakthivel Velumani

Fixed bug in beam index

parent b50bc863
...@@ -559,7 +559,7 @@ void nr_generate_pdsch(processingData_L1tx_t *msgTx, ...@@ -559,7 +559,7 @@ void nr_generate_pdsch(processingData_L1tx_t *msgTx,
gNB->common_vars.beam_id[0][slot*frame_parms->symbols_per_slot+j] = rel15->precodingAndBeamforming.prgs_list[0].dig_bf_interface_list[0].beam_idx; gNB->common_vars.beam_id[0][slot*frame_parms->symbols_per_slot+j] = rel15->precodingAndBeamforming.prgs_list[0].dig_bf_interface_list[0].beam_idx;
} }
else { else {
LOG_D(PHY,"beam index for PDSCH allocation already taken\n"); LOG_W(PHY,"beam index for PDSCH allocation already taken\n");
} }
for (int layer = 0; layer<rel15->nrOfLayers; layer++) for (int layer = 0; layer<rel15->nrOfLayers; layer++)
free16(txdataF_precoding[layer],2*14*frame_parms->ofdm_symbol_size); free16(txdataF_precoding[layer],2*14*frame_parms->ofdm_symbol_size);
......
...@@ -1286,6 +1286,11 @@ void nr_generate_Msg2(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra ...@@ -1286,6 +1286,11 @@ void nr_generate_Msg2(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
startSymbolIndex, startSymbolIndex,
mappingtype, mappingtype,
1); 1);
pdsch_pdu_rel15->precodingAndBeamforming.num_prgs=1;
pdsch_pdu_rel15->precodingAndBeamforming.prg_size=275;
pdsch_pdu_rel15->precodingAndBeamforming.dig_bf_interfaces=1;
pdsch_pdu_rel15->precodingAndBeamforming.prgs_list[0].pm_idx = 0;
pdsch_pdu_rel15->precodingAndBeamforming.prgs_list[0].dig_bf_interface_list[0].beam_idx = ra->beam_id;
uint8_t tb_scaling = 0; uint8_t tb_scaling = 0;
int R, Qm; int R, Qm;
...@@ -1337,6 +1342,7 @@ void nr_generate_Msg2(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra ...@@ -1337,6 +1342,7 @@ void nr_generate_Msg2(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
dci_pdu->CceIndex = CCEIndex; dci_pdu->CceIndex = CCEIndex;
dci_pdu->beta_PDCCH_1_0 = 0; dci_pdu->beta_PDCCH_1_0 = 0;
dci_pdu->powerControlOffsetSS = 1; dci_pdu->powerControlOffsetSS = 1;
dci_pdu->precodingAndBeamforming = pdsch_pdu_rel15->precodingAndBeamforming;
dci_pdu_rel15_t dci_payload; dci_pdu_rel15_t dci_payload;
dci_payload.frequency_domain_assignment.val = PRBalloc_to_locationandbandwidth0(pdsch_pdu_rel15->rbSize, dci_payload.frequency_domain_assignment.val = PRBalloc_to_locationandbandwidth0(pdsch_pdu_rel15->rbSize,
...@@ -1726,6 +1732,7 @@ void nr_generate_Msg4(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra ...@@ -1726,6 +1732,7 @@ void nr_generate_Msg4(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
dci_pdu->CceIndex = CCEIndex; dci_pdu->CceIndex = CCEIndex;
dci_pdu->beta_PDCCH_1_0 = 0; dci_pdu->beta_PDCCH_1_0 = 0;
dci_pdu->powerControlOffsetSS = 1; dci_pdu->powerControlOffsetSS = 1;
dci_pdu->precodingAndBeamforming = pdsch_pdu_rel15->precodingAndBeamforming;
dci_pdu_rel15_t dci_payload; dci_pdu_rel15_t dci_payload;
dci_payload.frequency_domain_assignment.val = PRBalloc_to_locationandbandwidth0(pdsch_pdu_rel15->rbSize, dci_payload.frequency_domain_assignment.val = PRBalloc_to_locationandbandwidth0(pdsch_pdu_rel15->rbSize,
......
...@@ -94,6 +94,7 @@ void schedule_ssb(frame_t frame, sub_frame_t slot, ...@@ -94,6 +94,7 @@ void schedule_ssb(frame_t frame, sub_frame_t slot,
void schedule_nr_mib(module_id_t module_idP, frame_t frameP, sub_frame_t slotP) { void schedule_nr_mib(module_id_t module_idP, frame_t frameP, sub_frame_t slotP) {
gNB_MAC_INST *gNB = RC.nrmac[module_idP]; gNB_MAC_INST *gNB = RC.nrmac[module_idP];
nfapi_nr_config_request_scf_t *cfg = &gNB->config[0];
NR_COMMON_channels_t *cc; NR_COMMON_channels_t *cc;
nfapi_nr_dl_tti_request_t *dl_tti_request; nfapi_nr_dl_tti_request_t *dl_tti_request;
nfapi_nr_dl_tti_request_body_t *dl_req; nfapi_nr_dl_tti_request_body_t *dl_req;
...@@ -228,7 +229,7 @@ void schedule_nr_mib(module_id_t module_idP, frame_t frameP, sub_frame_t slotP) ...@@ -228,7 +229,7 @@ void schedule_nr_mib(module_id_t module_idP, frame_t frameP, sub_frame_t slotP)
// FR2 is only TDD, to be fixed for flexible TDD // FR2 is only TDD, to be fixed for flexible TDD
const int nr_slots_period = tdd ? n_slots_frame/get_nb_periods_per_frame(scc->tdd_UL_DL_ConfigurationCommon->pattern1.dl_UL_TransmissionPeriodicity) : n_slots_frame; const int nr_slots_period = tdd ? n_slots_frame/get_nb_periods_per_frame(scc->tdd_UL_DL_ConfigurationCommon->pattern1.dl_UL_TransmissionPeriodicity) : n_slots_frame;
num_tdd_period = rel_slot/nr_slots_period; num_tdd_period = rel_slot/nr_slots_period;
gNB->tdd_beam_association[num_tdd_period]=i_ssb; gNB->tdd_beam_association[num_tdd_period]=cfg->ssb_table.ssb_beam_id_list[i_ssb].beam_id.value;
num_ssb++; num_ssb++;
AssertFatal(num_ssb<2,"beamforming currently not supported for more than one SSB per slot\n"); AssertFatal(num_ssb<2,"beamforming currently not supported for more than one SSB per slot\n");
if (get_softmodem_params()->sa == 1) { if (get_softmodem_params()->sa == 1) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment