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

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

?? sromc_test.c

?? 三星 s3c6400測試代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
/**************************************************************************************
* 
*	Project Name : S3C6400 Validation
*
*	Copyright 2006 by Samsung Electronics, Inc.
*	All rights reserved.
*
*	Project Description :
*		This software is only for validating functions of the S3C6400.
*		Anybody can use this software without our permission.
*  
*--------------------------------------------------------------------------------------
* 
*	File Name : SROMC_test.c
*  
*	File Description : This file implements the functons for SROM controller test.
*
*	Author : Sunil Roe
*	Dept. : AP Development Team
*	Created Date : 2007/02/22
*	Version : 0.1 
* 
*	History
*	- Created(sunil.roe 2007/02/22)
*  
**************************************************************************************/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>

#include "def.h"
#include "option.h"
#include "library.h"
#include "sfr6400.h"
#include "system.h"
#include "sysc.h"
#include "dma.h"
#include "intc.h"
#include "sromc.h"
#include "nand.h"
#include "onenand.h"
#include "cf.h"
#include "ata.h"
#include "timer.h"

#include "am29f800.h"
#include "cs8900.h"

#define SRAM_DATA_SIZE	0x1000
#define NAND_DATA_SIZE	NAND_PAGE_512

EBI_oInform	g_oaEBIInform[MEMIF_NUM];
u8 aBuffer[NAND_PAGE_MAX];
u8 aSpareBuffer[NAND_SPARE_MAX];
u32 aReadData[ONENAND_PAGESIZE/4] = {0, };

u32	g_uLLIBaseAddr = _DRAM_BaseAddress + 0x00100000;

volatile u32 Nand_DmaTestDone;

u32 g_uOneNANDSrcAddr = 0;

void EBI_Test_Assem(void);
void EBI_Test(void);
void SMC_Test(void);
void SMC_TestATABug(void);
void SMC_TestATAResetBug(void);

void AMD_Test(void)
{
	Disp("\n[Check AM29LVxxx]\n");
	switch(AM29F800_CheckId())
	{
		case 1 :
			printf("This device is AM29LV200B!\n");	
			break;
		case 2 :
			printf("This device is AM29LV400B!\n");	
			break;
		case 3 :
			printf("This device is AM29LV800B!\n");	
			break;
		case 4 :
			printf("This device is AM29LV160B!\n");	
			break;
		case 5 :
			printf("This device is AM29LV320B!\n");	
			break;
		default:
			printf("ID Check Error!!!\n");
			return;          		
	}
	
}

/*---------------------------------- ISR Routines ---------------------------------*/
//////////
// Function Name : ISR_EBIDMC0
// Function Description : This function implements the ISR of DMC0's DMA Interrupt.
// Input : 	NONE
// Output : 	NONE
// Version : v0.1
void __irq ISR_EBIDMC0(void)
{
	Disp("ISR_EBIDMC0\n");
	
	INTC_Disable(g_oaEBIInform[eMEM_DMC0].ucIntNum);

	// Interrupt Clear
	DMACH_ClearIntPending(&g_oaEBIInform[eMEM_DMC0].oEBIDma);
	DMACH_ClearErrIntPending(&g_oaEBIInform[eMEM_DMC0].oEBIDma);

        // Channel Set-up
	DMACH_Setup(	g_oaEBIInform[eMEM_DMC0].eDMACh, 0x0, 
					g_oaEBIInform[eMEM_DMC0].uSrcAddr, g_oaEBIInform[eMEM_DMC0].bSrcFixed, 
					g_oaEBIInform[eMEM_DMC0].uDstAddr, g_oaEBIInform[eMEM_DMC0].bDstFixed, 
					g_oaEBIInform[eMEM_DMC0].eDataSz, g_oaEBIInform[eMEM_DMC0].uDataCnt, DEMAND, 
					g_oaEBIInform[eMEM_DMC0].eSrcReq, g_oaEBIInform[eMEM_DMC0].eDstReq, 
					g_oaEBIInform[eMEM_DMC0].eBurstMode, &g_oaEBIInform[eMEM_DMC0].oEBIDma);

	DMACH_Start(&g_oaEBIInform[eMEM_DMC0].oEBIDma);	// DMA Re-Start

	INTC_Enable(g_oaEBIInform[eMEM_DMC0].ucIntNum);

	INTC_ClearVectAddr();

}

