Merge branch 'dev_ck_v2.1_xls_feature#1694#' into 'dev_ck_v2.1'

update feature#1694# merge dev_ck_v2.1_xls_feature#1694# to dev_ck_v2.1

See merge request ucp/driver/ucp4008_platform_spu!96
This commit is contained in:
Weihua Li 2024-03-18 07:44:38 +00:00
commit d6ea3f72f3
11 changed files with 757 additions and 582 deletions

View File

@ -1,87 +1,87 @@
// +FHDR------------------------------------------------------------
// Copyright (c) 2022 SmartLogic.
// ALL RIGHTS RESERVED
// -----------------------------------------------------------------
// Filename : msg_transfer_layer.h
// Author : xianfeng.du
// Created On : 2022-06-29
// Last Modified :
// -----------------------------------------------------------------
// Description:
//
//
// -FHDR------------------------------------------------------------
#ifndef __MSG_TRANSFER_LAYER_H__
#define __MSG_TRANSFER_LAYER_H__
#define MAX_INSTANCE_NUM (2)
#define MAX_PORT_NUM (4)
#define SUCCESS (0)
#define FAILURE (-1)
#define UNINITIALIZED_QUEUE (1)
#define FULLEDED_QUEUE (2)
#define EMPTY_QUEUE (2)
#define OUT_OF_BLOCK_MEMORY (2)
typedef enum e_transfer_type {
NON_CU_SPLIT,
CU_SPLIT,
OAM,
TRANSFER_TYPE_NUM
} transfer_type_e;
#define MAX_TRANS_NUM (TRANSFER_TYPE_NUM-1)
typedef enum e_cu_flag {
C_PLANE,
U_PLANE
} cu_flag_e;
typedef union tHandleId {
uint32_t value;
struct {
uint8_t rsv;
uint8_t type_id;
uint8_t inst_id;
uint8_t port_id;
};
} HandleId_t;
typedef uint32_t (*msg_transfer_callback)(const char* buf,uint32_t payloadSize);
typedef struct t_queue_info {
uint32_t tx_desc_num;
uint32_t rx_desc_num;
uint32_t tx_block_size;
uint32_t rx_block_size;
uint16_t tx_block_num;
uint16_t rx_block_num;
uint16_t directions;
uint16_t rsv;
union {
uint64_t ele0;//aligned 64bit for NPU
msg_transfer_callback tx_callback;
};
union {
uint64_t ele1;//aligned 64bit for NPU
msg_transfer_callback rx_callback;
};
} queue_info_s;
typedef struct t_transfer_type_info {
queue_info_s queue_cplane_info;
queue_info_s queue_uplane_info;
} transfer_type_info_s;
//int32_t msg_transfer_init(uint16_t port_index, uint16_t transfer_type, uint16_t inst_id, const transfer_type_info_s* transfer_type_info);
int32_t msg_transfer_callback_register(uint16_t transfer_type, uint16_t inst_id, uint16_t cu_flag, msg_transfer_callback rx_callback);
int32_t msg_transfer_send_start(int32_t handle_id);
int32_t msg_transfer_alloc_msg(int32_t handle_id, uint16_t cu_flag, uint32_t bufSize, char** buf, uint32_t* availableSize, uint32_t* offset);
int32_t msg_transfer_send_msg(int32_t handle_id, uint16_t cu_flag, uint8_t* msg_ptr, uint32_t offset, uint32_t msg_len);
int32_t msg_transfer_send_end(int32_t handle_id);
int32_t msg_transfer_receive(int32_t handle_id, uint16_t cu_flag, uint32_t offset, uint32_t len, uint8_t** msg_ptr);
int32_t msg_transfer_close(int32_t handle_id);
#endif
// +FHDR------------------------------------------------------------
// Copyright (c) 2022 SmartLogic.
// ALL RIGHTS RESERVED
// -----------------------------------------------------------------
// Filename : msg_transfer_layer.h
// Author : xianfeng.du
// Created On : 2022-06-29
// Last Modified :
// -----------------------------------------------------------------
// Description:
//
//
// -FHDR------------------------------------------------------------
#ifndef __MSG_TRANSFER_LAYER_H__
#define __MSG_TRANSFER_LAYER_H__
#define MAX_INSTANCE_NUM (4)
#define MAX_PORT_NUM (4)
#define SUCCESS (0)
#define FAILURE (-1)
#define UNINITIALIZED_QUEUE (1)
#define FULLEDED_QUEUE (2)
#define EMPTY_QUEUE (2)
#define OUT_OF_BLOCK_MEMORY (2)
typedef enum e_transfer_type {
NON_CU_SPLIT,
CU_SPLIT,
OAM,
TRANSFER_TYPE_NUM
} transfer_type_e;
#define MAX_TRANS_NUM (TRANSFER_TYPE_NUM-1)
typedef enum e_cu_flag {
C_PLANE,
U_PLANE
} cu_flag_e;
typedef union tHandleId {
uint32_t value;
struct {
uint8_t rsv;
uint8_t type_id;
uint8_t inst_id;
uint8_t port_id;
};
} HandleId_t;
typedef uint32_t (*msg_transfer_callback)(const char* buf,uint32_t payloadSize);
typedef struct t_queue_info {
uint32_t tx_desc_num;
uint32_t rx_desc_num;
uint32_t tx_block_size;
uint32_t rx_block_size;
uint16_t tx_block_num;
uint16_t rx_block_num;
uint16_t directions;
uint16_t rsv;
union {
uint64_t ele0;//aligned 64bit for NPU
msg_transfer_callback tx_callback;
};
union {
uint64_t ele1;//aligned 64bit for NPU
msg_transfer_callback rx_callback;
};
} queue_info_s;
typedef struct t_transfer_type_info {
queue_info_s queue_cplane_info;
queue_info_s queue_uplane_info;
} transfer_type_info_s;
//int32_t msg_transfer_init(uint16_t port_index, uint16_t transfer_type, uint16_t inst_id, const transfer_type_info_s* transfer_type_info);
int32_t msg_transfer_callback_register(uint16_t transfer_type, uint16_t inst_id, uint16_t cu_flag, msg_transfer_callback rx_callback);
int32_t msg_transfer_send_start(int32_t handle_id);
int32_t msg_transfer_alloc_msg(int32_t handle_id, uint16_t cu_flag, uint32_t bufSize, char** buf, uint32_t* availableSize, uint32_t* offset);
int32_t msg_transfer_send_msg(int32_t handle_id, uint16_t cu_flag, uint8_t* msg_ptr, uint32_t offset, uint32_t msg_len);
int32_t msg_transfer_send_end(int32_t handle_id);
int32_t msg_transfer_receive(int32_t handle_id, uint16_t cu_flag, uint32_t offset, uint32_t len, uint8_t** msg_ptr);
int32_t msg_transfer_close(int32_t handle_id);
#endif

View File

