Merge branch 'dev_ck_v2.1_NewFeature#1989' into 'dev_ck_v2.1'

CPRI 25G速率RS-FEC初始化时可配置功能入库

See merge request ucp/driver/ucp4008_platform_spu!117
This commit is contained in:
Weihua Li 2024-06-12 02:21:25 +00:00
commit 3ddce96528
25 changed files with 91 additions and 65 deletions

View File

@ -28,6 +28,13 @@ typedef enum _tagCpriOptionID
CPRI_OPTION_10 = 10
}CpriOptID;
// cpri ctrl选项
typedef enum _tagCpriCtrlType
{
CPRI_RS_FEC_DISABLE = 0,
CPRI_RS_FEC_ENABLE = 1,
}CpriCtrlType;
// cpri map模式
typedef enum _tagCpriMapType
{
@ -37,7 +44,6 @@ typedef enum _tagCpriMapType
OTIC_MAP_8NR_8LTE //option10,2个4T4R的NR小区 + 4个2T2R的LTE小区
}CpriMapType;
// ecpri option模式决定接口速率
typedef enum _tagEcpriOptionID
{
@ -50,6 +56,7 @@ typedef struct _tagFrontHaulDrvPara
uint32_t protocolSel; // numProtoID
uint32_t rateOption; // CpriOptID/EcpriOptID
uint32_t mapOption; // CpriMapType
uint32_t ctrlOption; // ctrlOption
}stFrontHaulDrvPara;
typedef enum _tagScsID

View File

@ -99,6 +99,7 @@
#define MTIMER_INTEGRATED_MAX_NUM 4
#define MTIMER_DISTRIBUTED_MAX_NUM 2
typedef enum _tagScsId
{
SCS_1st_MTIMER_ID = 0,
@ -153,6 +154,13 @@ typedef enum _tagCpriOptionID
CPRI_OPTION_10 = 10
}CpriOptID;
// cpri ctrl选项
typedef enum _tagCpriCtrlType
{
CPRI_RS_FEC_DISABLE = 0,
CPRI_RS_FEC_ENABLE = 1,
}CpriCtrlType;
typedef enum _tagEcpriOptionID
{
ECPRI_OPTION_10G = 10,
@ -215,6 +223,7 @@ typedef struct _tagFrontHaulDrvPara
uint32_t protocolSel; // numProtoID
uint32_t rateOption; // CpriOptID/EcpriOptID
uint32_t mapOption; // CpriMapType
uint32_t ctrlOption; // ctrlOption
}stFrontHaulDrvPara;
typedef struct phy_timer_config_ind_t

View File

@ -80,7 +80,7 @@ typedef struct
}stCpriCsuCmdFifoInfo;
void cpri_init(uint32_t option,uint32_t MappingMode);
void cpri_init(uint32_t option,uint32_t MappingMode, uint32_t ctrl);
void cpri_ecprimode_init();

View File

