diff --git a/targets/ARCH/EXMIMO/DEFS/openair_device.h b/targets/ARCH/EXMIMO/DEFS/openair_device.h
index 6c1c8708dbcd3962d28d8d724d0bdc28c01e20ad..b4916490e2f00995c6ad9d0720262c5c97fec3ff 100644
--- a/targets/ARCH/EXMIMO/DEFS/openair_device.h
+++ b/targets/ARCH/EXMIMO/DEFS/openair_device.h
@@ -24,9 +24,9 @@
 
 
 // Maximum number of concurrently supported cards
-//
-#define MAX_CARDS  16 
-#define INIT_ZEROS {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+// defined in openair_common_lib.h
+//#define MAX_CARDS  16 
+//#define INIT_ZEROS {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
 
 
 /** PCIe subsystem configuration Space
diff --git a/targets/ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.c b/targets/ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.c
index 2d0146b3f1fc858a8495cee5970dfad9203252f2..4db108b3c89a63175db605a164de4c235c1c5d95 100644
--- a/targets/ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.c
+++ b/targets/ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.c
@@ -63,7 +63,7 @@
 
 exmimo_pci_interface_bot_virtual_t openair0_exmimo_pci[MAX_CARDS]; // contains userspace pointers for each card
 
-char *bigshm_top[MAX_CARDS] = INIT_ZEROS;
+char *bigshm_top[MAX_CARDS];
 
 int openair0_fd;
 int openair0_num_antennas[MAX_CARDS];
@@ -126,7 +126,8 @@ int openair0_open(void)
 
   //printf("bigshm_top_kvirtptr (MAX_CARDS %d): %p  %p  %p  %p\n", MAX_CARDS,bigshm_top_kvirtptr[0], bigshm_top_kvirtptr[1], bigshm_top_kvirtptr[2], bigshm_top_kvirtptr[3]);
 
-
+  for( card=0; card < MAX_CARDS; card++)
+    bigshm_top[card] = NULL;
 
   for( card=0; card < openair0_num_detected_cards; card++) {
     bigshm_top[card] = (char *)mmap( NULL,
@@ -530,6 +531,7 @@ int trx_exmimo_read(openair0_device *device, openair0_timestamp *ptimestamp, voi
     return(0);
   }
 
+  ret = pthread_mutex_lock(&exm->watchdog_mutex);
 
   switch (ret) {
   case EINVAL:
@@ -558,8 +560,6 @@ int trx_exmimo_read(openair0_device *device, openair0_timestamp *ptimestamp, voi
     break;
   }
 
-  ret = pthread_mutex_lock(&exm->watchdog_mutex);
-
   ts = exm->ts;
   if (exm->wait_first_read==1) {
     exm->wait_first_read=0;
diff --git a/targets/RT/USER/lte-enb.c b/targets/RT/USER/lte-enb.c
index af06979efd5b0e67190ba3bbd7bac28bacb18606..965894cac025797dc3fec393fcf87a050eca61f5 100644
--- a/targets/RT/USER/lte-enb.c
+++ b/targets/RT/USER/lte-enb.c
@@ -277,75 +277,73 @@ static inline void wait_sync(char *thread_name) {
 void do_OFDM_mod_rt(int subframe,PHY_VARS_eNB *phy_vars_eNB)
 {
 
-  unsigned int aa,slot_offset, slot_offset_F;
-  int dummy_tx_b[7680*4] __attribute__((aligned(32)));
+  unsigned int aa,slot_offset;
+  //int dummy_tx_b[7680*4] __attribute__((aligned(32)));
   int i, tx_offset;
-  int slot_sizeF = (phy_vars_eNB->lte_frame_parms.ofdm_symbol_size)*
-                   ((phy_vars_eNB->lte_frame_parms.Ncp==1) ? 6 : 7);
+  //int slot_sizeF = (phy_vars_eNB->frame_parms.ofdm_symbol_size)* ((phy_vars_eNB->frame_parms.Ncp==1) ? 6 : 7);
   int len;
+  //int slot_offset_F = (subframe<<1)*slot_sizeF;
 
-  slot_offset_F = (subframe<<1)*slot_sizeF;
-
-  slot_offset = subframe*phy_vars_eNB->lte_frame_parms.samples_per_tti;
+  slot_offset = subframe*phy_vars_eNB->frame_parms.samples_per_tti;
 
   
-  if ((subframe_select(&phy_vars_eNB->lte_frame_parms,subframe)==SF_DL)||
-      ((subframe_select(&phy_vars_eNB->lte_frame_parms,subframe)==SF_S))) {
+  if ((subframe_select(&phy_vars_eNB->frame_parms,subframe)==SF_DL)||
+      ((subframe_select(&phy_vars_eNB->frame_parms,subframe)==SF_S))) {
     //    LOG_D(HW,"Frame %d: Generating slot %d\n",frame,next_slot);
 
     VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_ENB_OFDM_MODULATION,1);
 
-    do_OFDM_mod_symbol(&phy_vars_eNB->lte_eNB_common_vars,
+    do_OFDM_mod_symbol(&phy_vars_eNB->common_vars,
                   0,
                   subframe<<1,
-                  &phy_vars_eNB->lte_frame_parms);
+                  &phy_vars_eNB->frame_parms);
  
     // if S-subframe generate first slot only 
-    if (subframe_select(&phy_vars_eNB->lte_frame_parms,subframe) == SF_DL) {
-      do_OFDM_mod_symbol(&phy_vars_eNB->lte_eNB_common_vars,
+    if (subframe_select(&phy_vars_eNB->frame_parms,subframe) == SF_DL) {
+      do_OFDM_mod_symbol(&phy_vars_eNB->common_vars,
                     0,
                     1+(subframe<<1),
-                    &phy_vars_eNB->lte_frame_parms);
+                    &phy_vars_eNB->frame_parms);
     }
 
     VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_ENB_OFDM_MODULATION,0);
     
 
 /*
-    for (aa=0; aa<phy_vars_eNB->lte_frame_parms.nb_antennas_tx; aa++) {
-      if (phy_vars_eNB->lte_frame_parms.Ncp == EXTENDED) {
-        PHY_ofdm_mod(&phy_vars_eNB->lte_eNB_common_vars.txdataF[0][aa][slot_offset_F],
+    for (aa=0; aa<phy_vars_eNB->frame_parms.nb_antennas_tx; aa++) {
+      if (phy_vars_eNB->frame_parms.Ncp == EXTENDED) {
+        PHY_ofdm_mod(&phy_vars_eNB->common_vars.txdataF[0][aa][slot_offset_F],
                      dummy_tx_b,
-                     phy_vars_eNB->lte_frame_parms.ofdm_symbol_size,
+                     phy_vars_eNB->frame_parms.ofdm_symbol_size,
                      6,
-                     phy_vars_eNB->lte_frame_parms.nb_prefix_samples,
+                     phy_vars_eNB->frame_parms.nb_prefix_samples,
                      CYCLIC_PREFIX);
-        PHY_ofdm_mod(&phy_vars_eNB->lte_eNB_common_vars.txdataF[0][aa][slot_offset_F+slot_sizeF],
-                     dummy_tx_b+(phy_vars_eNB->lte_frame_parms.samples_per_tti>>1),
-                     phy_vars_eNB->lte_frame_parms.ofdm_symbol_size,
+        PHY_ofdm_mod(&phy_vars_eNB->common_vars.txdataF[0][aa][slot_offset_F+slot_sizeF],
+                     dummy_tx_b+(phy_vars_eNB->frame_parms.samples_per_tti>>1),
+                     phy_vars_eNB->frame_parms.ofdm_symbol_size,
                      6,
-                     phy_vars_eNB->lte_frame_parms.nb_prefix_samples,
+                     phy_vars_eNB->frame_parms.nb_prefix_samples,
                      CYCLIC_PREFIX);
       } else {
-        normal_prefix_mod(&phy_vars_eNB->lte_eNB_common_vars.txdataF[0][aa][slot_offset_F],
+        normal_prefix_mod(&phy_vars_eNB->common_vars.txdataF[0][aa][slot_offset_F],
                           dummy_tx_b,
                           7,
-                          &(phy_vars_eNB->lte_frame_parms));
+                          &(phy_vars_eNB->frame_parms));
 	// if S-subframe generate first slot only
-	if (subframe_select(&phy_vars_eNB->lte_frame_parms,subframe) == SF_DL)
-	  normal_prefix_mod(&phy_vars_eNB->lte_eNB_common_vars.txdataF[0][aa][slot_offset_F+slot_sizeF],
-			    dummy_tx_b+(phy_vars_eNB->lte_frame_parms.samples_per_tti>>1),
+	if (subframe_select(&phy_vars_eNB->frame_parms,subframe) == SF_DL)
+	  normal_prefix_mod(&phy_vars_eNB->common_vars.txdataF[0][aa][slot_offset_F+slot_sizeF],
+			    dummy_tx_b+(phy_vars_eNB->frame_parms.samples_per_tti>>1),
 			    7,
-			    &(phy_vars_eNB->lte_frame_parms));
+			    &(phy_vars_eNB->frame_parms));
       }
     } */
 
