Merge branch 'dev_ck_v2.1_feature#1557#' into 'dev_ck_v2.1'

feature enhancement #1557#

See merge request ucp/driver/ucp4008_platform_spu!81
This commit is contained in:
Xianfeng Du 2024-01-05 05:33:54 +00:00
commit bc54263f34
20 changed files with 167 additions and 83 deletions

View File

@ -32,7 +32,7 @@ typedef struct _tagJesdCsuPara
uint8_t nTotal; // n+cs+padding uint8_t nTotal; // n+cs+padding
uint8_t seq; uint8_t seq;
uint8_t margin; uint8_t margin;
uint8_t reserved; uint8_t tfMode;
}stJesdCsuPara; }stJesdCsuPara;
// 链表节点结构体定义 // 链表节点结构体定义
@ -48,12 +48,13 @@ typedef struct _tagJesdCsuNodePara
uint8_t antNum: 线 uint8_t antNum: 线
uint8_t margin: jesd csu一次搬移的数据量xnum=(32*2^margin)Bmargin值allnum/xnum是个整数值 uint8_t margin: jesd csu一次搬移的数据量xnum=(32*2^margin)Bmargin值allnum/xnum是个整数值
uint8_t tfMode: tdd/fdd mode
0 : 0 :
-1: -1:
JESD CSU初始化 JESD CSU初始化
********************************************************************************************************************/ ********************************************************************************************************************/
int32_t jesd_csu_init(uint8_t antNum, uint8_t margin); int32_t jesd_csu_init(uint8_t antNum, uint8_t margin, uint8_t tfMode);
/******************************************************************************************************************* /*******************************************************************************************************************
jesd_orx_csu_init jesd_orx_csu_init

View File

@ -51,6 +51,24 @@ typedef struct _tagFrontHaulDrvPara
uint32_t mapOption; // CpriMapType uint32_t mapOption; // CpriMapType
}stFrontHaulDrvPara; }stFrontHaulDrvPara;
typedef enum _tagScsID
{
LTE_SCS_ID = 0,
NR_SCS_30K,
NR_SCS_60K,
NR_SCS_120K,
SCS_NULL = 0xFFFF
}numScsID;
typedef enum _tagFrameType
{
FDD_MODE = 0,
TDD_MODE = 1,
TDD_2500US_DOUBLE = 2,
FRAME_NULL = 0xFFFF
}numFrameType;
/* /*
fronthaul_drv_cfg fronthaul_drv_cfg
stFrontHaulDrvPara* pFhDrvPara stFrontHaulDrvPara* pFhDrvPara
@ -227,6 +245,15 @@ int32_t set_cpri_rru_msg(CpriRruMsg_t rru_msg);
*/ */
int32_t phy_sniffer_start(); int32_t phy_sniffer_start();
/*
spu_ddr_monitor_start
uint32_t monitorCnt:
ddr监控功能
*/
void spu_ddr_monitor_start(uint32_t monitorCnt);
/**************************************************/ /**************************************************/
/* ape csu相关 */ /* ape csu相关 */
/**************************************************/ /**************************************************/

View File

