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

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

?? fmd.cpp

?? Samsung公司S3C2443芯片的BSP源碼包
?? CPP
?? 第 1 頁 / 共 4 頁
字號:
	NF_WRDATA_WORD(SECCBuf);
#endif

    //  Issue the write complete command
	NF_CMD(CMD_WRITE2);

    //  Check ready bit
	NF_DETECT_RB();	 // Wait tR(max 12us)

	if ( NF_RDSTAT & STATUS_ILLACC )
	{
		RETAILMSG(1, (TEXT("NAND_LB_WriteSectorInfo() ######## Error Programming page (Illigar Access) %d!\n"), sectorAddr));
		s2443NAND->NFSTAT =  STATUS_ILLACC;	// Write 1 to clear.
       	bRet = FALSE;
	}
	else
	{
		//  Check the status of program
		NF_CMD(CMD_STATUS);

		if( NF_RDDATA_BYTE() & STATUS_ERROR) {
			RETAILMSG(1, (TEXT("NAND_LB_WriteSectorInfo() ######## Error Programming page %d!\n"), sectorAddr));
			bRet = FALSE;
		}
	}

	NF_nFCE_H();

	SetKMode(bLastMode);

	return bRet;
}

BOOL RAW_LB_ReadPage(SECTOR_ADDR startSectorAddr, LPBYTE pSectorBuff, LPBYTE pSectorInfoBuff)
{
	UINT SectorAddr = (UINT)startSectorAddr;
	DWORD       i;
	volatile DWORD		rddata;	
	UINT32 SpareAddr = 2048;
	UINT32 ColAddr = 0;

	//RETAILMSG(1,(TEXT("#### FMD_DRIVER:::RAW_LB_ReadPage %x\r\n"),startSectorAddr));

	if (!pSectorBuff && !pSectorInfoBuff)
		return(FALSE);

	BOOL bLastMode = SetKMode(TRUE);

    //  Enable Chip
	NF_nFCE_L();
	
	NF_CLEAR_RB();

	NF_CMD(CMD_READ);							// Send read command.

	NF_ADDR((ColAddr)&0xff);
	NF_ADDR(((ColAddr)>>8)&0xff);
	NF_ADDR((SectorAddr) & 0xff);
	NF_ADDR((SectorAddr>>8) & 0xff);
	if (LB_NEED_EXT_ADDR)
		NF_ADDR((SectorAddr>>16) & 0xff);  

	NF_CMD(CMD_READ3);	// 2nd command
	NF_DETECT_RB();								// Wait for command to complete.

	if( ((DWORD) pSectorBuff) & 0x3) 
	{
		for(i=0; i<(2048/sizeof(DWORD)); i++) {
			rddata = (DWORD) NF_RDDATA_WORD();
			pSectorBuff[i*4+0] = (BYTE)(rddata & 0xff);
			pSectorBuff[i*4+1] = (BYTE)(rddata>>8 & 0xff);
			pSectorBuff[i*4+2] = (BYTE)(rddata>>16 & 0xff);
			pSectorBuff[i*4+3] = (BYTE)(rddata>>24 & 0xff);
		}
	}
	else 
	{
		RdPage2048(pSectorBuff);					// Read page/sector data.
	}

	NF_CMD(CMD_RDO);
	//  Set up address
	NF_ADDR((SpareAddr)&0xff);
	NF_ADDR(((SpareAddr)>>8)&0xff);

	NF_CMD(CMD_RDO2);

	if (pSectorInfoBuff)
	{
		RdPageSpare((PBYTE)pSectorInfoBuff);		// Read page/sector information.
	}

	NF_nFCE_H();

	SetKMode (bLastMode);

	return(TRUE);
}	

