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

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

?? kitl.c

?? SMDK2410_ZY_V11.rar
?? C
字號:
//
// Copyright (c) Microsoft Corporation.  All rights reserved.
//
//
// Use of this source code is subject to the terms of the Microsoft end-user
// license agreement (EULA) under which you licensed this SOFTWARE PRODUCT.
// If you did not accept the terms of the EULA, you are not authorized to use
// this source code. For a copy of the EULA, please see the LICENSE.RTF on your
// install media.
//
//------------------------------------------------------------------------------
//
//  File:  kitl.c
//
//  Support routines for KITL. 
//
//  Note: this routines are stubbed out in the kern image.
//
//------------------------------------------------------------------------------

#include <bsp.h>
#include <kitl_cfg.h>
#include <fmd.h>

//------------------------------------------------------------------------------

#define BSP_PREV_ARGS_COOKIE    0x8C020800
#define BSP_PREV_ARGS_MAC       0x8C02080C

//------------------------------------------------------------------------------

BOOL OALKitlStart()
{
    BOOL rc;
    OAL_KITL_ARGS *pArgs, args;
    CHAR *szDeviceId, buffer[OAL_KITL_ID_SIZE];

    OALMSG(OAL_KITL&&OAL_FUNC, (L"+OALKitlStart\r\n"));

    // Look for bootargs left by the bootloader or left over from an earlier boot.
    //
    pArgs      = (OAL_KITL_ARGS*)OALArgsQuery(OAL_ARGS_QUERY_KITL);
    szDeviceId = (CHAR*)OALArgsQuery(OAL_ARGS_QUERY_DEVID);

    // If we don't have bootargs in RAM, look first in NOR flash for the information
    // otherwise look on the SmartMedia NAND card (in case we're performing a NAND-only) boot.
    //
    if (pArgs == NULL)
    {
        // Look in NOR flash.
        if (*(UINT32*)IMAGE_SHARE_ARGS_CA_START  == 0x45424F54)
        {
            OALMSG(OAL_INFO, (L"INFO: Using KITL arguments stored in flash.\r\n"));
            memset(&args, 0, sizeof(args));
            args.flags = OAL_KITL_FLAGS_ENABLED | OAL_KITL_FLAGS_DHCP | OAL_KITL_FLAGS_VMINI;
            args.devLoc.IfcType = Internal;
            args.devLoc.BusNumber = 0;
            args.devLoc.LogicalLoc = BSP_BASE_REG_PA_CS8900A_IOBASE;
            memcpy(args.mac, (VOID*)BSP_PREV_ARGS_MAC, sizeof(args.mac));
            args.ipAddress = 0;
            pArgs = &args;
        }
        // Look on the SmartMedia (NAND) card.
        else
        {
            SectorInfo si;
            UINT8 maccount = 0;

            // Get MAC address from NAND flash...
            //
            if (FMD_Init(NULL, NULL, NULL) == NULL)
            {
                OALMSG(OAL_ERROR, (L"ERROR: Failed to initialize NAND flash controller.\r\n"));
                return(FALSE);
            }

            // If block 0 isn't reserved, we can't trust that the values we read for the MAC address are
            // correct.  They may actually be valid logical sector numbers (we're overloading the use
            // of the logical sector number field).
            //
            if (!(FMD_GetBlockStatus(0) & BLOCK_STATUS_RESERVED))
            {
                OALMSG(OAL_ERROR, (L"ERROR: Block 0 isn't reserved - can't trust MAC address values stored in NAND.\r\n"));
                return(FALSE);
            }

            OALMSG(OAL_INFO, (L"INFO: Using KITL arguments stored on SmartMedia.\r\n"));
            memset(&args, 0, sizeof(args));
            args.flags = OAL_KITL_FLAGS_ENABLED | OAL_KITL_FLAGS_DHCP | OAL_KITL_FLAGS_VMINI;
            args.devLoc.IfcType = Internal;
            args.devLoc.BusNumber = 0;
            args.devLoc.LogicalLoc = BSP_BASE_REG_PA_CS8900A_IOBASE;
            args.ipAddress = 0;

            // We know the first block of NAND flash must be good, so we needn't worry about bad blocks when reading.
            //
            maccount = 0;
            do
            {
                if (!FMD_ReadSector(maccount, NULL, &si, 1))
                {
                    OALMSG(OAL_ERROR, (L"ERROR: NAND flash read error (sector = 0x%x).\r\n", maccount));
                    return(FALSE);
                }

                args.mac[maccount] = (UINT16)(si.dwReserved1 & 0xFFFF);

            } while(++maccount < 3);

            pArgs = &args;

        }
    }        

    // If there isn't device id from bootloader create some.
    //
    if (szDeviceId == NULL)
    {
        OALKitlCreateName(BSP_DEVICE_PREFIX, args.mac, buffer);
        szDeviceId = buffer;
    }

    // Finally call KITL library.
    //
    rc = OALKitlInit(szDeviceId, pArgs, g_kitlDevices);

    OALMSG(OAL_KITL&&OAL_FUNC, (L"-OALKitlStart(rc = %d)\r\n", rc));
    return(rc);
}