//////////
// Function Name : ISR_EBISROMC
// Function Description : This function implements the ISR of DMC0's DMA Interrupt.
// Input : 	NONE
// Output : 	NONE
// Version : v0.1
void __irq ISR_EBISROMC(void)
{
//	Disp("ISR_EBISROMC\n");
	
	INTC_Disable(g_oaEBIInform[eMEM_SROMC].ucIntNum);

	// Interrupt Clear
	DMACH_ClearIntPending(&g_oaEBIInform[eMEM_SROMC].oEBIDma);
	DMACH_ClearErrIntPending(&g_oaEBIInform[eMEM_SROMC].oEBIDma);

	if (CompareDMA(g_oaEBIInform[eMEM_SROMC].uSrcAddr, g_oaEBIInform[eMEM_SROMC].uDstAddr, (DATA_SIZE)WORD, SRAM_DATA_SIZE-1))
	{
//		Disp(" >> Test Tx&Rx -> Ok << \n");
		Disp("!");

	        // Channel Set-up
		DMACH_Setup(	g_oaEBIInform[eMEM_SROMC].eDMACh, 0x0, 
						g_oaEBIInform[eMEM_SROMC].uSrcAddr, g_oaEBIInform[eMEM_SROMC].bSrcFixed, 
						g_oaEBIInform[eMEM_SROMC].uDstAddr, g_oaEBIInform[eMEM_SROMC].bDstFixed, 
						g_oaEBIInform[eMEM_SROMC].eDataSz, g_oaEBIInform[eMEM_SROMC].uDataCnt, DEMAND, 
						g_oaEBIInform[eMEM_SROMC].eSrcReq, g_oaEBIInform[eMEM_SROMC].eDstReq, 
						g_oaEBIInform[eMEM_SROMC].eBurstMode, &g_oaEBIInform[eMEM_SROMC].oEBIDma);

		DMACH_Start(&g_oaEBIInform[eMEM_SROMC].oEBIDma);	// DMA Re-Start

		INTC_Enable(g_oaEBIInform[eMEM_SROMC].ucIntNum);

		INTC_ClearVectAddr();
	}
	else
	{
		Disp(" >>*** Tx-data & Rx-data mismatch ***<< \n");
	}
}

//////////
// Function Name : ISR_EBINAND
// Function Description : This function implements the ISR of NAND's DMA Interrupt.
// Input : 	NONE
// Output : 	NONE
// Version : v0.1
void __irq ISR_EBINAND(void)
{
	Disp("N ");
	
	INTC_Disable(g_oaEBIInform[eMEM_NAND].ucIntNum);

	// Interrupt Clear
	DMACH_ClearIntPending(&g_oaEBIInform[eMEM_NAND].oEBIDma);
	DMACH_ClearErrIntPending(&g_oaEBIInform[eMEM_NAND].oEBIDma);

        // Channel Set-up
	DMACH_Setup(	g_oaEBIInform[eMEM_NAND].eDMACh, 0x0, 
					g_oaEBIInform[eMEM_NAND].uSrcAddr, g_oaEBIInform[eMEM_NAND].bSrcFixed, 
					g_oaEBIInform[eMEM_NAND].uDstAddr, g_oaEBIInform[eMEM_NAND].bDstFixed, 
					g_oaEBIInform[eMEM_NAND].eDataSz, g_oaEBIInform[eMEM_NAND].uDataCnt, DEMAND, 
					g_oaEBIInform[eMEM_NAND].eSrcReq, g_oaEBIInform[eMEM_NAND].eDstReq, 
					g_oaEBIInform[eMEM_NAND].eBurstMode, &g_oaEBIInform[eMEM_NAND].oEBIDma);

	NAND_ReadPageSLCSetup(0, 50, 0);
	DMACH_Start(&g_oaEBIInform[eMEM_NAND].oEBIDma);	// DMA Re-Start
	INTC_Enable(g_oaEBIInform[eMEM_NAND].ucIntNum);

	INTC_ClearVectAddr();

//	DelayfrTimer(milli, 1);

}

