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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? line_rate_bd_eg_tx.uc

?? 開發(fā)Inetl IXP2400平臺所必須的硬件診斷和測試程序。該軟件包支持的功能包括CPU基本功能檢測
?? UC
字號:
/* line_rate_eg_tx.uc
 *
 * This line rate test is not a performance benchmark. It will be used to
 * verify whether the system is able to handle the data traffic that is
 * pumped to the media port at whatever line rate that is pumped into the
 * system. A packet generator will be required for this test.
 *
 * NOTE: THIS IS NOT A PERFORMANCE BENCHMARK!!!! IT IS JUST TO CHECK IF THE
 *       HARDWARE IS ABLE TO HANDLE DATA AT THE LINERATE THAT IS BEING
 *       PUMPED INTO THE SYSTEM
 *
 *---------------------------------------------------------------------------
 *                                                                      
 *                  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: dalsraja, May 8, 2002
 * 
 * 
 * --------------------------------------------------------------------------
 */

#include "common_uc.h"

#define TX_ENABLE_MASK					0x1
#define TX_MODE							MSF_POS_UTOPIA
#define TX_WIDTH						MSF_WIDTH_1x32
#define TX_SINGLE_PHY					MSF_SINGLE_PHY
#define TX_ELEMENTSIZE					MSF_ELEMENTSIZE_128
#define TBUF_ELEM_COUNT					(1 << (7 - TX_ELEMENTSIZE))	// Tot. elements
#define TBUF_ADDR_SHF					(6 + TX_ELEMENTSIZE)
#define TX_ELEMENTSIZE_BYTE				(1 << (6 + TX_ELEMENTSIZE))
#define TBUF_CTRL_ADDR_SHF				(3 + TX_ELEMENTSIZE)

#define SRAM_DESC_BASE					0x200000		// 4 Meg onwards
#define DRAM_PCKT_BASE					0x1000000		// 16 Meg onwards

#define ME_NUMBER_RX					0
#define ME_NUMBER_TX					1
#define RX_THD_NUM						0
#define TX_THD_NUM						0
#define INTER_ME_SIG_NUM				15
#define MESSAGE_ADDR					0x200			// For messaging between MEs
#define TX_CONTROL_EOP					(1 << 8)
#define TX_CONTROL_SOP					(1 << 9)
#define FULL							0xFFFFFFFF
#define BUFFER_ADDR_MASK				0xFFFFFF

#define NEXT_CTX_SIGNAL					&next_ctx_sig
#define SIG_CTX							(0x80 | NEXT_CTX_SIGNAL << 3)

.reg sram_addr
.reg temp $temp
.reg MsfAddress MsfAddress0 MsfAddress1
.reg byte_count ring_num mask_qa
.reg pci_base mailbox0 mailbox1 $pci_rw0 $pci_rw1
.reg TxConfigData0
.reg $TxConfigData0
.reg $TxControlWord0 $TxControlWord1
.reg $scratch_data0 $scratch_data1
.reg @tbuf_element cur_tbuf_elem
.reg buf_addr pkt_buff_addr tbuf cur_tbuf_addr
.reg @sramDescBase @dramPacketBase @t0 @wait
.sig dram_sig msf_sig interthd_sig cap_sig scratch_sig next_ctx_sig
.sig pci_sig0 pci_sig1
.sig sram_sig

.xfer_order $TxControlWord0 $TxControlWord1
.xfer_order $scratch_data0 $scratch_data1

.addr interthd_sig INTER_ME_SIG_NUM
.set_sig interthd_sig next_ctx_sig