BOOL RAW_SB_ReadPage(SECTOR_ADDR startSectorAddr, LPBYTE pSectorBuff, LPBYTE pSectorInfoBuff)
{
	ULONG SectorAddr = (ULONG)startSectorAddr;
	UINT32* pSBuf = (UINT32*)pSectorInfoBuff;

	if (!pSectorBuff && !pSectorInfoBuff)
		return(FALSE);

	BOOL bLastMode = SetKMode(TRUE);

	//RETAILMSG(1, (TEXT("FMD::FMD_SB_ReadSector 0x%x \r\n"), startSectorAddr));

	NF_nFCE_L();
	
	NF_CLEAR_RB();

	NF_CMD(CMD_READ);							// Send read command.

	NF_ADDR(0);									// Column = 0.
	NF_ADDR((SectorAddr)   &0xff);			// Page address.
	NF_ADDR((SectorAddr>>8)&0xff);
	if (SB_NEED_EXT_ADDR)
		NF_ADDR((SectorAddr>>16)&0xff);  

	NF_DETECT_RB();								// Wait for command to complete.
	
	if( ((DWORD) pSectorBuff) & 0x3) 
	{
		RdPage512Unalign (pSectorBuff);
	}
	else 
	{
		RdPage512(pSectorBuff);					// Read page/sector data.
	}

	if (pSectorInfoBuff)
	{
		*pSBuf++ = NF_RDDATA_WORD();
		*pSBuf++ = NF_RDDATA_WORD();
		*pSBuf++ = NF_RDDATA_WORD();
		*pSBuf++ = NF_RDDATA_WORD();
	}

	NF_nFCE_H();

	SetKMode (bLastMode);

	return(TRUE);
}