//////////
// Function Name : ISR_EBINANDLLI
// Function Description : This function implements the ISR of NAND's DMA Interrupt.
// Input : 	NONE
// Output : 	NONE
// Version : v0.1
void __irq ISR_EBINANDLLI(void)
{
	INTC_Disable(g_oaEBIInform[eMEM_NAND].ucIntNum);
	Disp(".");

//	NAND_WritePageSLCClose(0, aSpareBuffer);

	// Interrupt Clear
	DMACH_ClearIntPending(&g_oaEBIInform[eMEM_NAND].oEBIDma);
	DMACH_ClearErrIntPending(&g_oaEBIInform[eMEM_NAND].oEBIDma);

	Nand_DmaTestDone++;

	INTC_Enable(g_oaEBIInform[eMEM_NAND].ucIntNum);

	INTC_ClearVectAddr();

}

//////////
// Function Name : ISR_EBIOneNAND
// Function Description : This function implements the ISR of OneNAND's DMA Interrupt.
// Input : 	NONE
// Output : 	NONE
// Version : v0.1
void __irq ISR_EBIOneNAND(void)
{
	Disp("ISR_EBIOneNAND\n");
	
	INTC_Disable(g_oaEBIInform[eMEM_OneNAND].ucIntNum);

	// Interrupt Clear
	DMACH_ClearIntPending(&g_oaEBIInform[eMEM_OneNAND].oEBIDma);
	DMACH_ClearErrIntPending(&g_oaEBIInform[eMEM_OneNAND].oEBIDma);

        // Channel Set-up
	DMACH_Setup(	g_oaEBIInform[eMEM_OneNAND].eDMACh, 0x0, 
					g_oaEBIInform[eMEM_OneNAND].uSrcAddr, g_oaEBIInform[eMEM_OneNAND].bSrcFixed, 
					g_oaEBIInform[eMEM_OneNAND].uDstAddr, g_oaEBIInform[eMEM_OneNAND].bDstFixed, 
					g_oaEBIInform[eMEM_OneNAND].eDataSz, g_oaEBIInform[eMEM_OneNAND].uDataCnt, DEMAND, 
					g_oaEBIInform[eMEM_OneNAND].eSrcReq, g_oaEBIInform[eMEM_OneNAND].eDstReq, 
					g_oaEBIInform[eMEM_OneNAND].eBurstMode, &g_oaEBIInform[eMEM_OneNAND].oEBIDma);

	NAND_ReadPageSLCSetup(0, 50, 0);
	DMACH_Start(&g_oaEBIInform[eMEM_OneNAND].oEBIDma);	// DMA Re-Start
	INTC_Enable(g_oaEBIInform[eMEM_OneNAND].ucIntNum);

	INTC_ClearVectAddr();

//	DelayfrTimer(milli, 1);

}

