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

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

?? nand_drv_common.c

?? MTK手機平臺下載工具FLASHTOOL驅動源碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
	// read ECC parity info generated by NFI 
	// each parity register contains only 12 bits valid value 
	if( 512 < page_size ) {
		ecc_parity_from_reg[0] =  (*NFI_PAR0);
		ecc_parity_from_reg[0] |= (*NFI_PAR1) << 16;
		ecc_parity_from_reg[1] =  (*NFI_PAR2);
		ecc_parity_from_reg[1] |= (*NFI_PAR3) << 16;
		ecc_parity_from_reg[2] =  (*NFI_PAR4);
		ecc_parity_from_reg[2] |= (*NFI_PAR5) << 16;
		ecc_parity_from_reg[3] =  (*NFI_PAR6);
		ecc_parity_from_reg[3] |= (*NFI_PAR7) << 16;
	}
	else {
		// for 512 page size flash, the block-0 ECC parity are stored in PARITY6 and PARITY7 
		ecc_parity_from_reg[0] =  (*NFI_PAR6);
		ecc_parity_from_reg[0] |= (*NFI_PAR7) << 16;
		//ecc_parity_from_reg[1] = 0;
		//ecc_parity_from_reg[2] = 0;
		//ecc_parity_from_reg[3] = 0;
	}

end:
	// disable burst read 
	*NFI_OPCON = 0x0;

	return ret;
}

//------------------------------------------------------------------------------
// Page Program Callback Function                                               
//------------------------------------------------------------------------------
STATUS_E  NAND_COMMON_PageProgram(
				const NAND_DeviceInfo_S  *nand_info
				,const uint32  c_timeout
				,const uint32  row_addr
				,const uint32 *p_data32 /* MUST be 32bits alignment addr */
				,uint32  ecc_parity_from_reg[4]
) {
	uint32		page_size;
	uint32		spare_size;
	uint32		column_addr_bits;
	uint32		addr_cycle;
	uint32		io_interface;
	STATUS_E	ret=S_UNKNOWN_ERR;
	bool		bUsingDMA=TRUE;

	page_size = NUTL_PAGE_SIZE(nand_info);
	spare_size = NUTL_SPARE_SIZE(nand_info);
	column_addr_bits = NUTL_PAGE_ADDR_SHIFT_BITS(nand_info);
	addr_cycle = NUTL_ADDR_CYCLE(nand_info);
	io_interface = NUTL_IO_INTERFACE(nand_info);

	// reset the NFI core state machine, data FIFO and flushing FIFO 
	*NFI_OPCON = 0x0;
	*NFI_CON = 0x0;
	*NFI_FIFOCON = 0x30;

	// in most 512 page size NAND flash, you have to setup destination pointer to 1st half area 
	if(nand_info->m_dev->m_cmd_set->m_program_1st_half_page.m_enable) {
		*NFI_CMD = nand_info->m_dev->m_cmd_set->m_program_1st_half_page.m_cmd;
		// wait til CMD is completely issued 
		while( *NFI_PSTA & STATUS_CMD );
	}

	// program cmd 
	*NFI_CMD = nand_info->m_dev->m_cmd_set->m_program.m_cmd;
	// wait til CMD is completely issued 
	while( *NFI_PSTA & STATUS_CMD );

	// fill 1~4 cycle addr 
	*NFI_ADDRL = (row_addr<<column_addr_bits);
	*NFI_ADDRM = 0;
	if( 4 < addr_cycle ) {
		// if addr cycle is more than 4, you have to fill 5th cycle addr 
		*NFI_ADDRM = (row_addr>>(32-column_addr_bits));
	}
	// no. of addr cycle 
	*NFI_ADDNOB = addr_cycle;
	// wait til ADDR is completely issued 
	while( *NFI_PSTA & STATUS_ADDR );


	// set burst program by DWORD 
	*NFI_OPCON = BURST_WR | NOB_DWORD;
	// wait til DATA_WRITE is completely issued 
	while( *NFI_PSTA & STATUS_DATAW );


#ifdef DISABLE_NFI_DMA
	bUsingDMA = FALSE;
#else
	bUsingDMA = TRUE;
	// activating DMA transfer 
	*NFI_CON |= DMA_WR_EN;
#endif

	// program page data 
	if( S_DONE != (ret=NUTL_FIFO_Write(c_timeout, bUsingDMA, p_data32, page_size)) ) {
		return ret;
	}
 
	// <<<<  WARNING!! >>>>                                                              
	// 1. You MUST read parity registers before issue program confirm (0x10) command.    
	//    Since the parity registers will be clean by NFI after issue program confirm.   
	// 2. You MUST wait until the NFI FIFO is empty!                                     
	//    It means all data in the FIFO had been written to NAND flash, and then you can 
	//    start to read ECC parity registers.                                            
	while(!(*NFI_FIFOCON & WR_EMPTY_MASK));

	// read ECC parity info generated by NFI 
	// each parity register contains only 12 bits valid value 
	if( 512 < page_size ) {
		ecc_parity_from_reg[0] =  (*NFI_PAR0);
		ecc_parity_from_reg[0] |= (*NFI_PAR1) << 16;
		ecc_parity_from_reg[1] =  (*NFI_PAR2);
		ecc_parity_from_reg[1] |= (*NFI_PAR3) << 16;
		ecc_parity_from_reg[2] =  (*NFI_PAR4);
		ecc_parity_from_reg[2] |= (*NFI_PAR5) << 16;
		ecc_parity_from_reg[3] =  (*NFI_PAR6);
		ecc_parity_from_reg[3] |= (*NFI_PAR7) << 16;
	}
	else {
		// for 512 page size flash, the block-0 ECC parity are stored in PARITY6 and PARITY7 
		ecc_parity_from_reg[0] =  (*NFI_PAR6);
		ecc_parity_from_reg[0] |= (*NFI_PAR7) << 16;
		//ecc_parity_from_reg[1] = 0;
		//ecc_parity_from_reg[2] = 0;
		//ecc_parity_from_reg[3] = 0;
	}	

	// program confirm 
	*NFI_CMD = nand_info->m_dev->m_cmd_set->m_program_cnf.m_cmd;
	// wait til CMD is completely issued 
	while( *NFI_PSTA & STATUS_CMD );

	return S_DONE;
}

