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

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

?? mac.c

?? ARM7 44B0X BIOS源代碼
?? C
字號:
/*修改說明:加高電壓后,去掉了SetRegPage中判斷net_start標志*/

#include "DataType.h"
#include "eth.h"
#include "utils.h"
#include "console.h"
#include "mac.h"
#include "Rtl8019.h"

//#define	RTL8019_OP_16
#define	DEBUG_NET	
#define	RPSTART	0x4c
#define	RPSTOP	0x80
#define	SPSTART	0x40

static U8 rBNRY;

static U8 SrcMacID[ETH_ALEN] = {0x00,0x80,0x48,0x12,0x34,0x56};
//static U8 DstMacID[ETH_ALEN];

static U8 net_start;

void SetRegPage(U8 PageIdx)
{
	U8 temp;
	
	temp = inportb(BaseAddr);	
//	temp = (temp&(0x3a|net_start))|(PageIdx<<6);
	temp = (temp&0x3b)|(PageIdx<<6);						
	outportb(BaseAddr, temp);
}
/*
static void ClearRam()
{
	int i;
	SetRegPage(0);
	outport(RSAR0, 0x4000);
	outport(RBCR0, 256*32);
	outportb(BaseAddr, 0x12);
	for(i=0; i<256*26; i++)
		outportb(RWPORT, 0x0);
}

static void ReadMacID()
{
	int i;
	
	SetRegPage(1);
	for(i=0; i<6; i++)	
		SrcMacID[i]=inportb(PAR0+i);	
}
*/
static void SetMacID()
{
	int i;
	
	SetRegPage(1);
	for(i=0; i<6; i++)
		outportb(PAR0+i, SrcMacID[i]);

}

static U8 Rst8019()
{
	int i;
	
	outportb(RstAddr, 0x5a);
	i = 20000;
	while(i--);
	SetRegPage(0);
	return (inportb(ISR)&0x80);
}

static void WakeRtl8019as()
{
	SetRegPage(3);	
	outportb(CR9346, 0xcf);		//set eem1-0, 11 ,enable write config register
	outportb(CONFIG3, 0x60);	//clear pwrdn, sleep mode, set led0 as led_col, led1 as led_crs	
	outportb(CR9346, 0x3f); 	//disable write config register
}

static void InitRS8019()
{
	net_start = 1;
	outportb(BaseAddr, 0x21);	/* set page 0 and stop */
	outportb(Pstart, RPSTART);		/* set Pstart 0x4c */
	outportb(Pstop, RPSTOP);		/* set Pstop 0x80 */
	outportb(BNRY, RPSTART);	/* BNRY-> the last page has been read */	
	outportb(TPSR, SPSTART);		/* transmit page start register, 0x40 */
	outportb(RCR, 0xcc);		/* set RCR 0xcc */	
	outportb(TCR, 0xe0);		/* set TCR 0xe0 */
#ifdef	RTL8019_OP_16
	outportb(DCR, 0xc9);		/* set DCR 0xc9, 16bit DMA */	
#else
	outportb(DCR, 0xc8);		/* 8bit DMA */
#endif
	outportb(IMR, 0x03);		/* set IMR 0x03 */
	outportb(ISR, 0xff);	
	
	SetRegPage(1);	
	outportb(CURR, RPSTART+1);	
	outportb(MAR0, 0x00);
	outportb(MAR1, 0x41);
	outportb(MAR2, 0x00);
	outportb(MAR3, 0x80);
	outportb(MAR4, 0x00);
	outportb(MAR5, 0x00);
	outportb(MAR6, 0x00);
	outportb(MAR7, 0x00);
	outportb(BaseAddr, 0x22);	/* set page 0 and start */
	
	net_start = 0;	
	rBNRY = RPSTART;
}