//------------------------------------------------------------------------------
//
//  Function:  OALGetTickCount
//
//  This function is called by some KITL libraries to obtain relative time
//  since device boot. It is mostly used to implement timeout in network
//  protocol.
//

UINT32 OALGetTickCount()
{
    static ULONG count = 0;

    count++;
    return count/100;
}

// Define a dummy SetKMode function to satisfy the NAND FMD.
//
DWORD SetKMode (DWORD fMode)
{
    return(1);
}
//------------------------------------------------------------------------------

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
男男成人高潮片免费网站| 1024国产精品| 日韩欧美综合在线| 欧美一区二区三区免费观看视频| 欧美性一区二区| 这里是久久伊人| 国产三级一区二区| 亚洲一区二区三区视频在线| 日本欧美久久久久免费播放网| 免费观看久久久4p| 国产成人高清在线| 在线亚洲一区二区| 日韩三区在线观看| 欧美国产欧美综合| 亚洲va中文字幕| 精品不卡在线视频| 成人毛片在线观看| 制服丝袜在线91| 国产欧美一区二区精品婷婷| 亚洲国产裸拍裸体视频在线观看乱了| 午夜精品福利一区二区蜜股av| 精品亚洲porn| 欧美日韩一区二区三区四区 | 久久久www免费人成精品| 欧美一级理论性理论a| 最新日韩在线视频| 国产一区91精品张津瑜| 欧美精品 日韩| 最新国产成人在线观看| 国产一区在线视频| 日韩免费高清电影| 午夜精品久久久久| 欧美日韩夫妻久久| 亚洲成人黄色小说| 欧美在线你懂得| 一区二区三区在线观看欧美| 波多野结衣中文字幕一区二区三区| 欧美一区国产二区| 秋霞成人午夜伦在线观看| 制服丝袜在线91| 久久成人免费日本黄色| 欧美区在线观看| 秋霞电影一区二区| 久久众筹精品私拍模特| 国产精品一区一区| 亚洲欧美怡红院| av动漫一区二区| 亚洲成a人片综合在线| 欧美精品一二三| 久久99精品网久久| 国产女主播一区| 在线观看av一区| 男女视频一区二区| 国产精品国产成人国产三级| 94-欧美-setu| 日韩国产欧美在线播放| 久久久综合九色合综国产精品| 国产不卡一区视频| 午夜久久福利影院| 久久亚洲一区二区三区四区| 暴力调教一区二区三区| 亚洲精品美国一| 久久久久久久久久久久久久久99| 99久久精品免费看| 精品在线一区二区| 亚洲视频免费在线观看| 久久亚洲一级片| 在线观看91av| 在线免费亚洲电影| 国产黄色精品视频| 乱中年女人伦av一区二区| 亚洲欧美一区二区三区极速播放 | 国产精品美女久久久久aⅴ| 69堂成人精品免费视频| 99久久伊人网影院| 国产自产2019最新不卡| 日本午夜一本久久久综合| 一区二区视频免费在线观看| 国内精品不卡在线| 日韩美女天天操| 欧美精品国产精品| 色婷婷综合久久久久中文一区二区 | 日韩专区在线视频| 一区av在线播放| 亚洲精选视频免费看| 日韩伦理av电影| 亚洲色图视频网站| 一区二区三区国产精华| 亚洲精品国产精品乱码不99| 一区二区三区日韩欧美精品| 亚洲综合在线五月| 亚洲国产成人高清精品| 日韩中文字幕不卡| 韩国一区二区三区| 成人av网址在线观看| 91久久精品一区二区| 欧美精品一二三| 日本一区二区三区在线不卡| 亚洲色图19p| 韩国女主播一区二区三区| 高清成人免费视频| 欧美视频一区二区在线观看| 欧美mv日韩mv| 亚洲欧美在线aaa| 激情小说亚洲一区| 91丨porny丨最新| 精品国产乱码久久久久久闺蜜| 中文字幕电影一区| 午夜欧美视频在线观看| 粉嫩av一区二区三区在线播放| 色综合色综合色综合| 精品成人a区在线观看| 亚洲三级在线免费| 国产91色综合久久免费分享| 欧美在线不卡视频| 国产精品久久久久影视| 蜜桃一区二区三区四区| 在线观看亚洲精品| 亚洲人精品一区| 成人午夜电影久久影院| 欧美日韩视频在线一区二区| 中文字幕av一区二区三区| 老司机免费视频一区二区三区| 色94色欧美sute亚洲线路一久 | 大美女一区二区三区| 日韩精品中文字幕一区二区三区| 亚洲一区二区3| 在线视频中文字幕一区二区| 亚洲欧洲精品天堂一级| 粉嫩av一区二区三区| 国产女人18水真多18精品一级做 | 欧美性大战久久久久久久蜜臀| 一区二区中文字幕在线| 一本色道久久加勒比精品| 亚洲欧洲三级电影| 欧美三级韩国三级日本三斤| 亚洲一区中文日韩| 日韩一区二区在线观看视频播放| 天天影视色香欲综合网老头| 日韩一卡二卡三卡| 国产在线视频一区二区| 中国av一区二区三区| 91蝌蚪porny| 视频一区二区中文字幕| 日韩欧美一级在线播放| 视频在线观看一区| 在线观看亚洲a| 国产麻豆欧美日韩一区| 中文字幕制服丝袜成人av| 91香蕉国产在线观看软件| 日本欧美加勒比视频| 久久久久久久综合色一本| 91豆麻精品91久久久久久| 五月激情综合婷婷| 亚洲人成网站影音先锋播放| 日韩免费看的电影| 日本丶国产丶欧美色综合| 国内久久精品视频| 亚洲第一电影网| 国产精品日韩精品欧美在线| 在线不卡一区二区| 色婷婷综合激情| 91视频国产资源| 懂色av一区二区夜夜嗨| 日本成人在线不卡视频| 亚洲精品亚洲人成人网| 中文字幕乱码亚洲精品一区| 精品久久国产字幕高潮| 91精品一区二区三区在线观看| 欧美中文字幕一区二区三区亚洲| 国产美女精品在线| 久久99精品国产91久久来源| 日韩综合在线视频| 丝袜美腿亚洲色图| 婷婷综合五月天| 男男视频亚洲欧美| 免费观看在线综合| 久久精品国产亚洲a| 久久91精品久久久久久秒播| 精品一区二区三区视频在线观看| 日韩精品成人一区二区三区| 亚洲成av人片在线| 蜜桃视频一区二区| 国产中文字幕一区| av一二三不卡影片| 欧美日产国产精品| 精品欧美乱码久久久久久| 日韩欧美第一区| 国产精品色哟哟| 亚洲成人免费av| 青青草伊人久久| 99麻豆久久久国产精品免费| 欧美在线免费播放| 久久久不卡网国产精品一区| 专区另类欧美日韩| 免费久久99精品国产| 色综合天天综合色综合av | 午夜影院久久久| 国产成人免费视频网站高清观看视频| av在线一区二区|