This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] 66AK2E02:启用 cpi 流阈值时 SA 不起作用

Guru**** 2595805 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/647136/66ak2e02-sa-does-not-work-when-cppi-flows-threshold-is-enable

器件型号:66AK2E02

您好!

我正在使用 pdk_k2e_4_0_4处理 k2e 器件的 PA 和 SA。

当我使用带阈值禁用的 Cppi 流时、SA 和 PA 工作正常。 但是、当我通过启用数据包大小阈值来初始化 Cppi 流时、PA 工作正常、但 SA 未运行。 打开 Cppi 阈值时 SA 是否不起作用? 或者我是否做了一些错误的事情?

下面是一个显示如何初始化 cpi 流的代码:  

const uint32pass_flow_id_TO_fbq_mapping []={
FBQ_packet_data
};

enum{
pass_CPDMA_default_flow_ID
};

Int32 setup_rx_queue (Qmss_Queue * rxQInfo)
{
extern Qmss_QueueHxQHnd

;gRxQpa_queue =
Qms_return
(Qms_rg_rq-rq-rq

= rq-rq-rq-rq)}(外部 Qms_rqrqrq-rqrqrqrnd);xp_rg_rqrqrg_rqrq-rqrqrnd = t

rxFreeQInfo、rxQInfo;
Cppi_RxFlowCfg rxFlowCfg;
uint32_ti、num_for_allocated、j;

setup_rx_queue (&rxQInfo);

/*初始化流配置*/
memset (&rxFlowCfg、0、sizeof (Cppi_RxFlowCfg));
rxFreeQInfo = Qmss_getFlowQueueNumber (pass_flow_id_TO_fbq_mapping [j]);

//让 CPPI 选择下一个可用流*/rxFlowCfg.FlowId]
= pass_CPDMA_default_flow_ID;

rxFlowCfg.rx_dest_qmgr = rxQInfo.qMgr;
rxFlowCfg.rx_dest_qnum = rxQInfo.qNum;
rxFlowCfg.rx_desc_type = Cppi_DescType_Monic单 片;

rxFlowCfg.Rx_SOP_OFFSET = packet_data_buffer_data_start_offset;

rxFlowCfg.rx_ps_location = Cppi_PSLoc_PS_in_Desc;
rxFlowCfg.rx_psinfo_present = 1;//启用 PS 信息*/

rxFlowCfg.rx_error_handling = 0;//丢弃数据包,默认情况下不会在饥饿时重试*/
rxFlowCfg.rx_einfo_present = 1;//

rxFlowCfg.rx_dest_tag_lo_SEL = 1;//禁用标记*/
rxFlowCfg.rx_dest_tag_hi_SEL = 1;
rxFlowCfg.rx_src_tag_lo_SEL = 0;
rxFlowCfg.rx_src_tag_hi_SEL = 0;

rxFlowCfg.rx_dest_tag_lo=0;
rxFlowCfg.rx_dest_tag_hi=0;

rxFlowCfg.rx_size_thresh_en = 1;
rxFlowCfg.rx_size_thresh1_en = 0;
rxFlowCfg.rx_size_thresh2_en = 0;
rxFlowCfg.rx_size_thresh0 = 3456;
rxFlowCfg.rx_size_thresh1 = 0x0;
rxFlowCfg.rx_size_thresh2 = 0x0;

rxFlowCfg.rx_fdq0_sz0_qmgr = rxFreeQInfo.qMgr;//设置流的接收空闲队列*/
rxFlowCfg.rx_fdq0_sz0_qnum = rxFreeQInfo.qNum;
rxFlowCfg.rx_fdq0_sz1_qmgr = 0x0;
rxFlowCfg.rx_fdq0_sz1_qnum = 0x0;
rxFlowCfg.rx_fdq0_sz2_qmgr = 0x0;
rxFlowCfg.rx_fdq0_sz2_qnum = 0x0;
rxFlowCfg.rx_fdq0_sz3_qmgr = 0x0;
rxFlowCfg.rx_fdq0_sz3_qnum = 0x0;

rxFlowCfg.rx_fdq1_qnum = rxFreeQInfo.qNum;//使用 Rx Queue 选择描述符*/
rxFlowCfg.rx_fdq1_qmgr = rxFreeQInfo.qMgr;
rxFlowCfg.rx_fdq2_qnum = rxFreeQInfo.qNum;//使用 Rx Queue 选择描述符*/
rxFlowCfg.rx_fdq2_qmgr = rxFreeQInfo.qMgr;
rxFlowCfg.rx_fdq3_qnum = rxFreeQInfo.qNum;//使用 Rx Queue 选择描述符*/
rxFlowCfg.rx_fdq3_qmgr = rxFreeQInfo.qMgr;

//配置 Rx 流*/
if ((gRxFlowHnd[j]= Cppi_configureRxFlow (gCpdmaHnd、&rxFlowCfg、&num_for_allocated))=)
{
SEVER_ERROR;
}

返回 false;
} 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    我已通知 RTOS 团队。 他们将直接在此处发布反馈。

    此致、
    Yordan