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

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

?? main.c

?? 三星3442處理器Demo板:Eboot源碼包
?? C
?? 第 1 頁 / 共 4 頁
字號:
    // want to jump to this image next time.  If no launch address was provided, retrieve the last one.
    //
	if (dwLaunchAddr && (g_pTOC->id[g_dwTocEntry].dwJumpAddress != dwLaunchAddr))
	{
		g_pTOC->id[g_dwTocEntry].dwJumpAddress = dwLaunchAddr;
	}
	else
	{
		dwLaunchAddr= g_pTOC->id[g_dwTocEntry].dwJumpAddress;
		OALMSG(OAL_INFO, (TEXT("INFO: using TOC[%d] dwJumpAddress: 0x%x\r\n"), g_dwTocEntry, dwLaunchAddr));
	}

    // Jump to downloaded image (use the physical address since we'll be turning the MMU off)...
    //
    dwPhysLaunchAddr = (DWORD)OALVAtoPA((void *)dwLaunchAddr);
    OALMSG(TRUE, (TEXT("INFO: OEMLaunch: Jumping to Physical Address 0x%Xh (Virtual Address 0x%Xh)...\r\n\r\n\r\n"), dwPhysLaunchAddr, dwLaunchAddr));

    // Jump...
    //
    Launch(dwPhysLaunchAddr);


CleanUp:

    OALMSG(TRUE, (TEXT("ERROR: OEMLaunch: Halting...\r\n")));
    SpinForever();
}


//------------------------------------------------------------------------------
//
//  Function Name:  OEMVerifyMemory( DWORD dwStartAddr, DWORD dwLength )
//  Description..:  This function verifies the passed address range lies
//                  within a valid region of memory. Additionally this function
//                  sets the g_ImageType if the image is a boot loader. 
//  Inputs.......:  DWORD           Memory start address
//                  DWORD           Memory length
//  Outputs......:  BOOL - true if verified, false otherwise
//
//------------------------------------------------------------------------------

BOOL OEMVerifyMemory( DWORD dwStartAddr, DWORD dwLength )
{

    OALMSG(OAL_FUNC, (TEXT("+OEMVerifyMemory.\r\n")));

    // Is the image being downloaded the stepldr?
    if ((dwStartAddr >= STEPLDR_RAM_IMAGE_BASE) &&
        ((dwStartAddr + dwLength - 1) < (STEPLDR_RAM_IMAGE_BASE + STEPLDR_RAM_IMAGE_SIZE)))
    {
        OALMSG(OAL_INFO, (TEXT("Stepldr image\r\n")));
        g_ImageType = IMAGE_TYPE_STEPLDR;     // Stepldr image.
        return TRUE;
    }
    // Is the image being downloaded the bootloader?
    else if ((dwStartAddr >= EBOOT_STORE_ADDRESS) &&
        ((dwStartAddr + dwLength - 1) < (EBOOT_STORE_ADDRESS + EBOOT_STORE_MAX_LENGTH)))
    {
        OALMSG(OAL_INFO, (TEXT("Eboot image\r\n")));
        g_ImageType = IMAGE_TYPE_LOADER;     // Eboot image.
        return TRUE;
    }

    // Is it a ram image?
    else if ((dwStartAddr >= ROM_RAMIMAGE_START) &&
        ((dwStartAddr + dwLength - 1) < (ROM_RAMIMAGE_START + ROM_RAMIMAGE_SIZE)))
    {
        OALMSG(OAL_INFO, (TEXT("RAM image\r\n")));
        g_ImageType = IMAGE_TYPE_RAMIMAGE;
        return TRUE;
    }
	else if (!dwStartAddr && !dwLength)
	{
        OALMSG(TRUE, (TEXT("Don't support raw image\r\n")));
		g_ImageType = IMAGE_TYPE_RAWBIN;
    	return FALSE;
	}

    // HACKHACK: get around MXIP images with funky addresses
    OALMSG(TRUE, (TEXT("BIN image type unknow\r\n")));

    OALMSG(OAL_FUNC, (TEXT("_OEMVerifyMemory.\r\n")));

    return FALSE;
}

