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

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

?? ixnpedlnpemgrutils.c

?? u-boot1.3.0的原碼,從配了網絡驅動和FLASH的驅動,并該用ESC竟如
?? C
?? 第 1 頁 / 共 2 頁
字號:
/** * @file IxNpeDlNpeMgrUtils.c * * @author Intel Corporation * @date 18 February 2002 * * @brief This file contains the implementation of the private API for the  *        IXP425 NPE Downloader NpeMgr Utils module * *  * @par * IXP400 SW Release version 2.0 *  * -- Copyright Notice -- *  * @par * Copyright 2001-2005, Intel Corporation. * All rights reserved. *  * @par * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in the *    documentation and/or other materials provided with the distribution. * 3. Neither the name of the Intel Corporation nor the names of its contributors *    may be used to endorse or promote products derived from this software *    without specific prior written permission. *  * @par * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. *  * @par * -- End of Copyright Notice --*//* * Put the system defined include files required. */#define IX_NPE_DL_MAX_NUM_OF_RETRIES 1000000 /**< Maximum number of                                              * retries before                                              * timeout					                          */  /* * Put the user defined include files required. */#include "IxOsal.h"#include "IxNpeDl.h"#include "IxNpeDlNpeMgrUtils_p.h"#include "IxNpeDlNpeMgrEcRegisters_p.h"#include "IxNpeDlMacros_p.h"/* * #defines and macros used in this file. *//* used to bit-mask a number of bytes */#define IX_NPEDL_MASK_LOWER_BYTE_OF_WORD  0x000000FF#define IX_NPEDL_MASK_LOWER_SHORT_OF_WORD 0x0000FFFF#define IX_NPEDL_MASK_FULL_WORD           0xFFFFFFFF#define IX_NPEDL_BYTES_PER_WORD           4#define IX_NPEDL_BYTES_PER_SHORT          2#define IX_NPEDL_REG_SIZE_BYTE            8#define IX_NPEDL_REG_SIZE_SHORT           16#define IX_NPEDL_REG_SIZE_WORD            32/* * Introduce extra read cycles after issuing read command to NPE * so that we read the register after the NPE has updated it * This is to overcome race condition between XScale and NPE */#define IX_NPEDL_DELAY_READ_CYCLES        2/* * To mask top three MSBs of 32bit word to download into NPE IMEM */#define IX_NPEDL_MASK_UNUSED_IMEM_BITS    0x1FFFFFFF;/* * typedefs */typedef struct{    UINT32 regAddress;    UINT32 regSize;} IxNpeDlCtxtRegAccessInfo;/* module statistics counters */typedef struct{    UINT32 insMemWrites;    UINT32 insMemWriteFails;    UINT32 dataMemWrites;    UINT32 dataMemWriteFails;    UINT32 ecsRegWrites;    UINT32 ecsRegReads;    UINT32 dbgInstructionExecs;    UINT32 contextRegWrites;    UINT32 physicalRegWrites;    UINT32 nextPcWrites;} IxNpeDlNpeMgrUtilsStats;/* * Variable declarations global to this file only.  Externs are followed by * static variables. *//*  * contains useful address and function pointers to read/write Context Regs,  * eliminating some switch or if-else statements in places */static IxNpeDlCtxtRegAccessInfo ixNpeDlCtxtRegAccInfo[IX_NPEDL_CTXT_REG_MAX] ={    {	IX_NPEDL_CTXT_REG_ADDR_STEVT,	IX_NPEDL_REG_SIZE_BYTE    },    {	IX_NPEDL_CTXT_REG_ADDR_STARTPC,	IX_NPEDL_REG_SIZE_SHORT    },    {	IX_NPEDL_CTXT_REG_ADDR_REGMAP,	IX_NPEDL_REG_SIZE_SHORT    },    {	IX_NPEDL_CTXT_REG_ADDR_CINDEX,	IX_NPEDL_REG_SIZE_BYTE    }};static UINT32 ixNpeDlSavedExecCount = 0;static UINT32 ixNpeDlSavedEcsDbgCtxtReg2 = 0;static IxNpeDlNpeMgrUtilsStats ixNpeDlNpeMgrUtilsStats;/* * static function prototypes. */PRIVATE __inline__ voidixNpeDlNpeMgrWriteCommandIssue (UINT32 npeBaseAddress, UINT32 cmd,				UINT32 addr, UINT32 data);PRIVATE __inline__ UINT32ixNpeDlNpeMgrReadCommandIssue (UINT32 npeBaseAddress, UINT32 cmd, UINT32 addr);PRIVATE IX_STATUSixNpeDlNpeMgrLogicalRegRead (UINT32 npeBaseAddress, UINT32 regAddr,			     UINT32 regSize, UINT32 ctxtNum, UINT32 *regVal);PRIVATE IX_STATUSixNpeDlNpeMgrLogicalRegWrite (UINT32 npeBaseAddress, UINT32 regAddr,			      UINT32 regVal, UINT32 regSize,			      UINT32 ctxtNum, BOOL verify);/* * Function definition: ixNpeDlNpeMgrWriteCommandIssue */PRIVATE __inline__ voidixNpeDlNpeMgrWriteCommandIssue (    UINT32 npeBaseAddress,    UINT32 cmd,    UINT32 addr,    UINT32 data){    IX_NPEDL_REG_WRITE (npeBaseAddress, IX_NPEDL_REG_OFFSET_EXDATA, data);    IX_NPEDL_REG_WRITE (npeBaseAddress, IX_NPEDL_REG_OFFSET_EXAD, addr);    IX_NPEDL_REG_WRITE (npeBaseAddress, IX_NPEDL_REG_OFFSET_EXCTL, cmd);}/* * Function definition: ixNpeDlNpeMgrReadCommandIssue */PRIVATE __inline__ UINT32ixNpeDlNpeMgrReadCommandIssue (    UINT32 npeBaseAddress,    UINT32 cmd,    UINT32 addr){    UINT32 data = 0;    int i;    IX_NPEDL_REG_WRITE (npeBaseAddress, IX_NPEDL_REG_OFFSET_EXAD, addr);    IX_NPEDL_REG_WRITE (npeBaseAddress, IX_NPEDL_REG_OFFSET_EXCTL, cmd);    for (i = 0; i <= IX_NPEDL_DELAY_READ_CYCLES; i++)    {	IX_NPEDL_REG_READ (npeBaseAddress, IX_NPEDL_REG_OFFSET_EXDATA, &data);    }    return data;}/* * Function definition: ixNpeDlNpeMgrInsMemWrite */IX_STATUSixNpeDlNpeMgrInsMemWrite (    UINT32 npeBaseAddress,    UINT32 insMemAddress,    UINT32 insMemData,    BOOL verify){    UINT32 insMemDataRtn;    ixNpeDlNpeMgrWriteCommandIssue (npeBaseAddress,				    IX_NPEDL_EXCTL_CMD_WR_INS_MEM,				    insMemAddress, insMemData);    if (verify)    {        /* write invalid data to this reg, so we can see if we're reading 	   the EXDATA register too early */	IX_NPEDL_REG_WRITE (npeBaseAddress, IX_NPEDL_REG_OFFSET_EXDATA,			    ~insMemData);        /*Disabled since top 3 MSB are not used for Azusa hardware Refer WR:IXA00053900*/        insMemData&=IX_NPEDL_MASK_UNUSED_IMEM_BITS;        insMemDataRtn=ixNpeDlNpeMgrReadCommandIssue (npeBaseAddress,                                           IX_NPEDL_EXCTL_CMD_RD_INS_MEM,                                           insMemAddress);        insMemDataRtn&=IX_NPEDL_MASK_UNUSED_IMEM_BITS;	if (insMemData != insMemDataRtn)	{	    ixNpeDlNpeMgrUtilsStats.insMemWriteFails++;	    return IX_FAIL;	}    }    ixNpeDlNpeMgrUtilsStats.insMemWrites++;    return IX_SUCCESS;}/* * Function definition: ixNpeDlNpeMgrDataMemWrite */IX_STATUSixNpeDlNpeMgrDataMemWrite (    UINT32 npeBaseAddress,    UINT32 dataMemAddress,    UINT32 dataMemData,    BOOL verify){    ixNpeDlNpeMgrWriteCommandIssue (npeBaseAddress,				    IX_NPEDL_EXCTL_CMD_WR_DATA_MEM,				    dataMemAddress, dataMemData);    if (verify)    {        /* write invalid data to this reg, so we can see if we're reading 	   the EXDATA register too early */	IX_NPEDL_REG_WRITE (npeBaseAddress, IX_NPEDL_REG_OFFSET_EXDATA, ~dataMemData);	if (dataMemData !=	    ixNpeDlNpeMgrReadCommandIssue (npeBaseAddress,					   IX_NPEDL_EXCTL_CMD_RD_DATA_MEM,					   dataMemAddress))	{	    ixNpeDlNpeMgrUtilsStats.dataMemWriteFails++;	    return IX_FAIL;	}    }    ixNpeDlNpeMgrUtilsStats.dataMemWrites++;    return IX_SUCCESS;}/* * Function definition: ixNpeDlNpeMgrExecAccRegWrite */voidixNpeDlNpeMgrExecAccRegWrite (    UINT32 npeBaseAddress,    UINT32 regAddress,    UINT32 regData){    ixNpeDlNpeMgrWriteCommandIssue (npeBaseAddress,				    IX_NPEDL_EXCTL_CMD_WR_ECS_REG,				    regAddress, regData);    ixNpeDlNpeMgrUtilsStats.ecsRegWrites++;}/* * Function definition: ixNpeDlNpeMgrExecAccRegRead */UINT32ixNpeDlNpeMgrExecAccRegRead (    UINT32 npeBaseAddress,    UINT32 regAddress){    ixNpeDlNpeMgrUtilsStats.ecsRegReads++;    return ixNpeDlNpeMgrReadCommandIssue (npeBaseAddress,					  IX_NPEDL_EXCTL_CMD_RD_ECS_REG,					  regAddress);}/* * Function definition: ixNpeDlNpeMgrCommandIssue */voidixNpeDlNpeMgrCommandIssue (    UINT32 npeBaseAddress,    UINT32 command)     {    IX_NPEDL_TRACE0 (IX_NPEDL_FN_ENTRY_EXIT,		     "Entering ixNpeDlNpeMgrCommandIssue\n");    IX_NPEDL_REG_WRITE (npeBaseAddress, IX_NPEDL_REG_OFFSET_EXCTL, command);    IX_NPEDL_TRACE0 (IX_NPEDL_FN_ENTRY_EXIT,		     "Exiting ixNpeDlNpeMgrCommandIssue\n");}/* * Function definition: ixNpeDlNpeMgrDebugInstructionPreExec */voidixNpeDlNpeMgrDebugInstructionPreExec(    UINT32 npeBaseAddress){    /* turn off the halt bit by clearing Execution Count register. */    /* save reg contents 1st and restore later */    IX_NPEDL_REG_READ (npeBaseAddress, IX_NPEDL_REG_OFFSET_EXCT,		       &ixNpeDlSavedExecCount);    IX_NPEDL_REG_WRITE (npeBaseAddress, IX_NPEDL_REG_OFFSET_EXCT, 0);    /* ensure that IF and IE are on (temporarily), so that we don't end up     * stepping forever */    ixNpeDlSavedEcsDbgCtxtReg2 = ixNpeDlNpeMgrExecAccRegRead (npeBaseAddress,				                   IX_NPEDL_ECS_DBG_CTXT_REG_2);    ixNpeDlNpeMgrExecAccRegWrite (npeBaseAddress, IX_NPEDL_ECS_DBG_CTXT_REG_2,				  (ixNpeDlSavedEcsDbgCtxtReg2 |				   IX_NPEDL_MASK_ECS_DBG_REG_2_IF |				   IX_NPEDL_MASK_ECS_DBG_REG_2_IE));}/* * Function definition: ixNpeDlNpeMgrDebugInstructionExec */IX_STATUSixNpeDlNpeMgrDebugInstructionExec(    UINT32 npeBaseAddress,    UINT32 npeInstruction,    UINT32 ctxtNum,    UINT32 ldur){    UINT32 ecsDbgRegVal;    UINT32 oldWatchcount, newWatchcount;    UINT32 retriesCount = 0;    IX_STATUS status = IX_SUCCESS;    IX_NPEDL_TRACE0 (IX_NPEDL_FN_ENTRY_EXIT,		     "Entering ixNpeDlNpeMgrDebugInstructionExec\n");    /* set the Active bit, and the LDUR, in the debug level */    ecsDbgRegVal = IX_NPEDL_MASK_ECS_REG_0_ACTIVE |	(ldur << IX_NPEDL_OFFSET_ECS_REG_0_LDUR);    ixNpeDlNpeMgrExecAccRegWrite (npeBaseAddress, IX_NPEDL_ECS_DBG_CTXT_REG_0,				  ecsDbgRegVal);    /*     * set CCTXT at ECS DEBUG L3 to specify in which context to execute the     * instruction, and set SELCTXT at ECS DEBUG Level to specify which context     * store to access.     * Debug ECS Level Reg 1 has form  0x000n000n, where n = context number     */    ecsDbgRegVal = (ctxtNum << IX_NPEDL_OFFSET_ECS_REG_1_CCTXT) |	(ctxtNum << IX_NPEDL_OFFSET_ECS_REG_1_SELCTXT);    ixNpeDlNpeMgrExecAccRegWrite (npeBaseAddress, IX_NPEDL_ECS_DBG_CTXT_REG_1,				  ecsDbgRegVal);    /* clear the pipeline */    ixNpeDlNpeMgrCommandIssue (npeBaseAddress, IX_NPEDL_EXCTL_CMD_NPE_CLR_PIPE);    /* load NPE instruction into the instruction register */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产乱码久久| 国产一区久久久| 国产美女精品在线| 在线观看日韩av先锋影音电影院| 日韩精品专区在线影院观看| 亚洲女人小视频在线观看| 国产在线精品不卡| 日韩视频在线观看一区二区| 亚洲永久免费视频| 99久久精品久久久久久清纯| 精品日产卡一卡二卡麻豆| 亚洲午夜精品在线| 91首页免费视频| 亚洲国产精品成人综合| 国产一区二区三区在线观看免费| 欧美日韩一二三区| 亚洲免费av高清| 国产91精品精华液一区二区三区| 日韩欧美一级二级| 另类小说视频一区二区| 3d动漫精品啪啪一区二区竹菊| 亚洲国产欧美在线| 欧美色图一区二区三区| 亚洲日本青草视频在线怡红院 | av不卡在线播放| 国产色婷婷亚洲99精品小说| 韩国一区二区视频| 久久婷婷综合激情| 国产福利视频一区二区三区| 久久一日本道色综合| 国产精品自拍一区| 国产欧美一区在线| jlzzjlzz亚洲日本少妇| 中文字幕佐山爱一区二区免费| 91影院在线免费观看| 亚洲精选一二三| 欧美日韩精品综合在线| 日韩高清一级片| 日韩欧美123| 国产一区二区在线看| 国产亚洲女人久久久久毛片| 成人高清视频在线| 成人欧美一区二区三区在线播放| 91蜜桃网址入口| 婷婷综合另类小说色区| 欧美不卡激情三级在线观看| 国产成人自拍网| 亚洲欧美日韩系列| 在线成人午夜影院| 国产精品亚洲人在线观看| 国产精品久久久久久久久免费桃花| 色一区在线观看| 日韩av午夜在线观看| 久久久久久97三级| 99视频一区二区| 天天做天天摸天天爽国产一区| 日韩欧美一区二区三区在线| www.欧美.com| 首页亚洲欧美制服丝腿| 国产欧美日韩不卡免费| 在线观看网站黄不卡| 麻豆一区二区99久久久久| 国产亚洲精品aa| 欧美日韩卡一卡二| 国产精品一区二区三区乱码| 亚洲精品久久久蜜桃| 日韩精品影音先锋| 91麻豆文化传媒在线观看| 免费看欧美女人艹b| 国产精品乱码一区二区三区软件| 欧美日韩亚洲综合一区二区三区| 国产另类ts人妖一区二区| 亚洲综合色成人| 国产日韩欧美综合在线| 欧美理论电影在线| eeuss鲁片一区二区三区| 麻豆国产精品视频| 亚洲成在线观看| 中文字幕中文字幕一区二区| 欧美v国产在线一区二区三区| 色婷婷精品久久二区二区蜜臀av | 中文字幕乱码日本亚洲一区二区| 欧美色精品在线视频| 成人精品鲁一区一区二区| 免费在线观看不卡| 亚洲午夜一二三区视频| 国产精品毛片a∨一区二区三区| 日韩视频国产视频| 欧美日韩国产综合久久| 91免费版在线| caoporn国产一区二区| 国产麻豆视频精品| 久久99这里只有精品| 丝袜美腿高跟呻吟高潮一区| 亚洲嫩草精品久久| 最新不卡av在线| 国产精品日日摸夜夜摸av| 欧美精品一区二区不卡 | 国产一区二区三区久久悠悠色av| 亚洲成年人影院| 亚洲一区二区视频在线观看| 中文字幕一区二区在线观看| 国产区在线观看成人精品| 久久久久久久久久美女| 日韩欧美激情一区| 日韩欧美国产一区二区三区| 这里只有精品视频在线观看| 欧美猛男男办公室激情| 欧美午夜精品电影| 日本乱人伦一区| 亚洲欧美自拍偷拍色图| 在线一区二区三区四区| av影院午夜一区| 99久久伊人网影院| 91碰在线视频| 欧美r级电影在线观看| 99国产欧美另类久久久精品| 成人一级视频在线观看| 福利电影一区二区三区| 国产成人av电影在线观看| 国产伦精品一区二区三区视频青涩| 蜜臀av一区二区三区| 麻豆91在线播放免费| 久久国产日韩欧美精品| 久久黄色级2电影| 激情成人综合网| 国产福利一区二区| 色综合天天视频在线观看| 欧美亚洲一区三区| 56国语精品自产拍在线观看| 欧美成人猛片aaaaaaa| 久久婷婷一区二区三区| 国产精品久久一级| 亚洲影视在线播放| 日韩高清欧美激情| 国产91富婆露脸刺激对白| 99精品视频在线免费观看| 色噜噜狠狠色综合欧洲selulu| 精品视频999| 精品国产乱子伦一区| 中文字幕一区二区日韩精品绯色 | 在线不卡一区二区| 在线91免费看| 国产欧美视频在线观看| 亚洲久草在线视频| 免费在线观看不卡| 成av人片一区二区| 在线不卡a资源高清| 久久久久久久性| 亚洲最快最全在线视频| 久久精品国产**网站演员| 92国产精品观看| 欧美一区二区精品在线| 国产精品毛片高清在线完整版 | 国产a视频精品免费观看| 91久久一区二区| 精品国产青草久久久久福利| 亚洲激情av在线| 国产一区二区在线观看免费| 欧美午夜一区二区三区免费大片| 日韩你懂的在线播放| 亚洲女爱视频在线| 国产久卡久卡久卡久卡视频精品| 91久久精品日日躁夜夜躁欧美| 久久亚洲私人国产精品va媚药| 一区二区三区精密机械公司| 国产大陆亚洲精品国产| 在线综合视频播放| 一区二区三区国产精品| 成人一区二区三区视频在线观看| 日韩视频免费观看高清完整版在线观看| 国产精品国产自产拍高清av王其| 精品一区二区在线视频| 欧美人与性动xxxx| 亚洲精品ww久久久久久p站| 国产成人三级在线观看| 日韩欧美另类在线| 日韩不卡手机在线v区| 色综合久久中文字幕综合网| 中日韩av电影| 国产精品538一区二区在线| 日韩一级片在线播放| 亚洲一区二区三区四区五区黄| 不卡视频一二三| 国产精品午夜电影| 国产精品66部| 久久精品视频网| 国产一区在线精品| 久久午夜羞羞影院免费观看| 九九热在线视频观看这里只有精品 | 7799精品视频| 亚洲大型综合色站| 欧美视频一区在线| 国产一区在线观看麻豆| 日韩欧美视频在线| 天天爽夜夜爽夜夜爽精品视频| 一本到不卡免费一区二区| 中文子幕无线码一区tr| 成人黄色电影在线| 国产精品久久久久aaaa樱花|