@ -33,7 +33,7 @@ typedef struct _tagJesdCsuPara
uint8_t nTotal; // n+cs+padding uint8_t nTotal; // n+cs+padding
uint8_t seq; uint8_t seq;
uint8_t margin; uint8_t margin;
uint8_t reserved; uint8_t tfMode;
}stJesdCsuPara; }stJesdCsuPara;
typedef struct _tagJesdCsuNodePara typedef struct _tagJesdCsuNodePara
@ -49,7 +49,7 @@ typedef struct _tagJesdListPara
uint32_t listNodeNum; uint32_t listNodeNum;
}stJesdListPara; }stJesdListPara;
int32_t jesd_csu_init(uint8_t antNum, uint8_t margin); int32_t jesd_csu_init(uint8_t antNum, uint8_t margin, uint8_t tfMode);
int32_t jesd_orx_csu_init(void); int32_t jesd_orx_csu_init(void);
@ -73,6 +73,8 @@ int32_t jesd_csu_rx_list_init(uint32_t listAddr, uint32_t nodeNum, stJesdCsuNode
int32_t jesd_csu_tx_list_init(uint32_t listAddr, uint32_t nodeNum, stJesdCsuNodePara* pListNode, uint8_t nChId, uint8_t nListId); int32_t jesd_csu_tx_list_init(uint32_t listAddr, uint32_t nodeNum, stJesdCsuNodePara* pListNode, uint8_t nChId, uint8_t nListId);
int32_t jesd_csu_rx_list_desc0_flush(uint8_t nChId, uint8_t nListId);
int32_t jesd_csu_rx_dmaReg_Cfg(uint8_t nChId, uint8_t nListId); int32_t jesd_csu_rx_dmaReg_Cfg(uint8_t nChId, uint8_t nListId);
int32_t jesd_csu_tx_dmaReg_Cfg(uint8_t nChId, uint8_t nListId); int32_t jesd_csu_tx_dmaReg_Cfg(uint8_t nChId, uint8_t nListId);

View File

@ -34,6 +34,9 @@ int32_t jesd_csu_init_nr_fdd();
int32_t jesd_csu_init_nr_fdd_slot0(); int32_t jesd_csu_init_nr_fdd_slot0();
int32_t jesd_csu_init_nr_fdd_rx_slot2();
#if 0 #if 0
int32_t jesd_csu_init_nr_7ds2u_iomode(); int32_t jesd_csu_init_nr_7ds2u_iomode();
int32_t jesd_csu_init_nr_7ds2u_8t8r(); int32_t jesd_csu_init_nr_7ds2u_8t8r();

View File

@ -11,6 +11,8 @@ void check_10ms_offset(void);
int32_t fronthaul_drv_cfg(stFrontHaulDrvPara* pFhDrvPara); int32_t fronthaul_drv_cfg(stFrontHaulDrvPara* pFhDrvPara);
void spu_ddr_monitor_start(uint32_t monitorCnt);
#endif #endif

View File

@ -15,7 +15,7 @@ stJesdListPara gJesdRxListPara[JESD_CH_NUM][JESD_LIST_NUM];
uint32_t gJesdOrxCsuIntCnt = 0; uint32_t gJesdOrxCsuIntCnt = 0;
uint32_t gJesdListInitFinished = 0; uint32_t gJesdListInitFinished = 0;
extern uint32_t gJesdTFMode; //extern uint32_t gJesdTFMode;
extern void phy_sniffer_data_proc(); extern void phy_sniffer_data_proc();
void isr_jesd_orx_csu() void isr_jesd_orx_csu()
@ -38,7 +38,7 @@ void isr_jesd_orx_csu()
} }
} }
int32_t jesd_csu_init(uint8_t antNum, uint8_t margin) int32_t jesd_csu_init(uint8_t antNum, uint8_t margin, uint8_t tfMode)
{ {
if ((0 == antNum) || (8 < antNum)) if ((0 == antNum) || (8 < antNum))
{ {
@ -80,6 +80,7 @@ int32_t jesd_csu_init(uint8_t antNum, uint8_t margin)
} }
gJesdCsuPara.seq = antNum; gJesdCsuPara.seq = antNum;
gJesdCsuPara.margin = margin; gJesdCsuPara.margin = margin;
gJesdCsuPara.tfMode = tfMode;
// [ 1: 0] -> CS // [ 1: 0] -> CS
// [ 6: 4] -> Margin // [ 6: 4] -> Margin
@ -255,16 +256,13 @@ int32_t jesd_csu_rx_list_init(uint32_t listAddr, uint32_t nodeNum, stJesdCsuNode
int32_t i = 0; int32_t i = 0;
for(i = 0; i < nodeNum; i++) for(i = 0; i < nodeNum; i++)
{ {
if ((FDD_MODE != gJesdTFMode) && (1 != orxFlag)) if (0 == i)
{ {
if (0 == i) rxListCmdL = (1<<4)+(0<<5)+(3<<6)+(1<<23);
{ }
rxListCmdL = (1<<4)+(0<<5)+(3<<6)+(1<<23); else
} {
else rxListCmdL = (1<<4)+(0<<5)+(3<<6);
{
rxListCmdL = (1<<4)+(0<<5)+(3<<6);
}
} }
uint32_t yStep = (1 == orxFlag) ? (0x20 * (1<<mrg)) : (pListNode[i].yStep); uint32_t yStep = (1 == orxFlag) ? (0x20 * (1<<mrg)) : (pListNode[i].yStep);
// src // src
@ -279,9 +277,9 @@ int32_t jesd_csu_rx_list_init(uint32_t listAddr, uint32_t nodeNum, stJesdCsuNode
stLinkDesc.dmaZStep = 0x20; stLinkDesc.dmaZStep = 0x20;
stLinkDesc.dmaAllNum = pListNode[i].allNum; stLinkDesc.dmaAllNum = pListNode[i].allNum;
if ((FDD_MODE != gJesdTFMode) && (1 != orxFlag)) if ((FDD_MODE != gJesdCsuPara.tfMode) && (1 != orxFlag))
{ {
stLinkDesc.dmaCGran = 1; stLinkDesc.dmaCGran = 1; // endframe mode
} }
else else
{ {
@ -366,7 +364,7 @@ int32_t jesd_csu_tx_list_init(uint32_t listAddr, uint32_t nodeNum, stJesdCsuNode
stLinkDesc.dmaZStep = 0x20; stLinkDesc.dmaZStep = 0x20;
stLinkDesc.dmaAllNum = pListNode[i].allNum; stLinkDesc.dmaAllNum = pListNode[i].allNum;
stLinkDesc.dmaSize = 0; // 0x8;// stLinkDesc.dmaSize = 0; // 0x8;//
if (FDD_MODE == gJesdTFMode) if (FDD_MODE == gJesdCsuPara.tfMode)
{ {
stLinkDesc.dmaCGran = 0; stLinkDesc.dmaCGran = 0;
} }
@ -383,6 +381,25 @@ int32_t jesd_csu_tx_list_init(uint32_t listAddr, uint32_t nodeNum, stJesdCsuNode
return 0; return 0;
} }
// 链表第一个节点置位flush清latch
int32_t jesd_csu_rx_list_desc0_flush(uint8_t nChId, uint8_t nListId)
{
// 设置链表节点cmd
// bit4=1多维DMA
// bit5=0普通模式
// bit[7:6]=3该DMA可跟随上一个DMA下一个DMA可跟随本DMA
uint32_t rxListCmdL = (1<<4)+(0<<5)+(3<<6);
stCsuLinkDesc1L3D* pLinkDesc = (stCsuLinkDesc1L3D*)gJesdRxListPara[nChId][nListId].listAddr;
pLinkDesc->cmdFifoL = rxListCmdL;
debug_write((DBG_DDR_IDX_DRV_BASE+124), rxListCmdL); // 0x1F0
debug_write((DBG_DDR_IDX_DRV_BASE+125), (uint32_t)(pLinkDesc)); // 0x110
return 0;
}
int32_t jesd_csu_rx_dmaReg_Cfg(uint8_t nChId, uint8_t nListId) // uint32_t listAddr, uint32_t nodeNum) int32_t jesd_csu_rx_dmaReg_Cfg(uint8_t nChId, uint8_t nListId) // uint32_t listAddr, uint32_t nodeNum)
{ {
if ((JESD_CH_NUM <= nChId) || (JESD_LIST_NUM <= nListId)) if ((JESD_CH_NUM <= nChId) || (JESD_LIST_NUM <= nListId))
@ -421,7 +438,6 @@ int32_t jesd_csu_rx_start_ch(uint8_t nChId, uint8_t nListId)
{ {
return -1; // list not init return -1; // list not init
} }
gJesdListInitFinished++;
stCsuDmaCmdL cpriCmdL; stCsuDmaCmdL cpriCmdL;
*(uint32_t*)(&cpriCmdL) = 0; *(uint32_t*)(&cpriCmdL) = 0;
@ -443,6 +459,8 @@ int32_t jesd_csu_rx_start_ch(uint8_t nChId, uint8_t nListId)
do_write(&(JS_CSU_CMDHIGHDATA), 0); do_write(&(JS_CSU_CMDHIGHDATA), 0);
do_write(((uint32_t*)&(JS_CSU_CMDFIFO0)+(nChId<<1)), *(uint32_t*)(&cpriCmdL)); do_write(((uint32_t*)&(JS_CSU_CMDFIFO0)+(nChId<<1)), *(uint32_t*)(&cpriCmdL));
gJesdListInitFinished++;
return 0; return 0;
} }

View File

@ -1,10 +1,10 @@
#include "jesd_csu_lte_fdd.h" #include "jesd_csu_lte_fdd.h"
#include "jesd_csu.h" #include "jesd_csu.h"
#include "phy_para.h"
int32_t jesd_csu_init_lte_fdd() int32_t jesd_csu_init_lte_fdd()
{ {
jesd_csu_init(JESD_LTEFDD_ANT_NUM, JESD_LTEFDD_MARGIN); jesd_csu_init(JESD_LTEFDD_ANT_NUM, JESD_LTEFDD_MARGIN, FDD_MODE);
stJesdCsuNodePara txCsuNode[JESD_LTEFDD_TX_NODENUM]; stJesdCsuNodePara txCsuNode[JESD_LTEFDD_TX_NODENUM];
stJesdCsuNodePara rxCsuNode[JESD_LTEFDD_RX_NODENUM]; stJesdCsuNodePara rxCsuNode[JESD_LTEFDD_RX_NODENUM];
//tx的链表地址 //tx的链表地址
@ -51,7 +51,7 @@ int32_t jesd_csu_init_lte_fdd()
int32_t jesd_csu_init_lte_fdd_slot0() int32_t jesd_csu_init_lte_fdd_slot0()
{ {
jesd_csu_init(JESD_LTEFDD_ANT_NUM, JESD_LTEFDD_MARGIN); jesd_csu_init(JESD_LTEFDD_ANT_NUM, JESD_LTEFDD_MARGIN, FDD_MODE);
stJesdCsuNodePara txCsuNode[JESD_LTEFDD_TX_NODENUM]; stJesdCsuNodePara txCsuNode[JESD_LTEFDD_TX_NODENUM];
stJesdCsuNodePara rxCsuNode[JESD_LTEFDD_RX_NODENUM]; stJesdCsuNodePara rxCsuNode[JESD_LTEFDD_RX_NODENUM];
//tx的链表地址 //tx的链表地址

View File

@ -1,10 +1,10 @@
#include "jesd_csu_nr_7ds2u.h" #include "jesd_csu_nr_7ds2u.h"
#include "jesd_csu.h" #include "jesd_csu.h"
#include "phy_para.h"
int32_t jesd_csu_init_nr_7ds2u() int32_t jesd_csu_init_nr_7ds2u()
{ {
jesd_csu_init(JESD_NR7DS2U_ANT_NUM, JESD_NR7DS2U_MARGIN); jesd_csu_init(JESD_NR7DS2U_ANT_NUM, JESD_NR7DS2U_MARGIN, TDD_MODE);
stJesdCsuNodePara txCsuNode[JESD_NR7DS2U_TX_NODENUM]; stJesdCsuNodePara txCsuNode[JESD_NR7DS2U_TX_NODENUM];
stJesdCsuNodePara rxCsuNode[JESD_NR7DS2U_RX_NODENUM]; stJesdCsuNodePara rxCsuNode[JESD_NR7DS2U_RX_NODENUM];
//tx的链表地址 //tx的链表地址
@ -73,7 +73,7 @@ int32_t jesd_csu_init_nr_7ds2u()
int32_t jesd_csu_init_nr_7d2u() int32_t jesd_csu_init_nr_7d2u()
{ {
jesd_csu_init(JESD_NR7DS2U_ANT_NUM, JESD_NR7DS2U_MARGIN); jesd_csu_init(JESD_NR7DS2U_ANT_NUM, JESD_NR7DS2U_MARGIN, TDD_MODE);
stJesdCsuNodePara txCsuNode[JESD_NR7DS2U_TX_NODENUM]; stJesdCsuNodePara txCsuNode[JESD_NR7DS2U_TX_NODENUM];
stJesdCsuNodePara rxCsuNode[JESD_NR7DS2U_RX_NODENUM]; stJesdCsuNodePara rxCsuNode[JESD_NR7DS2U_RX_NODENUM];
//tx的链表地址 //tx的链表地址
@ -138,7 +138,7 @@ int32_t jesd_csu_init_nr_7d2u()
int32_t jesd_csu_init_nr_7d2u_slot0() int32_t jesd_csu_init_nr_7d2u_slot0()
{ {
jesd_csu_init(JESD_NR7DS2U_ANT_NUM, JESD_NR7DS2U_MARGIN); jesd_csu_init(JESD_NR7DS2U_ANT_NUM, JESD_NR7DS2U_MARGIN, TDD_MODE);
stJesdCsuNodePara txCsuNode[JESD_NR7DS2U_TX_NODENUM]; stJesdCsuNodePara txCsuNode[JESD_NR7DS2U_TX_NODENUM];
stJesdCsuNodePara rxCsuNode[JESD_NR7DS2U_RX_NODENUM]; stJesdCsuNodePara rxCsuNode[JESD_NR7DS2U_RX_NODENUM];
//tx的链表地址 //tx的链表地址
@ -203,7 +203,7 @@ int32_t jesd_csu_init_nr_7d2u_slot0()
int32_t jesd_csu_init_nr_7ds2u_iomode() int32_t jesd_csu_init_nr_7ds2u_iomode()
{ {
jesd_csu_init(JESD_NR7DS2U_ANT_NUM, JESD_NR7DS2U_MARGIN); jesd_csu_init(JESD_NR7DS2U_ANT_NUM, JESD_NR7DS2U_MARGIN, TDD_MODE);
stJesdCsuNodePara txCsuNode[20]; stJesdCsuNodePara txCsuNode[20];
stJesdCsuNodePara rxCsuNode[20]; stJesdCsuNodePara rxCsuNode[20];
//tx的链表地址 //tx的链表地址
@ -272,7 +272,7 @@ int32_t jesd_csu_init_nr_7ds2u_iomode()
int32_t jesd_csu_init_nr_7ds2u_8t8r() int32_t jesd_csu_init_nr_7ds2u_8t8r()
{ {
jesd_csu_init(8, JESD_NR7DS2U_MARGIN); jesd_csu_init(8, JESD_NR7DS2U_MARGIN, TDD_MODE);
stJesdCsuNodePara txCsuNode[JESD_NR7DS2U_TX_NODENUM]; stJesdCsuNodePara txCsuNode[JESD_NR7DS2U_TX_NODENUM];
stJesdCsuNodePara rxCsuNode[JESD_NR7DS2U_RX_NODENUM]; stJesdCsuNodePara rxCsuNode[JESD_NR7DS2U_RX_NODENUM];
//tx的链表地址 //tx的链表地址
@ -351,7 +351,7 @@ int32_t jesd_csu_init_nr_7ds2u_8t8r()
int32_t jesd_csu_init_nr_7ds2u_4t4r_98() int32_t jesd_csu_init_nr_7ds2u_4t4r_98()
{ {
jesd_csu_init(4, JESD_98_NR7DS2U_MARGIN); jesd_csu_init(4, JESD_98_NR7DS2U_MARGIN, TDD_MODE);
stJesdCsuNodePara txCsuNode[JESD_NR7DS2U_TX_NODENUM]; stJesdCsuNodePara txCsuNode[JESD_NR7DS2U_TX_NODENUM];
stJesdCsuNodePara rxCsuNode[JESD_NR7DS2U_RX_NODENUM]; stJesdCsuNodePara rxCsuNode[JESD_NR7DS2U_RX_NODENUM];
//tx的链表地址 //tx的链表地址
@ -423,7 +423,7 @@ int32_t jesd_csu_init_nr_7ds2u_4t4r_98()
// 4t4r, 245.76M // 4t4r, 245.76M
int32_t jesd_csu_init_nr_2500us_double() int32_t jesd_csu_init_nr_2500us_double()
{ {
jesd_csu_init(4, JESD_98_NR7DS2U_MARGIN); jesd_csu_init(4, JESD_98_NR7DS2U_MARGIN, TDD_2500US_DOUBLE);
stJesdCsuNodePara txCsuNode1[JESD_2500US_DOUBLE_TX_NODENUM1]; stJesdCsuNodePara txCsuNode1[JESD_2500US_DOUBLE_TX_NODENUM1];
stJesdCsuNodePara rxCsuNode1[JESD_2500US_DOUBLE_RX_NODENUM1]; stJesdCsuNodePara rxCsuNode1[JESD_2500US_DOUBLE_RX_NODENUM1];
stJesdCsuNodePara txCsuNode2[JESD_2500US_DOUBLE_TX_NODENUM2]; stJesdCsuNodePara txCsuNode2[JESD_2500US_DOUBLE_TX_NODENUM2];
@ -538,7 +538,7 @@ int32_t jesd_csu_init_nr_2500us_double()
// 4t4r, 245.76M, slot0 // 4t4r, 245.76M, slot0
int32_t jesd_csu_init_nr_2500us_double_slot0() int32_t jesd_csu_init_nr_2500us_double_slot0()
{ {
jesd_csu_init(4, JESD_98_NR7DS2U_MARGIN); jesd_csu_init(4, JESD_98_NR7DS2U_MARGIN, TDD_2500US_DOUBLE);
stJesdCsuNodePara txCsuNode1[JESD_2500US_DOUBLE_TX_NODENUM1]; stJesdCsuNodePara txCsuNode1[JESD_2500US_DOUBLE_TX_NODENUM1];
stJesdCsuNodePara rxCsuNode1[JESD_2500US_DOUBLE_RX_NODENUM1]; stJesdCsuNodePara rxCsuNode1[JESD_2500US_DOUBLE_RX_NODENUM1];
stJesdCsuNodePara txCsuNode2[JESD_2500US_DOUBLE_TX_NODENUM2]; stJesdCsuNodePara txCsuNode2[JESD_2500US_DOUBLE_TX_NODENUM2];
@ -669,12 +669,3 @@ int32_t jesd_sniffer_orx_csu_init()
return 0; return 0;
} }
#if 1
int32_t jesd_csu_start_nr_7ds2u()
{
//jesd_csu_start();
return 0;
}
#endif

View File

@ -1,10 +1,10 @@
#include "jesd_csu_nr_fdd.h" #include "jesd_csu_nr_fdd.h"
#include "jesd_csu.h" #include "jesd_csu.h"
#include "phy_para.h"
int32_t jesd_csu_init_nr_fdd() int32_t jesd_csu_init_nr_fdd()
{ {
jesd_csu_init(JESD_NRFDD_ANT_NUM, JESD_NRFDD_MARGIN); jesd_csu_init(JESD_NRFDD_ANT_NUM, JESD_NRFDD_MARGIN, FDD_MODE);
stJesdCsuNodePara txCsuNode[JESD_NRFDD_TX_NODENUM]; stJesdCsuNodePara txCsuNode[JESD_NRFDD_TX_NODENUM];
stJesdCsuNodePara rxCsuNode[JESD_NRFDD_RX_NODENUM]; stJesdCsuNodePara rxCsuNode[JESD_NRFDD_RX_NODENUM];
//tx的链表地址 //tx的链表地址
@ -51,7 +51,7 @@ int32_t jesd_csu_init_nr_fdd()
int32_t jesd_csu_init_nr_fdd_slot0() int32_t jesd_csu_init_nr_fdd_slot0()
{ {
jesd_csu_init(JESD_NRFDD_ANT_NUM, JESD_NRFDD_MARGIN); jesd_csu_init(JESD_NRFDD_ANT_NUM, JESD_NRFDD_MARGIN, FDD_MODE);
stJesdCsuNodePara txCsuNode[JESD_NRFDD_TX_NODENUM]; stJesdCsuNodePara txCsuNode[JESD_NRFDD_TX_NODENUM];
stJesdCsuNodePara rxCsuNode[JESD_NRFDD_RX_NODENUM]; stJesdCsuNodePara rxCsuNode[JESD_NRFDD_RX_NODENUM];
//tx的链表地址 //tx的链表地址
@ -96,12 +96,46 @@ int32_t jesd_csu_init_nr_fdd_slot0()
return 0; return 0;
} }
#if 0 int32_t jesd_csu_init_nr_fdd_rx_slot2()
int32_t jesd_csu_start_lte()
{ {
jesd_csu_start(); jesd_csu_init(JESD_NRFDD_ANT_NUM, JESD_NRFDD_MARGIN, FDD_MODE);
stJesdCsuNodePara txCsuNode[JESD_NRFDD_TX_NODENUM];
stJesdCsuNodePara rxCsuNode[JESD_NRFDD_RX_NODENUM];
//tx的链表地址
uint32_t txListAddr = JESD_NRFDD_TX_LIST_ADDR; // 0x8A000000
//rx的链表地址
uint32_t rxListAddr = JESD_NRFDD_RX_LIST_ADDR; // 0x8A008000
int32_t i = 0;
// tx/rx, subframe 0~9
for (i = 0; i < JESD_NRFDD_TX_NODENUM; i++)
{
if (0 == (i&0x1))
{
txCsuNode[i].dataAddr = JESD_NRFDD_TX_SLOT_EVEN_DATA_ADDR;
txCsuNode[i].yStep = (JESD_NRFDD_SLOT_SAM_CNT<<2);
txCsuNode[i].allNum = (JESD_NRFDD_SLOT_SAM_CNT<<2)*JESD_NRFDD_ANT_NUM;
}
else if (1 == (i&0x1))
{
txCsuNode[i].dataAddr = JESD_NRFDD_TX_SLOT_ODD_DATA_ADDR;
txCsuNode[i].yStep = (JESD_NRFDD_SLOT_SAM_CNT<<2);
txCsuNode[i].allNum = (JESD_NRFDD_SLOT_SAM_CNT<<2)*JESD_NRFDD_ANT_NUM;
}
rxCsuNode[i].dataAddr = JESD_NRFDD_RX_SLOT_EVEN_DATA_ADDR;
rxCsuNode[i].yStep = (JESD_NRFDD_SLOT_SAM_CNT<<2);
rxCsuNode[i].allNum = (JESD_NRFDD_SLOT_SAM_CNT<<2)*JESD_NRFDD_ANT_NUM;
}
rxCsuNode[2].dataAddr = JESD_NRFDD_RX_SLOT_ODD_DATA_ADDR;
rxCsuNode[2].yStep = (JESD_NRFDD_SLOT_SAM_CNT<<2);
rxCsuNode[2].allNum = (JESD_NRFDD_SLOT_SAM_CNT<<2)*JESD_NRFDD_ANT_NUM;
jesd_csu_tx_cfg(txListAddr, JESD_NRFDD_TX_NODENUM, txCsuNode, JESD_CSU_CH0, 0);
jesd_csu_rx_cfg(rxListAddr, JESD_NRFDD_RX_NODENUM, rxCsuNode, JESD_CSU_CH0, 0);
return 0; return 0;
} }
#endif

View File

@ -220,12 +220,12 @@ int32_t jesd_timer_get_csu_point(int32_t nTmrId, phy_timer_config_ind_t *my_jesd
&pMtimerTxPara->txCsuOn[0].pointM, &pMtimerTxPara->txCsuOn[0].pointH); &pMtimerTxPara->txCsuOn[0].pointM, &pMtimerTxPara->txCsuOn[0].pointH);
//pMtimerPara->rxCsuOn[0].timerPoint = (tdd*1000.0 - gCsuRxAdvanceNs - pJesdDelay->gps_offset*1000.0 - INT_DELAY*1000.0)/1000; //pMtimerPara->rxCsuOn[0].timerPoint = (tdd*1000.0 - gCsuRxAdvanceNs - pJesdDelay->gps_offset*1000.0 - INT_DELAY*1000.0)/1000;
pMtimerPara->rxCsuOn[0].timerPoint = tdd - gCsuRxAdvanceNs/1000 - pJesdDelay->gps_offset - INT_DELAY; pMtimerPara->rxCsuOn[0].timerPoint = tdd - gCsuRxAdvanceNs/1000 - pJesdDelay->gps_offset - INT_DELAY; // pJesdDelay->jesd_10ms2pp1s_txoffset;
get_jesd_timer_point_para(nTmrId, pMtimerPara->rxCsuOn[0].timerPoint, &pMtimerPara->rxCsuOn[0].pointL, get_jesd_timer_point_para(nTmrId, pMtimerPara->rxCsuOn[0].timerPoint, &pMtimerPara->rxCsuOn[0].pointL,
&pMtimerPara->rxCsuOn[0].pointM, &pMtimerPara->rxCsuOn[0].pointH); &pMtimerPara->rxCsuOn[0].pointM, &pMtimerPara->rxCsuOn[0].pointH);
debug_write((DBG_DDR_IDX_DRV_BASE+108+(0<<2)), pMtimerTxPara->txCsuOn[0].timerPoint); // 0x1b0 debug_write((DBG_DDR_IDX_DRV_BASE+48+(0<<2)), pMtimerTxPara->txCsuOn[0].timerPoint); // 0xC0
debug_write((DBG_DDR_IDX_DRV_BASE+110+(0<<2)), pMtimerPara->rxCsuOn[0].timerPoint); // 0x1b8 debug_write((DBG_DDR_IDX_DRV_BASE+50+(0<<2)), pMtimerPara->rxCsuOn[0].timerPoint); // 0xC8
} }
else else
{ {
@ -260,10 +260,10 @@ int32_t jesd_timer_get_csu_point(int32_t nTmrId, phy_timer_config_ind_t *my_jesd
get_jesd_timer_point_para(nTmrId, pMtimerPara->rxCsuOff[i].timerPoint, &pMtimerPara->rxCsuOff[i].pointL, get_jesd_timer_point_para(nTmrId, pMtimerPara->rxCsuOff[i].timerPoint, &pMtimerPara->rxCsuOff[i].pointL,
&pMtimerPara->rxCsuOff[i].pointM, &pMtimerPara->rxCsuOff[i].pointH); &pMtimerPara->rxCsuOff[i].pointM, &pMtimerPara->rxCsuOff[i].pointH);
debug_write((DBG_DDR_IDX_DRV_BASE+108+(i<<2)), pMtimerTxPara->txCsuOn[i].timerPoint); // 0x1b0 debug_write((DBG_DDR_IDX_DRV_BASE+48+(i<<2)), pMtimerTxPara->txCsuOn[i].timerPoint); // 0xC0
debug_write((DBG_DDR_IDX_DRV_BASE+109+(i<<2)), pMtimerTxPara->txCsuOff[i].timerPoint); // 0x1b4 debug_write((DBG_DDR_IDX_DRV_BASE+49+(i<<2)), pMtimerTxPara->txCsuOff[i].timerPoint); // 0xC4
debug_write((DBG_DDR_IDX_DRV_BASE+110+(i<<2)), pMtimerPara->rxCsuOn[i].timerPoint); // 0x1b8 debug_write((DBG_DDR_IDX_DRV_BASE+50+(i<<2)), pMtimerPara->rxCsuOn[i].timerPoint); // 0xC8
debug_write((DBG_DDR_IDX_DRV_BASE+111+(i<<2)), pMtimerPara->rxCsuOff[i].timerPoint); // 0x1bc debug_write((DBG_DDR_IDX_DRV_BASE+51+(i<<2)), pMtimerPara->rxCsuOff[i].timerPoint); // 0xCC
} }
} }
@ -321,10 +321,10 @@ int32_t jesd_timer_get_rf_point(int32_t nTmrId, phy_timer_config_ind_t *my_jesdt
get_jesd_timer_point_para(nTmrId, pMtimerPara->rxRfOff[i].timerPoint, &pMtimerPara->rxRfOff[i].pointL, get_jesd_timer_point_para(nTmrId, pMtimerPara->rxRfOff[i].timerPoint, &pMtimerPara->rxRfOff[i].pointL,
&pMtimerPara->rxRfOff[i].pointM, &pMtimerPara->rxRfOff[i].pointH); &pMtimerPara->rxRfOff[i].pointM, &pMtimerPara->rxRfOff[i].pointH);
debug_write((DBG_DDR_IDX_DRV_BASE+100+(i<<2)), pMtimerPara->txRfOn[i].timerPoint); // 0x190 debug_write((DBG_DDR_IDX_DRV_BASE+56+(i<<2)), pMtimerPara->txRfOn[i].timerPoint); // 0xE0
debug_write((DBG_DDR_IDX_DRV_BASE+101+(i<<2)), pMtimerPara->txRfOff[i].timerPoint);// 0x194 debug_write((DBG_DDR_IDX_DRV_BASE+57+(i<<2)), pMtimerPara->txRfOff[i].timerPoint);// 0xE4
debug_write((DBG_DDR_IDX_DRV_BASE+102+(i<<2)), pMtimerPara->rxRfOn[i].timerPoint); // 0x198 debug_write((DBG_DDR_IDX_DRV_BASE+58+(i<<2)), pMtimerPara->rxRfOn[i].timerPoint); // 0xE8
debug_write((DBG_DDR_IDX_DRV_BASE+103+(i<<2)), pMtimerPara->rxRfOff[i].timerPoint);// 0x19c debug_write((DBG_DDR_IDX_DRV_BASE+59+(i<<2)), pMtimerPara->rxRfOff[i].timerPoint);// 0xEC
} }
return 0; return 0;
@ -395,9 +395,6 @@ int32_t jesd_timer_reconfig(int32_t nTmrId, phy_timer_config_ind_t *my_jesdtmr)
} }
__ucps2_synch(0); __ucps2_synch(0);
//jesd_timer_get_csu_point(nTmrId, my_jesdtmr);
//jesd_timer_get_rf_point(nTmrId, my_jesdtmr);
while (JESD_TRANS_INIT != (do_read_volatile(SERDES_INIT_FLAG_ADDR))) // wait jesd serdes clk init finished while (JESD_TRANS_INIT != (do_read_volatile(SERDES_INIT_FLAG_ADDR))) // wait jesd serdes clk init finished
{ {
ucp_nop(1); ucp_nop(1);
@ -409,14 +406,6 @@ int32_t jesd_timer_reconfig(int32_t nTmrId, phy_timer_config_ind_t *my_jesdtmr)
debug_write((DBG_DDR_IDX_DRV_BASE+3+(apeId<<2)), flag); // 0xBC debug_write((DBG_DDR_IDX_DRV_BASE+3+(apeId<<2)), flag); // 0xBC
#endif #endif
#if 0
set_jesd_tmr_period(nTmrId); // set OVF value, every slot int and 10ms int, cevent0/2 for ape0, report link status
if (MTIMER_JESD_RX0_ID == nTmrId)
{
set_jesd_tmr_period(MTIMER_JESD_TX0_ID);
}
#endif
pMtimerPara->tempL_max = pMtimerPara->tmrMsPeriod * pMtimerPara->slotPeriod / 1000 - 1; pMtimerPara->tempL_max = pMtimerPara->tmrMsPeriod * pMtimerPara->slotPeriod / 1000 - 1;
pMtimerPara->tempM_max = pMtimerPara->tddSlotNum-1; pMtimerPara->tempM_max = pMtimerPara->tddSlotNum-1;
pMtimerPara->tempH_max = SFN_PERIOD / pMtimerPara->slotPeriod / pMtimerPara->tddSlotNum - 1; pMtimerPara->tempH_max = SFN_PERIOD / pMtimerPara->slotPeriod / pMtimerPara->tddSlotNum - 1;
@ -459,8 +448,6 @@ int32_t jesd_timer_reconfig(int32_t nTmrId, phy_timer_config_ind_t *my_jesdtmr)
if (FDD_MODE == gJesdTFMode) if (FDD_MODE == gJesdTFMode)
{ {
jesd_timer_get_csu_point(nTmrId, my_jesdtmr); jesd_timer_get_csu_point(nTmrId, my_jesdtmr);
//set_jesd_csuon_point(MTIMER_JESD_RX0_ID, 0);
//set_jesd_csuon_point(MTIMER_JESD_TX0_ID, 0);
} }
else else
{ {
@ -1372,6 +1359,11 @@ void jesd_tdd_callback(uint8_t nTmrId)
{ {
nListId = 1; nListId = 1;
} }
if ((1 == gJesdListInitFinished) && (FDD_MODE == gJesdTFMode))
{
jesd_csu_rx_list_desc0_flush(0, nListId);
}
jesd_csu_tx_start(nListId); jesd_csu_tx_start(nListId);
if ((FDD_MODE == gJesdTFMode) || (JESD_IO_CTRL == gJesdIOMode)) if ((FDD_MODE == gJesdTFMode) || (JESD_IO_CTRL == gJesdIOMode))
{ {

View File

@ -189,5 +189,12 @@ int32_t fronthaul_drv_cfg(stFrontHaulDrvPara* pFhDrvPara)
return 0; return 0;
} }
void spu_ddr_monitor_start(uint32_t monitorCnt)
{
do_write(DDR_MONITOR_ENABLE, 1);
do_write(DDR_MONITOR_CNT, monitorCnt);
}

View File

@ -129,8 +129,8 @@ int32_t main(int32_t argc, char* argv[])
check_10ms_offset(); check_10ms_offset();
} }
#ifdef TEST_ENABLE #ifdef TEST_ENABLE
do_write(CSU_TX_ADVANCE_SAMPLE, 10000); // 10us //do_write(CSU_TX_ADVANCE_SAMPLE, 10000); // 10us
do_write(CSU_RX_TD_SAMPLE, 10000); //do_write(CSU_RX_TD_SAMPLE, 10000);
check_test_outcome(0); check_test_outcome(0);
#endif #endif

View File

@ -19,6 +19,7 @@
#include "phy_para.h" #include "phy_para.h"
#include "rfm1_drv.h" #include "rfm1_drv.h"
#include "jesd_orx_timer.h" #include "jesd_orx_timer.h"
#include "ecs_rfm_dm_mgt.h"
#define CELL_SETUP_TYPE_SIMULATION (0x5a6b7c8d) #define CELL_SETUP_TYPE_SIMULATION (0x5a6b7c8d)
#define ORX_MSG_TYPE_SIMULATION (0xaabb7788) #define ORX_MSG_TYPE_SIMULATION (0xaabb7788)
@ -280,6 +281,8 @@ void phy_msg_proc(uint32_t u32msg_addr, uint32_t u32msg_size)
{ {
uint32_t msg_buf = do_read(u32msg_addr); uint32_t msg_buf = do_read(u32msg_addr);
uint32_t msg_type = do_read(msg_buf); uint32_t msg_type = do_read(msg_buf);
// EcsRfmDmLocalMgt_t* pEcsDmLocalMgt = get_ecs_rfm_dm_local_mgt();
// JesdOrxPara_t* orx_para_ptr = pEcsDmLocalMgt->jesd_orx_para_ptr;
//memcpy_ucp(0x60000000, msg_buf, 32); // temp code //memcpy_ucp(0x60000000, msg_buf, 32); // temp code
if (CELL_SETUP_TYPE_SIMULATION == msg_type) if (CELL_SETUP_TYPE_SIMULATION == msg_type)
@ -311,8 +314,11 @@ void phy_msg_proc(uint32_t u32msg_addr, uint32_t u32msg_size)
} }
else if (ORX_MSG_TYPE_SIMULATION == msg_type) else if (ORX_MSG_TYPE_SIMULATION == msg_type)
{ {
phy_sniffer_start(); // if (1 > orx_para_ptr->orx_calldrv_cnt)
debug_write(DBG_DDR_COMMON_IDX(get_core_id(),2), ORX_MSG_TYPE_SIMULATION); // {
phy_sniffer_start();
debug_write(DBG_DDR_COMMON_IDX(get_core_id(),2), ORX_MSG_TYPE_SIMULATION);
// }
} }
return; return;

View File

@ -73,7 +73,7 @@ int32_t fh_csu_test_init(void)
void fh_test_case() void fh_test_case()
{ {
jesd_csu_start_nr_7ds2u(); //jesd_csu_start_nr_7ds2u();
} }
void fh_data_check(uint32_t times) void fh_data_check(uint32_t times)

View File

@ -58,8 +58,9 @@ int32_t fh_drv_init(void)
int32_t fh_csu_test_init(void) int32_t fh_csu_test_init(void)
{ {
jesd_csu_init_nr_fdd(); //jesd_csu_init_nr_fdd();
//jesd_csu_init_nr_fdd_slot0(); //jesd_csu_init_nr_fdd_slot0();
jesd_csu_init_nr_fdd_rx_slot2();
//jesd_pin_ctrl(MTIMER_JESD_RX0_ID); //jesd_pin_ctrl(MTIMER_JESD_RX0_ID);
//jesd_pin_ctrl(MTIMER_JESD_TX0_ID); //jesd_pin_ctrl(MTIMER_JESD_TX0_ID);

View File

@ -181,7 +181,7 @@ int32_t fh_csu_test_init(void)
void fh_test_case() void fh_test_case()
{ {
jesd_csu_start_nr_7ds2u(); //jesd_csu_start_nr_7ds2u();
} }
void fh_data_check(uint32_t times) void fh_data_check(uint32_t times)

View File

@ -34,7 +34,7 @@ int32_t fh_data_init(void)
{ {
gJesdTestMode = JESD_TEST_MODE; gJesdTestMode = JESD_TEST_MODE;
gJesdIOMode = JESD_CSU_CTRL; gJesdIOMode = JESD_CSU_CTRL;
//gJesdTFMode = FDD_MODE; gJesdTFMode = TDD_MODE;
debug_write((DBG_DDR_IDX_DRV_BASE+192), gJesdTestMode); // 0x300 debug_write((DBG_DDR_IDX_DRV_BASE+192), gJesdTestMode); // 0x300
debug_write((DBG_DDR_IDX_DRV_BASE+193), gJesdIOMode); // 0x304 debug_write((DBG_DDR_IDX_DRV_BASE+193), gJesdIOMode); // 0x304
debug_write((DBG_DDR_IDX_DRV_BASE+194), gJesdTFMode); // 0x308 debug_write((DBG_DDR_IDX_DRV_BASE+194), gJesdTFMode); // 0x308
@ -76,7 +76,7 @@ int32_t fh_csu_test_init(void)
void fh_test_case() void fh_test_case()
{ {
jesd_csu_start_nr_7ds2u(); //jesd_csu_start_nr_7ds2u();
} }
void fh_data_check(uint32_t times) void fh_data_check(uint32_t times)

View File

@ -73,7 +73,7 @@ int32_t fh_csu_test_init(void)
void fh_test_case() void fh_test_case()
{ {
jesd_csu_start_nr_7ds2u(); //jesd_csu_start_nr_7ds2u();
} }
void fh_data_check(uint32_t times) void fh_data_check(uint32_t times)

View File

@ -67,7 +67,7 @@ int32_t fh_csu_test_init(void)
void fh_test_case() void fh_test_case()
{ {
jesd_csu_start_nr_7ds2u(); //jesd_csu_start_nr_7ds2u();
} }
void fh_data_check(uint32_t times) void fh_data_check(uint32_t times)

View File

@ -67,7 +67,7 @@ int32_t fh_csu_test_init(void)
void fh_test_case() void fh_test_case()
{ {
jesd_csu_start_nr_7ds2u(); //jesd_csu_start_nr_7ds2u();
} }
void fh_data_check(uint32_t times) void fh_data_check(uint32_t times)