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

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

?? halboot.si

?? 開放源碼實時操作系統源碼.
?? SI
字號:
#ifndef CYGONCE_HAL_HALBOOT_SI /* -*-asm-*- */
#define CYGONCE_HAL_HALBOOT_SI
// ====================================================================
//
//	<platform>/halboot.si
//
//	HAL bootup platform-oriented code (assembler)
//
// ====================================================================
//####ECOSGPLCOPYRIGHTBEGIN####
// -------------------------------------------
// This file is part of eCos, the Embedded Configurable Operating System.
// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
//
// eCos is free software; you can redistribute it and/or modify it under
// the terms of the GNU General Public License as published by the Free
// Software Foundation; either version 2 or (at your option) any later version.
//
// eCos is distributed in the hope that it will be useful, but WITHOUT ANY
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
// for more details.
//
// You should have received a copy of the GNU General Public License along
// with eCos; if not, write to the Free Software Foundation, Inc.,
// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
//
// As a special exception, if other files instantiate templates or use macros
// or inline functions from this file, or you compile this file and link it
// with other works to produce a work based on this file, this file does not
// by itself cause the resulting work to be covered by the GNU General Public
// License. However the source code for this file must still be made available
// in accordance with section (3) of the GNU General Public License.
//
// This exception does not invalidate any other reasons why a work based on
// this file might be covered by the GNU General Public License.
//
// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
// at http://sources.redhat.com/ecos/ecos-license/
// -------------------------------------------
//####ECOSGPLCOPYRIGHTEND####
// ====================================================================
//#####DESCRIPTIONBEGIN####
//
// Author(s): 	        hmt
// Contributors:	hmt
// Date:	        1999-02-01
// Purpose:	        Bootup code, platform oriented.
// Description:
//
//####DESCRIPTIONEND####
//
// ====================================================================

// External Platform Initial Setup
//
// This should set up RAM and caches, and calm down any external
// interrupt sources.
//
// It is just plain included in vectors.S
//
// RAM has not yet been touched at all; in fact all you have is a
// register window selected.

	
#ifdef CYG_HAL_STARTUP_RAM
	! Hit the entry point instructions in situ
#ifndef CYGIMP_HAL_SPARCLITE_COPY_VECTORS_TO_RAM
	! *unless* we are going to copy into a different RAM area anyway:
	! copy the real instructions into the vector:	
	rd	%tbr, %g1
	andn	%g1, 0xfff, %g1		! clear non-address bits
	set	real_vector_instructions, %l0
	ld	[ %l0 ], %l1
	st	%l1, [ %g1 ]		! into the vector
	ld	[ %l0 + 4 ], %l1
	st	%l1, [ %g1 + 4 ]	! into the vector
	! then invalidate the instruction cache:
	set	3, %l0
	set	0x00001000, %l1
	set	0x80001000, %l2
	sta	%l0, [ %l1 ] 0x0c
	sta	%l0, [ %l2 ] 0x0c
	! and the data cache
	sta	%l0, [ %l1 ] 0x0e
	sta	%l0, [ %l2 ] 0x0e
	nop
	nop
	nop
	nop				! should be enough
#endif // !CYGIMP_HAL_SPARCLITE_COPY_VECTORS_TO_RAM
#endif // CYG_HAL_STARTUP_RAM
	

#include <cyg/hal/hal_cpu.h>		// a copy of CygMon~s cpu.h
	

/* Address of clock switch */
#define CLKSW_ADDR  0x01000003

/* Address of SW1 */
#define SW1_ADDR  0x02000003

/* Address of LED bank */
#define LED_ADDR  0x02000003

#define SRAM_BASE 0x30000000
#define SRAM_END  0x30080000


#define DRAM_BASE      0x04000000	/* base of system DRAM */
#define CS3_BASE       0x00000000       /* base of internal resource regs */
#define CS3_ASI        7                /* ASI of internal resource regs  */

// DRAM_BASE2 is defined so that we run the same RAM-sizing code in both
// RAM and ROM startup versions; but the RAM startup one starts RAM sizing
// at 0x043ff000 ie. 4k down from the top of the 4M available.
	
