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

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

?? ether.c

?? 6410BSP3
?? 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.
//

#include <windows.h>
#include <halether.h>
#define __OAL_ETHDRV_H	// Temporary: clean up build warning until EDBG prototypes are moved.
#include <bsp.h>
#include "loader.h"

#define FROM_BCD(n)    ((((n) >> 4) * 10) + ((n) & 0xf))
#define TO_BCD(n)      ((((n) / 10) << 4) | ((n) % 10))

// 6410
#define CS8900_Tacs	(0x0)	// 0clk
#define CS8900_Tcos	(0x4)	// 4clk
#define CS8900_Tacc	(0xd)	// 14clk
#define CS8900_Tcoh	(0x1)	// 1clk
#define CS8900_Tah	(0x4)	// 4clk
#define CS8900_Tacp	(0x6)	// 6clk
#define CS8900_PMC	(0x0)	// normal(1data)

// Function pointers to the support library functions of the currently installed debug ethernet controller.
//
PFN_EDBG_INIT             pfnEDbgInit;
PFN_EDBG_ENABLE_INTS      pfnEDbgEnableInts;
PFN_EDBG_DISABLE_INTS     pfnEDbgDisableInts;
PFN_EDBG_GET_PENDING_INTS pfnEDbgGetPendingInts;
PFN_EDBG_GET_FRAME        pfnEDbgGetFrame;
PFN_EDBG_SEND_FRAME       pfnEDbgSendFrame;
PFN_EDBG_READ_EEPROM      pfnEDbgReadEEPROM;
PFN_EDBG_WRITE_EEPROM     pfnEDbgWriteEEPROM;
PFN_EDBG_SET_OPTIONS      pfnEDbgSetOptions;

// Function prototypes.
//
BOOL    CS8900DBG_Init(PBYTE iobase, DWORD membase, USHORT MacAddr[3]);
UINT16  CS8900DBG_GetFrame(PBYTE pbData, UINT16 *pwLength);
UINT16  CS8900DBG_SendFrame(PBYTE pbData, DWORD dwLength);

static void InitSROMC_CS8900(void)
{
    volatile S3C6410_SROMCON_REG *s6410SROM = (S3C6410_SROMCON_REG *)OALPAtoVA(S3C6410_BASE_REG_PA_SROMCON, FALSE);

    s6410SROM->SROM_BW = (s6410SROM->SROM_BW & ~(0xF<<4)) |
							(1<<7)| // nWBE/nBE(for UB/LB) control for Memory Bank1(0=Not using UB/LB, 1=Using UB/LB)
							(1<<6)| // Wait enable control for Memory Bank1 (0=WAIT disable, 1=WAIT enable)
							(1<<4); // Data bus width control for Memory Bank1 (0=8-bit, 1=16-bit)

    s6410SROM->SROM_BC1 = ((CS8900_Tacs<<28)+(CS8900_Tcos<<24)+(CS8900_Tacc<<16)+(CS8900_Tcoh<<12)\
							+(CS8900_Tah<<8)+(CS8900_Tacp<<4)+(CS8900_PMC));
}


/*
    @func   BOOL | InitEthDevice | Initializes the Ethernet device to be used for download.
    @rdesc  TRUE = Success, FALSE = Failure.
    @comm
    @xref
*/
BOOL InitEthDevice(PBOOT_CFG pBootCfg)
{
	PBYTE  pBaseIOAddress = NULL;
	UINT32 MemoryBase = 0;
	BOOL bResult = FALSE;

	OALMSG(OAL_FUNC, (TEXT("+InitEthDevice.\r\n")));

	InitSROMC_CS8900();

	// Use the MAC address programmed into flash by the user.
	//
	memcpy(pBSPArgs->kitl.mac, pBootCfg->EdbgAddr.wMAC, 6);

	// Use the CS8900A Ethernet controller for download.
	//
	pfnEDbgInit      = CS8900DBG_Init;
	pfnEDbgGetFrame  = CS8900DBG_GetFrame;
	pfnEDbgSendFrame = CS8900DBG_SendFrame;

	pBaseIOAddress   = (PBYTE)OALPAtoVA(pBSPArgs->kitl.devLoc.LogicalLoc, FALSE);

	MemoryBase       = (UINT32)OALPAtoVA(BSP_BASE_REG_PA_CS8900A_MEMBASE, FALSE);

	//RETAILMSG(1,(TEXT("0x%X 0x%X\n"),pBaseIOAddress,MemoryBase));
	// Initialize the Ethernet controller.
	//
	if (!pfnEDbgInit((PBYTE)pBaseIOAddress, MemoryBase, pBSPArgs->kitl.mac))
	{
		OALMSG(OAL_ERROR, (TEXT("ERROR: InitEthDevice: Failed to initialize Ethernet controller.\r\n")));
		goto CleanUp;
	}

	// Make sure MAC address has been programmed.
	//
	if (!pBSPArgs->kitl.mac[0] && !pBSPArgs->kitl.mac[1] && !pBSPArgs->kitl.mac[2])
	{
		OALMSG(OAL_ERROR, (TEXT("ERROR: InitEthDevice: Invalid MAC address.\r\n")));
		goto CleanUp;
	}

	bResult = TRUE;

CleanUp:

	OALMSG(OAL_FUNC, (TEXT("-InitEthDevice.\r\n")));

	return(bResult);
}


