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

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

?? kitl.c.svn-base

?? 這是三星的2443的wince的bootloader
?? SVN-BASE
字號:
//
// 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.
//
// -----------------------------------------------------------------------------
//
//      THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
//      ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
//      THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
//      PARTICULAR PURPOSE.
//  
// -----------------------------------------------------------------------------
#include <windows.h>
#include <bsp.h>
#include <kitl_cfg.h>

#define KITL_DBON 1

//#define KITL_USBRNDIS

OAL_KITL_DEVICE g_kitlDevice;

const OAL_KITL_SERIAL_DRIVER *GetKitlSerialDriver (void);
//const OAL_KITL_SERIAL_DRIVER *GetKitlUSBSerialDriver (void);
static OAL_KITL_ETH_DRIVER g_kitlEthCS8900A = OAL_ETHDRV_CS8900A;


volatile S3C2443_IOPORT_REG *g_pIOPortReg;

BOOL USBSerKitl_POLL = FALSE;

#ifdef KITL_USBRNDIS
static OAL_KITL_ETH_DRIVER g_kitlUSBRndis = OAL_ETHDRV_RNDIS;
#endif

#ifdef KITL_ETHERNET
BOOL InitKitlEtherArgs (OAL_KITL_ARGS *pKitlArgs)
{
	RETAILMSG(1,(TEXT("InitKitlEtherArgs\n")));
   	// init flags
   	pKitlArgs->flags = OAL_KITL_FLAGS_ENABLED | OAL_KITL_FLAGS_VMINI | OAL_KITL_FLAGS_POLL;
#ifdef CS8900A_KITL_POLLMODE
   	pKitlArgs->flags |= OAL_KITL_FLAGS_POLL;
#endif //CS8900A_KITL_POLLMODE
#ifdef CS8900A_KITL_DHCP
    pKitlArgs->flags |= OAL_KITL_FLAGS_DHCP;
#endif //CS8900A_KITL_DHCP

    pKitlArgs->devLoc.IfcType    	= Internal;
   	pKitlArgs->devLoc.BusNumber    	= 0;
   	pKitlArgs->devLoc.LogicalLoc    = BSP_BASE_REG_PA_CS8900A_IOBASE;  // base address
   	pKitlArgs->devLoc.Pin           = 0;
    
   	OALKitlStringToMAC(CS8900A_MAC,pKitlArgs->mac);

#ifndef CS8900A_KITL_DHCP
   	pKitlArgs->ipAddress            = OALKitlStringToIP(CS8900A_IP_ADDRESS);
   	pKitlArgs->ipMask            	= OALKitlStringToIP(CS8900A_IP_MASK);
   	pKitlArgs->ipRoute            	= OALKitlStringToIP(CS8900A_IP_ROUTER);
#endif CS8900A_KITL_DHCP

	g_kitlDevice.ifcType			= Internal;
   	g_kitlDevice.type               = OAL_KITL_TYPE_ETH;
   	g_kitlDevice.pDriver            = (void *)&g_kitlEthCS8900A;



	//setting EINT13 as IRQ_LAN
	if (!(pKitlArgs->flags & OAL_KITL_FLAGS_POLL))
	{
		/*
    	g_pIOPortReg = (S3C2443_IOPORT_REG *)OALPAtoVA(S3C2443_BASE_REG_PA_IOPORT, FALSE);
		g_pIOPortReg->GPGCON = (g_pIOPortReg->GPGCON & ~(0x3<<10)) | (0x2<<10);
		g_pIOPortReg->GPGUDP |= 0x1<<10;
		g_pIOPortReg->EXTINT1 = (g_pIOPortReg->EXTINT1 & ~(0xf<<20)) | (0x1<<20);
		*/
	}
    return TRUE;
}
#endif