#ifdef CYG_HAL_STARTUP_RAM
#define DRAM_BASE2 DRAM_BASE + 0x00400000 - 0x1000
#else
#define DRAM_BASE2 DRAM_BASE
#endif
	
        .macro led val
        sethi   %hi(LED_ADDR),%l7
        set     \val,%l6
	not	%l6, %l6
        stb     %l6,[%l7 + %lo(LED_ADDR)]
        .endm

	/*
	 * First, setup chip selects.
	 *
	 * NB: The AMR_VAL macro actually inverts the mask bits. For me, it is
	 *     more natural to write a 1 bit where I want the address compared.
	 *     The sparc registers use 0 bits, instead.
	 */
	
	/* -CS0 ADDR_MASK:0xfc000000 ASI_MASK:0xfc */
	set	AMR_VAL(0xfc,0xfc000000),%l0
	mov	AMR0,%l1
	sta	%l0,[%l1] 1
	
	/* -CS1	BASE:0x10000000 ASI:4 */
	set	ARSR_VAL(4,0x10000000),%l0
	mov	ARSR1,%l1
	sta	%l0,[%l1] 1
	/* -CS1 ADDR MASK:0xf0000000 ASI MASK:0x7 */
	set	AMR_VAL(7,0xf0000000),%l0
	mov	AMR1,%l1
	sta	%l0,[%l1] 1
	
	/* -CS2	BASE:0x20000000 ASI:4 */
	set	ARSR_VAL(4,0x20000000), %l0
	mov	ARSR2,%l1
	sta	%l0,[%l1] 1
	/* -CS2 ADDR MASK:0xf0000000 ASI MASK:0x7 */
	set	AMR_VAL(7,0xf0000000),%l0
	mov	AMR2,%l1
	sta	%l0,[%l1] 1
	
	/* -CS3	BASE:CS3_BASE ASI:CS3_ASI */
	set	ARSR_VAL(CS3_ASI,CS3_BASE),%l0
	mov	ARSR3,%l1
	sta	%l0,[%l1] 1
	/* -CS3 ADDR MASK:0xffff0000 ASI MASK:0x7 */
	set	AMR_VAL(7,0xffff0000),%l0
	mov	AMR3,%l1
	sta	%l0,[%l1] 1
	
	/* -CS4 BASE: DRAM_BASE ASI:0xb */
	set	ARSR_VAL(0xb,DRAM_BASE),%l0
	mov	ARSR4,%l1
	sta	%l0,[%l1] 1
	/* -CS4 ADDR MASK:0xfc000000 ASI MASK:0xfc */
	set	AMR_VAL(0xfc,0xfc000000),%l0
	mov	AMR4,%l1
	sta	%l0,[%l1] 1
	
	/* -CS5 BASE:0x30000000 ASI:0xb */
	set	ARSR_VAL(0xb,0x30000000),%l0
	mov	ARSR5,%l1
	sta	%l0,[%l1] 1
	/* -CS5 ADDR MASK:0xfff80000 ASI MASK:0xfc */
	set	AMR_VAL(0xfc,0xfff80000),%l0
	mov	AMR5,%l1
	sta	%l0,[%l1] 1

	
	/*
	 * Setup wait states. Each wait state register sets the wait states for
	 * a pair of chip selects. The lower bits hold the wait state info for
	 * the lower numbered chip select.
	 */

	/* -CS0: 5 wait states,  -CS1: 7 wait states */