/*
    @func   BOOL | OEMGetRealTime | Returns the current wall-clock time from the RTC.
    @rdesc  TRUE = Success, FALSE = Failure.
    @comm
    @xref
*/
static BOOL OEMGetRealTime(LPSYSTEMTIME lpst)
{
    volatile S3C6410_RTC_REG *s6410RTC = (S3C6410_RTC_REG *)OALPAtoVA(S3C6410_BASE_REG_PA_RTC, FALSE);

	do
	{
        lpst->wYear         = FROM_BCD(s6410RTC->BCDYEAR) + 2000 ;
        lpst->wMonth        = FROM_BCD(s6410RTC->BCDMON   & 0x1f);
        lpst->wDay          = FROM_BCD(s6410RTC->BCDDATE  & 0x3f);

        lpst->wDayOfWeek    = (s6410RTC->BCDDAY - 1);

        lpst->wHour         = FROM_BCD(s6410RTC->BCDHOUR  & 0x3f);
        lpst->wMinute       = FROM_BCD(s6410RTC->BCDMIN   & 0x7f);
        lpst->wSecond       = FROM_BCD(s6410RTC->BCDSEC   & 0x7f);
		lpst->wMilliseconds = 0;
	}
	while (!(lpst->wSecond));

	return(TRUE);
}