init_common#:
	immed[mask_qa, (BUFFER_ADDR_MASK & MASK_16BIT)]
	immed_w1[mask_qa, ((BUFFER_ADDR_MASK >> 16) & MASK_16BIT)]		// Used to mask out the buffer address on dequeue
	immed[ring_num, RING_0]
	immed[tbuf, RBUF_TBUF]

	br!=ctx[0, wait_for_next_ctx_sig#]

init#:
	immed[@tbuf_element, 0]

	immed[@sramDescBase, (SRAM_DESC_BASE & MASK_16BIT)]
	immed_w1[@sramDescBase, ((SRAM_DESC_BASE >> 16) & MASK_16BIT)]

	immed[@dramPacketBase, (DRAM_PCKT_BASE & MASK_16BIT)]
	immed_w1[@dramPacketBase, ((DRAM_PCKT_BASE >> 16) & MASK_16BIT)]

.begin
	.reg channel_number
	alu[channel_number, --, B, CHAN_NUMBER, <<SRAM_CHANNEL_NUMBER_FIELD]
	alu[channel_number, channel_number, OR, Q_NUMBER, <<SRAM_Q_ARRAY_NUMBER_FIELD]
	alu[@t0, --, B, channel_number]
.end


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

//	immed[$scratch_base,0x200]
	alu[$scratch_base, --, B, 0xC, <<28]	// Use ring size of 1024 lw and base 0x0
	immed[$scratch_head,0]
	immed[$scratch_tail,0]

	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]
.end


