1. update New Feature#945 to dev_ck_v2.1

2. update New Feature#1347 to dev_ck_v2.1
3. add new interface for ecs rfm1 and ape: spu_get_oam_handle_id for get oam handle_id by inst_id
4. Move Mem_init() from ape to ecs rfm1
5. TEST:
   5.1 spu(case0)+arm(case0):  pass
   5.2 spu(case14)+arm(case20):pass
   5.3 spu(case20)+arm(case20):pass
   5.4 spu(case21)+arm(case21):pass
   5.5 spu(case34)+arm(case5): pass
   5.6 spu(case44)+arm(case5): pass
This commit is contained in:
lishuang.xie 2023-12-06 17:43:42 +08:00
parent 0bd1487ff0
commit 8c59de6c96
10 changed files with 260 additions and 231 deletions

View File

@ -224,6 +224,14 @@ extern void osp_timer_sync(int scsId); /* 使能任务定时点 */
*/
extern void osp_timer_unsync(int scsId);
/*
spu_get_oam_handle_id
inst_id0/1
OAM队列的handle_id
*/
extern int32_t spu_get_oam_handle_id(uint8_t inst_id);
#endif

View File

@ -80,6 +80,13 @@ int32_t osp_send_msg(uint32_t msg_addr,
*/
void ecs_hw_que_irq_callback(ECS_HWQUE_IRQ_FUNC func);
/*
spu_get_oam_handle_id
inst_id0/1
OAM队列的handle_id
*/
int32_t spu_get_oam_handle_id(uint8_t inst_id);
/************************************************************************************/
/* 其他相关接口 */
/************************************************************************************/

View File

@ -19,7 +19,7 @@ osp_msg_tick_info st_tick_info;
#endif
#ifdef OSP_MSG_DBG_ENABLE
osp_msg_dbg_info_t gst_osp_msg_dbg_info[TASK_MAX];
osp_msg_dbg_info_t gst_osp_msg_dbg_info[TASK_ID_MAX];
#endif
int g_hq_vector = -1;

View File

@ -42,7 +42,7 @@ void osp_task_init(void)
g_taskid_num = 0;
#ifdef OSP_TASK_DBG_ENABLE
memset(&gst_osp_task_dbg_info, 0, sizeof(osp_task_dbg_info_t)*TASK_MAX);
memset(&gst_osp_task_dbg_info, 0, sizeof(osp_task_dbg_info_t)*TASK_ID_MAX);
#endif
spu_insert_cmd_ext("i_ape", (OSP_FUNCPTR)osp_show_task_info, "osp show task info", 0);

View File

@ -23,9 +23,6 @@
#include "pet_sm_mgt.h"
#include "osp_init.h"
extern void Mem_Init(void);
static int32_t gCoreId = 0;
ALWAYS_INLINE int32_t get_core_id(void)
{
@ -48,7 +45,6 @@ void set_core_id(void)
return;
}
int32_t soc_drv_init()
{
int apeId = get_core_id();
@ -56,13 +52,11 @@ int32_t soc_drv_init()
{
osp_var_init();
pet_sm_init();
Mem_Init(); /* call phy function to mem sm */
}
return 0;
}
void spu_drv_init(void)
{
pet_sm_alloc();

View File

@ -30,9 +30,3 @@ void phy_init(void)
return;
}
void Mem_Init(void)
{
return ;
}

View File

@ -17,5 +17,7 @@
extern int32_t spu_lib_debug_init(uint8_t core_id);
extern int32_t spu_get_oam_handle_id(uint8_t inst_id);
#endif /* __SPU_LIB_DEBUG_INIT_H__ */

View File

@ -14,6 +14,8 @@
#include "typedef.h"
#include "lib_debug_init.h"
#include "ucp_utility.h"
#include "msg_transfer_layer.h"
#include "ucp_port.h"
#define SPU_APE_NUM (8)
@ -49,3 +51,13 @@ int32_t spu_lib_debug_init(uint8_t core_id)
return ret_val;
}
int32_t spu_get_oam_handle_id(uint8_t inst_id)
{
HandleId_t handler;
handler.port_id = get_ucp_port_id();
handler.inst_id = inst_id;
handler.type_id = OAM;
return handler.value;
}

View File

@ -34,6 +34,7 @@
#include "fh_test.h"
#endif
extern void Mem_Init(void);
#ifdef DDR_MONITOR
void spu_ddr_monitor()
@ -78,6 +79,12 @@ int32_t main(int32_t argc, char* argv[])
spu_log_server_init();
#ifdef PALLADIUM_TEST
debug_write((DBG_DDR_IDX_DRV_BASE+(core_id<<2)), flag); // 0xB0
#endif
Mem_Init(); /* call phy function to mem sm */
#ifdef PALLADIUM_TEST
flag++;
debug_write((DBG_DDR_IDX_DRV_BASE+(core_id<<2)), flag);