#ifdef KITL_SERIAL
BOOL InitKitlSerialArgs (OAL_KITL_ARGS *pKitlArgs)
{
	DWORD dwIoBase = UART_Kitl;

    // init flags
    pKitlArgs->flags = OAL_KITL_FLAGS_ENABLED | OAL_KITL_FLAGS_POLL;

    pKitlArgs->devLoc.LogicalLoc    = dwIoBase;
    pKitlArgs->devLoc.Pin           = OAL_INTR_IRQ_UNDEFINED;
    pKitlArgs->baudRate             = CBR_115200;
    pKitlArgs->dataBits             = DATABITS_8;
    pKitlArgs->parity               = PARITY_NONE;
    pKitlArgs->stopBits             = STOPBITS_10;

    g_kitlDevice.type               = OAL_KITL_TYPE_SERIAL;
    g_kitlDevice.pDriver            = (VOID*) GetKitlSerialDriver ();
    
    return TRUE;
}
#endif

#ifdef KITL_USBSERIAL
BOOL InitKitlUSBSerialArgs (OAL_KITL_ARGS *pKitlArgs)
{

	DWORD dwIoBase = S3C2443_BASE_REG_PA_USBD;

    // init flags
    pKitlArgs->flags = OAL_KITL_FLAGS_ENABLED|OAL_KITL_FLAGS_POLL;
#ifdef USBSER_KITL_POLL
    pKitlArgs->flags |= OAL_KITL_FLAGS_POLL;
    USBSerKitl_POLL = TRUE;
#endif

    pKitlArgs->devLoc.LogicalLoc    = dwIoBase;
    pKitlArgs->devLoc.Pin           = IRQ_USBD;
 
    g_kitlDevice.type               = OAL_KITL_TYPE_SERIAL;

    g_kitlDevice.pDriver            = (VOID*) GetKitlUSBSerialDriver ();
    
    return TRUE;
}

//-----------------------------------------------------------------------------------------------------
#endif

void KITL_PortInit(void)
{
	volatile S3C2443_SSMC_REG *pSSMCReg;	
		//configure ssmc for cs8900a
   	pSSMCReg = (S3C2443_SSMC_REG *)OALPAtoVA(S3C2443_BASE_REG_PA_SSMC, FALSE);
	pSSMCReg->SMBIDCYR4 = 0;
	pSSMCReg->SMBWSTWRR4 = 14;
	pSSMCReg->SMBWSTOENR4 = 2;
	pSSMCReg->SMBWSTWENR4 = 2;
	pSSMCReg->SMBWSTRDR4 = 14;  //14clk
	
	
	pSSMCReg->SMBCR4 |= ((1<<2)|(1<<0));
	pSSMCReg->SMBCR4 &= ~((3<<20)|(3<<20)|(3<<12));
	pSSMCReg->SMBCR4 &= ~(3<<4);
	pSSMCReg->SMBCR4 |= (1<<4) | (1<<7) | (1<<15);  
}
//-----------------------------------------------------------------------------------------------------

#ifdef KITL_USBRNDIS
BOOL InitKitlUSBRndisArgs (OAL_KITL_ARGS *pKitlArgs)
{

	KITLOutputDebugString ("+++InitKitlUSBRndisArgs Start\n");

	
	pKitlArgs->flags = OAL_KITL_FLAGS_ENABLED|OAL_KITL_FLAGS_VMINI|OAL_KITL_FLAGS_POLL;
   
	pKitlArgs->devLoc.IfcType = Internal;
	pKitlArgs->devLoc.Pin     = 0;
	pKitlArgs->devLoc.LogicalLoc =  (DWORD)(S3C2443_BASE_REG_PA_USBD);
       pKitlArgs->devLoc.Pin           = IRQ_USBD;

   	OALKitlStringToMAC(USBRNDIS_MAC,pKitlArgs->mac);

   	pKitlArgs->ipAddress            = OALKitlStringToIP(USBRNDIS_IP_ADDRESS);
   	pKitlArgs->ipMask            	= OALKitlStringToIP(USBRNDIS_IP_MASK);
   	pKitlArgs->ipRoute            	= OALKitlStringToIP(USBRNDIS_IP_ROUTER);

	
	pKitlArgs->devLoc.PhysicalLoc =  (PVOID)pKitlArgs->devLoc.LogicalLoc;

  	g_kitlDevice.name = L"2443USBRNDIS";
   	g_kitlDevice.ifcType = pKitlArgs->devLoc.IfcType;
   	g_kitlDevice.resource = 0;
   	g_kitlDevice.type = OAL_KITL_TYPE_ETH;
   	g_kitlDevice.pDriver = (void *)&g_kitlUSBRndis;
    	
    return TRUE;
}
#endif

