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

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

?? nand_drv.c

?? Nand Flash low driver。
?? C
?? 第 1 頁 / 共 5 頁
字號:
		{
			UINT32 EventResult; 	   /* The 32-bit variable to where the set bits is copied*/
			UINT16 EventStatus; 	   /* Event status*/
			
			EventStatus = OS_DRIVER_WaitEventOR(PERIPH_EVENT_ID,PERIPH_DMA_EVTBIT,
							&EventResult,NAND_DMA_TIMEOUT_VALUE);   
			if (EventStatus == OS_DRIVER_WAIT_EVENT_TIMEOUT)
			{
				DEBUG_OUT("Woob NAND_DMA_TIMEOUT\n\r") ;
				OS_DRIVER_ReleaseSemaphore(DMA_SEMAPHORE_ID); 
				return NAND_DMA_TIMEOUT;
			} 
		}
		#else
			temp = READ_REG32(DMA_DCR_ADDR);
			while (temp & 0x10000000)
			{
				temp = READ_REG32(DMA_DCR_ADDR);
				TimeOut++ ;
				if (TimeOut == NAND_TIMEOUT_VALUE)
				{
					OS_DRIVER_ReleaseSemaphore(DMA_SEMAPHORE_ID);
					return NAND_DMA_TIMEOUT ;
				}
			}
		#endif/*_STAND_ALONE_*/
		DisablePDClk(PD_CCKEN_DMAC_BIT);
	#elif ( (DMA_TYPE==TYPE_IS_GPRS_DMA))
		{
			UINT32 CtlrParam = 0, CfgrParam = 0;
			UINT32 ErrorCode ;

			/*src busrt size 0 |dst burst size 0|src width 8bits|dst width 8bits|src inc,dst fix*/
			CtlrParam = 1 << 22 ;
			/*src dst peripheral is ignored | src master 0 | dst master 1| memory to memory | len bytes*/
			CfgrParam = (1 << 7) | (len << 12);
			ProgramDMAChannel((UINT32) pWrOobBuf,NFLASH_NFDOUT_ADDR,CtlrParam,CfgrParam);
		#ifndef  _STAND_ALONE_
		{
			UINT32 EventResult; 	   /* The 32-bit variable to where the set bits is copied*/
			UINT16 EventStatus; 	   /* Event status*/
			EventStatus = OS_DRIVER_WaitEventOR(PERIPH_EVENT_ID,PERIPH_DMA_EVTBIT,
							&EventResult,NAND_DMA_TIMEOUT_VALUE);   
			if (EventStatus == OS_DRIVER_WAIT_EVENT_TIMEOUT)
			{
				DEBUG_OUT("Woob NAND_DMA_TIMEOUT\n\r") ;
				OS_DRIVER_ReleaseSemaphore(DMA_SEMAPHORE_ID); 
				return NAND_DMA_TIMEOUT;
			}
		}
		#else
			temp = READ_REG32(DMA_ISR_ADDR);
			while ((temp & 0x4) == 0)//default to channel 2
			{
				temp = READ_REG32(DMA_ISR_ADDR);
				TimeOut++ ;
				if (TimeOut == NAND_TIMEOUT_VALUE)
				{
					WRITE_REG32(DMA_ISR_ADDR, 0x4);
					OS_DRIVER_ReleaseSemaphore(DMA_SEMAPHORE_ID);
					return NAND_DMA_TIMEOUT ;
				}
			}
			WRITE_REG32(DMA_ISR_ADDR, 0x4);
		#endif/*_STAND_ALONE_*/
		}
	#endif/*(DMA_TYPE==TYPE_IS_MOSE_DMA)*/
		OS_DRIVER_ReleaseSemaphore(DMA_SEMAPHORE_ID);
	}
#else    /*_NFLASH_DMA_*/
	{
		UINT16 i = 0 ;

		for (i = 0 ; i < len; i++)
			mNand_Write_Data(pWrOobBuf[i]) ;
	}
