亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? media_lb_bw_on_sf_iface_rx.uc

?? 開發Inetl IXP2400平臺所必須的硬件診斷和測試程序。該軟件包支持的功能包括CPU基本功能檢測
?? UC
字號:
/* media_lb_pl_on_sf_iface_rx.uc
 *
 *---------------------------------------------------------------------------
 *                                                                      
 *                  I N T E L   P R O P R I E T A R Y                   
 *                                                                      
 *     COPYRIGHT (c)  2002 BY  INTEL  CORPORATION.  ALL RIGHTS          
 *     RESERVED.   NO  PART  OF THIS PROGRAM  OR  PUBLICATION  MAY      
 *     BE  REPRODUCED,   TRANSMITTED,   TRANSCRIBED,   STORED  IN  A    
 *     RETRIEVAL SYSTEM, OR TRANSLATED INTO ANY LANGUAGE OR COMPUTER    
 *     LANGUAGE IN ANY FORM OR BY ANY MEANS, ELECTRONIC, MECHANICAL,    
 *     MAGNETIC,  OPTICAL,  CHEMICAL, MANUAL, OR OTHERWISE,  WITHOUT    
 *     THE PRIOR WRITTEN PERMISSION OF :                                
 *                                                                      
 *                        INTEL  CORPORATION                            
 *                                                                     
 *                     2200 MISSION COLLEGE BLVD                        
 *                                                                      
 *               SANTA  CLARA,  CALIFORNIA  95052-8119                  
 *                                                                      
 *---------------------------------------------------------------------------
 *
 *
 *  system: IXDP2400
 *  subsystem: DIAG
 *  author: dalsraja, April, 2002
 *  revisions: cmah1, March 11, 2003
 * 
 * 
 * --------------------------------------------------------------------------
 */

#include "common_uc.h"

#define RX_SINGLE_PHY					MSF_SINGLE_PHY
#define RX_WIDTH						MSF_WIDTH_4x8
#define RX_ENABLE_MASK					0xF
#define RX_MODE							MSF_POS_UTOPIA
#define RX_ELEMENTSIZE					MSF_ELEMENTSIZE_128
#define RBUF_ELEM_COUNT					(1 << (7 - RX_ELEMENTSIZE))
#define RBUF_ADDR_SHF					(6 + RX_ELEMENTSIZE)
#define RX_ELEMENT_SIZE_BYTE			(1 << RBUF_ADDR_SHF)

#define ME_NUM_RX						0

#define RX_TRANSFER_THREAD				&$TransferReg00
#define RX_SIGNAL_THREAD				&rx_sig_thd
#define INTERTHD_SIG_NUM				15

#define DRAM_PCKT_BASE					0x1000000

.reg $TransferReg00 $TransferReg01
.reg RxThreadList bytecnt elem error rx_channel_num
.reg cur_ctx
.reg @packet_count
.reg RxConfigData
.reg rbuf ring_num
.reg MsfAddress ThreadFreelist_Addr ElementDone_Addr
.reg dramPacketBase
.reg put_ring_num rx_count_ring_num
.sig msf_sig sig_dram_xfer1
.sig rx_sig_thd interthd_sig
.xfer_order $TransferReg00 $TransferReg01

.addr interthd_sig INTERTHD_SIG_NUM

.set $TransferReg00
.set_sig interthd_sig

