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:
commit
bc54263f34
@ -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)B,设置合理的margin值,确保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
|
||||
|
@ -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相关 */
|
||||
|
@ -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);
|
||||
|
@ -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();
|
||||
|
@ -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
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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的链表地址
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
||||
|
@ -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))
|
||||
{
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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)
|
||||
|
@ -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);
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user