@ -1,89 +1,89 @@
// +FHDR------------------------------------------------------------
// Copyright (c) 2022 SmartLogic.
// ALL RIGHTS RESERVED
// -----------------------------------------------------------------
// Filename : msg_transfer_layer.h
// Author : xianfeng.du
// Created On : 2022-06-29
// Last Modified :
// -----------------------------------------------------------------
// Description:
//
//
// -FHDR------------------------------------------------------------
#ifndef __MSG_TRANSFER_LAYER_H__
#define __MSG_TRANSFER_LAYER_H__
#include "typedef.h"
#define MAX_INSTANCE_NUM (2)
#define MAX_PORT_NUM (4)
#define SUCCESS (0)
#define FAILURE (-1)
#define UNINITIALIZED_QUEUE (1)
#define FULLEDED_QUEUE (2)
#define EMPTY_QUEUE (2)
#define OUT_OF_BLOCK_MEMORY (2)
typedef enum e_transfer_type {
NON_CU_SPLIT,
CU_SPLIT,
OAM,
TRANSFER_TYPE_NUM
} transfer_type_e;
#define MAX_TRANS_NUM (TRANSFER_TYPE_NUM-1)
typedef enum e_cu_flag {
C_PLANE,
U_PLANE
} cu_flag_e;
typedef union tHandleId {
uint32_t value;
struct {
uint8_t rsv;
uint8_t type_id;
uint8_t inst_id;
uint8_t port_id;
};
} HandleId_t;
typedef uint32_t (*msg_transfer_callback)(const char* buf,uint32_t payloadSize);
typedef struct t_queue_info {
uint32_t tx_desc_num;
uint32_t rx_desc_num;
uint32_t tx_block_size;
uint32_t rx_block_size;
uint16_t tx_block_num;
uint16_t rx_block_num;
uint16_t directions;
uint16_t rsv;
union {
uint64_t ele0;//aligned 64bit for NPU
msg_transfer_callback tx_callback;
};
union {
uint64_t ele1;//aligned 64bit for NPU
msg_transfer_callback rx_callback;
};
} queue_info_s;
typedef struct t_transfer_type_info {
queue_info_s queue_cplane_info;
queue_info_s queue_uplane_info;
} transfer_type_info_s;
//int32_t msg_transfer_init(uint16_t port_index, uint16_t transfer_type, uint16_t inst_id, const transfer_type_info_s* transfer_type_info);
int32_t msg_transfer_callback_register(uint16_t transfer_type, uint16_t inst_id, uint16_t cu_flag, msg_transfer_callback rx_callback);
int32_t msg_transfer_send_start(int32_t handle_id);
int32_t msg_transfer_alloc_msg(int32_t handle_id, uint16_t cu_flag, uint32_t bufSize, char** buf, uint32_t* availableSize, uint32_t* offset);
int32_t msg_transfer_send_msg(int32_t handle_id, uint16_t cu_flag, uint8_t* msg_ptr, uint32_t offset, uint32_t msg_len);
int32_t msg_transfer_send_end(int32_t handle_id);
int32_t msg_transfer_receive(int32_t handle_id, uint16_t cu_flag, uint32_t offset, uint32_t len, uint8_t** msg_ptr);
int32_t msg_transfer_close(int32_t handle_id);
#endif
// +FHDR------------------------------------------------------------
// Copyright (c) 2022 SmartLogic.
// ALL RIGHTS RESERVED
// -----------------------------------------------------------------
// Filename : msg_transfer_layer.h
// Author : xianfeng.du
// Created On : 2022-06-29
// Last Modified :
// -----------------------------------------------------------------
// Description:
//
//
// -FHDR------------------------------------------------------------
#ifndef __MSG_TRANSFER_LAYER_H__
#define __MSG_TRANSFER_LAYER_H__
#include "typedef.h"
#define MAX_INSTANCE_NUM (4) //(2)
#define MAX_PORT_NUM (4)
#define SUCCESS (0)
#define FAILURE (-1)
#define UNINITIALIZED_QUEUE (1)
#define FULLEDED_QUEUE (2)
#define EMPTY_QUEUE (2)
#define OUT_OF_BLOCK_MEMORY (2)
typedef enum e_transfer_type {
NON_CU_SPLIT,
CU_SPLIT,
OAM,
TRANSFER_TYPE_NUM
} transfer_type_e;
#define MAX_TRANS_NUM (TRANSFER_TYPE_NUM-1)
typedef enum e_cu_flag {
C_PLANE,
U_PLANE
} cu_flag_e;
typedef union tHandleId {
uint32_t value;
struct {
uint8_t rsv;
uint8_t type_id;
uint8_t inst_id;
uint8_t port_id;
};
} HandleId_t;
typedef uint32_t (*msg_transfer_callback)(const char* buf,uint32_t payloadSize);
typedef struct t_queue_info {
uint32_t tx_desc_num;
uint32_t rx_desc_num;
uint32_t tx_block_size;
uint32_t rx_block_size;
uint16_t tx_block_num;
uint16_t rx_block_num;
uint16_t directions;
uint16_t rsv;
union {
uint64_t ele0;//aligned 64bit for NPU
msg_transfer_callback tx_callback;
};
union {
uint64_t ele1;//aligned 64bit for NPU
msg_transfer_callback rx_callback;
};
} queue_info_s;
typedef struct t_transfer_type_info {
queue_info_s queue_cplane_info;
queue_info_s queue_uplane_info;
} transfer_type_info_s;
//int32_t msg_transfer_init(uint16_t port_index, uint16_t transfer_type, uint16_t inst_id, const transfer_type_info_s* transfer_type_info);
int32_t msg_transfer_callback_register(uint16_t transfer_type, uint16_t inst_id, uint16_t cu_flag, msg_transfer_callback rx_callback);
int32_t msg_transfer_send_start(int32_t handle_id);
int32_t msg_transfer_alloc_msg(int32_t handle_id, uint16_t cu_flag, uint32_t bufSize, char** buf, uint32_t* availableSize, uint32_t* offset);
int32_t msg_transfer_send_msg(int32_t handle_id, uint16_t cu_flag, uint8_t* msg_ptr, uint32_t offset, uint32_t msg_len);
int32_t msg_transfer_send_end(int32_t handle_id);
int32_t msg_transfer_receive(int32_t handle_id, uint16_t cu_flag, uint32_t offset, uint32_t len, uint8_t** msg_ptr);
int32_t msg_transfer_close(int32_t handle_id);
#endif

View File