BOOL OALKitlStart()
{
    OAL_KITL_ARGS   kitlArgs, *pArgs;
    BOOL            fRet = FALSE;
    UCHAR			*szDeviceId,buffer[OAL_KITL_ID_SIZE]="\0";

    memset (&kitlArgs, 0, sizeof (kitlArgs));

    pArgs = (OAL_KITL_ARGS *)OALArgsQuery(OAL_ARGS_QUERY_KITL);
    szDeviceId = (CHAR*)OALArgsQuery(OAL_ARGS_QUERY_DEVID);

    // common parts
    kitlArgs.devLoc.IfcType = g_kitlDevice.ifcType
                            = InterfaceTypeUndefined;
    g_kitlDevice.name       = g_oalIoCtlPlatformType;

    KITLOutputDebugString ("OALKitlStart : ");

    
#ifdef KITL_SERIAL
    KITLOutputDebugString ("SERIAL\n");
	fRet = InitKitlSerialArgs (&kitlArgs);
	strcpy(buffer,"2443SerKitl");
	szDeviceId = buffer;
    g_kitlDevice.id = kitlArgs.devLoc.LogicalLoc;
#endif //KITL_SERIAL

#ifdef KITL_USBSERIAL
    KITLOutputDebugString ("USB SERIAL\n");
	fRet = InitKitlUSBSerialArgs (&kitlArgs);
	strcpy(buffer,"2443USBSerKitl");
	szDeviceId = buffer;
    g_kitlDevice.id = kitlArgs.devLoc.LogicalLoc;
#endif //KITL_USBSERIAL

#ifdef KITL_USBRNDIS
    KITLOutputDebugString ("KITL USBRNDIS\n");

    fRet = InitKitlUSBRndisArgs (&kitlArgs);

	OALKitlCreateName(BSP_DEVICE_PREFIX, kitlArgs.mac, buffer);

	szDeviceId = buffer;
	g_kitlDevice.id = kitlArgs.devLoc.LogicalLoc;

    strcpy(buffer,"2443USBRndKitl");
    szDeviceId = buffer;
    g_kitlDevice.id = kitlArgs.devLoc.LogicalLoc;
#endif //KITL_USBRNDIS


#ifdef KITL_ETHERNET
    KITLOutputDebugString ("ETHERNET\n");
	KITL_PortInit();

//	if (pArgs->devLoc.LogicalLoc == 0)
	if (pArgs == NULL)
	{	
		KITLOutputDebugString ("pArgs = NULL\n");
		fRet = InitKitlEtherArgs (&kitlArgs);
		OALKitlCreateName(BSP_DEVICE_PREFIX, kitlArgs.mac, buffer);
		szDeviceId = buffer;
		g_kitlDevice.id = kitlArgs.devLoc.LogicalLoc;
	}
	else
	{
    	KITLOutputDebugString ("Kitl args bring from argument setting of RAM\n");
		g_kitlDevice.ifcType			= Internal;
			g_kitlDevice.id					= BSP_BASE_REG_PA_CS8900A_IOBASE;  // base address
			g_kitlDevice.type			   = OAL_KITL_TYPE_ETH;
			g_kitlDevice.pDriver			= (void *)&g_kitlEthCS8900A;
		
		memcpy(&kitlArgs, pArgs, sizeof (kitlArgs));
		kitlArgs.flags |= OAL_KITL_FLAGS_POLL;
		OALKitlCreateName(BSP_DEVICE_PREFIX, kitlArgs.mac, buffer);
		szDeviceId = buffer;
	
		fRet = TRUE;
	}
	 RETAILMSG(KITL_DBON, (
		L"DeviceId................. %hs\r\n", szDeviceId
	));
	RETAILMSG(KITL_DBON, (
		L"kitlArgs.flags............. 0x%x\r\n", kitlArgs.flags
	));
	RETAILMSG(KITL_DBON, (
		L"kitlArgs.devLoc.IfcType.... %d\r\n",   kitlArgs.devLoc.IfcType
	));
	RETAILMSG(KITL_DBON, (
		L"kitlArgs.devLoc.LogicalLoc. 0x%x\r\n", kitlArgs.devLoc.LogicalLoc
	));
	RETAILMSG(KITL_DBON, (
		L"kitlArgs.devLoc.PhysicalLoc 0x%x\r\n", kitlArgs.devLoc.PhysicalLoc
	));
	RETAILMSG(KITL_DBON, (
		L"kitlArgs.devLoc.Pin........ %d\r\n",   kitlArgs.devLoc.Pin
	));
	RETAILMSG(KITL_DBON, (
		L"kitlArgs.ip4address........ %s\r\n",   OALKitlIPtoString(kitlArgs.ipAddress)
	));
#endif //KITL_ETHERNET

	if (fRet == FALSE)
	{
	    KITLOutputDebugString ("NONE\n");
		return FALSE;
	}
	
	if ((kitlArgs.flags & OAL_KITL_FLAGS_ENABLED) == 0)
	RETAILMSG(1, (TEXT("KITL is disabled.\r\n")));
	else
	RETAILMSG(1, (TEXT("KITL is enabeld.\r\n")));
	KITLOutputDebugString ("Call OALKitlInit : ");
	OALKitlInit (szDeviceId, &kitlArgs, &g_kitlDevice);
	return fRet;
}



