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 seq;
uint8_t margin;
uint8_t reserved;
uint8_t tfMode;
}stJesdCsuPara;
// 链表节点结构体定义
@ -48,12 +48,13 @@ typedef struct _tagJesdCsuNodePara
uint8_t antNum: 线
uint8_t margin: jesd csu一次搬移的数据量xnum=(32*2^margin)Bmargin值allnum/xnum是个整数值
uint8_t tfMode: tdd/fdd mode
0 :
-1:
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

View File

@ -51,6 +51,24 @@ typedef struct _tagFrontHaulDrvPara
uint32_t mapOption; // CpriMapType
}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
stFrontHaulDrvPara* pFhDrvPara
@ -226,6 +244,15 @@ int32_t set_cpri_rru_msg(CpriRruMsg_t rru_msg);
orx数据搬移
*/
int32_t phy_sniffer_start();
/*
spu_ddr_monitor_start
uint32_t monitorCnt:
ddr监控功能
*/
void spu_ddr_monitor_start(uint32_t monitorCnt);
/**************************************************/
/* ape csu相关 */

View File

@ -33,7 +33,7 @@ typedef struct _tagJesdCsuPara
uint8_t nTotal; // n+cs+padding
uint8_t seq;
uint8_t margin;
uint8_t reserved;
uint8_t tfMode;
}stJesdCsuPara;
typedef struct _tagJesdCsuNodePara
@ -49,7 +49,7 @@ typedef struct _tagJesdListPara
uint32_t listNodeNum;
}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);
@ -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_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_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_rx_slot2();
#if 0
int32_t jesd_csu_init_nr_7ds2u_iomode();
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);
void spu_ddr_monitor_start(uint32_t monitorCnt);
#endif

View File