//****************************************************
// Configure TX Control
//****************************************************
	immed[MsfAddress, MSF_TX_CONTROL]
	immed[TxConfigData0, (TX_ELEMENTSIZE << 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)|(1<<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, MSF_TX_CONTROL]
	immed[TxConfigData0, (TX_ELEMENTSIZE << 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)|(1<<0))]
	alu[$TxConfigData0, --, B, TxConfigData0]
	msf[write, $TxConfigData0, MsfAddress, 0, 1], ctx_swap[msf_sig]

	immed[temp, ((ME_NUMBER_RX << 7) | (RX_THD_NUM << 4) | (INTER_ME_SIG_NUM << 0))]
	alu[--, --, B, temp]
	cap[fast_wr, ALU, interthread_sig]	// to signal Rx ME that Tx has finished its init
	br[wait_for_assignment#]

wait_for_next_ctx_sig#:
	.set_sig next_ctx_sig
	ctx_arb[next_ctx_sig]

wait_for_assignment#:
	scratch[get, $scratch_data0, ring_num, 0, 1], ctx_swap[scratch_sig]
	alu[--, $scratch_data0, -, 0]
	beq[wait_for_assignment#]		// branch to label if there is no new assignment

//	local_csr_wr[SAME_ME_SIGNAL, SIG_CTX]
	alu[buf_addr, mask_qa, AND, $scratch_data0]
	alu[byte_count, --, B, $scratch_data0, >>24]
	alu[cur_tbuf_elem, --, B, @tbuf_element]
	alu[@tbuf_element, @tbuf_element, +, 1]
	alu[--, TBUF_ELEM_COUNT, -, @tbuf_element]
	bne[transmit#]
	alu[@tbuf_element, --, B, 0]


transmit#:
//****************************************************
// Move data to TBUF from DRAM
//****************************************************
.begin
	.reg refcnt pkt_buf_addr
	.set_sig next_ctx_sig

	alu[pkt_buf_addr, --, B, buf_addr, <<5]
	alu[pkt_buf_addr, pkt_buf_addr, +, @dramPacketBase]

	alu[cur_tbuf_addr, tbuf, OR, cur_tbuf_elem, <<TBUF_ADDR_SHF]
	alu[cur_tbuf_addr, --, B, cur_tbuf_addr, <<5]
	alu[cur_tbuf_addr, cur_tbuf_addr, OR, 1, <<4]		// set the overwrite bit for the TBUF addr
	alu[refcnt, --, B, byte_count, >>3]
	alu[--, byte_count, AND, 0x7]
	bne[cont1#]
	alu[refcnt, refcnt, -, 1]			// Calculate the refcnt for indirect ref
cont1#:
	local_csr_wr[SAME_ME_SIGNAL, SIG_CTX]
	alu[refcnt, refcnt, OR, 1, <<4]		// Set the overwrite bit for refcnt
	alu[refcnt, --, B, refcnt, <<21]	// Shift to appropriate bit
	alu[--, cur_tbuf_addr, OR, refcnt]	// indirect ref
	dram[tbuf_wr, --, pkt_buf_addr, 0, 8], indirect_ref, sig_done[dram_sig]
	ctx_arb[dram_sig/*, next_ctx_sig*/]	
.end


//*******************************************************
// Write the Transmit Control Word with appropriate data
//*******************************************************
.begin 
	.reg MsfAddress
	.set_sig next_ctx_sig

//	local_csr_wr[SAME_ME_SIGNAL, SIG_CTX]
	immed[MsfAddress, TBUF_ELEMENT_CONTROL_V]
	alu[MsfAddress, MsfAddress, OR, cur_tbuf_elem, <<3] //TBUF_CTRL_ADDR_SHF

	immed[temp, (TX_CONTROL_SOP | TX_CONTROL_EOP)]
	alu[$TxControlWord0, temp, OR, byte_count, <<24]		// For Tx Control Word

	immed[$TxControlWord1, 0]

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


//*******************************************************
// Free buffer
//*******************************************************
.begin
	.reg cellcount t0

	local_csr_wr[SAME_ME_SIGNAL, SIG_CTX]
	alu[t0, --, B, @t0]
	alu[temp, @sramDescBase, +, buf_addr]
	alu[temp, --, B, temp, >>2]

	immed[cellcount, 0x1c, <<16]		// set cell count to 1, set OV EOP, and SOP
	
	alu[--, cellcount, OR, 0]
	sram[enqueue,  --, t0, temp], indirect_ref
.end


br[wait_for_assignment#]

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩情涩欧美日韩视频| 国产亲近乱来精品视频| 国产亚洲短视频| 亚洲1区2区3区视频| 成人性生交大片免费看中文| 7878成人国产在线观看| 亚洲欧美二区三区| 国产成人精品影视| 日韩免费视频一区二区| 亚洲一区免费视频| 不卡一二三区首页| 久久久综合激的五月天| 日韩高清不卡在线| 欧美天堂一区二区三区| 亚洲人精品午夜| 成人免费高清视频| 久久久美女毛片| 捆绑变态av一区二区三区| 欧美日韩视频不卡| 亚洲国产一区二区在线播放| 99国内精品久久| 欧美国产日韩在线观看| 国产黄色精品网站| 国产网站一区二区| 岛国一区二区在线观看| 国产三级欧美三级| 国产91清纯白嫩初高中在线观看| 精品国产免费人成在线观看| 久久电影网站中文字幕| 日韩一区二区三区av| 日韩高清在线不卡| 91麻豆精品国产91久久久使用方法| 亚洲最新在线观看| 精品视频一区二区不卡| 亚洲高清视频中文字幕| 777xxx欧美| 久久精品国产久精国产爱| 精品欧美一区二区三区精品久久 | 日韩一区二区三区视频在线| 天天综合色天天| 7878成人国产在线观看| 久久国产精品第一页| 26uuu另类欧美亚洲曰本| 国产美女一区二区三区| 日本一区二区三区免费乱视频| 国产精品一级二级三级| 欧美激情一区二区| 色综合视频在线观看| 亚洲影视在线播放| 日韩欧美一区二区视频| 国产高清精品在线| 一区二区三区免费| 欧美日韩免费不卡视频一区二区三区| 五月天一区二区三区| 欧美大片在线观看| 99天天综合性| 午夜精品视频在线观看| 欧美va亚洲va香蕉在线| 不卡视频免费播放| 亚洲123区在线观看| 久久久久久一二三区| 91欧美激情一区二区三区成人| 日韩在线a电影| 久久久久亚洲蜜桃| 欧美亚洲综合网| 精品一区二区精品| 亚洲精品欧美二区三区中文字幕| 欧美巨大另类极品videosbest | 欧美在线高清视频| 国产一区二区不卡在线| 夜夜精品视频一区二区| 精品欧美一区二区在线观看 | 91精品在线麻豆| 99精品视频一区二区| 日本三级韩国三级欧美三级| 中文字幕人成不卡一区| 日韩一级黄色大片| 日本丰满少妇一区二区三区| 精品无人区卡一卡二卡三乱码免费卡 | 欧美日韩高清一区二区不卡| 国产精品自拍三区| 天堂在线亚洲视频| 中文字幕在线播放不卡一区| 欧美成人精品二区三区99精品| 97精品超碰一区二区三区| 狠狠色狠狠色综合系列| 亚洲综合精品自拍| 国产精品久久一卡二卡| 日韩欧美电影一二三| 欧美性视频一区二区三区| 成人免费看的视频| 国产一区视频网站| 视频一区欧美精品| 亚洲高清免费观看高清完整版在线观看| 久久久久久亚洲综合| 欧美一区二区三区免费在线看| 日韩av在线发布| 亚洲少妇屁股交4| 国产亚洲一区二区三区在线观看| 91精品在线免费观看| 欧美综合一区二区三区| 99国产精品久久久久久久久久久| 国产成人午夜片在线观看高清观看| 五月天一区二区三区| 亚洲欧洲精品一区二区三区 | 99精品视频一区| 成人免费av在线| 国产v综合v亚洲欧| 韩国午夜理伦三级不卡影院| 另类调教123区| 久久99最新地址| 久久精品二区亚洲w码| 六月丁香婷婷久久| 奇米四色…亚洲| 久久99精品视频| 久久99国产精品免费| 国产一区二区在线视频| 国内久久精品视频| 国产福利一区在线| k8久久久一区二区三区| 99久久精品久久久久久清纯| 91香蕉视频在线| 一本久久综合亚洲鲁鲁五月天| 色综合视频一区二区三区高清| 日本高清不卡aⅴ免费网站| 欧美三级视频在线| 欧美精品在线观看一区二区| 日韩欧美一区在线观看| 欧美精品一区二区不卡| 国产欧美一区二区三区在线看蜜臀| 国产欧美1区2区3区| 亚洲美女免费视频| 午夜精品成人在线| 精品一区二区久久| 成人小视频免费在线观看| 色乱码一区二区三区88| 欧美老人xxxx18| 亚洲精品一区在线观看| 欧美激情在线一区二区三区| 亚洲男人天堂av网| 日本三级亚洲精品| 成人午夜短视频| 欧美性xxxxxxxx| 久久久久亚洲蜜桃| 亚洲精品老司机| 麻豆精品蜜桃视频网站| 成人一区二区三区| 这里只有精品免费| 国产精品久久久久永久免费观看 | 国产精品国产三级国产专播品爱网| 亚洲精品国产第一综合99久久 | www.欧美.com| 91精选在线观看| 国产精品免费免费| 日韩 欧美一区二区三区| 国产成人亚洲综合a∨婷婷图片| 色爱区综合激月婷婷| 精品国产乱码久久久久久久 | 中文一区二区在线观看| 亚洲一区在线视频观看| 国产一区二区三区四区五区美女| 在线国产亚洲欧美| 久久精品亚洲麻豆av一区二区 | 国产精品1024| 欧美精品久久天天躁| 国产精品美女久久久久久久| 日韩精品视频网| 色综合天天综合网国产成人综合天| 欧美不卡一二三| 亚洲国产aⅴ天堂久久| 成人激情小说乱人伦| 91精品免费观看| 亚洲精品老司机| 99久久精品免费| 国产欧美一区二区精品秋霞影院 | 91麻豆精品国产91久久久资源速度| 国产精品二区一区二区aⅴ污介绍| 麻豆一区二区三| 欧美日韩久久一区| 亚洲女厕所小便bbb| 成人午夜电影网站| 国产日本一区二区| 国产综合色产在线精品| 欧美一区二区三区不卡| 亚洲一区中文日韩| 色偷偷一区二区三区| 中文字幕亚洲在| 成人网在线免费视频| 国产清纯白嫩初高生在线观看91| 日本美女一区二区| 欧美一级精品大片| 奇米色一区二区| 日韩午夜电影av| 麻豆国产欧美一区二区三区| 日韩欧美国产一区在线观看| 免费在线观看一区二区三区| 911精品产国品一二三产区| 日韩精品一级二级| 91精品国产麻豆国产自产在线 | 午夜精品福利一区二区蜜股av|