Commit 0eb45a38 authored by Florian Kaltenberger's avatar Florian Kaltenberger

trying to harmonize the nr_bandtable

parent 4b52ec30
...@@ -302,39 +302,39 @@ void nr_dump_frame_parms(NR_DL_FRAME_PARMS *fp) ...@@ -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 ...@@ -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 ...@@ -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 { ...@@ -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; ...@@ -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)
{ {
......
...@@ -157,43 +157,6 @@ int32_t **txdata; ...@@ -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) { ...@@ -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) { ...@@ -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) { ...@@ -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) { ...@@ -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);
......
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