//------------------------------------------------------------------------------
// Spare Read Callback Function                                                 
//------------------------------------------------------------------------------
STATUS_E  NAND_COMMON_SpareRead(
				const NAND_DeviceInfo_S  *nand_info
				,const uint32  c_timeout
				,const uint32  row_addr
				,uint32 *p_spare32 /* MUST be 32bits alignment addr */
) {
	uint32		page_size;
	uint32		spare_addr;
	uint32		spare_size;
	uint32		column_addr_bits;
	uint32		addr_cycle;
	uint32		io_interface;
	STATUS_E	ret=S_UNKNOWN_ERR;
	bool		bUsingDMA=TRUE;

	page_size = NUTL_PAGE_SIZE(nand_info);
	spare_size = NUTL_SPARE_SIZE(nand_info);
	column_addr_bits = NUTL_PAGE_ADDR_SHIFT_BITS(nand_info);
	addr_cycle = NUTL_ADDR_CYCLE(nand_info);
	io_interface = NUTL_IO_INTERFACE(nand_info);

	// reset the NFI core state machine, data FIFO and flushing FIFO 
	*NFI_OPCON = 0x0;
	*NFI_CON = 0x0;
	*NFI_FIFOCON = 0x30;

	// set NFI core to write/read spare area 
	*NFI_CON = SW_PROGSPARE_EN;

	// set up spare address 
	if( 512 < page_size ) {
		// plus the page size to set the column address to the beginning of spare area 
		if( NAND_IO_16BITS == io_interface ) {
			// for 16 bits I/O, the address is WORD address, so the offset to the spare area should be page_size/2 
			spare_addr = (row_addr<<column_addr_bits)+(page_size>>1); 
		}
		else {
			spare_addr = (row_addr<<column_addr_bits)+page_size; 
		}
	}
	else {
		// set up spare address, A7-A4 don't care, A3-A0 is the offset whthin the spare area 
		spare_addr = (row_addr<<column_addr_bits);
	}

	// read cmd 
	if(nand_info->m_dev->m_cmd_set->m_read_spare.m_enable) {
		// in most 512 page size NAND flash, you have to setup destination pointer to spare area 
		*NFI_CMD = nand_info->m_dev->m_cmd_set->m_read_spare.m_cmd;
	}
	else {
		*NFI_CMD = nand_info->m_dev->m_cmd_set->m_read.m_cmd;
	}
	// wait til CMD is completely issued 
	while( *NFI_PSTA & STATUS_CMD );

	// fill 1~4 cycle addr 
	*NFI_ADDRL = spare_addr;
	*NFI_ADDRM = 0;
	if( 4 < addr_cycle ) {
		// if addr cycle is more than 4, you have to fill 5th cycle addr 
		*NFI_ADDRM = (row_addr>>(32-column_addr_bits));
	}
	// no. of addr cycle 
	*NFI_ADDNOB = addr_cycle;
	// wait til ADDR is completely issued 
	while( *NFI_PSTA & STATUS_ADDR );


	// read confirm 
	if(nand_info->m_dev->m_cmd_set->m_read_cnf.m_enable) {
		*NFI_CMD = nand_info->m_dev->m_cmd_set->m_read_cnf.m_cmd;
	}
	// set burst read by DWORD 
	*NFI_OPCON = BURST_RD | NOB_DWORD;
	// wait til DATA_READ is completely issued 
	while( *NFI_PSTA & STATUS_DATAR );


#ifdef DISABLE_NFI_DMA
	bUsingDMA = FALSE;
#else
	bUsingDMA = TRUE;
	// activating DMA transfer 
	*NFI_CON |= DMA_RD_EN;
#endif

	// read spare data 
	if( S_DONE != (ret=NUTL_FIFO_Read(c_timeout, bUsingDMA, p_spare32, spare_size)) ) {
		goto end;
	}

end:
	// disable burst read 
	*NFI_OPCON = 0x0;

	return ret;
}

