fixes for CSET not at the bottom of BWP at OAI UE

Signed-off-by: Francesco Mani <email@francescomani.it>
This commit is contained in:
francescomani
2026-01-30 15:42:01 +01:00
committed by Francesco Mani
parent 53dd027a97
commit 099ab4b49b
2 changed files with 8 additions and 6 deletions

View File

@@ -800,7 +800,7 @@ void nr_pdcch_channel_estimation(const PHY_VARS_NR_UE *ue,
for (int aarx = 0; aarx < ue->frame_parms.nb_antennas_rx; aarx++) {
int k = coreset_start_subcarrier;
c16_t *pil = &pilot[dmrs_ref * 3];
c16_t *pil = &pilot[(dmrs_ref + coreset_start_rb) * 3];
c16_t *rxF = &rxdataF[aarx][k + 1];
c16_t *dl_ch = pdcch_dl_ch_estimates[aarx];

View File

@@ -224,12 +224,14 @@ static void nr_pdcch_extract_rbs_single(uint32_t rxdataF_sz,
*/
c16_t middle_prb_buffer[RE_PER_RB];
for (int rb_group = 0; rb_group < coreset_nbr_rb / 6; rb_group++) {
int start = rb_offset / 6;
int size = coreset_nbr_rb / 6;
for (int rb_group = start; rb_group < start + size; rb_group++) {
if ((coreset_freq_dom[rb_group / 8] & (1 << (7 - (rb_group & 7)))) == 0) {
continue;
}
for (int rb = 0; rb < 6; rb++) {
int c_rb = rb_group * 6 + rb + rb_offset;
int c_rb = rb_group * 6 + rb;
c16_t *rxF = NULL;
if ((frame_parms->N_RB_DL & 1) == 0) {
if ((c_rb + n_BWP_start) < frame_parms->N_RB_DL / 2)
@@ -324,10 +326,10 @@ static void nr_rx_pdcch_symbol(PHY_VARS_NR_UE *ue,
if (coreset->CoreSetType == NFAPI_NR_CSET_CONFIG_PDCCH_CONFIG)
dmrs_ref = phy_pdcch_config->pdcch_config[ss_idx].BWPStart;
// generate pilot
c16_t pilot[(n_rb + dmrs_ref) * 3] __attribute__((aligned(16)));
c16_t pilot[(n_rb + rb_offset + dmrs_ref) * 3] __attribute__((aligned(16)));
// Note: pilot returned by the following function is already the complex conjugate of the transmitted DMRS
const uint32_t *gold = nr_gold_pdcch(fp->N_RB_DL, fp->symbols_per_slot, scrambling_id, proc->nr_slot_rx, symbol);
nr_pdcch_dmrs_ref(gold, pilot, n_rb + dmrs_ref);
nr_pdcch_dmrs_ref(gold, pilot, n_rb + rb_offset + dmrs_ref);
nr_pdcch_channel_estimation(ue,
n_rb,
rb_offset,
@@ -352,7 +354,7 @@ static void nr_rx_pdcch_symbol(PHY_VARS_NR_UE *ue,
pdcch_dl_ch_estimates_ext,
fp,
coreset->frequency_domain_resource,
coreset->rb_offset,
rb_offset,
n_rb,
phy_pdcch_config->pdcch_config[ss_idx].BWPStart);