trying to harmonize the nr_bandtable
This commit is contained in:
@@ -302,39 +302,39 @@ void nr_dump_frame_parms(NR_DL_FRAME_PARMS *fp)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static const eutra_band_t eutra_bands[] = {
|
nr_bandentry_t nr_bandtable[] = {
|
||||||
{1, 1920000, 1980000, 2110000, 2170000, FDD},
|
{1, 1920000, 1980000, 2110000, 2170000, 20, 422000},
|
||||||
{2, 1850000, 1910000, 1930000, 1990000, FDD},
|
{2, 1850000, 1910000, 1930000, 1990000, 20, 386000},
|
||||||
{3, 1710000, 1785000, 1805000, 1880000, FDD},
|
{3, 1710000, 1785000, 1805000, 1880000, 20, 361000},
|
||||||
{5, 824000, 849000, 869000, 894000, FDD},
|
{5, 824000, 849000, 869000, 894000, 20, 173800},
|
||||||
{7, 2500000, 2570000, 2620000, 2690000, FDD},
|
{7, 2500000, 2570000, 2620000, 2690000, 20, 524000},
|
||||||
{8, 880000, 915000, 925000, 960000, FDD},
|
{8, 880000, 915000, 925000, 960000, 20, 185000},
|
||||||
{12, 698000, 716000, 728000, 746000, FDD},
|
{12, 698000, 716000, 728000, 746000, 20, 145800},
|
||||||
{20, 832000, 862000, 791000, 821000, FDD},
|
{20, 832000, 862000, 791000, 821000, 20, 158200},
|
||||||
{25, 1850000, 1915000, 1930000, 1995000, FDD},
|
{25, 1850000, 1915000, 1930000, 1995000, 20, 386000},
|
||||||
{28, 703000, 758000, 758000, 813000, FDD},
|
{28, 703000, 758000, 758000, 813000, 20, 151600},
|
||||||
{34, 2010000, 2025000, 2010000, 2025000, TDD},
|
{34, 2010000, 2025000, 2010000, 2025000, 20, 402000},
|
||||||
{38, 2570000, 2620000, 2570000, 2630000, TDD},
|
{38, 2570000, 2620000, 2570000, 2630000, 20, 514000},
|
||||||
{39, 1880000, 1920000, 1880000, 1920000, TDD},
|
{39, 1880000, 1920000, 1880000, 1920000, 20, 376000},
|
||||||
{40, 2300000, 2400000, 2300000, 2400000, TDD},
|
{40, 2300000, 2400000, 2300000, 2400000, 20, 460000},
|
||||||
{41, 2496000, 2690000, 2496000, 2690000, TDD},
|
{41, 2496000, 2690000, 2496000, 2690000, 3, 499200},
|
||||||
{50, 1432000, 1517000, 1432000, 1517000, TDD},
|
{50, 1432000, 1517000, 1432000, 1517000, 20, 286400},
|
||||||
{51, 1427000, 1432000, 1427000, 1432000, TDD},
|
{51, 1427000, 1432000, 1427000, 1432000, 20, 285400},
|
||||||
{66, 1710000, 1780000, 2110000, 2200000, FDD},
|
{66, 1710000, 1780000, 2110000, 2200000, 20, 422000},
|
||||||
{70, 1695000, 1710000, 1995000, 2020000, FDD},
|
{70, 1695000, 1710000, 1995000, 2020000, 20, 399000},
|
||||||
{71, 663000, 698000, 617000, 652000, FDD},
|
{71, 663000, 698000, 617000, 652000, 20, 123400},
|
||||||
{74, 1427000, 1470000, 1475000, 1518000, FDD},
|
{74, 1427000, 1470000, 1475000, 1518000, 20, 295000},
|
||||||
{75, 000, 000, 1432000, 1517000, FDD},
|
{75, 000, 000, 1432000, 1517000, 20, 286400},
|
||||||
{76, 000, 000, 1427000, 1432000, FDD},
|
{76, 000, 000, 1427000, 1432000, 20, 285400},
|
||||||
{77, 3300000, 4200000, 3300000, 4200000, TDD},
|
{77, 3300000, 4200000, 3300000, 4200000, 1, 620000},
|
||||||
{78, 3300000, 3800000, 3300000, 3800000, TDD},
|
{78, 3300000, 3800000, 3300000, 3800000, 1, 620000},
|
||||||
{79, 4400000, 5000000, 4400000, 5000000, TDD},
|
{79, 4400000, 5000000, 4400000, 5000000, 2, 693334},
|
||||||
{80, 1710000, 1785000, 000, 000, FDD},
|
{80, 1710000, 1785000, 000, 000, 20, 342000},
|
||||||
{81, 860000, 915000, 000, 000, FDD},
|
{81, 860000, 915000, 000, 000, 20, 176000},
|
||||||
{82, 832000, 862000, 000, 000, FDD},
|
{82, 832000, 862000, 000, 000, 20, 166400},
|
||||||
{83, 703000, 748000, 000, 000, FDD},
|
{83, 703000, 748000, 000, 000, 20, 140600},
|
||||||
{84, 1920000, 1980000, 000, 000, FDD},
|
{84, 1920000, 1980000, 000, 000, 20, 384000},
|
||||||
{86, 1710000, 1785000, 000, 000, FDD}
|
{86, 1710000, 1785000, 000, 000, 20, 342000}
|
||||||
};
|
};
|
||||||
|
|
||||||
int get_band(uint32_t downlink_frequency, uint8_t *current_band, int32_t *current_offset, lte_frame_type_t *current_type) {
|
int get_band(uint32_t downlink_frequency, uint8_t *current_band, int32_t *current_offset, lte_frame_type_t *current_type) {
|
||||||
@@ -342,14 +342,17 @@ int get_band(uint32_t downlink_frequency, uint8_t *current_band, int32_t *cu
|
|||||||
int ind;
|
int ind;
|
||||||
int64_t dl_freq_khz = downlink_frequency/1000;
|
int64_t dl_freq_khz = downlink_frequency/1000;
|
||||||
for ( ind=0;
|
for ( ind=0;
|
||||||
ind < sizeof(eutra_bands) / sizeof(eutra_bands[0]);
|
ind < sizeof(nr_bandtable) / sizeof(nr_bandtable[0]);
|
||||||
ind++) {
|
ind++) {
|
||||||
*current_band = eutra_bands[ind].band;
|
*current_band = nr_bandtable[ind].band;
|
||||||
*current_type = eutra_bands[ind].frame_type;
|
LOG_I(PHY, "Scanning band %d, dl_min %"PRIu32", ul_min %"PRIu32"\n", ind, nr_bandtable[ind].dl_min,nr_bandtable[ind].ul_min);
|
||||||
LOG_I(PHY, "Scanning band %d, dl_min %"PRIu32", ul_min %"PRIu32"\n", ind, eutra_bands[ind].dl_min,eutra_bands[ind].ul_min);
|
|
||||||
|
|
||||||
if ( eutra_bands[ind].dl_min <= dl_freq_khz && eutra_bands[ind].dl_max >= dl_freq_khz ) {
|
if ( nr_bandtable[ind].dl_min <= dl_freq_khz && nr_bandtable[ind].dl_max >= dl_freq_khz ) {
|
||||||
*current_offset = (eutra_bands[ind].ul_min - eutra_bands[ind].dl_min)*1000;
|
*current_offset = (nr_bandtable[ind].ul_min - nr_bandtable[ind].dl_min)*1000;
|
||||||
|
if (*current_offset == 0)
|
||||||
|
*current_type = TDD;
|
||||||
|
else
|
||||||
|
*current_type = FDD;
|
||||||
|
|
||||||
LOG_I( PHY, "DL frequency %"PRIu32": band %d, frame_type %d, UL frequency %"PRIu32"\n",
|
LOG_I( PHY, "DL frequency %"PRIu32": band %d, frame_type %d, UL frequency %"PRIu32"\n",
|
||||||
downlink_frequency, *current_band, *current_type, downlink_frequency+*current_offset);
|
downlink_frequency, *current_band, *current_type, downlink_frequency+*current_offset);
|
||||||
@@ -357,7 +360,7 @@ int get_band(uint32_t downlink_frequency, uint8_t *current_band, int32_t *cu
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if( ind == sizeof(eutra_bands) / sizeof(eutra_bands[0])) {
|
if( ind == sizeof(nr_bandtable) / sizeof(nr_bandtable[0])) {
|
||||||
LOG_E(PHY,"Can't find EUTRA band for frequency %d\n", downlink_frequency);
|
LOG_E(PHY,"Can't find EUTRA band for frequency %d\n", downlink_frequency);
|
||||||
return(-1);
|
return(-1);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -324,18 +324,20 @@ typedef struct NR_DL_FRAME_PARMS {
|
|||||||
#define KHz (1000UL)
|
#define KHz (1000UL)
|
||||||
#define MHz (1000*KHz)
|
#define MHz (1000*KHz)
|
||||||
|
|
||||||
typedef struct eutra_band_s {
|
typedef struct nr_bandentry_s {
|
||||||
int16_t band;
|
int16_t band;
|
||||||
uint32_t ul_min;
|
uint64_t ul_min;
|
||||||
uint32_t ul_max;
|
uint64_t ul_max;
|
||||||
uint32_t dl_min;
|
uint64_t dl_min;
|
||||||
uint32_t dl_max;
|
uint64_t dl_max;
|
||||||
lte_frame_type_t frame_type;
|
uint64_t N_OFFs_DL;
|
||||||
} eutra_band_t;
|
uint64_t step_size;
|
||||||
|
} nr_bandentry_t;
|
||||||
|
|
||||||
typedef struct band_info_s {
|
typedef struct band_info_s {
|
||||||
int nbands;
|
int nbands;
|
||||||
eutra_band_t band_info[100];
|
nr_bandentry_t band_info[100];
|
||||||
} band_info_t;
|
} nr_band_info_t;
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -49,59 +49,9 @@ extern RAN_CONTEXT_t RC;
|
|||||||
extern void mac_top_init_gNB(void);
|
extern void mac_top_init_gNB(void);
|
||||||
extern uint8_t nfapi_mode;
|
extern uint8_t nfapi_mode;
|
||||||
|
|
||||||
int32_t **rxdata;
|
//int32_t **rxdata;
|
||||||
int32_t **txdata;
|
//int32_t **txdata;
|
||||||
|
extern nr_bandentry_t *nr_bandtable;
|
||||||
typedef struct nr_bandentry_s {
|
|
||||||
int16_t band;
|
|
||||||
uint64_t ul_min;
|
|
||||||
uint64_t ul_max;
|
|
||||||
uint64_t dl_min;
|
|
||||||
uint64_t dl_max;
|
|
||||||
uint64_t N_OFFs_DL;
|
|
||||||
uint64_t step_size;
|
|
||||||
} nr_bandentry_t;
|
|
||||||
|
|
||||||
typedef struct band_info_s {
|
|
||||||
int nbands;
|
|
||||||
nr_bandentry_t band_info[100];
|
|
||||||
} nr_band_info_t;
|
|
||||||
|
|
||||||
static const nr_bandentry_t nr_bandtable[] = {
|
|
||||||
{1, 1920000, 1980000, 2110000, 2170000, 20, 422000},
|
|
||||||
{2, 1850000, 1910000, 1930000, 1990000, 20, 386000},
|
|
||||||
{3, 1710000, 1785000, 1805000, 1880000, 20, 361000},
|
|
||||||
{5, 824000, 849000, 869000, 894000, 20, 173800},
|
|
||||||
{7, 2500000, 2570000, 2620000, 2690000, 20, 524000},
|
|
||||||
{8, 880000, 915000, 925000, 960000, 20, 185000},
|
|
||||||
{12, 698000, 716000, 728000, 746000, 20, 145800},
|
|
||||||
{20, 832000, 862000, 791000, 821000, 20, 158200},
|
|
||||||
{25, 1850000, 1915000, 1930000, 1995000, 20, 386000},
|
|
||||||
{28, 703000, 758000, 758000, 813000, 20, 151600},
|
|
||||||
{34, 2010000, 2025000, 2010000, 2025000, 20, 402000},
|
|
||||||
{38, 2570000, 2620000, 2570000, 2630000, 20, 514000},
|
|
||||||
{39, 1880000, 1920000, 1880000, 1920000, 20, 376000},
|
|
||||||
{40, 2300000, 2400000, 2300000, 2400000, 20, 460000},
|
|
||||||
{41, 2496000, 2690000, 2496000, 2690000, 3, 499200},
|
|
||||||
{50, 1432000, 1517000, 1432000, 1517000, 20, 286400},
|
|
||||||
{51, 1427000, 1432000, 1427000, 1432000, 20, 285400},
|
|
||||||
{66, 1710000, 1780000, 2110000, 2200000, 20, 422000},
|
|
||||||
{70, 1695000, 1710000, 1995000, 2020000, 20, 399000},
|
|
||||||
{71, 663000, 698000, 617000, 652000, 20, 123400},
|
|
||||||
{74, 1427000, 1470000, 1475000, 1518000, 20, 295000},
|
|
||||||
{75, 000, 000, 1432000, 1517000, 20, 286400},
|
|
||||||
{76, 000, 000, 1427000, 1432000, 20, 285400},
|
|
||||||
{77, 3300000, 4200000, 3300000, 4200000, 1, 620000},
|
|
||||||
{78, 3300000, 3800000, 3300000, 3800000, 1, 620000},
|
|
||||||
{79, 4400000, 5000000, 4400000, 5000000, 2, 693334},
|
|
||||||
{80, 1710000, 1785000, 000, 000, 20, 342000},
|
|
||||||
{81, 860000, 915000, 000, 000, 20, 176000},
|
|
||||||
{82, 832000, 862000, 000, 000, 20, 166400},
|
|
||||||
{83, 703000, 748000, 000, 000, 20, 140600},
|
|
||||||
{84, 1920000, 1980000, 000, 000, 20, 384000},
|
|
||||||
{86, 1710000, 1785000, 000, 000, 20, 342000}
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
uint32_t to_nrarfcn(int nr_bandP, uint64_t dl_CarrierFreq, uint32_t bw)
|
uint32_t to_nrarfcn(int nr_bandP, uint64_t dl_CarrierFreq, uint32_t bw)
|
||||||
{
|
{
|
||||||
|
|||||||
+5
-39
@@ -157,43 +157,6 @@ int32_t **txdata;
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
band_info_t bands_to_scan;
|
|
||||||
|
|
||||||
static const eutra_band_t eutra_bands[] = {
|
|
||||||
{1, 1920000, 1980000, 2110000, 2170000, FDD},
|
|
||||||
{2, 1850000, 1910000, 1930000, 1990000, FDD},
|
|
||||||
{3, 1710000, 1785000, 1805000, 1880000, FDD},
|
|
||||||
{5, 824000, 849000, 869000, 894000, FDD},
|
|
||||||
{7, 2500000, 2570000, 2620000, 2690000, FDD},
|
|
||||||
{8, 880000, 915000, 925000, 960000, FDD},
|
|
||||||
{12, 698000, 716000, 728000, 746000, FDD},
|
|
||||||
{20, 832000, 862000, 791000, 821000, FDD},
|
|
||||||
{25, 1850000, 1915000, 1930000, 1995000, FDD},
|
|
||||||
{28, 703000, 758000, 758000, 813000, FDD},
|
|
||||||
{34, 2010000, 2025000, 2010000, 2025000, TDD},
|
|
||||||
{38, 2570000, 2620000, 2570000, 2630000, TDD},
|
|
||||||
{39, 1880000, 1920000, 1880000, 1920000, TDD},
|
|
||||||
{40, 2300000, 2400000, 2300000, 2400000, TDD},
|
|
||||||
{41, 2496000, 2690000, 2496000, 2690000, TDD},
|
|
||||||
{50, 1432000, 1517000, 1432000, 1517000, TDD},
|
|
||||||
{51, 1427000, 1432000, 1427000, 1432000, TDD},
|
|
||||||
{66, 1710000, 1780000, 2110000, 2200000, FDD},
|
|
||||||
{70, 1695000, 1710000, 1995000, 2020000, FDD},
|
|
||||||
{71, 663000, 698000, 617000, 652000, FDD},
|
|
||||||
{74, 1427000, 1470000, 1475000, 1518000, FDD},
|
|
||||||
{75, 000, 000, 1432000, 1517000, FDD},
|
|
||||||
{76, 000, 000, 1427000, 1432000, FDD},
|
|
||||||
{77, 3300000, 4200000, 3300000, 4200000, TDD},
|
|
||||||
{78, 3300000, 3800000, 3300000, 3800000, TDD},
|
|
||||||
{79, 4400000, 5000000, 4400000, 5000000, TDD},
|
|
||||||
{80, 1710000, 1785000, 000, 000, FDD},
|
|
||||||
{81, 860000, 915000, 000, 000, FDD},
|
|
||||||
{82, 832000, 862000, 000, 000, FDD},
|
|
||||||
{83, 703000, 748000, 000, 000, FDD},
|
|
||||||
{84, 1920000, 1980000, 000, 000, FDD},
|
|
||||||
{86, 1710000, 1785000, 000, 000, FDD}
|
|
||||||
};
|
|
||||||
|
|
||||||
PHY_VARS_NR_UE *init_nr_ue_vars(NR_DL_FRAME_PARMS *frame_parms,
|
PHY_VARS_NR_UE *init_nr_ue_vars(NR_DL_FRAME_PARMS *frame_parms,
|
||||||
uint8_t UE_id,
|
uint8_t UE_id,
|
||||||
uint8_t abstraction_flag)
|
uint8_t abstraction_flag)
|
||||||
@@ -364,7 +327,8 @@ static void *UE_thread_synch(void *arg) {
|
|||||||
sync_mode = pbch;
|
sync_mode = pbch;
|
||||||
} else {
|
} else {
|
||||||
current_band=0;
|
current_band=0;
|
||||||
|
LOG_E(PHY,"Fixme!\n");
|
||||||
|
/*
|
||||||
for (i=0; i<openair0_cfg[UE->rf_map.card].rx_num_channels; i++) {
|
for (i=0; i<openair0_cfg[UE->rf_map.card].rx_num_channels; i++) {
|
||||||
downlink_frequency[UE->rf_map.card][UE->rf_map.chain+i] = bands_to_scan.band_info[CC_id].dl_min;
|
downlink_frequency[UE->rf_map.card][UE->rf_map.chain+i] = bands_to_scan.band_info[CC_id].dl_min;
|
||||||
uplink_frequency_offset[UE->rf_map.card][UE->rf_map.chain+i] =
|
uplink_frequency_offset[UE->rf_map.card][UE->rf_map.chain+i] =
|
||||||
@@ -374,6 +338,7 @@ static void *UE_thread_synch(void *arg) {
|
|||||||
downlink_frequency[CC_id][i]+uplink_frequency_offset[CC_id][i];
|
downlink_frequency[CC_id][i]+uplink_frequency_offset[CC_id][i];
|
||||||
openair0_cfg[UE->rf_map.card].rx_gain[UE->rf_map.chain+i] = UE->rx_total_gain_dB;
|
openair0_cfg[UE->rf_map.card].rx_gain[UE->rf_map.chain+i] = UE->rx_total_gain_dB;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
// AssertFatal(UE->rfdevice.trx_start_func(&UE->rfdevice) == 0, "Could not start the device\n");
|
// AssertFatal(UE->rfdevice.trx_start_func(&UE->rfdevice) == 0, "Could not start the device\n");
|
||||||
@@ -388,6 +353,7 @@ static void *UE_thread_synch(void *arg) {
|
|||||||
AssertFatal ( 0== pthread_mutex_unlock(&UE->proc.mutex_synch), "");
|
AssertFatal ( 0== pthread_mutex_unlock(&UE->proc.mutex_synch), "");
|
||||||
|
|
||||||
switch (sync_mode) {
|
switch (sync_mode) {
|
||||||
|
/*
|
||||||
case pss:
|
case pss:
|
||||||
LOG_I(PHY,"[SCHED][UE] Scanning band %d (%d), freq %u\n",bands_to_scan.band_info[current_band].band, current_band,bands_to_scan.band_info[current_band].dl_min+current_offset);
|
LOG_I(PHY,"[SCHED][UE] Scanning band %d (%d), freq %u\n",bands_to_scan.band_info[current_band].band, current_band,bands_to_scan.band_info[current_band].dl_min+current_offset);
|
||||||
//lte_sync_timefreq(UE,current_band,bands_to_scan.band_info[current_band].dl_min+current_offset);
|
//lte_sync_timefreq(UE,current_band,bands_to_scan.band_info[current_band].dl_min+current_offset);
|
||||||
@@ -416,7 +382,7 @@ static void *UE_thread_synch(void *arg) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
*/
|
||||||
case pbch:
|
case pbch:
|
||||||
#if DISABLE_LOG_X
|
#if DISABLE_LOG_X
|
||||||
printf("[UE thread Synch] Running Initial Synch (mode %d)\n",UE->mode);
|
printf("[UE thread Synch] Running Initial Synch (mode %d)\n",UE->mode);
|
||||||
|
|||||||
Reference in New Issue
Block a user