-    for (aa=0; aa<phy_vars_eNB->lte_frame_parms.nb_antennas_tx; aa++) {
+    for (aa=0; aa<phy_vars_eNB->frame_parms.nb_antennas_tx; aa++) {
       // if S-subframe generate first slot only
-      if (subframe_select(&phy_vars_eNB->lte_frame_parms,subframe) == SF_S)
-	len = phy_vars_eNB->lte_frame_parms.samples_per_tti>>1;
+      if (subframe_select(&phy_vars_eNB->frame_parms,subframe) == SF_S)
+	len = phy_vars_eNB->frame_parms.samples_per_tti>>1;
       else
-	len = phy_vars_eNB->lte_frame_parms.samples_per_tti;
+	len = phy_vars_eNB->frame_parms.samples_per_tti;
       /*
       for (i=0;i<len;i+=4) {
 	dummy_tx_b[i] = 0x100;
@@ -358,42 +356,42 @@ void do_OFDM_mod_rt(int subframe,PHY_VARS_eNB *phy_vars_eNB)
 
 	
         if (tx_offset<0)
-          tx_offset += LTE_NUMBER_OF_SUBFRAMES_PER_FRAME*phy_vars_eNB->lte_frame_parms.samples_per_tti;
+          tx_offset += LTE_NUMBER_OF_SUBFRAMES_PER_FRAME*phy_vars_eNB->frame_parms.samples_per_tti;
 
-        if (tx_offset>=(LTE_NUMBER_OF_SUBFRAMES_PER_FRAME*phy_vars_eNB->lte_frame_parms.samples_per_tti))
-          tx_offset -= LTE_NUMBER_OF_SUBFRAMES_PER_FRAME*phy_vars_eNB->lte_frame_parms.samples_per_tti;
+        if (tx_offset>=(LTE_NUMBER_OF_SUBFRAMES_PER_FRAME*phy_vars_eNB->frame_parms.samples_per_tti))
+          tx_offset -= LTE_NUMBER_OF_SUBFRAMES_PER_FRAME*phy_vars_eNB->frame_parms.samples_per_tti;
 
-/*	((short*)&phy_vars_eNB->lte_eNB_common_vars.txdata[0][aa][tx_offset])[0] = ((short*)dummy_tx_b)[2*i]<<openair0_cfg[0].iq_txshift;
+/*	((short*)&phy_vars_eNB->common_vars.txdata[0][aa][tx_offset])[0] = ((short*)dummy_tx_b)[2*i]<<openair0_cfg[0].iq_txshift;
 	
-	((short*)&phy_vars_eNB->lte_eNB_common_vars.txdata[0][aa][tx_offset])[1] = ((short*)dummy_tx_b)[2*i+1]<<openair0_cfg[0].iq_txshift; */
+	((short*)&phy_vars_eNB->common_vars.txdata[0][aa][tx_offset])[1] = ((short*)dummy_tx_b)[2*i+1]<<openair0_cfg[0].iq_txshift; */
 
-	((short*)&phy_vars_eNB->lte_eNB_common_vars.txdata[0][aa][tx_offset])[0] = ((short*)&phy_vars_eNB->lte_eNB_common_vars.txdata[0][aa][tx_offset])[0]<<openair0_cfg[0].iq_txshift;
+	((short*)&phy_vars_eNB->common_vars.txdata[0][aa][tx_offset])[0] = ((short*)&phy_vars_eNB->common_vars.txdata[0][aa][tx_offset])[0]<<openair0_cfg[0].iq_txshift;
 	
-	((short*)&phy_vars_eNB->lte_eNB_common_vars.txdata[0][aa][tx_offset])[1] = ((short*)&phy_vars_eNB->lte_eNB_common_vars.txdata[0][aa][tx_offset])[1]<<openair0_cfg[0].iq_txshift;
+	((short*)&phy_vars_eNB->common_vars.txdata[0][aa][tx_offset])[1] = ((short*)&phy_vars_eNB->common_vars.txdata[0][aa][tx_offset])[1]<<openair0_cfg[0].iq_txshift;
      }
      // if S-subframe switch to RX in second subframe
-     if (subframe_select(&phy_vars_eNB->lte_frame_parms,subframe) == SF_S) {
+     if (subframe_select(&phy_vars_eNB->frame_parms,subframe) == SF_S) {
        for (i=0; i<len; i++) {
-	 phy_vars_eNB->lte_eNB_common_vars.txdata[0][aa][tx_offset++] = 0x00010001;
+	 phy_vars_eNB->common_vars.txdata[0][aa][tx_offset++] = 0x00010001;
        }
      }
 
-     if ((((phy_vars_eNB->lte_frame_parms.tdd_config==0) ||
-	  (phy_vars_eNB->lte_frame_parms.tdd_config==1) ||
-	  (phy_vars_eNB->lte_frame_parms.tdd_config==2) ||
-	  (phy_vars_eNB->lte_frame_parms.tdd_config==6)) && 
+     if ((((phy_vars_eNB->frame_parms.tdd_config==0) ||
+	  (phy_vars_eNB->frame_parms.tdd_config==1) ||
+	  (phy_vars_eNB->frame_parms.tdd_config==2) ||
+	  (phy_vars_eNB->frame_parms.tdd_config==6)) && 
 	  (subframe==0)) || (subframe==5)) {
        // turn on tx switch N_TA_offset before
        //LOG_D(HW,"subframe %d, time to switch to tx (N_TA_offset %d, slot_offset %d) \n",subframe,phy_vars_eNB->N_TA_offset,slot_offset);
        for (i=0; i<phy_vars_eNB->N_TA_offset; i++) {
 	 tx_offset = (int)slot_offset+time_offset[aa]+i-phy_vars_eNB->N_TA_offset/2;
 	 if (tx_offset<0)
-	   tx_offset += LTE_NUMBER_OF_SUBFRAMES_PER_FRAME*phy_vars_eNB->lte_frame_parms.samples_per_tti;
+	   tx_offset += LTE_NUMBER_OF_SUBFRAMES_PER_FRAME*phy_vars_eNB->frame_parms.samples_per_tti;
 	 
-	 if (tx_offset>=(LTE_NUMBER_OF_SUBFRAMES_PER_FRAME*phy_vars_eNB->lte_frame_parms.samples_per_tti))
-	   tx_offset -= LTE_NUMBER_OF_SUBFRAMES_PER_FRAME*phy_vars_eNB->lte_frame_parms.samples_per_tti;
+	 if (tx_offset>=(LTE_NUMBER_OF_SUBFRAMES_PER_FRAME*phy_vars_eNB->frame_parms.samples_per_tti))
+	   tx_offset -= LTE_NUMBER_OF_SUBFRAMES_PER_FRAME*phy_vars_eNB->frame_parms.samples_per_tti;
 	 
-	 phy_vars_eNB->lte_eNB_common_vars.txdata[0][aa][tx_offset] = 0x00000000;
+	 phy_vars_eNB->common_vars.txdata[0][aa][tx_offset] = 0x00000000;
        }
      }
     }
diff --git a/targets/RT/USER/lte-softmodem.c b/targets/RT/USER/lte-softmodem.c
index 40b92559365f4362d966f6be5605a79c6a930fe6..0cca7b637980960dac53751d32d0420017cb6225 100644
--- a/targets/RT/USER/lte-softmodem.c
+++ b/targets/RT/USER/lte-softmodem.c
@@ -1121,13 +1121,13 @@ static void get_options (int argc, char **argv)
         frame_parms[CC_id]->N_RB_DL             =  enb_properties->properties[i]->N_RB_DL[CC_id];
         frame_parms[CC_id]->N_RB_UL             =  enb_properties->properties[i]->N_RB_DL[CC_id];
         frame_parms[CC_id]->nb_antennas_tx      =  enb_properties->properties[i]->nb_antennas_tx[CC_id];
-        frame_parms[CC_id]->nb_antennas_tx_eNB  =  enb_properties->properties[i]->nb_antenna_ports[CC_id];
+        frame_parms[CC_id]->nb_antenna_ports_eNB  =  enb_properties->properties[i]->nb_antenna_ports[CC_id];
         frame_parms[CC_id]->nb_antennas_rx      =  enb_properties->properties[i]->nb_antennas_rx[CC_id];
 
 	frame_parms[CC_id]->prach_config_common.prach_ConfigInfo.prach_ConfigIndex = enb_properties->properties[i]->prach_config_index[CC_id];
 	frame_parms[CC_id]->prach_config_common.prach_ConfigInfo.prach_FreqOffset  = enb_properties->properties[i]->prach_freq_offset[CC_id];
 
-	frame_parms[CC_id]->mode1_flag         = (frame_parms[CC_id]->nb_antennas_tx_eNB == 1) ? 1 : 0;
+	frame_parms[CC_id]->mode1_flag         = (frame_parms[CC_id]->nb_antenna_ports_eNB == 1) ? 1 : 0;
 	frame_parms[CC_id]->threequarter_fs    = threequarter_fs;
 
         //} // j
@@ -1225,7 +1225,7 @@ void set_default_frame_parms(LTE_DL_FRAME_PARMS *frame_parms[MAX_NUM_CCs]) {
     frame_parms[CC_id]->Ncp_UL              = NORMAL;
     frame_parms[CC_id]->Nid_cell            = 0;
     frame_parms[CC_id]->num_MBSFN_config    = 0;
-    frame_parms[CC_id]->nb_antennas_tx_eNB  = 1;
+    frame_parms[CC_id]->nb_antenna_ports_eNB  = 1;
     frame_parms[CC_id]->nb_antennas_tx      = 1;
     frame_parms[CC_id]->nb_antennas_rx      = 1;
 
@@ -1524,7 +1524,7 @@ int main( int argc, char **argv )
     if (UE_flag==1) {
       frame_parms[CC_id]->nb_antennas_tx     = 1;
       frame_parms[CC_id]->nb_antennas_rx     = 1;
-      frame_parms[CC_id]->nb_antennas_tx_eNB = 1; //initial value overwritten by initial sync later
+      frame_parms[CC_id]->nb_antenna_ports_eNB = 1; //initial value overwritten by initial sync later
     }
 
     init_ul_hopping(frame_parms[CC_id]);