Commit db98e4fd authored by Thomas Schlichter's avatar Thomas Schlichter

add support for band 255 and 256 according to TS 38.108

parent 41cc1344
......@@ -57,8 +57,8 @@ int get_supported_band_index(int scs, int band, int n_rbs){
}
// Table 5.2-1 NR operating bands in FR1 & FR2 (3GPP TS 38.101)
// Table 5.4.2.3-1 Applicable NR-ARFCN per operating band in FR1 & FR2 (3GPP TS 38.101)
// Table 5.2-1 NR operating bands in FR1 & FR2 (3GPP TS 38.101 and TS 38.108)
// Table 5.4.2.3-1 Applicable NR-ARFCN per operating band in FR1 & FR2 (3GPP TS 38.101 and TS 38.108)
// Notes:
// - N_OFFs for bands from 80 to 89 and band 95 is referred to UL
// - Frequencies are expressed in KHz
......@@ -120,6 +120,8 @@ const nr_bandentry_t nr_bandtable[] = {
{94, 880000, 915000, 1432000, 1517000, 20, 286400, 100},
{95, 2010000, 2025000, 000, 000, 20, 402000, 100},
{96, 5925000, 7125000, 5925000, 7125000, 1, 795000, 15},
{255, 1626500, 1660500, 1525000, 1559000, 20, 305000, 100},
{256, 1980000, 2010000, 2170000, 2200000, 20, 434000, 100},
{257,26500020,29500000,26500020,29500000, 1,2054166, 60},
{257,26500080,29500000,26500080,29500000, 2,2054167, 120},
{258,24250080,27500000,24250080,27500000, 1,2016667, 60},
......@@ -318,7 +320,7 @@ int32_t get_delta_duplex(int nr_bandP, uint8_t scs_index)
uint16_t config_bandwidth(int mu, int nb_rb, int nr_band)
{
if (nr_band < 100) { //FR1
if (nr_band < 257) { //FR1
switch(mu) {
case 0 :
if (nb_rb<=25)
......@@ -494,6 +496,7 @@ void get_samplerate_and_bw(int mu,
*tx_bw = 50e6;
*rx_bw = 50e6;
}
break;
case 216:
if (threequarter_fs) {
*sample_rate=46.08e6;
......@@ -546,6 +549,7 @@ void get_samplerate_and_bw(int mu,
*tx_bw = 10e6;
*rx_bw = 10e6;
}
break;
case 25:
if (threequarter_fs) {
*sample_rate=5.76e6;
......
......@@ -27,8 +27,8 @@
uint32_t nr_subcarrier_spacing[MAX_NUM_SUBCARRIER_SPACING] = {15e3, 30e3, 60e3, 120e3, 240e3};
uint16_t nr_slots_per_subframe[MAX_NUM_SUBCARRIER_SPACING] = {1, 2, 4, 8, 16};
// Table 5.4.3.3-1 38-101
int nr_ssb_table[48][3] = {
// Table 5.4.3.3-1 38.101 and 38.108
int nr_ssb_table[][3] = {
{1, 15, nr_ssb_type_A},
{2, 15, nr_ssb_type_A},
{3, 15, nr_ssb_type_A},
......@@ -76,7 +76,10 @@ int nr_ssb_table[48][3] = {
{92, 15, nr_ssb_type_A},
{93, 15, nr_ssb_type_A},
{94, 15, nr_ssb_type_A},
{96, 30, nr_ssb_type_C}
{96, 30, nr_ssb_type_C},
{255, 15, nr_ssb_type_A},
{255, 30, nr_ssb_type_B},
{256, 15, nr_ssb_type_A},
};
......
......@@ -321,7 +321,7 @@ void config_common_ue(NR_UE_MAC_INST_t *mac,
}
uint32_t band = *scc->downlinkConfigCommon->frequencyInfoDL->frequencyBandList.list.array[0];
mac->frequency_range = band<100?FR1:FR2;
mac->frequency_range = band<257?FR1:FR2;
frame_type_t frame_type = get_frame_type(*scc->downlinkConfigCommon->frequencyInfoDL->frequencyBandList.list.array[0], *scc->ssbSubcarrierSpacing);
......
......@@ -229,7 +229,7 @@ void config_common(int Mod_idP, int pdsch_AntennaPorts, int pusch_AntennaPorts,
}
uint32_t band = *scc->downlinkConfigCommon->frequencyInfoDL->frequencyBandList.list.array[0];
frequency_range_t frequency_range = band<100?FR1:FR2;
frequency_range_t frequency_range = band<257?FR1:FR2;
frame_type_t frame_type = get_frame_type(*scc->downlinkConfigCommon->frequencyInfoDL->frequencyBandList.list.array[0], *scc->ssbSubcarrierSpacing);
RC.nrmac[Mod_idP]->common_channels[0].frame_type = frame_type;
......
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