int s3c44b0_eth_init(void)
{	
	int i;
	
	WakeRtl8019as();
	
	if(!Rst8019())
	{
//		puts("Rtl8019 Reset Failed!\n");
//		printf("%x ", inportb(ISR));		
//		return -1;
	}
//	puts("Rtl8019 Reset Successfully\n");		
		
	InitRS8019();
	
	i  = inportb(ID8019L);	
	i |= inportb(ID8019H)<<8;
	
	SetMacID();	
	
/*		//a test for arp request			
		while(1)	
		{
			int i;
			U8 data[80];
			
			for(i = 0; i<6; i++)
				data[i] = 0xff;				
			for(; i<12; i++)
				data[i] = SrcMacID[i-6];
				
			data[i++] = 8;
			data[i++] = 6;
			data[i++] = 0;
			data[i++] = 1;
			data[i++] = 8;
			data[i++] = 0;
			data[i++] = 6;
			data[i++] = 4;
			data[i++] = 0;
			data[i++] = 1;
			
			for(; i<28; i++)
				data[i] = SrcMacID[i-22];
				
			data[i++] = 0xc0;
			data[i++] = 0xa8;
			data[i++] = 0xa8;
			data[i++] = 0x65;
			
			for(; i<38; i++)
				data[i] = 0;
				
			data[i++] = 0xc0;
			data[i++] = 0xa8;
			data[i++] = 0xa8;
			data[i++] = 0x64;				
			
			s3c44b0_eth_send(data, 60);
			getch();			
		}				
*/			
/*	while(1)
	{
		int i;
		static int q = 0;
		U8 data[80];
		
		q++;
		for(i=0; i<60; i++)
			if(q&1)
				data[i] = i;
			else
				data[i] = 60-i;
				
		s3c44b0_eth_send(data, 60);
		getch();		
		//outportb(BaseAddr, 0x22);				
	}
*/
	return 0;			
}


int s3c44b0_eth_send(unsigned char *data, unsigned int len)
{
	static sFlag = 0;
	int i;
	U8 send_page;
	
	send_page  = SPSTART;
	send_page += (sFlag&1)?6:0;
	sFlag++;			
		
	if(len<60)	
		for(; len<60; len++)
			data[len] = 0x20;		//just for pad, any data										
	
	SetRegPage(0);		
	outportb(BaseAddr, 0x22);			
	outportb(RSAR0, 0);
	outportb(RSAR1, send_page);
	outportb(RBCR0, len&0xff);	
	outportb(RBCR1, len>>8);			
	outportb(BaseAddr, 0x12);							
	for(i=0; i<len; i++)
	{					
		outportb(RWPORT, data[i]);		// tarns to ram
	}	
	/*	outportb(RSAR0, 0);
		outportb(RSAR1, SPSTART);
		outportb(RBCR0, len&0xff);	
		outportb(RBCR1, len>>8);	
		outportb(BaseAddr, 0x0a);		
		for(i=0; i<len; i++)
			data[i] = inportb(RWPORT);
			printf("%x ", data[i]);					
	*/
	//outport(RSAR0, SPSTART<<8);		
	//outportb(RSAR0, 0);
	//outportb(RSAR1, SPSTART);			
		while(inportb(BaseAddr)&4);
	outportb(TPSR, send_page);
	outportb(TBCR0, len&0xff);	
	outportb(TBCR1, len>>8);				
	outportb(BaseAddr, 0x1e);			// begin to send					

	return 0;
}