/*
    @func   void | OEMMultiBINNotify | Called by blcommon to nofity the OEM code of the number, size, and location of one or more BIN regions,
                                       this routine collects the information and uses it when temporarily caching a flash image in RAM prior to final storage.
    @rdesc  N/A.
    @comm
    @xref
*/
void OEMMultiBINNotify(const PMultiBINInfo pInfo)
{
    BYTE nCount;
	DWORD g_dwMinImageStart;

    OALMSG(OAL_FUNC, (TEXT("+OEMMultiBINNotify.\r\n")));

    if (!pInfo || !pInfo->dwNumRegions)
    {
        OALMSG(OAL_WARN, (TEXT("WARNING: OEMMultiBINNotify: Invalid BIN region descriptor(s).\r\n")));
        return;
    }

	if (!pInfo->Region[0].dwRegionStart && !pInfo->Region[0].dwRegionLength)
	{
    	return;
	}

    g_dwMinImageStart = pInfo->Region[0].dwRegionStart;

    OALMSG(TRUE, (TEXT("\r\nDownload BIN file information:\r\n")));
    OALMSG(TRUE, (TEXT("-----------------------------------------------------\r\n")));
    for (nCount = 0 ; nCount < pInfo->dwNumRegions ; nCount++)
    {
        OALMSG(TRUE, (TEXT("[%d]: Base Address=0x%x  Length=0x%x\r\n"),
            nCount, pInfo->Region[nCount].dwRegionStart, pInfo->Region[nCount].dwRegionLength));
        if (pInfo->Region[nCount].dwRegionStart < g_dwMinImageStart)
        {
            g_dwMinImageStart = pInfo->Region[nCount].dwRegionStart;
            if (g_dwMinImageStart == 0)
            {
                OALMSG(OAL_WARN, (TEXT("WARNING: OEMMultiBINNotify: Bad start address for region (%d).\r\n"), nCount));
                return;
            }
        }
    }

    memcpy((LPBYTE)&g_BINRegionInfo, (LPBYTE)pInfo, sizeof(MultiBINInfo));

    OALMSG(TRUE, (TEXT("-----------------------------------------------------\r\n")));
    OALMSG(OAL_FUNC, (TEXT("_OEMMultiBINNotify.\r\n")));
}

/////////////////////// START - Stubbed functions - START //////////////////////////////
/*
    @func   void | SC_WriteDebugLED | Write to debug LED.
    @rdesc  N/A.
    @comm    
    @xref   
*/

void SC_WriteDebugLED(USHORT wIndex, ULONG dwPattern)
{
    // Stub - needed by NE2000 EDBG driver...
    //
}


ULONG HalSetBusDataByOffset(IN BUS_DATA_TYPE BusDataType,
                            IN ULONG BusNumber,
                            IN ULONG SlotNumber,
                            IN PVOID Buffer,
                            IN ULONG Offset,
                            IN ULONG Length)
{
    return(0);
}


ULONG
HalGetBusDataByOffset(IN BUS_DATA_TYPE BusDataType,
                      IN ULONG BusNumber,
                      IN ULONG SlotNumber,
                      IN PVOID Buffer,
                      IN ULONG Offset,
                      IN ULONG Length)
{
    return(0);
}


BOOLEAN HalTranslateBusAddress(IN INTERFACE_TYPE  InterfaceType,
                               IN ULONG BusNumber,
                               IN PHYSICAL_ADDRESS BusAddress,
                               IN OUT PULONG AddressSpace,
                               OUT PPHYSICAL_ADDRESS TranslatedAddress)
{

    // All accesses on this platform are memory accesses...
    //
    if (AddressSpace)
        *AddressSpace = 0;
 
    // 1:1 mapping...
    //
    if (TranslatedAddress)
    {
        *TranslatedAddress = BusAddress;
        return(TRUE);
    }

    return(FALSE);
}