@ -1,90 +1,90 @@
// +FHDR------------------------------------------------------------
// Copyright (c) 2022 SmartLogic.
// ALL RIGHTS RESERVED
// -----------------------------------------------------------------
// Filename : phy_init.c
// Author : xianfeng.du
// Created On : 2022-12-27
// Last Modified :
// -----------------------------------------------------------------
// Description:
// ecs_rfm_spu0 msg_transfer_cfg
//
// -FHDR------------------------------------------------------------
#include "typedef.h"
#include "ucp_printf.h"
#include "ucp_utility.h"
#include "ucp_tick.h"
#include "msg_transfer_queue.h"
#include "app_interface.h"
#define RFM_TEST_MSG_SIZE (8)
#define RFM_MSG_TYPE (0)
// +FHDR------------------------------------------------------------
// Copyright (c) 2022 SmartLogic.
// ALL RIGHTS RESERVED
// -----------------------------------------------------------------
// Filename : phy_init.c
// Author : xianfeng.du
// Created On : 2022-12-27
// Last Modified :
// -----------------------------------------------------------------
// Description:
// ecs_rfm_spu0 msg_transfer_cfg
//
// -FHDR------------------------------------------------------------
#include "typedef.h"
#include "ucp_printf.h"
#include "ucp_utility.h"
#include "ucp_tick.h"
#include "msg_transfer_queue.h"
#include "app_interface.h"
#define RFM_TEST_MSG_SIZE (8)
#define RFM_MSG_TYPE (0)
#define CELL_SETUP_TYPE_SIMULATION (0x5a6b7c8d)
#define ORX_MSG_TYPE_SIMULATION (0xaabb7788)
static uint32_t g_u32_rfm_alloc_err = 0; //(15) 0xB7E0143C
static uint32_t g_u32_rfm_send_err = 0; //(16) 0xB7E01440
static uint32_t g_u32_rfm_recv_num = 0; //(17) 0xB7E01444
static uint32_t g_u32_rfm_send_ok = 0; //(18) 0xB7E01448
uint32_t rx_callback_data(const char* buf,uint32_t payloadSize)
{
/* RFM0接收消息后发给APE0 */
uint32_t core_id = get_core_id();
int32_t ret = 0;
char *addr = NULL;
uint32_t u32_clock_tick = 0;
rdmcycle(&u32_clock_tick);
do_write((buf+16), u32_clock_tick); //RFM receive tick
g_u32_rfm_recv_num++;
addr = osp_alloc_msg(RFM_TEST_MSG_SIZE);
if (NULL == addr)
{
debug_write(DBG_DDR_COMMON_IDX(core_id, 15), ++g_u32_rfm_alloc_err);
return payloadSize;
}
do_write(addr, (uint32_t)buf);
do_write((addr+4), UCP4008_TRAFFIC_NR_eMBB_DATA);
rdmcycle(&u32_clock_tick);
do_write((buf+20), u32_clock_tick); //RFM forward tick
ret = osp_send_msg((uint32_t)(addr),
RFM_TEST_MSG_SIZE,
RFM_MSG_TYPE,
10, // src que id
0, // dst que id
40, // src task id
40); // dst task id
if (0 != ret)
{
debug_write(DBG_DDR_COMMON_IDX(core_id, 16), ++g_u32_rfm_send_err);
return payloadSize;
}
g_u32_rfm_send_ok++;
debug_write(DBG_DDR_COMMON_IDX(core_id, 17), g_u32_rfm_recv_num);
debug_write(DBG_DDR_COMMON_IDX(core_id, 18), g_u32_rfm_send_ok);
return payloadSize;
}
static uint32_t g_u32_rfm_alloc1_err = 0; //(19) 0xB7E0144C
static uint32_t g_u32_rfm_send1_err = 0; //(20) 0xB7E01450
static uint32_t g_u32_rfm_send2_err = 0; //(20) 0xB7E01450
static uint32_t g_u32_rfm_recv1_num = 0; //(21) 0xB7E01454
static uint32_t g_u32_rfm_send1_ok = 0; //(22) 0xB7E01458
static uint32_t g_u32_rfm_send2_ok = 0; //(22) 0xB7E01458
#define ORX_MSG_TYPE_SIMULATION (0xaabb7788)
static uint32_t g_u32_rfm_alloc_err = 0; //(15) 0xB7E0143C
static uint32_t g_u32_rfm_send_err = 0; //(16) 0xB7E01440
static uint32_t g_u32_rfm_recv_num = 0; //(17) 0xB7E01444
static uint32_t g_u32_rfm_send_ok = 0; //(18) 0xB7E01448
uint32_t rx_callback_data(const char* buf,uint32_t payloadSize)
{
/* RFM0接收消息后发给APE0 */
uint32_t core_id = get_core_id();
int32_t ret = 0;
char *addr = NULL;
uint32_t u32_clock_tick = 0;
rdmcycle(&u32_clock_tick);
do_write((buf+16), u32_clock_tick); //RFM receive tick
g_u32_rfm_recv_num++;
addr = osp_alloc_msg(RFM_TEST_MSG_SIZE);
if (NULL == addr)
{
debug_write(DBG_DDR_COMMON_IDX(core_id, 15), ++g_u32_rfm_alloc_err);
return payloadSize;
}
do_write(addr, (uint32_t)buf);
do_write((addr+4), UCP4008_TRAFFIC_NR_eMBB_DATA);
rdmcycle(&u32_clock_tick);
do_write((buf+20), u32_clock_tick); //RFM forward tick
ret = osp_send_msg((uint32_t)(addr),
RFM_TEST_MSG_SIZE,
RFM_MSG_TYPE,
9, // src que id
0, // dst que id
40, // src task id
40); // dst task id
if (0 != ret)
{
debug_write(DBG_DDR_COMMON_IDX(core_id, 16), ++g_u32_rfm_send_err);
return payloadSize;
}
g_u32_rfm_send_ok++;
debug_write(DBG_DDR_COMMON_IDX(core_id, 17), g_u32_rfm_recv_num);
debug_write(DBG_DDR_COMMON_IDX(core_id, 18), g_u32_rfm_send_ok);
return payloadSize;
}
static uint32_t g_u32_rfm_alloc1_err = 0; //(19) 0xB7E0144C
static uint32_t g_u32_rfm_send1_err = 0; //(20) 0xB7E01450
static uint32_t g_u32_rfm_send2_err = 0; //(20) 0xB7E01450
static uint32_t g_u32_rfm_recv1_num = 0; //(21) 0xB7E01454
static uint32_t g_u32_rfm_send1_ok = 0; //(22) 0xB7E01458
static uint32_t g_u32_rfm_send2_ok = 0; //(22) 0xB7E01458
int32_t cell_setup_msg_forward(char* buf, uint32_t payloadSize)
{
/* RFM0接收消息后发给RFM1 */
uint32_t core_id = get_core_id();
/* RFM0接收消息后发给RFM1 */
uint32_t core_id = get_core_id();
int32_t ret = 0;
char *addr = NULL;
@ -93,258 +93,477 @@ int32_t cell_setup_msg_forward(char* buf, uint32_t payloadSize)
if ((CELL_SETUP_TYPE_SIMULATION != msg_type) && (ORX_MSG_TYPE_SIMULATION != msg_type)) {
return 1;
}
uint32_t u32_clock_tick = 0;
rdmcycle(&u32_clock_tick);
uint32_t u32_clock_tick = 0;
rdmcycle(&u32_clock_tick);
do_write((buf+8), u32_clock_tick); //RFM forward tick
addr = osp_alloc_msg(RFM_TEST_MSG_SIZE);
if (NULL == addr)
{
return 2;
}
addr = osp_alloc_msg(RFM_TEST_MSG_SIZE);
if (NULL == addr)
{
return 2;
}
do_write(addr, buf);
/*send cell setup message*/
ret = osp_send_msg((uint32_t)addr,
RFM_TEST_MSG_SIZE,
RFM_MSG_TYPE,
10, // src que id
11, // dst que id
41, // src task id
41); // dst task id
if (0 != ret)
{
debug_write(DBG_DDR_COMMON_IDX(core_id, 23), ++g_u32_rfm_send2_err);
return 3;
}
g_u32_rfm_send2_ok++;
/*send cell setup message*/
ret = osp_send_msg((uint32_t)addr,
RFM_TEST_MSG_SIZE,
RFM_MSG_TYPE,
9, // src que id
11, // dst que id
41, // src task id
41); // dst task id
if (0 != ret)
{
debug_write(DBG_DDR_COMMON_IDX(core_id, 23), ++g_u32_rfm_send2_err);
return 3;
}
g_u32_rfm_send2_ok++;
debug_write(DBG_DDR_COMMON_IDX(core_id, 24), g_u32_rfm_send2_ok);
return 0;
}
uint32_t rx_callback_ctrl(const char* buf,uint32_t payloadSize)
{
uint32_t rx_callback_ctrl(const char* buf,uint32_t payloadSize)
{
int32_t ret = cell_setup_msg_forward((char*)buf, payloadSize);
if (0 == ret) {
return payloadSize;
}
/* RFM0接收消息后发给APE1 */
uint32_t core_id = get_core_id();
char *addr = NULL;
uint32_t u32_clock_tick = 0;
rdmcycle(&u32_clock_tick);
do_write((buf+16), u32_clock_tick); //RFM receive tick
g_u32_rfm_recv1_num++;
addr = osp_alloc_msg(RFM_TEST_MSG_SIZE);
if (NULL == addr)
{
debug_write(DBG_DDR_COMMON_IDX(core_id, 19), ++g_u32_rfm_alloc1_err);
return payloadSize;
}
do_write(addr, (uint32_t)buf);
do_write((addr+4), UCP4008_TRAFFIC_NR_eMBB_CTRL);
rdmcycle(&u32_clock_tick);
do_write((buf+20), u32_clock_tick); //RFM forward tick
ret = osp_send_msg((uint32_t)(addr),
RFM_TEST_MSG_SIZE,
RFM_MSG_TYPE,
10, // src que id
1, // dst que id
40, // src task id
40); // dst task id
if (0 != ret)
{
debug_write(DBG_DDR_COMMON_IDX(core_id, 20), ++g_u32_rfm_send1_err);
return payloadSize;
}
g_u32_rfm_send1_ok++;
debug_write(DBG_DDR_COMMON_IDX(core_id, 21), g_u32_rfm_recv1_num);
debug_write(DBG_DDR_COMMON_IDX(core_id, 22), g_u32_rfm_send1_ok);
return payloadSize;
}
uint32_t rx_callback_oam(const char* buf,uint32_t payloadSize)
{
return payloadSize;
}
static uint32_t g_u32_rfm_1_alloc_err = 0; //(23) 0xB7E0145C
static uint32_t g_u32_rfm_1_send_err = 0; //(24) 0xB7E01460
static uint32_t g_u32_rfm_1_recv_num = 0; //(25) 0xB7E01464
static uint32_t g_u32_rfm_1_send_ok = 0; //(26) 0xB7E01468
uint32_t rx1_callback_data(const char* buf,uint32_t payloadSize)
{
/* RFM0接收消息后发给APE0 */
uint32_t core_id = get_core_id();
int32_t ret = 0;
char *addr = NULL;
uint32_t u32_clock_tick = 0;
rdmcycle(&u32_clock_tick);
do_write((buf+16), u32_clock_tick); //RFM receive tick
g_u32_rfm_1_recv_num++;
addr = osp_alloc_msg(RFM_TEST_MSG_SIZE);
if (NULL == addr)
{
debug_write(DBG_DDR_COMMON_IDX(core_id, 23), ++g_u32_rfm_1_alloc_err);
return payloadSize;
}
do_write(addr, (uint32_t)buf);
do_write((addr+4), UCP4008_TRAFFIC_NR_eMBB_DATA);
rdmcycle(&u32_clock_tick);
do_write((buf+20), u32_clock_tick); //RFM forward tick
ret = osp_send_msg((uint32_t)(addr),
RFM_TEST_MSG_SIZE,
RFM_MSG_TYPE,
10, // src que id
4, // dst que id
40, // src task id
40); // dst task id
if (0 != ret)
{
debug_write(DBG_DDR_COMMON_IDX(core_id, 24), ++g_u32_rfm_1_send_err);
return payloadSize;
}
g_u32_rfm_1_send_ok++;
debug_write(DBG_DDR_COMMON_IDX(core_id, 25), g_u32_rfm_1_recv_num);
debug_write(DBG_DDR_COMMON_IDX(core_id, 26), g_u32_rfm_1_send_ok);
return payloadSize;
}
static uint32_t g_u32_rfm_1_alloc1_err = 0; //(27) 0xB7E0144C
static uint32_t g_u32_rfm_1_send1_err = 0; //(28) 0xB7E01450
static uint32_t g_u32_rfm_1_recv1_num = 0; //(29) 0xB7E01454
static uint32_t g_u32_rfm_1_send1_ok = 0; //(30) 0xB7E01458
uint32_t rx1_callback_ctrl(const char* buf,uint32_t payloadSize)
{
int32_t ret = cell_setup_msg_forward((char*)buf, payloadSize);
if (0 == ret) {
return payloadSize;
}
/* RFM0接收消息后发给APE1 */
uint32_t core_id = get_core_id();
char *addr = NULL;
uint32_t u32_clock_tick = 0;
rdmcycle(&u32_clock_tick);
do_write((buf+16), u32_clock_tick); //RFM receive tick
g_u32_rfm_1_recv1_num++;
addr = osp_alloc_msg(RFM_TEST_MSG_SIZE);
if (NULL == addr)
{
debug_write(DBG_DDR_COMMON_IDX(core_id, 27), ++g_u32_rfm_1_alloc1_err);
return payloadSize;
}
do_write(addr, (uint32_t)buf);
do_write((addr+4), UCP4008_TRAFFIC_NR_eMBB_CTRL);
rdmcycle(&u32_clock_tick);
do_write((buf+20), u32_clock_tick); //RFM forward tick
ret = osp_send_msg((uint32_t)(addr),
RFM_TEST_MSG_SIZE,
RFM_MSG_TYPE,
10, // src que id
5, // dst que id
40, // src task id
40); // dst task id
if (0 != ret)
{
debug_write(DBG_DDR_COMMON_IDX(core_id, 28), ++g_u32_rfm_1_send1_err);
return payloadSize;
}
g_u32_rfm_1_send1_ok++;
debug_write(DBG_DDR_COMMON_IDX(core_id, 29), g_u32_rfm_1_recv1_num);
debug_write(DBG_DDR_COMMON_IDX(core_id, 30), g_u32_rfm_1_send1_ok);
return payloadSize;
}
//void msg_transfer_cfg()
void phy_init(void)
{
//uint8_t port_id = get_ucp_port_id();
uint16_t inst_id = 0;
uint16_t transfer_type = 0;
uint16_t cu_flag = C_PLANE;
int32_t handle_id = 0;
//transfer_type_info_s transfer_type_info;
for (inst_id=0; inst_id<MAX_INSTANCE_NUM; inst_id++) {
#if 0
/*********************************transfer_type = CU_SPLIT**********************************/
transfer_type = CU_SPLIT;
cu_flag = C_PLANE;
handle_id = msg_transfer_callback_register(transfer_type,inst_id,cu_flag,rx_callback_ctrl);
if (handle_id < 0) {
UCP_PRINT_EMPTY("msg_transfer_cfg transfer_type:CU_SPLIT, handle_id[0x%08x] error.",handle_id);
}
cu_flag = U_PLANE;
handle_id = msg_transfer_callback_register(transfer_type,inst_id,cu_flag,rx_callback_data);
if (handle_id < 0) {
UCP_PRINT_EMPTY("msg_transfer_cfg transfer_type:CU_SPLIT, handle_id[0x%08x] error.",handle_id);
}
/*********************************transfer_type = OAM**********************************/
#endif
transfer_type = OAM;
handle_id = msg_transfer_callback_register(transfer_type,inst_id,cu_flag,rx_callback_oam);
if (handle_id < 0) {
UCP_PRINT_EMPTY("msg_transfer_cfg transfer_type:OAM, handle_id[0x%08x] error.",handle_id);
}
}
/*********************************transfer_type = CU_SPLIT**********************************/
transfer_type = CU_SPLIT;
cu_flag = C_PLANE;
handle_id = msg_transfer_callback_register(transfer_type, 0, cu_flag, rx_callback_ctrl);
if (handle_id < 0) {
UCP_PRINT_EMPTY("msg_transfer_cfg transfer_type:CU_SPLIT, handle_id[0x%08x] error.",handle_id);
}
cu_flag = U_PLANE;
handle_id = msg_transfer_callback_register(transfer_type, 0, cu_flag, rx_callback_data);
if (handle_id < 0) {
UCP_PRINT_EMPTY("msg_transfer_cfg transfer_type:CU_SPLIT, handle_id[0x%08x] error.",handle_id);
}
transfer_type = CU_SPLIT;
cu_flag = C_PLANE;
handle_id = msg_transfer_callback_register(transfer_type, 1, cu_flag, rx1_callback_ctrl);
if (handle_id < 0) {
UCP_PRINT_EMPTY("msg_transfer_cfg transfer_type:CU_SPLIT, handle_id[0x%08x] error.",handle_id);
}
cu_flag = U_PLANE;
handle_id = msg_transfer_callback_register(transfer_type, 1, cu_flag, rx1_callback_data);
if (handle_id < 0) {
UCP_PRINT_EMPTY("msg_transfer_cfg transfer_type:CU_SPLIT, handle_id[0x%08x] error.",handle_id);
}
return;
}
/* RFM0接收消息后发给APE1 */
uint32_t core_id = get_core_id();
char *addr = NULL;
uint32_t u32_clock_tick = 0;
rdmcycle(&u32_clock_tick);
do_write((buf+16), u32_clock_tick); //RFM receive tick
g_u32_rfm_recv1_num++;
addr = osp_alloc_msg(RFM_TEST_MSG_SIZE);
if (NULL == addr)
{
debug_write(DBG_DDR_COMMON_IDX(core_id, 19), ++g_u32_rfm_alloc1_err);
return payloadSize;
}
do_write(addr, (uint32_t)buf);
do_write((addr+4), UCP4008_TRAFFIC_NR_eMBB_CTRL);
rdmcycle(&u32_clock_tick);
do_write((buf+20), u32_clock_tick); //RFM forward tick
ret = osp_send_msg((uint32_t)(addr),
RFM_TEST_MSG_SIZE,
RFM_MSG_TYPE,
9, // src que id
1, // dst que id
40, // src task id
40); // dst task id
if (0 != ret)
{
debug_write(DBG_DDR_COMMON_IDX(core_id, 20), ++g_u32_rfm_send1_err);
return payloadSize;
}
g_u32_rfm_send1_ok++;
debug_write(DBG_DDR_COMMON_IDX(core_id, 21), g_u32_rfm_recv1_num);
debug_write(DBG_DDR_COMMON_IDX(core_id, 22), g_u32_rfm_send1_ok);
return payloadSize;
}
uint32_t rx_callback_oam(const char* buf,uint32_t payloadSize)
{
return payloadSize;
}
static uint32_t g_u32_rfm_1_alloc_err = 0; //(23) 0xB7E0145C
static uint32_t g_u32_rfm_1_send_err = 0; //(24) 0xB7E01460
static uint32_t g_u32_rfm_1_recv_num = 0; //(25) 0xB7E01464
static uint32_t g_u32_rfm_1_send_ok = 0; //(26) 0xB7E01468
uint32_t rx1_callback_data(const char* buf,uint32_t payloadSize)
{
/* RFM0接收消息后发给APE0 */
uint32_t core_id = get_core_id();
int32_t ret = 0;
char *addr = NULL;
uint32_t u32_clock_tick = 0;
rdmcycle(&u32_clock_tick);
do_write((buf+16), u32_clock_tick); //RFM receive tick
g_u32_rfm_1_recv_num++;
addr = osp_alloc_msg(RFM_TEST_MSG_SIZE);
if (NULL == addr)
{
debug_write(DBG_DDR_COMMON_IDX(core_id, 23), ++g_u32_rfm_1_alloc_err);
return payloadSize;
}
do_write(addr, (uint32_t)buf);
do_write((addr+4), UCP4008_TRAFFIC_NR_eMBB_DATA);
rdmcycle(&u32_clock_tick);
do_write((buf+20), u32_clock_tick); //RFM forward tick
ret = osp_send_msg((uint32_t)(addr),
RFM_TEST_MSG_SIZE,
RFM_MSG_TYPE,
9, // src que id
2, // dst que id
40, // src task id
40); // dst task id
if (0 != ret)
{
debug_write(DBG_DDR_COMMON_IDX(core_id, 24), ++g_u32_rfm_1_send_err);
return payloadSize;
}
g_u32_rfm_1_send_ok++;
debug_write(DBG_DDR_COMMON_IDX(core_id, 25), g_u32_rfm_1_recv_num);
debug_write(DBG_DDR_COMMON_IDX(core_id, 26), g_u32_rfm_1_send_ok);
return payloadSize;
}
static uint32_t g_u32_rfm_1_alloc1_err = 0; //(27) 0xB7E0146C
static uint32_t g_u32_rfm_1_send1_err = 0; //(28) 0xB7E01470
static uint32_t g_u32_rfm_1_recv1_num = 0; //(29) 0xB7E01474
static uint32_t g_u32_rfm_1_send1_ok = 0; //(30) 0xB7E01478
uint32_t rx1_callback_ctrl(const char* buf,uint32_t payloadSize)
{
int32_t ret = cell_setup_msg_forward((char*)buf, payloadSize);
if (0 == ret) {
return payloadSize;
}
/* RFM0接收消息后发给APE1 */
uint32_t core_id = get_core_id();
char *addr = NULL;
uint32_t u32_clock_tick = 0;
rdmcycle(&u32_clock_tick);
do_write((buf+16), u32_clock_tick); //RFM receive tick
g_u32_rfm_1_recv1_num++;
addr = osp_alloc_msg(RFM_TEST_MSG_SIZE);
if (NULL == addr)
{
debug_write(DBG_DDR_COMMON_IDX(core_id, 27), ++g_u32_rfm_1_alloc1_err);
return payloadSize;
}
do_write(addr, (uint32_t)buf);
do_write((addr+4), UCP4008_TRAFFIC_NR_eMBB_CTRL);
rdmcycle(&u32_clock_tick);
do_write((buf+20), u32_clock_tick); //RFM forward tick
ret = osp_send_msg((uint32_t)(addr),
RFM_TEST_MSG_SIZE,
RFM_MSG_TYPE,
9, // src que id
3, // dst que id
40, // src task id
40); // dst task id
if (0 != ret)
{
debug_write(DBG_DDR_COMMON_IDX(core_id, 28), ++g_u32_rfm_1_send1_err);
return payloadSize;
}
g_u32_rfm_1_send1_ok++;
debug_write(DBG_DDR_COMMON_IDX(core_id, 29), g_u32_rfm_1_recv1_num);
debug_write(DBG_DDR_COMMON_IDX(core_id, 30), g_u32_rfm_1_send1_ok);
return payloadSize;
}
static uint32_t g_u32_rfm_2_alloc_err = 0; //(31) 0xB7E0147C
static uint32_t g_u32_rfm_2_send_err = 0; //(32) 0xB7E01480
static uint32_t g_u32_rfm_2_recv_num = 0; //(33) 0xB7E01484
static uint32_t g_u32_rfm_2_send_ok = 0; //(34) 0xB7E01488
uint32_t rx2_callback_data(const char* buf,uint32_t payloadSize)
{
/* RFM0接收消息后发给APE0 */
uint32_t core_id = get_core_id();
int32_t ret = 0;
char *addr = NULL;
uint32_t u32_clock_tick = 0;
rdmcycle(&u32_clock_tick);
do_write((buf+16), u32_clock_tick); //RFM receive tick
g_u32_rfm_2_recv_num++;
addr = osp_alloc_msg(RFM_TEST_MSG_SIZE);
if (NULL == addr)
{
debug_write(DBG_DDR_COMMON_IDX(core_id, 31), ++g_u32_rfm_2_alloc_err);
return payloadSize;
}
do_write(addr, (uint32_t)buf);
do_write((addr+4), UCP4008_TRAFFIC_NR_eMBB_DATA);
rdmcycle(&u32_clock_tick);
do_write((buf+20), u32_clock_tick); //RFM forward tick
ret = osp_send_msg((uint32_t)(addr),
RFM_TEST_MSG_SIZE,
RFM_MSG_TYPE,
9, // src que id
4, // dst que id
40, // src task id
40); // dst task id
if (0 != ret)
{
debug_write(DBG_DDR_COMMON_IDX(core_id, 32), ++g_u32_rfm_2_send_err);
return payloadSize;
}
g_u32_rfm_2_send_ok++;
debug_write(DBG_DDR_COMMON_IDX(core_id, 33), g_u32_rfm_2_recv_num);
debug_write(DBG_DDR_COMMON_IDX(core_id, 34), g_u32_rfm_2_send_ok);
return payloadSize;
}
static uint32_t g_u32_rfm_2_alloc1_err = 0; //(35) 0xB7E0148C
static uint32_t g_u32_rfm_2_send1_err = 0; //(36) 0xB7E01490
static uint32_t g_u32_rfm_2_recv1_num = 0; //(37) 0xB7E01494
static uint32_t g_u32_rfm_2_send1_ok = 0; //(38) 0xB7E01498
uint32_t rx2_callback_ctrl(const char* buf,uint32_t payloadSize)
{
int32_t ret = cell_setup_msg_forward((char*)buf, payloadSize);
if (0 == ret) {
return payloadSize;
}
/* RFM0接收消息后发给APE1 */
uint32_t core_id = get_core_id();
char *addr = NULL;
uint32_t u32_clock_tick = 0;
rdmcycle(&u32_clock_tick);
do_write((buf+16), u32_clock_tick); //RFM receive tick
g_u32_rfm_2_recv1_num++;
addr = osp_alloc_msg(RFM_TEST_MSG_SIZE);
if (NULL == addr)
{
debug_write(DBG_DDR_COMMON_IDX(core_id, 35), ++g_u32_rfm_2_alloc1_err);
return payloadSize;
}
do_write(addr, (uint32_t)buf);
do_write((addr+4), UCP4008_TRAFFIC_NR_eMBB_CTRL);
rdmcycle(&u32_clock_tick);
do_write((buf+20), u32_clock_tick); //RFM forward tick
ret = osp_send_msg((uint32_t)(addr),
RFM_TEST_MSG_SIZE,
RFM_MSG_TYPE,
9, // src que id
5, // dst que id
40, // src task id
40); // dst task id
if (0 != ret)
{
debug_write(DBG_DDR_COMMON_IDX(core_id, 36), ++g_u32_rfm_2_send1_err);
return payloadSize;
}
g_u32_rfm_2_send1_ok++;
debug_write(DBG_DDR_COMMON_IDX(core_id, 37), g_u32_rfm_2_recv1_num);
debug_write(DBG_DDR_COMMON_IDX(core_id, 38), g_u32_rfm_2_send1_ok);
return payloadSize;
}
static uint32_t g_u32_rfm_3_alloc_err = 0; //(39) 0xB7E0149C
static uint32_t g_u32_rfm_3_send_err = 0; //(40) 0xB7E014A0
static uint32_t g_u32_rfm_3_recv_num = 0; //(41) 0xB7E014A4
static uint32_t g_u32_rfm_3_send_ok = 0; //(42) 0xB7E014A8
uint32_t rx3_callback_data(const char* buf,uint32_t payloadSize)
{
/* RFM0接收消息后发给APE0 */
uint32_t core_id = get_core_id();
int32_t ret = 0;
char *addr = NULL;
uint32_t u32_clock_tick = 0;
rdmcycle(&u32_clock_tick);
do_write((buf+16), u32_clock_tick); //RFM receive tick
g_u32_rfm_3_recv_num++;
addr = osp_alloc_msg(RFM_TEST_MSG_SIZE);
if (NULL == addr)
{
debug_write(DBG_DDR_COMMON_IDX(core_id, 39), ++g_u32_rfm_3_alloc_err);
return payloadSize;
}
do_write(addr, (uint32_t)buf);
do_write((addr+4), UCP4008_TRAFFIC_NR_eMBB_DATA);
rdmcycle(&u32_clock_tick);
do_write((buf+20), u32_clock_tick); //RFM forward tick
ret = osp_send_msg((uint32_t)(addr),
RFM_TEST_MSG_SIZE,
RFM_MSG_TYPE,
9, // src que id
6, // dst que id
40, // src task id
40); // dst task id
if (0 != ret)
{
debug_write(DBG_DDR_COMMON_IDX(core_id, 40), ++g_u32_rfm_3_send_err);
return payloadSize;
}
g_u32_rfm_3_send_ok++;
debug_write(DBG_DDR_COMMON_IDX(core_id, 41), g_u32_rfm_3_recv_num);
debug_write(DBG_DDR_COMMON_IDX(core_id, 42), g_u32_rfm_3_send_ok);
return payloadSize;
}
static uint32_t g_u32_rfm_3_alloc1_err = 0; //(43) 0xB7E014AC
static uint32_t g_u32_rfm_3_send1_err = 0; //(44) 0xB7E014B0
static uint32_t g_u32_rfm_3_recv1_num = 0; //(45) 0xB7E014B4
static uint32_t g_u32_rfm_3_send1_ok = 0; //(46) 0xB7E014B8
uint32_t rx3_callback_ctrl(const char* buf,uint32_t payloadSize)
{
int32_t ret = cell_setup_msg_forward((char*)buf, payloadSize);
if (0 == ret) {
return payloadSize;
}
/* RFM0接收消息后发给APE1 */
uint32_t core_id = get_core_id();
char *addr = NULL;
uint32_t u32_clock_tick = 0;
rdmcycle(&u32_clock_tick);
do_write((buf+16), u32_clock_tick); //RFM receive tick
g_u32_rfm_3_recv1_num++;
addr = osp_alloc_msg(RFM_TEST_MSG_SIZE);
if (NULL == addr)
{
debug_write(DBG_DDR_COMMON_IDX(core_id, 43), ++g_u32_rfm_3_alloc1_err);
return payloadSize;
}
do_write(addr, (uint32_t)buf);
do_write((addr+4), UCP4008_TRAFFIC_NR_eMBB_CTRL);
rdmcycle(&u32_clock_tick);
do_write((buf+20), u32_clock_tick); //RFM forward tick
ret = osp_send_msg((uint32_t)(addr),
RFM_TEST_MSG_SIZE,
RFM_MSG_TYPE,
9, // src que id
7, // dst que id
40, // src task id
40); // dst task id
if (0 != ret)
{
debug_write(DBG_DDR_COMMON_IDX(core_id, 44), ++g_u32_rfm_3_send1_err);
return payloadSize;
}
g_u32_rfm_3_send1_ok++;
debug_write(DBG_DDR_COMMON_IDX(core_id, 45), g_u32_rfm_3_recv1_num);
debug_write(DBG_DDR_COMMON_IDX(core_id, 46), g_u32_rfm_3_send1_ok);
return payloadSize;
}
void phy_init(void)
{
//uint8_t port_id = get_ucp_port_id();
uint16_t inst_id = 0;
uint16_t transfer_type = 0;
uint16_t cu_flag = C_PLANE;
int32_t handle_id = 0;
//transfer_type_info_s transfer_type_info;
for (inst_id=0; inst_id<MAX_INSTANCE_NUM; inst_id++)
{
transfer_type = OAM;
handle_id = msg_transfer_callback_register(transfer_type,inst_id,cu_flag,rx_callback_oam);
if (handle_id < 0) {
UCP_PRINT_EMPTY("msg_transfer_cfg transfer_type:OAM, handle_id[0x%08x] error.",handle_id);
}
}
/*********************************transfer_type = CU_SPLIT**********************************/
transfer_type = CU_SPLIT;
cu_flag = C_PLANE;
handle_id = msg_transfer_callback_register(transfer_type, 0, cu_flag, rx_callback_ctrl);
if (handle_id < 0) {
UCP_PRINT_EMPTY("msg_transfer_cfg transfer_type:CU_SPLIT, handle_id[0x%08x] error.",handle_id);
}
cu_flag = U_PLANE;
handle_id = msg_transfer_callback_register(transfer_type, 0, cu_flag, rx_callback_data);
if (handle_id < 0) {
UCP_PRINT_EMPTY("msg_transfer_cfg transfer_type:CU_SPLIT, handle_id[0x%08x] error.",handle_id);
}
transfer_type = CU_SPLIT;
cu_flag = C_PLANE;
handle_id = msg_transfer_callback_register(transfer_type, 1, cu_flag, rx1_callback_ctrl);
if (handle_id < 0) {
UCP_PRINT_EMPTY("msg_transfer_cfg transfer_type:CU_SPLIT, handle_id[0x%08x] error.",handle_id);
}
cu_flag = U_PLANE;
handle_id = msg_transfer_callback_register(transfer_type, 1, cu_flag, rx1_callback_data);
if (handle_id < 0) {
UCP_PRINT_EMPTY("msg_transfer_cfg transfer_type:CU_SPLIT, handle_id[0x%08x] error.",handle_id);
}
transfer_type = CU_SPLIT;
cu_flag = C_PLANE;
handle_id = msg_transfer_callback_register(transfer_type, 2, cu_flag, rx2_callback_ctrl);
if (handle_id < 0) {
UCP_PRINT_EMPTY("msg_transfer_cfg transfer_type:CU_SPLIT, handle_id[0x%08x] error.",handle_id);
}
cu_flag = U_PLANE;
handle_id = msg_transfer_callback_register(transfer_type, 2, cu_flag, rx2_callback_data);
if (handle_id < 0) {
UCP_PRINT_EMPTY("msg_transfer_cfg transfer_type:CU_SPLIT, handle_id[0x%08x] error.",handle_id);
}
transfer_type = CU_SPLIT;
cu_flag = C_PLANE;
handle_id = msg_transfer_callback_register(transfer_type, 3, cu_flag, rx3_callback_ctrl);
if (handle_id < 0) {
UCP_PRINT_EMPTY("msg_transfer_cfg transfer_type:CU_SPLIT, handle_id[0x%08x] error.",handle_id);
}
cu_flag = U_PLANE;
handle_id = msg_transfer_callback_register(transfer_type, 3, cu_flag, rx3_callback_data);
if (handle_id < 0) {
UCP_PRINT_EMPTY("msg_transfer_cfg transfer_type:CU_SPLIT, handle_id[0x%08x] error.",handle_id);
}
return;
}

