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

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

?? nandflash.c

?? 基于ARM9的NAND FLASH(large page)的驅動
?? C
字號:
#include"ZV1050_NandCtr.h"
#include"NandFlash.h"

#define pod(a,d)	(*(volatile unsigned  *)a = (unsigned int )d)
#define pid(a)		(*(volatile unsigned  *)a)

#define NUM_PAGE_BLOCK        64          /* Number of pages for block*/
#define FLASH_WIDTH           8           /* Flash data width */
#define FLASH_SIZE            0x10000000  /* Flash size in byte */
#define PAGE_SIZE             2112        /* Page size in byte */ 
#define PAGE_DATA_SIZE     	  2048        /* Page data size in byte */
#define PAGE_SPARE_SIZE		  64		  /* Page spare size in bytes*/
#define NUM_BLOCKS			  0x800 	  /* Number of blocks*/
#define SHIFT_A8			  1
unsigned char dataWidth;                   /*Flash data type*/

typedef struct Device_Identfier{
	unsigned char ManufacturerCode;
	unsigned char DeviceIdentifier;
	unsigned char InternalChipNum;
	unsigned char CellType;
	unsigned char Num_SimProPages;
	unsigned char PageSize;
	unsigned char SpareSize;
	unsigned char BlockSize;
	unsigned char Organization;
	unsigned char Num_Plane;
	unsigned char PlaneSize;
}DeviceID;

typedef struct StructPageInfo{
	unsigned long dwReserved1;//Reserved-used by FAL
	unsigned char bOEMReserved;//For use by OEM
	unsigned char bBadBlock;   //Indicates if block is bad
	          int wReserved2;  //Reserved -used by FAL
}*PPageInfo;     
	
void Delay(unsigned int i)
{
	unsigned int j,k;
	for(j=0;j<200;j++)
	{
		for(k=0;k<i;k++);
	}
}

void NF_Reset(void)
{
	pod(NFC_CMD_REG,0xff);//disable read status and wait for READY
	pod(NFC_CMD_START_REG,0x01);
	while((NF_RdStatus()&0x40)!=0x40);//wait for ending
}

void NF_Init(void)
{
	pod(NFC_CONFIG_REG,0x0e);//enable CS0,ECC size=512 bytes,Page size=2048 bytes,NAND width=8 bits
	pod(NFC_WR_PROT_REG,0x01);//disable Write Protect
	NF_Reset();//reset the NandFlash
}

unsigned char NF_RdStatus(void)//IO0:Pass:'0',Fail:'1';IO5:Active:'0',Idle:'1';IO6:Busy:'0',Ready:'1';IO7:Protect:'0',Not Protect:'1'
{
	pod(NFC_CMD_REG,0x600070);//enable read status and wait for READY
	pod(NFC_WAIT_1_REG,0x100);//wait 256 clock cycles before the first READ STATUS command
	pod(NFC_CMD_START_REG,0x01);
	
	return(pid(NFC_STATUS_REG));
	
}


unsigned char NF_DataRd(unsigned int BlkAddr,unsigned int PageAddr,int size,unsigned char *RdBuff)
{
	pod(NFC_CMD_REG,0x730500);//enable read status and wait for READY
	pod(NFC_ADDR_0_REG,0x00);
	pod(NFC_ADDR_1_REG,0x00);
	pod(NFC_ADDR_2_REG,(((BlkAddr&0x03)<<6) | PageAddr));
	pod(NFC_ADDR_3_REG,((BlkAddr>>2)&0xff));
	pod(NFC_ADDR_4_REG,((BlkAddr>>10)&0x01));
	pod(NFC_TX_SIZE_REG,size);
	pod(NFC_SYS_ADDR_REG,RdBuff);
	pod(NFC_CMD_START_REG,0x01);//開始執行讀取數據
	pod(NFC_WAIT_1_REG,0x100);//wait 256 clock cycles
	while((NF_RdStatus()&0x40)!=0x40);//wait for ending
	return(NF_RdStatus()&0x01);//IO0:Pass:'0',Fail:'1'
}

