Commit 0d91083e authored by Florian Kaltenberger's avatar Florian Kaltenberger
Browse files

trying to harmonize the nr_bandtable

parent 0f04910f
......@@ -302,39 +302,39 @@ void nr_dump_frame_parms(NR_DL_FRAME_PARMS *fp)
}
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}
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}
};
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;
int64_t dl_freq_khz = downlink_frequency/1000;
for ( ind=0;
ind < sizeof(eutra_bands) / sizeof(eutra_bands[0]);
ind < sizeof(nr_bandtable) / sizeof(nr_bandtable[0]);
ind++) {
*current_band = eutra_bands[ind].band;
*current_type = eutra_bands[ind].frame_type;
LOG_I(PHY, "Scanning band %d, dl_min %"PRIu32", ul_min %"PRIu32"\n", ind, eutra_bands[ind].dl_min,eutra_bands[ind].ul_min);
*current_band = nr_bandtable[ind].band;
LOG_I(PHY, "Scanning band %d, dl_min %"PRIu32", ul_min %"PRIu32"\n", ind, nr_bandtable[ind].dl_min,nr_bandtable[ind].ul_min);
if ( eutra_bands[ind].dl_min <= dl_freq_khz && eutra_bands[ind].dl_max >= dl_freq_khz ) {
*current_offset = (eutra_bands[ind].ul_min - eutra_bands[ind].dl_min)*1000;
if ( nr_bandtable[ind].dl_min <= dl_freq_khz && nr_bandtable[ind].dl_max >= dl_freq_khz ) {
*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",
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);
return(-1);
}
......
......@@ -324,18 +324,20 @@ typedef struct NR_DL_FRAME_PARMS {
#define KHz (1000UL)
#define MHz (1000*KHz)
typedef struct eutra_band_s {
typedef struct nr_bandentry_s {
int16_t band;
uint32_t ul_min;
uint32_t ul_max;
uint32_t dl_min;
uint32_t dl_max;
lte_frame_type_t frame_type;
} eutra_band_t;
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;
eutra_band_t band_info[100];
} band_info_t;
nr_bandentry_t band_info[100];
} nr_band_info_t;
#endif
......@@ -49,59 +49,9 @@ extern RAN_CONTEXT_t RC;
extern void mac_top_init_gNB(void);
extern uint8_t nfapi_mode;
int32_t **rxdata;
int32_t **txdata;
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}
};
//int32_t **rxdata;
//int32_t **txdata;
extern nr_bandentry_t *nr_bandtable;
uint32_t to_nrarfcn(int nr_bandP, uint64_t dl_CarrierFreq, uint32_t bw)
{
......
......@@ -157,43 +157,6 @@ int32_t **txdata;
#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,
uint8_t UE_id,
uint8_t abstraction_flag)
......@@ -364,7 +327,8 @@ static void *UE_thread_synch(void *arg) {
sync_mode = pbch;
} else {
current_band=0;
LOG_E(PHY,"Fixme!\n");
/*
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;
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];
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");
......@@ -388,6 +353,7 @@ static void *UE_thread_synch(void *arg) {
AssertFatal ( 0== pthread_mutex_unlock(&UE->proc.mutex_synch), "");
switch (sync_mode) {
/*
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);
//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;
*/
case pbch:
#if DISABLE_LOG_X
printf("[UE thread Synch] Running Initial Synch (mode %d)\n",UE->mode);
......
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