BOOL FMD_SB_WriteSector(SECTOR_ADDR startSectorAddr, LPBYTE pSectorBuff, PSectorInfo pSectorInfoBuff, DWORD dwNumSectors,int mode)
{
	BYTE Status;
	ULONG SectorAddr = (ULONG)startSectorAddr;
	ULONG MECC;

	if (!pSectorBuff && !pSectorInfoBuff)
		return(FALSE);

	//RETAILMSG(1,(TEXT("#### FMD_DRIVER:::FMD_sbwrite \r\n")));
		
	BOOL bLastMode = SetKMode(TRUE);

	NF_nFCE_L();						// Select the flash chip.

	while (dwNumSectors--)
	{
		if (!pSectorBuff)	// Only spare area
		{
			// If we are asked just to write the SectorInfo, we will do that separately
			NF_CMD(CMD_READ2);					 		// Send read command.

			NF_CMD(CMD_WRITE);							// Send write command.
			NF_ADDR(0);									// Column = 0.
			NF_ADDR(SectorAddr		 & 0xff);			// Page address.
			NF_ADDR((SectorAddr >>  8) & 0xff);
			if (SB_NEED_EXT_ADDR)
				NF_ADDR((SectorAddr >> 16) & 0xff);  

			// Write the SectorInfo data to the media.
			// Spare area[7:0]
			WrPageInfo((PBYTE)pSectorInfoBuff);

			NF_CLEAR_RB();
			NF_CMD(CMD_WRITE2);				// Send write confirm command.
			NF_DETECT_RB();

			NF_CMD(CMD_STATUS);
			Status = NF_RDDATA_BYTE();					// Read command status.
			
			if (Status & STATUS_ERROR)
			{
				NF_nFCE_H();							// Deselect the flash chip.
				SetKMode (bLastMode);
				return(FALSE);
			}
			pSectorInfoBuff++;
		}
		else 		// Main area+Spare area.
		{
			NF_CMD(CMD_READ);					 		// Send read command.
			NF_CMD(CMD_WRITE);							// Send write command.
			NF_ADDR(0);									// Column = 0.
			NF_ADDR(SectorAddr		 & 0xff);			// Page address.
			NF_ADDR((SectorAddr >>  8) & 0xff);
			if (SB_NEED_EXT_ADDR)
				NF_ADDR((SectorAddr >> 16) & 0xff);  

			//  Special case to handle un-aligned buffer pointer.
			NF_RSTECC();
			NF_MECC_UnLock();
			if( ((DWORD) pSectorBuff) & 0x3) 
			{
				WrPage512Unalign (pSectorBuff);
			}
			else
			{
				WrPage512(pSectorBuff);					// Write page/sector data.
			}
			NF_MECC_Lock();
			
			// Write the SectorInfo data to the media.
			// Spare area[7:0]
			if(pSectorInfoBuff)
			{
				WrPageInfo((PBYTE)pSectorInfoBuff);
				pSectorInfoBuff++;
			}
			else	// Make sure we advance the Flash's write pointer (even though we aren't writing the SectorInfo data)
			{
				BYTE TempInfo[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
				WrPageInfo(TempInfo);
			}

			// Write the SectorInfo data to the media.
			// Spare area[11:8]
			// Get the ECC data from status register.
			MECC = NF_RDMECC0();
			// Now, Write the ECC data to Spare area[11:8]
			NF_WRDATA_BYTE((UCHAR)((MECC	  ) & 0xff));		// Spare area offset 8
			NF_WRDATA_BYTE((UCHAR)((MECC >>  8) & 0xff));	// Spare area offset 9
			NF_WRDATA_BYTE((UCHAR)((MECC >> 16) & 0xff));	// Spare area offset 10
			NF_WRDATA_BYTE((UCHAR)((MECC >> 24) & 0xff));	// Spare area offset 11

			NF_CLEAR_RB();
			NF_CMD(CMD_WRITE2);							// Send write confirm command.
			NF_DETECT_RB();
			
			do
			{
				NF_CMD(CMD_STATUS);
				Status = NF_RDDATA_BYTE();					// Read command status.
			}while(!(Status & STATUS_READY));

			if (Status & STATUS_ERROR)
			{
				NF_nFCE_H();							// Deselect the flash chip.
				SetKMode (bLastMode);
				return(FALSE);
			}
			pSectorBuff += NAND_SECTOR_SIZE;
		}
		++SectorAddr;
	}
	NF_nFCE_H();										// Deselect the flash chip.

	SetKMode (bLastMode);
	
	return(TRUE);
}


BOOL FMD_LB_EraseBlock(BLOCK_ID blockID, int mode)
{
	BOOL    bRet = TRUE;
	DWORD   dwPageID = blockID << LB_NAND_LOG_2_PAGES_PER_BLOCK;

	BOOL bLastMode = SetKMode(TRUE);

	//RETAILMSG(1, (TEXT("FMD_LB_EraseBlock 0x%x \r\n"), blockID));

    //  Enable the chip
	NF_nFCE_L();						// Select the flash chip.

	NF_CLEAR_RB();

    //  Issue command
	NF_CMD(CMD_ERASE);

    //  Set up address
	NF_ADDR((dwPageID) & 0xff);
	NF_ADDR((dwPageID >> 8) & 0xff);
	if (LB_NEED_EXT_ADDR)
		NF_ADDR((dwPageID >> 16) & 0xff);

	//  Complete erase operation
	NF_CMD(CMD_ERASE2);

	//  Wait for ready bit
	NF_DETECT_RB();	 // Wait tR(max 12us)

	if ( NF_RDSTAT & STATUS_ILLACC )
	{
        	RETAILMSG(1, (TEXT("LB######## Error Erasing block (Illigar Access) %d!\n"), blockID));
		s2443NAND->NFSTAT =  STATUS_ILLACC;	// Write 1 to clear.
		bRet = FALSE;
	}
	else
	{
		//  Check the status
		NF_CMD(CMD_STATUS);

		if( NF_RDDATA_BYTE() & STATUS_ERROR) {
			RETAILMSG(1, (TEXT("LB######## Error Erasing block %d!\n"), blockID));
			bRet = FALSE;
		}
	}

	NF_nFCE_H();						// Select the flash chip.

	SetKMode(bLastMode);

	return bRet;
}

BOOL FMD_SB_EraseBlock(BLOCK_ID blockID, int mode)
{
	BOOL    bRet = TRUE;
	DWORD   dwPageID = blockID << SB_NAND_LOG_2_PAGES_PER_BLOCK;

	BOOL bLastMode = SetKMode(TRUE);

	//RETAILMSG(1, (TEXT("FMD_sb_EraseBlock 0x%x \r\n"), blockID));

    //  Enable the chip
	NF_nFCE_L();						// Select the flash chip.

    //  Issue command
	NF_CMD(CMD_ERASE);

    //  Set up address
	NF_ADDR((dwPageID) & 0xff);
	NF_ADDR((dwPageID >> 8) & 0xff);
	if (SB_NEED_EXT_ADDR)
		NF_ADDR((dwPageID >> 16) & 0xff);

	NF_CLEAR_RB();
	//  Complete erase operation
	NF_CMD(CMD_ERASE2);

	//  Wait for ready bit
	NF_DETECT_RB();	 // Wait tR(max 12us)

	if ( NF_RDSTAT & STATUS_ILLACC )
	{
		RETAILMSG(1, (TEXT("SB######## Error Erasing block (Illigar Access) %d!\n"), blockID));
		s2443NAND->NFSTAT =  STATUS_ILLACC;	// Write 1 to clear.
		bRet = FALSE;
	}
	else
	{
		//  Check the status
		NF_CMD(CMD_STATUS);

		if( NF_RDDATA_BYTE() & STATUS_ERROR) {
			RETAILMSG(1, (TEXT("SB######## Error Erasing block %d!\n"), blockID));
			bRet = FALSE;
		}
	}

	NF_nFCE_H();						// Select the flash chip.

	SetKMode(bLastMode);

	return bRet;
}


DWORD FMD_LB_GetBlockStatus(BLOCK_ID blockID, int mode)
{
    SECTOR_ADDR sectorAddr = blockID << LB_NAND_LOG_2_PAGES_PER_BLOCK;
    SectorInfo SI;
    DWORD dwResult = 0;

	BOOL bLastMode = SetKMode(TRUE);

	//RETAILMSG(1, (TEXT("FMD_LB_GetBlockStatus (0x%x)0x%x \r\n"), blockID, sectorAddr));

	if(!FMD_LB_ReadSector(sectorAddr, NULL, &SI, 1, mode))
	{
	        return BLOCK_STATUS_UNKNOWN;
	}

	if(!(SI.bOEMReserved & OEM_BLOCK_READONLY))
	{
		dwResult |= BLOCK_STATUS_READONLY;
	}

#if MAGNETO		
    if( sectorAddr < pBSPArgs->nfsblk )
	{
        dwResult |= BLOCK_STATUS_READONLY;
	}
#endif
	
	if (!(SI.bOEMReserved & OEM_BLOCK_RESERVED))
		dwResult |= BLOCK_STATUS_RESERVED;

    if(SI.bBadBlock != 0xFF)
	{
        dwResult |= BLOCK_STATUS_BAD;
	}

	SetKMode(bLastMode);

    return dwResult;
}

DWORD FMD_SB_GetBlockStatus(BLOCK_ID blockID, int mode)
{
    SECTOR_ADDR sectorAddr = blockID << SB_NAND_LOG_2_PAGES_PER_BLOCK;
    SectorInfo SI;
    DWORD dwResult = 0;

	BOOL bLastMode = SetKMode(TRUE);

	//RETAILMSG(1, (TEXT("FMD_SB_GetBlockStatus (0x%x)0x%x \r\n"), blockID, sectorAddr));

	if(!FMD_SB_ReadSector(sectorAddr, NULL, &SI, 1, mode))
	{
        return BLOCK_STATUS_UNKNOWN;
	}

    if(!(SI.bOEMReserved & OEM_BLOCK_READONLY))
	{
        dwResult |= BLOCK_STATUS_READONLY;
	}

#if MAGNETO	
    if( blockID/8 < pBSPArgs->nfsblk )
	{
		RETAILMSG(1,(TEXT("pBSPArgs->nfsblk=%d\r\n"),pBSPArgs->nfsblk));
        	dwResult |= BLOCK_STATUS_READONLY;
	}
#endif

    if(SI.bBadBlock != 0xFF)
	{
        dwResult |= BLOCK_STATUS_BAD;
	}
	
	SetKMode(bLastMode);
	
    return dwResult;
}

BOOL FMD_LB_SetBlockStatus(BLOCK_ID blockID, DWORD dwStatus, int mode)
{
	BYTE bStatus = 0;

    if(dwStatus & BLOCK_STATUS_BAD)
	{
        if(!LB_MarkBlockBad (blockID, mode))
        {
            return FALSE;
        }
    }

    // We don't currently support setting a block to read-only, so fail if request is
    // for read-only and block is not currently read-only.
    if(dwStatus & BLOCK_STATUS_READONLY)
	{
        if(!(FMD_LB_GetBlockStatus(blockID, mode) & BLOCK_STATUS_READONLY))
        {
            return FALSE;
        }
    }

    return TRUE;
}

BOOL FMD_SB_SetBlockStatus(BLOCK_ID blockID, DWORD dwStatus, int mode)
{
    SECTOR_ADDR sectorAddr = blockID << SB_NAND_LOG_2_PAGES_PER_BLOCK;
	BYTE bStatus = 0;

	//RETAILMSG(1,(TEXT("#### FMD_DRIVER:::FMD_sbsetblock \r\n")));
	
    if(dwStatus & BLOCK_STATUS_BAD)
	{
        if(!SB_MarkBlockBad (blockID, mode))
        {
            return FALSE;
        }
    }

    // We don't currently support setting a block to read-only, so fail if request is
    // for read-only and block is not currently read-only.
    if(dwStatus & BLOCK_STATUS_READONLY)
	{
        if(!(FMD_SB_GetBlockStatus(blockID, mode) & BLOCK_STATUS_READONLY))
        {
            return FALSE;
        }
    }

    return TRUE;
}

BOOL LB_MarkBlockBad(BLOCK_ID blockID, int mode)
{
	DWORD   dwStartPage = blockID << LB_NAND_LOG_2_PAGES_PER_BLOCK;
	BOOL    bRet = TRUE;

//	RETAILMSG(1, (TEXT("LB_MarkBlockBad 0x%x \r\n"), dwStartPage));
	BOOL bLastMode = SetKMode(TRUE);

    //  Enable chip
	NF_nFCE_L();
	NF_CLEAR_RB();

    //  Issue command
    //  We are dealing with spare area
	NF_CMD(CMD_WRITE);

    //  Set up address
	NF_ADDR((2048+POS_BADBLOCK)&0xff);
	NF_ADDR(((2048+POS_BADBLOCK)>>8)&0xff);
	NF_ADDR((dwStartPage) & 0xff);
	NF_ADDR((dwStartPage >> 8) & 0xff);
	if (LB_NEED_EXT_ADDR)
		NF_ADDR((dwStartPage >> 16) & 0xff);

	NF_WRDATA_BYTE(BADBLOCKMARK);

    //  Copmlete the write
	NF_CMD(CMD_WRITE2);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区中文字幕| 亚洲最快最全在线视频| 免费观看91视频大全| 日韩午夜三级在线| 国产一区二区精品在线观看| 久久一区二区三区国产精品| 国产福利一区在线| 成人欧美一区二区三区黑人麻豆| av一区二区久久| 亚洲一区二区在线观看视频| 欧美肥胖老妇做爰| 久久成人av少妇免费| 久久久五月婷婷| 色域天天综合网| 日日欢夜夜爽一区| 久久综合久久综合亚洲| 成人听书哪个软件好| 一区二区三区中文字幕电影| 51午夜精品国产| 国产成人综合视频| 亚洲精品久久嫩草网站秘色| 在线电影国产精品| 国产成人一区在线| 亚洲国产一区二区三区| 欧美一区二区性放荡片| 懂色一区二区三区免费观看| 亚洲综合一区二区| 26uuu久久天堂性欧美| 99国产精品99久久久久久| 亚洲成人激情自拍| 国产网红主播福利一区二区| 91黄色免费网站| 国产精选一区二区三区| 亚洲九九爱视频| 欧美精品一区二区在线播放| 色综合夜色一区| 久久成人18免费观看| 一区二区三区在线免费| 亚洲精品一区二区三区精华液 | 国产亚洲成aⅴ人片在线观看| 91在线你懂得| 国产在线不卡视频| 亚洲成a人片在线观看中文| 中文在线资源观看网站视频免费不卡| 欧美午夜精品免费| 国产成人免费在线观看不卡| 免费高清不卡av| 一区av在线播放| 中文字幕高清不卡| 日韩欧美激情在线| 欧美日韩亚洲综合在线| 99精品久久99久久久久| 国内精品第一页| 蜜臀av性久久久久av蜜臀妖精| 综合精品久久久| 国产午夜亚洲精品不卡| 欧美精品日日鲁夜夜添| 色综合久久久网| 国产成人精品综合在线观看 | 久久众筹精品私拍模特| 欧美性色黄大片| 91色九色蝌蚪| 99国产精品99久久久久久| 成人免费看片app下载| 国产成人在线观看免费网站| 久久精品国产亚洲a| 另类综合日韩欧美亚洲| 日本成人在线一区| 亚洲成av人片观看| 亚洲高清免费在线| 亚洲444eee在线观看| 亚洲福利国产精品| 亚洲一区二区三区中文字幕| 一区二区三区在线观看欧美| 一区二区三区四区在线播放| 综合久久综合久久| 亚洲欧美成aⅴ人在线观看| 国产精品毛片大码女人| 中文字幕第一区二区| 国产精品美女久久福利网站| 中文字幕一区二区三区不卡| 国产精品理论片在线观看| 中文字幕一区在线观看| 一区视频在线播放| 亚洲欧美日韩国产中文在线| 亚洲免费av观看| 亚洲夂夂婷婷色拍ww47| 天天操天天色综合| 免费人成在线不卡| 极品少妇xxxx精品少妇| 国产自产视频一区二区三区| 国产激情视频一区二区三区欧美| 国产91在线观看| 91视视频在线观看入口直接观看www| 色综合中文字幕| 欧美精品日韩精品| 2023国产精品视频| 国产精品久久免费看| 一区二区三区精品视频在线| 婷婷六月综合网| 国内一区二区视频| a美女胸又www黄视频久久| 欧美色图免费看| 欧美人成免费网站| 国产精品一区二区在线看| 成人短视频下载| 欧美日韩高清一区二区| 精品国产一区二区三区久久影院 | 免费成人在线观看视频| 国产一区二区视频在线播放| 99久久99久久综合| 欧美一区二区三区人| 久久综合九色综合97婷婷女人 | 亚洲综合色自拍一区| 久久精品国产精品亚洲综合| 成人午夜电影网站| 7777精品久久久大香线蕉| 国产视频一区二区在线观看| 夜色激情一区二区| 国产另类ts人妖一区二区| 欧美亚洲综合网| 国产女人水真多18毛片18精品视频| 亚洲免费资源在线播放| 捆绑调教一区二区三区| 91啪九色porn原创视频在线观看| 538prom精品视频线放| 欧美激情一区二区在线| 午夜精品久久久久久久蜜桃app| 国产伦精品一区二区三区免费| 在线观看亚洲精品| 久久综合九色综合97_久久久| 亚洲午夜免费视频| 国产精品亚洲а∨天堂免在线| 欧美日韩在线亚洲一区蜜芽| 欧美国产日韩a欧美在线观看 | 久久综合色之久久综合| 亚洲国产成人va在线观看天堂| 高清beeg欧美| 精品国产乱码91久久久久久网站| 一区二区三区不卡视频在线观看| 国产成人一区二区精品非洲| 91精品欧美福利在线观看| 亚洲欧美一区二区三区孕妇| 国产一本一道久久香蕉| 欧美精品高清视频| 亚洲精品视频在线| 成人黄色综合网站| 久久久午夜精品理论片中文字幕| 石原莉奈在线亚洲二区| 91国产精品成人| 中文字幕日韩欧美一区二区三区| 国产综合成人久久大片91| 777午夜精品免费视频| 亚洲曰韩产成在线| 在线观看亚洲a| 一区二区三区在线看| 91女厕偷拍女厕偷拍高清| 国产人成一区二区三区影院| 韩国精品久久久| 亚洲精品一区二区三区影院| 日本成人在线视频网站| 欧美日韩五月天| 亚洲一区二区三区在线看| 在线观看一区日韩| 亚洲精品国产无天堂网2021| av成人免费在线观看| 成人欧美一区二区三区小说| 97se亚洲国产综合自在线不卡| 国产精品国产自产拍高清av| 成人午夜电影久久影院| 视频一区在线视频| 欧美日韩国产美女| 亚洲二区视频在线| 欧美人与禽zozo性伦| 三级久久三级久久| 7777精品伊人久久久大香线蕉完整版| 香蕉久久夜色精品国产使用方法| 欧美日韩一区在线观看| 丝袜诱惑制服诱惑色一区在线观看 | 黄色小说综合网站| 26uuu久久综合| 粗大黑人巨茎大战欧美成人| 国产精品伦理一区二区| 91香蕉视频mp4| 亚洲成人动漫av| 日韩美女一区二区三区| 国产精品69久久久久水密桃| 中文字幕巨乱亚洲| 欧美性一区二区| 免费成人美女在线观看| 精品国产乱码久久久久久蜜臀 | 日本成人超碰在线观看| 精品国产区一区| 成人一区二区三区视频| 亚洲一区在线观看免费| 日韩欧美一级在线播放| 风间由美性色一区二区三区| 一区二区日韩av| 精品捆绑美女sm三区| 99热精品一区二区|