unsigned char NF_DataRd_FirstChunk(unsigned int BlkAddr,unsigned int PageAddr,unsigned char *RdBuff)
{
	pod(NFC_CMD_REG,0x730500);//enable read status and wait for READY
	pod(NFC_ADDR_0_REG,0x00);
	pod(NFC_ADDR_1_REG,0x00);
	pod(NFC_ADDR_2_REG,(((BlkAddr&0x03)<<6) | PageAddr));
	pod(NFC_ADDR_3_REG,((BlkAddr>>2)&0xff));
	pod(NFC_ADDR_4_REG,((BlkAddr>>10)&0x01));
	pod(NFC_TX_SIZE_REG,512);
	pod(NFC_SYS_ADDR_REG,RdBuff);
	pod(NFC_CMD_START_REG,0x01);//開始執行讀取數據
	pod(NFC_WAIT_1_REG,0x100);//wait 256 clock cycles
	while((NF_RdStatus()&0x40)!=0x40);//wait for ending
	return(NF_RdStatus()&0x01);//IO0:Pass:'0',Fail:'1'
}

unsigned char NF_DataRd_SecondChunk(unsigned int BlkAddr,unsigned int PageAddr,unsigned char *RdBuff)
{
	pod(NFC_CMD_REG,0x730500);//enable read status and wait for READY
	pod(NFC_ADDR_0_REG,0x00);
	pod(NFC_ADDR_1_REG,0x02);
	pod(NFC_ADDR_2_REG,(((BlkAddr&0x03)<<6) | PageAddr));
	pod(NFC_ADDR_3_REG,((BlkAddr>>2)&0xff));
	pod(NFC_ADDR_4_REG,((BlkAddr>>10)&0x01));
	pod(NFC_TX_SIZE_REG,512);
	pod(NFC_SYS_ADDR_REG,RdBuff);
	pod(NFC_CMD_START_REG,0x01);//開始執行讀取數據
	pod(NFC_WAIT_1_REG,0x100);//wait 256 clock cycles
	while((NF_RdStatus()&0x40)!=0x40);//wait for ending
	return(NF_RdStatus()&0x01);//IO0:Pass:'0',Fail:'1'
}

unsigned char NF_DataRd_ThirdChunk(unsigned int BlkAddr,unsigned int PageAddr,unsigned char *RdBuff)
{
	pod(NFC_CMD_REG,0x730500);//enable read status and wait for READY
	pod(NFC_ADDR_0_REG,0x00);
	pod(NFC_ADDR_1_REG,0x04);
	pod(NFC_ADDR_2_REG,(((BlkAddr&0x03)<<6) | PageAddr));
	pod(NFC_ADDR_3_REG,((BlkAddr>>2)&0xff));
	pod(NFC_ADDR_4_REG,((BlkAddr>>10)&0x01));
	pod(NFC_TX_SIZE_REG,512);
	pod(NFC_SYS_ADDR_REG,RdBuff);
	pod(NFC_CMD_START_REG,0x01);//開始執行讀取數據
	pod(NFC_WAIT_1_REG,0x100);//wait 256 clock cycles
	while((NF_RdStatus()&0x40)!=0x40);//wait for ending
	return(NF_RdStatus()&0x01);//IO0:Pass:'0',Fail:'1'
}

unsigned char NF_DataRd_ForthChunk(unsigned int BlkAddr,unsigned int PageAddr,unsigned char *RdBuff)
{
	pod(NFC_CMD_REG,0x730500);//enable read status and wait for READY
	pod(NFC_ADDR_0_REG,0x00);
	pod(NFC_ADDR_1_REG,0x06);
	pod(NFC_ADDR_2_REG,(((BlkAddr&0x03)<<6) | PageAddr));
	pod(NFC_ADDR_3_REG,((BlkAddr>>2)&0xff));
	pod(NFC_ADDR_4_REG,((BlkAddr>>10)&0x01));
	pod(NFC_TX_SIZE_REG,512);
	pod(NFC_SYS_ADDR_REG,RdBuff);
	pod(NFC_CMD_START_REG,0x01);//開始執行讀取數據
	pod(NFC_WAIT_1_REG,0x100);//wait 256 clock cycles
	while((NF_RdStatus()&0x40)==0x40);//wait for ending
	return(NF_RdStatus()&0x01);//IO0:Pass:'0',Fail:'1'
}