void EBI_SetDMAParams(Mem_eType eMemType)
{
	u32	uLoopCnt = 0;
	u32	uTotTxferBytes = 0;
	s32	iBankSel = 0;
	
	//------- Init DMA params
	switch(eMemType)
	{
		case eMEM_DMC0 :			
			Disp("Selected DMAC 0 ..... \n");
			g_oaEBIInform[eMemType].ucIntNum		= NUM_DMA0;
			g_oaEBIInform[eMemType].eDMACon 		= DMA0;
			g_oaEBIInform[eMemType].eDMACh 		= DMA_A;
			g_oaEBIInform[eMemType].uSrcAddr 		= _DRAM_BaseAddress + 0x01000000;
			g_oaEBIInform[eMemType].uDstAddr 		= _DRAM_BaseAddress + 0x04000000;
			g_oaEBIInform[eMemType].bSrcFixed		= eINCREMENT;
			g_oaEBIInform[eMemType].bDstFixed		= eINCREMENT;
			g_oaEBIInform[eMemType].eDataSz		= WORD;		// Set DMA Data Width
			g_oaEBIInform[eMemType].uDataCnt		= 0x10000;		// Set DMA Transfer Count	
			g_oaEBIInform[eMemType].eSrcReq		= MEM;
			g_oaEBIInform[eMemType].eDstReq		= MEM;
			g_oaEBIInform[eMemType].eBurstMode		= SINGLE;	
			g_oaEBIInform[eMemType].pHandler		= ISR_EBIDMC0;

			uTotTxferBytes	= g_oaEBIInform[eMemType].uDataCnt * g_oaEBIInform[eMemType].eDataSz;

			// 0. Clear the rx buf.
			for (uLoopCnt = 0; uLoopCnt<uTotTxferBytes; uLoopCnt++)
				*(u8 *)(g_oaEBIInform[eMemType].uDstAddr+uLoopCnt) = 0;

			// 1. Set up the tx buf.
			for (uLoopCnt = 0; uLoopCnt<uTotTxferBytes; uLoopCnt++)
				*(u8 *)(g_oaEBIInform[eMemType].uSrcAddr+uLoopCnt) = (u8)(uLoopCnt+2)%0xff;	
			
			break;
		case eMEM_NAND :
			g_oaEBIInform[eMemType].ucIntNum		= NUM_DMA1;
			g_oaEBIInform[eMemType].eDMACon 		= DMA1;
			g_oaEBIInform[eMemType].eDMACh 		= DMA_A;
//			g_oaEBIInform[eMemType].uLLIBaseAddr	= 0x0;
			g_oaEBIInform[eMemType].uLLIBaseAddr	= g_uLLIBaseAddr+0x20;
			g_oaEBIInform[eMemType].uSrcAddr 		= 0x52000000;		
			g_oaEBIInform[eMemType].uDstAddr 		= (u32)(NFCON_BASE + 0x10);	// NFDATA register address
			g_oaEBIInform[eMemType].bSrcFixed		= eINCREMENT;
			g_oaEBIInform[eMemType].bDstFixed		= eFIX;
			g_oaEBIInform[eMemType].eDataSz		= WORD;					// Set DMA Data Width
//			g_oaEBIInform[eMemType].uDataCnt		= NAND_DATA_SIZE;		// Set DMA Transfer Count	
			g_oaEBIInform[eMemType].uDataCnt		= 64;		// Set DMA Transfer Count	
			g_oaEBIInform[eMemType].eSrcReq		= MEM;
			g_oaEBIInform[eMemType].eDstReq		= DMA1_NAND_RX;
			g_oaEBIInform[eMemType].eBurstMode		= SINGLE;	
//			g_oaEBIInform[eMemType].eBurstMode		= BURST128;	
			g_oaEBIInform[eMemType].pHandler		= ISR_EBINANDLLI;			
			break;

		case eMEM_SROMC :			
			Disp("Selected SDMAC 0 ..... \n");
			Disp("0)nCS0	1)nCS1	4)nCS4	5)nCS5\n");
			Disp("\nSelect SROM Bank(\"0\" to exit) : ");
			iBankSel = GetIntNum();
			if( (iBankSel < 0) || (iBankSel == 2) || (iBankSel == 3) || (iBankSel > 5)) 
			    return;		// return.

			SROMC_SetBank((u8)iBankSel, eEn_CTL, eEn_WAIT, e16bit, eNor_Mode, (Bank_eTiming)0, (Bank_eTiming)3, (Bank_eTiming)20, (Bank_eTiming)0, (Bank_eTiming)0, (Bank_eTiming)2);
			
			g_oaEBIInform[eMemType].ucIntNum		= NUM_SDMA0;
			g_oaEBIInform[eMemType].eDMACon 		= SDMA0;
			g_oaEBIInform[eMemType].eDMACh 		= DMA_A;
			g_oaEBIInform[eMemType].uSrcAddr 		= _SMC_BaseAddress + 0x08000000*iBankSel;
			g_oaEBIInform[eMemType].uDstAddr 		= _DRAM_BaseAddress + 0x04000000;
			g_oaEBIInform[eMemType].bSrcFixed		= eINCREMENT;
			g_oaEBIInform[eMemType].bDstFixed		= eINCREMENT;
			g_oaEBIInform[eMemType].eDataSz		= WORD;		// Set DMA Data Width
			g_oaEBIInform[eMemType].uDataCnt		= SRAM_DATA_SIZE;	// Set DMA Transfer Count	
			g_oaEBIInform[eMemType].eSrcReq		= MEM;
			g_oaEBIInform[eMemType].eDstReq		= MEM;
			g_oaEBIInform[eMemType].eBurstMode		= SINGLE;	
			g_oaEBIInform[eMemType].pHandler		= ISR_EBISROMC;

			uTotTxferBytes	= g_oaEBIInform[eMemType].uDataCnt * g_oaEBIInform[eMemType].eDataSz;

			// 0. Clear the rx buf.
			for (uLoopCnt = 0; uLoopCnt<uTotTxferBytes; uLoopCnt++)
				*(u8 *)(g_oaEBIInform[eMemType].uDstAddr+uLoopCnt) = 0;

			// 1. Set up the tx buf.
			for (uLoopCnt = 0; uLoopCnt<uTotTxferBytes; uLoopCnt++)
				*(u8 *)(g_oaEBIInform[eMemType].uSrcAddr+uLoopCnt) = (u8)(uLoopCnt+2)%0xff;	
			
			break;
		case eMEM_OneNAND :
			Disp("Selected SDMAC 1 ..... \n");
			g_oaEBIInform[eMemType].ucIntNum		= NUM_SDMA1;
			g_oaEBIInform[eMemType].eDMACon 		= SDMA1;
			g_oaEBIInform[eMemType].eDMACh 		= DMA_A;
			g_oaEBIInform[eMemType].uSrcAddr 		= g_uOneNANDSrcAddr;		// NFDATA register address
			g_oaEBIInform[eMemType].uDstAddr 		= (u32)aReadData;
			g_oaEBIInform[eMemType].bSrcFixed		= eFIX;
			g_oaEBIInform[eMemType].bDstFixed		= eINCREMENT;
			g_oaEBIInform[eMemType].eDataSz		= WORD;					// Set DMA Data Width
			g_oaEBIInform[eMemType].uDataCnt		= ONENAND_PAGESIZE/4;		// Set DMA Transfer Count	
			g_oaEBIInform[eMemType].eSrcReq		= MEM;
			g_oaEBIInform[eMemType].eDstReq		= MEM;
			g_oaEBIInform[eMemType].eBurstMode		= BURST128;	
			g_oaEBIInform[eMemType].pHandler		= ISR_EBIOneNAND;

			uTotTxferBytes	= g_oaEBIInform[eMemType].uDataCnt * g_oaEBIInform[eMemType].eDataSz;

			// 0. Clear the rx buf.
//			for (uLoopCnt = 0; uLoopCnt<uTotTxferBytes; uLoopCnt++)
//				*(u8 *)(g_oaEBIInform[eMemType].uDstAddr+uLoopCnt) = 0;

			// 1. Set up the tx buf.
			for (uLoopCnt = 0; uLoopCnt<uTotTxferBytes; uLoopCnt++)
				*(u8 *)(g_oaEBIInform[eMemType].uSrcAddr+uLoopCnt) = (u8)(uLoopCnt+2)%0xff;	
			
			break;
	}
	
	DMAC_InitCh(g_oaEBIInform[eMemType].eDMACon, g_oaEBIInform[eMemType].eDMACh, &g_oaEBIInform[eMemType].oEBIDma);
	INTC_SetVectAddr(g_oaEBIInform[eMemType].ucIntNum,  g_oaEBIInform[eMemType].pHandler);
	INTC_Enable(g_oaEBIInform[eMemType].ucIntNum);

        // Channel, LLI_Address, SrcAddr, Src Type, DstAddr, Dst Type, Transfer Width, Transfer Size, OpMode(DEMAND), Src Req, Dst Req, Burst
        // Channel Set-up
	DMACH_Setup(	g_oaEBIInform[eMemType].eDMACh, g_oaEBIInform[eMemType].uLLIBaseAddr, 
					g_oaEBIInform[eMemType].uSrcAddr, g_oaEBIInform[eMemType].bSrcFixed, 
					g_oaEBIInform[eMemType].uDstAddr, g_oaEBIInform[eMemType].bDstFixed, 
					g_oaEBIInform[eMemType].eDataSz, g_oaEBIInform[eMemType].uDataCnt, DEMAND, 
					g_oaEBIInform[eMemType].eSrcReq, g_oaEBIInform[eMemType].eDstReq, 
					g_oaEBIInform[eMemType].eBurstMode, &g_oaEBIInform[eMemType].oEBIDma);
	
}