View File

@ -31,23 +31,25 @@ uint8_t gu8_send_del_task_cnt = 0;
int32_t phy_fh_drv_init()
{
stFrontHaulDrvPara fhDrvPara;
memset_ucp(&fhDrvPara, 0, sizeof(stFrontHaulDrvPara));
stFrontHaulDrvPara fhDrvPara;
memset_ucp(&fhDrvPara, 0, sizeof(stFrontHaulDrvPara));
#ifdef DISTRIBUTED_BS
fhDrvPara.protocolSel = PROTOCOL_CPRI;
fhDrvPara.rateOption = CPRI_OPTION_8;
fhDrvPara.mapOption = OTIC_MAP_FIGURE12;
#endif
#ifdef ECPRI_DISTRIBUTED_BS
fhDrvPara.protocolSel = PROTOCOL_ECPRI;
fhDrvPara.rateOption = ECPRI_OPTION_10G;
#endif
#ifdef INTEGRATED_BS
fhDrvPara.protocolSel = PROTOCOL_JESD;
fhDrvPara.protocolSel = PROTOCOL_CPRI;
fhDrvPara.rateOption = CPRI_OPTION_8;
fhDrvPara.mapOption = OTIC_MAP_FIGURE12;
#endif
fronthaul_drv_cfg(&fhDrvPara);
#ifdef ECPRI_DISTRIBUTED_BS
fhDrvPara.protocolSel = PROTOCOL_ECPRI;
fhDrvPara.rateOption = ECPRI_OPTION_10G;
#endif
#ifdef INTEGRATED_BS
fhDrvPara.protocolSel = PROTOCOL_JESD;
#endif
fronthaul_drv_cfg(&fhDrvPara);
return 0;
}
@ -132,62 +134,62 @@ void ecs_rfm1_build_cell(uint32_t scsId, uint32_t cellId, uint32_t coreId, uint3
my_cpritmr.runCoreId = 0;
}
if (TDD_2500US_DOUBLE == frame_type)
{
my_cpritmr.frameType = TDD_2500US_DOUBLE;
my_cpritmr.t_period = 5000;
my_cpritmr.t_us = 500;
my_cpritmr.num_tti = 10;
my_cpritmr.num_tti_per_sfn = 20;
if (TDD_2500US_DOUBLE == frame_type)
{
my_cpritmr.frameType = TDD_2500US_DOUBLE;
my_cpritmr.t_period = 5000;
my_cpritmr.t_us = 500;
my_cpritmr.num_tti = 10;
my_cpritmr.num_tti_per_sfn = 20;
my_cpritmr.num_t_dl[0] = 3; // dl slot num
my_cpritmr.num_t_dl_symb[0] = 6; // dl symbol num
my_cpritmr.num_t_ul_symb[0] = 4; // ul symbol num
my_cpritmr.num_ants[0] = 4;
my_cpritmr.num_t_dl[0] = 3; // dl slot num
my_cpritmr.num_t_dl_symb[0] = 6; // dl symbol num
my_cpritmr.num_t_ul_symb[0] = 4; // ul symbol num
my_cpritmr.num_ants[0] = 4;
my_cpritmr.num_t_dl[1] = 2; // dl slot num
my_cpritmr.num_t_dl_symb[1] = 6; // dl symbol num
my_cpritmr.num_t_ul_symb[1] = 4; // ul symbol num
my_cpritmr.num_ants[1] = 4;
}
else
{
if (NR_SCS_30K == scsId)
{
my_cpritmr.frameType = TDD_MODE;
my_cpritmr.t_period = 5000;
my_cpritmr.t_us = 500;
my_cpritmr.num_tti = 10;
my_cpritmr.num_tti_per_sfn = 20;
my_cpritmr.num_t_dl[1] = 2; // dl slot num
my_cpritmr.num_t_dl_symb[1] = 6; // dl symbol num
my_cpritmr.num_t_ul_symb[1] = 4; // ul symbol num
my_cpritmr.num_ants[1] = 4;
}
else
{
if (NR_SCS_30K == scsId)
{
my_cpritmr.frameType = TDD_MODE;
my_cpritmr.t_period = 5000;
my_cpritmr.t_us = 500;
my_cpritmr.num_tti = 10;
my_cpritmr.num_tti_per_sfn = 20;
my_cpritmr.num_t_dl[0] = 7; // dl slot num
my_cpritmr.num_t_dl_symb[0] = 6; // dl symbol num
my_cpritmr.num_t_ul_symb[0] = 4; // ul symbol num
my_cpritmr.num_ants[0] = 4;
}
else if (LTE_SCS_ID == scsId)
{
my_cpritmr.t_period = 10000;
my_cpritmr.t_us = 1000;
my_cpritmr.num_tti = 10;
my_cpritmr.num_tti_per_sfn = 10;
my_cpritmr.num_t_dl[0] = 7; // dl slot num
my_cpritmr.num_t_dl_symb[0] = 6; // dl symbol num
my_cpritmr.num_t_ul_symb[0] = 4; // ul symbol num
my_cpritmr.num_ants[0] = 4;
}
else if (LTE_SCS_ID == scsId)
{
my_cpritmr.t_period = 10000;
my_cpritmr.t_us = 1000;
my_cpritmr.num_tti = 10;
my_cpritmr.num_tti_per_sfn = 10;
my_cpritmr.num_t_dl[0] =10;// 7; // dl slot num
my_cpritmr.num_t_dl_symb[0] = 14;//6; // dl symbol num
my_cpritmr.num_t_ul_symb[0] = 14;//4; // ul symbol num
my_cpritmr.num_ants[0] = 2;
}
else
{
return;
}
my_cpritmr.num_t_dl[0] =10;// 7; // dl slot num
my_cpritmr.num_t_dl_symb[0] = 14;//6; // dl symbol num
my_cpritmr.num_t_ul_symb[0] = 14;//4; // ul symbol num
my_cpritmr.num_ants[0] = 2;
}
else
{
return;
}
}
int32_t ret = mtimer_init4phy(&my_cpritmr);
if (0 != ret)
{
return;
}
if (0 != ret)
{
return;
}
uint32_t apeId = 0;
uint32_t runCore = my_cpritmr.runCoreId;
@ -252,14 +254,14 @@ void ecs_rfm1_delete_cell(uint32_t scsId, uint32_t cellId, uint32_t coreId)
flag++;
debug_write((DBG_DDR_IDX_DRV_BASE+52), flag); // 0xb7e060d0
#endif
}
}
volatile uint32_t gCellFlag = 0;
void phy_init(void)
{
volatile uint32_t gCellFlag = 0;
void phy_init(void)
{
gCellFlag = 0;
return;
}
}
void phy_oam_msg_proc(uint32_t u32msg_addr, uint32_t u32msg_size)
{
@ -271,14 +273,14 @@ void phy_msg_proc(uint32_t u32msg_addr, uint32_t u32msg_size)
uint32_t msg_buf = do_read(u32msg_addr);
uint32_t msg_type = do_read(msg_buf);
//memcpy_ucp(0x60000000, msg_buf, 32); // temp code
//memcpy_ucp(0x60000000, msg_buf, 32); // temp code
if (CELL_SETUP_TYPE_SIMULATION == msg_type)
{
uint32_t msg_new_del = do_read(msg_buf+12); // 0; //
uint32_t scs_id = do_read(msg_buf+16); // 1; //
uint32_t cell_id = do_read(msg_buf+20); // 0; //
uint32_t scs_id = do_read(msg_buf+16); // 1; //
uint32_t cell_id = do_read(msg_buf+20); // 0; //
uint32_t run_core = do_read(msg_buf+24);
uint32_t frame_type = do_read(msg_buf+28);
uint32_t frame_type = do_read(msg_buf+28);
if (1 < msg_new_del)
{
@ -299,16 +301,15 @@ void phy_msg_proc(uint32_t u32msg_addr, uint32_t u32msg_size)
}
debug_write(DBG_DDR_COMMON_IDX(get_core_id(),1), 0x12345678);
}
else if (ORX_MSG_TYPE_SIMULATION == msg_type)
{
phy_sniffer_start();
debug_write(DBG_DDR_COMMON_IDX(get_core_id(),2), ORX_MSG_TYPE_SIMULATION);
}
else if (ORX_MSG_TYPE_SIMULATION == msg_type)
{
phy_sniffer_start();
debug_write(DBG_DDR_COMMON_IDX(get_core_id(),2), ORX_MSG_TYPE_SIMULATION);
}
return;
}
uint32_t gDdrCallCnt = 0;
void ddr_wr_callback()
{
@ -330,4 +331,8 @@ void phy_sniffer_data_proc()
debug_write((DBG_DDR_IDX_DRV_BASE+123), gOrxCallCnt); // 0x1ec
}
void Mem_Init(void)
{
return ;
}