unsigned char NF_BlkErase(unsigned int BlkAddr)
{
	pod(NFC_CMD_REG,0x3d0360);//enable read status and wait for READY
	pod(NFC_ADDR_0_REG,((BlkAddr&0x03)<<6));
	pod(NFC_ADDR_1_REG,((BlkAddr>>2)&0xff));
	pod(NFC_ADDR_2_REG,((BlkAddr>>10)&0x01));
	pod(NFC_CMD_START_REG,0x01);//開始執行擦除操作
	pod(NFC_WAIT_1_REG,0xba00);//wait 47616 clock cycles(about 2ms)
	
	while(((NF_RdStatus()&0x40)!=0x40));//wait for ending
	return(NF_RdStatus()&0x01);//IO0:Pass:'0',Fail:'1'
}
	

unsigned char NF_DataWr(unsigned int BlkAddr,unsigned int PageAddr,int size,unsigned char *WrBuff)
{
	pod(NFC_CMD_REG,0x310d80);//enable read status and wait for READY
	pod(NFC_ADDR_0_REG,0x00);
	pod(NFC_ADDR_1_REG,0x00);
	pod(NFC_ADDR_2_REG,(((BlkAddr&0x03)<<6) | PageAddr));
	pod(NFC_ADDR_3_REG,((BlkAddr>>2)&0xff));
	pod(NFC_ADDR_4_REG,((BlkAddr>>10)&0x01));
	
	pod(NFC_TX_SIZE_REG,size);
	pod(NFC_SYS_ADDR_REG,WrBuff);
	pod(NFC_CMD_START_REG,0x01);//開始執行寫入數據
	pod(NFC_WAIT_1_REG,0x50f);//wait 1295 clock cycles(about 200us)
	
	while(((NF_RdStatus()&0x40)!=0x40));//wait for ending
	return(NF_RdStatus()&0x01);//IO0:Pass:'0',Fail:'1'
}
	
unsigned char NF_DataWr_FirstChunk(unsigned int BlkAddr,unsigned int PageAddr,unsigned char *WrBuff)
{
	pod(NFC_CMD_REG,0x310d80);//enable read status and wait for READY
	pod(NFC_ADDR_0_REG,0x00);
	pod(NFC_ADDR_1_REG,0x00);
	pod(NFC_ADDR_2_REG,(((BlkAddr&0x03)<<6) | PageAddr));
	pod(NFC_ADDR_3_REG,((BlkAddr>>2)&0xff));
	pod(NFC_ADDR_4_REG,((BlkAddr>>10)&0x01));
	pod(NFC_TX_SIZE_REG,512);
	pod(NFC_SYS_ADDR_REG,WrBuff);
	pod(NFC_CMD_START_REG,0x01);//開始執行讀取數據
	pod(NFC_WAIT_1_REG,0x100);//wait 256 clock cycles
	while((NF_RdStatus()&0x40)!=0x40);//wait for ending
	return(NF_RdStatus()&0x01);//IO0:Pass:'0',Fail:'1'
}


unsigned char NF_DataWr_SecondChunk(unsigned int BlkAddr,unsigned int PageAddr,unsigned char *WrBuff)
{
	pod(NFC_CMD_REG,0x310d80);//enable read status and wait for READY
	pod(NFC_ADDR_0_REG,0x00);
	pod(NFC_ADDR_1_REG,0x02);
	pod(NFC_ADDR_2_REG,(((BlkAddr&0x03)<<6) | PageAddr));
	pod(NFC_ADDR_3_REG,((BlkAddr>>2)&0xff));
	pod(NFC_ADDR_4_REG,((BlkAddr>>10)&0x01));
	pod(NFC_TX_SIZE_REG,512);
	pod(NFC_SYS_ADDR_REG,WrBuff);
	pod(NFC_CMD_START_REG,0x01);//開始執行讀取數據
	pod(NFC_WAIT_1_REG,0x100);//wait 256 clock cycles
	while((NF_RdStatus()&0x40)!=0x40);//wait for ending
	return(NF_RdStatus()&0x01);//IO0:Pass:'0',Fail:'1'
}
	