PVOID MmMapIoSpace(IN PHYSICAL_ADDRESS PhysicalAddress,
                   IN ULONG NumberOfBytes,
                   IN BOOLEAN CacheEnable)
{
    DWORD dwAddr = PhysicalAddress.LowPart;

    if (CacheEnable)
        dwAddr &= ~CACHED_TO_UNCACHED_OFFSET; 
    else
        dwAddr |= CACHED_TO_UNCACHED_OFFSET; 

    return((PVOID)dwAddr);
}


VOID MmUnmapIoSpace(IN PVOID BaseAddress,
                    IN ULONG NumberOfBytes)
{
}

VOID WINAPI SetLastError(DWORD dwErrCode)
{
}
/////////////////////// END - Stubbed functions - END //////////////////////////////


/*
    @func   PVOID | GetKernelExtPointer | Locates the kernel region's extension area pointer.
    @rdesc  Pointer to the kernel's extension area.
    @comm    
    @xref   
*/
PVOID GetKernelExtPointer(DWORD dwRegionStart, DWORD dwRegionLength)
{
    DWORD dwCacheAddress = 0;
    ROMHDR *pROMHeader;
    DWORD dwNumModules = 0;
    TOCentry *pTOC;

    if (dwRegionStart == 0 || dwRegionLength == 0)
        return(NULL);

    if (*(LPDWORD) OEMMapMemAddr (dwRegionStart, dwRegionStart + ROM_SIGNATURE_OFFSET) != ROM_SIGNATURE)
        return NULL;

    // A pointer to the ROMHDR structure lives just past the ROM_SIGNATURE (which is a longword value).  Note that
    // this pointer is remapped since it might be a flash address (image destined for flash), but is actually cached
    // in RAM.
    //
    dwCacheAddress = *(LPDWORD) OEMMapMemAddr (dwRegionStart, dwRegionStart + ROM_SIGNATURE_OFFSET + sizeof(ULONG));
    pROMHeader     = (ROMHDR *) OEMMapMemAddr (dwRegionStart, dwCacheAddress);

    // Make sure sure are some modules in the table of contents.
    //
    if ((dwNumModules = pROMHeader->nummods) == 0)
        return NULL;

    // Locate the table of contents and search for the kernel executable and the TOC immediately follows the ROMHDR.
    //
    pTOC = (TOCentry *)(pROMHeader + 1);

    while(dwNumModules--) {
        LPBYTE pFileName = OEMMapMemAddr(dwRegionStart, (DWORD)pTOC->lpszFileName);
        if (!strcmp((const char *)pFileName, "nk.exe")) {
            return ((PVOID)(pROMHeader->pExtensions));
        }
        ++pTOC;
    }
    return NULL;
}


/*
    @func   BOOL | OEMDebugInit | Initializes the serial port for debug output message.
    @rdesc  TRUE == Success and FALSE == Failure.
    @comm    
    @xref   
*/
BOOL OEMDebugInit(void)
{

    // Set up function callbacks used by blcommon.
    //
    g_pOEMVerifyMemory   = OEMVerifyMemory;      // Verify RAM.
    g_pOEMMultiBINNotify = OEMMultiBINNotify;

    // Call serial initialization routine (shared with the OAL).
    //
    OEMInitDebugSerial();

    return(TRUE);
}

