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

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

?? sys_loopback_bw_3_eg_tx.uc

?? 開發Inetl IXP2400平臺所必須的硬件診斷和測試程序。該軟件包支持的功能包括CPU基本功能檢測
?? UC
字號:
/* emi_bw_tx.uc
 *
 * Brief:
 *
 *
 *---------------------------------------------------------------------------
 *                                                                      
 *                  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, 23 December, 2002
 *  revisions: 
 * 
 * 
 * --------------------------------------------------------------------------
 */


#include "common_uc.h"

#define TX_ELEMENT_SIZE				MSF_ELEMENTSIZE_128
#define TX_ENABLE_MASK				0xF
#define TX_MODE						MSF_POS_UTOPIA
#define TX_WIDTH					MSF_WIDTH_4x8
#define TX_SINGLE_PHY				MSF_SINGLE_PHY

#define TBUF_ELEM_COUNT				(1 << (7 - TX_ELEMENT_SIZE))
#define TBUF_ELEM_COUNT_PER_PORT	(TBUF_ELEM_COUNT >> 2)
#define TBUF_ADDR_SHF				(6 + TX_ELEMENT_SIZE)
#define TX_ELEMENTSIZE_BYTE			(1 << TBUF_ADDR_SHF)

#define TBUF_ELEM_COUNT_4PORT		TBUF_ELEM_COUNT_PER_PORT

#define TBUF_ELEM_COUNT_4PORT_MASK	(TBUF_ELEM_COUNT_4PORT - 1)


#define TX_CONTROL_EOP				(1 << 8)
#define TX_CONTROL_SOP				(1 << 9)

#define POS_PAYLOAD_LENGTH			48
#define FUTURE_COUNT_SIG_NUM		&future_count_sig
#define FUTURE_COUNT_STEP			22

#define FUTURE_COUNT_STEP_ADDR		0x1600
#define LOOP_COUNT_ADDR				0x1604
#define BURST_COUNT_ADDR			0x1608
#define XSCALE_MSG_ADDR				0x1610

#define INTER_ME_SIG_NUM			15

#define NUMBER_OF_PORTS				4

#define ME_0						0
#define ME_1						1
#define ME_2						2
#define ME_3						3

#define PORT_0						0
#define PORT_1						1
#define PORT_2						2
#define PORT_3						3

#define SIG_THD_NUM					0

.reg cur_me
.reg MsfAddress TxSequenceAddr
.reg pkt_in_one_burst pkt_in_cur_burst
.reg total_loop cur_loop
.reg future_count_value future_count_incr
.reg byte_count
.reg $misc_ctrl_val
.reg TxConfigData0
.reg $TxConfigData0
.reg $TxControlWord0 $TxControlWord1
.reg tbuf_element base_element_for_port
.sig msf_sig future_count_sig inter_me_sig cap_sig

.xfer_order $TxControlWord0 $TxControlWord1

.addr inter_me_sig INTER_ME_SIG_NUM

