ecpri testcase update
This commit is contained in:
parent
96ec809d27
commit
0e31610af0
@ -27,9 +27,6 @@
|
||||
**********************************************************************************************************************/
|
||||
void ecpri_roec_init(void)
|
||||
{
|
||||
/* eCPRI buffer clear */
|
||||
memset_ucp((void *)ECPRI_BUF_ADDR, 0x00, ECPRI_BUF_SIZE);
|
||||
|
||||
/* config address range for descriptor */
|
||||
do_write(&DESC_BEGIN_ADDR_2, ECPRI_RX_BUF_ADDR / ECPRI_DESC_ADDR_UNIT);
|
||||
do_write(&DESC_END_ADDR_2, (ECPRI_RX_BUF_ADDR + ECPRI_RX_BUF_SIZE) / ECPRI_DESC_ADDR_UNIT);
|
||||
|
@ -17,7 +17,6 @@
|
||||
|
||||
#ifdef ECS_RFM0
|
||||
#include "ecpri_csu.h"
|
||||
//#include "ecpri_que.h"
|
||||
#endif
|
||||
|
||||
#ifdef ECS_RFM1
|
||||
@ -38,8 +37,18 @@ typedef struct EcpriLBTestResult
|
||||
|
||||
/* --------------------------------------------------- <DECLARE> --------------------------------------------------- */
|
||||
#ifdef ECS_RFM0
|
||||
/* eCPRI test result update */
|
||||
void ecpri_test_result_update(void);
|
||||
/* eCPRI test ECS_RFM0 init */
|
||||
void ecpri_test_ecs0_init(void);
|
||||
/* eCPRI test PL packet process */
|
||||
void ecpri_test_pl_pkt_proc(uint32_t pkt_addr, uint16_t pkt_len);
|
||||
/* eCPRI test ECS_RFM0 status check */
|
||||
void ecpri_test_ecs0_status_check(void);
|
||||
/* eCPRI test ECS_RFM0 result update */
|
||||
void ecpri_test_ecs0_result_update(void);
|
||||
#endif
|
||||
#ifdef ECS_RFM1
|
||||
/* eCPRI test ECS_RFM1 init */
|
||||
void ecpri_test_ecs1_init(void);
|
||||
#endif
|
||||
|
||||
|
||||
|
@ -35,15 +35,11 @@ EcpriLBTestResult_t g_ecpri_lb_test_result = {0};
|
||||
int32_t fh_data_init(void)
|
||||
{
|
||||
#ifdef ECS_RFM0
|
||||
memset_ucp((void *)&g_ecpri_lb_test_result, 0, sizeof(g_ecpri_lb_test_result));
|
||||
ecpri_test_ecs0_init();
|
||||
#endif
|
||||
|
||||
/* send flag init(symbol interrupt) */
|
||||
debug_write(ECPRI_DBG_IDX0(64), 0); /* ECS_RFM0: 0xB7E30100(64) */
|
||||
/* send length init */
|
||||
debug_write(ECPRI_DBG_IDX0(65), 0); /* ECS_RFM0: 0xB7E30104(65) */
|
||||
|
||||
/* eCPRI test flag init */
|
||||
debug_write(ECPRI_TEST_IDX0(0), g_ecpri_test_flag); /* ECS_RFM0: 0xB7E32000(0) */
|
||||
#ifdef ECS_RFM1
|
||||
ecpri_test_ecs1_init();
|
||||
#endif
|
||||
|
||||
return SUCCESS;
|
||||
@ -93,19 +89,7 @@ int32_t fh_csu_test_init(void)
|
||||
void fh_data_check(uint32_t times)
|
||||
{
|
||||
#ifdef ECS_RFM0
|
||||
/* get eCPRI test flag */
|
||||
g_ecpri_test_flag = do_read_volatile(ECPRI_TEST_ADDR0(0)); /* ECS_RFM0: 0xB7E32000(0) */
|
||||
if (0 == g_ecpri_test_flag)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
/* eCPRI test result update */
|
||||
ecpri_test_result_update();
|
||||
|
||||
/* clear eCPRI test flag */
|
||||
g_ecpri_test_flag = 0;
|
||||
debug_write(ECPRI_TEST_IDX0(0), g_ecpri_test_flag); /* ECS_RFM0: 0xB7E32000(0) */
|
||||
ecpri_test_ecs0_status_check();
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -123,6 +107,27 @@ void fh_test_case(void)
|
||||
}
|
||||
|
||||
#ifdef ECS_RFM0
|
||||
/**********************************************************************************************************************
|
||||
* Function: ecpri_test_ecs0_init
|
||||
* Description: eCPRI test ECS_RFM0 init
|
||||
* Input: none
|
||||
* Output: none
|
||||
* Return: none
|
||||
* Others: none
|
||||
**********************************************************************************************************************/
|
||||
void ecpri_test_ecs0_init(void)
|
||||
{
|
||||
memset_ucp((void *)&g_ecpri_lb_test_result, 0, sizeof(g_ecpri_lb_test_result));
|
||||
|
||||
/* send flag init(symbol interrupt) */
|
||||
debug_write(ECPRI_DBG_IDX0(64), 0); /* ECS_RFM0: 0xB7E30100(64) */
|
||||
/* send length init */
|
||||
debug_write(ECPRI_DBG_IDX0(65), 0); /* ECS_RFM0: 0xB7E30104(65) */
|
||||
|
||||
/* eCPRI test flag init */
|
||||
debug_write(ECPRI_TEST_IDX0(0), g_ecpri_test_flag); /* ECS_RFM0: 0xB7E32000(0) */
|
||||
}
|
||||
|
||||
/**********************************************************************************************************************
|
||||
* Function: ecpri_test_pl_pkt_proc
|
||||
* Description: eCPRI test PL packet process
|
||||
@ -180,18 +185,59 @@ void ecpri_test_pl_pkt_proc(uint32_t pkt_addr, uint16_t pkt_len)
|
||||
}
|
||||
|
||||
/**********************************************************************************************************************
|
||||
* Function: ecpri_test_result_update
|
||||
* Description: eCPRI test result update
|
||||
* Function: ecpri_test_ecs0_status_check
|
||||
* Description: eCPRI test ECS_RFM0 status check
|
||||
* Input: none
|
||||
* Output: none
|
||||
* Return: none
|
||||
* Others: none
|
||||
**********************************************************************************************************************/
|
||||
void ecpri_test_result_update(void)
|
||||
void ecpri_test_ecs0_status_check(void)
|
||||
{
|
||||
debug_write(ECPRI_TEST_IDX(4100), g_ecpri_lb_test_result.pl_stat.test_times); /* ECS_RFM0: 0xB7E36010(4100) */
|
||||
debug_write(ECPRI_TEST_IDX(4101), g_ecpri_lb_test_result.pl_stat.succ_times); /* ECS_RFM0: 0xB7E36014(4101) */
|
||||
debug_write(ECPRI_TEST_IDX(4102), g_ecpri_lb_test_result.pl_stat.fail_times); /* ECS_RFM0: 0xB7E36018(4102) */
|
||||
/* get eCPRI test flag */
|
||||
g_ecpri_test_flag = do_read_volatile(ECPRI_TEST_ADDR0(0)); /* ECS_RFM0: 0xB7E32000(0) */
|
||||
if (0 == g_ecpri_test_flag)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
/* eCPRI test ECS_RFM0 result update */
|
||||
ecpri_test_ecs0_result_update();
|
||||
|
||||
/* clear eCPRI test flag */
|
||||
g_ecpri_test_flag = 0;
|
||||
debug_write(ECPRI_TEST_IDX0(0), g_ecpri_test_flag); /* ECS_RFM0: 0xB7E32000(0) */
|
||||
}
|
||||
|
||||
/**********************************************************************************************************************
|
||||
* Function: ecpri_test_ecs0_result_update
|
||||
* Description: eCPRI test ECS_RFM0 result update
|
||||
* Input: none
|
||||
* Output: none
|
||||
* Return: none
|
||||
* Others: none
|
||||
**********************************************************************************************************************/
|
||||
void ecpri_test_ecs0_result_update(void)
|
||||
{
|
||||
debug_write(ECPRI_TEST_IDX0(4100), g_ecpri_lb_test_result.pl_stat.test_times); /* ECS_RFM0: 0xB7E36010(4100) */
|
||||
debug_write(ECPRI_TEST_IDX0(4101), g_ecpri_lb_test_result.pl_stat.succ_times); /* ECS_RFM0: 0xB7E36014(4101) */
|
||||
debug_write(ECPRI_TEST_IDX0(4102), g_ecpri_lb_test_result.pl_stat.fail_times); /* ECS_RFM0: 0xB7E36018(4102) */
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef ECS_RFM1
|
||||
/**********************************************************************************************************************
|
||||
* Function: ecpri_test_ecs1_init
|
||||
* Description: eCPRI test ECS_RFM1 init
|
||||
* Input: none
|
||||
* Output: none
|
||||
* Return: none
|
||||
* Others: none
|
||||
**********************************************************************************************************************/
|
||||
void ecpri_test_ecs1_init(void)
|
||||
{
|
||||
/* eCPRI buffer clear */
|
||||
memset_ucp((void *)ECPRI_BUF_ADDR, 0x00, ECPRI_BUF_SIZE);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -283,6 +283,9 @@ void ecpri_test_ecs1_init(void)
|
||||
/* count index */
|
||||
uint16_t i = 0;
|
||||
|
||||
/* eCPRI buffer clear */
|
||||
memset_ucp((void *)ECPRI_BUF_ADDR, 0x00, ECPRI_BUF_SIZE);
|
||||
|
||||
/* data conversion */
|
||||
for (ant_id = 0; ant_id < ECPRI_ANT_NUM; ant_id++)
|
||||
{
|
||||
|
@ -283,6 +283,9 @@ void ecpri_test_ecs1_init(void)
|
||||
/* count index */
|
||||
uint16_t i = 0;
|
||||
|
||||
/* eCPRI buffer clear */
|
||||
memset_ucp((void *)ECPRI_BUF_ADDR, 0x00, ECPRI_BUF_SIZE);
|
||||
|
||||
/* data conversion */
|
||||
for (ant_id = 0; ant_id < ECPRI_ANT_NUM; ant_id++)
|
||||
{
|
||||
|
@ -0,0 +1,56 @@
|
||||
/**********************************************************************************************************************
|
||||
* Copyright (C), 2022-2026, SMARTLOGIC TECHNOLOGY LTD.
|
||||
* File Name: ecpri_test_case110.h
|
||||
* Create Date: 23/12/18
|
||||
* Description: eCPRI Test Case110 Module Header File
|
||||
* Change History:
|
||||
* <author> <time> <version> <desc>
|
||||
* 1. ShangH 23/12/18 1.0 Build this module
|
||||
**********************************************************************************************************************/
|
||||
|
||||
#ifndef _ECPRI_TEST_CASE110_H_
|
||||
#define _ECPRI_TEST_CASE110_H_
|
||||
|
||||
|
||||
/* -------------------------------------------------- <INC FILE> --------------------------------------------------- */
|
||||
#include "ecpri_test.h"
|
||||
|
||||
#ifdef ECS_RFM0
|
||||
#include "ecpri_csu.h"
|
||||
#endif
|
||||
|
||||
#ifdef ECS_RFM1
|
||||
#include "ecpri_driver.h"
|
||||
#endif
|
||||
|
||||
|
||||
/* -------------------------------------------------- <MACRO DEF> -------------------------------------------------- */
|
||||
|
||||
|
||||
/* -------------------------------------------------- <TYPE DEF> --------------------------------------------------- */
|
||||
/* eCPRI loopback test result structure */
|
||||
typedef struct EcpriLBTestResult
|
||||
{
|
||||
EcpriTestResult_t pl_stat; /* PL statistic */
|
||||
} EcpriLBTestResult_t;
|
||||
|
||||
|
||||
/* --------------------------------------------------- <DECLARE> --------------------------------------------------- */
|
||||
#ifdef ECS_RFM0
|
||||
/* eCPRI test ECS_RFM0 init */
|
||||
void ecpri_test_ecs0_init(void);
|
||||
/* eCPRI test PL packet process */
|
||||
void ecpri_test_pl_pkt_proc(uint32_t pkt_addr, uint16_t pkt_len);
|
||||
/* eCPRI test ECS_RFM0 status check */
|
||||
void ecpri_test_ecs0_status_check(void);
|
||||
/* eCPRI test ECS_RFM0 result update */
|
||||
void ecpri_test_ecs0_result_update(void);
|
||||
#endif
|
||||
#ifdef ECS_RFM1
|
||||
/* eCPRI test ECS_RFM1 init */
|
||||
void ecpri_test_ecs1_init(void);
|
||||
#endif
|
||||
|
||||
|
||||
#endif /* _ECPRI_TEST_CASE110_H_ */
|
||||
|
2
public/test/testcases/case110/fronthaul/readme.txt
Normal file
2
public/test/testcases/case110/fronthaul/readme.txt
Normal file
@ -0,0 +1,2 @@
|
||||
场景:eCPRI数据包外环回测试
|
||||
模式:25G速率
|
@ -0,0 +1,245 @@
|
||||
/**********************************************************************************************************************
|
||||
* Copyright (C), 2022-2026, SMARTLOGIC TECHNOLOGY LTD.
|
||||
* File Name: ecpri_test_case110.s.c
|
||||
* Create Date: 23/12/18
|
||||
* Description: eCPRI Test Case110 Module Source File
|
||||
* Change History:
|
||||
* <author> <time> <version> <desc>
|
||||
* 1. ShangH 23/12/18 1.0 Build this module
|
||||
**********************************************************************************************************************/
|
||||
|
||||
|
||||
/* -------------------------------------------------- <INC FILE> --------------------------------------------------- */
|
||||
#include "ecpri_test_case110.h"
|
||||
|
||||
|
||||
/* --------------------------------------------------- <VAR DEF> --------------------------------------------------- */
|
||||
#ifdef ECS_RFM0
|
||||
/* eCPRI test flag */
|
||||
uint32_t g_ecpri_test_flag = 0; /* ECS_RFM0: 0xB7E32000(0) */
|
||||
|
||||
/* eCPRI loopback test result */
|
||||
EcpriLBTestResult_t g_ecpri_lb_test_result = {0};
|
||||
#endif
|
||||
|
||||
|
||||
/* -------------------------------------------------- <FUNC DEF> --------------------------------------------------- */
|
||||
/**********************************************************************************************************************
|
||||
* Function: fh_data_init
|
||||
* Description: fronthaul data init
|
||||
* Input: none
|
||||
* Output: none
|
||||
* Return: operation result - success or failure.
|
||||
* Others: none
|
||||
**********************************************************************************************************************/
|
||||
int32_t fh_data_init(void)
|
||||
{
|
||||
#ifdef ECS_RFM0
|
||||
ecpri_test_ecs0_init();
|
||||
#endif
|
||||
|
||||
#ifdef ECS_RFM1
|
||||
ecpri_test_ecs1_init();
|
||||
#endif
|
||||
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
/**********************************************************************************************************************
|
||||
* Function: fh_drv_init
|
||||
* Description: fronthaul driver init
|
||||
* Input: none
|
||||
* Output: none
|
||||
* Return: operation result - success or failure.
|
||||
* Others: none
|
||||
**********************************************************************************************************************/
|
||||
int32_t fh_drv_init(void)
|
||||
{
|
||||
#ifdef ECS_RFM1
|
||||
/* eCPRI init */
|
||||
ecpri_init(ECPRI_OPTION_25G);
|
||||
#endif
|
||||
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
/**********************************************************************************************************************
|
||||
* Function: fh_csu_test_init
|
||||
* Description: fronthaul CSU test init
|
||||
* Input: none
|
||||
* Output: none
|
||||
* Return: operation result - success or failure.
|
||||
* Others: none
|
||||
**********************************************************************************************************************/
|
||||
int32_t fh_csu_test_init(void)
|
||||
{
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
/**********************************************************************************************************************
|
||||
* Function: fh_data_check
|
||||
* Description: fronthaul data check
|
||||
* Input:
|
||||
* <name> <type> <desc>
|
||||
* times uint32_t check times
|
||||
* Output: none
|
||||
* Return: none
|
||||
* Others: none
|
||||
**********************************************************************************************************************/
|
||||
void fh_data_check(uint32_t times)
|
||||
{
|
||||
#ifdef ECS_RFM0
|
||||
ecpri_test_ecs0_status_check();
|
||||
#endif
|
||||
}
|
||||
|
||||
/**********************************************************************************************************************
|
||||
* Function: fh_test_case
|
||||
* Description: fronthaul test case
|
||||
* Input: none
|
||||
* Output: none
|
||||
* Return: none
|
||||
* Others: none
|
||||
**********************************************************************************************************************/
|
||||
void fh_test_case(void)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef ECS_RFM0
|
||||
/**********************************************************************************************************************
|
||||
* Function: ecpri_test_ecs0_init
|
||||
* Description: eCPRI test ECS_RFM0 init
|
||||
* Input: none
|
||||
* Output: none
|
||||
* Return: none
|
||||
* Others: none
|
||||
**********************************************************************************************************************/
|
||||
void ecpri_test_ecs0_init(void)
|
||||
{
|
||||
memset_ucp((void *)&g_ecpri_lb_test_result, 0, sizeof(g_ecpri_lb_test_result));
|
||||
|
||||
/* send flag init(symbol interrupt) */
|
||||
debug_write(ECPRI_DBG_IDX0(64), 0); /* ECS_RFM0: 0xB7E30100(64) */
|
||||
/* send length init */
|
||||
debug_write(ECPRI_DBG_IDX0(65), 0); /* ECS_RFM0: 0xB7E30104(65) */
|
||||
|
||||
/* eCPRI test flag init */
|
||||
debug_write(ECPRI_TEST_IDX0(0), g_ecpri_test_flag); /* ECS_RFM0: 0xB7E32000(0) */
|
||||
}
|
||||
|
||||
/**********************************************************************************************************************
|
||||
* Function: ecpri_test_pl_pkt_proc
|
||||
* Description: eCPRI test PL packet process
|
||||
* Input:
|
||||
* <name> <type> <desc>
|
||||
* pkt_addr uint32_t packet address
|
||||
* pkt_len uint16_t packet length
|
||||
* Output: none
|
||||
* Return: none
|
||||
* Others: none
|
||||
**********************************************************************************************************************/
|
||||
void ecpri_test_pl_pkt_proc(uint32_t pkt_addr, uint16_t pkt_len)
|
||||
{
|
||||
/* counter index */
|
||||
uint8_t i = 0;
|
||||
/* source MAC */
|
||||
uint8_t src_mac = 0;
|
||||
/* destination MAC */
|
||||
uint8_t dst_mac = 0;
|
||||
|
||||
g_ecpri_lb_test_result.pl_stat.test_times++;
|
||||
|
||||
/* input para check */
|
||||
if ((NULL == (void *)pkt_addr) || (ECPRI_PKT_SIZE < pkt_len))
|
||||
{
|
||||
g_ecpri_lb_test_result.pl_stat.fail_times++;
|
||||
return;
|
||||
}
|
||||
|
||||
/* data temporary storage */
|
||||
(void)ape_csu_dma_1D_G2L_ch2ch3_transfer(pkt_addr,
|
||||
ECPRI_TEST_ADDR0(4),
|
||||
pkt_len,
|
||||
1,
|
||||
1); /* ECS_RFM0: 0xB7E32010(4) ~ 0xB7E3600C(4099) */
|
||||
|
||||
//__ucps2_synch(0);
|
||||
|
||||
/* exchange source/destination MAC address */
|
||||
for (i = 0; i < MAC_ADDR_LEN; i++)
|
||||
{
|
||||
dst_mac = do_read_volatile_byte((void *)(ECPRI_TEST_ADDR0(4) + i));
|
||||
src_mac = do_read_volatile_byte((void *)(ECPRI_TEST_ADDR0(4) + i + MAC_ADDR_LEN));
|
||||
|
||||
//__ucps2_synch(0);
|
||||
|
||||
do_write_byte((void *)(ECPRI_TEST_ADDR0(4) + i), src_mac);
|
||||
do_write_byte((void *)(ECPRI_TEST_ADDR0(4) + i + MAC_ADDR_LEN), dst_mac);
|
||||
}
|
||||
|
||||
/* eCPRI CSU send packet */
|
||||
(void)ecpri_csu_send(ECPRI_TEST_ADDR0(4), pkt_len, 0); /* ECS_RFM0: 0xB7E32010(4) ~ 0xB7E3600C(4099) */
|
||||
|
||||
g_ecpri_lb_test_result.pl_stat.succ_times++;
|
||||
}
|
||||
|
||||
/**********************************************************************************************************************
|
||||
* Function: ecpri_test_ecs0_status_check
|
||||
* Description: eCPRI test ECS_RFM0 status check
|
||||
* Input: none
|
||||
* Output: none
|
||||
* Return: none
|
||||
* Others: none
|
||||
**********************************************************************************************************************/
|
||||
void ecpri_test_ecs0_status_check(void)
|
||||
{
|
||||
/* get eCPRI test flag */
|
||||
g_ecpri_test_flag = do_read_volatile(ECPRI_TEST_ADDR0(0)); /* ECS_RFM0: 0xB7E32000(0) */
|
||||
if (0 == g_ecpri_test_flag)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
/* eCPRI test ECS_RFM0 result update */
|
||||
ecpri_test_ecs0_result_update();
|
||||
|
||||
/* clear eCPRI test flag */
|
||||
g_ecpri_test_flag = 0;
|
||||
debug_write(ECPRI_TEST_IDX0(0), g_ecpri_test_flag); /* ECS_RFM0: 0xB7E32000(0) */
|
||||
}
|
||||
|
||||
/**********************************************************************************************************************
|
||||
* Function: ecpri_test_ecs0_result_update
|
||||
* Description: eCPRI test ECS_RFM0 result update
|
||||
* Input: none
|
||||
* Output: none
|
||||
* Return: none
|
||||
* Others: none
|
||||
**********************************************************************************************************************/
|
||||
void ecpri_test_ecs0_result_update(void)
|
||||
{
|
||||
debug_write(ECPRI_TEST_IDX0(4100), g_ecpri_lb_test_result.pl_stat.test_times); /* ECS_RFM0: 0xB7E36010(4100) */
|
||||
debug_write(ECPRI_TEST_IDX0(4101), g_ecpri_lb_test_result.pl_stat.succ_times); /* ECS_RFM0: 0xB7E36014(4101) */
|
||||
debug_write(ECPRI_TEST_IDX0(4102), g_ecpri_lb_test_result.pl_stat.fail_times); /* ECS_RFM0: 0xB7E36018(4102) */
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef ECS_RFM1
|
||||
/**********************************************************************************************************************
|
||||
* Function: ecpri_test_ecs1_init
|
||||
* Description: eCPRI test ECS_RFM1 init
|
||||
* Input: none
|
||||
* Output: none
|
||||
* Return: none
|
||||
* Others: none
|
||||
**********************************************************************************************************************/
|
||||
void ecpri_test_ecs1_init(void)
|
||||
{
|
||||
/* eCPRI buffer clear */
|
||||
memset_ucp((void *)ECPRI_BUF_ADDR, 0x00, ECPRI_BUF_SIZE);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
|
60
public/test/testcases/case110/osp/src/ape_test_case110.s.c
Normal file
60
public/test/testcases/case110/osp/src/ape_test_case110.s.c
Normal file
@ -0,0 +1,60 @@
|
||||
// +FHDR------------------------------------------------------------
|
||||
// Copyright (c) 2022 SmartLogic.
|
||||
// ALL RIGHTS RESERVED
|
||||
// -----------------------------------------------------------------
|
||||
// Filename : ape_test_case110.s.c
|
||||
// Author :
|
||||
// Created On : 2023-12-18
|
||||
// Last Modified :
|
||||
// -----------------------------------------------------------------
|
||||
// Description:
|
||||
//
|
||||
//
|
||||
// -FHDR------------------------------------------------------------
|
||||
|
||||
#include "typedef.h"
|
||||
#include "osp_task.h"
|
||||
#include "osp_timer.h"
|
||||
#include "ucp_printf.h"
|
||||
|
||||
|
||||
void ape0_test_task_reg(void)
|
||||
{
|
||||
return ;
|
||||
}
|
||||
|
||||
void ape1_test_task_reg(void)
|
||||
{
|
||||
return ;
|
||||
}
|
||||
|
||||
void ape2_test_task_reg(void)
|
||||
{
|
||||
return ;
|
||||
}
|
||||
|
||||
void ape3_test_task_reg(void)
|
||||
{
|
||||
return ;
|
||||
}
|
||||
|
||||
void ape4_test_task_reg(void)
|
||||
{
|
||||
return ;
|
||||
}
|
||||
|
||||
void ape5_test_task_reg(void)
|
||||
{
|
||||
return ;
|
||||
}
|
||||
|
||||
void ape6_test_task_reg(void)
|
||||
{
|
||||
return ;
|
||||
}
|
||||
|
||||
void ape7_test_task_reg(void)
|
||||
{
|
||||
return ;
|
||||
}
|
||||
|
@ -0,0 +1,56 @@
|
||||
/**********************************************************************************************************************
|
||||
* Copyright (C), 2022-2026, SMARTLOGIC TECHNOLOGY LTD.
|
||||
* File Name: ecpri_test_case111.h
|
||||
* Create Date: 23/12/22
|
||||
* Description: eCPRI Test Case111 Module Header File
|
||||
* Change History:
|
||||
* <author> <time> <version> <desc>
|
||||
* 1. ShangH 23/12/22 1.0 Build this module
|
||||
**********************************************************************************************************************/
|
||||
|
||||
#ifndef _ECPRI_TEST_CASE111_H_
|
||||
#define _ECPRI_TEST_CASE111_H_
|
||||
|
||||
|
||||
/* -------------------------------------------------- <INC FILE> --------------------------------------------------- */
|
||||
#include "ecpri_test.h"
|
||||
|
||||
#ifdef ECS_RFM0
|
||||
#include "ecpri_irq.h"
|
||||
#endif
|
||||
|
||||
#ifdef ECS_RFM1
|
||||
#include "ecpri_test_case111_antdata.h"
|
||||
#include "ecpri_driver.h"
|
||||
#endif
|
||||
|
||||
|
||||
/* -------------------------------------------------- <MACRO DEF> -------------------------------------------------- */
|
||||
|
||||
|
||||
/* -------------------------------------------------- <TYPE DEF> --------------------------------------------------- */
|
||||
|
||||
|
||||
/* --------------------------------------------------- <DECLARE> --------------------------------------------------- */
|
||||
#ifdef ECS_RFM0
|
||||
/* eCPRI test ECS_RFM0 init */
|
||||
void ecpri_test_ecs0_init(void);
|
||||
/* eCPRI test PL packet process */
|
||||
void ecpri_test_pl_pkt_proc(uint32_t pkt_addr, uint16_t pkt_len);
|
||||
/* eCPRI test ECS_RFM0 status check */
|
||||
void ecpri_test_ecs0_status_check(void);
|
||||
/* eCPRI test ECS_RFM0 result update */
|
||||
void ecpri_test_ecs0_result_update(void);
|
||||
#endif
|
||||
#ifdef ECS_RFM1
|
||||
/* eCPRI test ECS_RFM1 init */
|
||||
void ecpri_test_ecs1_init(void);
|
||||
/* eCPRI test ECS_RFM1 status check */
|
||||
void ecpri_test_ecs1_status_check(void);
|
||||
/* eCPRI test ECS_RFM1 result update */
|
||||
void ecpri_test_ecs1_result_update(void);
|
||||
#endif
|
||||
|
||||
|
||||
#endif /* _ECPRI_TEST_CASE111_H_ */
|
||||
|
@ -0,0 +1,117 @@
|
||||
/**********************************************************************************************************************
|
||||
* Copyright (C), 2022-2026, SMARTLOGIC TECHNOLOGY LTD.
|
||||
* File Name: ecpri_test_case111_antdata.h
|
||||
* Create Date: 23/12/22
|
||||
* Description: eCPRI Test Case111 Antenna Data Module Header File
|
||||
* Change History:
|
||||
* <author> <time> <version> <desc>
|
||||
* 1. ShangH 23/12/22 1.0 Build this module
|
||||
**********************************************************************************************************************/
|
||||
|
||||
#ifndef _ECPRI_TEST_CASE111_ANTDATA_H_
|
||||
#define _ECPRI_TEST_CASE111_ANTDATA_H_
|
||||
|
||||
|
||||
/* -------------------------------------------------- <INC FILE> --------------------------------------------------- */
|
||||
#ifdef ECS_RFM1
|
||||
#include "mem_sections.h"
|
||||
#include "ecpri_comm.h"
|
||||
#endif
|
||||
|
||||
|
||||
/* -------------------------------------------------- <MACRO DEF> -------------------------------------------------- */
|
||||
/* TDD eCPRI IQ 10bit compress enable */
|
||||
//#define TDD_ECPRI_COMP_10BIT_EN
|
||||
|
||||
/* TDD eCPRI symbol0 length */
|
||||
#define TDD_ECPRI_SYM0_LEN 4448
|
||||
/* TDD eCPRI symbol1~symbol13 length */
|
||||
#define TDD_ECPRI_SYMX_LEN 4384
|
||||
|
||||
/* TDD eCPRI symbol0 compress length */
|
||||
#define TDD_ECPRI_SYM0_COMP_LEN (TDD_ECPRI_SYM0_LEN * 10 / 16)
|
||||
/* TDD eCPRI symbol1~symbol13 compress length */
|
||||
#define TDD_ECPRI_SYMX_COMP_LEN (TDD_ECPRI_SYMX_LEN * 10 / 16)
|
||||
|
||||
/* TDD eCPRI symbol0 packet length(11,152) */
|
||||
#define TDD_ECPRI_SYM0_PKT_LEN (TDD_ECPRI_SYM0_COMP_LEN * 4 + 32)
|
||||
/* TDD eCPRI symbol1~symbol13 packet length(10,992) */
|
||||
#define TDD_ECPRI_SYMX_PKT_LEN (TDD_ECPRI_SYMX_COMP_LEN * 4 + 32)
|
||||
|
||||
|
||||
/* -------------------------------------------------- <TYPE DEF> --------------------------------------------------- */
|
||||
#ifdef ECS_RFM1
|
||||
/* TDD eCPRI head structure */
|
||||
typedef struct TddEcpriHead
|
||||
{
|
||||
/* ethernet head */
|
||||
uint8_t dst_mac[MAC_ADDR_LEN]; /* destination MAC address */
|
||||
uint8_t src_mac[MAC_ADDR_LEN]; /* source MAC address */
|
||||
uint32_t vlan_tag; /* VLAN tag */
|
||||
uint16_t ether_type; /* ethernet type */
|
||||
|
||||
/* common head */
|
||||
uint8_t pkt_concat : 1; /* packet concatenation[0] */
|
||||
uint8_t reserved : 3; /* reserved[3:1] */
|
||||
uint8_t ecpri_ver : 4; /* eCPRI version[7:4] */
|
||||
uint8_t msg_type; /* message type */
|
||||
uint16_t payload_size; /* payload size */
|
||||
|
||||
/* custom head */
|
||||
uint8_t sector_id : 4; /* sector index[3:0] */
|
||||
uint8_t cu_port_id : 4; /* CU port index[7:4] */
|
||||
uint8_t ant_id : 4; /* antenna index[3:0] */
|
||||
uint8_t cc_id : 4; /* carrier unit[7:4] */
|
||||
|
||||
uint8_t seq_id; /* sequence index */
|
||||
uint8_t subseq_id : 7; /* subsequence index[6:0] */
|
||||
uint8_t seq_end : 1; /* sequence end flag[7] */
|
||||
uint8_t fltr_id : 4; /* filter index[3:0] */
|
||||
uint8_t payload_ver : 3; /* payload version[6:4] */
|
||||
uint8_t data_dir : 1; /* data direction[7] */
|
||||
uint8_t frame_id_l; /* frame index low */
|
||||
|
||||
uint8_t slot_id : 4; /* slot index[3:0] */
|
||||
uint8_t subframe_id : 4; /* subframe index[7:4] */
|
||||
uint8_t sym_id : 6; /* symbol index[5:0] */
|
||||
uint8_t frame_id_h : 2; /* frame index high[7:6] */
|
||||
uint8_t udcomp_meth : 4; /* IQ compress method[3:0] */
|
||||
uint8_t udiq_width : 4; /* IQ bit width indication[7:4] */
|
||||
uint8_t udcomp_para; /* IQ compress parameter */
|
||||
} TddEcpriHead_t;
|
||||
|
||||
/* TDD eCPRI symbol0 packet structure */
|
||||
typedef struct TddEcpriSym0Pkt
|
||||
{
|
||||
TddEcpriHead_t tdd_ecpri_head; /* TDD ethernet head */
|
||||
uint32_t tdd_sym0_data[TDD_ECPRI_SYM0_COMP_LEN];
|
||||
/* TDD symbol0 data */
|
||||
} TddEcpriSym0Pkt_t;
|
||||
|
||||
/* TDD eCPRI symbol1~symbol13 packet structure */
|
||||
typedef struct TddEcpriSymXPkt
|
||||
{
|
||||
TddEcpriHead_t tdd_ecpri_head; /* TDD ethernet head */
|
||||
uint32_t tdd_symx_data[TDD_ECPRI_SYMX_COMP_LEN];
|
||||
/* TDD symbol1~symbol13 data */
|
||||
} TddEcpriSymXPkt_t;
|
||||
|
||||
/* TDD eCPRI antenna config data structure */
|
||||
typedef struct TddEcpriAntCfgData
|
||||
{
|
||||
TddEcpriSym0Pkt_t tdd_sym0; /* TDD symbol0 */
|
||||
TddEcpriSymXPkt_t tdd_symx[ECPRI_SYM_NUM - 1];
|
||||
/* TDD symbol1~symbol13 */
|
||||
} TddEcpriAntCfgData_t;
|
||||
#endif
|
||||
|
||||
|
||||
/* --------------------------------------------------- <DECLARE> --------------------------------------------------- */
|
||||
#ifdef ECS_RFM1
|
||||
/* TDD eCPRI antenna config data */
|
||||
extern DDR0 TddEcpriAntCfgData_t g_tdd_ecpri_ant_cfg_data[ECPRI_ANT_NUM];
|
||||
#endif
|
||||
|
||||
|
||||
#endif /* _ECPRI_TEST_CASE111_ANTDATA_H_ */
|
||||
|
2
public/test/testcases/case111/fronthaul/readme.txt
Normal file
2
public/test/testcases/case111/fronthaul/readme.txt
Normal file
@ -0,0 +1,2 @@
|
||||
场景:eCPRI发包测试
|
||||
模式:25G速率,TDD。
|
@ -0,0 +1,388 @@
|
||||
/**********************************************************************************************************************
|
||||
* Copyright (C), 2022-2026, SMARTLOGIC TECHNOLOGY LTD.
|
||||
* File Name: ecpri_test_case111.s.c
|
||||
* Create Date: 23/12/22
|
||||
* Description: eCPRI Test Case111 Module Source File
|
||||
* Change History:
|
||||
* <author> <time> <version> <desc>
|
||||
* 1. ShangH 23/12/22 1.0 Build this module
|
||||
**********************************************************************************************************************/
|
||||
|
||||
|
||||
/* -------------------------------------------------- <INC FILE> --------------------------------------------------- */
|
||||
#include "ecpri_test_case111.h"
|
||||
|
||||
|
||||
/* --------------------------------------------------- <VAR DEF> --------------------------------------------------- */
|
||||
#ifdef ECS_RFM0
|
||||
/* eCPRI test ECS_RFM0 flag */
|
||||
uint32_t g_ecpri_test_flag0 = 0; /* ECS_RFM0: 0xB7E32000(0) */
|
||||
/* eCPRI test antenna index */
|
||||
uint32_t g_ecpri_test_ant_id = 0; /* ECS_RFM0: 0xB7E32004(1) */
|
||||
/* eCPRI test symbol index */
|
||||
uint32_t g_ecpri_test_sym_id = 0; /* ECS_RFM0: 0xB7E32008(2) */
|
||||
|
||||
/* eCPRI test ECS_RFM0 result */
|
||||
EcpriTestResult_t g_ecpri_test_result0 = {0};
|
||||
#endif
|
||||
|
||||
#ifdef ECS_RFM1
|
||||
/* eCPRI test ECS_RFM1 flag */
|
||||
uint32_t g_ecpri_test_flag1 = 0; /* ECS_RFM1: 0xB7E42000(0) */
|
||||
|
||||
/* eCPRI test ECS_RFM1 result */
|
||||
EcpriTestResult_t g_ecpri_test_result1 = {0};
|
||||
#endif
|
||||
|
||||
|
||||
/* -------------------------------------------------- <FUNC DEF> --------------------------------------------------- */
|
||||
/**********************************************************************************************************************
|
||||
* Function: fh_data_init
|
||||
* Description: fronthaul data init
|
||||
* Input: none
|
||||
* Output: none
|
||||
* Return: operation result - success or failure.
|
||||
* Others: none
|
||||
**********************************************************************************************************************/
|
||||
int32_t fh_data_init(void)
|
||||
{
|
||||
#ifdef ECS_RFM0
|
||||
ecpri_test_ecs0_init();
|
||||
#endif
|
||||
|
||||
#ifdef ECS_RFM1
|
||||
ecpri_test_ecs1_init();
|
||||
#endif
|
||||
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
/**********************************************************************************************************************
|
||||
* Function: fh_drv_init
|
||||
* Description: fronthaul driver init
|
||||
* Input: none
|
||||
* Output: none
|
||||
* Return: operation result - success or failure.
|
||||
* Others: none
|
||||
**********************************************************************************************************************/
|
||||
int32_t fh_drv_init(void)
|
||||
{
|
||||
#ifdef ECS_RFM1
|
||||
/* eCPRI init */
|
||||
ecpri_init(ECPRI_OPTION_25G);
|
||||
#endif
|
||||
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
/**********************************************************************************************************************
|
||||
* Function: fh_csu_test_init
|
||||
* Description: fronthaul CSU test init
|
||||
* Input: none
|
||||
* Output: none
|
||||
* Return: operation result - success or failure.
|
||||
* Others: none
|
||||
**********************************************************************************************************************/
|
||||
int32_t fh_csu_test_init(void)
|
||||
{
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
/**********************************************************************************************************************
|
||||
* Function: fh_data_check
|
||||
* Description: fronthaul data check
|
||||
* Input:
|
||||
* <name> <type> <desc>
|
||||
* times uint32_t check times
|
||||
* Output: none
|
||||
* Return: none
|
||||
* Others: none
|
||||
**********************************************************************************************************************/
|
||||
void fh_data_check(uint32_t times)
|
||||
{
|
||||
#ifdef ECS_RFM0
|
||||
ecpri_test_ecs0_status_check();
|
||||
#endif
|
||||
|
||||
#ifdef ECS_RFM1
|
||||
ecpri_test_ecs1_status_check();
|
||||
#endif
|
||||
}
|
||||
|
||||
/**********************************************************************************************************************
|
||||
* Function: fh_test_case
|
||||
* Description: fronthaul test case
|
||||
* Input: none
|
||||
* Output: none
|
||||
* Return: none
|
||||
* Others: none
|
||||
**********************************************************************************************************************/
|
||||
void fh_test_case(void)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef ECS_RFM0
|
||||
/**********************************************************************************************************************
|
||||
* Function: ecpri_test_ecs0_init
|
||||
* Description: eCPRI test ECS_RFM0 init
|
||||
* Input: none
|
||||
* Output: none
|
||||
* Return: none
|
||||
* Others: none
|
||||
**********************************************************************************************************************/
|
||||
void ecpri_test_ecs0_init(void)
|
||||
{
|
||||
memset_ucp((void *)&g_ecpri_test_result0, 0, sizeof(g_ecpri_test_result0));
|
||||
|
||||
/* send flag init(symbol interrupt) */
|
||||
debug_write(ECPRI_DBG_IDX0(64), 0); /* ECS_RFM0: 0xB7E30100(64) */
|
||||
/* send length init */
|
||||
debug_write(ECPRI_DBG_IDX0(65), 0); /* ECS_RFM0: 0xB7E30104(65) */
|
||||
|
||||
/* ECS_RFM0 test flag init */
|
||||
debug_write(ECPRI_TEST_IDX0(0), g_ecpri_test_flag0); /* ECS_RFM0: 0xB7E32000(0) */
|
||||
/* antenna index init */
|
||||
debug_write(ECPRI_TEST_IDX0(1), g_ecpri_test_ant_id); /* ECS_RFM0: 0xB7E32004(1) */
|
||||
/* symbol index init */
|
||||
debug_write(ECPRI_TEST_IDX0(2), g_ecpri_test_sym_id); /* ECS_RFM0: 0xB7E32008(2) */
|
||||
}
|
||||
|
||||
/**********************************************************************************************************************
|
||||
* Function: ecpri_test_pl_pkt_proc
|
||||
* Description: eCPRI test PL packet process
|
||||
* Input:
|
||||
* <name> <type> <desc>
|
||||
* pkt_addr uint32_t packet address
|
||||
* pkt_len uint16_t packet length
|
||||
* Output: none
|
||||
* Return: none
|
||||
* Others: none
|
||||
**********************************************************************************************************************/
|
||||
void ecpri_test_pl_pkt_proc(uint32_t pkt_addr, uint16_t pkt_len)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
/**********************************************************************************************************************
|
||||
* Function: ecpri_test_ecs0_status_check
|
||||
* Description: eCPRI test ECS_RFM0 status check
|
||||
* Input: none
|
||||
* Output: none
|
||||
* Return: none
|
||||
* Others: none
|
||||
**********************************************************************************************************************/
|
||||
void ecpri_test_ecs0_status_check(void)
|
||||
{
|
||||
/* return value */
|
||||
int32_t ret = 0;
|
||||
/* antenna number */
|
||||
uint32_t ant_num = 1;
|
||||
/* symbol number */
|
||||
uint32_t sym_num = 1;
|
||||
/* count index */
|
||||
uint8_t i = 0;
|
||||
uint8_t j = 0;
|
||||
|
||||
/* get ECS_RFM0 test flag */
|
||||
g_ecpri_test_flag0 = do_read_volatile((void *)ECPRI_TEST_ADDR0(0)); /* ECS_RFM0: 0xB7E32000(0) */
|
||||
if (0 == g_ecpri_test_flag0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
/* get test antenna index */
|
||||
g_ecpri_test_ant_id = do_read_volatile((void *)ECPRI_TEST_ADDR0(1)); /* ECS_RFM0: 0xB7E32004(1) */
|
||||
if (ECPRI_ANT_NUM <= g_ecpri_test_ant_id)
|
||||
{
|
||||
ant_num = ECPRI_ANT_NUM;
|
||||
}
|
||||
|
||||
/* get test symbol index */
|
||||
g_ecpri_test_sym_id = do_read_volatile((void *)ECPRI_TEST_ADDR0(2)); /* ECS_RFM0: 0xB7E32008(2) */
|
||||
if (ECPRI_SYM_NUM <= g_ecpri_test_sym_id)
|
||||
{
|
||||
sym_num = ECPRI_SYM_NUM;
|
||||
}
|
||||
|
||||
for (i = 0; i < ant_num; i++)
|
||||
{
|
||||
for (j = 0; j < sym_num; j++)
|
||||
{
|
||||
g_ecpri_test_result0.test_times++;
|
||||
|
||||
if ((1 == ant_num) && (1 == sym_num))
|
||||
{
|
||||
ret = ecpri_sym_irq_send(g_ecpri_test_ant_id, 0, g_ecpri_test_sym_id);
|
||||
}
|
||||
else if ((1 == ant_num) && (ECPRI_SYM_NUM == sym_num))
|
||||
{
|
||||
ret = ecpri_sym_irq_send(g_ecpri_test_ant_id, 0, j);
|
||||
}
|
||||
else if ((ECPRI_ANT_NUM == ant_num) && (1 == sym_num))
|
||||
{
|
||||
ret = ecpri_sym_irq_send(i, 0, g_ecpri_test_sym_id);
|
||||
}
|
||||
else
|
||||
{
|
||||
ret = ecpri_sym_irq_send(i, 0, j);
|
||||
}
|
||||
|
||||
if (SUCCESS == ret)
|
||||
{
|
||||
g_ecpri_test_result0.succ_times++;
|
||||
}
|
||||
else
|
||||
{
|
||||
g_ecpri_test_result0.fail_times++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* eCPRI test ECS_RFM0 result update */
|
||||
ecpri_test_ecs0_result_update();
|
||||
|
||||
/* clear ECS_RFM0 test flag */
|
||||
g_ecpri_test_flag0 = 0;
|
||||
debug_write(ECPRI_TEST_IDX0(0), g_ecpri_test_flag0); /* ECS_RFM0: 0xB7E32000(0) */
|
||||
}
|
||||
|
||||
/**********************************************************************************************************************
|
||||
* Function: ecpri_test_ecs0_result_update
|
||||
* Description: eCPRI test ECS_RFM0 result update
|
||||
* Input: none
|
||||
* Output: none
|
||||
* Return: none
|
||||
* Others: none
|
||||
**********************************************************************************************************************/
|
||||
void ecpri_test_ecs0_result_update(void)
|
||||
{
|
||||
debug_write(ECPRI_TEST_IDX0(4), g_ecpri_test_result0.test_times); /* ECS_RFM0: 0xB7E32010(4) */
|
||||
debug_write(ECPRI_TEST_IDX0(5), g_ecpri_test_result0.succ_times); /* ECS_RFM0: 0xB7E32014(5) */
|
||||
debug_write(ECPRI_TEST_IDX0(6), g_ecpri_test_result0.fail_times); /* ECS_RFM0: 0xB7E32018(6) */
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef ECS_RFM1
|
||||
/**********************************************************************************************************************
|
||||
* Function: ecpri_test_ecs1_init
|
||||
* Description: eCPRI test ECS_RFM1 init
|
||||
* Input: none
|
||||
* Output: none
|
||||
* Return: none
|
||||
* Others: none
|
||||
**********************************************************************************************************************/
|
||||
void ecpri_test_ecs1_init(void)
|
||||
{
|
||||
/* antenna index */
|
||||
uint8_t ant_id = 0;
|
||||
/* slot type */
|
||||
uint8_t slot_type = 0;
|
||||
/* symbol index */
|
||||
uint8_t sym_id = 0;
|
||||
/* count index */
|
||||
uint16_t i = 0;
|
||||
|
||||
/* eCPRI buffer clear */
|
||||
memset_ucp((void *)ECPRI_BUF_ADDR, 0x00, ECPRI_BUF_SIZE);
|
||||
|
||||
/* data conversion */
|
||||
for (ant_id = 0; ant_id < ECPRI_ANT_NUM; ant_id++)
|
||||
{
|
||||
for (sym_id = 0; sym_id < ECPRI_SYM_NUM; sym_id++)
|
||||
{
|
||||
if (0 == sym_id)
|
||||
{
|
||||
HTON_L(g_tdd_ecpri_ant_cfg_data[ant_id].tdd_sym0.tdd_ecpri_head.vlan_tag);
|
||||
HTON_S(g_tdd_ecpri_ant_cfg_data[ant_id].tdd_sym0.tdd_ecpri_head.ether_type);
|
||||
HTON_S(g_tdd_ecpri_ant_cfg_data[ant_id].tdd_sym0.tdd_ecpri_head.payload_size);
|
||||
|
||||
for (i = 0; i < TDD_ECPRI_SYM0_COMP_LEN; i++)
|
||||
{
|
||||
HTON_L(g_tdd_ecpri_ant_cfg_data[ant_id].tdd_sym0.tdd_sym0_data[i]);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
HTON_L(g_tdd_ecpri_ant_cfg_data[ant_id].tdd_symx[sym_id - 1].tdd_ecpri_head.vlan_tag);
|
||||
HTON_S(g_tdd_ecpri_ant_cfg_data[ant_id].tdd_symx[sym_id - 1].tdd_ecpri_head.ether_type);
|
||||
HTON_S(g_tdd_ecpri_ant_cfg_data[ant_id].tdd_symx[sym_id - 1].tdd_ecpri_head.payload_size);
|
||||
|
||||
for (i = 0; i < TDD_ECPRI_SYMX_COMP_LEN; i++)
|
||||
{
|
||||
HTON_L(g_tdd_ecpri_ant_cfg_data[ant_id].tdd_symx[sym_id - 1].tdd_symx_data[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* eCPRI antenna config */
|
||||
for (ant_id = 0; ant_id < ECPRI_ANT_NUM; ant_id++)
|
||||
{
|
||||
for (slot_type = 0; slot_type < ECPRI_SLOT_TYPE; slot_type++)
|
||||
{
|
||||
for (sym_id = 0; sym_id < ECPRI_SYM_NUM; sym_id++)
|
||||
{
|
||||
if (0 == sym_id)
|
||||
{
|
||||
ecpri_ant_cfg(ant_id, slot_type, sym_id,
|
||||
(uint32_t)(&g_tdd_ecpri_ant_cfg_data[ant_id].tdd_sym0), TDD_ECPRI_SYM0_PKT_LEN);
|
||||
}
|
||||
else
|
||||
{
|
||||
ecpri_ant_cfg(ant_id, slot_type, sym_id,
|
||||
(uint32_t)(&g_tdd_ecpri_ant_cfg_data[ant_id].tdd_symx[sym_id - 1]), TDD_ECPRI_SYMX_PKT_LEN);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
memset_ucp((void *)&g_ecpri_test_result1, 0, sizeof(g_ecpri_test_result1));
|
||||
|
||||
/* ECS_RFM1 test flag init */
|
||||
debug_write(ECPRI_TEST_IDX1(0), g_ecpri_test_flag1); /* ECS_RFM1: 0xB7E42000(0) */
|
||||
}
|
||||
|
||||
/**********************************************************************************************************************
|
||||
* Function: ecpri_test_ecs1_status_check
|
||||
* Description: eCPRI test ECS_RFM1 status check
|
||||
* Input: none
|
||||
* Output: none
|
||||
* Return: none
|
||||
* Others: none
|
||||
**********************************************************************************************************************/
|
||||
void ecpri_test_ecs1_status_check(void)
|
||||
{
|
||||
/* get ECS_RFM1 test flag */
|
||||
g_ecpri_test_flag1 = do_read_volatile((void *)ECPRI_TEST_ADDR1(0)); /* ECS_RFM1: 0xB7E42000(0) */
|
||||
if (0 == g_ecpri_test_flag1)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
/* eCPRI test ECS_RFM1 result update */
|
||||
ecpri_test_ecs1_result_update();
|
||||
|
||||
/* clear ECS_RFM1 test flag */
|
||||
g_ecpri_test_flag1 = 0;
|
||||
debug_write(ECPRI_TEST_IDX1(0), g_ecpri_test_flag1); /* ECS_RFM1: 0xB7E42000(0) */
|
||||
}
|
||||
|
||||
/**********************************************************************************************************************
|
||||
* Function: ecpri_test_ecs1_result_update
|
||||
* Description: eCPRI test ECS_RFM1 result update
|
||||
* Input: none
|
||||
* Output: none
|
||||
* Return: none
|
||||
* Others: none
|
||||
**********************************************************************************************************************/
|
||||
void ecpri_test_ecs1_result_update(void)
|
||||
{
|
||||
debug_write(ECPRI_TEST_IDX1(4), g_ecpri_test_result1.test_times); /* ECS_RFM1: 0xB7E42010(4) */
|
||||
debug_write(ECPRI_TEST_IDX1(5), g_ecpri_test_result1.succ_times); /* ECS_RFM1: 0xB7E42014(5) */
|
||||
debug_write(ECPRI_TEST_IDX1(6), g_ecpri_test_result1.fail_times); /* ECS_RFM1: 0xB7E42018(6) */
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
|
155107
public/test/testcases/case111/fronthaul/src/ecpri_test_case111_antdata.s.c
Normal file
155107
public/test/testcases/case111/fronthaul/src/ecpri_test_case111_antdata.s.c
Normal file
File diff suppressed because it is too large
Load Diff
60
public/test/testcases/case111/osp/src/ape_test_case111.s.c
Normal file
60
public/test/testcases/case111/osp/src/ape_test_case111.s.c
Normal file
@ -0,0 +1,60 @@
|
||||
// +FHDR------------------------------------------------------------
|
||||
// Copyright (c) 2022 SmartLogic.
|
||||
// ALL RIGHTS RESERVED
|
||||
// -----------------------------------------------------------------
|
||||
// Filename : ape_test_case111.s.c
|
||||
// Author :
|
||||
// Created On : 2023-12-22
|
||||
// Last Modified :
|
||||
// -----------------------------------------------------------------
|
||||
// Description:
|
||||
//
|
||||
//
|
||||
// -FHDR------------------------------------------------------------
|
||||
|
||||
#include "typedef.h"
|
||||
#include "osp_task.h"
|
||||
#include "osp_timer.h"
|
||||
#include "ucp_printf.h"
|
||||
|
||||
|
||||
void ape0_test_task_reg(void)
|
||||
{
|
||||
return ;
|
||||
}
|
||||
|
||||
void ape1_test_task_reg(void)
|
||||
{
|
||||
return ;
|
||||
}
|
||||
|
||||
void ape2_test_task_reg(void)
|
||||
{
|
||||
return ;
|
||||
}
|
||||
|
||||
void ape3_test_task_reg(void)
|
||||
{
|
||||
return ;
|
||||
}
|
||||
|
||||
void ape4_test_task_reg(void)
|
||||
{
|
||||
return ;
|
||||
}
|
||||
|
||||
void ape5_test_task_reg(void)
|
||||
{
|
||||
return ;
|
||||
}
|
||||
|
||||
void ape6_test_task_reg(void)
|
||||
{
|
||||
return ;
|
||||
}
|
||||
|
||||
void ape7_test_task_reg(void)
|
||||
{
|
||||
return ;
|
||||
}
|
||||
|
@ -0,0 +1,56 @@
|
||||
/**********************************************************************************************************************
|
||||
* Copyright (C), 2022-2026, SMARTLOGIC TECHNOLOGY LTD.
|
||||
* File Name: ecpri_test_case112.h
|
||||
* Create Date: 23/12/22
|
||||
* Description: eCPRI Test Case112 Module Header File
|
||||
* Change History:
|
||||
* <author> <time> <version> <desc>
|
||||
* 1. ShangH 23/12/22 1.0 Build this module
|
||||
**********************************************************************************************************************/
|
||||
|
||||
#ifndef _ECPRI_TEST_CASE112_H_
|
||||
#define _ECPRI_TEST_CASE112_H_
|
||||
|
||||
|
||||
/* -------------------------------------------------- <INC FILE> --------------------------------------------------- */
|
||||
#include "ecpri_test.h"
|
||||
|
||||
#ifdef ECS_RFM0
|
||||
#include "ecpri_irq.h"
|
||||
#endif
|
||||
|
||||
#ifdef ECS_RFM1
|
||||
#include "ecpri_test_case112_antdata.h"
|
||||
#include "ecpri_driver.h"
|
||||
#endif
|
||||
|
||||
|
||||
/* -------------------------------------------------- <MACRO DEF> -------------------------------------------------- */
|
||||
|
||||
|
||||
/* -------------------------------------------------- <TYPE DEF> --------------------------------------------------- */
|
||||
|
||||
|
||||
/* --------------------------------------------------- <DECLARE> --------------------------------------------------- */
|
||||
#ifdef ECS_RFM0
|
||||
/* eCPRI test ECS_RFM0 init */
|
||||
void ecpri_test_ecs0_init(void);
|
||||
/* eCPRI test PL packet process */
|
||||
void ecpri_test_pl_pkt_proc(uint32_t pkt_addr, uint16_t pkt_len);
|
||||
/* eCPRI test ECS_RFM0 status check */
|
||||
void ecpri_test_ecs0_status_check(void);
|
||||
/* eCPRI test ECS_RFM0 result update */
|
||||
void ecpri_test_ecs0_result_update(void);
|
||||
#endif
|
||||
#ifdef ECS_RFM1
|
||||
/* eCPRI test ECS_RFM1 init */
|
||||
void ecpri_test_ecs1_init(void);
|
||||
/* eCPRI test ECS_RFM1 status check */
|
||||
void ecpri_test_ecs1_status_check(void);
|
||||
/* eCPRI test ECS_RFM1 result update */
|
||||
void ecpri_test_ecs1_result_update(void);
|
||||
#endif
|
||||
|
||||
|
||||
#endif /* _ECPRI_TEST_CASE112_H_ */
|
||||
|
@ -0,0 +1,110 @@
|
||||
/**********************************************************************************************************************
|
||||
* Copyright (C), 2022-2026, SMARTLOGIC TECHNOLOGY LTD.
|
||||
* File Name: ecpri_test_case112_antdata.h
|
||||
* Create Date: 23/12/22
|
||||
* Description: eCPRI Test Case112 Antenna Data Module Header File
|
||||
* Change History:
|
||||
* <author> <time> <version> <desc>
|
||||
* 1. ShangH 23/12/22 1.0 Build this module
|
||||
**********************************************************************************************************************/
|
||||
|
||||
#ifndef _ECPRI_TEST_CASE112_ANTDATA_H_
|
||||
#define _ECPRI_TEST_CASE112_ANTDATA_H_
|
||||
|
||||
|
||||
/* -------------------------------------------------- <INC FILE> --------------------------------------------------- */
|
||||
#ifdef ECS_RFM1
|
||||
#include "mem_sections.h"
|
||||
#include "ecpri_comm.h"
|
||||
#endif
|
||||
|
||||
|
||||
/* -------------------------------------------------- <MACRO DEF> -------------------------------------------------- */
|
||||
/* FDD eCPRI IQ 10bit compress enable */
|
||||
//#define FDD_ECPRI_COMP_10BIT_EN
|
||||
|
||||
/* FDD eCPRI PRB number */
|
||||
#define FDD_ECPRI_PRB_NUM 273
|
||||
/* FDD eCPRI RE number per PRB */
|
||||
#define FDD_ECPRI_PRB_RE_NUM 12
|
||||
/* FDD eCPRI symbol0~symbol13 length */
|
||||
#define FDD_ECPRI_SYMX_LEN (FDD_ECPRI_PRB_NUM * FDD_ECPRI_PRB_RE_NUM)
|
||||
|
||||
/* FDD eCPRI symbol0~symbol13 compress length(2,048) */
|
||||
#define FDD_ECPRI_SYMX_COMP_LEN ((uint32_t)(FDD_ECPRI_SYMX_LEN * 10 / 16 + 1))
|
||||
|
||||
/* FDD eCPRI symbol0~symbol13 packet length(8,228) */
|
||||
#define FDD_ECPRI_SYMX_PKT_LEN (FDD_ECPRI_SYMX_COMP_LEN * 4 + 36)
|
||||
|
||||
|
||||
/* -------------------------------------------------- <TYPE DEF> --------------------------------------------------- */
|
||||
#ifdef ECS_RFM1
|
||||
/* FDD eCPRI head structure */
|
||||
typedef struct FddEcpriHead
|
||||
{
|
||||
/* ethernet head */
|
||||
uint8_t dst_mac[MAC_ADDR_LEN]; /* destination MAC address */
|
||||
uint8_t src_mac[MAC_ADDR_LEN]; /* source MAC address */
|
||||
uint32_t vlan_tag; /* VLAN tag */
|
||||
uint16_t ether_type; /* ethernet type */
|
||||
|
||||
/* common head */
|
||||
uint8_t pkt_concat : 1; /* packet concatenation[0] */
|
||||
uint8_t ecpri_rsv : 3; /* eCPRI reserved[3:1] */
|
||||
uint8_t ecpri_ver : 4; /* eCPRI version[7:4] */
|
||||
uint8_t msg_type; /* message type */
|
||||
uint16_t payload_size; /* payload size */
|
||||
|
||||
/* custom head */
|
||||
uint8_t sector_id : 4; /* sector index[3:0] */
|
||||
uint8_t cu_port_id : 4; /* CU port index[7:4] */
|
||||
uint8_t ant_id : 4; /* antenna index[3:0] */
|
||||
uint8_t cc_id : 4; /* carrier unit[7:4] */
|
||||
|
||||
uint8_t seq_id; /* sequence index */
|
||||
uint8_t subseq_id : 7; /* subsequence index[6:0] */
|
||||
uint8_t seq_end : 1; /* sequence end flag[7] */
|
||||
uint8_t fltr_id : 4; /* filter index[3:0] */
|
||||
uint8_t payload_ver : 3; /* payload version[6:4] */
|
||||
uint8_t data_dir : 1; /* data direction[7] */
|
||||
uint8_t frame_id; /* frame index */
|
||||
|
||||
uint32_t startPrbc_h : 2; /* start PRB high[1:0] */
|
||||
uint32_t symInc : 1; /* symbol increase[2] */
|
||||
uint32_t rb : 1; /* resource block[3] */
|
||||
uint32_t sectionId : 12; /* section index[15:4] */
|
||||
uint32_t sym_id : 6; /* symbol index[21:16] */
|
||||
uint32_t slot_id : 6; /* slot index[27:22] */
|
||||
uint32_t subframe_id : 4; /* subframe index[31:28] */
|
||||
|
||||
uint8_t startPrbc_l; /* start PRB low */
|
||||
uint8_t numPrbc; /* PRB number */
|
||||
uint8_t udCompHdr; /* user data compress header */
|
||||
uint8_t reserved; /* reserved */
|
||||
} FddEcpriHead_t;
|
||||
|
||||
/* FDD eCPRI symbol0~symbol13 packet structure */
|
||||
typedef struct FddEcpriSymXPkt
|
||||
{
|
||||
FddEcpriHead_t fdd_ecpri_head; /* FDD ethernet head */
|
||||
uint32_t fdd_symx_data[FDD_ECPRI_SYMX_COMP_LEN];
|
||||
/* FDD symbol0~symbol13 data */
|
||||
} FddEcpriSymXPkt_t;
|
||||
|
||||
/* FDD eCPRI antenna config data structure */
|
||||
typedef struct FddEcpriAntCfgData
|
||||
{
|
||||
FddEcpriSymXPkt_t fdd_symx[ECPRI_SYM_NUM]; /* FDD symbol0~symbol13 */
|
||||
} FddEcpriAntCfgData_t;
|
||||
#endif
|
||||
|
||||
|
||||
/* --------------------------------------------------- <DECLARE> --------------------------------------------------- */
|
||||
#ifdef ECS_RFM1
|
||||
/* FDD eCPRI antenna config data */
|
||||
extern DDR0 FddEcpriAntCfgData_t g_fdd_ecpri_ant_cfg_data[ECPRI_ANT_NUM];
|
||||
#endif
|
||||
|
||||
|
||||
#endif /* _ECPRI_TEST_CASE112_ANTDATA_H_ */
|
||||
|
2
public/test/testcases/case112/fronthaul/readme.txt
Normal file
2
public/test/testcases/case112/fronthaul/readme.txt
Normal file
@ -0,0 +1,2 @@
|
||||
场景:eCPRI发包测试
|
||||
模式:25G速率,FDD。
|
@ -0,0 +1,366 @@
|
||||
/**********************************************************************************************************************
|
||||
* Copyright (C), 2022-2026, SMARTLOGIC TECHNOLOGY LTD.
|
||||
* File Name: ecpri_test_case112.s.c
|
||||
* Create Date: 23/12/22
|
||||
* Description: eCPRI Test Case112 Module Source File
|
||||
* Change History:
|
||||
* <author> <time> <version> <desc>
|
||||
* 1. ShangH 23/12/22 1.0 Build this module
|
||||
**********************************************************************************************************************/
|
||||
|
||||
|
||||
/* -------------------------------------------------- <INC FILE> --------------------------------------------------- */
|
||||
#include "ecpri_test_case112.h"
|
||||
|
||||
|
||||
/* --------------------------------------------------- <VAR DEF> --------------------------------------------------- */
|
||||
#ifdef ECS_RFM0
|
||||
/* eCPRI test ECS_RFM0 flag */
|
||||
uint32_t g_ecpri_test_flag0 = 0; /* ECS_RFM0: 0xB7E32000(0) */
|
||||
/* eCPRI test antenna index */
|
||||
uint32_t g_ecpri_test_ant_id = 0; /* ECS_RFM0: 0xB7E32004(1) */
|
||||
/* eCPRI test symbol index */
|
||||
uint32_t g_ecpri_test_sym_id = 0; /* ECS_RFM0: 0xB7E32008(2) */
|
||||
|
||||
/* eCPRI test ECS_RFM0 result */
|
||||
EcpriTestResult_t g_ecpri_test_result0 = {0};
|
||||
#endif
|
||||
|
||||
#ifdef ECS_RFM1
|
||||
/* eCPRI test ECS_RFM1 flag */
|
||||
uint32_t g_ecpri_test_flag1 = 0; /* ECS_RFM1: 0xB7E42000(0) */
|
||||
|
||||
/* eCPRI test ECS_RFM1 result */
|
||||
EcpriTestResult_t g_ecpri_test_result1 = {0};
|
||||
#endif
|
||||
|
||||
|
||||
/* -------------------------------------------------- <FUNC DEF> --------------------------------------------------- */
|
||||
/**********************************************************************************************************************
|
||||
* Function: fh_data_init
|
||||
* Description: fronthaul data init
|
||||
* Input: none
|
||||
* Output: none
|
||||
* Return: operation result - success or failure.
|
||||
* Others: none
|
||||
**********************************************************************************************************************/
|
||||
int32_t fh_data_init(void)
|
||||
{
|
||||
#ifdef ECS_RFM0
|
||||
ecpri_test_ecs0_init();
|
||||
#endif
|
||||
|
||||
#ifdef ECS_RFM1
|
||||
ecpri_test_ecs1_init();
|
||||
#endif
|
||||
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
/**********************************************************************************************************************
|
||||
* Function: fh_drv_init
|
||||
* Description: fronthaul driver init
|
||||
* Input: none
|
||||
* Output: none
|
||||
* Return: operation result - success or failure.
|
||||
* Others: none
|
||||
**********************************************************************************************************************/
|
||||
int32_t fh_drv_init(void)
|
||||
{
|
||||
#ifdef ECS_RFM1
|
||||
/* eCPRI init */
|
||||
ecpri_init(ECPRI_OPTION_25G);
|
||||
#endif
|
||||
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
/**********************************************************************************************************************
|
||||
* Function: fh_csu_test_init
|
||||
* Description: fronthaul CSU test init
|
||||
* Input: none
|
||||
* Output: none
|
||||
* Return: operation result - success or failure.
|
||||
* Others: none
|
||||
**********************************************************************************************************************/
|
||||
int32_t fh_csu_test_init(void)
|
||||
{
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
/**********************************************************************************************************************
|
||||
* Function: fh_data_check
|
||||
* Description: fronthaul data check
|
||||
* Input:
|
||||
* <name> <type> <desc>
|
||||
* times uint32_t check times
|
||||
* Output: none
|
||||
* Return: none
|
||||
* Others: none
|
||||
**********************************************************************************************************************/
|
||||
void fh_data_check(uint32_t times)
|
||||
{
|
||||
#ifdef ECS_RFM0
|
||||
ecpri_test_ecs0_status_check();
|
||||
#endif
|
||||
|
||||
#ifdef ECS_RFM1
|
||||
ecpri_test_ecs1_status_check();
|
||||
#endif
|
||||
}
|
||||
|
||||
/**********************************************************************************************************************
|
||||
* Function: fh_test_case
|
||||
* Description: fronthaul test case
|
||||
* Input: none
|
||||
* Output: none
|
||||
* Return: none
|
||||
* Others: none
|
||||
**********************************************************************************************************************/
|
||||
void fh_test_case(void)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef ECS_RFM0
|
||||
/**********************************************************************************************************************
|
||||
* Function: ecpri_test_ecs0_init
|
||||
* Description: eCPRI test ECS_RFM0 init
|
||||
* Input: none
|
||||
* Output: none
|
||||
* Return: none
|
||||
* Others: none
|
||||
**********************************************************************************************************************/
|
||||
void ecpri_test_ecs0_init(void)
|
||||
{
|
||||
memset_ucp((void *)&g_ecpri_test_result0, 0, sizeof(g_ecpri_test_result0));
|
||||
|
||||
/* send flag init(symbol interrupt) */
|
||||
debug_write(ECPRI_DBG_IDX0(64), 0); /* ECS_RFM0: 0xB7E30100(64) */
|
||||
/* send length init */
|
||||
debug_write(ECPRI_DBG_IDX0(65), 0); /* ECS_RFM0: 0xB7E30104(65) */
|
||||
|
||||
/* ECS_RFM0 test flag init */
|
||||
debug_write(ECPRI_TEST_IDX0(0), g_ecpri_test_flag0); /* ECS_RFM0: 0xB7E32000(0) */
|
||||
/* antenna index init */
|
||||
debug_write(ECPRI_TEST_IDX0(1), g_ecpri_test_ant_id); /* ECS_RFM0: 0xB7E32004(1) */
|
||||
/* symbol index init */
|
||||
debug_write(ECPRI_TEST_IDX0(2), g_ecpri_test_sym_id); /* ECS_RFM0: 0xB7E32008(2) */
|
||||
}
|
||||
|
||||
/**********************************************************************************************************************
|
||||
* Function: ecpri_test_pl_pkt_proc
|
||||
* Description: eCPRI test PL packet process
|
||||
* Input:
|
||||
* <name> <type> <desc>
|
||||
* pkt_addr uint32_t packet address
|
||||
* pkt_len uint16_t packet length
|
||||
* Output: none
|
||||
* Return: none
|
||||
* Others: none
|
||||
**********************************************************************************************************************/
|
||||
void ecpri_test_pl_pkt_proc(uint32_t pkt_addr, uint16_t pkt_len)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
/**********************************************************************************************************************
|
||||
* Function: ecpri_test_ecs0_status_check
|
||||
* Description: eCPRI test ECS_RFM0 status check
|
||||
* Input: none
|
||||
* Output: none
|
||||
* Return: none
|
||||
* Others: none
|
||||
**********************************************************************************************************************/
|
||||
void ecpri_test_ecs0_status_check(void)
|
||||
{
|
||||
/* return value */
|
||||
int32_t ret = 0;
|
||||
/* antenna number */
|
||||
uint32_t ant_num = 1;
|
||||
/* symbol number */
|
||||
uint32_t sym_num = 1;
|
||||
/* count index */
|
||||
uint8_t i = 0;
|
||||
uint8_t j = 0;
|
||||
|
||||
/* get ECS_RFM0 test flag */
|
||||
g_ecpri_test_flag0 = do_read_volatile((void *)ECPRI_TEST_ADDR0(0)); /* ECS_RFM0: 0xB7E32000(0) */
|
||||
if (0 == g_ecpri_test_flag0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
/* get test antenna index */
|
||||
g_ecpri_test_ant_id = do_read_volatile((void *)ECPRI_TEST_ADDR0(1)); /* ECS_RFM0: 0xB7E32004(1) */
|
||||
if (ECPRI_ANT_NUM <= g_ecpri_test_ant_id)
|
||||
{
|
||||
ant_num = ECPRI_ANT_NUM;
|
||||
}
|
||||
|
||||
/* get test symbol index */
|
||||
g_ecpri_test_sym_id = do_read_volatile((void *)ECPRI_TEST_ADDR0(2)); /* ECS_RFM0: 0xB7E32008(2) */
|
||||
if (ECPRI_SYM_NUM <= g_ecpri_test_sym_id)
|
||||
{
|
||||
sym_num = ECPRI_SYM_NUM;
|
||||
}
|
||||
|
||||
for (i = 0; i < ant_num; i++)
|
||||
{
|
||||
for (j = 0; j < sym_num; j++)
|
||||
{
|
||||
g_ecpri_test_result0.test_times++;
|
||||
|
||||
if ((1 == ant_num) && (1 == sym_num))
|
||||
{
|
||||
ret = ecpri_sym_irq_send(g_ecpri_test_ant_id, 0, g_ecpri_test_sym_id);
|
||||
}
|
||||
else if ((1 == ant_num) && (ECPRI_SYM_NUM == sym_num))
|
||||
{
|
||||
ret = ecpri_sym_irq_send(g_ecpri_test_ant_id, 0, j);
|
||||
}
|
||||
else if ((ECPRI_ANT_NUM == ant_num) && (1 == sym_num))
|
||||
{
|
||||
ret = ecpri_sym_irq_send(i, 0, g_ecpri_test_sym_id);
|
||||
}
|
||||
else
|
||||
{
|
||||
ret = ecpri_sym_irq_send(i, 0, j);
|
||||
}
|
||||
|
||||
if (SUCCESS == ret)
|
||||
{
|
||||
g_ecpri_test_result0.succ_times++;
|
||||
}
|
||||
else
|
||||
{
|
||||
g_ecpri_test_result0.fail_times++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* eCPRI test ECS_RFM0 result update */
|
||||
ecpri_test_ecs0_result_update();
|
||||
|
||||
/* clear ECS_RFM0 test flag */
|
||||
g_ecpri_test_flag0 = 0;
|
||||
debug_write(ECPRI_TEST_IDX0(0), g_ecpri_test_flag0); /* ECS_RFM0: 0xB7E32000(0) */
|
||||
}
|
||||
|
||||
/**********************************************************************************************************************
|
||||
* Function: ecpri_test_ecs0_result_update
|
||||
* Description: eCPRI test ECS_RFM0 result update
|
||||
* Input: none
|
||||
* Output: none
|
||||
* Return: none
|
||||
* Others: none
|
||||
**********************************************************************************************************************/
|
||||
void ecpri_test_ecs0_result_update(void)
|
||||
{
|
||||
debug_write(ECPRI_TEST_IDX0(4), g_ecpri_test_result0.test_times); /* ECS_RFM0: 0xB7E32010(4) */
|
||||
debug_write(ECPRI_TEST_IDX0(5), g_ecpri_test_result0.succ_times); /* ECS_RFM0: 0xB7E32014(5) */
|
||||
debug_write(ECPRI_TEST_IDX0(6), g_ecpri_test_result0.fail_times); /* ECS_RFM0: 0xB7E32018(6) */
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef ECS_RFM1
|
||||
/**********************************************************************************************************************
|
||||
* Function: ecpri_test_ecs1_init
|
||||
* Description: eCPRI test ECS_RFM1 init
|
||||
* Input: none
|
||||
* Output: none
|
||||
* Return: none
|
||||
* Others: none
|
||||
**********************************************************************************************************************/
|
||||
void ecpri_test_ecs1_init(void)
|
||||
{
|
||||
/* antenna index */
|
||||
uint8_t ant_id = 0;
|
||||
/* slot type */
|
||||
uint8_t slot_type = 0;
|
||||
/* symbol index */
|
||||
uint8_t sym_id = 0;
|
||||
/* count index */
|
||||
uint16_t i = 0;
|
||||
|
||||
/* eCPRI buffer clear */
|
||||
memset_ucp((void *)ECPRI_BUF_ADDR, 0x00, ECPRI_BUF_SIZE);
|
||||
|
||||
/* data conversion */
|
||||
for (ant_id = 0; ant_id < ECPRI_ANT_NUM; ant_id++)
|
||||
{
|
||||
for (sym_id = 0; sym_id < ECPRI_SYM_NUM; sym_id++)
|
||||
{
|
||||
HTON_L(g_fdd_ecpri_ant_cfg_data[ant_id].fdd_symx[sym_id].fdd_ecpri_head.vlan_tag);
|
||||
HTON_S(g_fdd_ecpri_ant_cfg_data[ant_id].fdd_symx[sym_id].fdd_ecpri_head.ether_type);
|
||||
HTON_S(g_fdd_ecpri_ant_cfg_data[ant_id].fdd_symx[sym_id].fdd_ecpri_head.payload_size);
|
||||
|
||||
for (i = 0; i < FDD_ECPRI_SYMX_COMP_LEN; i++)
|
||||
{
|
||||
HTON_L(g_fdd_ecpri_ant_cfg_data[ant_id].fdd_symx[sym_id].fdd_symx_data[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* eCPRI antenna config */
|
||||
for (ant_id = 0; ant_id < ECPRI_ANT_NUM; ant_id++)
|
||||
{
|
||||
for (slot_type = 0; slot_type < ECPRI_SLOT_TYPE; slot_type++)
|
||||
{
|
||||
for (sym_id = 0; sym_id < ECPRI_SYM_NUM; sym_id++)
|
||||
{
|
||||
ecpri_ant_cfg(ant_id, slot_type, sym_id,
|
||||
(uint32_t)(&g_fdd_ecpri_ant_cfg_data[ant_id].fdd_symx[sym_id]), FDD_ECPRI_SYMX_PKT_LEN);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
memset_ucp((void *)&g_ecpri_test_result1, 0, sizeof(g_ecpri_test_result1));
|
||||
|
||||
/* ECS_RFM1 test flag init */
|
||||
debug_write(ECPRI_TEST_IDX1(0), g_ecpri_test_flag1); /* ECS_RFM1: 0xB7E42000(0) */
|
||||
}
|
||||
|
||||
/**********************************************************************************************************************
|
||||
* Function: ecpri_test_ecs1_status_check
|
||||
* Description: eCPRI test ECS_RFM1 status check
|
||||
* Input: none
|
||||
* Output: none
|
||||
* Return: none
|
||||
* Others: none
|
||||
**********************************************************************************************************************/
|
||||
void ecpri_test_ecs1_status_check(void)
|
||||
{
|
||||
/* get ECS_RFM1 test flag */
|
||||
g_ecpri_test_flag1 = do_read_volatile((void *)ECPRI_TEST_ADDR1(0)); /* ECS_RFM1: 0xB7E42000(0) */
|
||||
if (0 == g_ecpri_test_flag1)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
/* eCPRI test ECS_RFM1 result update */
|
||||
ecpri_test_ecs1_result_update();
|
||||
|
||||
/* clear ECS_RFM1 test flag */
|
||||
g_ecpri_test_flag1 = 0;
|
||||
debug_write(ECPRI_TEST_IDX1(0), g_ecpri_test_flag1); /* ECS_RFM1: 0xB7E42000(0) */
|
||||
}
|
||||
|
||||
/**********************************************************************************************************************
|
||||
* Function: ecpri_test_ecs1_result_update
|
||||
* Description: eCPRI test ECS_RFM1 result update
|
||||
* Input: none
|
||||
* Output: none
|
||||
* Return: none
|
||||
* Others: none
|
||||
**********************************************************************************************************************/
|
||||
void ecpri_test_ecs1_result_update(void)
|
||||
{
|
||||
debug_write(ECPRI_TEST_IDX1(4), g_ecpri_test_result1.test_times); /* ECS_RFM1: 0xB7E42010(4) */
|
||||
debug_write(ECPRI_TEST_IDX1(5), g_ecpri_test_result1.succ_times); /* ECS_RFM1: 0xB7E42014(5) */
|
||||
debug_write(ECPRI_TEST_IDX1(6), g_ecpri_test_result1.fail_times); /* ECS_RFM1: 0xB7E42018(6) */
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
|
116251
public/test/testcases/case112/fronthaul/src/ecpri_test_case112_antdata.s.c
Normal file
116251
public/test/testcases/case112/fronthaul/src/ecpri_test_case112_antdata.s.c
Normal file
File diff suppressed because it is too large
Load Diff
60
public/test/testcases/case112/osp/src/ape_test_case112.s.c
Normal file
60
public/test/testcases/case112/osp/src/ape_test_case112.s.c
Normal file
@ -0,0 +1,60 @@
|
||||
// +FHDR------------------------------------------------------------
|
||||
// Copyright (c) 2022 SmartLogic.
|
||||
// ALL RIGHTS RESERVED
|
||||
// -----------------------------------------------------------------
|
||||
// Filename : ape_test_case112.s.c
|
||||
// Author :
|
||||
// Created On : 2023-12-22
|
||||
// Last Modified :
|
||||
// -----------------------------------------------------------------
|
||||
// Description:
|
||||
//
|
||||
//
|
||||
// -FHDR------------------------------------------------------------
|
||||
|
||||
#include "typedef.h"
|
||||
#include "osp_task.h"
|
||||
#include "osp_timer.h"
|
||||
#include "ucp_printf.h"
|
||||
|
||||
|
||||
void ape0_test_task_reg(void)
|
||||
{
|
||||
return ;
|
||||
}
|
||||
|
||||
void ape1_test_task_reg(void)
|
||||
{
|
||||
return ;
|
||||
}
|
||||
|
||||
void ape2_test_task_reg(void)
|
||||
{
|
||||
return ;
|
||||
}
|
||||
|
||||
void ape3_test_task_reg(void)
|
||||
{
|
||||
return ;
|
||||
}
|
||||
|
||||
void ape4_test_task_reg(void)
|
||||
{
|
||||
return ;
|
||||
}
|
||||
|
||||
void ape5_test_task_reg(void)
|
||||
{
|
||||
return ;
|
||||
}
|
||||
|
||||
void ape6_test_task_reg(void)
|
||||
{
|
||||
return ;
|
||||
}
|
||||
|
||||
void ape7_test_task_reg(void)
|
||||
{
|
||||
return ;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user