//	set	WSSR_VAL(7,7,WSSR_WAITEN,5,5,WSSR_WAITEN),%l0
//	set	WSSR_VAL(4,4,WSSR_WAITEN,5,5,WSSR_WAITEN),%l0 // FOUR -> CS1
	set	WSSR_VAL(10,10,WSSR_WAITEN,5,5,WSSR_WAITEN),%l0 // TEN -> CS1
	mov	WSSR0,%l1
	sta	%l0,[%l1] 1

	/* -CS2: wait states disabled,  -CS3: wait states disabled */
	set	WSSR_VAL(0,0,0,0,0,0),%l0
	mov	WSSR1,%l1
	sta	%l0,[%l1] 1

	/* -CS4: wait states disabled,  -CS5: 0 wait states */
	set	WSSR_VAL(0,0,WSSR_WAITEN|WSSR_OVERRIDE,0,0,0),%l0
	mov	WSSR2,%l1
	sta	%l0,[%l1] 1

	led	0x10

	/* clear cache/BIU control register */
	mov	CBIR,%l1
	sta	%g0,[%l1] 1

	/* Read clock switch to determine the value of the refresh timer */
	sethi	%hi(CLKSW_ADDR),%l1
	ldub	[%l1 + %lo(CLKSW_ADDR)],%l0
	btst	0x80,%l0
	bne,a	1f
	mov	10,%l0		/* force to 10MHz if CLKSW-8 is ON */
    1:
	umul	%l0,15,%l0
	mov	DRLD,%l1
	sta	%l0,[%l1] 1
	mov	REFTMR,%l1
	sta	%l0,[%l1] 1

	/* read SW1 to get DRAM page size */
	sethi	%hi(SW1_ADDR),%l1
	ldub	[%l1 + %lo(SW1_ADDR)],%l0
	btst	0x10,%l0
	be,a	1f
	 mov	0x0e,%l0	/* 1K page if branch taken (SW1-5 is OFF) */
	mov	0x06,%l0	/* 2K page (SW1-5 is OFF) */
    1:
	mov	SPGMR,%l1
	sta	%l0,[%l1] 1

	led	0x20

#ifdef CYG_HAL_STARTUP_ROM
	/* Turn on all system services */	
	mov	SSCR_TIMER|SSCR_WAIT|SSCR_CS|SSCR_SAMEPG,%l0
	mov	SSCR,%l1
	sta	%l0,[%l1] 1
	nop
	nop
	nop
	nop
	
#endif

	led	0x30
	
	/*
	 * Initialize caches.
	 */
	sethi	%hi(0x1000),%l0		/* bank 1 invalidate */
	sethi	%hi(0x80000000),%l1	/* bank 2 invalidate */
	mov	3,%l2			/* clear lock, lru, and valid bits */ 
	sta	%l2,[%l0] 0xc		/* do it - icache bank 1 */
	sta	%l2,[%l0] 0xe		/* do it - dcache bank 1 */
	sta	%l2,[%l0 + %l1] 0xc	/* do it - icache bank 2 */
	sta	%l2,[%l0 + %l1] 0xe	/* do it - dcache bank 2 */
	
	/* now, enable caches and buffers */
	mov	CBIR_ICEN|CBIR_DCEN|CBIR_PBEN|CBIR_WBEN,%l0
	mov	CBIR,%l1
	sta	%l0,[%l1] 1
	nop 
	nop 
	nop 
	nop
	
	/* enable data and insn bursts */
	mov	BCR_IBE|BCR_DBE,%l0
	mov	BCR,%l1
	sta	%l0,[%l1] 1
	nop 
	nop 
	nop 
	nop

	/*
	 * DRAM setup/test.
	 */
	led 0x40

	/*
	 * Test SW1-7 to determine normal or EDO mode.
	 *   SW1-7 ON  = EDO
	 *   SW1-7 OFF = Normal.
	 */
	sethi	%hi(SW1_ADDR),%l1
	ldub	[%l1 + %lo(SW1_ADDR)],%l7
	mov	DBANKR_SA04,%l0		/* DRAM starts at 0x04000000 */
	btst	0x40,%l7
	bne	1f			/* branch if SW1-7 is OFF */
	 mov	SSCR_DRAM,%l1
	/* EDO DRAM, enable burst in SSCR and EDO in DBANKR */
	or	%l1,SSCR_BURST,%l1
	or	%l0,DBANKR_EDO,%l0
    1:
	/*
	 * Now, test SW1 to get DRAM page and bank size.
	 *   SW1-5 ON  = 2k page, 16MB bank. (up to 64MB total)
	 *   SW1-5 OFF = 1k page, 4MB bank.  (up to 16MB total)
	 */
	btst	0x10,%l7
	bne,a	1f				/* branch if OFF */
	or	%l0,DBANKR_4M|DBANKR_CA10,%l0  /* 1K page */
	or	%l0,DBANKR_16M|DBANKR_CA11,%l0 /* 2K page */
    1:
	mov	CS3_BASE+DBANKR,%l2
	sta	%l0,[%l2] CS3_ASI
	
	mov	DTIMR_RPS2|DTIMR_CBR3|DTIMR_CAS2|DTIMR_RP2,%l0
	mov	CS3_BASE+DTIMR,%l2
	sta	%l0,[%l2] CS3_ASI
	
	mov	SSCR,%l2
	lda	[%l2] 1, %l0
	or	%l0,%l1,%l0
	sta	%l0,[%l2] 1

	/*
	 * Test SW1 to get potential DRAM limit.
	 *   SW1-5 ON  = 2k page, up to 64MB total
	 *   SW1-5 OFF = 1k page, up to 16MB total
	 */
	btst	0x10,%l7
	bne,a	1f				/* branch if OFF */
	 sethi	%hi(DRAM_BASE + 16*1024*1024),%l0
	sethi	%hi(DRAM_BASE + 64*1024*1024),%l0
    1:

	/* subtract 4 to get last valid DRAM address */
	add	%l0,-4,%l0
		
	/* Assume maximim memory and fill with pattern */	
	set	DRAM_BASE2,%l2
	set	0xaaaaaaaa,%l3
    1:
	st	%l3,[%l2]
	cmp	%l2,%l0
	blt	1b
	 add	%l2,4,%l2

	/*
	 * Go back, read data and compare with written data.
	 * Fill in with zero as we go along.
	 */
	set	DRAM_BASE2,%l2
    1:
	ld	[%l2],%l4
	cmp	%l4,%l3
	bne	2f
	 st	%g0,[%l2]
	cmp	%l2,%l0
	blt,a	1b
	 add	%l2,4,%l2
    2:
	led	0x50
	
	sub	%l2,64,%i6
	sethi	%hi(DRAM_BASE),%l1
	sub	%l2,%l1,%l0
	st	%l0,[%i6]