#endif  /*_NFLASH_DMA_*/

	/***this palce need to pull up the  nce**/
	mNandWrite_SET_CLE(PAGE_PRO_TRUE_CMD2);

	if (!IsReadyToRW())
	{
		DEBUG_OUT("Woob NAND_HW_ERR\n\r") ;
		return NAND_HW_ERR ;
	}

	/*if failure it need to block placement*/
	if (!IsSucessProgram())
	{
		DEBUG_OUT("Woob NAND_PRG_FAIL\n\r") ;
		return NAND_FAIL ;
	}

	return NAND_PASS;
}

 NAND_Ret NAND_SpareRead(UINT32 udAddress, UINT8 *pOobBuf,UINT32 len)
{
#ifdef _NAND_DEBUG_
	DEBUG_OUT("NandReadOOB\n\r") ;
	if ((pOobBuf == NULL) || (len > 16))
	{
		DEBUG_OUT("Roob NAND_SW_ERR\n\r") ;
		return NAND_SW_ERR ;
	}
	if (udAddress >= FLASH_SIZE_64MB)
	{
		DEBUG_OUT("Roob NAND_ADDR_OVERFLOW\n\r") ;
		return NAND_ADDR_OVERFLOW;
	}
	/* Control if the address is the buffer size is within the page*/   
	if (((udAddress % PAGE_SPARE_SIZE) + len) > PAGE_SPARE_SIZE)
	{
		DEBUG_OUT("Woob NAND_PAGE_OVERFLOW\n\r") ;
		return NAND_PAGE_OVERFLOW;
	}
#endif /*_NAND_DEBUG_*/

	//udAddress &= 0x03ffff0f ; /*a0-a3:valid address ,a4-a7:dont care*/
	WRITE_REG32(NFLASH_NFINTP_ADDR,1) ;
	mNandWrite_SET_CLE(READ2_CMD); 
	mNandWrite_SET_ALE(udAddress&0x03ffff0f) ;

	if (!IsReadyToRW())
	{
		DEBUG_OUT("Roob NAND_HW_ERR\n\r") ;
		return NAND_FAIL ;
	}

#ifdef _NFLASH_DMA_
	{
		UINT32 temp = 0;
		UINT32 TimeOut = 0;
		OS_DRIVER_ObtainSemaphore(DMA_SEMAPHORE_ID);  	 
	#if (DMA_TYPE==TYPE_IS_MOSE_DMA)
		EnablePDClk(PD_CCKEN_DMAC_BIT);
		/*start ,byte width ,length is len, source fix ,dst increment*/
		temp = 1 << 0 | 0 << 4 | (len - 1) << 8 | 1 << 20 | 0 << 21 ;  
		ProgramDMAChannel(NFLASH_NFDIN_ADDR + 1,(UINT32) pOobBuf,temp) ;

		#ifndef  _STAND_ALONE_
		{
			UINT32 EventResult; 	   /*The 32-bit variable to where the set bits is copied*/
			UINT16 EventStatus; 	   /* Event status*/
			
			EventStatus = OS_DRIVER_WaitEventOR(PERIPH_EVENT_ID,PERIPH_DMA_EVTBIT,
							&EventResult,NAND_DMA_TIMEOUT_VALUE);   
			if (EventStatus == OS_DRIVER_WAIT_EVENT_TIMEOUT)
			{
				DEBUG_OUT("Roob NAND_DMA_TIMEOUT\n\r") ;
				OS_DRIVER_ReleaseSemaphore(DMA_SEMAPHORE_ID); 
				return NAND_DMA_TIMEOUT;
			} 
		}
		#else
			temp = READ_REG32(DMA_DCR_ADDR);
			while (temp & 0x10000000)
			{
				temp = READ_REG32(DMA_DCR_ADDR);
				TimeOut++ ;
				if (TimeOut == NAND_TIMEOUT_VALUE)
				{
					OS_DRIVER_ReleaseSemaphore(DMA_SEMAPHORE_ID);
					return NAND_DMA_TIMEOUT ;
				}
			}
		#endif/*_STAND_ALONE_*/
		DisablePDClk(PD_CCKEN_DMAC_BIT);
	#elif(DMA_TYPE==TYPE_IS_GPRS_DMA)
		{
			UINT32 CtlrParam = 0, CfgrParam = 0;
			UINT32 ErrorCode ;

			/*src busrt size 0 |dst burst size 0|src width 8bits|dst width 8bits|src fix,dst inc*/
			CtlrParam = 1 << 23 ;
			/*src dst peripheral is ignored | src master 0 | dst master 1| memory to memory | 512 bytes*/
			CfgrParam = (1 << 7) | (len << 12);

			ProgramDMAChannel(NFLASH_NFDIN_ADDR,(UINT32) pOobBuf,CtlrParam,CfgrParam);
		#ifndef  _STAND_ALONE_
			{
				UINT32 EventResult; 	   /*The 32-bit variable to where the set bits is copied*/
				UINT16 EventStatus; 	   /* Event status*/

				EventStatus = OS_DRIVER_WaitEventOR(PERIPH_EVENT_ID,PERIPH_DMA_EVTBIT,
								&EventResult,NAND_DMA_TIMEOUT_VALUE);   
				if (EventStatus == OS_DRIVER_WAIT_EVENT_TIMEOUT)
				{
					DEBUG_OUT("Roob NAND_DMA_TIMEOUT\n\r") ;
					OS_DRIVER_ReleaseSemaphore(DMA_SEMAPHORE_ID); 
					return NAND_DMA_TIMEOUT;
				}
			}
		#else
			temp = READ_REG32(DMA_ISR_ADDR);
			while ((temp & 0x4) == 0)//default to channel 2
			{
				temp = READ_REG32(DMA_ISR_ADDR);
				TimeOut++ ;
				if (TimeOut == NAND_TIMEOUT_VALUE)
				{
					WRITE_REG32(DMA_ISR_ADDR, 0x4);
					OS_DRIVER_ReleaseSemaphore(DMA_SEMAPHORE_ID);
					return NAND_DMA_TIMEOUT ;
				}
			}
			WRITE_REG32(DMA_ISR_ADDR, 0x4);
		#endif/*_STAND_ALONE_*/
		}
	#endif/*(DMA_TYPE==TYPE_IS_MOSE_DMA)*/
		OS_DRIVER_ReleaseSemaphore(DMA_SEMAPHORE_ID);
	}
#else/*_NFLASH_DMA_*/
	{
		UINT8 *pd = pOobBuf ;

		 	 *pd++ = (UINT8) (mNand_Read_Data() & 0xff) ; 			
                      *pd++ = (UINT8) (mNand_Read_Data() & 0xff) ;
 			 *pd++ = (UINT8) (mNand_Read_Data() & 0xff) ;
 			 *pd++ = (UINT8) (mNand_Read_Data() & 0xff) ;
 			 *pd++ = (UINT8) (mNand_Read_Data() & 0xff) ; 
			 *pd++ = (UINT8) (mNand_Read_Data() & 0xff) ;
 			 *pd++ = (UINT8) (mNand_Read_Data() & 0xff) ; 
			 *pd++ = (UINT8) (mNand_Read_Data() & 0xff) ; 
			 *pd++ = (UINT8) (mNand_Read_Data() & 0xff) ; 
			 *pd++ = (UINT8) (mNand_Read_Data() & 0xff) ; 
			 *pd++ = (UINT8) (mNand_Read_Data() & 0xff) ; 
			 *pd++ = (UINT8) (mNand_Read_Data() & 0xff) ; 
			 *pd++ = (UINT8) (mNand_Read_Data() & 0xff) ; 
			 *pd++ = (UINT8) (mNand_Read_Data() & 0xff) ; 
			 *pd++ = (UINT8) (mNand_Read_Data() & 0xff) ; 
			 *pd++ = (UINT8) (mNand_Read_Data() & 0xff) ; 
	}
#endif/*_NFLASH_DMA_*/

	return NAND_PASS;
}


 NAND_Ret NAND_PageReadWithEcc(UINT32 udAddress, dataWidth *pReadBuf,UINT32 len)
{
	UINT8 error_code = NAND_PASS ;
	UINT8 EccBuf[3];

#ifdef _NAND_DEBUG_
	DEBUG_OUT("NandReadWithEcc\n\r") ;

	if ((pReadBuf == NULL) || (len > PAGE_SIZE))
	{
		DEBUG_OUT("Read NAND_SW_ERR\n\r") ;
		return NAND_SW_ERR ;
	}

	if (udAddress >= FLASH_SIZE_64MB)
	{
		DEBUG_OUT("Read NAND_ADDR_OVERFLOW\n\r") ;
		return NAND_ADDR_OVERFLOW;
	}
#endif /*_NAND_DEBUG_*/

	//udAddress &= 0x03ffffff ;
	WRITE_REG32(NFLASH_NFINTP_ADDR,1) ;
	mNandWrite_SET_CLE(READ1_CMD_00H);
	mNandWrite_SET_ALE(udAddress&0x03ffffff) ;

	if (!IsReadyToRW())
	{
		DEBUG_OUT("Read NAND_HW_ERR\n\r") ;
		return NAND_FAIL ;
	}

	EccClear();
	/**************Read main data area*********/
#ifdef _NFLASH_DMA_
	{
		UINT32 temp = 0;
		UINT32 TimeOut = 0;

		OS_DRIVER_ObtainSemaphore(DMA_SEMAPHORE_ID);  	
	#if (DMA_TYPE==TYPE_IS_MOSE_DMA)
		EnablePDClk(PD_CCKEN_DMAC_BIT);
		/*start ,byte width ,length is len, source fix ,dst increment*/
		/*temp = (1 << 0) | (0 << 4) | (SECTOR_SIZE- 1) << 8 | (1 << 20) | (0 << 21) ;  */
		temp = 0x11FF01;
		ProgramDMAChannel(NFLASH_NFDIN_ADDR + 1,(UINT32) pReadBuf,temp) ;
		#ifndef _STAND_ALONE_
		{
			UINT32 EventResult; 	   /*The 32-bit variable to where the set bits is copied*/
			UINT16 EventStatus; 	   /* Event status*/
			
			EventStatus = OS_DRIVER_WaitEventOR(PERIPH_EVENT_ID,PERIPH_DMA_EVTBIT,
							&EventResult,NAND_DMA_TIMEOUT_VALUE);  

			if (EventStatus == OS_DRIVER_WAIT_EVENT_TIMEOUT)
			{
				DEBUG_OUT("Read NAND_DMA_TIMEOUT\n\r") ;
				OS_DRIVER_ReleaseSemaphore(DMA_SEMAPHORE_ID); 
				return NAND_DMA_TIMEOUT;
			}  
		}
		#else
			temp = READ_REG32(DMA_DCR_ADDR);
			while (temp & 0x10000000)
			{
				temp = READ_REG32(DMA_DCR_ADDR);
				TimeOut++ ;
				if (TimeOut == NAND_TIMEOUT_VALUE)
				{
					OS_DRIVER_ReleaseSemaphore(DMA_SEMAPHORE_ID);
					return NAND_DMA_TIMEOUT ;
				}
			}
		#endif/*_STAND_ALONE_*/
		DisablePDClk(PD_CCKEN_DMAC_BIT);
	#elif (DMA_TYPE==TYPE_IS_GPRS_DMA)
		{
			UINT32 CtlrParam = 0, CfgrParam = 0;
			UINT32 ErrorCode ;

			/*src busrt size 0 |dst burst size 0|src width 8bits|dst width 8bits|src fix,dst inc*/
			CtlrParam = 1 << 23 ;
			/*src dst peripheral is ignored | src master 0 | dst master 1| memory to memory | 512 bytes*/
			CfgrParam = (1 << 7) | (512 << 12);

			ProgramDMAChannel(NFLASH_NFDIN_ADDR,(UINT32) pReadBuf,CtlrParam,CfgrParam);
		#ifndef  _STAND_ALONE_
			{
				UINT32 EventResult; 	   /*The 32-bit variable to where the set bits is copied*/
				UINT16 EventStatus; 	   /* Event status*/
				EventStatus = OS_DRIVER_WaitEventOR(PERIPH_EVENT_ID,PERIPH_DMA_EVTBIT,
								&EventResult,NAND_DMA_TIMEOUT_VALUE);   
				if (EventStatus == OS_DRIVER_WAIT_EVENT_TIMEOUT)
				{
					DEBUG_OUT("Roob NAND_DMA_TIMEOUT\n\r") ;
					OS_DRIVER_ReleaseSemaphore(DMA_SEMAPHORE_ID); 
					return NAND_DMA_TIMEOUT;
				}
			}
		#else
			temp = READ_REG32(DMA_ISR_ADDR);
			while ((temp & 0x4) == 0)//default to channel 2
			{
				temp = READ_REG32(DMA_ISR_ADDR);
				TimeOut++ ;
				if (TimeOut == NAND_TIMEOUT_VALUE)
				{
					WRITE_REG32(DMA_ISR_ADDR, 0x4);
					OS_DRIVER_ReleaseSemaphore(DMA_SEMAPHORE_ID);
					return NAND_DMA_TIMEOUT ;
				}
			}
			WRITE_REG32(DMA_ISR_ADDR, 0x4);
		#endif/*_STAND_ALONE_*/
		}
	#endif/*(DMA_TYPE==TYPE_IS_MOSE_DMA)*/
		OS_DRIVER_ReleaseSemaphore(DMA_SEMAPHORE_ID);
	
		GenerateEcc(&EccBuf[0]);
		
		/*start ,byte width ,length is len, source fix ,dst increment*/
		OS_DRIVER_ObtainSemaphore(DMA_SEMAPHORE_ID);  
		/*temp = (1 << 0) | (0 << 4) | (16 - 1) << 8 | (1 << 20) | (0 << 21) ;  */
	#if (DMA_TYPE==TYPE_IS_MOSE_DMA)
		EnablePDClk(PD_CCKEN_DMAC_BIT);
		temp = 0x100F01;  
		ProgramDMAChannel(NFLASH_NFDIN_ADDR + 1,(UINT32) (pReadBuf + SECTOR_SIZE),temp) ;
		#ifndef _STAND_ALONE_
			{
				UINT32 EventResult; 	   /*The 32-bit variable to where the set bits is copied*/
				UINT16 EventStatus; 	   /* Event status*/
				
				EventStatus = OS_DRIVER_WaitEventOR(PERIPH_EVENT_ID,PERIPH_DMA_EVTBIT,
								&EventResult,NAND_DMA_TIMEOUT_VALUE);   
				if (EventStatus == OS_DRIVER_WAIT_EVENT_TIMEOUT)
				{
					DEBUG_OUT("Read NAND_DMA_TIMEOUT\n\r") ;
					OS_DRIVER_ReleaseSemaphore(DMA_SEMAPHORE_ID); 
					return NAND_DMA_TIMEOUT;
				} 
			}
		#else
			TimeOut = 0;
			temp = READ_REG32(DMA_DCR_ADDR);
			while (temp & 0x10000000)
			{
				temp = READ_REG32(DMA_DCR_ADDR);
				TimeOut++ ;
				if (TimeOut == NAND_TIMEOUT_VALUE)
				{
					OS_DRIVER_ReleaseSemaphore(DMA_SEMAPHORE_ID);
					return NAND_DMA_TIMEOUT ;
				}
			}
		#endif/*_STAND_ALONE_*/
		DisablePDClk(PD_CCKEN_DMAC_BIT);
	#elif(DMA_TYPE==TYPE_IS_GPRS_DMA)
		{
			UINT32 CtlrParam = 0, CfgrParam = 0;
			UINT32 ErrorCode ;

			/*src busrt size 0 |dst burst size 0|src width 8bits|dst width 8bits|src fix,dst inc*/
			CtlrParam = 1 << 23 ;
			/*src dst peripheral is ignored | src master 0 | dst master 1| memory to memory | 512 bytes*/
			CfgrParam = (1 << 7) | (16 << 12);

			ProgramDMAChannel(NFLASH_NFDIN_ADDR,(UINT32) (pReadBuf + SECTOR_SIZE),
				CtlrParam,CfgrParam);
		#ifndef  _STAND_ALONE_
			{
				UINT32 EventResult; 	   /*The 32-bit variable to where the set bits is copied*/
				UINT16 EventStatus; 	   /* Event status*/
				
				EventStatus = OS_DRIVER_WaitEventOR(PERIPH_EVENT_ID,PERIPH_DMA_EVTBIT,
								&EventResult,NAND_DMA_TIMEOUT_VALUE);   
				if (EventStatus == OS_DRIVER_WAIT_EVENT_TIMEOUT)
				{
					DEBUG_OUT("Roob NAND_DMA_TIMEOUT\n\r") ;
					OS_DRIVER_ReleaseSemaphore(DMA_SEMAPHORE_ID); 
					return NAND_DMA_TIMEOUT;
				}
			}
		#else
			temp = READ_REG32(DMA_ISR_ADDR);
			while ((temp & 0x4) == 0)//default to channel 2
			{
				temp = READ_REG32(DMA_ISR_ADDR);
				TimeOut++ ;
				if (TimeOut == NAND_TIMEOUT_VALUE)
				{
					WRITE_REG32(DMA_ISR_ADDR, 0x4);
					OS_DRIVER_ReleaseSemaphore(DMA_SEMAPHORE_ID);
					return NAND_DMA_TIMEOUT ;
				}
			}
			WRITE_REG32(DMA_ISR_ADDR, 0x4);
		#endif/*_STAND_ALONE_*/
		}

	#endif/*(DMA_TYPE==TYPE_IS_MOSE_DMA)*/
		OS_DRIVER_ReleaseSemaphore(DMA_SEMAPHORE_ID);
		error_code = CompareEcc(&EccBuf[0],pReadBuf + SECTOR_SIZE);
	}
#else   /*_NFLASH_DMA_*/
	{
		
	   	 UINT8  mi,*pd;
		 UINT16 temp = SECTOR_SIZE>>4 ;
		 pd=(unsigned char *)pReadBuf;
		 mi=0;
		do
		{
			 *pd++ = (UINT8) (mNand_Read_Data() & 0xff) ; 			
                      *pd++ = (UINT8) (mNand_Read_Data() & 0xff) ;
 			 *pd++ = (UINT8) (mNand_Read_Data() & 0xff) ;
 			 *pd++ = (UINT8) (mNand_Read_Data() & 0xff) ;
 			 *pd++ = (UINT8) (mNand_Read_Data() & 0xff) ; 
			 *pd++ = (UINT8) (mNand_Read_Data() & 0xff) ;
 			 *pd++ = (UINT8) (mNand_Read_Data() & 0xff) ; 
			 *pd++ = (UINT8) (mNand_Read_Data() & 0xff) ; 
			 *pd++ = (UINT8) (mNand_Read_Data() & 0xff) ; 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩国产bt| 亚洲福利一区二区三区| 亚洲狠狠爱一区二区三区| 免费xxxx性欧美18vr| 99精品欧美一区| 国产午夜亚洲精品不卡 | 在线免费观看日本欧美| 久久先锋影音av鲁色资源网| 一个色妞综合视频在线观看| 成人午夜电影久久影院| 精品久久一区二区| 日韩av电影天堂| 欧美性色欧美a在线播放| 国产精品嫩草影院av蜜臀| 久久www免费人成看片高清| 3d动漫精品啪啪| 午夜影院久久久| 91视频国产观看| 国产精品女人毛片| 不卡视频免费播放| 国产日韩成人精品| 精品无人码麻豆乱码1区2区| 欧美高清激情brazzers| 欧美日本一区二区三区四区 | 麻豆精品视频在线观看免费| 色狠狠色噜噜噜综合网| 国产色婷婷亚洲99精品小说| 激情久久久久久久久久久久久久久久| 欧美一区二区三区视频在线| 亚洲二区视频在线| 欧美日韩国产小视频| 一二三四社区欧美黄| 91福利国产成人精品照片| 久久夜色精品一区| 天天综合网天天综合色| 亚洲国产精品自拍| 久久精品二区亚洲w码| 欧美日韩国产综合一区二区三区 | 亚洲精品在线网站| 看片网站欧美日韩| 亚洲精品一区二区三区影院| 国产综合久久久久久鬼色| 久久久五月婷婷| 成人网在线免费视频| 亚洲国产成人私人影院tom | 一区二区三区在线免费播放| 色欧美88888久久久久久影院| 一区二区三区在线免费| 欧美日韩成人在线一区| 久久99国产精品久久99果冻传媒| 欧美r级电影在线观看| 国产v日产∨综合v精品视频| 国产精品国产a| 欧美特级限制片免费在线观看| 亚洲福利一二三区| 精品1区2区在线观看| 成人av午夜影院| 亚洲国产精品一区二区www在线| 日韩午夜激情免费电影| 粉嫩av一区二区三区| 一区二区三区高清| 精品国产91亚洲一区二区三区婷婷| 国产福利视频一区二区三区| 亚洲另类春色校园小说| 日韩一区二区影院| 91蜜桃网址入口| 开心九九激情九九欧美日韩精美视频电影 | 日韩福利视频网| 久久久精品人体av艺术| 在线视频欧美区| 国产成人精品免费一区二区| 日韩毛片视频在线看| 日韩欧美国产电影| 91官网在线免费观看| 日韩av不卡在线观看| 国产精品免费aⅴ片在线观看| 欧洲精品一区二区三区在线观看| 国模娜娜一区二区三区| 亚洲一区二区三区激情| 国产欧美一区二区精品忘忧草| 欧美日产国产精品| 99精品视频在线观看免费| 久久99精品久久久久婷婷| 亚洲欧美电影一区二区| 久久综合国产精品| 欧美一级专区免费大片| 91网站视频在线观看| 激情综合色综合久久综合| 亚洲一区二区三区自拍| 国产精品黄色在线观看| 久久免费午夜影院| 欧美一区日韩一区| 欧美日韩专区在线| 色哟哟国产精品| k8久久久一区二区三区| 国产精品中文字幕日韩精品 | 精品国产髙清在线看国产毛片| 91亚洲精品乱码久久久久久蜜桃| 国内外成人在线| 久久国产免费看| 天使萌一区二区三区免费观看| 亚洲欧美日韩一区二区三区在线观看| 久久亚洲捆绑美女| 久久夜色精品国产噜噜av| 欧美mv日韩mv| 日韩精品专区在线影院重磅| 777色狠狠一区二区三区| 欧美色综合天天久久综合精品| 91麻豆精品在线观看| 99久久综合国产精品| 成人97人人超碰人人99| 北条麻妃国产九九精品视频| 顶级嫩模精品视频在线看| 成人免费福利片| 色综合婷婷久久| 欧美日韩一区三区| 精品视频一区二区三区免费| 欧洲一区二区三区在线| 欧美日韩一区二区电影| 欧美日韩电影在线播放| 91精品国产综合久久蜜臀| 日韩午夜激情视频| 国产亚洲欧美在线| 亚洲欧洲日韩av| 亚洲国产视频在线| 麻豆免费精品视频| 国产精品综合一区二区| 成人aaaa免费全部观看| 色欧美日韩亚洲| 69成人精品免费视频| 精品伦理精品一区| 日韩一区有码在线| 丝袜美腿亚洲一区二区图片| 久久精品理论片| 成人av网站在线| 欧美综合一区二区| 这里只有精品电影| 久久久噜噜噜久噜久久综合| 亚洲欧洲日韩在线| 日本一区中文字幕| 国产麻豆成人精品| 在线观看日韩一区| 日韩精品专区在线影院观看| 国产精品久久久久一区二区三区共| 亚洲最新在线观看| 精品在线亚洲视频| 99久精品国产| 91精品国产91热久久久做人人| 久久久青草青青国产亚洲免观| 亚洲欧美激情插| 久久国产夜色精品鲁鲁99| 欧美日韩大陆一区二区| 精品国产99国产精品| 亚洲欧美区自拍先锋| 久久精品国产一区二区三 | 专区另类欧美日韩| 蜜桃av一区二区| 色婷婷综合在线| 久久久99精品久久| 亚洲va欧美va人人爽午夜| 成人免费福利片| 精品国产不卡一区二区三区| 亚洲人成网站影音先锋播放| 激情偷乱视频一区二区三区| 在线精品观看国产| 国产精品国产三级国产普通话99| 婷婷综合久久一区二区三区| 成人深夜在线观看| 久久影音资源网| 日本一区中文字幕| 欧美亚洲一区三区| 中文字幕精品一区二区三区精品| 久久国产麻豆精品| 欧美丰满少妇xxxxx高潮对白| 亚洲色大成网站www久久九九| 国产一区二区看久久| 91精品国产高清一区二区三区蜜臀| 中文字幕日韩一区| 国产不卡高清在线观看视频| 欧美一卡在线观看| 午夜亚洲福利老司机| 色乱码一区二区三区88| 国产精品情趣视频| 国产99一区视频免费| 欧美成人精品二区三区99精品| 亚洲综合成人在线视频| 91在线国产观看| 国产精品久久久久久久久搜平片 | 亚洲制服丝袜在线| 972aa.com艺术欧美| 欧美国产成人精品| 不卡的电视剧免费网站有什么| 久久亚洲二区三区| 国产精品夜夜嗨| 国产日韩欧美a| 成人免费观看男女羞羞视频| 26uuu国产电影一区二区| 久久99久久99| 久久一夜天堂av一区二区三区| 国产精品一区二区三区乱码|