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

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

?? patch-2.6.19-omap1

?? omap2530 evm linux source code patch for linux-2.6.19
?? 19-OMAP1
?? 第 1 頁 / 共 5 頁
字號:
diff --git a/Documentation/arm/OMAP/README b/Documentation/arm/OMAP/READMEnew file mode 100644index 0000000..f8ffb68--- /dev/null+++ b/Documentation/arm/OMAP/README@@ -0,0 +1,415 @@++                  README for ARM based OMAP processor from TI+                  ===========================================++This is the README for Linux 2.6 on ARM based TI OMAP processors.++In the first section it gives some general hints how to start with OMAP Linux.+ +When successfully build a OMAP Linux kernel with help of first section and no +bootloader is already on the board, section 2 gives some tips how to use+commercial JTAG tools. ++In March 2004 the Linux Kernel 2.6 for ARM based TI OMAP processors was cleaned.+The goal was to send clean patches to RMK's official ARM tree and to make it +easier to add new OMAP processors or boards to the kernel tree. To keep the+kernel tree clean now, this document describes also some steps how +to add code for a new OMAP processor or OMAP based board to the OMAP Linux 2.6 +kernel tree. This is what the third section of this document is about.++Section 4 of this README reports some rules to be followed to write +clean code to make it ready for easy inclusion into public OMAP Linux kernel.++For more information also see TI's 'Linux Community for Texas Instruments OMAP+Processors' web page:++http://linux.omap.com++There, various downloads and resources can be found (e.g. documentation how+to build the kernel, how to use u-boot with OMAP Linux, pre-built tool chain+etc.).++The mailing list for OMAP Linux is hosted there, too:++http://linux.omap.com/mailman/listinfo+++1. General hints how to start with OMAP Linux+--------------------------------------------------------------++The minimal setup is a arm-linux-gcc cross compiler, make, and some editor.+You will also most likely need a JTAG to flash the bootloader for the first+time.++The first step is to get a bootloader for your board, u-boot is the+recommended one:++http://www.denx.de/en/Software/GIT++Then you need to compile it with the same cross compiler as you would use+for the Linux kernel. Then you need to flash it to the board either via the+serial port, or by using a JTAG.++Once you have the bootloader running, you can compile the kernel.++You can get the OMAP sources either from the OMAP GIT tree, or by+applying patches. The OMAP GIT tree has the most up to date sources+and is the recommended one.++- Using GIT and cloning OMAP GIT tree please follow the README at:++http://www.muru.com/linux/omap/README_OMAP_GIT++Hint: If you are sitting behind a firewall and have to use a proxy for +internet access, you can access GIT by http by setting the+http_proxy envirionment variable:++http_proxy=http://proxy_username:proxy_password@proxy_name:proxy_port/++If you use bash shell, then this might look like:++export http_proxy=http://foo:123@abc.host.com:8080/++with:++foo: Your user name for the proxy+123: Your password for the proxy+abc.host.com: The name of your proxy you use for internet access+8080: The port used on to access the proxy+++- Using Patches:++If you don't want to use GIT, then you can do the same thing with patch.++Download the latest OMAP Linux patch from:++http://www.muru.com/linux/omap/++Get a matching Linux kernel from:++ftp://ftp.kernel.org/pub/linux/kernel/v2.6/++For example, if you download Linux-2.6.4-omap1 from muru.com, then you need+linux-2.6.4 kernel from kernel.org:++$ wget ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.4.tar.bz2+$ tar xjf linux-2.6.4.tar.bz2+$ cd linux-2.6.4+$ cat ../Linux-2.6.4-omap1 | patch -p1++Note: If OMAP patch from muru.com is against a kernel release candidate, +marked by -rcX, then kernel can be found on kernel.org under v2.6/testing/++Now, if you have a local kernel tree, either by GIT or by patch, you+should look into arch/arm/configs/ to see which of the various omap_xxx+configurations there you want to use. For example, if you have a OMAP1510+based Innovator board, you select omap_innovator_1510_defconfig by ++$ make omap_innovator_1510_defconfig++at top level directory (linux-2.6.4 in the example above).++Then you can compile the kernel with++$ make vmlinux++Or make Image or make zImage or make uImage.++Once you have the kernel compiled, you can upload it to the board via serial+port or JTAG (see below).++Then you need a root file system either as initrd or on the flash.++Once you have the system booting to Linux, you can use pretty much any Linux+applications cross compiled for ARM.+++2. JTAG usage+--------------------------------------------------------------++If the flash of your board is really 'empty' and no bootloader is on the board+(e.g. u-boot) then you need a JTAG connection. With JTAG you can write+a bootloader to board's flash or download OMAP Linux kernel. For OMAP+commercial JTAG tools are available, so you have to pay for it.++Examples are TI's Code Composer Studio (CCS) or Lauterbach's TRACE32 JTAG.++- Linux kernel download with CCS++You can use CCS to directly load an ELF file to your board. For example, use  +arch/arm/boot/compressed/vmlinux. zImage isn't suited because it is not an ELF+file. CCS looks for .out files, so copy arch/arm/boot/compressed/vmlinux +to vmlinux.out and load it using CCS. Or use the filter *.* to select+vmlinux directly. Remember to run arm-linux-strip on ELF file first as CCS +get stroppy about unstripped ELF files.++If you want vmlinux to be linked to run at a specific address, you can use +the CONFIG_ZBOOT options in the kernel build. But first try without+CONFIG_ZBOOT as the compressed image should be able to run from address+zero (if your CCS .gel files map address zero.)++Otherwise, use something like this:++CONFIG_ZBOOT_ROM=y+CONFIG_ZBOOT_ROM_TEXT=10408000+CONFIG_ZBOOT_ROM_BSS=10800000++Also note that CCS is pretty useless for debugging Linux as it doesn't+properly handle virtual memory. In other words, once the MMU is+turned on and Linux is using virtual memory, CCS can no longer+properly disassemble, set breakpoints or read memory.+++- Linux kernel download with Lauterbach TRACE32++To be done.+++3. How to add new processor or board to OMAP Linux kernel tree+--------------------------------------------------------------++It is assumed that the OMAP processor to be added is based on an already +supported ARM core (e.g. ARM925 or ARM926). How to add support for new ARM +processor core that is not supported by ARM Linux is not scope of this document.++1. If a new OMAP processor should be added, identify the ARM core of this +processor. E.g. at time of writing this document in March 2004 OMAP730 (ARM926 +core), OMAP1510 (ARM925 core) and OMAP1610 (ARM926 core) are supported.++For a new board or device, identify the OMAP processor on the board. E.g. at +time of writing this document in March 2004 four boards are supported: +Innovator1510 (OMAP1510 processor), Innovator1610 (OMAP1610 processor), +Perseus2 (OMAP730 processor) and H2 (OMAP1610 processor).++Please refer http://www.muru.com/linux/omap/ to get latest information on the+list of boards supported.++/* Discussion needed: How to handle the tons of compatible processors? +E.g. what to do if OMAP16xx is mainly identical with OMAP16yy? */++2. Start with arch/arm/mach-omap[1/2]/Kconfig and add a new processor or board+option.++To add a new processor add a new config option to the "OMAP Core Type" choice. +See examples for the syntax. The config option has to be called "ARCH_OMAPxxxx" +where xxxx is the number of OMAP processor. Don't forget to select a existing+clock frequency or to add a new one in "OMAP Feature Selections" section for+your new processor. ++To add a new board or device, add a new config option to the "OMAP Board Type" +choice. See examples for the syntax. The config option for boards has to be +called "MACH_OMAP_yyyy" where yyyy is the board name. Don't forget to add a +short help.++Note: Kernel 2.6 Kconfig system will automatically expand the configuration +names with a leading "CONFIG_". So "ARCH_OMAPxxxx" will be expanded to +"CONFIG_ARCH_OMAPxxxx" and "MACH_OMAP_yyy" will expand to +"CONFIG_MACH_OMAP_yyyy". In code this can then be used by macros like +"#ifdef CONFIG_ARCH_OMAPxxxx" and "#ifdef CONFIG_MACH_OMAP_yyyy".++Note: How to handle boards which are compatible or extensions of other boards? +See MACH_OMAP_H2 for example. The H2 depends on MACH_OMAP_INNOVATOR and expands +it. This is done by an additional select MACH_OMAP_INNOVATOR in MACH_OMAP_H2+configuration option. With this the whole MACH_OMAP_INNOVATOR configuration is+selected and an additional symbol CONFIG_MACH_OMAP_H2 is available to+distinguish between INNOVATOR and H2 where necessary. ++3a. Only for new processors: Add the ARCH_OMAPxxxx to the correct ARM core in +arch/arm/mm/Kconfig. E.g. ARCH_OMAP730 in CPU_ARM926T configuration.++3b. Only for new boards: Register the board within ARM Linux machine +registration system from RMK. For the CONFIG_ section use the same name like +in arch/arm/mach-omap[1/2]/Kconfig. E.g. MACH_OMAP_yyyy. For MACH_TYPE_ section use+OMAP_yyyy where yyyy is the board name like above.++Note: The elements of RMKs machine registration are used in +arch/arm/tools/mach-types. While kernel compilation+include/asm-arm/mach-types.h is generated automagically from this file. The+content of mach-types.h then is used for machine identification by kernel+bootcode and can be used for board identification.++Note: The ARM Linux machine registration system from RMK can be found under:++www.arm.linux.org.uk/developer/machines/++Note: Only OMAP based boards should be registered to RMKs registration+system. Not processors.++4. Add a processor or board specific header file in include/asm-arm/arch-omap/. +Use board-yyyy.h with yyyy board name or omapxxxx.h with xxxx processor number.++5. Add a processor or board specific section into include/asm-arm/arch-omap/+hardware.h. Use examples for syntax and use CONFIG_ names as defined in +arch/arm/mach-omap[1/2]/Kconfig.++6. Add processor or board specific macros to board-yyyy.h or omapxxxx.h. The+macros to these specific files have to be named OMAPxxxx_ with xxxx processor+number to make them unique.++7a. Only for new boards: Add a file board-yyyy.c with yyyy board name to +arch/arm/mach-omap[1/2]/. Put board specific initialization code and resource+description into this file. The first element of MACHINE_START must be equal to +MACH_TYPE_ section of machine registration (see arch/arm/tools/mach-types after +machine registration at RMKs registration system).++Put only code into this file that is board specific and not common. See other +board files for examples.++7b. Only for new processors: Add processor specific IO description and+iotable_init() to arch/arm/mach-omap[1/2]/io.c. See examples for the syntax.++If you have introduced new clock definition in 2., add support for this new+clock in include/asm-arm/arch-omap/clocks.h and arch/arm/mach-omap[1/2]/clocks.c.++8. Only for new boards: Add "obj-$(CONFIG_MACH_OMAP_yyyy) += board-yyyy.o" with +yyyy board name to arch/arm/mach-omap[1/2]/Makefile. This is used to compile your new+board specific initialization code from 7a.++9. Check if other of the existing files have to be adjusted for the new +processor or board. Things to check:++- Pin multiplexing+- GPIO configuration+- Power Management+- Clocking+- Interrupt controller and interrupt configuration+- Additional board specific things (e.g. FPGAs)++If other existing files or device drivers have to be changed, use the following +mechanism for processor specific things:++#ifdef CONFIG_ARCH_OMAPxxxx+ 	if (cpu_is_omapxxxx()) {+ 		/* Do the OMAPxxxx processor specific magic */+ 	}+#endif++Note: cpu_is_omapxxxx() macro is defined in include/asm-arm/arch-omap/hardware.h+and uses OMAP_ID_REG for runtime processor identifcation.++For board differentiation use board macro from include/asm-arm/mach-types.h:++#ifdef CONFIG_MACH_OMAP_yyyy+ 	if (machine_is_omap_yyyy()) {+ 		/* Do the board specific magic */+ 	}+#endif++Note: If technically possible and already implemented the OMAP Linux kernel+has support for a "one binary fits all" machanism. That is, the goal is to be+able to enable support for multiple OMAP processors and/or boards in Kconfig+system. Then it is decided by bootparameters and at runtime on which processor +and/or board the kernel is actually running on. With this machanism it is +possible to use the same kernel binary on different OMAP processors or boards +without recompiling. This is achived by the cpu_is_omapxxxx() and+machine_is_omap_yyyy() macros.++On the other hand, for memory limited embedded systems it should be possible+to compile the kernel with support for only one processor/board combination.+For this a kernel binary is necessary which isn't bloated with code for all+other (unused) processors and boards. This is achived by using the preprocessor+CONFIG_ARCH_OMAPxxxx and CONFIG_MACH_OMAP_yyyy macros around the runtime+cpu_is_omapxxxx() and machine_is_omap_yyyy() selection.++At the moment, the price for this flexibility is a increased number of #ifdef's+throughout the code.++10. Configure the kernel by make menuconfig or make xconfig and select the new +processor or board.++11. Compile the kernel by an appropriate cross compilation toolchain. Make this+until the code compiles error and warning free. The kernel should also be +compiled with the various debug checking thingies enabled (e.g.+CONFIG_DEBUG_SPINLOCK,  CONFIG_DEBUG_PAGEALLOC etc.).++/* ToDo: Anything to say about toolchain? */++12. Download the kernel image to the board and test it until it works ;-)++It's not in the scope of this document how to do this (use a appropriate +bootloader or JTAG download).++Note: The kernel initialization code expects some special values in the+registers R0, R1 and R2 of the ARM processor. These registers have to be+written by bootloader or debugger before starting the kernel. R0 has to be+zero, R1 has to contain the machine number from machine registration in+arch/arm/tools/mach-types. R2 points to the physical address of tagged list+in system RAM. For more information see Documentation/arm/Booting.++While testing a new processor or board configuration, it is recommended to +enable low level debugging. This uses low level output functions to print kernel+messages on serial line before console is working. Enable it by ++Kernel hacking -> Kernel debugging -> Kernel low-level debugging functions++in kernel configuration system.++13. Check that no other processors or boards are broken by the new code. A first+test is to successful compile the other omap_xxx configurations from +arch/arm/configs/. Do this by e.g.++cd linux+make omap_innovator_1510_defconfig+Compile the kernel++Even better: Enable support for several processors and boards in Kconfig+system and compile kernel successfully.++14. Only for new boards: Add a new default board configuration to +arch/arm/configs. Use omap_yyyy_xxxx_defconfig with yyyy boardname and xxxx +processornumber as filename.++15. If the new code works, compiles without warnings and seems to break no other+configurations, post a patch to linux-omap-open-source@list.ti.com.++With sending a patch to the community, it is reviewed, can be used and tested by+other users. It then can be included into the public OMAP kernel tree. ++16. Then adapt device drivers or write additional drivers for non-existing +processor peripherals or board devices. Improve and maintain the code for your +new processor or board.+++4. General guidelines to write clean and OMAP Linux compatible code+-------------------------------------------------------------------++- For register access use the __REG8/16/32() macros. At the moment, see first+example in include/asm-arm/arch-omap/hardware.h.++Allegedly __REG() makes at least some versions of GCC emit tighter code+than the more direct wrappers. Presumably by making it easier to use certain +addressing modes. ++Make sure that the registers names are clearly marked as being registers+(and not addresses of registers). This has to be done by adding a '_REG'+suffix. E.g.++#define OMAP_ID_REG  (__REG32(0xfffed400))+#define DPLL_CTL_REG (__REG16(0xfffecf00))++__raw_read[bwl] and __raw_write[bwl] are deprecated. They will converted to+__REG8/16/32() syntax, soon. Don't use anything else like own pointer+definitions or in[bwl]/out[bwl] etc., too.++- Make read-modify-write register access preemption save. Use spin_lock() and +spin_unlock() where necessary. If an IRQ handler can access the registers, +use spin_lock_irqsave(), too. ++- Functions declared as __init shouldn't have any references after the kernel +initialization phase is complete. Usually they should be static as well.++- Don't use return statements at end of void functions.++- Use consistent indentation style. Don't use space indentations. Use tab +indentations.++- In general use Linux formatting style. See Documentation/CodingStyle for more+information. If you use GNU emacs, see also chapter 8 of that document how to+add a linux-c-mode to emacs.+++------------------------------------------------------------------+Last modified 15. March 2006+The OMAP Linux Kernel Team+Dirk Behme <dirk.behme@de.bosch.com>diff --git a/Documentation/arm/OMAP/gpio b/Documentation/arm/OMAP/gpionew file mode 100644index 0000000..fd6363c--- /dev/null+++ b/Documentation/arm/OMAP/gpio@@ -0,0 +1,270 @@++                         OMAP GPIO API's HowTo+                         =====================++This document is a short summary how to use OMAP Linux GPIO API. It is+mainly focussed on OMAP5912 OSK, but should fit with extensions (more+or less GPIOs) to other OMAP processors as well.++If anything is missing, is wrong, needs extension or update, please send+update to Linux-omap-open-source@linux.omap.com.++I. GPIO Modules/Banks+---------------------++OMAP5912 OSK has 64 GPIOs (general purpose IO pins). These are organized+in four modules (banks) with 16 pins each. OMAP GPIO API doesn't distinguish+between modules and numbers the pins from 0 - 63:++A) GPIO MODULE/BANK 0 - PIN  0-15+B) GPIO MODULE/BANK 1 - PIN 16-31+C) GPIO MODULE/BANK 2 - PIN 32-47+D) GPIO MODULE/BANK 3 - PIN 48-63++See++http://www-s.ti.com/sc/psheets/spru767a/spru767a.pdf++for more details.++II. GPIO API's+--------------++A) Include++#include <asm/arch/gpio.h>++B) omap_cfg_reg(xxxx);++Description: Configure pin mux.++Parameter: Pin to be configured for GPIO.++Note: This function may only be necessary for some GPIO pins. Because OMAP+      chip itself has less real hardware pins than necessary to use all+      its functionality at the same time, some pins share different+      functions (called pin multiplexing, short pin mux). E.g. one pin may+      be used for serial interface *or* GPIO. Check if this is the case for+      the GPIO you want to use and if you have to configure the pin mux.++C) omap_request_gpio(int gpio)++Description: Request GPIO to be used.++Parameter: int gpio - GPIO PIN (Pin 0-63)++Note: Using this function, you dont have to worry about banks/modules where+      the gpio pin is.++D) omap_set_gpio_direction(int gpio, int is_input)++Description: This function is responsible for setting the gpio pin direction+             (input or output).++Parameter: int gpio - GPIO PIN (Pin 0-63)+           int is_input - pin direction (0 = output, 1 = input)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美亚洲一区二区三区四区| 中文在线一区二区| 国产精品欧美精品| 秋霞电影一区二区| 日本韩国精品在线| 国产精品丝袜91| 国产自产v一区二区三区c| 91精彩视频在线| 亚洲视频在线一区观看| 国产精品资源网| 欧美一级二级三级蜜桃| 一区二区视频在线| 91视频在线观看免费| 国产精品网友自拍| 国产精品一区一区三区| 久久亚洲捆绑美女| 极品尤物av久久免费看| 日韩视频在线一区二区| 婷婷中文字幕综合| 欧美疯狂做受xxxx富婆| 婷婷中文字幕一区三区| 欧美三级在线播放| 午夜精品久久久久久久久| 欧美综合一区二区| 亚洲成人1区2区| 欧美男女性生活在线直播观看| 亚洲精品视频免费看| 色欧美片视频在线观看在线视频| 国产精品二三区| 91丝袜高跟美女视频| 亚洲精品免费在线观看| 成人aa视频在线观看| 国产精品二区一区二区aⅴ污介绍| 不卡影院免费观看| 亚洲人成精品久久久久久 | 欧美最新大片在线看| 亚洲欧美另类小说| 欧美三级视频在线观看| 日韩av电影免费观看高清完整版在线观看| 欧美日韩午夜影院| 日韩专区一卡二卡| 日韩欧美在线观看一区二区三区| 美国欧美日韩国产在线播放| 欧美一级片在线| 国产乱码精品一品二品| 中文字幕一区二区三区在线观看 | 国产精品天美传媒| 91在线观看一区二区| 亚洲午夜久久久久久久久电影网 | 国产精品欧美精品| 91精品福利视频| 奇米影视7777精品一区二区| 精品奇米国产一区二区三区| 成人妖精视频yjsp地址| 一区二区三区四区视频精品免费 | 亚洲丶国产丶欧美一区二区三区| 欧美一级艳片视频免费观看| 国产精品99久久久久| 一区二区三区中文在线| 精品免费视频一区二区| 不卡的av在线| 麻豆精品新av中文字幕| 亚洲人午夜精品天堂一二香蕉| 制服丝袜激情欧洲亚洲| 国产成人av自拍| 性感美女极品91精品| 久久精品视频免费| 欧美日韩美女一区二区| 国产剧情一区在线| 天天色综合天天| 中文字幕在线不卡一区二区三区| 欧美绝品在线观看成人午夜影视| 国产精品一区二区久久不卡| 亚洲综合色视频| 欧美精品一区二区久久久| 91福利资源站| 成人av午夜影院| 韩国理伦片一区二区三区在线播放 | 欧美三级电影网| 国产99久久久久| 日本女优在线视频一区二区| 亚洲欧美在线视频| 久久久久久一级片| 欧美一区二区三区小说| 色一情一伦一子一伦一区| 国产不卡视频在线播放| 青青草国产成人99久久| 亚洲一区二区综合| 中文字幕五月欧美| 久久免费电影网| 日韩久久久久久| 91精品国产全国免费观看| 色乱码一区二区三区88| www.欧美精品一二区| 国产成人精品一区二区三区四区| 免费在线观看不卡| 天天色综合天天| 亚洲gay无套男同| 一区二区高清在线| 中文字幕字幕中文在线中不卡视频| 久久久噜噜噜久噜久久综合| 日韩欧美一级精品久久| 制服丝袜中文字幕亚洲| 欧美日韩电影在线播放| 欧美午夜精品久久久久久超碰| 91猫先生在线| 欧美专区在线观看一区| 在线观看国产91| 欧美日韩一级片网站| 欧美三区在线观看| 777色狠狠一区二区三区| 欧美日韩亚洲综合| 欧美蜜桃一区二区三区| 4438x成人网最大色成网站| 在线不卡免费欧美| 欧美一区二区三区思思人| 欧美一级二级三级蜜桃| 精品久久国产老人久久综合| 久久免费午夜影院| 国产精品美女久久久久aⅴ国产馆| 欧美国产欧美综合| 亚洲欧美日韩在线| 午夜久久久久久电影| 另类小说视频一区二区| 国模无码大尺度一区二区三区| 精品无码三级在线观看视频| 国产精品亚洲а∨天堂免在线| 国产91精品一区二区麻豆亚洲| 成人午夜精品在线| 一本久久a久久精品亚洲| 欧美午夜宅男影院| 日韩欧美国产麻豆| 国产精品丝袜一区| 一区二区三区视频在线看| 免费观看在线色综合| 高清beeg欧美| 欧美视频在线一区| 精品久久免费看| 日本一区二区三区视频视频| 国产精品麻豆视频| 亚洲成人先锋电影| 国产精品亚洲一区二区三区在线| proumb性欧美在线观看| 777xxx欧美| 国产精品网站在线播放| 亚洲午夜激情网站| 国产成人精品影视| 欧美日本乱大交xxxxx| 久久久高清一区二区三区| 亚洲另类春色国产| 狠狠色丁香九九婷婷综合五月| 91蝌蚪porny成人天涯| 欧美一级免费大片| 亚洲图片你懂的| 久久成人免费网| 色综合久久久久综合体| 久久综合久久综合亚洲| 一区二区三区免费| 国产米奇在线777精品观看| 欧美亚洲国产怡红院影院| 国产欧美一区二区三区网站| 午夜精品视频一区| a美女胸又www黄视频久久| 日韩天堂在线观看| 亚洲电影第三页| 91丨九色丨尤物| 国产亚洲一区字幕| 久久精品免费看| 欧美日韩精品免费| 亚洲激情男女视频| 国产成人av电影在线观看| 91麻豆精品久久久久蜜臀| 亚洲色图欧洲色图| 岛国av在线一区| 久久久久久亚洲综合| 麻豆91精品91久久久的内涵| 在线视频一区二区免费| 国产精品久久久久四虎| 紧缚奴在线一区二区三区| 日韩一级高清毛片| 亚洲国产美国国产综合一区二区| 成人a免费在线看| 久久精品视频网| 国产精品一二三四区| 久久久噜噜噜久久人人看 | 石原莉奈一区二区三区在线观看| 91色乱码一区二区三区| 国产精品进线69影院| 国产a久久麻豆| 国产精品久久免费看| 丰满放荡岳乱妇91ww| 国产无一区二区| 国产精品88av| 国产精品色哟哟网站| 不卡av在线免费观看| 综合激情成人伊人| 91黄色免费看| 亚洲大片一区二区三区| 欧美二区在线观看| 日韩vs国产vs欧美|