@ -15,7 +15,7 @@ stJesdListPara gJesdRxListPara[JESD_CH_NUM][JESD_LIST_NUM];
uint32_t gJesdOrxCsuIntCnt = 0;
uint32_t gJesdListInitFinished = 0;
extern uint32_t gJesdTFMode;
//extern uint32_t gJesdTFMode;
extern void phy_sniffer_data_proc();
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))
{
@ -80,6 +80,7 @@ int32_t jesd_csu_init(uint8_t antNum, uint8_t margin)
}
gJesdCsuPara.seq = antNum;
gJesdCsuPara.margin = margin;
gJesdCsuPara.tfMode = tfMode;
// [ 1: 0] -> CS
// [ 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;
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);
}
else
{
rxListCmdL = (1<<4)+(0<<5)+(3<<6);
}
rxListCmdL = (1<<4)+(0<<5)+(3<<6)+(1<<23);
}
else
{
rxListCmdL = (1<<4)+(0<<5)+(3<<6);
}
uint32_t yStep = (1 == orxFlag) ? (0x20 * (1<<mrg)) : (pListNode[i].yStep);
// src
@ -279,9 +277,9 @@ int32_t jesd_csu_rx_list_init(uint32_t listAddr, uint32_t nodeNum, stJesdCsuNode
stLinkDesc.dmaZStep = 0x20;
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
{
@ -366,7 +364,7 @@ int32_t jesd_csu_tx_list_init(uint32_t listAddr, uint32_t nodeNum, stJesdCsuNode
stLinkDesc.dmaZStep = 0x20;
stLinkDesc.dmaAllNum = pListNode[i].allNum;
stLinkDesc.dmaSize = 0; // 0x8;//
if (FDD_MODE == gJesdTFMode)
if (FDD_MODE == gJesdCsuPara.tfMode)
{
stLinkDesc.dmaCGran = 0;
}
@ -383,6 +381,25 @@ int32_t jesd_csu_tx_list_init(uint32_t listAddr, uint32_t nodeNum, stJesdCsuNode
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)
{
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
}
gJesdListInitFinished++;
stCsuDmaCmdL cpriCmdL;
*(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(((uint32_t*)&(JS_CSU_CMDFIFO0)+(nChId<<1)), *(uint32_t*)(&cpriCmdL));
gJesdListInitFinished++;
return 0;
}

View File

@ -1,10 +1,10 @@
#include "jesd_csu_lte_fdd.h"
#include "jesd_csu.h"
#include "phy_para.h"
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 rxCsuNode[JESD_LTEFDD_RX_NODENUM];
//tx的链表地址
@ -51,7 +51,7 @@ int32_t jesd_csu_init_lte_fdd()
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 rxCsuNode[JESD_LTEFDD_RX_NODENUM];
//tx的链表地址

View File

@ -1,10 +1,10 @@
#include "jesd_csu_nr_7ds2u.h"
#include "jesd_csu.h"
#include "phy_para.h"
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 rxCsuNode[JESD_NR7DS2U_RX_NODENUM];
//tx的链表地址
@ -73,7 +73,7 @@ int32_t jesd_csu_init_nr_7ds2u()
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 rxCsuNode[JESD_NR7DS2U_RX_NODENUM];
//tx的链表地址
@ -138,7 +138,7 @@ int32_t jesd_csu_init_nr_7d2u()
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 rxCsuNode[JESD_NR7DS2U_RX_NODENUM];
//tx的链表地址
@ -203,7 +203,7 @@ int32_t jesd_csu_init_nr_7d2u_slot0()
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 rxCsuNode[20];
//tx的链表地址
@ -272,7 +272,7 @@ int32_t jesd_csu_init_nr_7ds2u_iomode()
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 rxCsuNode[JESD_NR7DS2U_RX_NODENUM];
//tx的链表地址
@ -351,7 +351,7 @@ int32_t jesd_csu_init_nr_7ds2u_8t8r()
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 rxCsuNode[JESD_NR7DS2U_RX_NODENUM];
//tx的链表地址
@ -423,7 +423,7 @@ int32_t jesd_csu_init_nr_7ds2u_4t4r_98()
// 4t4r, 245.76M
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 rxCsuNode1[JESD_2500US_DOUBLE_RX_NODENUM1];
stJesdCsuNodePara txCsuNode2[JESD_2500US_DOUBLE_TX_NODENUM2];
@ -538,7 +538,7 @@ int32_t jesd_csu_init_nr_2500us_double()
// 4t4r, 245.76M, 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 rxCsuNode1[JESD_2500US_DOUBLE_RX_NODENUM1];
stJesdCsuNodePara txCsuNode2[JESD_2500US_DOUBLE_TX_NODENUM2];
@ -669,12 +669,3 @@ int32_t jesd_sniffer_orx_csu_init()
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.h"
#include "phy_para.h"
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 rxCsuNode[JESD_NRFDD_RX_NODENUM];
//tx的链表地址
@ -51,7 +51,7 @@ int32_t jesd_csu_init_nr_fdd()
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 rxCsuNode[JESD_NRFDD_RX_NODENUM];
//tx的链表地址
@ -96,12 +96,46 @@ int32_t jesd_csu_init_nr_fdd_slot0()
return 0;
}
#if 0
int32_t jesd_csu_start_lte()
int32_t jesd_csu_init_nr_fdd_rx_slot2()
{
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;
}
#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);
//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,
&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+110+(0<<2)), pMtimerPara->rxCsuOn[0].timerPoint); // 0x1b8
debug_write((DBG_DDR_IDX_DRV_BASE+48+(0<<2)), pMtimerTxPara->txCsuOn[0].timerPoint); // 0xC0
debug_write((DBG_DDR_IDX_DRV_BASE+50+(0<<2)), pMtimerPara->rxCsuOn[0].timerPoint); // 0xC8
}
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,
&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+109+(i<<2)), pMtimerTxPara->txCsuOff[i].timerPoint); // 0x1b4
debug_write((DBG_DDR_IDX_DRV_BASE+110+(i<<2)), pMtimerPara->rxCsuOn[i].timerPoint); // 0x1b8
debug_write((DBG_DDR_IDX_DRV_BASE+111+(i<<2)), pMtimerPara->rxCsuOff[i].timerPoint); // 0x1bc
debug_write((DBG_DDR_IDX_DRV_BASE+48+(i<<2)), pMtimerTxPara->txCsuOn[i].timerPoint); // 0xC0
debug_write((DBG_DDR_IDX_DRV_BASE+49+(i<<2)), pMtimerTxPara->txCsuOff[i].timerPoint); // 0xC4
debug_write((DBG_DDR_IDX_DRV_BASE+50+(i<<2)), pMtimerPara->rxCsuOn[i].timerPoint); // 0xC8
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,
&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+101+(i<<2)), pMtimerPara->txRfOff[i].timerPoint);// 0x194
debug_write((DBG_DDR_IDX_DRV_BASE+102+(i<<2)), pMtimerPara->rxRfOn[i].timerPoint); // 0x198
debug_write((DBG_DDR_IDX_DRV_BASE+103+(i<<2)), pMtimerPara->rxRfOff[i].timerPoint);// 0x19c
debug_write((DBG_DDR_IDX_DRV_BASE+56+(i<<2)), pMtimerPara->txRfOn[i].timerPoint); // 0xE0
debug_write((DBG_DDR_IDX_DRV_BASE+57+(i<<2)), pMtimerPara->txRfOff[i].timerPoint);// 0xE4
debug_write((DBG_DDR_IDX_DRV_BASE+58+(i<<2)), pMtimerPara->rxRfOn[i].timerPoint); // 0xE8
debug_write((DBG_DDR_IDX_DRV_BASE+59+(i<<2)), pMtimerPara->rxRfOff[i].timerPoint);// 0xEC
}
return 0;
@ -395,9 +395,6 @@ int32_t jesd_timer_reconfig(int32_t nTmrId, phy_timer_config_ind_t *my_jesdtmr)
}
__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
{
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
#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->tempM_max = 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)
{
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
{
@ -1372,6 +1359,11 @@ void jesd_tdd_callback(uint8_t nTmrId)
{
nListId = 1;
}
if ((1 == gJesdListInitFinished) && (FDD_MODE == gJesdTFMode))
{
jesd_csu_rx_list_desc0_flush(0, nListId);
}
jesd_csu_tx_start(nListId);
if ((FDD_MODE == gJesdTFMode) || (JESD_IO_CTRL == gJesdIOMode))
{

View File

@ -189,5 +189,12 @@ int32_t fronthaul_drv_cfg(stFrontHaulDrvPara* pFhDrvPara)
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();
}
#ifdef TEST_ENABLE
do_write(CSU_TX_ADVANCE_SAMPLE, 10000); // 10us
do_write(CSU_RX_TD_SAMPLE, 10000);
//do_write(CSU_TX_ADVANCE_SAMPLE, 10000); // 10us
//do_write(CSU_RX_TD_SAMPLE, 10000);
check_test_outcome(0);
#endif

View File

@ -19,6 +19,7 @@
#include "phy_para.h"
#include "rfm1_drv.h"
#include "jesd_orx_timer.h"
#include "ecs_rfm_dm_mgt.h"
#define CELL_SETUP_TYPE_SIMULATION (0x5a6b7c8d)
#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_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
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)
{
phy_sniffer_start();
debug_write(DBG_DDR_COMMON_IDX(get_core_id(),2), ORX_MSG_TYPE_SIMULATION);
// if (1 > orx_para_ptr->orx_calldrv_cnt)
// {
phy_sniffer_start();
debug_write(DBG_DDR_COMMON_IDX(get_core_id(),2), ORX_MSG_TYPE_SIMULATION);
// }
}
return;

View File

@ -73,7 +73,7 @@ int32_t fh_csu_test_init(void)
void fh_test_case()
{
jesd_csu_start_nr_7ds2u();
//jesd_csu_start_nr_7ds2u();
}
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)
{
jesd_csu_init_nr_fdd();
//jesd_csu_init_nr_fdd();
//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_TX0_ID);

View File

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

View File

@ -34,7 +34,7 @@ int32_t fh_data_init(void)
{
gJesdTestMode = JESD_TEST_MODE;
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+193), gJesdIOMode); // 0x304
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()
{
jesd_csu_start_nr_7ds2u();
//jesd_csu_start_nr_7ds2u();
}
void fh_data_check(uint32_t times)

View File

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

View File

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

View File

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