//***************************[ PORTS ]****************************************************
void Port_Init(void)
{
    volatile S3C2440A_IOPORT_REG *s2440IOP = (S3C2440A_IOPORT_REG *)OALPAtoVA(S3C2440A_BASE_REG_PA_IOPORT, FALSE);

    //CAUTION:Follow the configuration order for setting the ports. 
    // 1) setting value(GPnDAT) 
    // 2) setting control register  (GPnCON)
    // 3) configure pull-up resistor(GPnUP)  

    //32bit data bus configuration  
    //*** PORT A GROUP
    //Ports  : GPA22 GPA21  GPA20 GPA19 GPA18 GPA17 GPA16 GPA15 GPA14 GPA13 GPA12  
    //Signal : nFCE nRSTOUT nFRE   nFWE  ALE   CLE  nGCS5 nGCS4 nGCS3 nGCS2 nGCS1 
    //Binary :  1     1      1  , 1   1   1    1   ,  1     1     1     1
    //Ports  : GPA11   GPA10  GPA9   GPA8   GPA7   GPA6   GPA5   GPA4   GPA3   GPA2   GPA1  GPA0
    //Signal : ADDR26 ADDR25 ADDR24 ADDR23 ADDR22 ADDR21 ADDR20 ADDR19 ADDR18 ADDR17 ADDR16 ADDR0 
    //Binary :  1       1      1      1   , 1       1      1      1   ,  1       1     1      1         
    s2440IOP->GPACON = 0x7fffff; 

    //**** PORT B GROUP
    //Ports  : GPB10    GPB9    GPB8    GPB7    GPB6     GPB5    GPB4   GPB3   GPB2     GPB1      GPB0
    //Signal : nXDREQ0 nXDACK0 nXDREQ1 nXDACK1 nSS_KBD nDIS_OFF L3CLOCK L3DATA L3MODE nIrDATXDEN Keyboard
    //Setting: INPUT  OUTPUT   INPUT  OUTPUT   INPUT   OUTPUT   OUTPUT OUTPUT OUTPUT   OUTPUT    OUTPUT 
    //Binary :   00  ,  01       00  ,   01      00   ,  01       01  ,   01     01   ,  01        01 
    s2440IOP->GPBDAT |= 1<<3;
    s2440IOP->GPBCON = 0x044555;
    s2440IOP->GPBDN= 0x7ff;     // The pull up function is disabled GPB[10:0]

    //*** PORT C GROUP
    //Ports  : GPC15 GPC14 GPC13 GPC12 GPC11 GPC10 GPC9 GPC8  GPC7   GPC6   GPC5 GPC4 GPC3  GPC2  GPC1 GPC0
    //Signal : VD7   VD6   VD5   VD4   VD3   VD2   VD1  VD0 LCDVF2 LCDVF1 LCDVF0 VM VFRAME VLINE VCLK LEND  
    //Binary :  10   10  , 10    10  , 10    10  , 10   10  , 10     10  ,  10   10 , 10     10 , 10   10
    s2440IOP->GPCCON = 0xaaaaaaaa;       
    s2440IOP->GPCDN= 0xffff;     // The pull up function is disabled GPC[15:0] 
    s2440IOP->GPCCON	|= (1<<16);  //LED IO init
    s2440IOP->GPCCON	&= ~(1<<17); 

    //*** PORT D GROUP
    //Ports  : GPD15 GPD14 GPD13 GPD12 GPD11 GPD10 GPD9 GPD8 GPD7 GPD6 GPD5 GPD4 GPD3 GPD2 GPD1 GPD0
    //Signal : VD23  VD22  VD21  VD20  VD19  VD18  VD17 VD16 VD15 VD14 VD13 VD12 VD11 VD10 VD9  VD8
    //Binary : 10    10  , 10    10  , 10    10  , 10   10 , 10   10 , 10   10 , 10   10 ,10   10
    s2440IOP->GPDCON = 0xaaaaaaaa;       
    s2440IOP->GPDDN  = 0xffff;     // The pull up function is disabled GPD[15:0]

    //*** PORT E GROUP
    //Ports  : GPE15  GPE14 GPE13   GPE12   GPE11   GPE10   GPE9    GPE8     GPE7  GPE6  GPE5   GPE4  
    //Signal : IICSDA IICSCL SPICLK SPIMOSI SPIMISO SDDATA3 SDDATA2 SDDATA1 SDDATA0 SDCMD SDCLK IN 
    //Binary :  10     10  ,  10      10  ,  10      10   ,  10      10   ,   10    10  , 10     00  ,     
    //-------------------------------------------------------------------------------------------------------
    //Ports  :  GPE3   GPE2  GPE1    GPE0    
    //Signal :  IN     IN    IN      IN  
    //Binary :  00     00  ,  00      00 
    //rGPECON = 0xaaaaaaaa;       
    //rGPEUP  = 0xffff;     // The pull up function is disabled GPE[15:0]
    s2440IOP->GPECON = 0xaaaaa800; // For added AC97 setting      
    s2440IOP->GPEDN  = 0xffff;     

     //*** PORT F GROUP
    //Ports  : GPF7   GPF6   GPF5   GPF4      GPF3     GPF2  GPF1   GPF0
    //Signal : nLED_8 nLED_4 nLED_2 nLED_1 nIRQ_PCMCIA EINT2 KBDINT EINT0
    //Setting: Output Output Output Output    EINT3    EINT2 EINT1  EINT0
    //Binary :  01      01 ,  01     01  ,     10       10  , 10     10
    s2440IOP->GPFCON = 0x55a9; // 0x55aa
    s2440IOP->GPFDN  = 0xff;     // The pull up function is disabled GPF[7:0]

    //*** PORT G GROUP
    //Ports  : GPG15 GPG14 GPG13 GPG12 GPG11    GPG10    GPG9     GPG8     GPG7      GPG6    
    //Signal : nYPON  YMON nXPON XMON  EINT19 DMAMODE1 DMAMODE0 DMASTART KBDSPICLK KBDSPIMOSI
    //Setting: nYPON  YMON nXPON XMON  EINT19  Output   Output   Output   SPICLK1    SPIMOSI1
    //Binary :   11    11 , 11    11  , 10      01    ,   01       01   ,    11         11
    //-----------------------------------------------------------------------------------------
    //Ports  :    GPG5       GPG4    GPG3    GPG2    GPG1    GPG0    
    //Signal : KBDSPIMISO LCD_PWREN EINT11 nSS_SPI IRQ_LAN IRQ_PCMCIA
    //Setting:  SPIMISO1  LCD_PWRDN EINT11   nSS0   EINT9    EINT8
    //Binary :     11         11   ,  10      11  ,  10        10
    s2440IOP->GPGCON = 0xff95ffba;
    s2440IOP->GPGDN= 0xffff;    // The pull up function is disabled GPG[15:0]

    //*** PORT H GROUP
    //Ports  :  GPH10    GPH9  GPH8 GPH7  GPH6  GPH5 GPH4 GPH3 GPH2 GPH1  GPH0 
    //Signal : CLKOUT1 CLKOUT0 UCLK nCTS1 nRTS1 RXD1 TXD1 RXD0 TXD0 nRTS0 nCTS0
    //Binary :   10   ,  10     10 , 11    11  , 10   10 , 10   10 , 10    10
    s2440IOP->GPHCON = 0x2afaaa;
    s2440IOP->GPHDN= 0x7ff;    // The pull up function is disabled GPH[10:0]

    s2440IOP->GPHCON &=~(3<<14);
    s2440IOP->GPHCON |= (1<<14);
    s2440IOP->GPHDN |= (1<<7);
    s2440IOP->GPHDAT |= (1<<7);

    s2440IOP->GPHCON =0x002A7AAA;
    s2440IOP->GPHDN = 0x000007FF;
    s2440IOP->GPHDAT =0xFFFFFFFF ;

	// Added for S3C2442X, DonGo
	//*** PORT J GROUP
    //Ports  : GPJ12   GPJ11       GPJ10    GPJ9    GPJ8      GPJ7      GPJ6      GPJ5      GPJ4      GPJ3      GPJ2      GPJ1     GPJ0 
    //Signal : CAMRESET CAMPCLKOUT CAMHREF CAMVSYNC CAMPCLKIN CAMDAT[7] CAMDAT[6] CAMDAT[5] CAMDAT[4] CAMDAT[3] CAMDAT[2] CAMDAT[1] CAMDAT[0] 
    //Binary :   10      10       10        10       10        10        10        10       10         10        10        10      10
    s2440IOP->GPJCON = 0x02aaaaaa;
    s2440IOP->GPJDN= 0x1fff;    // The pull up function is disabled GPH[10:0]
    
    //External interrupt will be falling edge triggered. 
    s2440IOP->EXTINT0 = 0x22222222;    // EINT[7:0]
    s2440IOP->EXTINT1 = 0x22222222;    // EINT[15:8]
    s2440IOP->EXTINT2 = 0x22222222;    // EINT[23:16]
}

