From 82ab85ec5193a6169ed8c9f90daf7ae3d5491e3d Mon Sep 17 00:00:00 2001
From: Francesco Mani <francesco.mani@eurecom.fr>
Date: Thu, 23 Jan 2020 09:58:53 +0100
Subject: [PATCH] bugfix for MIB

---
 openair1/PHY/NR_TRANSPORT/nr_pbch.c       | 3 +--
 openair1/PHY/NR_TRANSPORT/nr_transport.h  | 1 -
 openair1/SCHED_NR/phy_procedures_nr_gNB.c | 7 +++----
 3 files changed, 4 insertions(+), 7 deletions(-)

diff --git a/openair1/PHY/NR_TRANSPORT/nr_pbch.c b/openair1/PHY/NR_TRANSPORT/nr_pbch.c
index 1a5d46f642..b6a4787193 100644
--- a/openair1/PHY/NR_TRANSPORT/nr_pbch.c
+++ b/openair1/PHY/NR_TRANSPORT/nr_pbch.c
@@ -226,7 +226,6 @@ int nr_generate_pbch(NR_gNB_PBCH *pbch,
                      int16_t amp,
                      uint8_t ssb_start_symbol,
                      uint8_t n_hf,
-                     uint8_t Lmax,
                      int sfn,
                      nfapi_nr_config_request_scf_t *config,
                      NR_DL_FRAME_PARMS *frame_parms) {
@@ -244,11 +243,11 @@ int nr_generate_pbch(NR_gNB_PBCH *pbch,
   pbch->pbch_a=0;
   uint8_t ssb_index = frame_parms->ssb_index;
   uint8_t *pbch_pdu = (uint8_t*)&ssb_pdu->ssb_pdu_rel15.bchPayload;
+  uint8_t Lmax = frame_parms->Lmax;
   for (int i=0; i<NR_PBCH_PDU_BITS; i++)
     pbch->pbch_a |= ((pbch_pdu[i>>3]>>(7-(i&7)))&1)<<i;
 
   #ifdef DEBUG_PBCH_ENCODING
-
   for (int i=0; i<3; i++)
     printf("pbch_pdu[%d]: 0x%02x\n", i, pbch_pdu[i]);
 
diff --git a/openair1/PHY/NR_TRANSPORT/nr_transport.h b/openair1/PHY/NR_TRANSPORT/nr_transport.h
index c40b8efdb4..be73875058 100644
--- a/openair1/PHY/NR_TRANSPORT/nr_transport.h
+++ b/openair1/PHY/NR_TRANSPORT/nr_transport.h
@@ -92,7 +92,6 @@ int nr_generate_pbch(NR_gNB_PBCH *pbch,
                      int16_t amp,
                      uint8_t ssb_start_symbol,
                      uint8_t n_hf,
-                     uint8_t Lmax,
                      int sfn,
                      nfapi_nr_config_request_scf_t *config,
                      NR_DL_FRAME_PARMS *frame_parms);
diff --git a/openair1/SCHED_NR/phy_procedures_nr_gNB.c b/openair1/SCHED_NR/phy_procedures_nr_gNB.c
index 4df712ad4d..58899be542 100644
--- a/openair1/SCHED_NR/phy_procedures_nr_gNB.c
+++ b/openair1/SCHED_NR/phy_procedures_nr_gNB.c
@@ -103,9 +103,9 @@ void nr_common_signal_procedures (PHY_VARS_gNB *gNB,int frame, int slot) {
 	  nr_generate_sss(gNB->d_sss, &txdataF[0][txdataF_offset], AMP, ssb_start_symbol, cfg, fp);
 	
           if (cfg->carrier_config.num_tx_ant.value <= 4)
-	    nr_generate_pbch_dmrs(gNB->nr_gold_pbch_dmrs[n_hf][ssb_index],&txdataF[0][txdataF_offset], AMP, ssb_start_symbol, cfg, fp);
+	    nr_generate_pbch_dmrs(gNB->nr_gold_pbch_dmrs[n_hf][ssb_index&7],&txdataF[0][txdataF_offset], AMP, ssb_start_symbol, cfg, fp);
           else
-	    nr_generate_pbch_dmrs(gNB->nr_gold_pbch_dmrs[0][ssb_index],&txdataF[0][txdataF_offset], AMP, ssb_start_symbol, cfg, fp);
+	    nr_generate_pbch_dmrs(gNB->nr_gold_pbch_dmrs[0][ssb_index&7],&txdataF[0][txdataF_offset], AMP, ssb_start_symbol, cfg, fp);
 	
 	  nr_generate_pbch(&gNB->pbch,
 	                   &gNB->ssb_pdu,
@@ -113,8 +113,7 @@ void nr_common_signal_procedures (PHY_VARS_gNB *gNB,int frame, int slot) {
 			   &txdataF[0][txdataF_offset],
 			   AMP,
 			   ssb_start_symbol,
-			   n_hf,cfg->carrier_config.num_tx_ant.value,
-			   frame, cfg, fp);
+			   n_hf, frame, cfg, fp);
         }
       }
     }
-- 
2.26.2