unsigned char NF_DataWr_ThirdChunk(unsigned int BlkAddr,unsigned int PageAddr,unsigned char *WrBuff)
{
	pod(NFC_CMD_REG,0x310d80);//enable read status and wait for READY
	pod(NFC_ADDR_0_REG,0x00);
	pod(NFC_ADDR_1_REG,0x04);
	pod(NFC_ADDR_2_REG,(((BlkAddr&0x03)<<6) | PageAddr));
	pod(NFC_ADDR_3_REG,((BlkAddr>>2)&0xff));
	pod(NFC_ADDR_4_REG,((BlkAddr>>10)&0x01));
	pod(NFC_TX_SIZE_REG,512);
	pod(NFC_SYS_ADDR_REG,WrBuff);
	pod(NFC_CMD_START_REG,0x01);//開始執行讀取數據
	pod(NFC_WAIT_1_REG,0x100);//wait 256 clock cycles
	while((NF_RdStatus()&0x40)!=0x40);//wait for ending
	return(NF_RdStatus()&0x01);//IO0:Pass:'0',Fail:'1'
}
unsigned char NF_DataWr_ForthChunk(unsigned int BlkAddr,unsigned int PageAddr,unsigned char *WrBuff)
{
	pod(NFC_CMD_REG,0x310d80);//enable read status and wait for READY
	pod(NFC_ADDR_0_REG,0x00);
	pod(NFC_ADDR_1_REG,0x06);
	pod(NFC_ADDR_2_REG,(((BlkAddr&0x03)<<6) | PageAddr));
	pod(NFC_ADDR_3_REG,((BlkAddr>>2)&0xff));
	pod(NFC_ADDR_4_REG,((BlkAddr>>10)&0x01));
	pod(NFC_TX_SIZE_REG,512);
	pod(NFC_SYS_ADDR_REG,WrBuff);
	pod(NFC_CMD_START_REG,0x01);//開始執行讀取數據
	pod(NFC_WAIT_1_REG,0x100);//wait 256 clock cycles
	while((NF_RdStatus()&0x40)!=0x40);//wait for ending
	return(NF_RdStatus()&0x01);//IO0:Pass:'0',Fail:'1'
}
unsigned char NF_RdID(unsigned char *IDBuff)
{
  pod(NFC_CMD_REG, 0x600190);//enable read status and wait for READY
  pod(NFC_ADDR_0_REG, 0);
  pod(NFC_TX_SIZE_REG, 5);
  pod(NFC_SYS_ADDR_REG, IDBuff);
  pod(NFC_CMD_START_REG, 0x01);
 
  while(((NF_RdStatus()&0x40)!=0x40));//wait for ending
  return(NF_RdStatus()&0x01);//IO0:Pass:'0',Fail:'1'
}

void ClearGCC(int n)
{
  switch (n)
    {
    case 0 : pod(NFC_ECC_0_REG, 0x0); break;
    case 1 : pod(NFC_ECC_1_REG, 0x0); break;
    case 2 : pod(NFC_ECC_2_REG, 0x0); break;
    case 3 : pod(NFC_ECC_3_REG, 0x0); break;
    case -1 : 
      pod(NFC_ECC_0_REG, 0x0); 
      pod(NFC_ECC_1_REG, 0x0); 
      pod(NFC_ECC_2_REG, 0x0); 
      pod(NFC_ECC_3_REG, 0x0); 
      break;
    }
}