// NOTE that here, the frame pointer is set up to the top of RAM minus a
// little bit with the size of RAM at %fp (%i6)
#ifdef CYGIMP_HAL_SPARCLITE_COPY_VECTORS_TO_RAM

	led	0x58
	
	! copy the trampoline code into the base of RAM (__ram_vectors_start)
	! including the two ~rogue~ instructions...

	.extern __ram_vectors_start
	! Using the true address here for the copy makes a badly-aligned
	! __ram_vectors less likely to hide as an obscure failure:
	set     __ram_vectors_start, %l0 ! get the start of RAM
	set	rom_vectors, %l1	! get the start of the trampoline
	set	rom_vectors_end, %l2	! ...and its end.
33:
	ldd	[ %l1 ], %l4		! also uses %l5
	std	%l4, [ %l0 ]
	inc	8, %l1
	inc	8, %l0
	cmp	%l1, %l2
	bl	33b
	 nop

	led	0x59

	sethi	%hi(__ram_vectors_start), %g1	! get the start of RAM
	andn	%g1, 0xfff, %g1
	set	real_vector_instructions, %l0
	ld	[ %l0 ], %l1
	st	%l1, [ %g1 ]		! into the vector
	ld	[ %l0 + 4 ], %l1
	st	%l1, [ %g1 + 4 ]	! into the vector

	led	0x5a

	! then invalidate the instruction cache:
	set	3, %l0
	set	0x00001000, %l1
	set	0x80001000, %l2
	sta	%l0, [ %l1 ] 0x0c
	sta	%l0, [ %l2 ] 0x0c

	led	0x5b	
	
	! and the data cache
	sta	%l0, [ %l1 ] 0x0e
	sta	%l0, [ %l2 ] 0x0e
	nop
	nop
	nop
	nop				! should be enough

	led	0x5c
	
	! and (re)set the tbr, finally.
	sethi	%hi(__ram_vectors_start), %g1
	andn	%g1, 0xfff, %g1
	wr	%g1, %tbr		! Traps are at RAM start
	nop				! (__ram_vectors_start)
	nop
	nop
	
	led	0x5d

#else	

	led	0x5f

#endif // CYGIMP_HAL_SPARCLITE_COPY_VECTORS_TO_RAM (was CYG_HAL_STARTUP_ROM)

	! turn on caches - copied from the book	
#define	set_size	64
#define ini_tag		0
#define	adr1		0x00000000
#define	adr2		0x80000000
#define step		16
#define CTL_BITS	0x35

	set	set_size, %l7
	set	adr1, %o1
	set	adr2, %o2
	set	ini_tag, %l0