/*
    @func   DWORD | OEMEthGetSecs | Returns a free-running seconds count.
    @rdesc  Number of elapsed seconds since last roll-over.
    @comm
    @xref
*/
DWORD OEMEthGetSecs(void)
{
	SYSTEMTIME sTime;

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


/*
    @func   BOOL | OEMEthGetFrame | Reads data from the Ethernet device.
    @rdesc  TRUE = Success, FALSE = Failure.
    @comm
    @xref
*/
BOOL OEMEthGetFrame(PUCHAR pData, PUSHORT pwLength)
{
	return(pfnEDbgGetFrame(pData, pwLength));
}


/*
    @func   BOOL | OEMEthSendFrame | Writes data to an Ethernet device.
    @rdesc  TRUE = Success, FALSE = Failure.
    @comm
    @xref
*/
BOOL OEMEthSendFrame(PUCHAR pData, DWORD dwLength)
{
	BYTE Retries = 0;

	while (Retries++ < 4)
	{
		if (!pfnEDbgSendFrame(pData, dwLength))
			return(TRUE);

		EdbgOutputDebugString("INFO: OEMEthSendFrame: retrying send (%u)\r\n", Retries);
	}

	return(FALSE);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品男人天堂av| 日本女人一区二区三区| 亚洲18色成人| 波多野结衣的一区二区三区| 欧美日韩精品系列| 中文字幕亚洲在| 精品一区二区在线视频| 欧美撒尿777hd撒尿| 欧美国产97人人爽人人喊| 日韩精品一级中文字幕精品视频免费观看| 极品少妇一区二区三区精品视频| 色综合天天综合| 国产欧美综合色| 久草这里只有精品视频| 欧美日韩另类国产亚洲欧美一级| 国产精品嫩草影院com| 久久精品国产久精国产| 欧美日本免费一区二区三区| 亚洲欧美日韩中文字幕一区二区三区 | 欧美自拍丝袜亚洲| 国产精品成人一区二区三区夜夜夜| 久久99国产精品免费网站| 日韩一区二区三区四区五区六区| 亚洲在线免费播放| 日本韩国欧美一区二区三区| 国产精品视频免费| 成人精品视频一区| 国产精品久久免费看| 国产精品一区二区久激情瑜伽 | 日韩综合小视频| 欧美三级日韩三级国产三级| 一区二区三区国产| 91久久一区二区| 一区二区日韩av| 在线观看视频一区| 亚洲sss视频在线视频| 欧美日韩高清一区二区| 午夜视频在线观看一区二区三区 | 亚洲精品高清在线| 99久久婷婷国产| 亚洲精品视频在线观看免费| 色综合久久中文字幕| 亚洲一区影音先锋| 欧美精品九九99久久| 蜜臀av一区二区在线观看| 日韩欧美的一区二区| 激情欧美一区二区| 欧美激情资源网| 91蜜桃在线免费视频| 亚洲人成网站色在线观看| 色8久久精品久久久久久蜜| 亚洲国产精品久久不卡毛片| 正在播放亚洲一区| 国产九色sp调教91| 中文字幕亚洲一区二区va在线| 一本大道久久a久久综合| 香蕉乱码成人久久天堂爱免费| 制服丝袜亚洲精品中文字幕| 国产精品888| 亚洲精品视频免费看| 91麻豆精品国产| 国产成人一区在线| 亚洲精品老司机| 日韩一区二区三区精品视频| 成人av电影在线播放| 亚洲福利视频三区| 国产精品网友自拍| 欧美日韩精品一区二区三区| 高清shemale亚洲人妖| 亚洲国产精品久久艾草纯爱| 久久美女艺术照精彩视频福利播放| 91小视频在线观看| 日韩 欧美一区二区三区| 中文字幕在线一区免费| 欧美一区二区福利视频| 99久久精品免费精品国产| 香蕉影视欧美成人| 中文字幕制服丝袜成人av| 日韩欧美国产一区二区三区| av综合在线播放| 九九九精品视频| 亚洲一区av在线| 亚洲国产精品高清| 91精品国产欧美日韩| 91精品91久久久中77777| 国产九色精品成人porny| 三级欧美韩日大片在线看| 亚洲欧洲av另类| 久久免费国产精品| 欧美一区二区三区公司| 在线免费一区三区| 成人av小说网| 国产麻豆视频精品| 日产国产欧美视频一区精品| 一区二区三区精品在线观看| 国产精品久久久久影视| 久久综合久久综合久久| 91精品在线免费观看| 在线观看日韩电影| 色综合夜色一区| 成人app下载| 岛国一区二区在线观看| 黑人巨大精品欧美黑白配亚洲| 日本欧美大码aⅴ在线播放| 亚洲一区二区欧美| 亚洲精品成a人| 最好看的中文字幕久久| 亚洲欧洲成人精品av97| 国产精品三级av| 国产三级欧美三级日产三级99 | 久久久久亚洲蜜桃| 欧美大尺度电影在线| 91麻豆精品久久久久蜜臀| 欧美日韩国产经典色站一区二区三区| 91麻豆免费在线观看| 99久久精品久久久久久清纯| bt欧美亚洲午夜电影天堂| 91小视频免费看| 91成人国产精品| 欧美色中文字幕| 欧美高清dvd| 91精品国产色综合久久不卡蜜臀| 欧美一区二区美女| 精品动漫一区二区三区在线观看| 欧美成人国产一区二区| 精品国产精品网麻豆系列 | 国产成人亚洲综合a∨婷婷图片| 精品中文字幕一区二区| 国产真实精品久久二三区| 国产美女娇喘av呻吟久久| 国产精品99精品久久免费| fc2成人免费人成在线观看播放| 成人激情综合网站| 色妞www精品视频| 国产日韩av一区| 欧美日韩亚洲综合在线| 91国产丝袜在线播放| 欧美色区777第一页| 欧美一级一区二区| 国产日产欧美一区二区三区| 最新热久久免费视频| 一区2区3区在线看| 舔着乳尖日韩一区| 久久精品国产一区二区| 成人一区二区三区视频在线观看 | 欧美色精品在线视频| 6080日韩午夜伦伦午夜伦| 国产午夜精品一区二区三区嫩草| 国产精品高潮呻吟久久| 午夜激情一区二区三区| 高清国产一区二区| 欧美日韩国产乱码电影| 久久嫩草精品久久久精品| 一区二区三区色| 国产一区二区调教| 日本国产一区二区| 久久久噜噜噜久久人人看| 亚洲一区二三区| 国产传媒欧美日韩成人| 欧美日韩综合色| 国产欧美精品一区| 日产欧产美韩系列久久99| 成人av先锋影音| 精品99999| 天堂资源在线中文精品| av电影天堂一区二区在线| 欧美精品丝袜中出| 综合久久久久久| 国内国产精品久久| 欧美高清www午色夜在线视频| 国产精品网站一区| 狠狠色丁香九九婷婷综合五月| 精品视频资源站| 国产精品国产馆在线真实露脸 | 亚洲一区二区三区四区中文字幕| 国产在线观看免费一区| 欧美日韩黄色一区二区| 国产精品传媒视频| 国产一区激情在线| 欧美一区二区成人6969| 亚洲成人av一区| 在线观看日韩一区| 亚洲另类在线制服丝袜| 成人97人人超碰人人99| 久久久久久久久免费| 精品亚洲免费视频| 欧美一级片在线观看| 亚洲一区二区三区在线| 在线免费观看日本一区| 中文字幕在线不卡一区| 国v精品久久久网| 欧美韩日一区二区三区四区| 韩国女主播一区二区三区| 精品伦理精品一区| 久久99热这里只有精品| 欧美成人艳星乳罩| 久久精品国产色蜜蜜麻豆| 日韩欧美卡一卡二| 久久国产精品99久久人人澡| 精品日韩欧美在线|