void EBI_CloseDMA(Mem_eType eMemType)
{
	INTC_Disable(g_oaEBIInform[eMemType].ucIntNum);
    	DMAC_Close(g_oaEBIInform[eMemType].eDMACon, g_oaEBIInform[eMemType].eDMACh, &g_oaEBIInform[eMemType].oEBIDma);	
}

void SRAM_Test(void)
{
	u32 uLoopCnt = 0;
	u32 uTempAddr = 0;

//	SYSC_CtrlEBIPrio(eEBI_FIX4);

	
#if 1
	EBI_SetDMAParams(eMEM_SROMC);

	//-------- SRAM setting --------------
	uTempAddr = g_oaEBIInform[eMEM_SROMC].uDstAddr;
	for(uLoopCnt=0 ; uLoopCnt<SRAM_DATA_SIZE ; uLoopCnt++)
	{
		*(volatile u32*)(uTempAddr) = 0;
		uTempAddr += 4;
	}

	Disp("* Source       Buffer Address : 0x%x\n", g_oaEBIInform[eMEM_SROMC].uSrcAddr);
	Disp("* Destination Buffer Address : 0x%x\n", g_oaEBIInform[eMEM_SROMC].uDstAddr);
	Disp("If you want to exit, Press the 'x' key.\n");
        // Enable DMAs
	DMACH_Start(&g_oaEBIInform[eMEM_SROMC].oEBIDma);	// SROMC DMA Start
#endif
	while(1)
	{
		if(Getc()=='x')
		{
			break;
		}
	}

	EBI_CloseDMA(eMEM_SROMC);
}