.set_sig inter_me_sig
br=ctx[0, init#]
ctx_arb[kill]

init#:
.begin
	.reg temp
	local_csr_rd[ACTIVE_CTX_STS]
	immed[temp, 0]
	alu[cur_me, 0x1F, AND, temp, >>3]	// Extract the current ME number
.end

//	immed[total_packets_tx, 0]
	immed[tbuf_element, 0]
	immed[byte_count, POS_PAYLOAD_LENGTH]
	immed[cur_loop, 0]
	immed[future_count_incr, FUTURE_COUNT_STEP]

/*
.begin
	.reg temp_scratch_addr $temp_scratch_data
	.sig scratch_sig
	immed[temp_scratch_addr, FUTURE_COUNT_STEP_ADDR]
	scratch[read, $temp_scratch_data, temp_scratch_addr, 0, 1], ctx_swap[scratch_sig]
	alu[future_count_incr, --, B, $temp_scratch_data]
.end
*/
.begin
	.reg temp_scratch_addr $temp_scratch_data
	.sig scratch_sig
	immed[temp_scratch_addr, LOOP_COUNT_ADDR]
	scratch[read, $temp_scratch_data, temp_scratch_addr, 0, 1], ctx_swap[scratch_sig]
	alu[total_loop, --, B, $temp_scratch_data]
.end

.begin
	.reg temp_scratch_addr $temp_scratch_data
	.sig scratch_sig
	immed[temp_scratch_addr, BURST_COUNT_ADDR]
	scratch[read, $temp_scratch_data, temp_scratch_addr, 0, 1], ctx_swap[scratch_sig]
	alu[pkt_in_one_burst, --, B, $temp_scratch_data]
.end

.if (cur_me == 0)
	immed[base_element_for_port, (TBUF_ELEM_COUNT_PER_PORT * PORT_0)]
	immed[TxSequenceAddr, TX_SEQUENCE_0]
.elif (cur_me == 1)
//	ctx_arb[kill]
	immed[base_element_for_port, (TBUF_ELEM_COUNT_PER_PORT * PORT_1)]
	immed[TxSequenceAddr, TX_SEQUENCE_1]
.elif (cur_me == 2)
//	ctx_arb[kill]
	immed[base_element_for_port, (TBUF_ELEM_COUNT_PER_PORT * PORT_2)]
	immed[TxSequenceAddr, TX_SEQUENCE_2]
.else
//	ctx_arb[kill]
	immed[base_element_for_port, (TBUF_ELEM_COUNT_PER_PORT * PORT_3)]
	immed[TxSequenceAddr, TX_SEQUENCE_3]
.endif

	alu[--, cur_me, -, 0]
	beq[init_msf#]
	ctx_arb[inter_me_sig]
	br[msf_init_done#]


init_msf#:
//****************************************************
// Configure TX Control
//****************************************************
	immed[MsfAddress, MSF_TX_CONTROL]
	immed[TxConfigData0, (TX_ELEMENT_SIZE << 2)]	// put control and data into diff freelist
	immed_w1[TxConfigData0, ((TX_ENABLE_MASK << 8) | (TX_MODE << 6) | (TX_WIDTH << 4) | (TX_SINGLE_PHY << 3) | (0<<1)|(0<<0))]
	alu[$TxConfigData0, --, B, TxConfigData0]
	msf[write, $TxConfigData0, MsfAddress, 0, 1], ctx_swap[msf_sig]

	immed[MsfAddress, TX_UP_CONTROL_0]
	immed[TxConfigData0, (UP_CTRL_CP_MODE | UP_CTRL_PARITY | UP_CTRL_CELLSIZE | UP_CTRL_DRTIME)]
	alu[$TxConfigData0, --, B, TxConfigData0]
	msf[write, $TxConfigData0, MsfAddress, 0, 1], ctx_swap[msf_sig]
	immed[MsfAddress, TX_UP_CONTROL_1]
	msf[write, $TxConfigData0, MsfAddress, 0, 1], ctx_swap[msf_sig]
	immed[MsfAddress, TX_UP_CONTROL_2]
	msf[write, $TxConfigData0, MsfAddress, 0, 1], ctx_swap[msf_sig]
	immed[MsfAddress, TX_UP_CONTROL_3]
	msf[write, $TxConfigData0, MsfAddress, 0, 1], ctx_swap[msf_sig]

	immed[MsfAddress, MSF_TX_CONTROL]
	immed[TxConfigData0, (TX_ELEMENT_SIZE << 2)]	// put control and data into diff freelist
	immed_w1[TxConfigData0, ((TX_ENABLE_MASK << 12) | (TX_ENABLE_MASK << 8) | (TX_MODE << 6) | (TX_WIDTH << 4) | (TX_SINGLE_PHY << 3) | (0<<1)|(0<<0))]
	alu[$TxConfigData0, --, B, TxConfigData0]
	msf[write, $TxConfigData0, MsfAddress, 0, 1], ctx_swap[msf_sig]


.begin
	.reg temp
	immed[temp, ((ME_1 << 7) | (SIG_THD_NUM << 4) | (INTER_ME_SIG_NUM << 0))]
	alu[--, --, B, temp]
	cap[fast_wr, ALU, interthread_sig]
	immed[temp, ((ME_2 << 7) | (SIG_THD_NUM << 4) | (INTER_ME_SIG_NUM << 0))]
	alu[--, --, B, temp]
	cap[fast_wr, ALU, interthread_sig]
	immed[temp, ((ME_3 << 7) | (SIG_THD_NUM << 4) | (INTER_ME_SIG_NUM << 0))]
	alu[--, --, B, temp]
	cap[fast_wr, ALU, interthread_sig]
.end


msf_init_done#:
	cap[read, $misc_ctrl_val, MISC_CONTROL], ctx_swap[cap_sig]	// Read the MISC_CONTROL reg
	
next_burst#:
//****************************************************
// Configure the TIMESTAMP registers and configure
// the FUTURE_COUNT_SIGNAL register
//****************************************************
	immed[pkt_in_cur_burst, 0]
	immed[future_count_value, 0]
	local_csr_wr[TIMESTAMP_LOW, 0]
	local_csr_wr[TIMESTAMP_HIGH, 0]
	local_csr_wr[CSR_CTX_POINTER, 0]
	local_csr_wr[INDIRECT_FUTURE_COUNT_SIGNAL, FUTURE_COUNT_SIG_NUM]

	alu[--, $misc_ctrl_val, OR, 1, <<7]		// Set the timestamp enable bit
	cap[fast_wr, alu, MISC_CONTROL]			// and write to the MISC_CONTROL register

next_packet#:
	local_csr_wr[CSR_CTX_POINTER, 0]
	alu[future_count_value, future_count_value, +, future_count_incr]
	alu[future_count_value, 0, +16, future_count_value]
	local_csr_wr[INDIRECT_CTX_FUTURE_COUNT, future_count_value]


//*******************************************************

// Read the Transmit Sequence

//*******************************************************

.begin	
	.reg result tmp_val tmp_tbuf $TxSequenceData

read_tx_sequence_loop#:
	msf[read, $TxSequenceData, TxSequenceAddr, 0, 1], ctx_swap[msf_sig]

	alu[result, TBUF_ELEM_COUNT_4PORT_MASK, AND, $TxSequenceData]	// get mpkts actually sent
	alu[tmp_val, TBUF_ELEM_COUNT_4PORT_MASK, AND, tbuf_element]
	alu[--, tmp_val, -, result]
	bge[cont_comp_tbuf_tx_sequnce#], defer[1]
	alu[tmp_tbuf, --, b, tmp_val]		
	alu[tmp_tbuf, tmp_tbuf, +, TBUF_ELEM_COUNT_4PORT]	// wrap around, add tbuf element number
cont_comp_tbuf_tx_sequnce#:
	alu[result, tmp_tbuf, -, result]			// compare with totals in tbuf
	alu[--, result, -, 8]						// compare with threshold
	bge[read_tx_sequence_loop#] 				// loop again
.end //result tmp_tbuf


.set_sig future_count_sig
//*******************************************************
// Write the Transmit Control Word with appropriate data
//*******************************************************
.begin
	.reg temp cur_tbuf_elem

	alu[cur_tbuf_elem, base_element_for_port, +, tbuf_element]
	immed[MsfAddress, TBUF_ELEMENT_CONTROL_V]
	alu[MsfAddress, MsfAddress, OR, cur_tbuf_elem, <<3]

	immed[temp, (TX_CONTROL_SOP | TX_CONTROL_EOP)]
	alu[$TxControlWord0, temp, OR, byte_count, <<24]

	immed[$TxControlWord1, 0]

	ctx_arb[future_count_sig]

	msf[write, $TxControlWord0, MsfAddress, 0, 2], sig_done[msf_sig]
.end

	alu[tbuf_element, tbuf_element, +, 1]
	alu[tbuf_element, tbuf_element, AND, (TBUF_ELEM_COUNT_PER_PORT - 1)]
	alu[pkt_in_cur_burst, pkt_in_cur_burst, +, 1]

.begin
	.reg $temp_reg_val temp_mask
	.reg temp_scratch_addr $temp_scratch_data
	.sig scratch_sig

	.if (pkt_in_cur_burst == pkt_in_one_burst)
		alu[$temp_reg_val, --, B, $misc_ctrl_val]			// Set the timestamp disable bit
		cap[write, $temp_reg_val, MISC_CONTROL], sig_done[cap_sig]	// and write to the MISC_CONTROL register

		.if (total_loop > 0)
			alu[cur_loop, cur_loop, +, 1]

//			.if (cur_loop == total_loop)
//				ctx_arb[kill]
//			.endif
		.endif

		ctx_arb[msf_sig, cap_sig]

		immed[temp_scratch_addr, XSCALE_MSG_ADDR]
		alu[temp_scratch_addr, temp_scratch_addr, OR, cur_me, <<2]
		immed[$temp_scratch_data, 0xFFFF]
wait_for_xscale#:
		scratch[test_and_clr, $temp_scratch_data, temp_scratch_addr, 0], sig_done[scratch_sig]
		ctx_arb[scratch_sig]
		alu[--, --, B, $temp_scratch_data]
		beq[wait_for_xscale#]

		br[next_burst#]
	.else
		ctx_arb[msf_sig]
	.endif
.end

	br[next_packet#]

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品伦一区| 经典三级在线一区| 91麻豆精品国产91久久久资源速度 | 免费成人在线观看| 国产亚洲精品aa午夜观看| 91精品国产综合久久久久| 成人激情av网| 99在线精品观看| 粉嫩嫩av羞羞动漫久久久| 久草在线在线精品观看| 成人欧美一区二区三区| 精品伦理精品一区| 日韩你懂的在线观看| 欧美一级一级性生活免费录像| 亚洲一线二线三线视频| 欧美日韩国产影片| 欧美一区二区三区不卡| 久久这里只有精品首页| 成人午夜激情片| eeuss鲁一区二区三区| 99久久免费视频.com| 久久爱www久久做| 麻豆免费精品视频| 93久久精品日日躁夜夜躁欧美| 精品久久久久香蕉网| 成人免费高清在线| 久久综合狠狠综合久久综合88| 欧美私模裸体表演在线观看| 欧美色图天堂网| 成人免费毛片高清视频| 久久成人综合网| 99精品偷自拍| 99re这里都是精品| 91视频免费观看| 日韩一区二区三区电影在线观看| 欧美日韩国产综合一区二区 | 久久电影国产免费久久电影| 精品一区二区成人精品| 97se狠狠狠综合亚洲狠狠| 91老师国产黑色丝袜在线| 国产精品美女视频| 波多野结衣中文字幕一区二区三区| 久久久精品免费网站| 国内精品久久久久影院一蜜桃| 在线综合视频播放| 亚洲午夜久久久久久久久电影网| 蜜臀久久99精品久久久画质超高清| 欧美中文一区二区三区| 蜜乳av一区二区| 国产香蕉久久精品综合网| jvid福利写真一区二区三区| 亚洲综合色噜噜狠狠| 久久精品一区二区三区四区| 成人av网站在线观看| 中文字幕综合网| 欧美日韩久久不卡| 成人app网站| 久久国产福利国产秒拍| 国产三级精品三级| 欧洲精品在线观看| 国产一区二区成人久久免费影院 | 亚洲一区二区高清| 久久午夜老司机| 欧美视频一区二区| 91色九色蝌蚪| 99久久综合狠狠综合久久| 开心九九激情九九欧美日韩精美视频电影| 精品电影一区二区| 日韩免费观看2025年上映的电影| 欧美在线一二三| 色婷婷av一区二区三区软件| 成人午夜伦理影院| 91麻豆6部合集magnet| 粉嫩欧美一区二区三区高清影视| 老司机精品视频一区二区三区| 亚洲精品videosex极品| 亚洲影视资源网| 久久噜噜亚洲综合| 正在播放亚洲一区| 欧美日韩色一区| 欧美三级韩国三级日本一级| 国产iv一区二区三区| 九九**精品视频免费播放| 首页国产丝袜综合| 午夜久久久久久电影| 国产精品色眯眯| 日韩欧美色综合| 欧美亚洲综合久久| 97久久超碰精品国产| 国产成人免费在线| 国产麻豆成人精品| 又紧又大又爽精品一区二区| 日韩三区在线观看| 久久美女艺术照精彩视频福利播放| 免费观看日韩av| 一区二区久久久| 亚洲一卡二卡三卡四卡无卡久久| 亚洲人xxxx| 日韩精品国产欧美| 三级影片在线观看欧美日韩一区二区| 欧美mv日韩mv国产网站| 日韩一级精品视频在线观看| 91极品美女在线| 成人爱爱电影网址| 欧美日韩国产在线播放网站| 欧美va亚洲va香蕉在线| 欧美一区二区成人| 日韩免费视频一区| 国产精品国产三级国产普通话三级 | 亚洲欧洲精品天堂一级| 国产福利一区二区三区视频在线 | 午夜av一区二区| 欧美精品vⅰdeose4hd| 亚洲自拍另类综合| 欧美日韩黄色影视| 免费在线观看视频一区| 日韩一区二区电影在线| 午夜精品久久久久久久99水蜜桃| 北岛玲一区二区三区四区| 国产成人av一区二区三区在线观看| 一区在线观看免费| 亚洲五月六月丁香激情| 成人永久免费视频| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 亚洲综合精品久久| 国产一区二区三区免费看| 在线这里只有精品| 6080国产精品一区二区| 日韩三级在线免费观看| 国产日韩精品视频一区| 日韩精品亚洲专区| 一本到高清视频免费精品| 91美女在线看| 91蝌蚪porny成人天涯| 欧美影院午夜播放| 亚洲a一区二区| 国产麻豆精品theporn| 日本午夜精品视频在线观看 | 国产成人亚洲综合色影视| 91精品黄色片免费大全| 久久精品国产澳门| 国产精品毛片高清在线完整版| 国产精品美女久久久久高潮 | 欧美日韩一区二区三区不卡| 亚洲成av人片| 国产传媒久久文化传媒| 视频精品一区二区| 久久久不卡网国产精品一区| 欧美一区二区人人喊爽| jizzjizzjizz欧美| 51精品久久久久久久蜜臀| 国产精品免费久久久久| 成人深夜视频在线观看| 美女免费视频一区二区| 久久综合精品国产一区二区三区| 国内偷窥港台综合视频在线播放| 欧美成人精品3d动漫h| 久久成人免费网| 欧美三日本三级三级在线播放| 国产综合色在线| 五月天久久比比资源色| 欧美激情一区在线| 欧美精品 国产精品| 欧美在线观看你懂的| 精品亚洲aⅴ乱码一区二区三区| 成人一区在线看| 亚洲在线观看免费视频| 一本色道久久综合亚洲91| 激情小说欧美图片| 日韩国产一二三区| 国产一区在线视频| 亚洲成av人片一区二区梦乃 | 久久精品视频网| 久久蜜桃av一区二区天堂| 91片在线免费观看| 欧美亚洲高清一区| 不卡一区二区在线| 激情六月婷婷久久| 国产成人免费视频网站| eeuss鲁片一区二区三区| 成人激情图片网| 欧美精品一级二级| 91精品国产综合久久香蕉的特点| 久久综合中文字幕| 欧美一级xxx| 精品国产一区二区三区不卡| 激情文学综合网| 国产精品88av| hitomi一区二区三区精品| 天堂蜜桃一区二区三区| 日韩一级精品视频在线观看| 久久综合久久久久88| 91麻豆精品国产91久久久久| 欧美激情综合五月色丁香小说| 99精品视频一区二区三区| 成人免费的视频| 一区二区三区四区亚洲| 精品国产sm最大网站| 欧美日韩午夜在线| 中文字幕精品一区|