Init_Value#:
	br!=ctx[0, not_ctx_0#]
	immed[ThreadFreelist_Addr, RX_THREAD_FREELIST_0]
	br[cont_init1#]
not_ctx_0#:
	br!=ctx[1, not_ctx_1#]
	immed[ThreadFreelist_Addr, RX_THREAD_FREELIST_1]
	br[cont_init1#]
not_ctx_1#:
	br!=ctx[2, not_ctx_2#]
	immed[ThreadFreelist_Addr, RX_THREAD_FREELIST_2]
	br[cont_init1#]
not_ctx_2#:
	br!=ctx[3, not_ctx_3#]
	immed[ThreadFreelist_Addr, RX_THREAD_FREELIST_3]
	br[cont_init1#]
not_ctx_3#:
	ctx_arb[kill]

cont_init1#:
.begin
	.reg temp cur_me
	local_csr_rd[ACTIVE_CTX_STS]
	immed[temp, 0]
	alu[cur_me, MASK_4BIT, AND, temp, >>3]	// Extract the current ME number
	alu[cur_ctx, MASK_3BIT, AND, temp]		// Extract the current context number
	alu[ring_num, --, B, cur_ctx, <<2]			// ring number in a register

	immed[RxThreadList, (RX_SIGNAL_THREAD << 12)]
	alu[RxThreadList, RxThreadList, OR, cur_me, <<7]
	alu[RxThreadList, RxThreadList, OR, cur_ctx, <<4]
	alu[RxConfigData, RxThreadList,  OR , RX_TRANSFER_THREAD]
	alu[RxConfigData, --,  B, RxConfigData, <<16]
.end

	immed[dramPacketBase, (DRAM_PCKT_BASE & MASK_16BIT)]
	immed_w1[dramPacketBase, ((DRAM_PCKT_BASE >> 16) & MASK_16BIT)]
	alu[dramPacketBase, dramPacketBase, OR, cur_ctx, <<RBUF_ADDR_SHF]

	alu[put_ring_num , --, B, cur_ctx, <<2]
	alu[rx_count_ring_num , --, B, RING_4, <<2]

	immed[ElementDone_Addr, RBUF_ELEMENT_DONE]
	immed[rbuf, RBUF_TBUF ]	

	br=ctx[0, cont_init2#]
	ctx_arb[interthd_sig]
	br[ReceivePacket#]


cont_init2#:
	immed[@packet_count, 0]

//****************************************************
// Configure RX/TX Control
//****************************************************
.begin
	.reg RxConfigData0 $RxConfigData0
	immed[RxConfigData0, ((0<<9) | (RX_ELEMENTSIZE << 2))]
	immed_w1[RxConfigData0, ((RX_MODE << 6) | (RX_WIDTH << 4) | (RX_SINGLE_PHY << 3) | (0<<1)|(0<<0))]
	alu[$RxConfigData0, --, B, RxConfigData0]
	immed[MsfAddress, MSF_RX_CONTROL]
	msf[write, $RxConfigData0, MsfAddress, 0, 1], ctx_swap[msf_sig]
.end


//******************************************************
// Initialize RBUF Freelist to add elements to the list
//******************************************************
.begin
	.reg temp_reg temp

	immed[temp_reg, 0]

init_RBUF#:
	alu[temp, --, B, temp_reg, <<16]
	msf[fast_wr, --, temp, RBUF_ELEMENT_DONE]
	alu[temp_reg, temp_reg, +, 1]
	alu[--, RBUF_ELEM_COUNT, -, temp_reg]
	bne[init_RBUF#]
.end


//******************************************************
// Configure RX UP Control CSRs 
//******************************************************
.begin
	.reg RxUPControl $RxConfigData0
//	immed[RxUPControl, (UP_CTRL_PP_MODE_PLONE | UP_CTRL_CP_MODE | UP_CTRL_PARITY_ODD | UP_CTRL_CELLSIZE | UP_CTRL_DRTIME)]
	immed[RxUPControl, (UP_CTRL_PP_MODE | UP_CTRL_CP_MODE | UP_CTRL_PARITY | UP_CTRL_CELLSIZE | UP_CTRL_DRTIME)]
	alu[$RxConfigData0, --, B, RxUPControl]
	immed[MsfAddress, RX_UP_CONTROL_0]
	msf[write, $RxConfigData0, MsfAddress, 0, 1], ctx_swap[msf_sig]
	immed[MsfAddress, RX_UP_CONTROL_1]
	msf[write, $RxConfigData0, MsfAddress, 0, 1], ctx_swap[msf_sig]
	immed[MsfAddress, RX_UP_CONTROL_2]
	msf[write, $RxConfigData0, MsfAddress, 0, 1], ctx_swap[msf_sig]
	immed[MsfAddress, RX_UP_CONTROL_3]
	msf[write, $RxConfigData0, MsfAddress, 0, 1], ctx_swap[msf_sig]
.end


//****************************************************
// Configure RX/TX Control
//****************************************************
.begin
	.reg RxConfigData0 $RxConfigData0
	immed[RxConfigData0, ((0<<9) | (RX_ELEMENTSIZE << 2))]
	immed_w1[RxConfigData0, ((RX_ENABLE_MASK << 12) | (RX_MODE << 6) | (RX_WIDTH << 4) | (RX_SINGLE_PHY << 3) | (0<<1)|(0<<0))]
	alu[$RxConfigData0, --, B, RxConfigData0]
	immed[MsfAddress, MSF_RX_CONTROL]
	msf[write, $RxConfigData0, MsfAddress, 0, 1], ctx_swap[msf_sig]
.end


//**************************************************
// Configure Scratch Ring
//**************************************************
.begin
	.reg $scratch_base $scratch_head $scratch_tail
	.sig scratch_sig1 scratch_sig2 scratch_sig3

	immed[$scratch_head,0]
	immed[$scratch_tail,0]

	alu[$scratch_base, --, B, 0]			// Use ring size of 128 lw and base 0x0
	cap[write,$scratch_base,SCRATCH_RING_BASE_0],sig_done[scratch_sig1]
	cap[write,$scratch_head,SCRATCH_RING_HEAD_0],sig_done[scratch_sig2]
	cap[write,$scratch_tail,SCRATCH_RING_TAIL_0],sig_done[scratch_sig3]
	ctx_arb[scratch_sig1, scratch_sig2, scratch_sig3]

	alu[$scratch_base, --, B, 1, <<9]		// Use ring size of 128 lw and base 0x200
	cap[write,$scratch_base,SCRATCH_RING_BASE_1],sig_done[scratch_sig1]
	cap[write,$scratch_head,SCRATCH_RING_HEAD_1],sig_done[scratch_sig2]
	cap[write,$scratch_tail,SCRATCH_RING_TAIL_1],sig_done[scratch_sig3]
	ctx_arb[scratch_sig1, scratch_sig2, scratch_sig3]

	alu[$scratch_base, --, B, 2, <<9]		// Use ring size of 128 lw and base 0x400
	cap[write,$scratch_base,SCRATCH_RING_BASE_2],sig_done[scratch_sig1]
	cap[write,$scratch_head,SCRATCH_RING_HEAD_2],sig_done[scratch_sig2]
	cap[write,$scratch_tail,SCRATCH_RING_TAIL_2],sig_done[scratch_sig3]
	ctx_arb[scratch_sig1, scratch_sig2, scratch_sig3]

	alu[$scratch_base, --, B, 3, <<9]		// Use ring size of 128 lw and base 0x600
	cap[write,$scratch_base,SCRATCH_RING_BASE_3],sig_done[scratch_sig1]
	cap[write,$scratch_head,SCRATCH_RING_HEAD_3],sig_done[scratch_sig2]
	cap[write,$scratch_tail,SCRATCH_RING_TAIL_3],sig_done[scratch_sig3]
	ctx_arb[scratch_sig1, scratch_sig2, scratch_sig3]

	alu[$scratch_base, --, B, 4, <<9]		// Use ring size of 128 lw and base 0x800
	cap[write,$scratch_base,SCRATCH_RING_BASE_4],sig_done[scratch_sig1]
	cap[write,$scratch_head,SCRATCH_RING_HEAD_4],sig_done[scratch_sig2]
	cap[write,$scratch_tail,SCRATCH_RING_TAIL_4],sig_done[scratch_sig3]
	ctx_arb[scratch_sig1, scratch_sig2, scratch_sig3]
.end

	local_csr_wr[SAME_ME_SIGNAL, ((INTERTHD_SIG_NUM << 3) | 1)]
	local_csr_wr[SAME_ME_SIGNAL, ((INTERTHD_SIG_NUM << 3) | 2)]
	local_csr_wr[SAME_ME_SIGNAL, ((INTERTHD_SIG_NUM << 3) | 3)]


//********************************************************
// Start of Test	
//********************************************************
ReceivePacket#:
	.set_sig rx_sig_thd
	msf[fast_wr, --, ThreadFreelist_Addr, RxConfigData] // add thread to freelist
	ctx_arb[rx_sig_thd]


// RSW should be in xfer register
// Transfer RBUF data to sram_in transfer registers
//***************************************
// Extract RSW   7 cycles 
//****************************************
RSW#:
	alu[elem, --, B, $TransferReg00, >>24]			// Get element number
	alu[bytecnt, 0xFF, AND, $TransferReg00, >>16]	// Extract byte count
	alu[error, 0xF, AND, $TransferReg00, >>10]		// Extract error information
	alu[rx_channel_num, 0xf, AND, $TransferReg00]	// Extract channel


//*********************************
// Transfer from ME to DRAM
//*********************************	
.begin
	.reg pkt_buff_addr rel RBufOffset refcnt temp 

	alu[refcnt, --, B, bytecnt, >>3]
	alu[--, bytecnt, AND, 0x7]
	bne[set_refcnt_overwrite_bit#]
	alu[refcnt, refcnt, -, 1]
set_refcnt_overwrite_bit#:
	alu[refcnt, refcnt, OR, 1, <<4]		// Set the overwrite bit for refcnt

	alu[RBufOffset, --, B, elem, <<7]	// 128B
	alu[temp, RBuf, +, RBufOffset]
	alu[temp, 16, OR, temp, <<5]		// shift rbuf addr and set the overwrite bit
	alu[temp, temp, OR, refcnt, <<21]	// shift refcnt and add for indirect ref

	dram[rbuf_rd, --, dramPacketBase, 0, 8], indirect_ref, sig_done[sig_dram_xfer1]

	ctx_arb[sig_dram_xfer1]
.end


//**************************************************************
//  Free up Element by writing to RBUF_Element_Done
//**************************************************************
.begin
	.reg $temp0
	alu[$temp0, --, B, elem]
	msf[write, $temp0, ElementDone_Addr,0, 1], ctx_swap[msf_sig]
.end


/*
//*****************************************************************
//  Write to Scratch ring to signal completion to XScale code
//*****************************************************************
.begin
	.reg $scratch_data temp
	.sig scratch_sig

	alu[temp, bytecnt, OR, error, <<16]
	alu[$scratch_data, temp, OR, rx_channel_num, <<24]
	scratch[put, $scratch_data, ring_num, 0, 1], ctx_swap[scratch_sig]

	alu[$scratch_data, --, B, dramPacketBase]
	scratch[put, $scratch_data, ring_num, 0, 1], ctx_swap[scratch_sig]
.end
*/

	alu[@packet_count, @packet_count, +, 1]

.begin
	.reg $scratch_packet_count
	.sig scratch_sig

	alu[$scratch_packet_count, bytecnt, OR, rx_channel_num, <<16]
	scratch[put, $scratch_packet_count, rx_count_ring_num, 0, 1], ctx_swap[scratch_sig]
.end

	br[ReceivePacket#]	

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99视频一区二区| 国产精品综合网| 久久婷婷一区二区三区| 日一区二区三区| 亚洲码国产岛国毛片在线| 日韩限制级电影在线观看| 99久久婷婷国产综合精品| 久久精品99国产精品日本| 一本大道av一区二区在线播放| 欧美激情一区二区三区在线| 精品日韩成人av| 欧美综合天天夜夜久久| 99久久99久久精品免费观看| 日韩不卡手机在线v区| 1区2区3区精品视频| 久久精品无码一区二区三区| 欧美精品免费视频| 欧美亚日韩国产aⅴ精品中极品| 日韩av网站在线观看| 亚洲国产精品一区二区久久| 国产精品欧美一区二区三区| 久久久精品国产99久久精品芒果| 成人国产精品视频| 国内精品久久久久影院色 | 亚洲成av人在线观看| 中文字幕在线视频一区| 国产亚洲一区二区三区在线观看| 91精品国产一区二区三区香蕉| 国产麻豆精品视频| 国产一区二区不卡在线| 天堂精品中文字幕在线| 亚洲成人自拍网| 亚洲线精品一区二区三区| 国产精品人人做人人爽人人添| 91精品国产色综合久久不卡蜜臀 | 精品国产网站在线观看| 欧美图片一区二区三区| 亚洲激情欧美激情| 欧美羞羞免费网站| 91精品国产综合久久福利| 久久美女高清视频| 免费在线视频一区| 欧美成人video| 青青草国产精品亚洲专区无| 色成年激情久久综合| 亚洲免费观看高清完整版在线观看| 天堂av在线一区| 欧美一区二区三区视频在线 | 日本成人中文字幕| 欧美精品久久天天躁| 亚洲成人午夜电影| 欧美一区二区三区婷婷月色| 中文字幕中文在线不卡住| 国产福利精品导航| 中文字幕一区免费在线观看 | 99久久99精品久久久久久| 中文av字幕一区| 91伊人久久大香线蕉| 一区二区三区四区精品在线视频| 91福利小视频| 免费亚洲电影在线| 在线观看日韩毛片| 国产中文字幕精品| 成人免费视频在线观看| 欧美三日本三级三级在线播放| 亚洲国产日韩一级| 日韩欧美的一区| av日韩在线网站| 日本网站在线观看一区二区三区| 亚洲精品在线观| 粉嫩嫩av羞羞动漫久久久| 夜夜揉揉日日人人青青一国产精品| 欧美一区二区三区在线视频| 日韩av在线免费观看不卡| 国产三级精品视频| 精品1区2区3区| 国产精品2024| 青青草国产成人av片免费| 中文字幕一区三区| 亚洲精品一区二区三区99| 不卡的av电影| 热久久国产精品| 亚洲精品欧美激情| 中文字幕av一区二区三区免费看| 欧美男人的天堂一二区| 96av麻豆蜜桃一区二区| 日韩精品成人一区二区三区| 国产精品欧美精品| 久久久99免费| 亚洲精品在线观看网站| 精品少妇一区二区三区| 欧美精品vⅰdeose4hd| 色视频成人在线观看免| 91美女片黄在线观看91美女| 国产精品99久久久久久久vr | 亚洲欧美色图小说| 777奇米成人网| 日韩亚洲欧美一区| 欧美一级二级三级蜜桃| 日韩欧美一区中文| 91精品国产91热久久久做人人| 99热在这里有精品免费| 91啪九色porn原创视频在线观看| www.成人网.com| 91同城在线观看| 欧美亚洲国产怡红院影院| www.成人在线| 欧美性大战xxxxx久久久| 欧美日韩国产另类一区| 日韩欧美色综合网站| 欧美mv和日韩mv国产网站| 亚洲一区在线看| 首页国产欧美久久| 久久精工是国产品牌吗| 懂色av一区二区在线播放| 99re成人在线| 91在线观看视频| 欧美日韩你懂的| 2023国产精华国产精品| 欧美成人vps| 欧美极品aⅴ影院| 亚洲欧美国产77777| 日本午夜精品一区二区三区电影| 国产精品99久久久| 91福利在线播放| 国产精品视频第一区| 国产精品大尺度| 欧美aaaaa成人免费观看视频| 精品一区二区三区在线播放| 26uuuu精品一区二区| 亚洲综合激情另类小说区| 麻豆久久久久久久| 成人午夜电影久久影院| 制服.丝袜.亚洲.另类.中文| 欧美极品美女视频| 久久国产人妖系列| 欧美午夜精品免费| 亚洲欧洲日韩综合一区二区| 青青青爽久久午夜综合久久午夜| 97se亚洲国产综合自在线观| 26uuu亚洲婷婷狠狠天堂| 亚洲电影在线播放| 一本色道久久综合精品竹菊| 欧美va亚洲va香蕉在线| 亚洲18色成人| 色综合天天视频在线观看| 国产日韩欧美一区二区三区乱码| 天堂久久久久va久久久久| 在线日韩国产精品| 亚洲婷婷国产精品电影人久久| 国产成人av电影在线| 日韩一卡二卡三卡| 亚洲精品ww久久久久久p站| 成人午夜大片免费观看| 国产精品久久久久久久久快鸭 | 日韩精品乱码av一区二区| 99免费精品在线观看| 精品国内二区三区| 国产乱码精品1区2区3区| 日韩一级大片在线| 美女视频黄久久| 2019国产精品| 国产乱子轮精品视频| 欧美电影免费观看高清完整版| 午夜久久久久久| 日韩欧美在线不卡| 丰满少妇在线播放bd日韩电影| 国产精品美女一区二区三区 | 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 91精品国产综合久久国产大片 | 欧美日韩成人综合| 日韩中文字幕麻豆| 久久久夜色精品亚洲| zzijzzij亚洲日本少妇熟睡| 一个色妞综合视频在线观看| 91丝袜国产在线播放| 亚洲欧美另类久久久精品| 久久亚洲精华国产精华液| 国产精品综合久久| 亚洲大片免费看| 26uuu另类欧美| 成人三级在线视频| 亚洲综合视频在线| 久久毛片高清国产| 在线观看日韩一区| 国产成人夜色高潮福利影视| 一区二区三区国产精华| 久久这里只有精品6| 在线精品视频免费播放| 国产一区二区剧情av在线| 色综合久久久久综合体| 亚洲品质自拍视频| 欧美mv日韩mv国产| av中文字幕不卡| 日韩成人免费看| 欧美变态tickling挠脚心| 色域天天综合网| 国产原创一区二区三区| 亚洲视频在线观看三级| 欧美一区二区三区啪啪|