View File

@ -163,34 +163,6 @@ void ape0_event1_task(uint32_t addr, uint32_t size)
debug_write(DBG_DDR_COMMON_IDX(ape_id, 43), g_u32_case24_ape0_event1_send2_err);
return ;
}
#if 0
/* 给ape2 event1发消息 */
paddr = osp_alloc_msg(TEST_MSG_SIZE);
if (NULL == paddr)
{
//g_u32_case21_ape0_event1_alloc2_err++;
//debug_write(DBG_DDR_COMMON_IDX(ape_id, 42), g_u32_case21_ape0_event1_alloc2_err);
return ;
}
do_write(paddr, g_u32_case22_ape0_event1_rev_num);
do_write((paddr+4), 0xA001B002);
ret = osp_send_msg((uint32_t)(paddr),
TEST_MSG_SIZE,
UCP4008_KERNEL_INTER,
ape_id, // src que id
2, // ape2
40, // src task id
40); // dst task id
if (0 != ret)
{
//g_u32_case21_ape0_event1_send2_err++;
//debug_write(DBG_DDR_COMMON_IDX(ape_id, 43), g_u32_case21_ape0_event1_send2_err);
return ;
}
#endif
debug_write(DBG_DDR_COMMON_IDX(ape_id, 44), ++g_u32_case24_ape0_event1_send_ok);
@ -301,7 +273,7 @@ static inline void send_slot_indication(void)
char* buf;
uint32_t availableSize,offset;
uint16_t cu_flag = U_PLANE;//C_PLANE;
uint16_t cu_flag = U_PLANE;
HandleId_t handler;
handler.port_id = get_ucp_port_id();
handler.inst_id = 0;