int s3c44b0_eth_rcv(unsigned char *data, unsigned int *len)
{
	U8 RxPageBeg, RxPageEnd;
	U8 RxNextPage;
	U8 RxStatus;
	int i, RxLength;	 
	
	SetRegPage(0);
		outportb(BNRY, rBNRY);	//???			
	if(inportb(ISR)&1)			//接收成功
		outportb(ISR, 0x1);		//清除中斷標志
	else	
		return -1;	
		
	SetRegPage(1);
	RxPageEnd = inportb(CURR);
	SetRegPage(0);	
	/*
	RxPageBeg = inportb(BNRY)+1;		
	if(RxPageBeg>=RPSTOP)
		RxPageBeg = RPSTART;		
		
	if(RxPageBeg==RxPageEnd)
		return -1;			//no data received
	*/
	RxPageBeg = rBNRY+1;
	if(RxPageBeg>=RPSTOP)
		RxPageBeg = RPSTART;		
	outportb(BaseAddr, 0x22);
		
	//outport(RSAR0, RxPageBeg<<8);
	//outport(RBCR0, 256);		
	outportb(RSAR0, 0);
	outportb(RSAR1, RxPageBeg);
	outportb(RBCR0, 4);
	outportb(RBCR1, 0);	
	outportb(BaseAddr, 0xa);
	RxStatus   = inportb(RWPORT);
	RxNextPage = inportb(RWPORT);	
	RxLength   = inportb(RWPORT);
	RxLength  |= inportb(RWPORT)<<8;
	
//		printf("\nRxBeg = %x, RxEnd = %x, staus = %x, nextpage = %x,  size = %x", RxPageBeg, RxPageEnd, RxStatus, RxNextPage, RxLength);		
	if(RxLength>ETH_FRAME_LEN)
	{
		if(RxPageEnd==RPSTART)
			rBNRY = RPSTOP-1;
		else
			rBNRY = RxPageEnd-1;						
		outportb(BNRY, rBNRY);		 	
		return -1;		
	}
	outportb(RSAR0, 4);
	outportb(RSAR1, RxPageBeg);
	outportb(RBCR0, RxLength);
	outportb(RBCR1, RxLength>>8);	
	outportb(BaseAddr, 0xa);

	i     = 4;
	data -= 4;
	for(; RxLength--;)
	{
		if(!(i&0xff))
			{
				outportb(BNRY, RxPageBeg);				
				RxPageBeg++;
				if(RxPageBeg>=RPSTOP)
					RxPageBeg = RPSTART;					
			}
		data[i++] = inportb(RWPORT);		
	}
	outportb(BNRY, RxPageBeg);	
	rBNRY = RxPageBeg;
	
	return 0;		
/*			
	//outport(RSAR0, RxPageBeg<<8);
	//outport(RBCR0, 256);
	outportb(RSAR0, 0);
	outportb(RSAR1, RxPageBeg);
	outportb(RBCR0, 0);
	outportb(RBCR1, 1);	
	outportb(BaseAddr, 0xa);
	RxStatus   = inportb(RWPORT);
	RxNextPage = inportb(RWPORT);	
	RxLength   = inportb(RWPORT);
	RxLength  |= inportb(RWPORT)<<8;
	
		printf("\nRxBeg = %x, RxEnd = %x, staus = %x, nextpage = %x,  size = %x", RxPageBeg, RxPageEnd, RxStatus, RxNextPage, RxLength);		
	
	i     = 4;
	data -= 4;
	do{
		data[i++] = inportb(RWPORT);									
	}while(i&0xff);			
	
	if(RxLength>ETH_FRAME_LEN)
	{
		if(RxPageEnd==RPSTART)
			rBNRY = RPSTOP-1;
		else
			rBNRY = RxPageEnd-1;						
		outportb(BNRY, rBNRY);		 	
		return -1;		
	}		
	
	RxLength -= 252;	
	if(RxLength>0)	
	{
		outportb(RSAR0, 0);
		outportb(RSAR1, RxPageBeg);
		outportb(RBCR0, RxLength&0xff);
		outportb(RBCR1, RxLength>>8);		
		outportb(BaseAddr, 0xa);
		for(; RxLength--;)
		{										
			if(!(i&0xff))
			{
//				outportb(BNRY, RxPageBeg);				
				RxPageBeg++;
				if(RxPageBeg>=RPSTOP)
					RxPageBeg = RPSTART;					
			}
			data[i++] = inportb(RWPORT);
		}				
	}	
	outportb(BNRY, RxPageBeg);	
	rBNRY = RxPageBeg;		
			
//	printf("-%x,%x\n", RxNextPage-1, inportb(BNRY));		
		
	return 0;*/
}

int s3c44b0_eth_get_addr(unsigned char *addr)
{
	memcpy(addr, SrcMacID, ETH_ALEN);
	return 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品乱人伦中文| 欧美激情艳妇裸体舞| 日韩女同互慰一区二区| 国产精品国产精品国产专区不蜜 | 亚洲午夜免费电影| 麻豆成人在线观看| 91极品美女在线| 欧美经典一区二区三区| 免费人成网站在线观看欧美高清| aaa欧美大片| 欧美mv和日韩mv的网站| 亚洲综合色噜噜狠狠| 成人激情图片网| 久久综合视频网| 日本一区中文字幕| 色婷婷激情一区二区三区| 久久天天做天天爱综合色| 免费观看在线综合色| 91福利国产精品| 亚洲婷婷在线视频| 国产成人综合亚洲91猫咪| 欧美tickling挠脚心丨vk| 偷窥少妇高潮呻吟av久久免费| 91蝌蚪porny九色| 国产精品污网站| 国产河南妇女毛片精品久久久| 欧美变态凌虐bdsm| 日韩1区2区3区| 欧美日韩精品一区二区天天拍小说| 亚洲色图制服诱惑| 99久久精品国产一区二区三区 | 国产精品77777| 精品国产91乱码一区二区三区 | 欧美va天堂va视频va在线| 日韩成人一级大片| 欧美区视频在线观看| 亚洲人123区| 91黄色小视频| 亚洲一区二区在线观看视频 | 国产精品一区二区久激情瑜伽| 日韩午夜精品视频| 久久99精品视频| 久久亚洲二区三区| 成人爽a毛片一区二区免费| 国产欧美1区2区3区| 成人性生交大片免费看中文网站| 国产精品亲子伦对白| 本田岬高潮一区二区三区| 日韩理论片网站| 欧美在线短视频| 亚洲国产日日夜夜| 日韩视频在线永久播放| 国产综合成人久久大片91| 国产亚洲一区二区三区四区| 久久综合色播五月| 国产精品福利在线播放| 一级女性全黄久久生活片免费| 国产精品 日产精品 欧美精品| 国产亚洲女人久久久久毛片| 91香蕉国产在线观看软件| 一区二区三区免费看视频| 日韩一区二区麻豆国产| 国产激情一区二区三区四区 | 69精品人人人人| 国产一区在线精品| 国产精品久久久久久久第一福利| 91麻豆福利精品推荐| 日韩av电影天堂| 国产精品嫩草99a| 欧美午夜精品电影| 极品少妇一区二区三区精品视频 | 久久夜色精品一区| 92精品国产成人观看免费| 视频在线观看国产精品| 日本一区二区不卡视频| 欧美综合一区二区| 国产在线看一区| 亚洲图片自拍偷拍| 欧美激情一区在线观看| 麻豆精品久久精品色综合| 国产精品毛片大码女人| 538在线一区二区精品国产| 东方aⅴ免费观看久久av| 五月天欧美精品| 国产精品全国免费观看高清| 91精品国产综合久久精品| 99久久精品免费看| 国产一区91精品张津瑜| 亚洲永久免费视频| 亚洲欧洲日产国码二区| 26uuu国产日韩综合| 欧美影院精品一区| 不卡av免费在线观看| 国产在线精品视频| 亚洲国产精品麻豆| 亚洲欧美另类在线| 国产亚洲午夜高清国产拍精品 | 免费观看91视频大全| 成人免费在线播放视频| 精品国产sm最大网站| 在线播放日韩导航| 色狠狠色噜噜噜综合网| 成人精品电影在线观看| 国产精品一区二区免费不卡| 久久精品国产免费| 日日夜夜精品视频天天综合网| 亚洲欧美一区二区久久| 中文字幕视频一区二区三区久| 久久综合久久综合亚洲| 日韩欧美高清dvd碟片| 欧美精品v国产精品v日韩精品| 欧美综合欧美视频| 色综合久久中文综合久久97 | 欧美电影在线免费观看| 欧美在线观看一区二区| 91久久精品午夜一区二区| 91免费视频网址| 色婷婷综合久久久久中文 | 久久综合色一综合色88| 精品sm在线观看| 国产在线精品一区在线观看麻豆| 免费成人深夜小野草| 日韩中文字幕av电影| 天天色综合天天| 久久国产剧场电影| 国产高清在线精品| 成人av动漫网站| 色丁香久综合在线久综合在线观看| 91麻豆国产精品久久| 欧美三级欧美一级| 91精品国产综合久久香蕉麻豆| 欧美高清激情brazzers| 日韩一区二区三区视频在线| 欧美精品一区二区久久久| 国产三级欧美三级| 亚洲青青青在线视频| 亚洲成人av资源| 激情久久五月天| 不卡视频免费播放| 欧美日韩一区二区三区视频 | 亚洲制服丝袜一区| 日韩电影一区二区三区四区| 国产一区二区三区四区五区美女 | 国产在线乱码一区二区三区| 成人18精品视频| 欧美色欧美亚洲另类二区| 欧美一级高清片| 国产精品国产三级国产aⅴ入口| 亚洲一级不卡视频| 国产一区二区视频在线| 91激情五月电影| 欧美电影免费观看高清完整版在线| 国产调教视频一区| 亚洲高清久久久| 国内精品视频666| 99re这里只有精品6| 日韩美一区二区三区| 中文字幕制服丝袜一区二区三区| 日韩国产精品91| 成人黄色小视频在线观看| 宅男在线国产精品| 国产精品美女久久久久久久网站| 五月天亚洲婷婷| 91麻豆国产精品久久| 欧美精品一区二区三区一线天视频| 中文字幕欧美一| 精品一区二区日韩| 欧洲精品一区二区三区在线观看| 久久精品人人做人人综合| 亚洲一区二区三区美女| 国产福利91精品一区二区三区| 欧美日韩高清一区二区| 国产精品福利av| 国产一区三区三区| 6080亚洲精品一区二区| 日韩毛片高清在线播放| 国产一区欧美一区| 777欧美精品| 亚洲国产综合91精品麻豆| 成人av在线播放网址| 久久嫩草精品久久久精品| 天天操天天色综合| 一本久久综合亚洲鲁鲁五月天| 精品国产乱码久久久久久免费| 亚洲成人免费在线| 在线观看欧美黄色| 亚洲欧洲日产国码二区| 国产成人自拍网| 久久综合九色综合97_久久久| 日本欧美加勒比视频| 欧美视频精品在线| 一区二区三区在线视频播放| 成人理论电影网| 欧美国产1区2区| 国产激情视频一区二区在线观看| 精品国精品国产尤物美女| 麻豆精品视频在线观看免费| 91精品国产乱| 蜜桃精品视频在线| 日韩精品一区二区三区视频播放|