10:
	sta	%l0, [ %o1 ] 0x0c
	sta	%l0, [ %o1 ] 0x0e
	sta	%l0, [ %o2 ] 0x0c
	sta	%l0, [ %o2 ] 0x0e
	add	%o1, step, %o1
	subcc	%l7, 1, %l7
	bne	10b
	add	%o2, step, %o2

	set	0, %l1
	set	CTL_BITS, %l2
	sta	%l2, [ %l1 ] 0x01
	nop
	nop
	nop
	nop	! delay to let caches stabilize
	
	led	0x60

	// Now set up the 86940
	
#define TRGM0	0
#define TRGM1	4	    
#define REQSNS  8
#define REQCLR 12
#define IMASK  16
#define IRLAT  20
#define IMODE  24
	
	sethi	%hi( 0x10000000 ), %l1	! base address of the 86940 companion

	set	0xfffe0000, %l4		! mask all intrs
	add	%l1, IMASK, %l3
	sta	%l4, [ %l3 ] 4
	
	set	0x11400000, %l6		! Channels 14,12,11 into Active Low
	add	%l1, TRGM0, %l3
	sta	%l6, [ %l3 ] 4
	
	set	0x05100000, %l6		! Channels 5,4,2 into Active Low
	add	%l1, TRGM1, %l3
	sta	%l6, [ %l3 ] 4

	add	%l1, REQCLR, %l3	! clear all pending intrs
	sta	%l4, [ %l3 ] 4

	set	0x00100000, %l6		! clear the latch
	add	%l1, IRLAT, %l3
	sta	%l6, [ %l3 ] 4

	nop
	nop
	nop

	led	0x70
	
