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

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

?? syscache.c

?? This file contains board-specific information for the Motorola LoPEC in support of the lopec BSP. S
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* sysCache.c - secondary (L2) cache library for MPC75x, MCP74x0 *//* Copyright 1984-2002 Wind River Systems, Inc. *//* Copyright 1996-2002 Motorola, Inc., All Rights Reserved. *//*modification history--------------------01e,23may02,mil  Updated macros to Tornado 2.2.01d,22oct01,cak  Modified as per Wind River code review.01c,12jul01,cak  Enable L2 Cache on Nitro based boards.01b,02feb01,scb  Removed INCLUDE_CACHE_SUPPORT, INCLUDE_CACHE_L2 conditionals01a,16nov00,scb  Copied from mv5100 version (prev 2.4)*//*DESCRIPTIONThis library provides L2 cache support, and is derived fromcode supplied by Motorola.Support is included for initializing/enabling the L2 Cache on boot andenabling/disabling the L2 Cache with system calls.  Only Inline caches aresupported since there are no VPD-based boards with a look-aside cache.Parameters used to configured the L2 controller are gathered from the L2Cache Record in the VPD.*//* includes */#include "vxWorks.h"#include "sysCache.h"#include "config.h"#include "lopec.h"/* defines */#define BOARD_CONV_SHIFT  25/* forward declarations */STATUS           sysL2CacheInit (void);LOCAL STATUS     sysL2InlineCacheInit (void);void             sysL2CacheEnable (void);LOCAL void       sysL2InlineCacheEnable (void);void             sysL2CacheDisable (void);LOCAL void       sysL2InlineCacheDisable (void);void             sysL2CacheFlush (void);LOCAL void       sysL2InlineCacheFlush (void);void             sysL2CacheInvFunc (void);LOCAL void       sysL2InlineCacheInvFunc (void);LOCAL STATUS     sysL2CacheInfoGet(UCHAR, UCHAR *);LOCAL UINT       sysL2InlineCacheSize (void);LOCAL UINT       sysL2InlineCacheSpd (void);/* externals */IMPORT UINT sysL2crGet (void);IMPORT void sysL2crPut (UINT regVal);IMPORT UINT sysGetMpuSpd (void);IMPORT void sysMaxL2Disable(void);IMPORT void sysMaxL2InvFunc(void);IMPORT void sysMaxL2Flush(void);IMPORT VOIDFUNCPTR _pSysL2CacheInvFunc;IMPORT VOIDFUNCPTR _pSysL2CacheEnable;IMPORT VOIDFUNCPTR _pSysL2CacheFlush;IMPORT VOIDFUNCPTR _pSysL2CacheDisable;/* Cache backside ratio */LOCAL UINT boardConvTable[] =    {    0x0, 0x1, 0x2, 0x4, 0x5, 0x6, 0x0, 0x0, 0x0,    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0    };LOCAL UINT boardFreqTable[] =    {    10, 10, 15, 20, 25, 30, 10, 10,    10, 10, 10, 10, 10, 10, 10, 10    };LOCAL VPD_PACKET * pVpdL2CachePacket = NULL;/******************************************************************************** sysL2CacheInfoGet - Get L2 Cache Info from the VPD.** This routine parses the VPD data structure for a L2 cache record and returns* field information in the record based on the L2CachePacketField that is* passed to it. ** RETURNS: OK, or ERROR if VPD L2 cache record missing or corrupt.** SEE ALSO: sysL2InlineCacheInit(), sysL2GetCacheSize()*/ LOCAL STATUS sysL2CacheInfoGet    (    UCHAR L2CachePacketFieldId,  /* Id for L2 cache record */    UCHAR * pL2CachePacketField  /* pointer to field information */    )    {    UINT i;     UINT fieldSize = 0;    BOOL fieldError = FALSE;    if (pVpdL2CachePacket == NULL)        {        /* Extract a VPD L2 Cache Packet */        if (sysVpdPktGet(VPD_PID_L2, 0, &sysVpdPkts[0], &pVpdL2CachePacket)            == ERROR)            return (ERROR);        }    /* Determine field length and if the field has a valid parameter */    switch (L2CachePacketFieldId)        {        case L2C_MID:        case L2C_DID:           fieldSize = 2;           break;        case L2C_DDW:        case L2C_NOD:        case L2C_NOC:        case L2C_CW:        case L2C_ASSOCIATE:            fieldSize = 1;            break;        case L2C_TYPE:            if (pVpdL2CachePacket->data[L2CachePacketFieldId] > L2C_TYPE_INLINE)                fieldError = TRUE;            else                fieldSize = 1;            break;        case L2C_OPERATIONMODE:            if (pVpdL2CachePacket->data[L2CachePacketFieldId] > L2C_OM_WB)                fieldError = TRUE;            else                fieldSize = 1;            break;        case L2C_ERROR_DETECT:            if (pVpdL2CachePacket->data[L2CachePacketFieldId] > L2C_ED_ECC)                fieldError = TRUE;            else                fieldSize = 1;            break;        case L2C_SIZE:            if (pVpdL2CachePacket->data[L2CachePacketFieldId] > L2C_SIZE_4M)                fieldError = TRUE;            else                fieldSize = 1;            break;        case L2C_TYPE_BACKSIDE:            if (pVpdL2CachePacket->data[L2CachePacketFieldId] > L2C_TYPE_BS_BNP)                fieldError = TRUE;            else                fieldSize = 1;            break;        case L2C_RATIO_BACKSIDE:            if (pVpdL2CachePacket->data[L2CachePacketFieldId] > L2C_RATIO_3_1)                fieldError = TRUE;            else                fieldSize = 1;                break;        default:            fieldError= TRUE;        break;        }    if (!fieldError)       {       if (fieldSize == 1)           pL2CachePacketField[0] =               pVpdL2CachePacket->data[L2CachePacketFieldId];        else           for (i=0; i<fieldSize; i++)               pL2CachePacketField[i] =                   pVpdL2CachePacket->data[L2CachePacketFieldId+i];       return OK;       }    else       return ERROR;    }/******************************************************************************** sysL2CacheInit - initialize the L2 cache ** This routine initializes and enables L2 cache(s) support. ** RETURNS: OK, or ERROR if cache is not present or not supported.** SEE ALSO: sysL2CacheInit(), sysL2CacheEnable(), sysL2CacheDisable()*/ STATUS sysL2CacheInit (void)    {    STATUS status = OK;    /* check for presence of L2 cache */    if (sysL2InlineCacheSize() != 0)        status |= sysL2InlineCacheInit();    if (status == OK)        {        /* hook up the L2 functions */        _pSysL2CacheEnable  = sysL2CacheEnable;        _pSysL2CacheFlush   = sysL2CacheFlush;        _pSysL2CacheDisable = sysL2CacheDisable;        _pSysL2CacheInvFunc = sysL2CacheInvFunc;        }    return (status);    }/******************************************************************************** sysL2InlineCacheInit - initialize the L2 in-line cache.** This routine initializes and enables L2 in-line cache support.** RETURNS: OK, or ERROR if cache is not present or not supported.*/ LOCAL STATUS sysL2InlineCacheInit(void)    {    UINT l2CacheSize;    UINT l2crVal;    UCHAR l2CacheType, l2CacheRatio;    /* check for presence of L2 cache */    if ((l2CacheSize = sysL2InlineCacheSize()) == 0)        return(ERROR);        /* No L2 cache to init */    /* Initialize RAM type, output hold, differential clock */    if (sysL2CacheInfoGet(L2C_TYPE_BACKSIDE, &l2CacheType) == ERROR)        {        sysDebugMsg ("L2 cache record missing or corrupt.  L2 Cache Disabled.",                     CONTINUE_EXECUTION);        return(ERROR);        /* VPD Error */        }    switch ( l2CacheType )        {        case L2C_TYPE_BS_LWP:          /* Late Write, with Parity */        case L2C_TYPE_BS_LWNP:        /* Late Write, without Parity */        /*         * L2PE  = No parity enable         * L2RAM = Pipe reg-reg sync late-write         * L2OH  = 1.0ns         * L2DF  = Diff clock         */              l2crVal = MPC750_L2CR_RAM_PLTWR |              MPC750_L2CR_OH_1NS |              MPC750_L2CR_DF;        break;    case L2C_TYPE_BS_BP:          /* Burst with parity */    case L2C_TYPE_BS_BNP:         /* Burst, without Parity */        /*         * L2PE  = No parity enable         * L2RAM = Pipe reg-reg sync burst         * L2OH  = 0.5ns         * L2DF  = Nondiff clock         */        l2crVal = MPC750_L2CR_RAM_PBRST;              break;    default:        l2crVal = 0;        break;    }    /* Initialize the L2 clock ratio */        if (sysL2CacheInfoGet(L2C_RATIO_BACKSIDE, &l2CacheRatio) == ERROR)        {        sysDebugMsg("L2 cache record missing or corrupt.  L2 cache disabled.",                    CONTINUE_EXECUTION);        return (ERROR);        }    l2crVal |= boardConvTable[l2CacheRatio] << BOARD_CONV_SHIFT;    /*     * if L2 speed is below normal L2 speed threshold, set slow bit in L2     * cache control register.     */    if (sysL2InlineCacheSpd() < MPC750_L2_CACHE_SPEED_THRESHOLD)        l2crVal |= MPC750_L2CR_SL;    /* Set the Cache size */    switch (l2CacheSize)        {        case L2C_MEM_256K:            l2crVal |= MPC750_L2CR_256K;            break;        case L2C_MEM_512K:            l2crVal |= MPC750_L2CR_512K;            break;        case L2C_MEM_1M:            l2crVal |= MPC750_L2CR_1024K;            break;        case L2C_MEM_2M:            l2crVal |= MPC750_L2CR_2048K;            break;        }    /* Write out the L2 cache control register */    sysL2crPut(l2crVal);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色94色欧美sute亚洲13| 国产精品人妖ts系列视频| 日韩精品一区二区三区视频播放| 中文字幕 久热精品 视频在线| 亚洲激情在线播放| 不卡一卡二卡三乱码免费网站| 日韩一卡二卡三卡四卡| 亚洲第一在线综合网站| 97se亚洲国产综合自在线观| 久久毛片高清国产| 久久丁香综合五月国产三级网站| 欧美日韩一区二区在线视频| 亚洲男女毛片无遮挡| 国产不卡视频在线播放| 欧美zozozo| 美女视频免费一区| 欧美一级黄色片| 婷婷成人综合网| 欧美精品日韩综合在线| 午夜视频在线观看一区二区| 欧美视频一区二区在线观看| 亚洲欧美另类图片小说| 99re成人在线| 亚洲精品成人悠悠色影视| 99免费精品视频| 日韩一区在线免费观看| 99久久精品国产麻豆演员表| 国产精品伦理一区二区| 99精品欧美一区二区三区小说| 欧美国产乱子伦 | 久久这里只有精品6| 日韩av二区在线播放| 欧美日韩一区中文字幕| 亚洲电影一区二区| 欧美久久久一区| 蜜臀av性久久久久av蜜臀妖精| 666欧美在线视频| 六月丁香综合在线视频| 精品国产乱码久久久久久图片| 久久99精品久久久| 久久久久久黄色| 成人h动漫精品一区二| 亚洲欧美国产三级| 欧美精品一二三| 国产尤物一区二区在线| 国产精品美女www爽爽爽| 97精品久久久午夜一区二区三区| 尤物在线观看一区| 欧美一级理论片| 丁香天五香天堂综合| 一区二区三区在线观看国产| 欧美日韩免费观看一区三区| 美女国产一区二区三区| 国产亚洲制服色| 色婷婷久久久久swag精品 | 亚洲色欲色欲www在线观看| 色老汉一区二区三区| 日韩国产在线一| 久久久国产精华| 欧美在线视频你懂得| 乱中年女人伦av一区二区| 国产精品少妇自拍| 欧美乱妇15p| 成人精品免费网站| 日韩综合一区二区| 国产精品国产三级国产普通话三级 | 精品国产乱码久久久久久牛牛 | 一区精品在线播放| 欧美日韩不卡视频| 成人动漫精品一区二区| 无吗不卡中文字幕| 中文字幕一区在线| 日韩欧美在线1卡| 色94色欧美sute亚洲线路二| 精品一区二区在线观看| 一区二区三区免费在线观看| 欧美精品一区视频| 欧美日韩国产中文| 成人免费观看av| 麻豆精品新av中文字幕| 亚洲视频小说图片| 2019国产精品| 91精品欧美一区二区三区综合在| 成人性视频免费网站| 奇米一区二区三区| 亚洲一区二区3| 国产精品妹子av| 精品欧美一区二区久久| 欧美日韩一区二区三区免费看| 成人18视频日本| 黑人巨大精品欧美一区| 日韩高清不卡在线| 亚洲伊人色欲综合网| 中文字幕在线免费不卡| 国产三区在线成人av| 日韩久久久久久| 欧美老肥妇做.爰bbww视频| 91老师片黄在线观看| 国产成人精品影视| 国产综合色在线视频区| 日韩av中文字幕一区二区三区| 亚洲午夜电影在线| 悠悠色在线精品| 亚洲激情在线播放| 依依成人综合视频| 亚洲精品中文在线| 一区二区三区免费在线观看| 亚洲欧洲综合另类| 伊人夜夜躁av伊人久久| 亚洲精品一二三区| 一区二区成人在线视频| 亚洲综合色丁香婷婷六月图片| 亚洲男人的天堂在线观看| ...xxx性欧美| 亚洲日本乱码在线观看| 一区二区三区 在线观看视频| 国产精品天干天干在观线 | 欧美一区二区三区在线观看| 欧美日韩精品专区| 在线播放欧美女士性生活| 宅男在线国产精品| 精品sm捆绑视频| 国产欧美精品区一区二区三区 | 国产精品毛片久久久久久久| 国产日韩欧美激情| 国产精品美女一区二区三区 | 亚洲h动漫在线| 日韩主播视频在线| 久久69国产一区二区蜜臀| 国产一区二区调教| 不卡的av中国片| 在线观看av一区二区| 91精选在线观看| 欧美精品一区二区在线观看| 日本一区二区三区在线不卡| 亚洲精品成人在线| 日韩**一区毛片| 在线观看视频欧美| 欧美精品一二三区| 久久久久久9999| 亚洲另类在线视频| 日韩av网站在线观看| 国产成人免费视频精品含羞草妖精| 国产不卡高清在线观看视频| 91福利视频久久久久| 日韩一区二区三区三四区视频在线观看 | 肉色丝袜一区二区| 国产精品资源网站| 色激情天天射综合网| 日韩精品一区二区三区swag| 中文字幕在线一区| 日本最新不卡在线| 国产91对白在线观看九色| 欧美日韩一区视频| 国产午夜亚洲精品午夜鲁丝片| 夜夜夜精品看看| 国产精品综合一区二区三区| 色8久久人人97超碰香蕉987| 精品电影一区二区| 亚洲午夜av在线| 成人做爰69片免费看网站| 91麻豆精品91久久久久久清纯| 国产精品女上位| 激情偷乱视频一区二区三区| 91福利精品第一导航| 中文字幕电影一区| 久久99国产精品尤物| 欧美午夜寂寞影院| 亚洲国产高清在线| 麻豆国产精品一区二区三区| 在线日韩av片| 国产人伦精品一区二区| 蜜桃久久精品一区二区| 在线视频综合导航| 国产精品全国免费观看高清 | 99精品久久99久久久久| 亚洲第一成年网| 成人黄动漫网站免费app| 欧美xxxx老人做受| 青青国产91久久久久久| 欧美丝袜第三区| 综合久久综合久久| 豆国产96在线|亚洲| 久久免费偷拍视频| 精品一区二区在线观看| 欧美一区二区在线免费播放| 亚洲综合色网站| 91久久精品国产91性色tv| 国产精品视频你懂的| 国产suv一区二区三区88区| 欧美精品一区二区在线观看| 日本欧美在线观看| 欧美人伦禁忌dvd放荡欲情| 亚洲永久精品国产| 色婷婷av一区二区三区大白胸| 亚洲欧美激情小说另类| 91免费观看视频在线| 亚洲欧洲一区二区在线播放| 成人国产精品免费观看动漫| 国产精品免费视频一区|