unsigned int GetGCC(int n)
{
  switch (n)
    {
    case 0 : return pid(NFC_ECC_0_REG); break;
    case 1 : return pid(NFC_ECC_1_REG); break;
    case 2 : return pid(NFC_ECC_2_REG); break;
    case 3 : return pid(NFC_ECC_3_REG); break;
    default : return 0xffffffff; break;
    }
}
/***********************************************************
*each time copy-back a page(consist spare area),
*the value A28 from second to the last page address must be same as the value
*given to A28 in first address
*only within the same memory plane (all plane number is 2)
*copy-back program is permitted just between odd address pages or even address pages
**************************************************************/
unsigned char CopyBack_Wr(unsigned int S_BlkAddr,unsigned int S_PageAddr,unsigned int D_BlkAddr,unsigned int D_PageAddr)	
{
	pod(NFC_CMD_REG,0x535500);//disable read status and wait for READY 
	pod(NFC_ADDR_0_REG,0x00);
	pod(NFC_ADDR_1_REG,0x00);
	pod(NFC_ADDR_2_REG,(((S_BlkAddr&0x03)<<6) | S_PageAddr));
	pod(NFC_ADDR_3_REG,((S_BlkAddr>>2)&0xff));
	pod(NFC_ADDR_4_REG,((S_BlkAddr>>10)&0x01));
	pod(NFC_TX_SIZE_REG,2111);//read one page include spare area
	pod(NFC_CMD_START_REG,0x01);
	pod(NFC_WAIT_1_REG,0x400);//wait 1024 clock cycles
	while(((NF_RdStatus()&0x40)!=0x40));//wait for ending of read
	
	pod(NFC_CMD_REG,0x310d85);//enable read status and wait for READY
	pod(NFC_ADDR_0_REG,0x00);
	pod(NFC_ADDR_1_REG,0x00);
	pod(NFC_ADDR_2_REG,(((D_BlkAddr&0x03)<<6) | D_PageAddr));
	pod(NFC_ADDR_3_REG,((D_BlkAddr>>2)&0xff));
	pod(NFC_ADDR_4_REG,((D_BlkAddr>>10)&0x01));
	pod(NFC_TX_SIZE_REG,2111);
	pod(NFC_CMD_START_REG,0x01);
	pod(NFC_WAIT_2_REG,0x400);//wait 1024 clock cycles
	while(((NF_RdStatus()&0x40)!=0x40));//wait for ending
	return(NF_RdStatus()&0x01);//IO0:Pass:'0',Fail:'1'
}
	
/*******************************************************************************
*Any block where the 1st Byte/1st Word in the spare area of the 1st or 2nd page
*(if the 1st page is Bad)does not contain FFh is a Bad Block
******************************************************************************/
void NF_BadBlkTab(unsigned char *BadBlkTab)
{	
	int i;
	unsigned char buff_1[64],buff_2[64];
	for(i=0;i<2048;i++)//all of the block number
	{
		//bad block info in the spare area of 1st or 2nd page 
	   NF_SpareRd(i,0,63,buff_1);
	   NF_SpareRd(i,1,63,buff_2);
	   if((buff_1[0]!=0xff)&&(buff_2[0]!=0xff))//find the bad block
	   {
			*(BadBlkTab++) = i;
	   }
	}
}
	
unsigned char NF_SpareRd(unsigned int BlkAddr,unsigned int PageAddr,int size,unsigned char *RdBuff)
{
	pod(NFC_CMD_REG,0x730500);//enable read status and wait for READY
	pod(NFC_ADDR_0_REG,0x00);
	pod(NFC_ADDR_1_REG,0x08);//A11=1
	pod(NFC_ADDR_2_REG,(((BlkAddr&0x03)<<6) | PageAddr));
	pod(NFC_ADDR_3_REG,((BlkAddr>>2)&0xff));
	pod(NFC_ADDR_4_REG,((BlkAddr>>10)&0x01));
	pod(NFC_TX_SIZE_REG,size);
	pod(NFC_SYS_ADDR_REG,RdBuff);
	pod(NFC_CMD_START_REG,0x01);//開始執行讀取數據

	while(((NF_RdStatus()&0x40)!=0x40));//wait for ending
	return(NF_RdStatus()&0x01);//IO0:Pass:'0',Fail:'1'
	
}