#define SMC_NAND_DMA_TEST 1
#define SMC_SRAM_DMA_TEST 1
#define SMC_UDMA_TEST 1

//////////
// Function Name : SMC_TestEBIUsingNAND

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人免费视频一区二区| 久热成人在线视频| 99国产欧美另类久久久精品 | 亚洲成人7777| 欧美日韩一区在线| 一级特黄大欧美久久久| 久久成人久久爱| 欧美成人伊人久久综合网| 日本欧美肥老太交大片| 日韩欧美一区二区三区在线| 国产乱一区二区| 中文字幕一区视频| 欧美视频一区二区在线观看| 麻豆成人免费电影| 久久精品一区二区三区不卡牛牛| 99精品久久只有精品| 亚欧色一区w666天堂| 欧美成人精品1314www| 丰满少妇久久久久久久| 亚洲黄色免费网站| 日韩一区二区三区在线视频| 国产成人福利片| 偷拍一区二区三区四区| 国产免费观看久久| 欧美三级电影精品| 九九久久精品视频| 国产欧美视频一区二区三区| 欧美亚洲禁片免费| 精品一区中文字幕| 一区二区三区日韩| 国产亚洲欧美日韩日本| 欧美日韩精品一区二区三区| 国产suv精品一区二区6| 亚洲国产一区视频| 国产嫩草影院久久久久| 日韩三级.com| 日本韩国欧美国产| 国产一区二区三区在线观看免费视频 | 欧美三级电影在线观看| 国产suv一区二区三区88区| 亚洲精品午夜久久久| 精品国精品国产| 在线观看亚洲一区| 国产成人在线视频网站| 亚洲v日本v欧美v久久精品| 久久精品男人的天堂| 91精品麻豆日日躁夜夜躁| 91免费精品国自产拍在线不卡| 久久9热精品视频| 亚洲a一区二区| 亚洲欧洲美洲综合色网| 国产视频视频一区| 日韩精品一区二区三区视频播放 | 日韩亚洲欧美综合| 色婷婷亚洲综合| 99久久亚洲一区二区三区青草| 久久99在线观看| 免费高清成人在线| 午夜精品免费在线| 亚洲二区视频在线| 亚洲综合区在线| 亚洲精品免费在线观看| 亚洲四区在线观看| 中文字幕日韩av资源站| 国产欧美一区二区三区沐欲| 日韩一级免费一区| 欧美一区二区三区的| 欧美二区三区的天堂| 欧美日本韩国一区| 欧美日韩不卡一区二区| 欧美视频三区在线播放| 欧美性生活一区| 欧美性xxxxxxxx| 欧美丝袜丝交足nylons| 欧美日韩精品欧美日韩精品一| 在线免费观看视频一区| 欧美亚洲丝袜传媒另类| 欧美三级在线播放| 欧美精品黑人性xxxx| 91麻豆精品国产91久久久久| 欧美日韩国产美| 91 com成人网| 精品免费视频.| 久久蜜桃av一区精品变态类天堂| 久久综合色鬼综合色| 日韩欧美一区二区视频| 久久久久久毛片| 国产精品乱码妇女bbbb| 亚洲桃色在线一区| 亚洲国产精品一区二区久久恐怖片 | 亚洲成人tv网| 日韩1区2区3区| 国产一区三区三区| 国产成人亚洲综合色影视| 成人三级在线视频| 在线免费精品视频| 91精品国产福利在线观看| 精品蜜桃在线看| 欧美高清在线一区二区| 亚洲精选一二三| 无码av免费一区二区三区试看 | 中文字幕亚洲不卡| 美女视频一区在线观看| 国产精品久久久久久久久久久免费看 | 69成人精品免费视频| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 国产精品每日更新在线播放网址| 亚洲人妖av一区二区| 亚洲成人久久影院| 国产美女娇喘av呻吟久久| 成人app在线观看| 欧美精品自拍偷拍| 中文字幕精品一区二区精品绿巨人| 亚洲视频一二区| 蜜桃精品在线观看| 不卡免费追剧大全电视剧网站| 欧美亚洲禁片免费| 国产日产精品1区| 亚洲国产精品久久人人爱| 国内成人自拍视频| 欧美日韩另类一区| 国产农村妇女毛片精品久久麻豆| 亚洲成国产人片在线观看| 国产精品456露脸| 884aa四虎影成人精品一区| 国产三区在线成人av| 亚洲国产精品久久一线不卡| 国产精品一区2区| 欧美日韩成人综合| 国产精品人人做人人爽人人添| 日韩av电影一区| 一本大道av伊人久久综合| 精品电影一区二区三区| 亚洲一区二区三区影院| 国产精品小仙女| 91精品国产手机| 一区二区三区欧美在线观看| 国产精品一区二区三区99| 欧美日韩和欧美的一区二区| 成人免费在线播放视频| 国产精品1024| 精品少妇一区二区三区在线视频| 一级中文字幕一区二区| 91视频免费观看| 国产精品沙发午睡系列990531| 免费人成精品欧美精品| 欧美日韩一区二区在线视频| 国产精品大尺度| 粉嫩av一区二区三区在线播放 | 天天射综合影视| 日本黄色一区二区| 久久久久高清精品| 免费一级欧美片在线观看| 精品视频一区 二区 三区| 亚洲欧美日韩国产一区二区三区 | 欧美三级视频在线观看| 亚洲麻豆国产自偷在线| www.爱久久.com| 国产精品青草综合久久久久99| 国产一区二区三区在线观看免费视频 | 欧美一区二区视频观看视频| 性做久久久久久久免费看| 色噜噜狠狠成人网p站| 日韩久久一区二区| 91一区二区在线观看| 亚洲欧美日韩一区二区| 97久久超碰国产精品| 最新日韩av在线| 一本大道久久a久久综合婷婷| 国产精品久久久久久久第一福利| 成人综合在线观看| 国产精品日韩成人| 色综合婷婷久久| 亚洲一区二区美女| 777欧美精品| 久久精品免费看| 久久天天做天天爱综合色| 久久国产视频网| 国产亚洲短视频| 色综合天天做天天爱| 亚洲国产一区二区三区青草影视 | 蜜臀久久99精品久久久画质超高清| 欧美日韩在线综合| 免费高清视频精品| 国产亚洲欧洲一区高清在线观看| 成人黄色国产精品网站大全在线免费观看| 欧美激情一区二区三区在线| 91在线视频官网| 日本女优在线视频一区二区| 久久综合九色综合久久久精品综合| 国产成人在线视频网址| 亚洲精品视频在线| 欧美一级片在线看| 国产精品99久久久久久宅男| 亚洲欧美中日韩| 制服丝袜亚洲精品中文字幕| 国产一区二区主播在线| 综合色天天鬼久久鬼色| 欧美高清dvd| 国产91露脸合集magnet|