//------------------------------------------------------------------------------
// Spare Program Callback Function                                              
//------------------------------------------------------------------------------
STATUS_E  NAND_COMMON_SpareProgram(
				const NAND_DeviceInfo_S  *nand_info
				,const uint32  c_timeout
				,const uint32  row_addr
				,const uint32 *p_spare32 /* MUST be 32bits alignment addr */
) {
	uint32		page_size;
	uint32		spare_addr;
	uint32		spare_size;
	uint32		column_addr_bits;
	uint32		addr_cycle;
	uint32		io_interface;
	uint32		timeout = c_timeout;
	STATUS_E	ret=S_UNKNOWN_ERR;
	bool		bUsingDMA=TRUE;

	page_size = NUTL_PAGE_SIZE(nand_info);
	spare_size = NUTL_SPARE_SIZE(nand_info);
	column_addr_bits = NUTL_PAGE_ADDR_SHIFT_BITS(nand_info);
	addr_cycle = NUTL_ADDR_CYCLE(nand_info);
	io_interface = NUTL_IO_INTERFACE(nand_info);

	// reset the NFI core state machine, data FIFO and flushing FIFO 
	*NFI_OPCON = 0x0;
	*NFI_CON = 0x0;
	*NFI_FIFOCON = 0x30;

	// set NFI core to write/read spare area 
	*NFI_CON = SW_PROGSPARE_EN;

	// set up spare address 
	if(nand_info->m_dev->m_cmd_set->m_read_spare.m_enable) {
		// in most 512 page size NAND flash, you have to setup destination pointer to spare area 
		*NFI_CMD = nand_info->m_dev->m_cmd_set->m_read_spare.m_cmd;
		// wait til CMD is completely issued 
		while( *NFI_PSTA & STATUS_CMD );

		// set up spare address, A7-A4 don't care, A3-A0 is the offset whthin the spare area 
		spare_addr = (row_addr<<column_addr_bits);
	}
	else {
		// if no additional spare cmd is required, just plus the page size to set the column address to the beginning of spare area 
		if( NAND_IO_16BITS == io_interface ) {
			// for 16 bits I/O, the address is WORD address, so the offset to the spare area should be page_size/2 
			spare_addr = (row_addr<<column_addr_bits)+(page_size>>1); 
		}
		else {
			spare_addr = (row_addr<<column_addr_bits)+page_size; 
		}
	}

	// program cmd 
	*NFI_CMD = nand_info->m_dev->m_cmd_set->m_program.m_cmd;
	// wait til CMD is completely issued 
	while( *NFI_PSTA & STATUS_CMD );

	// fill 1~4 cycle addr 
	*NFI_ADDRL = spare_addr;
	*NFI_ADDRM = 0;
	if( 4 < addr_cycle ) {
		// if addr cycle is more than 4, you have to fill 5th cycle addr 
		*NFI_ADDRM = (row_addr>>(32-column_addr_bits));
	}
	// no. of addr cycle 
	*NFI_ADDNOB = addr_cycle;
	// wait til ADDR is completely issued 
	while( *NFI_PSTA & STATUS_ADDR );

	// set burst program by DWORD 
	*NFI_OPCON = BURST_WR | NOB_DWORD;
	// wait til DATA_WRITE is completely issued 
	while( *NFI_PSTA & STATUS_DATAW );

#ifdef DISABLE_NFI_DMA
	bUsingDMA = FALSE;
#else
	bUsingDMA = TRUE;
	// activating DMA transfer 
	*NFI_CON |= DMA_WR_EN;
#endif

	// program spare data 
	if( S_DONE != (ret=NUTL_FIFO_Write(c_timeout, bUsingDMA, p_spare32, spare_size)) ) {
		return ret;
	}

	// <<<<  WARNING!! >>>>                                                              
	// 1. You MUST wait until the NFI FIFO is empty!                                     
	//    It means all data in the FIFO had been written to NAND flash.                  
	timeout = c_timeout;
	NFI_Wait( !(*NFI_FIFOCON & WR_EMPTY_MASK), timeout);
	if( 0 == timeout ) {
		return S_TIMEOUT;
	}

	// program confirm 
	*NFI_CMD = nand_info->m_dev->m_cmd_set->m_program_cnf.m_cmd;
	// wait til CMD is completely issued 
	while( *NFI_PSTA & STATUS_CMD );

	return S_DONE;
}