@ -17,7 +17,7 @@
/* --------------------------------------------------- <DEF&DEC> --------------------------------------------------- */
extern void cpri_link_init(uint32_t option);
extern void cpri_link_init(uint32_t option, uint32_t ctrl);
extern void ecpri_cprimode_init(void);
@ -340,7 +340,7 @@ void cpri_int_init(void)
* return: none
* others: none
**********************************************************************************************************************/
void cpri_init(uint32_t option, uint32_t mode)
void cpri_init(uint32_t option, uint32_t mode, uint32_t ctrl)
{
#ifdef PALLADIUM_TEST
@ -381,7 +381,7 @@ void cpri_init(uint32_t option, uint32_t mode)
debug_write((DBG_DDR_IDX_DRV_BASE + 2 + (apeId << 2)), flag++);
#endif
cpri_link_init(option);
cpri_link_init(option, ctrl);
UCP_PRINT_EMPTY("cpri link init finished.\r\n");
#ifdef PALLADIUM_TEST
debug_write((DBG_DDR_IDX_DRV_BASE + 2 + (apeId << 2)), flag++);

View File

@ -1043,7 +1043,7 @@ void cpri_pma_eq(void)
* return: none
* others: none
**********************************************************************************************************************/
void cpri_link_init(uint32_t option)
void cpri_link_init(uint32_t option, uint32_t ctrl)
{
do_write(&JECS_CTRL_PROTOCOL_SEL, do_read_volatile(&JECS_CTRL_PROTOCOL_SEL)|BIT4);
@ -1145,12 +1145,13 @@ void cpri_link_init(uint32_t option)
do_write(&CPRI_PCS_CTRL_CFG, 0x2);
__ucps2_synch(f_SM);
#if 1
do_write(&CPRI_PCS_ADDR_CFG, 0x320);
do_write(&CPRI_PCS_DATA_TX_CFG, BIT2); // enable rs-fec
do_write(&CPRI_PCS_CTRL_CFG, 0x2);
__ucps2_synch(f_SM);
#endif
if((ctrl&BIT0) == 1)
{
do_write(&CPRI_PCS_ADDR_CFG, 0x320);
do_write(&CPRI_PCS_DATA_TX_CFG, BIT2); // enable rs-fec
do_write(&CPRI_PCS_CTRL_CFG, 0x2);
__ucps2_synch(f_SM);
}
core_clk_xtal_to_normal();

View File

@ -183,7 +183,7 @@ int32_t fronthaul_drv_cfg(stFrontHaulDrvPara* pFhDrvPara)
{
if (PROTOCOL_CPRI == pFhDrvPara->protocolSel)
{
cpri_init(pFhDrvPara->rateOption, pFhDrvPara->mapOption);
cpri_init(pFhDrvPara->rateOption, pFhDrvPara->mapOption, pFhDrvPara->ctrlOption);
}
else if (PROTOCOL_ECPRI == pFhDrvPara->protocolSel)
{

View File

@ -642,6 +642,7 @@ int32_t fh_drv_init(void)
fhDrvPara.protocolSel = PROTOCOL_CPRI;
fhDrvPara.rateOption = CPRI_OPTION_8;
fhDrvPara.mapOption = OTIC_MAP_FIGURE12;
fhDrvPara.ctrlOption = CPRI_RS_FEC_DISABLE;
fronthaul_drv_cfg(&fhDrvPara);
return 0;

View File

@ -294,6 +294,7 @@ int32_t fh_drv_init(void)
fhDrvPara.protocolSel = PROTOCOL_CPRI;
fhDrvPara.rateOption = CPRI_OPTION_8;
fhDrvPara.mapOption = OTIC_MAP_FIGURE12;
fhDrvPara.ctrlOption = CPRI_RS_FEC_DISABLE;
fronthaul_drv_cfg(&fhDrvPara);
return 0;

View File

@ -295,6 +295,7 @@ int32_t fh_drv_init(void)
fhDrvPara.protocolSel = PROTOCOL_CPRI;
fhDrvPara.rateOption = CPRI_OPTION_8;
fhDrvPara.mapOption = OTIC_MAP_FIGURE12;
fhDrvPara.ctrlOption = CPRI_RS_FEC_DISABLE;
fronthaul_drv_cfg(&fhDrvPara);
return 0;

View File

@ -295,6 +295,7 @@ int32_t fh_drv_init(void)
fhDrvPara.protocolSel = PROTOCOL_CPRI;
fhDrvPara.rateOption = CPRI_OPTION_8;
fhDrvPara.mapOption = OTIC_MAP_FIGURE12;
fhDrvPara.ctrlOption = CPRI_RS_FEC_DISABLE;
fronthaul_drv_cfg(&fhDrvPara);
return 0;

View File

@ -551,6 +551,7 @@ int32_t fh_drv_init(void)
fhDrvPara.protocolSel = PROTOCOL_CPRI;
fhDrvPara.rateOption = CPRI_OPTION_8;
fhDrvPara.mapOption = OTIC_MAP_FIGURE10;
fhDrvPara.ctrlOption = CPRI_RS_FEC_DISABLE;
fronthaul_drv_cfg(&fhDrvPara);
return 0;

View File

@ -66,7 +66,7 @@ int32_t fh_data_init(void)
int32_t fh_drv_init(void)
{
cpri_init(CPRI_OPTION_8, OTIC_MAP_FIGURE10);
cpri_init(CPRI_OPTION_8, OTIC_MAP_FIGURE10, CPRI_RS_FEC_DISABLE);
return 0;
}

View File

@ -66,7 +66,7 @@ int32_t fh_data_init(void)
int32_t fh_drv_init(void)
{
cpri_init(CPRI_OPTION_8, OTIC_MAP_FIGURE10);
cpri_init(CPRI_OPTION_8, OTIC_MAP_FIGURE10, CPRI_RS_FEC_DISABLE);
return 0;
}

View File

@ -66,7 +66,7 @@ int32_t fh_data_init(void)
int32_t fh_drv_init(void)
{
cpri_init(CPRI_OPTION_8, OTIC_MAP_FIGURE10);
cpri_init(CPRI_OPTION_8, OTIC_MAP_FIGURE10, CPRI_RS_FEC_DISABLE);
return 0;
}

View File

@ -660,6 +660,7 @@ int32_t fh_drv_init(void)
fhDrvPara.protocolSel = PROTOCOL_CPRI;
fhDrvPara.rateOption = CPRI_OPTION_10;
fhDrvPara.mapOption = OTIC_MAP_FIGURE16;
fhDrvPara.ctrlOption = CPRI_RS_FEC_ENABLE;
fronthaul_drv_cfg(&fhDrvPara);
return 0;

View File

@ -66,7 +66,7 @@ int32_t fh_data_init(void)
int32_t fh_drv_init(void)
{
cpri_init(CPRI_OPTION_10, OTIC_MAP_FIGURE16);
cpri_init(CPRI_OPTION_10, OTIC_MAP_FIGURE16, CPRI_RS_FEC_ENABLE);
return 0;
}

View File

@ -66,8 +66,7 @@ int32_t fh_data_init(void)
int32_t fh_drv_init(void)
{
cpri_init(CPRI_OPTION_10, OTIC_MAP_FIGURE16);
cpri_init(CPRI_OPTION_10, OTIC_MAP_FIGURE16, CPRI_RS_FEC_ENABLE);
return 0;
}

View File

@ -415,6 +415,7 @@ int32_t fh_drv_init(void)
fhDrvPara.protocolSel = PROTOCOL_CPRI;
fhDrvPara.rateOption = CPRI_OPTION_8;
fhDrvPara.mapOption = OTIC_MAP_FIGURE12;
fhDrvPara.ctrlOption = CPRI_RS_FEC_DISABLE;
fronthaul_drv_cfg(&fhDrvPara);
return 0;

View File

@ -64,7 +64,7 @@ int32_t fh_data_init(void)
int32_t fh_drv_init(void)
{
cpri_init(CPRI_OPTION_8, OTIC_MAP_FIGURE12);//NR TDD和FDD的mapping是一样的
cpri_init(CPRI_OPTION_8, OTIC_MAP_FIGURE12, CPRI_RS_FEC_DISABLE);//NR TDD和FDD的mapping是一样的
return 0;
}

View File

@ -64,7 +64,7 @@ int32_t fh_data_init(void)
int32_t fh_drv_init(void)
{
cpri_init(CPRI_OPTION_8, OTIC_MAP_FIGURE12);//NR TDD和FDD的mapping是一样的
cpri_init(CPRI_OPTION_8, OTIC_MAP_FIGURE12, CPRI_RS_FEC_DISABLE);//NR TDD和FDD的mapping是一样的
return 0;
}

View File

@ -64,7 +64,7 @@ int32_t fh_data_init(void)
int32_t fh_drv_init(void)
{
cpri_init(CPRI_OPTION_8, OTIC_MAP_FIGURE12);//NR TDD和FDD的mapping是一样的
cpri_init(CPRI_OPTION_8, OTIC_MAP_FIGURE12, CPRI_RS_FEC_DISABLE);//NR TDD和FDD的mapping是一样的
return 0;
}

View File

@ -64,7 +64,7 @@ int32_t fh_data_init(void)
int32_t fh_drv_init(void)
{
cpri_init(CPRI_OPTION_8, OTIC_MAP_FIGURE12);//NR TDD和FDD的mapping是一样的
cpri_init(CPRI_OPTION_8, OTIC_MAP_FIGURE12, CPRI_RS_FEC_DISABLE);//NR TDD和FDD的mapping是一样的
return 0;
}

View File

@ -416,6 +416,7 @@ int32_t fh_drv_init(void)
fhDrvPara.protocolSel = PROTOCOL_CPRI;
fhDrvPara.rateOption = CPRI_OPTION_10;
fhDrvPara.mapOption = OTIC_MAP_8NR_8LTE;
fhDrvPara.ctrlOption = CPRI_RS_FEC_ENABLE;
fronthaul_drv_cfg(&fhDrvPara);
return 0;

View File

@ -236,6 +236,7 @@ int32_t fh_drv_init(void)
fhDrvPara.protocolSel = PROTOCOL_CPRI;
fhDrvPara.rateOption = CPRI_OPTION_10;
fhDrvPara.mapOption = OTIC_MAP_8NR_8LTE;
fhDrvPara.ctrlOption = CPRI_RS_FEC_ENABLE;
fronthaul_drv_cfg(&fhDrvPara);
return 0;

View File

@ -236,6 +236,7 @@ int32_t fh_drv_init(void)
fhDrvPara.protocolSel = PROTOCOL_CPRI;
fhDrvPara.rateOption = CPRI_OPTION_10;
fhDrvPara.mapOption = OTIC_MAP_8NR_8LTE;
fhDrvPara.ctrlOption = CPRI_RS_FEC_ENABLE;
fronthaul_drv_cfg(&fhDrvPara);
return 0;