Merge branch 'dev_ck_v2.1_feature_enhancement#1118' into 'dev_ck_v2.1'
帧头偏移设置、查询功能入库 See merge request ucp/driver/ucp4008_platform_spu!48
This commit is contained in:
commit
1c78485f0c
@ -132,6 +132,19 @@ typedef struct _tagCpriSetDelayRsp
|
|||||||
uint8_t u8rsv[2];
|
uint8_t u8rsv[2];
|
||||||
}stCpriSetDelayRsp;
|
}stCpriSetDelayRsp;
|
||||||
|
|
||||||
|
typedef struct _tagCpriFrameHeadOffsetReq {
|
||||||
|
uint16_t u16frame_head_offset;
|
||||||
|
uint8_t u8rsv[2];
|
||||||
|
} stCpriFrameHeadOffsetReq;
|
||||||
|
typedef struct _tagCpriFrameHeadOffsetRsp {
|
||||||
|
uint8_t u8result;
|
||||||
|
uint8_t u8rsv[3];
|
||||||
|
} stCpriFrameHeadOffsetRsp;
|
||||||
|
typedef struct _tagCpriGetFrameHeadOffset {
|
||||||
|
uint8_t u8result;
|
||||||
|
uint8_t u8rsv;
|
||||||
|
uint16_t u16frame_head_offset;
|
||||||
|
}stCpriGetFrameHeadOffset;
|
||||||
typedef struct _tagOamMsgTransferHeader {
|
typedef struct _tagOamMsgTransferHeader {
|
||||||
uint8_t numMsg;
|
uint8_t numMsg;
|
||||||
uint8_t cellIndex;
|
uint8_t cellIndex;
|
||||||
@ -152,9 +165,13 @@ void cpri_delay_measurement_ck();
|
|||||||
|
|
||||||
void update_cpri_link_status();
|
void update_cpri_link_status();
|
||||||
|
|
||||||
|
// cpri延时设置与获取
|
||||||
stCpriSetDelayRsp* set_cpri_link_delay(stCpriSetLinkDelay* pCpriSetDelay);
|
stCpriSetDelayRsp* set_cpri_link_delay(stCpriSetLinkDelay* pCpriSetDelay);
|
||||||
void get_cpri_link_delay(uint8_t u8fiber_port, stCpriGetLinkDelay* pCpriGetDelay);
|
void get_cpri_link_delay(uint8_t u8fiber_port, stCpriGetLinkDelay* pCpriGetDelay);
|
||||||
void get_cpri_rndtrip_delay(uint8_t u8fiber_port, stCpriGetRndDelay* pCpriRndDealy);
|
void get_cpri_rndtrip_delay(uint8_t u8fiber_port, stCpriGetRndDelay* pCpriRndDealy);
|
||||||
|
|
||||||
|
// cpri帧头偏移设置与获取
|
||||||
|
stCpriFrameHeadOffsetRsp* set_frame_head_offset(stCpriFrameHeadOffsetReq* pCpriFrameHeadOffset);
|
||||||
|
void get_cpri_framehead_offset(stCpriGetFrameHeadOffset* pCpriFrameHeadOffset);
|
||||||
|
|
||||||
#endif /* CPRI_DELAY_H_ */
|
#endif /* CPRI_DELAY_H_ */
|
||||||
|
@ -29,13 +29,15 @@ typedef struct tEcsRfmDmLocalMgt {
|
|||||||
stCpriPara* pCpriPara;
|
stCpriPara* pCpriPara;
|
||||||
stCpriDelayMeasure* pCpriDelay;
|
stCpriDelayMeasure* pCpriDelay;
|
||||||
//#endif
|
//#endif
|
||||||
stGpioOnBoard* pGpioInfo;
|
stGpioOnBoard* pGpioInfo;
|
||||||
stFhAlarmStat* pAlarmStatus;
|
stFhAlarmStat* pAlarmStatus;
|
||||||
stMtimerPara* pMtimerPara[MTIMER_INTEGRATED_MAX_NUM];
|
stMtimerPara* pMtimerPara[MTIMER_INTEGRATED_MAX_NUM];
|
||||||
stOamMsgTransferHeader* pOamMsgPtr;
|
stOamMsgTransferHeader* pOamMsgPtr;
|
||||||
stCpriSetLinkDelay* pOamBaseDelaySetRspPtr ;
|
stCpriSetLinkDelay* pOamBaseDelaySetRspPtr ;
|
||||||
stCpriGetLinkDelay* pOamBaseDelayQryRspPtr ;
|
stCpriGetLinkDelay* pOamBaseDelayQryRspPtr ;
|
||||||
stCpriGetRndDelay* pOamFiberDelayQryRspPtr ;
|
stCpriGetRndDelay* pOamFiberDelayQryRspPtr ;
|
||||||
|
stCpriFrameHeadOffsetRsp* pOamFrameHeadOffsetRspPtr ;
|
||||||
|
stCpriGetFrameHeadOffset* pOamFrameHeadOffsetQryRspPtr;
|
||||||
} EcsRfmDmLocalMgt_t;
|
} EcsRfmDmLocalMgt_t;
|
||||||
|
|
||||||
EcsRfmDmLocalMgt_t* get_ecs_rfm_dm_local_mgt(void);
|
EcsRfmDmLocalMgt_t* get_ecs_rfm_dm_local_mgt(void);
|
||||||
|
@ -78,6 +78,16 @@ int32_t ecs_rfm_dm_alloc(void)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pEcsDmLocalMgt->pOamFrameHeadOffsetRspPtr = (stCpriFrameHeadOffsetRsp*)memSectionAlloc(pMemSection, sizeof(stCpriFrameHeadOffsetRsp), MEM_ALIGNED_4BYTES, "OamFrameHeadOffsetRsp");
|
||||||
|
if (NULL == pEcsDmLocalMgt->pOamFrameHeadOffsetRspPtr)
|
||||||
|
{
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
pEcsDmLocalMgt->pOamFrameHeadOffsetQryRspPtr = (stCpriGetFrameHeadOffset*)memSectionAlloc(pMemSection, sizeof(stCpriGetFrameHeadOffset), MEM_ALIGNED_4BYTES, "pOamFrameHeadOffsetQryRspPtr");
|
||||||
|
if (NULL == pEcsDmLocalMgt->pOamFrameHeadOffsetQryRspPtr)
|
||||||
|
{
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
for (int i = 0; i < MTIMER_INTEGRATED_MAX_NUM; i++)
|
for (int i = 0; i < MTIMER_INTEGRATED_MAX_NUM; i++)
|
||||||
{
|
{
|
||||||
pEcsDmLocalMgt->pMtimerPara[i] = (stMtimerPara*)memSectionAlloc(pMemSection, sizeof(stMtimerPara), MEM_ALIGNED_4BYTES, "pMtimerPara[i]");
|
pEcsDmLocalMgt->pMtimerPara[i] = (stMtimerPara*)memSectionAlloc(pMemSection, sizeof(stMtimerPara), MEM_ALIGNED_4BYTES, "pMtimerPara[i]");
|
||||||
|
@ -481,3 +481,32 @@ void get_cpri_rndtrip_delay(uint8_t u8fiber_port, stCpriGetRndDelay* pCpriRndDea
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
stCpriFrameHeadOffsetRsp stCpriFrameHeadOff;
|
||||||
|
stCpriFrameHeadOffsetRsp* set_frame_head_offset(stCpriFrameHeadOffsetReq* pCpriFrameHeadOffset)
|
||||||
|
{
|
||||||
|
memset(&stCpriFrameHeadOff, 0, sizeof(stCpriFrameHeadOff));
|
||||||
|
if (NULL == pCpriFrameHeadOffset)
|
||||||
|
{
|
||||||
|
stCpriFrameHeadOff.u8result = 0;
|
||||||
|
return &stCpriFrameHeadOff;
|
||||||
|
}
|
||||||
|
uint32_t addr = 0;
|
||||||
|
for (int8_t i = 0; i < PHY_SCS_MAX_NUM; i++)
|
||||||
|
{
|
||||||
|
addr = (uint32_t)&(phyPara[i].gpsOffset);
|
||||||
|
do_write_short(addr, pCpriFrameHeadOffset->u16frame_head_offset);
|
||||||
|
}
|
||||||
|
stCpriFrameHeadOff.u8result = 1;
|
||||||
|
return &stCpriFrameHeadOff;
|
||||||
|
}
|
||||||
|
void get_cpri_framehead_offset(stCpriGetFrameHeadOffset* pCpriFrameHeadOffset)
|
||||||
|
{
|
||||||
|
if (NULL == pCpriFrameHeadOffset)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
uint32_t addr = (uint32_t)&(phyPara[0].gpsOffset);
|
||||||
|
pCpriFrameHeadOffset->u16frame_head_offset = do_read_volatile_short(addr);
|
||||||
|
pCpriFrameHeadOffset->u8result = 1;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
@ -17,13 +17,18 @@
|
|||||||
|
|
||||||
#include "typedef.h"
|
#include "typedef.h"
|
||||||
|
|
||||||
#define SPU_OAM_BASE_DELAY_SET_REQ 0x200 // 0x200
|
#define SPU_OAM_BASE_DELAY_SET_REQ 0x200 // 0x200
|
||||||
#define SPU_OAM_BASE_DELAY_SET_RSP 0x201
|
#define SPU_OAM_BASE_DELAY_SET_RSP 0x201
|
||||||
#define SPU_OAM_BASE_DELAY_QRY_REQ 0x202
|
#define SPU_OAM_BASE_DELAY_QRY_REQ 0x202
|
||||||
#define SPU_OAM_BASE_DELAY_QRY_RSP 0x203
|
#define SPU_OAM_BASE_DELAY_QRY_RSP 0x203
|
||||||
#define SPU_OAM_FIBER_DELAY_QRY_REQ 0x204
|
#define SPU_OAM_FIBER_DELAY_QRY_REQ 0x204
|
||||||
#define SPU_OAM_FIBER_DELAY_QRY_RSP 0x205
|
#define SPU_OAM_FIBER_DELAY_QRY_RSP 0x205
|
||||||
#define MSG_TRANSFER_OAM_MSG_TYPE 0x125
|
#define SPU_OAM_FRAME_HEAD_OFFSET_REQ 0x206
|
||||||
|
#define SPU_OAM_FRAME_HEAD_OFFSET_RSP 0x207
|
||||||
|
#define SPU_OAM_FRAME_HEAD_OFFSET_QRY_REQ 0x208
|
||||||
|
#define SPU_OAM_FRAME_HEAD_OFFSET_QRY_RSP 0x209
|
||||||
|
|
||||||
|
#define MSG_TRANSFER_OAM_MSG_TYPE 0x125
|
||||||
#define DM_GLADDR_TO_DMAADDR1(addr) (addr-0x100000)// (addr-0x200000) //
|
#define DM_GLADDR_TO_DMAADDR1(addr) (addr-0x100000)// (addr-0x200000) //
|
||||||
|
|
||||||
typedef struct tOamMsgTransferHeader {
|
typedef struct tOamMsgTransferHeader {
|
||||||
@ -73,11 +78,29 @@ typedef struct tSpuOamFiberDelayQryRsp {
|
|||||||
uint32_t u32t14_val;
|
uint32_t u32t14_val;
|
||||||
} SpuOamFiberDelayQryRsp_t;
|
} SpuOamFiberDelayQryRsp_t;
|
||||||
|
|
||||||
|
typedef struct tSpuOamFrameHeadOffsetReq {
|
||||||
|
uint16_t u16frame_head_offset;
|
||||||
|
uint8_t u8rsv[2];
|
||||||
|
} SpuOamFrameHeadOffsetReq_t;
|
||||||
|
|
||||||
|
typedef struct tSpuOamFrameHeadOffsetRsp {
|
||||||
|
uint8_t u8result;
|
||||||
|
uint8_t u8rsv[3];
|
||||||
|
} SpuOamFrameHeadOffsetRsp_t;
|
||||||
|
|
||||||
|
typedef struct tSpuOamFrameHeadOffsetQryRsp {
|
||||||
|
uint8_t u8result;
|
||||||
|
uint8_t u8rsv;
|
||||||
|
uint16_t u16frame_head_offset;
|
||||||
|
}SpuOamFrameHeadOffsetQryRsp_t;
|
||||||
|
|
||||||
void oam_msg_init(void);
|
void oam_msg_init(void);
|
||||||
void oam_msg_proc(uint32_t u32msg_addr, uint32_t u32msg_size);
|
void oam_msg_proc(uint32_t u32msg_addr, uint32_t u32msg_size);
|
||||||
void oam_base_delay_proc(SpuOamBaseDelaySetReq_t *spu_oam_base_delay_set_ptr, OamMsgTransferHeader_t *spu_oam_msg_ptr);
|
void oam_base_delay_proc(SpuOamBaseDelaySetReq_t *spu_oam_base_delay_set_ptr, OamMsgTransferHeader_t *spu_oam_msg_ptr);
|
||||||
void oam_base_qry_proc(SpuOamBaseDelayQryReq_t *spu_oam_base_delay_qry_ptr, OamMsgTransferHeader_t *spu_oam_msg_ptr);
|
void oam_base_qry_proc(SpuOamBaseDelayQryReq_t *spu_oam_base_delay_qry_ptr, OamMsgTransferHeader_t *spu_oam_msg_ptr);
|
||||||
void oam_fiber_delay_proc(SpuOamFiberDelayQryReq_t *spu_oam_fiber_delay_qry_ptr, OamMsgTransferHeader_t *spu_oam_msg_ptr);
|
void oam_fiber_delay_proc(SpuOamFiberDelayQryReq_t *spu_oam_fiber_delay_qry_ptr, OamMsgTransferHeader_t *spu_oam_msg_ptr);
|
||||||
|
void oam_frame_head_offset_proc(SpuOamFrameHeadOffsetReq_t *spu_oam_frame_head_offset_qry_ptr, OamMsgTransferHeader_t *spu_oam_msg_ptr);
|
||||||
|
void oam_frame_head_offset_qry_proc(OamMsgTransferHeader_t *spu_oam_msg_ptr);
|
||||||
void oam_msg_proc_test(uint32_t u32msg_addr, uint32_t u32msg_size);
|
void oam_msg_proc_test(uint32_t u32msg_addr, uint32_t u32msg_size);
|
||||||
static inline uint32_t oam_spu_fill_msg_header(uint8_t inst_id, char* buf, uint32_t size, uint32_t msgType);
|
static inline uint32_t oam_spu_fill_msg_header(uint8_t inst_id, char* buf, uint32_t size, uint32_t msgType);
|
||||||
static inline int32_t oam_spu_send_msg(uint8_t inst_id, uint32_t src_addr, uint32_t size, uint32_t msgType);
|
static inline int32_t oam_spu_send_msg(uint8_t inst_id, uint32_t src_addr, uint32_t size, uint32_t msgType);
|
||||||
|
@ -30,25 +30,29 @@
|
|||||||
|
|
||||||
extern void phy_oam_msg_proc(uint32_t u32msg_addr, uint32_t u32msg_size);
|
extern void phy_oam_msg_proc(uint32_t u32msg_addr, uint32_t u32msg_size);
|
||||||
|
|
||||||
OamMsgTransferHeader_t *g_oam_msg_ptr = NULL;
|
OamMsgTransferHeader_t *g_oam_msg_ptr = NULL;
|
||||||
SpuOamBaseDelaySetRsp_t *g_oam_base_delay_set_rsp_ptr = NULL;
|
SpuOamBaseDelaySetRsp_t *g_oam_base_delay_set_rsp_ptr = NULL;
|
||||||
SpuOamBaseDelayQryRsp_t *g_oam_base_delay_qry_rsp_ptr = NULL;
|
SpuOamBaseDelayQryRsp_t *g_oam_base_delay_qry_rsp_ptr = NULL;
|
||||||
SpuOamFiberDelayQryRsp_t *g_oam_fiber_delay_qry_rsp_ptr = NULL;
|
SpuOamFiberDelayQryRsp_t *g_oam_fiber_delay_qry_rsp_ptr = NULL;
|
||||||
|
SpuOamFrameHeadOffsetRsp_t *g_oam_frame_head_offset_rsp_ptr = NULL;
|
||||||
|
SpuOamFrameHeadOffsetQryRsp_t *g_oam_frame_head_offset_qry_rsp_ptr = NULL;
|
||||||
|
|
||||||
void oam_msg_init(void)
|
void oam_msg_init(void)
|
||||||
{
|
{
|
||||||
uint8_t u8core_id = (uint8_t)get_core_id();
|
uint8_t u8core_id = (uint8_t)get_core_id();
|
||||||
|
|
||||||
EcsRfmDmLocalMgt_t* pEcsDmLocalMgt = get_ecs_rfm_dm_local_mgt();
|
EcsRfmDmLocalMgt_t* pEcsDmLocalMgt = get_ecs_rfm_dm_local_mgt();
|
||||||
g_oam_msg_ptr = (OamMsgTransferHeader_t *)pEcsDmLocalMgt->pOamMsgPtr;
|
g_oam_msg_ptr = (OamMsgTransferHeader_t *)pEcsDmLocalMgt->pOamMsgPtr;
|
||||||
g_oam_base_delay_set_rsp_ptr = (SpuOamBaseDelaySetRsp_t *)pEcsDmLocalMgt->pOamBaseDelaySetRspPtr;
|
g_oam_base_delay_set_rsp_ptr = (SpuOamBaseDelaySetRsp_t *)pEcsDmLocalMgt->pOamBaseDelaySetRspPtr;
|
||||||
g_oam_base_delay_qry_rsp_ptr = (SpuOamBaseDelayQryRsp_t *)pEcsDmLocalMgt->pOamBaseDelayQryRspPtr;
|
g_oam_base_delay_qry_rsp_ptr = (SpuOamBaseDelayQryRsp_t *)pEcsDmLocalMgt->pOamBaseDelayQryRspPtr;
|
||||||
g_oam_fiber_delay_qry_rsp_ptr = (SpuOamFiberDelayQryRsp_t *)pEcsDmLocalMgt->pOamFiberDelayQryRspPtr;
|
g_oam_fiber_delay_qry_rsp_ptr = (SpuOamFiberDelayQryRsp_t *)pEcsDmLocalMgt->pOamFiberDelayQryRspPtr;
|
||||||
|
g_oam_frame_head_offset_rsp_ptr = (SpuOamFrameHeadOffsetRsp_t *)pEcsDmLocalMgt->pOamFrameHeadOffsetRspPtr;
|
||||||
|
g_oam_frame_head_offset_qry_rsp_ptr = (SpuOamFrameHeadOffsetQryRsp_t *)pEcsDmLocalMgt->pOamFrameHeadOffsetQryRspPtr;
|
||||||
|
|
||||||
memset_ucp(g_oam_base_delay_set_rsp_ptr->u8rsv, 0, 2);
|
memset_ucp(g_oam_base_delay_set_rsp_ptr->u8rsv, 0, 2);
|
||||||
memset_ucp(g_oam_base_delay_qry_rsp_ptr->u8rsv, 0, 2);
|
memset_ucp(g_oam_base_delay_qry_rsp_ptr->u8rsv, 0, 2);
|
||||||
memset_ucp(g_oam_fiber_delay_qry_rsp_ptr->u8rsv, 0, 2);
|
memset_ucp(g_oam_fiber_delay_qry_rsp_ptr->u8rsv, 0, 2);
|
||||||
|
memset_ucp(g_oam_fiber_delay_qry_rsp_ptr->u8rsv, 0, 1);
|
||||||
debug_write(DBG_DDR_COMMON_IDX(u8core_id, 37), g_oam_msg_ptr);
|
debug_write(DBG_DDR_COMMON_IDX(u8core_id, 37), g_oam_msg_ptr);
|
||||||
debug_write(DBG_DDR_COMMON_IDX(u8core_id, 56), g_oam_base_delay_set_rsp_ptr);/*0xb7e016e0*/
|
debug_write(DBG_DDR_COMMON_IDX(u8core_id, 56), g_oam_base_delay_set_rsp_ptr);/*0xb7e016e0*/
|
||||||
return;
|
return;
|
||||||
@ -62,9 +66,11 @@ void oam_msg_proc(uint32_t u32msg_addr, uint32_t u32msg_size)
|
|||||||
uint32_t msg_buf = do_read(u32msg_addr);
|
uint32_t msg_buf = do_read(u32msg_addr);
|
||||||
uint32_t msg_size = do_read(u32msg_addr + 4);
|
uint32_t msg_size = do_read(u32msg_addr + 4);
|
||||||
uint8_t u8core_id = (uint8_t)get_core_id();
|
uint8_t u8core_id = (uint8_t)get_core_id();
|
||||||
SpuOamBaseDelaySetReq_t *oam_base_delay_set_ptr = NULL;
|
SpuOamBaseDelaySetReq_t *oam_base_delay_set_ptr = NULL;
|
||||||
SpuOamBaseDelayQryReq_t *oam_base_delay_qry_ptr = NULL;
|
SpuOamBaseDelayQryReq_t *oam_base_delay_qry_ptr = NULL;
|
||||||
SpuOamFiberDelayQryReq_t *oam_fiber_delay_qry_ptr = NULL;
|
SpuOamFiberDelayQryReq_t *oam_fiber_delay_qry_ptr = NULL;
|
||||||
|
SpuOamFrameHeadOffsetReq_t *oam_frame_head_offset_ptr = NULL;
|
||||||
|
|
||||||
|
|
||||||
debug_write(DBG_DDR_COMMON_IDX(u8core_id, 36), 0x12345678);
|
debug_write(DBG_DDR_COMMON_IDX(u8core_id, 36), 0x12345678);
|
||||||
memset((void *)g_oam_msg_ptr, 0, sizeof(OamMsgTransferHeader_t));
|
memset((void *)g_oam_msg_ptr, 0, sizeof(OamMsgTransferHeader_t));
|
||||||
@ -74,7 +80,7 @@ void oam_msg_proc(uint32_t u32msg_addr, uint32_t u32msg_size)
|
|||||||
debug_write(DBG_DDR_COMMON_IDX(u8core_id, 39), msg_buf);
|
debug_write(DBG_DDR_COMMON_IDX(u8core_id, 39), msg_buf);
|
||||||
debug_write(DBG_DDR_COMMON_IDX(u8core_id, 40), g_oam_msg_ptr->numMsg);
|
debug_write(DBG_DDR_COMMON_IDX(u8core_id, 40), g_oam_msg_ptr->numMsg);
|
||||||
debug_write(DBG_DDR_COMMON_IDX(u8core_id, 41), g_oam_msg_ptr->msgType);
|
debug_write(DBG_DDR_COMMON_IDX(u8core_id, 41), g_oam_msg_ptr->msgType);
|
||||||
UCP_PRINT_LOG("oam_msg_proc numMsg:%d msg_type:0x%x msg_size:%d\n", g_oam_msg_ptr->numMsg, g_oam_msg_ptr->msgType, msg_size);
|
UCP_PRINT_ERROR("oam_msg_proc numMsg:%d msg_type:0x%x msg_size:%d\n", g_oam_msg_ptr->numMsg, g_oam_msg_ptr->msgType, msg_size);
|
||||||
|
|
||||||
for(i = 0; i < g_oam_msg_ptr->numMsg; i++)
|
for(i = 0; i < g_oam_msg_ptr->numMsg; i++)
|
||||||
{
|
{
|
||||||
@ -83,20 +89,29 @@ void oam_msg_proc(uint32_t u32msg_addr, uint32_t u32msg_size)
|
|||||||
switch(msg_type)
|
switch(msg_type)
|
||||||
{
|
{
|
||||||
case SPU_OAM_BASE_DELAY_SET_REQ:
|
case SPU_OAM_BASE_DELAY_SET_REQ:
|
||||||
UCP_PRINT_LOG("oam_msg_proc numMsg:%d i:%d msg_type:0x%x\n", g_oam_msg_ptr->numMsg, i, msg_type);
|
UCP_PRINT_ERROR("oam_msg_proc numMsg:%d i:%d msg_type:0x%x\n", g_oam_msg_ptr->numMsg, i, msg_type);
|
||||||
oam_base_delay_set_ptr = (SpuOamBaseDelaySetReq_t *)((uint8_t *)g_oam_msg_ptr + sizeof(OamMsgTransferHeader_t));
|
oam_base_delay_set_ptr = (SpuOamBaseDelaySetReq_t *)((uint8_t *)g_oam_msg_ptr + sizeof(OamMsgTransferHeader_t));
|
||||||
oam_base_delay_proc(oam_base_delay_set_ptr, g_oam_msg_ptr);
|
oam_base_delay_proc(oam_base_delay_set_ptr, g_oam_msg_ptr);
|
||||||
break;
|
break;
|
||||||
case SPU_OAM_BASE_DELAY_QRY_REQ:
|
case SPU_OAM_BASE_DELAY_QRY_REQ:
|
||||||
UCP_PRINT_LOG("oam_msg_proc numMsg:%d i:%d msg_type:0x%x\n", g_oam_msg_ptr->numMsg, i, msg_type);
|
UCP_PRINT_ERROR("oam_msg_proc numMsg:%d i:%d msg_type:0x%x\n", g_oam_msg_ptr->numMsg, i, msg_type);
|
||||||
oam_base_delay_qry_ptr = (SpuOamBaseDelayQryReq_t *)((uint8_t *)g_oam_msg_ptr + sizeof(OamMsgTransferHeader_t));
|
oam_base_delay_qry_ptr = (SpuOamBaseDelayQryReq_t *)((uint8_t *)g_oam_msg_ptr + sizeof(OamMsgTransferHeader_t));
|
||||||
oam_base_qry_proc(oam_base_delay_qry_ptr, g_oam_msg_ptr);
|
oam_base_qry_proc(oam_base_delay_qry_ptr, g_oam_msg_ptr);
|
||||||
break;
|
break;
|
||||||
case SPU_OAM_FIBER_DELAY_QRY_REQ:
|
case SPU_OAM_FIBER_DELAY_QRY_REQ:
|
||||||
UCP_PRINT_LOG("oam_msg_proc numMsg:%d i:%d msg_type:0x%x\n", g_oam_msg_ptr->numMsg, i, msg_type);
|
UCP_PRINT_ERROR("oam_msg_proc numMsg:%d i:%d msg_type:0x%x\n", g_oam_msg_ptr->numMsg, i, msg_type);
|
||||||
oam_fiber_delay_qry_ptr = (SpuOamFiberDelayQryReq_t *)((uint8_t *)g_oam_msg_ptr + sizeof(OamMsgTransferHeader_t));
|
oam_fiber_delay_qry_ptr = (SpuOamFiberDelayQryReq_t *)((uint8_t *)g_oam_msg_ptr + sizeof(OamMsgTransferHeader_t));
|
||||||
oam_fiber_delay_proc(oam_fiber_delay_qry_ptr, g_oam_msg_ptr);
|
oam_fiber_delay_proc(oam_fiber_delay_qry_ptr, g_oam_msg_ptr);
|
||||||
break;
|
break;
|
||||||
|
case SPU_OAM_FRAME_HEAD_OFFSET_REQ:
|
||||||
|
UCP_PRINT_ERROR("oam_msg_proc numMsg:%d i:%d msg_type:0x%x\n", g_oam_msg_ptr->numMsg, i, msg_type);
|
||||||
|
oam_frame_head_offset_ptr = (SpuOamFrameHeadOffsetReq_t *)((uint8_t *)g_oam_msg_ptr + sizeof(OamMsgTransferHeader_t));
|
||||||
|
oam_frame_head_offset_proc(oam_frame_head_offset_ptr, g_oam_msg_ptr);
|
||||||
|
break;
|
||||||
|
case SPU_OAM_FRAME_HEAD_OFFSET_QRY_REQ:
|
||||||
|
UCP_PRINT_ERROR("oam_msg_proc numMsg:%d i:%d msg_type:0x%x\n", g_oam_msg_ptr->numMsg, i, msg_type);
|
||||||
|
oam_frame_head_offset_qry_proc(g_oam_msg_ptr);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
phy_oam_msg_proc(u32msg_addr, u32msg_size);
|
phy_oam_msg_proc(u32msg_addr, u32msg_size);
|
||||||
break;
|
break;
|
||||||
@ -185,6 +200,50 @@ void oam_fiber_delay_proc(SpuOamFiberDelayQryReq_t *spu_oam_fiber_delay_qry_ptr,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void oam_frame_head_offset_proc(SpuOamFrameHeadOffsetReq_t *spu_oam_frame_head_offset_ptr, OamMsgTransferHeader_t *spu_oam_msg_ptr)
|
||||||
|
{
|
||||||
|
uint8_t u8core_id = (uint8_t)get_core_id();
|
||||||
|
SpuOamFrameHeadOffsetRsp_t *oam_frame_head_offset_rsp_ptr = NULL;
|
||||||
|
|
||||||
|
if(NULL == spu_oam_frame_head_offset_ptr)
|
||||||
|
{
|
||||||
|
UCP_PRINT_ERROR("oam_frame_head_offset_proc is null\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*调用接口帧头偏移配置结果0:fail 1:ok*/
|
||||||
|
oam_frame_head_offset_rsp_ptr = (SpuOamFrameHeadOffsetRsp_t *)set_frame_head_offset((stCpriFrameHeadOffsetReq*)spu_oam_frame_head_offset_ptr);
|
||||||
|
g_oam_frame_head_offset_rsp_ptr->u8result = oam_frame_head_offset_rsp_ptr->u8result;
|
||||||
|
|
||||||
|
debug_write(DBG_DDR_COMMON_IDX(u8core_id, 56), g_oam_frame_head_offset_rsp_ptr->u8result);
|
||||||
|
UCP_PRINT_ERROR("oam_frame_head_offset_proc u8result:%d \n", g_oam_frame_head_offset_rsp_ptr->u8result);
|
||||||
|
|
||||||
|
oam_spu_send_msg(spu_oam_msg_ptr->cellIndex, (uint32_t)g_oam_frame_head_offset_rsp_ptr, sizeof(SpuOamFrameHeadOffsetRsp_t), SPU_OAM_FRAME_HEAD_OFFSET_RSP);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
void oam_frame_head_offset_qry_proc(OamMsgTransferHeader_t *spu_oam_msg_ptr)
|
||||||
|
{
|
||||||
|
uint8_t u8core_id = (uint8_t)get_core_id();
|
||||||
|
|
||||||
|
if(NULL == spu_oam_msg_ptr)
|
||||||
|
{
|
||||||
|
UCP_PRINT_ERROR("spu_oam_msg_ptr is null\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*调用接口帧头偏移配置结果0:fail 1:ok*/
|
||||||
|
get_cpri_framehead_offset((stCpriGetFrameHeadOffset *)g_oam_frame_head_offset_qry_rsp_ptr);
|
||||||
|
|
||||||
|
debug_write(DBG_DDR_COMMON_IDX(u8core_id, 57), g_oam_frame_head_offset_qry_rsp_ptr->u16frame_head_offset);
|
||||||
|
UCP_PRINT_ERROR("oam_frame_head_offset_qry_proc u8result:%d u16frame_head_offset:0x%x \n", g_oam_frame_head_offset_qry_rsp_ptr->u8result, g_oam_frame_head_offset_qry_rsp_ptr->u16frame_head_offset);
|
||||||
|
|
||||||
|
oam_spu_send_msg(spu_oam_msg_ptr->cellIndex, (uint32_t)g_oam_frame_head_offset_qry_rsp_ptr, sizeof(SpuOamFrameHeadOffsetQryRsp_t), SPU_OAM_FRAME_HEAD_OFFSET_QRY_RSP);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
static inline uint32_t oam_spu_fill_msg_header(uint8_t inst_id, char* buf, uint32_t size, uint32_t msgType)
|
static inline uint32_t oam_spu_fill_msg_header(uint8_t inst_id, char* buf, uint32_t size, uint32_t msgType)
|
||||||
{
|
{
|
||||||
OamMsgTransferHeader_t header;
|
OamMsgTransferHeader_t header;
|
@ -45,7 +45,7 @@ void phy_queue_polling(void)
|
|||||||
|
|
||||||
if(SPU_OAM_MSG_TYPE == u8msg_type)/* OAM MSG */
|
if(SPU_OAM_MSG_TYPE == u8msg_type)/* OAM MSG */
|
||||||
{
|
{
|
||||||
#ifdef TEST_ENABLE
|
#ifdef PCIE_BACKHAUL
|
||||||
oam_msg_proc_test(u32msg_addr, u32msg_size);
|
oam_msg_proc_test(u32msg_addr, u32msg_size);
|
||||||
#else
|
#else
|
||||||
oam_msg_proc(u32msg_addr, u32msg_size);
|
oam_msg_proc(u32msg_addr, u32msg_size);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user