//------------------------------------------------------------------------------
// CopyBack Callback Function                                                   
//------------------------------------------------------------------------------
STATUS_E  NAND_COMMON_CopyBack(
				const NAND_DeviceInfo_S  *nand_info
				,const uint32  c_timeout
				,const uint32  src_row_addr
				,const uint32  dest_row_addr
) {
	uint32	page_size;
	uint32	spare_size;
	uint32	column_addr_bits;
	uint32	addr_cycle;
	uint32	io_interface;
	uint32	timeout = c_timeout;
	STATUS_E	ret=S_UNKNOWN_ERR;

	page_size = NUTL_PAGE_SIZE(nand_info);
	spare_size = NUTL_SPARE_SIZE(nand_info);
	column_addr_bits = NUTL_PAGE_ADDR_SHIFT_BITS(nand_info);
	addr_cycle = NUTL_ADDR_CYCLE(nand_info);
	io_interface = NUTL_IO_INTERFACE(nand_info);

	// reset the NFI core state machine, data FIFO and flushing FIFO 
	*NFI_OPCON = 0x0;
	*NFI_CON = 0x0;
	*NFI_FIFOCON = 0x30;

	// enable interrupt 
	*NFI_INTR_EN = BUSY_RETURN_EN;

	// copyback read cmd 
	*NFI_CMD = nand_info->m_dev->m_cmd_set->m_copyback_read.m_cmd;
	// wait til CMD is completely issued 
	while( *NFI_PSTA & STATUS_CMD );

	// fill 1~4 cycle addr 
	*NFI_ADDRL = (src_row_addr<<column_addr_bits);
	*NFI_ADDRM = 0;
	if( 4 < addr_cycle ) {
		// if addr cycle is more than 4, you have to fill 5th cycle addr 
		*NFI_ADDRM = (src_row_addr>>(32-column_addr_bits));
	}
	// no. of addr cycle 
	*NFI_ADDNOB = addr_cycle;
	// wait til ADDR is completely issued 
	while( *NFI_PSTA & STATUS_ADDR );

	// copyback read confirm 
	if(nand_info->m_dev->m_cmd_set->m_copyback_read_cnf.m_enable) {
		*NFI_CMD = nand_info->m_dev->m_cmd_set->m_copyback_read_cnf.m_cmd;
		// wait til CMD is completely issued 
		while( *NFI_PSTA & STATUS_CMD );
	}

	// wait for copyback read finish 
	timeout = c_timeout;
	NFI_Wait( !(*NFI_INTR & BUSY_RETURN), timeout);
	if( 0 == timeout ) {
		ret = S_TIMEOUT;
		goto end;
	}

	// copyback program cmd 
	*NFI_CMD = nand_info->m_dev->m_cmd_set->m_copyback_program.m_cmd;
	// wait til CMD is completely issued 
	while( *NFI_PSTA & STATUS_CMD );

	// fill 1~4 cycle addr 
	*NFI_ADDRL = (dest_row_addr<<column_addr_bits);
	*NFI_ADDRM = 0;
	if( 4 < addr_cycle ) {
		// if addr cycle is more than 4, you have to fill 5th cycle addr 
		*NFI_ADDRM = (dest_row_addr>>(32-column_addr_bits));
	}
	// no. of addr cycle 
	*NFI_ADDNOB = addr_cycle;
	// wait til ADDR is completely issued 
	while( *NFI_PSTA & STATUS_ADDR );

	// copy-back program confirm 
	if(nand_info->m_dev->m_cmd_set->m_copyback_program_cnf.m_enable) {
		*NFI_CMD = nand_info->m_dev->m_cmd_set->m_copyback_program_cnf.m_cmd;
		// wait til CMD is completely issued 
		while( *NFI_PSTA & STATUS_CMD );
	}

//	while( *NFI_PSTA & STATUS_BUSY );
/*
	// wait for copyback program finish 
	timeout = c_timeout;
	NFI_Wait( !(*NFI_INTR & BUSY_RETURN), timeout) {
		if( 1 == timeout ) {
			if( S_IN_PROGRESS != (ret=CB_NAND_READ_STATUS(nand_info, c_timeout)) ) {
				UART_Printf("NO BUSY_RETURN, ret=(%d)\r\n", ret);
			}
		}
	}
	if( 0 == timeout ) {
		ret = S_TIMEOUT;
		goto end;
	}*/

	ret = S_DONE;

end:
	// disable interrupt 
	*NFI_INTR_EN = 0;

	return ret;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美a一区二区| 亚洲图片你懂的| 美女一区二区视频| 欧美不卡一区二区| 黄色精品一二区| 国产亚洲一区二区三区| 不卡在线观看av| 亚洲丝袜另类动漫二区| 欧美色图天堂网| 一区二区三区四区国产精品| 欧美午夜不卡在线观看免费| 日韩成人av影视| 久久久一区二区| 日本精品视频一区二区| 日韩专区在线视频| 久久久久综合网| 99久久99久久精品免费看蜜桃 | 国产精品69毛片高清亚洲| 欧美激情一区二区三区蜜桃视频| 99精品在线免费| 日日欢夜夜爽一区| 国产欧美一区二区精品秋霞影院| 色婷婷一区二区| 久草这里只有精品视频| 国产精品久久影院| 欧美精品三级在线观看| 国产麻豆视频一区二区| 亚洲一区在线电影| 久久久高清一区二区三区| 色婷婷久久久综合中文字幕| 狠狠色丁香婷婷综合久久片| 亚洲免费观看高清| 精品国产一区a| 欧洲精品视频在线观看| 国产主播一区二区三区| 一区二区欧美国产| 久久精子c满五个校花| 欧美性一二三区| 成人污视频在线观看| 日韩电影免费在线看| 国产精品免费观看视频| 欧美高清你懂得| 91在线小视频| 国产一区二区福利视频| 无码av免费一区二区三区试看| 国产调教视频一区| 欧美一区二区三区四区久久| 97久久精品人人做人人爽| 精东粉嫩av免费一区二区三区| 亚洲大尺度视频在线观看| 中文字幕一区二区三中文字幕| 91麻豆精品国产无毒不卡在线观看| www.在线欧美| 国产激情视频一区二区在线观看 | 精品国产一区二区三区忘忧草| 色94色欧美sute亚洲线路二| 国产精品一区三区| 日韩 欧美一区二区三区| 亚洲嫩草精品久久| 中文天堂在线一区| 国产香蕉久久精品综合网| 欧美一区二区三区视频在线| 欧美日韩成人综合| 91高清视频在线| 99精品视频一区二区三区| 国产91精品露脸国语对白| 国内一区二区在线| 久久99久久精品欧美| 日本在线播放一区二区三区| 天天综合日日夜夜精品| 亚洲成av人影院在线观看网| 亚洲一二三四区不卡| 一区二区三区四区在线免费观看 | 日韩国产欧美在线播放| 一区二区三区蜜桃网| 亚洲少妇最新在线视频| 亚洲视频在线观看三级| 亚洲欧美一区二区在线观看| 中文字幕亚洲一区二区av在线| 国产精品午夜电影| 国产精品国产三级国产a| 国产精品色婷婷久久58| 亚洲欧洲av在线| 一级日本不卡的影视| 亚洲国产成人精品视频| 日日夜夜精品视频免费| 琪琪久久久久日韩精品| 美国精品在线观看| 激情综合网激情| 国产超碰在线一区| caoporm超碰国产精品| 一本色道久久综合狠狠躁的推荐 | 国产福利91精品| 丰满少妇在线播放bd日韩电影| 成人黄色小视频| 在线免费不卡电影| 日韩免费福利电影在线观看| 精品处破学生在线二十三| 国产午夜亚洲精品不卡| 成人免费小视频| 午夜av一区二区三区| 久久精品久久99精品久久| 国产成人亚洲精品狼色在线| 91亚洲午夜精品久久久久久| 欧美亚洲国产一区二区三区va | 欧美成人video| 亚洲国产成人午夜在线一区| 丝袜美腿一区二区三区| 精品在线一区二区| 处破女av一区二区| 在线精品视频免费观看| 日韩欧美在线一区二区三区| 欧美激情一区二区三区全黄| 亚洲一二三级电影| 国内精品视频一区二区三区八戒| 成人午夜大片免费观看| 欧美日韩精品一区二区| 久久久久久麻豆| 性做久久久久久| 成人涩涩免费视频| 欧美日韩久久久| 国产精品美女久久久久aⅴ | 5566中文字幕一区二区电影| 久久久久久免费毛片精品| 亚洲国产成人高清精品| 国产91在线观看| 欧美一区二区三区视频免费 | 国产成人aaa| 欧美丰满美乳xxx高潮www| 国产欧美精品在线观看| 婷婷六月综合网| 99久久婷婷国产| 精品国产亚洲一区二区三区在线观看| 亚洲欧美韩国综合色| 国产一区二区不卡老阿姨| 欧美日韩情趣电影| 日本一区二区动态图| 日韩中文欧美在线| 色综合久久中文字幕综合网| 久久青草欧美一区二区三区| 日本不卡一区二区| 一本大道av一区二区在线播放| 久久亚洲精华国产精华液| 日韩电影一二三区| 欧美日韩综合在线免费观看| 国产精品三级av| 国产高清精品网站| 日韩欧美中文字幕制服| 亚洲电影中文字幕在线观看| av福利精品导航| 国产精品免费丝袜| 国产激情一区二区三区| 久久午夜国产精品| 蜜桃av一区二区在线观看| 欧美丰满一区二区免费视频| 亚洲一区二区三区免费视频| 日本韩国一区二区三区视频| 中文字幕亚洲成人| 成人午夜电影小说| 国产精品大尺度| 国产成人三级在线观看| 久久久久久综合| 国产电影精品久久禁18| 久久久精品tv| 国产成人精品三级麻豆| 国产亚洲欧美色| 高清不卡在线观看av| 国产欧美日韩视频一区二区| 国产不卡免费视频| 中文字幕高清不卡| 99精品国产99久久久久久白柏| 国产欧美精品国产国产专区 | 91福利国产成人精品照片| 亚洲人被黑人高潮完整版| 99r精品视频| 亚洲欧美成人一区二区三区| 91麻豆swag| 亚洲一二三四区| 欧美一区二区日韩| 精品一区二区三区不卡| 国产三级精品三级| www.日韩在线| 亚洲综合一区二区| 欧美一区二区在线观看| 麻豆国产精品一区二区三区| 久久久亚洲精品石原莉奈 | 亚洲一级片在线观看| 555www色欧美视频| 久久精品国产999大香线蕉| 亚洲精品在线免费观看视频| 国产精品888| 一二三区精品视频| 7799精品视频| 国产一区二区剧情av在线| 中文字幕精品一区| 欧美日韩一区二区在线视频| 天天综合网天天综合色| 26uuu精品一区二区在线观看| 成人一级黄色片| 亚洲第一激情av|