View File

@ -192,34 +192,7 @@ void ape1_event1_task(uint32_t addr, uint32_t size)
debug_write(DBG_DDR_COMMON_IDX(ape_id, 43), g_u32_case24_ape1_event1_send2_err);
return ;
}
#if 0
/* 给ape3 event1发消息 */
paddr = osp_alloc_msg(TEST_MSG_SIZE);
if (NULL == paddr)
{
//g_u32_case21_ape1_event1_alloc2_err++;
//debug_write(DBG_DDR_COMMON_IDX(ape_id, 42), g_u32_case21_ape1_event1_alloc2_err);
return ;
}
do_write(paddr, g_u32_case22_ape1_event1_rev_num);
do_write((paddr+4), 0xA001B002);
ret = osp_send_msg((uint32_t)(paddr),
TEST_MSG_SIZE,
UCP4008_KERNEL_INTER,
ape_id, // src que id
3, // ape3
40, // src task id
40); // dst task id
if (0 != ret)
{
//g_u32_case21_ape1_event1_send2_err++;
//debug_write(DBG_DDR_COMMON_IDX(ape_id, 43), g_u32_case21_ape1_event1_send2_err);
return ;
}
#endif
debug_write(DBG_DDR_COMMON_IDX(ape_id, 44), ++g_u32_case24_ape1_event1_send_ok);
return ;
@ -329,7 +302,7 @@ static inline void send_slot_indication(void)
char* buf;
uint32_t availableSize,offset;
uint16_t cu_flag = C_PLANE;//U_PLANE;
uint16_t cu_flag = C_PLANE;
HandleId_t handler;
handler.port_id = get_ucp_port_id();
handler.inst_id = 0;