unsigned char NF_SpareWr(unsigned int BlkAddr,unsigned int PageAddr,int size,unsigned char *WrBuff)
{
	
	pod(NFC_CMD_REG,0x310d80);//enable read status and wait for READY
	pod(NFC_ADDR_0_REG,0x00);
	pod(NFC_ADDR_1_REG,0x08);//A11=1
	pod(NFC_ADDR_2_REG,(((BlkAddr&0x03)<<6) | PageAddr));
	pod(NFC_ADDR_3_REG,((BlkAddr>>2)&0xff));
	pod(NFC_ADDR_4_REG,((BlkAddr>>10)&0x01));
	pod(NFC_TX_SIZE_REG,size);
	pod(NFC_SYS_ADDR_REG,WrBuff);
	pod(NFC_CMD_START_REG,0x01);//開始執行讀取數據

	while(((NF_RdStatus()&0x40)!=0x40));//wait for ending
	return(NF_RdStatus()&0x01);//IO0:Pass:'0',Fail:'1'
}
	

	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
奇米777欧美一区二区| 亚洲夂夂婷婷色拍ww47| 麻豆精品精品国产自在97香蕉| 日韩不卡一二三区| 韩国女主播一区二区三区| 99久久精品免费| 欧美挠脚心视频网站| 国产喷白浆一区二区三区| 亚洲午夜久久久| 韩国毛片一区二区三区| 91免费在线播放| 欧美xxxxx牲另类人与| 国产精品福利av| 蜜臀久久99精品久久久久宅男| 国产成人精品免费在线| 欧美美女喷水视频| 日本一区二区三区在线不卡| 亚洲成人av在线电影| 国产成人午夜片在线观看高清观看| 91国产福利在线| 国产亚洲视频系列| 亚洲福利一区二区| 岛国一区二区在线观看| 欧美一区二区视频在线观看2022 | 91视频免费看| 欧美一级淫片007| 一区二区三区在线视频播放| 国内精品视频一区二区三区八戒| 色菇凉天天综合网| 欧美日韩在线播放三区| 自拍偷拍欧美精品| 国产乱码精品一区二区三区av| 欧美日韩高清一区二区不卡| 日韩毛片高清在线播放| 日韩电影免费在线看| 91久久精品一区二区二区| 欧美一级日韩不卡播放免费| 国产精品久久久久影院老司| 国产成人99久久亚洲综合精品| 欧美一区二区三区成人| 亚洲成va人在线观看| 欧美最猛黑人xxxxx猛交| 国产精品乱码一区二区三区软件| 国内久久精品视频| 日韩午夜激情av| 日韩精品每日更新| 欧美日本韩国一区二区三区视频| 一个色在线综合| 欧美中文字幕亚洲一区二区va在线| 亚洲色图欧美偷拍| 99久久伊人网影院| 国产精品毛片a∨一区二区三区| 国产激情精品久久久第一区二区| 欧美电影免费提供在线观看| 日韩电影一二三区| 欧美一区二区三区在线| 日本不卡免费在线视频| 6080亚洲精品一区二区| 日本欧美在线观看| 日韩欧美色电影| 精品午夜一区二区三区在线观看| 日韩精品一区二区三区swag| 九一九一国产精品| 国产性色一区二区| 不卡一区二区在线| 一个色综合网站| 在线综合+亚洲+欧美中文字幕| 青青草国产精品97视觉盛宴| 91精彩视频在线观看| 亚洲高清三级视频| 日韩一区二区三免费高清| 亚洲综合偷拍欧美一区色| 在线不卡免费欧美| 激情六月婷婷综合| 中文字幕在线不卡一区| 欧美性猛交xxxx黑人交| 日韩av一区二区三区四区| 精品少妇一区二区三区日产乱码| 国产成人av自拍| 亚洲精品国产无天堂网2021| 538prom精品视频线放| 韩国视频一区二区| 亚洲欧洲www| 欧美高清你懂得| 国产精品白丝jk黑袜喷水| 亚洲女同女同女同女同女同69| 欧美日韩精品欧美日韩精品一综合| 免费观看一级欧美片| 国产精品入口麻豆原神| 欧美精品视频www在线观看| 精品一区二区在线看| 亚洲天堂免费看| 日韩午夜激情av| 91网站黄www| 久久国产精品一区二区| 17c精品麻豆一区二区免费| 欧美高清视频一二三区| 成人污污视频在线观看| 五月综合激情网| 国产精品污污网站在线观看| 91超碰这里只有精品国产| 不卡欧美aaaaa| 丝袜脚交一区二区| 国产精品久久久久久久岛一牛影视| 欧美日韩日本视频| eeuss鲁片一区二区三区在线看| 人妖欧美一区二区| 亚洲精品久久久蜜桃| 国产网站一区二区| 欧美一区二区三区思思人| 91美女在线观看| 国产成人精品免费网站| 日韩高清中文字幕一区| 亚洲人成亚洲人成在线观看图片 | 国产麻豆精品95视频| 亚洲国产视频在线| 国产精品久久久久久久岛一牛影视 | 色哦色哦哦色天天综合| 国产99久久久国产精品| 日韩黄色免费电影| 亚洲欧美一区二区三区久本道91 | 亚洲免费av网站| 91精品蜜臀在线一区尤物| 成人开心网精品视频| 爽好多水快深点欧美视频| 一区二区国产视频| 一区二区在线看| 亚洲欧洲中文日韩久久av乱码| 国产精品免费看片| 日本一区二区不卡视频| 久久久高清一区二区三区| 日韩精品一区二区三区四区 | 国产一区二区三区免费看| 蜜臀av性久久久久蜜臀aⅴ流畅| 亚洲小少妇裸体bbw| 一区二区高清在线| 夜夜嗨av一区二区三区| 亚洲日本免费电影| 国产午夜精品理论片a级大结局| 欧美成人综合网站| 欧美精品v国产精品v日韩精品 | 国产精品91一区二区| 国产精一区二区三区| 久久国产人妖系列| 免费在线一区观看| 久久国产精品99精品国产 | 欧美一级黄色片| 欧美xxxxx牲另类人与| 精品美女被调教视频大全网站| 日韩一区二区电影在线| 精品国产一区二区三区久久久蜜月| 欧美性猛交一区二区三区精品| 99综合电影在线视频| 国产91丝袜在线观看| 91视频在线观看| 欧美日韩一区二区在线观看| 欧美日韩精品一区二区三区蜜桃| 成人激情视频网站| av一区二区三区四区| 99re这里只有精品首页| 欧美日本一道本在线视频| 日韩视频在线永久播放| 国产亚洲精品超碰| 亚洲天堂网中文字| 日韩精品一二区| 国产精品一区二区视频| www.日本不卡| 91麻豆精品国产综合久久久久久 | 欧美mv和日韩mv的网站| 国产亚洲综合性久久久影院| 中文字幕一区二区三| 亚洲精品日韩一| 久久国产日韩欧美精品| 99免费精品在线观看| 欧美一级高清大全免费观看| 中文无字幕一区二区三区| 日本亚洲天堂网| 色视频欧美一区二区三区| 国产区在线观看成人精品| 免费看日韩a级影片| 欧洲生活片亚洲生活在线观看| 国产精品丝袜91| 国产一区二区在线免费观看| 欧美精品成人一区二区三区四区| 中文字幕佐山爱一区二区免费| 国产精品综合一区二区三区| 欧美一级免费观看| 午夜a成v人精品| 欧美日韩二区三区| 一二三区精品视频| 日本电影欧美片| 亚洲日韩欧美一区二区在线| 国产+成+人+亚洲欧洲自线| 日韩你懂的电影在线观看| 五月天欧美精品| 69久久夜色精品国产69蝌蚪网| 亚洲午夜精品网| 欧美日韩在线播放三区四区| 亚洲一区二区av在线| 欧美主播一区二区三区美女|