#endif  /* CYGONCE_HAL_HALBOOT_SI */
/* EOF halboot.si */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕av不卡| 狂野欧美性猛交blacked| 午夜不卡av在线| 成人av在线播放网址| 在线不卡一区二区| 国产精品国产三级国产普通话99| 日韩精品乱码av一区二区| 99热这里都是精品| 久久精品亚洲国产奇米99| 亚洲高清不卡在线| 色综合天天综合网天天狠天天 | 国产精品久久久久久久久晋中| 日韩精品免费专区| 欧洲国产伦久久久久久久| 国产精品成人在线观看| 国产永久精品大片wwwapp| 777久久久精品| 亚洲狠狠爱一区二区三区| 91麻豆精品一区二区三区| 国产人久久人人人人爽| 九九久久精品视频| 欧美一区二区三区在| 亚洲一区免费在线观看| 色老汉一区二区三区| 亚洲色图.com| 99re热这里只有精品免费视频| 国产欧美日韩亚州综合| 国产精品12区| 中文字幕av一区二区三区| 懂色av中文字幕一区二区三区| 精品国产在天天线2019| 麻豆国产精品一区二区三区| 日韩一区二区三区在线| 日本一道高清亚洲日美韩| 欧美日韩一本到| 偷窥少妇高潮呻吟av久久免费| 欧美性色黄大片| 午夜免费欧美电影| 欧美不卡一二三| 国产精品资源网站| 欧美国产综合色视频| 99久久精品免费看| 亚洲日本中文字幕区| 日本乱人伦一区| 视频一区国产视频| 欧美tickle裸体挠脚心vk| 国模娜娜一区二区三区| 国产日韩欧美不卡在线| www.日韩在线| 亚洲一区二区三区四区在线免费观看| 欧美嫩在线观看| 激情五月婷婷综合| 中文字幕视频一区二区三区久| 在线视频国产一区| 日本视频在线一区| 中文一区二区完整视频在线观看 | 中文字幕一区二区三区乱码在线 | 亚洲图片自拍偷拍| 精品乱码亚洲一区二区不卡| 成人自拍视频在线观看| 亚洲免费三区一区二区| 在线播放91灌醉迷j高跟美女| 国产一区激情在线| 亚洲综合视频网| 久久免费国产精品| 欧美三级蜜桃2在线观看| 激情亚洲综合在线| 亚洲影院理伦片| 久久夜色精品国产噜噜av | 亚洲欧美aⅴ...| 日韩欧美一级二级三级久久久| 波多野结衣亚洲一区| 日本午夜精品一区二区三区电影| 中文在线一区二区| 日韩一区二区三区三四区视频在线观看 | 国产一区二区在线观看免费| 中文字幕综合网| 日韩美女在线视频| 欧美三级蜜桃2在线观看| 国产一区二区三区久久久| 亚洲电影激情视频网站| 久久久午夜精品| 欧美卡1卡2卡| 色婷婷精品久久二区二区蜜臂av | 亚洲福利视频三区| 国产精品网站在线观看| 日韩精品中文字幕在线一区| 色爱区综合激月婷婷| 国产成人精品免费看| 美女在线视频一区| 亚洲国产一区在线观看| 亚洲视频每日更新| 中文字幕乱码久久午夜不卡| 精品噜噜噜噜久久久久久久久试看| 欧美三级电影精品| 一本大道久久a久久综合| 国产精品99久久久| 精品中文字幕一区二区| 日韩极品在线观看| 天天综合色天天综合色h| 亚洲男同性恋视频| 亚洲人亚洲人成电影网站色| 国产午夜精品福利| 久久蜜桃av一区精品变态类天堂 | 国产美女主播视频一区| 日日夜夜精品免费视频| 午夜视频在线观看一区| 亚洲高清三级视频| 亚洲网友自拍偷拍| 亚洲sss视频在线视频| 性做久久久久久久免费看| 一区二区三区在线视频免费观看| 亚洲免费av观看| 亚洲一区二区av在线| 亚洲一区欧美一区| 午夜欧美一区二区三区在线播放| 亚洲午夜三级在线| 天堂精品中文字幕在线| 五月激情综合网| 麻豆久久久久久久| 国产一区二区在线看| 丁香激情综合五月| av一区二区不卡| 在线观看一区二区视频| 欧美狂野另类xxxxoooo| 日韩欧美成人一区| 久久亚洲二区三区| 国产精品国产三级国产三级人妇| 国产精品理伦片| 一区二区三区在线视频免费| 午夜伊人狠狠久久| 美女视频黄频大全不卡视频在线播放 | 日韩欧美成人一区二区| 精品不卡在线视频| 国产精品久久影院| 亚洲综合偷拍欧美一区色| 奇米色一区二区三区四区| 激情五月婷婷综合网| 99国产精品国产精品毛片| 91激情五月电影| 欧美一区二区啪啪| 亚洲国产精品传媒在线观看| 亚洲精品成人精品456| 日本午夜精品视频在线观看| 国产suv一区二区三区88区| 91黄色免费观看| 精品剧情在线观看| 《视频一区视频二区| 日韩精品高清不卡| 成人app在线观看| 91精品国产综合久久精品图片| 久久久久久久久99精品| 亚洲品质自拍视频网站| 麻豆91免费观看| 91丨国产丨九色丨pron| 欧美刺激脚交jootjob| 亚洲欧美成aⅴ人在线观看| 精品中文字幕一区二区小辣椒| 91免费视频观看| 久久伊人蜜桃av一区二区| 一区二区免费视频| 国产在线麻豆精品观看| 欧美日韩在线播放一区| 国产精品午夜免费| 精品一区二区在线播放| 在线免费一区三区| 国产色爱av资源综合区| 日韩av电影一区| 色婷婷精品久久二区二区蜜臀av| 日韩精品一区二区三区视频| 亚洲综合另类小说| 豆国产96在线|亚洲| 日韩精品一区二区三区在线播放| 亚洲精品久久久久久国产精华液| 国产一区二区毛片| 91麻豆精品91久久久久同性| 一区二区三区在线影院| 国产mv日韩mv欧美| 欧美tk—视频vk| 免费在线看一区| 欧美福利视频导航| 亚洲一区二区三区小说| 色综合久久综合网欧美综合网| 中文在线资源观看网站视频免费不卡| 免费成人在线影院| 欧美一区二区免费观在线| 五月天精品一区二区三区| 欧美系列一区二区| 亚洲一区二区av在线| 色噜噜狠狠色综合欧洲selulu| 1区2区3区欧美| 91在线码无精品| 亚洲色图欧洲色图| 91性感美女视频| 一区二区在线看| 欧美丝袜丝交足nylons图片| 亚洲一区二区欧美日韩| 欧美亚男人的天堂| 午夜精品一区二区三区三上悠亚| 欧美午夜电影在线播放|