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

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

?? emi_bw_rx.uc

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

#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 RX_TRANSFER_THREAD				&$TransferReg00
#define RX_SIGNAL_THREAD				&rx_sig_thd

#define MESSAGING_ADDR					0x1000
#define DRAM_PCKT_BASE					0x1000000

#define INTER_ME_SIG_NUM				15
#define SIG_THD_NUM						0

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

.reg cur_me
.reg $TransferReg00 $TransferReg01
.reg RxThreadList bytecnt elem error expected_sequence mask
.reg RxConfigData $RxConfigData0 RxConfigData0
.reg rbuf
.reg MsfAddress Thd_Freelist_Addr Rbuf_Elem_Done
.reg dramPacketBase 
.reg $rbuf_data0 $rbuf_data1
.reg $failure_type $scratch_data
.sig msf_sig sig_dram_xfer1
.sig rx_sig_thd inter_me_sig
.xfer_order $TransferReg00 $TransferReg01
.xfer_order $rbuf_data0 $rbuf_data1
.xfer_order $failure_type $scratch_data

.addr inter_me_sig INTER_ME_SIG_NUM

.set $TransferReg00
.set_sig inter_me_sig

br=ctx[0, Init_Value#]
ctx_arb[kill]

Init_Value#:
.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

.if (cur_me == 0)
	immed[Thd_Freelist_Addr, RX_THREAD_FREELIST_0]
.elif (cur_me == 1)
	immed[Thd_Freelist_Addr, RX_THREAD_FREELIST_1]
.elif (cur_me == 2)
	immed[Thd_Freelist_Addr, RX_THREAD_FREELIST_2]
.else
	immed[Thd_Freelist_Addr, RX_THREAD_FREELIST_3]
.endif

	immed[Rbuf_Elem_Done, RBUF_ELEMENT_DONE]
	immed[rbuf, RBUF_TBUF]
	immed[RxThreadList, ((RX_SIGNAL_THREAD << 12) | (0 << 4))]
	alu[RxThreadList, RxThreadList, OR, cur_me, <<7]
	alu[RxConfigData, RxThreadList, OR, RX_TRANSFER_THREAD]
	alu[RxConfigData, --,  B, RxConfigData, <<16]
	immed[expected_sequence, 0]
	immed[mask, MASK_4BIT]
	
	alu[--, cur_me, -, 0]
	beq[init_msf#]
	ctx_arb[inter_me_sig]
	br[ReceivePacket#]


init_msf#:
//****************************************************
// Configure RX/TX Control
//****************************************************
	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]


//******************************************************
// 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 RxUPControl0

	immed[RxUPControl0, (UP_CTRL_PP_MODE | UP_CTRL_CP_MODE | UP_CTRL_PARITY | UP_CTRL_CELLSIZE | UP_CTRL_DRTIME)]
	alu[$RxConfigData0, --, B, RxUPControl0]
	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
//****************************************************
	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]


.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


//********************************************************
// Start of Test	
//********************************************************
ReceivePacket#:
	.set_sig rx_sig_thd
	msf[fast_wr, --, Thd_Freelist_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
//****************************************
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
	.if (error > 0)
		immed[$failure_type, RECEIVE_ERROR]
		alu[$scratch_data, --, B, $TransferReg00]
		br[rbuf_to_dram#]
	.endif
	

//*************************************
// Transfer from RBUF to xfer register
//*************************************
no_error#:
.begin
	.reg rbuf_addr

	alu[rbuf_addr, rbuf, OR, elem, <<7]
	msf[read, $rbuf_data0, rbuf_addr, 0, 1], ctx_swap[msf_sig]
.end

.begin
	.reg cur_sequence temp
	alu[cur_sequence, --, B, $rbuf_data0, >>24]
	alu[--, expected_sequence, -, cur_sequence]
	beq[sequence_good#]
	immed[$failure_type, SEQUENCE_ERROR]
	alu[$scratch_data, expected_sequence, OR, cur_sequence, <<16]
//	alu[$scratch_data, --, B, $rbuf_data0]
.end


rbuf_to_dram#:
//*********************************
// Transfer from RBUF to DRAM
//*********************************	
.begin
	.reg pkt_buff_addr rel refcnt temp dramPacketBase

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

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

cont1#:
	alu[temp, rbuf, OR, elem, <<7]		// 128B
	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

	br[error_handling#]


//**************************************************************
//  Free up Element by writing to RBUF_Element_Done
//**************************************************************
sequence_good#:
.begin
	.reg temp
	alu[temp, --, B, elem, <<16]
	msf[fast_wr, --, temp, RBUF_ELEMENT_DONE]
.end

	alu[expected_sequence, expected_sequence, +, 1]
	alu[expected_sequence, mask, AND, expected_sequence]

	br[ReceivePacket#]


//**************************************************************
//  If an error occurs, write to XScale to indicate failure
//**************************************************************
error_handling#:
.begin
	.reg scratch_addr
	.sig scratch_sig

	immed[scratch_addr, MESSAGING_ADDR]
	scratch[write, $failure_type, scratch_addr, 0, 2], ctx_swap[scratch_sig]
.end

	ctx_arb[kill]

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人白浆超碰人人人人| 亚洲综合图片区| 国产精品第一页第二页第三页| 国产精品久久久久久久久免费丝袜| 亚洲妇熟xx妇色黄| 国产一区二区三区免费| 欧美午夜电影网| 国产精品福利影院| 国产真实乱对白精彩久久| 欧美日本高清视频在线观看| 国产日韩精品一区| 久久精品国产亚洲一区二区三区| 在线精品国精品国产尤物884a| 久久天天做天天爱综合色| 视频一区欧美日韩| 色欧美日韩亚洲| 中文字幕在线播放不卡一区| 国产一区激情在线| 日韩一级大片在线观看| 亚洲成人自拍一区| 在线精品视频一区二区三四| 国产精品久久久久一区二区三区| 国产中文一区二区三区| 精品国产乱码久久久久久蜜臀 | 国产视频在线观看一区二区三区| 丝袜诱惑制服诱惑色一区在线观看| a美女胸又www黄视频久久| 久久精品一区八戒影视| 国产精品1024| 国产欧美一区二区三区沐欲| 国产91精品在线观看| 国产清纯在线一区二区www| 风流少妇一区二区| 国产精品网曝门| 97久久精品人人澡人人爽| 亚洲欧洲韩国日本视频| av成人老司机| 亚洲已满18点击进入久久| 欧美在线短视频| 视频一区二区三区入口| 日韩欧美激情一区| 国产高清亚洲一区| 国产精品天干天干在观线| 91在线免费看| 亚洲成人免费视频| 日韩欧美在线123| 国产成人av福利| 亚洲欧美乱综合| 欧美日韩aaaaaa| 国内精品写真在线观看| 亚洲国产岛国毛片在线| 在线亚洲人成电影网站色www| 亚洲资源在线观看| 日韩欧美的一区二区| 国产精品99久久久久| 国产精品色婷婷久久58| 欧洲精品视频在线观看| 日韩中文字幕不卡| 国产偷国产偷亚洲高清人白洁| 国产一区二区三区美女| 亚洲婷婷在线视频| 欧美一级日韩不卡播放免费| 国产经典欧美精品| 亚洲美女偷拍久久| 欧美成人女星排名| 99免费精品在线观看| 五月婷婷激情综合| 精品国产区一区| 日本韩国一区二区三区| 理论电影国产精品| 中文字幕一区日韩精品欧美| av激情综合网| 久久精品99久久久| 亚洲丝袜制服诱惑| 久久婷婷色综合| 91女厕偷拍女厕偷拍高清| 欧美aaa在线| 亚洲一区二区三区视频在线播放| 精品久久久网站| 欧美日韩国产一级片| av中文字幕一区| 国产一区在线观看视频| 亚洲成人av一区| 国产精品麻豆网站| 久久这里只有精品首页| 欧美日韩国产综合久久| 色诱亚洲精品久久久久久| 久久99日本精品| 亚洲国产另类精品专区| 中文字幕一区二区三中文字幕| 欧美电影在线免费观看| 91首页免费视频| 成人黄页在线观看| 国产乱子轮精品视频| 午夜视频一区二区三区| 亚洲日本一区二区三区| 国产精品久久久久久久久图文区| 欧美成人艳星乳罩| 日韩一区二区三区电影| 欧美精品丝袜久久久中文字幕| 色天天综合色天天久久| 97精品电影院| 99久久国产综合精品麻豆| 国产1区2区3区精品美女| 国产在线精品免费| 久久精品99国产国产精| 蜜臀va亚洲va欧美va天堂| 午夜精品久久久久久久久久 | 在线看日本不卡| 成人福利视频在线看| 国产福利一区在线| 国产精品一二一区| 国产成人综合视频| 国产成人午夜视频| 成人开心网精品视频| 丁香六月久久综合狠狠色| 成人在线综合网站| av成人老司机| 91国产免费看| 欧美日本乱大交xxxxx| 日韩一区二区三区视频在线| 精品伦理精品一区| 久久精品亚洲一区二区三区浴池| 精品国产一二三区| 国产欧美一区二区精品久导航| 日本一区二区三区四区在线视频| 日本一区二区在线不卡| 成人欧美一区二区三区白人 | 国产欧美日韩精品一区| 国产精品丝袜一区| 亚洲欧美成人一区二区三区| 亚洲国产日韩综合久久精品| 五月婷婷欧美视频| 国产在线一区观看| 91丨porny丨在线| 7777精品伊人久久久大香线蕉经典版下载| 88在线观看91蜜桃国自产| 精品不卡在线视频| 亚洲天堂精品在线观看| 五月婷婷久久综合| 国产91在线观看丝袜| 色狠狠色狠狠综合| 欧美成人精品福利| 国产精品美女久久久久久久久 | 成人三级在线视频| 色综合久久天天| 欧美电影免费观看高清完整版| 久久久久综合网| 亚洲国产日韩综合久久精品| 精品午夜一区二区三区在线观看 | 亚洲麻豆国产自偷在线| 日韩高清不卡一区二区三区| 国产酒店精品激情| 欧美午夜精品理论片a级按摩| 日韩欧美电影在线| 亚洲欧洲综合另类| 激情综合色丁香一区二区| 91一区二区三区在线观看| 日韩精品一区在线| 综合网在线视频| 国产一区二三区好的| 欧美日韩精品免费观看视频 | 亚洲一区在线免费观看| 精品一区二区在线视频| 色综合天天综合色综合av| 日韩欧美色电影| 亚洲一区二区三区美女| 成人午夜精品在线| 欧美xfplay| 日日欢夜夜爽一区| 91久久国产综合久久| 欧美高清精品3d| 国产欧美视频在线观看| 蜜桃视频在线观看一区二区| 91在线视频免费观看| 久久久99精品久久| 蜜桃精品在线观看| 欧美卡1卡2卡| 夜夜嗨av一区二区三区中文字幕| 国产精品911| 精品国产成人在线影院| 日本不卡高清视频| 91浏览器入口在线观看| 欧美成人一区二区三区在线观看| 亚洲国产一区二区视频| 色偷偷久久一区二区三区| 中文字幕av一区二区三区免费看 | 日韩一区二区三区三四区视频在线观看 | 亚洲欧美二区三区| 99热99精品| 亚洲免费观看高清完整版在线观看| 国产在线精品一区二区三区不卡| 日韩精品中文字幕在线不卡尤物 | 亚洲一区二区三区精品在线| 99久久99久久精品免费看蜜桃| 国产日韩欧美电影| 成人手机电影网| 一区在线观看视频| av成人老司机| 亚洲精品中文在线|