void Led_Display(int data)
{
    // Active is low.(LED On)
    // GPF7  GPF6   GPF5   GPF4
    // nLED_8 nLED4 nLED_2 nLED_1
    //
   // rGPFDAT = (rGPFDAT & ~(0xf<<4)) | ((~data & 0xf)<<4); 
	   volatile S3C2440A_IOPORT_REG *s2440IOP = (S3C2440A_IOPORT_REG *)OALPAtoVA(S3C2440A_BASE_REG_PA_IOPORT, FALSE);

       if (data)  
   	{
	      	s2440IOP->GPCDAT |=  (1<<8); 
	 }
       else
      {
	    	s2440IOP->GPCDAT &=  ~(1<<8); 
       }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
自拍偷在线精品自拍偷无码专区 | 国产精品一区二区不卡| 欧美区一区二区三区| 天堂久久一区二区三区| 777午夜精品免费视频| 看片的网站亚洲| 国产婷婷色一区二区三区在线| 国产大陆精品国产| 亚洲男人电影天堂| 91精品黄色片免费大全| 国产综合久久久久久久久久久久| 国产欧美一区二区精品婷婷| 色偷偷久久一区二区三区| 日本亚洲电影天堂| 国产视频亚洲色图| 色综合天天综合在线视频| 奇米精品一区二区三区在线观看| 国产精选一区二区三区| 91精品国产欧美日韩| 7777精品伊人久久久大香线蕉完整版 | 一色屋精品亚洲香蕉网站| 亚洲一区二区三区自拍| 欧美久久免费观看| 国产精品一级在线| 精品久久久久久久久久久院品网 | 国产麻豆视频精品| 99久久免费国产| 国产一区二区主播在线| 麻豆成人久久精品二区三区红 | 欧美日韩一区二区在线视频| 欧美日韩国产一区| 日韩免费观看2025年上映的电影 | 亚洲欧美电影院| 91精品国产麻豆| 中文字幕一区二区三区在线播放| 日本欧美久久久久免费播放网| 国产亚洲午夜高清国产拍精品| 91麻豆视频网站| 国产综合色视频| 亚洲va欧美va国产va天堂影院| 久久综合九色欧美综合狠狠| 在线亚洲欧美专区二区| 国产福利一区二区三区视频在线| 亚洲一卡二卡三卡四卡五卡| 日本一区二区三级电影在线观看| 欧美麻豆精品久久久久久| 国产电影一区在线| 秋霞国产午夜精品免费视频| 亚洲视频综合在线| 久久久久高清精品| 精品日韩欧美一区二区| 欧美高清视频不卡网| 97精品视频在线观看自产线路二| 美女一区二区视频| 韩国午夜理伦三级不卡影院| 午夜精品福利一区二区蜜股av | 国产一区二区三区免费观看| 婷婷久久综合九色综合绿巨人| 国产精品国产三级国产| 久久久www成人免费毛片麻豆| 欧美日本视频在线| 色婷婷亚洲综合| 91浏览器在线视频| 成人国产精品视频| 一本大道av伊人久久综合| 国产一区二区网址| 久久99蜜桃精品| 日韩av一区二区三区| 亚洲在线成人精品| 亚洲精品国产精华液| 1024国产精品| 777奇米四色成人影色区| 国产高清不卡二三区| 国产精品日日摸夜夜摸av| 色爱区综合激月婷婷| 久久机这里只有精品| 一区二区三区日本| 日韩精品一区二区三区四区| 丰满岳乱妇一区二区三区| 一区二区国产视频| 国产精品美女久久久久久久| 欧美精品久久一区| 色8久久人人97超碰香蕉987| 蜜桃精品视频在线观看| 一区二区三区精品在线观看| 久久美女高清视频| 精品国产一区二区三区久久影院 | 国产高清无密码一区二区三区| 成人动漫中文字幕| 国产精品夫妻自拍| 精品国产1区2区3区| 欧美视频一区二| 精品国产91乱码一区二区三区| 日韩制服丝袜av| 制服丝袜日韩国产| 国产一区二区三区黄视频 | 国产欧美一区二区精品性色| 久久久久久久久久久久久夜| 欧美一区二区三区不卡| 欧美色区777第一页| 欧美午夜一区二区| 欧美军同video69gay| av中文字幕不卡| 东方欧美亚洲色图在线| 色婷婷国产精品综合在线观看| 奇米影视7777精品一区二区| 亚洲视频综合在线| 天天色综合成人网| 国内精品第一页| 97精品超碰一区二区三区| 欧美日韩一本到| 久久天天做天天爱综合色| 亚洲少妇最新在线视频| 图片区小说区国产精品视频| 国产一区二区剧情av在线| 91麻豆国产精品久久| 日韩一区二区中文字幕| 亚洲视频资源在线| 黄一区二区三区| 在线影视一区二区三区| 欧美tickle裸体挠脚心vk| 亚洲欧美另类图片小说| 蜜桃精品视频在线| 91美女视频网站| 精品国产乱码久久久久久夜甘婷婷| 国产精品久久精品日日| 美女国产一区二区三区| 日本久久一区二区| 久久久91精品国产一区二区三区| 亚洲一区在线电影| 国产精品国产馆在线真实露脸| 又紧又大又爽精品一区二区| 一区二区三区四区激情| 亚洲成人黄色小说| 不卡的av在线| 国产精品资源在线| 7878成人国产在线观看| 成人免费看视频| 亚洲日本在线观看| 国产成人啪免费观看软件| 欧美一级日韩免费不卡| 亚洲高清免费观看| 在线亚洲+欧美+日本专区| 国产精品入口麻豆九色| 99re热这里只有精品视频| 欧美日韩一区二区在线视频| 亚洲欧美视频一区| 99精品久久99久久久久| 精品国产乱码久久久久久牛牛| 99re视频这里只有精品| 日本一二三不卡| 成人av网站免费| xvideos.蜜桃一区二区| 美腿丝袜一区二区三区| 欧美精品日韩一区| 性欧美大战久久久久久久久| 日本乱人伦aⅴ精品| 专区另类欧美日韩| av一区二区三区在线| 国产欧美日韩在线观看| 国产精品中文有码| 精品国产一区二区三区不卡 | 亚洲线精品一区二区三区| 91亚洲国产成人精品一区二三| 中文字幕av一区 二区| 国产不卡免费视频| 国产日韩av一区| 懂色av噜噜一区二区三区av| 国产日韩精品一区二区浪潮av | 日韩亚洲欧美在线| 日韩**一区毛片| 欧美tickling挠脚心丨vk| 国产一区二区三区免费观看| 久久久久久久网| 不卡一区二区三区四区| 一区视频在线播放| 欧美写真视频网站| 偷拍一区二区三区| 日韩一区二区免费视频| 国产一区二区三区不卡在线观看 | 五月婷婷色综合| 日韩一区二区三区观看| 精品无人区卡一卡二卡三乱码免费卡| 日韩精品专区在线| 国产成人综合亚洲91猫咪| 亚洲丝袜制服诱惑| 欧美吞精做爰啪啪高潮| 天堂蜜桃91精品| 国产激情一区二区三区四区| 日本欧美肥老太交大片| 日韩av中文字幕一区二区| 欧美亚洲愉拍一区二区| 青青草原综合久久大伊人精品优势| 日韩精品中文字幕一区 | 国产日产欧美精品一区二区三区| 精品一区二区在线视频| 亚洲激情自拍偷拍| 国产一区二区三区电影在线观看| 色噜噜久久综合| 色老汉av一区二区三区|