View File

@ -28,9 +28,9 @@
static uint32_t g_u32_case24_ape2_event1_rev_num = 0; // 30 0xB7E00478
static uint32_t g_u32_case24_ape2_event1_rev_ok = 0; // 31 0xB7E0047C
static uint32_t g_u32_case24_ape2_event1_addr_err = 0; // 32 0xB7E00480
//static uint32_t g_u32_case22_ape2_event1_tick = 0;
//static uint32_t g_u32_case22_ape2_event1_tick_err = 0; // 33 0xB7E00484
//static uint32_t g_u32_case22_ape2_event1_sfn_slot_err = 0; // 35 0xB7E0048C
//static uint32_t g_u32_case24_ape2_event1_tick = 0;
//static uint32_t g_u32_case24_ape2_event1_tick_err = 0; // 33 0xB7E00484
//static uint32_t g_u32_case24_ape2_event1_sfn_slot_err = 0; // 35 0xB7E0048C
static uint32_t g_u32_case24_ape2_event1_alloc1_err = 0; // 40 0xB7E004A0
static uint32_t g_u32_case24_ape2_event1_send1_err = 0; // 41 0xB7E004A4
static uint32_t g_u32_case24_ape2_event1_alloc2_err = 0; // 42 0xB7E004A8
@ -261,7 +261,7 @@ static inline void check_continuous_sfn(uint16_t sfn)
}
#if 1
uint32_t gu32_send_cnt = 0;
uint32_t gu32_ape2_send_cnt = 0; //(61) 0xb7e004f4
static inline void send_slot_indication(void)
{
@ -283,7 +283,7 @@ static inline void send_slot_indication(void)
int32_t ret = msg_transfer_send_start(handler.value);
//UCP_PRINT_ERROR("value(0x%x), inst(%d)", handler.value, handler.inst_id);
debug_write(DBG_DDR_COMMON_IDX(ape_id, 60), handler.value);
debug_write(DBG_DDR_COMMON_IDX(ape_id, 61), ++gu32_send_cnt);
debug_write(DBG_DDR_COMMON_IDX(ape_id, 61), ++gu32_ape2_send_cnt);
debug_write(DBG_DDR_COMMON_IDX(ape_id, 62), slot);
debug_write(DBG_DDR_COMMON_IDX(ape_id, 63), 0xffff);

View File

@ -28,9 +28,9 @@
static uint32_t g_u32_case24_ape3_event1_rev_num = 0; // 30 0xB7E00678
static uint32_t g_u32_case24_ape3_event1_rev_ok = 0; // 31 0xB7E0067C
static uint32_t g_u32_case24_ape3_event1_addr_err = 0; // 32 0xB7E00680
//static uint32_t g_u32_case22_ape3_event1_tick = 0;
//static uint32_t g_u32_case22_ape3_event1_tick_err = 0; // 33 0xB7E00684
//static uint32_t g_u32_case22_ape3_event1_sfn_slot_err = 0; // 35 0xB7E0068C
//static uint32_t g_u32_case24_ape3_event1_tick = 0;
//static uint32_t g_u32_case24_ape3_event1_tick_err = 0; // 33 0xB7E00684
//static uint32_t g_u32_case24_ape3_event1_sfn_slot_err = 0; // 35 0xB7E0068C
static uint32_t g_u32_case24_ape3_event1_alloc1_err = 0; // 40 0xB7E006A0
static uint32_t g_u32_case24_ape3_event1_send1_err = 0; // 41 0xB7E006A4
static uint32_t g_u32_case24_ape3_event1_alloc2_err = 0; // 42 0xB7E006A8
@ -261,6 +261,8 @@ static inline void check_continuous_sfn(uint16_t sfn)
}
#if 1
uint32_t gu32_ape3_send_cnt = 0; //(61) 0xb7e006f4
static inline void send_slot_indication(void)
{
uint16_t scs = LTE_SCS_ID;
@ -279,6 +281,10 @@ static inline void send_slot_indication(void)
handler.inst_id = 1;
handler.type_id = CU_SPLIT;
int32_t ret = msg_transfer_send_start(handler.value);
debug_write(DBG_DDR_COMMON_IDX(ape_id, 60), handler.value);
debug_write(DBG_DDR_COMMON_IDX(ape_id, 61), ++gu32_ape3_send_cnt);
debug_write(DBG_DDR_COMMON_IDX(ape_id, 62), slot);
debug_write(DBG_DDR_COMMON_IDX(ape_id, 63), 0xffff);
ret = msg_transfer_alloc_msg(handler.value, cu_flag, size, &buf, &availableSize, &offset);
if (SUCCESS != ret)

View File

@ -137,7 +137,6 @@ void ape4_event1_task(uint32_t addr, uint32_t size)
debug_write(DBG_DDR_COMMON_IDX(ape_id, 41), g_u32_case24_ape4_event1_send1_err);
//return ;
}
UCP_PRINT_ERROR("send_ok_1");
/* 给其核event2发消息 */
paddr = osp_alloc_msg(TEST_MSG_SIZE);
@ -222,7 +221,7 @@ void ape4_event3_task(uint32_t addr, uint32_t size)
/* 定时时任务相关打点 */
static uint32_t g_u32_case24_ape4_timer1_slot_no_continuous = 0; // 50 0xB7E008C8
static uint32_t g_u32_case24_ape4_timer1_sfn_no_continuous = 0; // 51 0xB7E008CC
//static uint32_t g_u32_case24_ape4_timer1_slot_indication = 0; // 52 0xB7E008D0
static uint32_t g_u32_case24_ape4_timer1_slot_indication = 0; // 52 0xB7E008D0
static uint32_t g_u32_case24_ape4_timer1_update_sfn_slot = 0; // 53 0xB7E008D4
static uint32_t g_u32_case24_ape4_timer1_process_cnt = 0; // 54 0xB7E008D8
static uint32_t g_u32_case24_ape4_timer1_process_tick = 0; // 55 0xB7E008DC
@ -288,7 +287,7 @@ static inline void check_continuous_sfn(uint16_t sfn)
}
return;
}
#if 0
#if 1
uint32_t gu32_ape4_send_cnt = 0;
static inline void send_slot_indication(void)
{
@ -302,7 +301,7 @@ static inline void send_slot_indication(void)
char* buf;
uint32_t availableSize,offset;
uint16_t cu_flag = U_PLANE;//C_PLANE;
uint16_t cu_flag = U_PLANE;
HandleId_t handler;
handler.port_id = get_ucp_port_id();
handler.inst_id = 2;
@ -368,7 +367,7 @@ void ape4_timer1_task(void)
update_sfn_slot();
//send_slot_indication();
send_slot_indication();
if (0 == g_u32_case24_ape4_timer1_process_tick)
{

View File

@ -249,7 +249,7 @@ void ape5_event3_task(uint32_t addr, uint32_t size)
/* 定时时任务相关打点 */
static uint32_t g_u32_case24_ape5_timer1_slot_no_continuous = 0; // 50 0xB7E00AC8
static uint32_t g_u32_case24_ape5_timer1_sfn_no_continuous = 0; // 51 0xB7E00ACC
//static uint32_t g_u32_case24_ape5_timer1_slot_indication = 0; // 52 0xB7E00AD0
static uint32_t g_u32_case24_ape5_timer1_slot_indication = 0; // 52 0xB7E00AD0
static uint32_t g_u32_case24_ape5_timer1_update_sfn_slot = 0; // 53 0xB7E00AD4
static uint32_t g_u32_case24_ape5_timer1_process_cnt = 0; // 54 0xB7E00AD8
static uint32_t g_u32_case24_ape5_timer1_process_tick = 0; // 55 0xB7E00ADC
@ -315,7 +315,7 @@ static inline void check_continuous_sfn(uint16_t sfn)
}
return;
}
#if 0
#if 1
uint32_t gu32_ape5_send_cnt = 0; //(61) 0xb7e002f4
static inline void send_slot_indication(void)
{
@ -329,7 +329,7 @@ static inline void send_slot_indication(void)
char* buf;
uint32_t availableSize,offset;
uint16_t cu_flag = C_PLANE;//U_PLANE;
uint16_t cu_flag = C_PLANE;
HandleId_t handler;
handler.port_id = get_ucp_port_id();
handler.inst_id = 2;
@ -394,7 +394,7 @@ void ape5_timer1_task(void)
update_sfn_slot();
//send_slot_indication();
send_slot_indication();
if (0 == g_u32_case24_ape5_timer1_process_tick)
{

View File

@ -193,7 +193,7 @@ void ape6_event3_task(uint32_t addr, uint32_t size)
/* 定时时任务相关打点 */
static uint32_t g_u32_case24_ape6_timer1_slot_no_continuous = 0; // 50 0xB7E00CC8
static uint32_t g_u32_case24_ape6_timer1_sfn_no_continuous = 0; // 51 0xB7E00CCC
//static uint32_t g_u32_case24_ape6_timer1_slot_indication = 0; // 52 0xB7E00CD0
static uint32_t g_u32_case24_ape6_timer1_slot_indication = 0; // 52 0xB7E00CD0
static uint32_t g_u32_case24_ape6_timer1_update_sfn_slot = 0; // 53 0xB7E00CD4
static uint32_t g_u32_case24_ape6_timer1_process_cnt = 0; // 54 0xB7E00CD8
static uint32_t g_u32_case24_ape6_timer1_process_tick = 0; // 55 0xB7E00CDC
@ -260,7 +260,7 @@ static inline void check_continuous_sfn(uint16_t sfn)
return;
}
#if 0
#if 1
uint32_t gu32_ape6_send_cnt = 0;
static inline void send_slot_indication(void)
@ -343,7 +343,7 @@ void ape6_timer1_task(void)
update_sfn_slot();
//send_slot_indication();
send_slot_indication();
if (0 == g_u32_case24_ape6_timer1_process_tick)
{

View File

@ -193,7 +193,7 @@ void ape7_event3_task(uint32_t addr, uint32_t size)
/* 定时时任务相关打点 */
static uint32_t g_u32_case24_ape7_timer1_slot_no_continuous = 0; // 50 0xB7E00EC8
static uint32_t g_u32_case24_ape7_timer1_sfn_no_continuous = 0; // 51 0xB7E00ECC
//static uint32_t g_u32_case24_ape7_timer1_slot_indication = 0; // 52 0xB7E00ED0
static uint32_t g_u32_case24_ape7_timer1_slot_indication = 0; // 52 0xB7E00ED0
static uint32_t g_u32_case24_ape7_timer1_update_sfn_slot = 0; // 53 0xB7E00ED4
static uint32_t g_u32_case24_ape7_timer1_process_cnt = 0; // 54 0xB7E00ED8
static uint32_t g_u32_case24_ape7_timer1_process_tick = 0; // 55 0xB7E00EDC
@ -260,7 +260,9 @@ static inline void check_continuous_sfn(uint16_t sfn)
return;
}
#if 0
#if 1
uint32_t gu32_ape7_send_cnt = 0;
static inline void send_slot_indication(void)
{
uint16_t scs = LTE_SCS_ID;
@ -279,6 +281,10 @@ static inline void send_slot_indication(void)
handler.inst_id = 3;
handler.type_id = CU_SPLIT;
int32_t ret = msg_transfer_send_start(handler.value);
debug_write(DBG_DDR_COMMON_IDX(ape_id, 60), handler.value);
debug_write(DBG_DDR_COMMON_IDX(ape_id, 61), ++gu32_ape7_send_cnt);
debug_write(DBG_DDR_COMMON_IDX(ape_id, 62), slot);
debug_write(DBG_DDR_COMMON_IDX(ape_id, 63), 0xffff);
ret = msg_transfer_alloc_msg(handler.value, cu_flag, size, &buf, &availableSize, &offset);
if (SUCCESS != ret)
@ -336,7 +342,7 @@ void ape7_timer1_task(void)
update_sfn_slot();
//send_slot_indication();
send_slot_indication();
if (0 == g_u32_case24_ape7_timer1_process_tick)
{