Commit 1f788f0e authored by Sagar Parsawar's avatar Sagar Parsawar

Merge branch 'nr_prs_merge' of https://gitlab.eurecom.fr/oai/openairinterface5g into nr_prs_merge

parents 2a341472 fdb0f4cd
......@@ -712,7 +712,7 @@ void tx_rf(RU_t *ru,int frame,int slot, uint64_t timestamp) {
unsigned int txs;
int i;
T(T_ENB_PHY_OUTPUT_SIGNAL, T_INT(0), T_INT(0), T_INT(frame), T_INT(slot),
T_INT(0), T_BUFFER(&ru->common.txdata[0][fp->get_samples_slot_timestamp(slot,fp,0)], fp->samples_per_subframe * 4));
T_INT(0), T_BUFFER(&ru->common.txdata[0][fp->get_samples_slot_timestamp(slot,fp,0)], fp->get_samples_per_slot(slot,fp) * 4));
int sf_extension = 0;
int siglen=fp->get_samples_per_slot(slot,fp);
int flags = 0;
......
......@@ -666,7 +666,7 @@ void processSlotRX(void *arg) {
if (rx_slot_type == NR_DOWNLINK_SLOT || rx_slot_type == NR_MIXED_SLOT){
if(UE->if_inst != NULL && UE->if_inst->dl_indication != NULL) {
if(UE->if_inst != NULL && UE->if_inst->dl_indication != NULL && get_softmodem_params()->phy_test == 0) {
nr_downlink_indication_t dl_indication;
nr_fill_dl_indication(&dl_indication, NULL, NULL, proc, UE, gNB_id, &phy_pdcch_config);
UE->if_inst->dl_indication(&dl_indication, NULL);
......
......@@ -686,9 +686,9 @@ int32_t nr_rx_pdcch(PHY_VARS_NR_UE *ue,
// Pointers to extracted PDCCH symbols in frequency-domain.
int32_t rx_size = 4*273*12;
int32_t rxdataF_ext[4*frame_parms->nb_antennas_rx][rx_size];
int32_t rxdataF_comp[4*frame_parms->nb_antennas_rx][rx_size];
int32_t pdcch_dl_ch_estimates_ext[4*frame_parms->nb_antennas_rx][rx_size];
__attribute__ ((aligned(32))) int32_t rxdataF_ext[4*frame_parms->nb_antennas_rx][rx_size];
__attribute__ ((aligned(32))) int32_t rxdataF_comp[4*frame_parms->nb_antennas_rx][rx_size];
__attribute__ ((aligned(32))) int32_t pdcch_dl_ch_estimates_ext[4*frame_parms->nb_antennas_rx][rx_size];
// Pointer to llrs, 4-bit resolution.
int32_t llr_size = 2*4*100*12;
......
......@@ -430,8 +430,8 @@ int nr_rx_pbch( PHY_VARS_NR_UE *ue,
for (symbol=1; symbol<4; symbol++) {
const uint16_t nb_re=symbol == 2 ? 72 : 180;
struct complex16 rxdataF_ext[frame_parms->nb_antennas_rx][PBCH_MAX_RE_PER_SYMBOL];
struct complex16 dl_ch_estimates_ext[frame_parms->nb_antennas_rx][PBCH_MAX_RE_PER_SYMBOL];
__attribute__ ((aligned(32))) struct complex16 rxdataF_ext[frame_parms->nb_antennas_rx][PBCH_MAX_RE_PER_SYMBOL];
__attribute__ ((aligned(32))) struct complex16 dl_ch_estimates_ext[frame_parms->nb_antennas_rx][PBCH_MAX_RE_PER_SYMBOL];
memset(dl_ch_estimates_ext,0, sizeof dl_ch_estimates_ext);
nr_pbch_extract(nr_ue_common_vars->common_vars_rx_data_per_thread[proc->thread_id].rxdataF,
estimateSz,
......@@ -456,7 +456,7 @@ int nr_rx_pbch( PHY_VARS_NR_UE *ue,
#ifdef DEBUG_PBCH
LOG_I(PHY,"[PHY] PBCH log2_maxh = %d (%d)\n",nr_ue_pbch_vars->log2_maxh,max_h);
#endif
struct complex16 rxdataF_comp[frame_parms->nb_antennas_rx][PBCH_MAX_RE_PER_SYMBOL];
__attribute__ ((aligned(32))) struct complex16 rxdataF_comp[frame_parms->nb_antennas_rx][PBCH_MAX_RE_PER_SYMBOL];
nr_pbch_channel_compensation(rxdataF_ext,
dl_ch_estimates_ext,
nb_re,
......
......@@ -201,16 +201,6 @@ static int sync_to_gps(openair0_device *device) {
LOG_W(HW,"WARNING: GPS not locked - time will not be accurate until locked\n");
}
//wait for next pps
uhd::time_spec_t last = s->usrp->get_time_last_pps();
uhd::time_spec_t next = s->usrp->get_time_last_pps();
while(next == last) {
boost::this_thread::sleep(boost::posix_time::milliseconds(50));
last = next;
next = s->usrp->get_time_last_pps();
}
boost::this_thread::sleep(boost::posix_time::milliseconds(200));
//Set to GPS time
uhd::time_spec_t gps_time = uhd::time_spec_t(time_t(s->usrp->get_mboard_sensor("gps_time", mboard).to_int()));
s->usrp->set_time_next_pps(gps_time+1.0, mboard);
......@@ -306,11 +296,18 @@ static int trx_usrp_start(openair0_device *device) {
//s->first_rx = 1;
s->rx_timestamp = 0;
uhd::time_spec_t time_last_pps = s->usrp->get_time_last_pps();
LOG_I(HW,"last pps at %f, starting streaming at %f\n",time_last_pps.get_real_secs(),time_last_pps.get_real_secs()+1.0);
//wait for next pps
uhd::time_spec_t last_pps = s->usrp->get_time_last_pps();
uhd::time_spec_t current_pps = s->usrp->get_time_last_pps();
while(current_pps == last_pps) {
boost::this_thread::sleep(boost::posix_time::milliseconds(1));
current_pps = s->usrp->get_time_last_pps();
}
LOG_I(HW,"current pps at %f, starting streaming at %f\n",current_pps.get_real_secs(),current_pps.get_real_secs()+1.0);
uhd::stream_cmd_t cmd(uhd::stream_cmd_t::STREAM_MODE_START_CONTINUOUS);
cmd.time_spec = uhd::time_spec_t(time_last_pps+1.0);
cmd.time_spec = uhd::time_spec_t(current_pps+1.0);
cmd.stream_now = false; // start at constant delay
s->rx_stream->issue_stream_cmd(cmd);
......
......@@ -218,9 +218,9 @@ MACRLCs = (
prs_config = (
{
NumPRSResources = 1;
PRSResourceSetPeriod = [40, 0];
PRSResourceSetPeriod = [20, 2];
SymbolStart = [7];
NumPRSSymbols = [7];
NumPRSSymbols = [6];
NumRB = 106;
RBOffset = 0;
CombSize = 4;
......@@ -261,7 +261,7 @@ RUs = (
#beamforming 1x4 matrix:
bf_weights = [0x00007fff, 0x0000, 0x0000, 0x0000];
#clock_src = "internal";
sdr_addrs = "addr=192.168.10.2,second_addr=192.168.20.2,clock_source=internal,time_source=internal"
sdr_addrs = "addr=192.168.10.2,clock_source=gpsdo,time_source=gpsdo"
}
);
......
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