firmware/scheduler: Fix CBCH related RSL channel numbers

CBCH support in the firmware has been introduced almost at the same
time it was implemented in trxcon, and the same mistake was made
as described in Ia9a415628c659cbc2dd5dc65b875b7f935d6e211.

Despite Calypso based PHY does not support PDCH (GPRS channels),
let's avoid collisions and use the following cbits values:

  0x19 / 0b11001 - MF_TASK_SDCCH4_CBCH on GSM_DCHAN_SDCCH_4_CBCH,
  0x1a / 0b11010 - MF_TASK_SDCCH8_CBCH on GSM_DCHAN_SDCCH_8_CBCH.

Change-Id: Ibb0f90695460e6ede12016c12a0cfdf9c74dfb24
Related: OS#4027
This commit is contained in:
Vadim Yanitskiy 2019-05-28 06:01:01 +07:00
parent c1e2ff6525
commit 923c19a883
2 changed files with 15 additions and 10 deletions

View File

@ -97,10 +97,13 @@ static uint32_t chan_nr2mf_task_mask(uint8_t chan_nr, uint8_t neigh_mode)
lch_idx = cbits & 0x7;
master_task = MF_TASK_SDCCH8_0 + lch_idx;
multiframe = MF51;
} else if ((cbits & 0x1e) == 0x18) {
/* Osmocom specific extension for CBCH */
master_task = (cbits & 0x01) ? /* 0b1100T */
MF_TASK_SDCCH4_CBCH : MF_TASK_SDCCH8_CBCH;
} else if ((cbits & 0x1f) == 0x19) {
/* Osmocom specific extension for CBCH on SDCCH/4 */
master_task = MF_TASK_SDCCH4_CBCH;
multiframe = MF51;
} else if ((cbits & 0x1f) == 0x1a) {
/* Osmocom specific extension for CBCH on SDCCH/8 */
master_task = MF_TASK_SDCCH8_CBCH;
multiframe = MF51;
#if 0
} else if (cbits == 0x10) {
@ -141,10 +144,12 @@ static int chan_nr2dchan_type(uint8_t chan_nr)
return GSM_DCHAN_SDCCH_4;
} else if ((cbits & 0x18) == 0x08) {
return GSM_DCHAN_SDCCH_8;
} else if ((cbits & 0x1e) == 0x18) {
/* Osmocom-specific extension for CBCH */
return (cbits & 0x01) ? /* 0b1100T */
GSM_DCHAN_SDCCH_8_CBCH : GSM_DCHAN_SDCCH_4_CBCH;
} else if ((cbits & 0x1f) == 0x19) {
/* Osmocom-specific extension for CBCH on SDCCH/4 */
return GSM_DCHAN_SDCCH_4_CBCH;
} else if ((cbits & 0x1f) == 0x1a) {
/* Osmocom-specific extension for CBCH on SDCCH/8 */
return GSM_DCHAN_SDCCH_8_CBCH;
}
return GSM_DCHAN_UNKNOWN;

View File

@ -416,10 +416,10 @@ uint8_t mframe_task2chan_nr(enum mframe_task mft, uint8_t ts)
/* Osmocom specific extensions */
case MF_TASK_SDCCH4_CBCH:
cbits = 0x18;
cbits = 0x19;
break;
case MF_TASK_SDCCH8_CBCH:
cbits = 0x19;
cbits = 0x1a;
break;
case MF_TASK_UL_ALL_NB: