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

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

?? u2440g.c

?? 優龍開發板源碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
/****************************************************************
 NAME: u2440mon.c
 DESC: u2440mon entry point,menu,download
 HISTORY:
 Mar.25.2002:purnnamu: S3C2400X profile.c is ported for S3C2410X.
 Mar.27.2002:purnnamu: DMA is enabled.
 Apr.01.2002:purnnamu: isDownloadReady flag is added.
 Apr.10.2002:purnnamu: - Selecting menu is available in the waiting loop. 
                         So, isDownloadReady flag gets not needed
                       - UART ch.1 can be selected for the console.
 Aug.20.2002:purnnamu: revision number change 0.2 -> R1.1       
 Sep.03.2002:purnnamu: To remove the power noise in the USB signal, the unused CLKOUT0,1 is disabled.
 ****************************************************************/
#define	GLOBAL_CLK		1//hzh

#include <stdlib.h>
#include <string.h>
#include "def.h"
#include "option.h"
#include "2440addr.h"
#include "2440lib.h"
#include "2440slib.h"
#include "mmu.h"
#include "profile.h"
#include "memtest.h"

#include "usbmain.h"
#include "usbout.h"
#include "usblib.h"
#include "2440usb.h"

#include "norflash.h"

void Isr_Init(void);
void HaltUndef(void);
void HaltSwi(void);
void HaltPabort(void);
void HaltDabort(void);
void Lcd_Off(void);
void WaitDownload(void);
void Menu(void);
void ClearMemory(void);


void Clk0_Enable(int clock_sel);	
void Clk1_Enable(int clock_sel);
void Clk0_Disable(void);
void Clk1_Disable(void);

//#define DOWNLOAD_ADDRESS _RAM_STARTADDRESS
volatile U32 downloadAddress;

void (*restart)(void)=(void (*)(void))0x0;
//void (*run)(void);	//don't use gloable variable, hzh!!!


volatile unsigned char *downPt;
volatile U32 downloadFileSize;
volatile U16 checkSum;
volatile unsigned int err=0;
volatile U32 totalDmaCount;

volatile int isUsbdSetConfiguration;

int download_run=0;
U32 tempDownloadAddress;
int menuUsed=0;

extern char Image$$RW$$Limit[];
U32 *pMagicNum=(U32 *)Image$$RW$$Limit;
int consoleNum;

/*************************************************************/
#include "bootpara.h"

void LcdDisplay(void);
int write_24c02(U8 *pBuf);
int read_24c02(U8 *pBuf);
int find_camera(void);
void Led_Test(void);
void comdownload(void);
//U32 GetFlashID(void);
int SectorProg(U32 begin, U16 *data, U32 size);
int RelocateNKBIN(U32 img_src, U32 *pStart, U32 *pLength, U32 *pLaunch);

void NandErase(void);
void NandWrite(void);
void NandLoadRun(void);

#define	printf	Uart_Printf

#define	DM9000_BASE			0x20000300
#define	DM9000_DATA_OFFSET	4

void mdelay(int ms)
{
	U32 val = (PCLK>>3)/1000-1;
	
	rTCFG0 &= ~(0xff<<8);
	rTCFG0 |= 3<<8;			//prescaler = 3+1
	rTCFG1 &= ~(0xf<<12);
	rTCFG1 |= 0<<12;		//mux = 1/2

/*	while(ms--) {
		rTCNTB3 = val;
		rTCMPB3 = val>>1;		// 50%
		rTCON &= ~(0xf<<16);
		rTCON |= 3<<16;			//one shot, inv-off, update TCNTB3&TCMPB3, start timer 3
		rTCON &= ~(2<<16);		//clear manual update bit
		while(rTCNTO3);
	}*/
	rTCNTB3 = val;
	rTCMPB3 = val>>1;		// 50%
	rTCON &= ~(0xf<<16);
	rTCON |= 0xb<<16;		//interval, inv-off, update TCNTB3&TCMPB3, start timer 3
	rTCON &= ~(2<<16);		//clear manual update bit
	while(ms--) {
		while(rTCNTO3>=val>>1);
		while(rTCNTO3<val>>1);
	};

}

/*static U8 dm9000_ior(int reg)
{
	*(volatile U8 *)DM9000_BASE = reg;
	return *(volatile U8 *)(DM9000_BASE+DM9000_DATA_OFFSET);
}

static void rd_dm9000_id(void)
{
	U16 id;
	
	id = dm9000_ior(0x28) | (dm9000_ior(0x29)<<8);
	printf("read dm9000 vid = 0x%x\n", id);
	
	id = dm9000_ior(0x2a) | (dm9000_ior(0x2b)<<8);
	printf("read dm9000 pid = 0x%x\n", id);
	
	id = dm9000_ior(0x8) | (dm9000_ior(0x9)<<8);
	printf("read dm9000 reg(0x09,0x08) = 0x%x\n", id);
	
	printf("dm9000 isr = 0x%x\n", dm9000_ior(0xfe));
}

static void buzzer(int freq, int ms)
{
	rGPBCON &= ~3;			//set GPB0 as tout0, pwm output
	rGPBCON |= 2;
		
	rTCFG0 &= ~0xff;
	rTCFG0 |= 15;			//prescaler = 15+1
	rTCFG1 &= ~0xf;
	rTCFG1 |= 2;			//mux = 1/8
	rTCNTB0 = (PCLK>>7)/freq;
	rTCMPB0 = rTCNTB0>>1;	// 50%
	rTCON &= ~0x1f;
	rTCON |= 0xb;			//disable deadzone, auto-reload, inv-off, update TCNTB0&TCMPB0, start timer 0
	rTCON &= ~2;			//clear manual update bit
	
	mdelay(ms);
	
	
	rGPBCON &= ~3;			//set GPB0 as output
	rGPBCON |= 1;
	rGPBDAT &= ~1;
}*/

static U32 autorun_10ms;
static U16 autorun_ds;
static U16 autorun_trig;

static __irq void autorun_proc(void)
{
	ClearPending(BIT_TIMER4);

	if(autorun_ds)
		DisableIrq(BIT_TIMER4);
	
	autorun_10ms--;
	if(!autorun_10ms) {
		DisableIrq(BIT_TIMER4);
		//CLR_IF();	//in irq service routine, irq is disabled
		autorun_trig = 1;
		//NandLoadRun();
	}
}

static void init_autorun_timer(int sec)
{
	U32 val = (PCLK>>4)/100-1;
	
	autorun_10ms = sec*100;
	
	pISR_TIMER4 = (U32)autorun_proc;
	
	rTCFG0 &= ~(0xff<<8);
	rTCFG0 |= 3<<8;			//prescaler = 3+1
	rTCFG1 &= ~(0xf<<16);
	rTCFG1 |= 1<<16;		//mux = 1/4

	rTCNTB4 = val;
	rTCON &= ~(0xf<<20);
	rTCON |= 7<<20;			//interval, inv-off, update TCNTB4&TCMPB4, start timer 4
	rTCON &= ~(2<<20);		//clear manual update bit
	EnableIrq(BIT_TIMER4);
}

static U32 cpu_freq;
static U32 UPLL;
static void cal_cpu_bus_clk(void)
{
	U32 val;
	U8 m, p, s;
	
	val = rMPLLCON;
	m = (val>>12)&0xff;
	p = (val>>4)&0x3f;
	s = val&3;

	//(m+8)*FIN*2 不要超出32位數!
	FCLK = ((m+8)*(FIN/100)*2)/((p+2)*(1<<s))*100;
	
	val = rCLKDIVN;
	m = (val>>1)&3;
	p = val&1;	
	val = rCAMDIVN;
	s = val>>8;
	
	switch (m) {
	case 0:
		HCLK = FCLK;
		break;
	case 1:
		HCLK = FCLK>>1;
		break;
	case 2:
		if(s&2)
			HCLK = FCLK>>3;
		else
			HCLK = FCLK>>2;
		break;
	case 3:
		if(s&1)
			HCLK = FCLK/6;
		else
			HCLK = FCLK/3;
		break;
	}
	
	if(p)
		PCLK = HCLK>>1;
	else
		PCLK = HCLK;
	
	if(s&0x10)
		cpu_freq = HCLK;
	else
		cpu_freq = FCLK;
		
	val = rUPLLCON;
	m = (val>>12)&0xff;
	p = (val>>4)&0x3f;
	s = val&3;
	UPLL = ((m+8)*FIN)/((p+2)*(1<<s));
	if(UPLL==96*MEGA)
		rCLKDIVN |= 8;	//UCLK=UPLL/2
	UCLK = (rCLKDIVN&8)?(UPLL>>1):UPLL;
}

void IIC_test(void);
int search_vend_params(void)
{
	U8 dat[256];
	VenderParams *pVP = (VenderParams *)dat;
	
	//IIC_test();
	if(!read_24c02(dat)) {
		int i;
		
		//for(i=0; i<256; i++)
		//	Uart_Printf("%c0x%02x", (i%16)?' ':'\n', dat[i]);
		
		i = 0;
		if(strncmp(vend_params.vid.flags, pVP->vid.flags, sizeof(vend_params.vid.flags))==0)
			vend_params.vid.val = pVP->vid.val;
		else
			i = -1;

		if(strncmp(vend_params.pid.flags, pVP->pid.flags, sizeof(vend_params.pid.flags))==0)
			vend_params.pid.val = pVP->pid.val;
		else
			i = -1;
		if(strncmp(vend_params.ser_l.flags, pVP->ser_l.flags, sizeof(vend_params.ser_l.flags))==0)
			vend_params.ser_l.val = pVP->ser_l.val;
		else
			i = -1;
		if(strncmp(vend_params.ser_h.flags, pVP->ser_h.flags, sizeof(vend_params.ser_h.flags))==0)
			vend_params.ser_h.val = pVP->ser_h.val;
		else
			i = -1;
		if(strncmp(vend_params.user_params.flags, pVP->user_params.flags, sizeof(vend_params.user_params.flags))==0) {
			vend_params.user_params.val = pVP->user_params.val;
			memcpy(vend_params.string, pVP->string, sizeof(vend_params.string));
		} else
			i = -1;
		
		//if it's string, make sure the last char is 0
		if(vend_params.user_params.val)
			vend_params.string[sizeof(vend_params.string)-1] = 0;
	
		return i;
	}

	return -2;
}

int save_vend_params(void)
{
	return write_24c02((U8 *)&vend_params);
}

/*************************************************************/

void Main(void)
{
	char *mode;
	int i;
	U8 key;
	U32 mpll_val, divn_upll=0;
    
	#if ADS10   
	__rt_lib_init(); //for ADS 1.0
	#endif

	Port_Init();
	rGPACON &= ~(1<<11);
	rGPADAT |= 1<<11;
	// USB device detection control
/*	rGPGCON &= ~(3<<24);
	rGPGCON |=  (1<<24); // output
#elif (FCLK==400000000)
	ChangeClockDivider(14,12);	//hzh
	ChangeMPllValue(92,1,1);	//400MHz,2440A!
#endif
*/
	
	Isr_Init();
	
	//Led_Test();

	i = search_params();	//hzh, don't use 100M!
	switch (boot_params.cpu_clk.val) {
//	switch(1) {
	case 0:	//240
		key = 14;
		mpll_val = (112<<12)|(4<<4)|(1);
		break;
	case 1:	//320
		key = 14;
		mpll_val = (72<<12)|(1<<4)|(1);
		break;
	case 2:	//400
		key = 14;
		mpll_val = (92<<12)|(1<<4)|(1);
		break;
	case 3:	//440!!!
		key = 14;
		mpll_val = (102<<12)|(1<<4)|(1);
		break;
	default:
		key = 14;
		mpll_val = (92<<12)|(1<<4)|(1);
		break;
	}
	//init FCLK=400M, so change MPLL first
	ChangeMPllValue((mpll_val>>12)&0xff, (mpll_val>>4)&0x3f, mpll_val&3);
	ChangeClockDivider(key, 12);
	cal_cpu_bus_clk();
	if(PCLK<(40*MEGA)) {
		ChangeClockDivider(key, 11);
		cal_cpu_bus_clk();
	}

	consoleNum=boot_params.serial_sel.val&1;	// Uart 1 select for debug.
	Uart_Init(0,boot_params.serial_baud.val);
	Uart_Select(0);//consoleNum);
	//Uart_Select(0);
	
	LcdDisplay();
	
	//buzzer(2100, 200);
	while(0) {
		Uart_SendByte('a');
	//	rGPFDAT |= 1<<6;
	//	mdelay(500);
	//	rGPFDAT &= ~(1<<6);
	//	mdelay(500);
	}
	Uart_SendByte('\n');
	Uart_Printf("<*************************************************************>\n");
	Uart_Printf("          S3C2440 Bootloader V2006\n");
/*	switch (search_vend_params()) {
		Uart_Printf("        %s\n", vend_params.string);
	Uart_Printf("VID is 0x%08x, PID is 0x%08x\n", vend_params.vid.val, vend_params.pid.val);
	Uart_Printf("Serial NO. is %08x%08x\n", vend_params.ser_h.val, vend_params.ser_l.val);
*/
	//Uart_Printf("         www.ucdragon.com\n");
	//Uart_Printf("BWSCON = 0x%08x\n", rBWSCON);
	Uart_Printf("CPU ID is 0x%08x\n", rGSTATUS1);
	
	if(!i)
		Uart_Printf("Found boot params\n"); 
	else if(i==-1) {
		Uart_Printf("Fail to found boot params!\n");
		save_params();
	} else if(i==-2)
			Uart_Printf("Fail to read EEPROM!\n");
		
	Uart_Printf("FCLK=%dMHz, HCLK=%dMHz, PCLK=%dMHz, CPU is running at %dMHz\n",
					FCLK/MEGA, HCLK/MEGA, PCLK/MEGA, cpu_freq/MEGA);
	Uart_Printf("UPLL=%dMHz, UCLK=%dMHz\n", UPLL/MEGA, UCLK/MEGA);
	Uart_Printf("Serial port %d, Baud rate is %d.\n", boot_params.serial_sel.val, boot_params.serial_baud.val);
	Uart_Printf("OS image stored in %s Flash.\n", boot_params.osstor.val?"NOR":"NAND");
	Uart_Printf("Autoboot delay is %d seconds.\n", boot_params.boot_delay.val);
	if(boot_params.boot_delay.val)
		init_autorun_timer(boot_params.boot_delay.val);
	Uart_Printf("<*************************************************************>\n");

	rMISCCR=rMISCCR&~(1<<3); // USBD is selected instead of USBH1 
	rMISCCR=rMISCCR&~(1<<13); // USB port 1 is enabled.


//
//  USBD should be initialized first of all.
//
	isUsbdSetConfiguration=0;
	
//	rd_dm9000_id();			//hzh
//	rDSC1 = 0x15555555;
	rDSC0 = 0x2aa;
	rDSC1 = 0x2aaaaaaa;
//	rDSC0 = 0x3ff;
//	rDSC1 = 0x3fffffff;
	//Enable NAND, USBD, PWM TImer, UART0,1 and GPIO clock,
	//the others must be enabled in OS!!!
	//rCLKCON = (1<<4)|(3<<7)|(3<<10)|(1<<13);
	if(0) {
		int i;
		volatile U16 *p = (volatile U16 *)0x08000000;
		
		p[3] = 0xbf;
		p[2] = 0;
		p[3] = 0;
		p[2] = 1;
		printf("dr2=0x%04x\n", p[2]);
		
		for(i=0; i<8; i++)
			printf("0x%08x\n", p[i]);
		
	}

#if 0
#define	CS8900A_BASE	0x19000300
		//0xa = address port, 0xc=data port
		//Chip ID
		*(volatile U16 *)(CS8900A_BASE+0xa) = 0;
		i = *(volatile U16 *)(CS8900A_BASE+0xc);
		printf("0x%04x\n", i);
		//Product ID
		*(volatile U16 *)(CS8900A_BASE+0xa) = 2;
		i = *(volatile U16 *)(CS8900A_BASE+0xc);
		printf("0x%04x\n", i);
		*(volatile U16 *)(CS8900A_BASE+0xa) = 0x136;
		i = *(volatile U16 *)(CS8900A_BASE+0xc);
		//if(i&0x80)	//SelfST. INITD bit
		//	break;
#endif

#if 0
	UsbdMain(); 
	MMU_Init(); //MMU should be reconfigured or turned off for the debugger, 
	//After downloading, MMU should be turned off for the MMU based program,such as WinCE.	
#else
	//MMU_EnableICache();
		MMU_Init();	//hzh
		Delay(0);	//calibrate Delay() first, hzh
//		Uart_Printf("Check SST39VF160 Flash ID is 0x%08x\n", GetFlashID());
//		ChkNorFlash();	//28F128
  #ifdef DEBUG_VERSION
		comdownload();	//hzh
	//	SectorProg(0, (U16 *)downloadAddress, downloadFileSize);
		NandWrite();
  #endif
	UsbdMain(); 
#endif
//	Delay(0);  //calibrate Delay()

	find_camera();	//hzh
	
	pISR_SWI=(_ISR_STARTADDRESS+0xf0);	//for pSOS

	Led_Display(0x6);

#if USBDMA
	mode="DMA";
#else
	mode="Int";
#endif

	// CLKOUT0/1 select.
	//Uart_Printf("CLKOUT0:MPLL in, CLKOUT1:RTC clock.\n");
	//Clk0_Enable(0);	// 0:MPLLin, 1:UPLL, 2:FCLK, 3:HCLK, 4:PCLK, 5:DCLK0
	//Clk1_Enable(2);	// 0:MPLLout, 1:UPLL, 2:RTC, 3:HCLK, 4:PCLK, 5:DCLK1	
	Clk0_Disable();
	Clk1_Disable();
	
	mpll_val = rMPLLCON;
	Uart_Printf("DIVN_UPLL%x\n", divn_upll);
	Uart_Printf("MPLLVal [M:%xh,P:%xh,S:%xh]\n", (mpll_val&(0xff<<12))>>12,(mpll_val&(0x3f<<4))>>4,(mpll_val&0x3));
	Uart_Printf("CLKDIVN:%xh\n", rCLKDIVN);

	Uart_Printf("\n\n");
	Uart_Printf("+---------------------------------------------+\n");
	Uart_Printf("| S3C2440A USB Downloader ver R0.03 2004 Jan  |\n");
	Uart_Printf("+---------------------------------------------+\n");
	Uart_Printf("FCLK=%4.1fMHz,%s mode\n",FCLK/1000000.,mode); 
	Uart_Printf("USB: IN_ENDPOINT:1 OUT_ENDPOINT:3\n"); 
	Uart_Printf("FORMAT: <ADDR(DATA):4>+<SIZE(n+10):4>+<DATA:n>+<CS:2>\n");
	Uart_Printf("NOTE: 1. Power off/on or press the reset button for 1 sec\n");
	Uart_Printf("		 in order to get a valid USB device address.\n");
	Uart_Printf("	  2. For additional menu, Press any key. \n");
	Uart_Printf("\n");

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产福利91精品| 94色蜜桃网一区二区三区| 91福利在线播放| 亚洲精品乱码久久久久| 色综合久久久久久久久久久| 亚洲免费观看高清完整版在线观看 | 国产性色一区二区| 成人少妇影院yyyy| 亚洲日本丝袜连裤袜办公室| 色婷婷av一区二区三区大白胸 | 天天影视色香欲综合网老头| 欧美在线小视频| 秋霞午夜鲁丝一区二区老狼| 精品国产亚洲在线| 成人国产精品视频| 亚洲在线中文字幕| 欧美一级免费观看| 丁香婷婷深情五月亚洲| 亚洲另类在线一区| 日韩一区二区精品葵司在线| 国产激情一区二区三区桃花岛亚洲| 亚洲色图欧洲色图| 91精品国产乱码| 成人高清伦理免费影院在线观看| 亚洲自拍偷拍综合| 日韩美女一区二区三区| 99国内精品久久| 久久9热精品视频| 亚洲桃色在线一区| 丁香亚洲综合激情啪啪综合| 亚洲综合视频在线观看| 欧美日韩亚洲丝袜制服| 久久成人免费电影| 中文字幕一区二区三区四区不卡| 在线亚洲人成电影网站色www| 天天色综合成人网| 亚洲国产高清在线观看视频| 欧美日韩黄视频| 国产成人午夜精品5599| 亚洲成a人片在线观看中文| 国产亚洲欧美一区在线观看| 欧美三级蜜桃2在线观看| 国产成人av资源| 五月天视频一区| 中文字幕欧美区| 精品日韩欧美在线| 精品1区2区3区| 波波电影院一区二区三区| 久色婷婷小香蕉久久| 伊人婷婷欧美激情| 亚洲国产精品国自产拍av| 日韩美女视频一区二区在线观看| 91亚洲精品久久久蜜桃| 美女视频一区在线观看| 亚洲v日本v欧美v久久精品| 亚洲手机成人高清视频| 国产片一区二区| 久久综合九色综合欧美98| 欧美一区二区三区性视频| 在线国产电影不卡| 色哟哟一区二区| 岛国一区二区三区| 国产一区欧美一区| 激情文学综合丁香| 欧美aaaaaa午夜精品| 午夜影视日本亚洲欧洲精品| 亚洲乱码中文字幕| 亚洲三级小视频| 国产午夜精品在线观看| 26uuu色噜噜精品一区二区| 宅男噜噜噜66一区二区66| 欧美日高清视频| 欧美浪妇xxxx高跟鞋交| 欧美三级日韩三级国产三级| 在线免费一区三区| 欧美日精品一区视频| 欧美日韩免费电影| 欧美区在线观看| 日韩一区二区三区观看| 欧美一级高清大全免费观看| 日韩欧美精品三级| 精品人在线二区三区| 亚洲精品一区二区三区蜜桃下载| 欧美成人国产一区二区| 欧美videofree性高清杂交| 精品久久久久一区| 国产亚洲欧洲一区高清在线观看| 国产无一区二区| 中文字幕一区二区三区四区不卡 | 91久久久免费一区二区| 在线免费观看日本一区| 欧美日韩一二区| 91精品国产综合久久久蜜臀粉嫩| 91麻豆精品91久久久久久清纯| 在线成人免费观看| 精品国产在天天线2019| 国产精品网曝门| 亚洲综合色噜噜狠狠| 免费成人av在线| 高清成人在线观看| 日本韩国精品在线| 欧美一区二区三区思思人| 国产亚洲va综合人人澡精品| 日韩美女啊v在线免费观看| 亚洲bt欧美bt精品| 国产美女在线精品| 色综合天天综合在线视频| 欧美一a一片一级一片| 日韩视频永久免费| 国产精品高潮呻吟久久| 亚洲一区二区三区三| 精品一区二区三区在线视频| 成人黄色在线网站| 欧美人妇做爰xxxⅹ性高电影| 欧美精品一区二区久久久| 亚洲视频免费看| 日韩国产精品大片| 成人黄色网址在线观看| 制服丝袜亚洲播放| 亚洲天堂成人在线观看| 蜜乳av一区二区三区| www.成人在线| 欧美一区二区三区小说| 亚洲图片另类小说| 国产一区二区女| 欧美日韩国产欧美日美国产精品| 久久久久久99精品| 亚洲超碰97人人做人人爱| 成人妖精视频yjsp地址| 欧美人成免费网站| 亚洲色大成网站www久久九九| 看电视剧不卡顿的网站| 欧美性色黄大片| 国产欧美日韩不卡| 精品一区二区久久| 欧美群妇大交群中文字幕| 亚洲色图第一区| 粉嫩蜜臀av国产精品网站| 欧美mv日韩mv国产| 日日嗨av一区二区三区四区| 色婷婷久久久综合中文字幕 | 国产91精品在线观看| 91在线视频在线| 欧美欧美午夜aⅴ在线观看| 日本一二三四高清不卡| 蜜臀av一区二区在线免费观看| 在线视频中文字幕一区二区| 中文字幕高清一区| 99久久久久免费精品国产| 欧美日韩亚洲综合一区| 4438x成人网最大色成网站| 国产精品久久久久7777按摩| 99riav一区二区三区| 亚洲男人电影天堂| 欧美日韩视频一区二区| 日产欧产美韩系列久久99| 日韩精品一区二区三区中文不卡| 韩国午夜理伦三级不卡影院| 久久嫩草精品久久久精品| 99精品黄色片免费大全| 亚洲va中文字幕| 精品久久久三级丝袜| www.久久久久久久久| 亚洲一区在线观看免费| www.日本不卡| 亚洲无人区一区| 日韩你懂的电影在线观看| 国产一区二区三区综合| 国产精品高潮呻吟| 5566中文字幕一区二区电影| 国产美女视频一区| 亚洲人成在线播放网站岛国 | 91极品美女在线| 奇米一区二区三区| 国产农村妇女精品| 欧美性高清videossexo| 狠狠久久亚洲欧美| 伊人色综合久久天天| 日韩欧美中文一区二区| 成人激情综合网站| 日韩vs国产vs欧美| 中文字幕一区二区三区色视频| 欧美日韩视频一区二区| 国产福利91精品一区| 亚洲国产视频a| 国产婷婷色一区二区三区 | 欧美一区二区三区色| 国产成人综合自拍| 人人爽香蕉精品| 亚洲免费观看高清完整| 久久久久久久久蜜桃| 欧美日韩午夜在线视频| 国产a精品视频| 麻豆91精品91久久久的内涵| 免费人成黄页网站在线一区二区| 欧美少妇一区二区| 国产成人日日夜夜| 日本欧美在线观看| 亚洲在线观看免费视频| 久久久午夜电影|