//------------------------------------------------------------------------------
//
//  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);
}

DWORD OEMEthGetSecs(void)
{
    SYSTEMTIME sTime;

    OEMGetRealTime(&sTime);
    return((60UL * (60UL * (24UL * (31UL * sTime.wMonth + sTime.wDay) + sTime.wHour) + sTime.wMinute)) + sTime.wSecond);
}

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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91在线观看污| 免费成人av在线播放| 亚洲欧美一区二区三区极速播放 | 午夜视频一区二区| 在线成人免费视频| 国产一区日韩二区欧美三区| 久久久综合视频| av亚洲精华国产精华| 天天综合色天天综合色h| 欧美一区二区三区电影| 菠萝蜜视频在线观看一区| 亚洲成人av一区二区| 久久先锋资源网| 欧美性猛交一区二区三区精品| 麻豆成人综合网| 亚洲主播在线播放| 久久久www成人免费毛片麻豆| 日本道色综合久久| 国产sm精品调教视频网站| 亚洲福利一二三区| 亚洲日本在线a| 国产精品免费aⅴ片在线观看| 91精品麻豆日日躁夜夜躁| 国产精品91一区二区| 蜜臀av性久久久久蜜臀aⅴ流畅| 亚洲综合清纯丝袜自拍| 亚洲色图清纯唯美| 国产婷婷色一区二区三区| 精品久久久久香蕉网| 日韩欧美一区二区久久婷婷| 成人av资源网站| 美女爽到高潮91| 国产激情视频一区二区在线观看| 日本免费在线视频不卡一不卡二| 亚洲国产精品嫩草影院| 五月天久久比比资源色| 天堂一区二区在线| 日韩av网站在线观看| 国产精品久久久久天堂| 亚洲五码中文字幕| 香蕉成人伊视频在线观看| 综合激情成人伊人| 欧美一区三区四区| 91美女片黄在线| 久久99久久精品| 五月激情综合网| 中文字幕日本不卡| 99国产一区二区三精品乱码| 婷婷激情综合网| 国产精品进线69影院| 日韩精品一区二区三区在线播放 | 亚洲国产视频网站| 一区二区视频免费在线观看| 欧美日韩精品欧美日韩精品| 欧美高清视频不卡网| 人人狠狠综合久久亚洲| 一级特黄大欧美久久久| 亚洲一区二区三区影院| 国产精品视频在线看| 国产精品欧美久久久久一区二区| 欧美一个色资源| 51精品国自产在线| 日韩精品一区二区三区视频在线观看 | 精品免费一区二区三区| 欧美不卡视频一区| 一区二区三区国产精品| 亚洲成人自拍网| 成人性生交大片免费看视频在线| 久久先锋影音av| 日本不卡123| 日韩一区二区在线播放| 中文字幕一区二区日韩精品绯色| 久久精品国产精品亚洲综合| 69堂成人精品免费视频| 日日噜噜夜夜狠狠视频欧美人| 成人一区二区在线观看| 日韩一区和二区| 香蕉av福利精品导航| 欧美日韩美少妇| 日韩成人精品视频| 日韩美女视频在线| 激情综合网最新| 日本一区免费视频| 99国产精品视频免费观看| 一区二区三区在线不卡| 欧美日韩视频专区在线播放| 亚洲色大成网站www久久九九| 色婷婷综合久久久久中文| 亚洲一卡二卡三卡四卡五卡| 日韩一级在线观看| 北条麻妃国产九九精品视频| 亚洲免费伊人电影| 91福利小视频| 久久精品999| 亚洲精品视频免费观看| 日韩天堂在线观看| 91尤物视频在线观看| 日本免费在线视频不卡一不卡二| 久久一留热品黄| 欧美在线免费观看视频| 国模一区二区三区白浆| 欧美裸体一区二区三区| 韩国精品一区二区| 日欧美一区二区| 亚洲女女做受ⅹxx高潮| 中文字幕欧美日本乱码一线二线| 在线视频中文字幕一区二区| 高清在线观看日韩| 国内外精品视频| 另类小说图片综合网| 五月天亚洲精品| 性做久久久久久| 亚洲国产综合在线| 午夜一区二区三区视频| 亚洲一区二区av电影| 亚洲欧洲美洲综合色网| 国产精品欧美一区二区三区| 久久久99久久| 国产精品国产三级国产普通话99| 国产欧美日韩亚州综合| 国产欧美一二三区| 中文字幕一区视频| 日韩一区欧美一区| 亚洲国产精品视频| 激情av综合网| 99re视频这里只有精品| 欧美日韩精品二区第二页| 91精品国产欧美一区二区18 | 亚洲综合色区另类av| 婷婷六月综合网| 麻豆国产91在线播放| 成人白浆超碰人人人人| 欧美一区二区美女| 欧美少妇bbb| 国产精品久久久久影院亚瑟| 亚洲免费视频成人| 韩国三级电影一区二区| 97久久超碰精品国产| 3d成人h动漫网站入口| 日本一区二区免费在线| 香蕉影视欧美成人| 波多野结衣中文字幕一区二区三区| 一本大道av一区二区在线播放| 日韩欧美国产一区在线观看| 亚洲日本一区二区| eeuss国产一区二区三区| 欧美日韩一区二区三区四区五区| 久久久www成人免费无遮挡大片| 日韩国产在线一| 一本色道久久加勒比精品| 久久久久久久网| 国产一区二区三区四| 日韩一区和二区| 国产一区二区影院| 久久男人中文字幕资源站| 美洲天堂一区二卡三卡四卡视频| 在线区一区二视频| 麻豆精品在线播放| 日韩精品一区二区三区蜜臀| 美女精品一区二区| 日韩精品一区二区三区蜜臀| 久久精品国产一区二区| 日韩欧美国产电影| 国产一区二区日韩精品| 国产精品美女久久久久久久网站| 精品一区二区三区蜜桃| 国产日韩欧美激情| 婷婷中文字幕一区三区| 日韩一级视频免费观看在线| 日韩av电影免费观看高清完整版| 欧美日韩一级片网站| 日韩电影在线观看电影| 日韩一级片在线播放| 国产成人a级片| 五月婷婷综合激情| 久久久久国产一区二区三区四区 | 蜜臀av一区二区| 国产女人aaa级久久久级| 欧美视频在线一区| 九一久久久久久| 亚洲九九爱视频| 日韩精品中文字幕一区二区三区 | 国产麻豆精品视频| 伊人开心综合网| 久久色在线观看| 91蝌蚪porny| 成人自拍视频在线观看| 青青青伊人色综合久久| 国产精品久久久久久久久免费相片| 欧美日韩国产高清一区二区三区| 国产激情一区二区三区四区| 亚洲一级二级在线| 亚洲三级电影网站| 国产女同性恋一区二区| 久久精品无码一区二区三区| 91精品欧美久久久久久动漫| 91福利资源站| 精品视频一区 二区 三区| 99久久婷婷国产综合精品| 99热在这里有精品免费|