精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Linux內核增加HDF驅動子系統

系統 Linux
HDF驅動子系統是OpenHarmony重要的特色功能之一,其主要的功能是實現驅動程序在多內核多平臺的物聯網環境,實現一次驅動開發,多端部署。

[[440302]]

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com

前言

HDF驅動子系統是OpenHarmony重要的特色功能之一,其主要的功能是實現驅動程序在多內核多平臺的物聯網環境,實現一次驅動開發,多端部署。之前移植OHOS3.0使用了傳統的linux驅動,比較遺憾,今天嘗試將HDF驅動子系統加入編譯框架。開始前先了解幾個名詞。

HCS(HDF Configuration Source)是 HDF 驅動框架的配置描述源碼,JSON存儲。

HC-GEN(HDF Configuration Generator)是 HCS 配置轉換工具,可以將 HDF 配置文件HCS轉換為二進制HCB。

HCB(HDF Configuration Binary)二進制文件,驅動可使用 HDF 框架提供的配置解析接口獲取配置。

內核打補丁

如何在內核加入HDF驅動,linux內核下主要實現是下面兩個目錄:

drivers\adapter\khdf\linux 和 drivers\framework

這兩個目錄是通過鏈接的方式加入到內核編譯的,流程如下:

kernel\linux\build\kernel.mk:75

  1. $(hide) cd $(KERNEL_SRC_TMP_PATH) && patch -p1 < $(HDF_PATCH_FILE) && patch -p1 < $(DEVICE_PATCH_FILE) 

 可以參考3516的HDF補?。簁ernel\linux\patches\linux-5.10\hi3516dv300_patch\hdf.patch

  1. patching file drivers/Kconfig 
  2. patching file drivers/Makefile 
  3. patching file drivers/hdf/Makefile 
  4. patching symbolic link drivers/hdf/framework 
  5. patching symbolic link drivers/hdf/khdf 
  6. patching symbolic link include/hdf 
  7.  
  8. # 添加到linux內核的補丁 
  9. drivers/hdf/framework -> /drivers/framework/        # 驅動子系統驅動框架、配置管理、配置解析、驅動通用框架模型、硬件通用平臺能力接口等 
  10. drivers/hdf/khdf -> /drivers/adapter/khdf/linux/    # 在linux內核中部署OpenHarmony驅動框架 
  11. drivers/hdf/Makefile                                # 由hdf.patch提供 
  12. include/hdf -> /drivers/framework/include/          # 驅動框架對外提供能力的頭文件 

內核配置

只是打上補丁還不行,還得在內核的編譯配置文件中加入HDF選項。最開始的做法就是參考3516的配置選擇,但是發現有些配置會導致編譯失敗。測試發現下面的配置是可以編譯成功的。

  1. [*] Enable HDF manager                      
  2. (2)   Set HDF support platform              
  3. [*]   Enable HDF platform driver            
  4. [*]     Enable HDF platform mipi dsi driver 
  5. [*]     Enable HDF platform gpio driver     
  6. [*]     Enable HDF platform i2c driver      
  7. [*]     Enable HDF platform watchdog driver 
  8. [*] hi35xx pwm driver                       
  9. [*] Enable HDF platform pwm driver          
  10. [*] Enable HDF platform uart driver         
  11. [ ] Enable HDF platform sdio driver         
  12. [ ] Enable HDF platform emmc driver         
  13. [*] Enable HDF platform mmc driver          
  14. [*] Enable HDF platform spi driver          
  15. [*] Enable HDF platform rtc driver          
  16. [*] Enable HDF linux test                   
  17. [*] Enable HDF Display driver               
  18. [ ]   Enable HDF Lcdkit driver              
  19. [*]   Enable HDF Icn9700 driver             
  20. [ ]   Enable HDF St7789 driver              
  21. [*] Enable HDF input driver                 
  22. [*]   Enable HDF tp 5P5 GT911 driver        
  23. [*]   Enable HDF tp 2P35 FT6236 driver      
  24. [ ] Enable HDF wifi                         
  25. [ ] Enable HDF Bluetooth                    
  26. [*] Enable HDF sensor driver                
  27. [ ]   Enable HDF accel sensor driver        
  28. [ ]   Enable HDF gyro sensor driver         
  29. [ ]   Enable HDF barometer sensor driver    
  30. [ ]   Enable HDF hall sensor driver         
  31. [*] Enable HDF storage driver               
  32. [ ] Enable HDF USB PNP Notify driver        
  33. [ ] Enable F_GENERIC driver                 
  34. [ ] Enable HDF Audio driver                 
  35. [*] Enable HDF vibrator driver              
  36. [*]   Enable HDF linear vibrator driver     
  37. [ ] Enable HDF dsoftbus driver 
  38.  
  39. CONFIG_DRIVERS_HDF=y 
  40. CONFIG_HDF_SUPPORT_LEVEL=2 
  41. CONFIG_DRIVERS_HDF_PLATFORM=y 
  42. CONFIG_DRIVERS_HDF_PLATFORM_MIPI_DSI=y 
  43. CONFIG_DRIVERS_HDF_PLATFORM_GPIO=y 
  44. CONFIG_DRIVERS_HDF_PLATFORM_I2C=y 
  45. CONFIG_DRIVERS_HDF_PLATFORM_WATCHDOG=y 
  46. CONFIG_PWM_HI35XX=y 
  47. CONFIG_DRIVERS_HDF_PLATFORM_PWM=y 
  48. CONFIG_DRIVERS_HDF_PLATFORM_UART=y 
  49. # CONFIG_DRIVERS_HDF_PLATFORM_SDIO is not set 
  50. # CONFIG_DRIVERS_HDF_PLATFORM_EMMC is not set 
  51. CONFIG_DRIVERS_HDF_PLATFORM_MMC=y 
  52. CONFIG_DRIVERS_HDF_PLATFORM_SPI=y 
  53. CONFIG_DRIVERS_HDF_PLATFORM_RTC=y 
  54. CONFIG_DRIVERS_HDF_TEST=y 
  55. CONFIG_DRIVERS_HDF_DISP=y 
  56. # CONFIG_DRIVERS_HDF_LCDKIT is not set 
  57. CONFIG_DRIVERS_HDF_LCD_ICN9700=y 
  58. # CONFIG_DRIVERS_HDF_LCD_ST7789 is not set 
  59. CONFIG_DRIVERS_HDF_INPUT=y 
  60. CONFIG_DRIVERS_HDF_TP_5P5_GT911=y 
  61. CONFIG_DRIVERS_HDF_TP_2P35_FT6236=y 
  62. # CONFIG_DRIVERS_HDF_WIFI is not set 
  63. # CONFIG_DRIVERS_HDF_BT is not set 
  64. CONFIG_DRIVERS_HDF_SENSOR=y 
  65. # CONFIG_DRIVERS_HDF_SENSOR_ACCEL is not set 
  66. # CONFIG_DRIVERS_HDF_SENSOR_GYRO is not set 
  67. # CONFIG_DRIVERS_HDF_SENSOR_BAROMETER is not set 
  68. # CONFIG_DRIVERS_HDF_SENSOR_HALL is not set 
  69. CONFIG_DRIVERS_HDF_STORAGE=y 
  70. # CONFIG_DRIVERS_HDF_USB_PNP_NOTIFY is not set 
  71. # CONFIG_DRIVERS_HDF_USB_F_GENERIC is not set 
  72. # CONFIG_DRIVERS_HDF_AUDIO is not set 
  73. CONFIG_DRIVERS_HDF_VIBRATOR=y 
  74. CONFIG_DRIVERS_HDF_VIBRATOR_LINEAR=y 
  75. # CONFIG_DRIVERS_HDF_DSOFTBUS is not set 
  76. end of Device Drivers 

[*] Enable HDF linux test 是需要設置的,如果沒有設置CONFIG_DRIVERS_HDF_TEST,目錄結構就出問題了,會報這樣的錯誤。

  1. drivers/hdf/khdf/Makefile:22: PRODUCT_PATH=vendor/raspberrypi/RPI4B 
  2. scripts/Makefile.build:44: drivers/hdf/khdf/../../../../vendor/raspberrypi/RPI4B/hdf_config/Makefile: No such file or directory 
  3. make[5]: *** No rule to make target 'drivers/hdf/khdf/../../../../vendor/raspberrypi/RPI4B/hdf_config/Makefile'.  Stop. 
  4. CC [M]  drivers/net/wireless/mac80211_hwsim.o 
  5. make[4]: *** [scripts/Makefile.build:497: drivers/hdf/khdf/../../../../vendor/raspberrypi/RPI4B/hdf_config] Error 2 
  6. make[3]: *** [scripts/Makefile.build:497: drivers/hdf/khdf] Error 2 
  7. make[2]: *** [scripts/Makefile.build:497: drivers/hdf] Error 2 
  8. make[2]: *** Waiting for unfinished jobs.... 

 下面3個選項要關閉,不然會報下面的錯誤。

[ ] Enable HDF platform sdio driver

[ ] Enable HDF platform emmc driver

[ ] Enable HDF wifi

  1. drivers/../../../../../../drivers/adapter/khdf/linux/platform/sdio/sdio_adapter.o: In function `Hi35xxLinuxSdioRescan': 
  2. sdio_adapter.c:(.text+0x20): undefined reference to `hisi_sdio_rescan' 
  3. sdio_adapter.c:(.text+0x34): undefined reference to `himci_get_mmc_host' 
  4. drivers/../../../../../../drivers/adapter/khdf/linux/platform/sdio/sdio_adapter.o: In function `Hi35xxLinuxSdioFindFunc': 
  5. sdio_adapter.c:(.text+0xc84): undefined reference to `himci_get_mmc_host' 
  6. sdio_adapter.c:(.text+0xc9c): undefined reference to `himci_get_mmc_host' 
  7. sdio_adapter.c:(.text+0xcb4): undefined reference to `himci_get_mmc_host' 
  8. drivers/../../../../../../drivers/adapter/khdf/linux/platform/emmc/emmc_adapter.o: In function `Hi35xxLinuxEmmcBind': 
  9. emmc_adapter.c:(.text+0x214): undefined reference to `himci_get_mmc_host' 
  10. drivers/../../../../../../device/hisilicon/drivers/wifi/driver/hi3881/oal/oal_sdio_host.o: In function `sdio_card_detect_change': 
  11. oal_sdio_host.c:(.text+0x2ce8): undefined reference to `hisi_sdio_rescan' 
  12. make[1]: *** [Makefile:1179: vmlinux] Error 1 
  13. make[1]: Leaving directory '/home/liangzili/ohos/out/KERNEL_OBJ/kernel/src_tmp/linux-5.10' 
  14. make: *** [kernel.mk:80: /home/liangzili/ohos/out/KERNEL_OBJ/kernel/src_tmp/linux-5.10/arch/arm/boot/zImage] Error 2 
  15. ninja: build stopped: subcommand failed. 

編譯過程

為了方便測試可以單獨進行內核編譯,比如我的編譯命令是這樣的。

  1. ./build.sh --product-name RPI4B --ccache --build-target raspberrypi_products 

 可以分析下HDF這部分的編譯過程。

linux-5.10\drivers\hdf\Makefile,hdf.patch會添加這個Makefile,將khdf文件夾加入編譯。

  1. obj-$(CONFIG_DRIVERS_HDF) += khdf/ 

 linux-5.10\drivers\hdf\khdf\Makefile

  1. export HDF_ROOT := drivers/hdf 
  2. obj-$(CONFIG_DRIVERS_HDF)  += osal/ 
  3. obj-$(CONFIG_DRIVERS_HDF)  += network/ 
  4. obj-$(CONFIG_DRIVERS_HDF)  += config/ 
  5.  
  6. SUPPORT_LEVEL_STD_H := $(shell [ "$(CONFIG_HDF_SUPPORT_LEVEL)" -ge 2 ] && echo true
  7.  
  8. $(warning PRODUCT_PATH=$(PRODUCT_PATH))     # 會檢查PRODUCT_PATH變量 
  9. ifeq ($(PRODUCT_PATH),) 
  10. $(error PRODUCT_PATH not
  11. endif 
  12.  
  13. # 這里有條注釋指明了*.hcs配置文件的存放路徑 
  14. for L2+, hcs config should in vendor/product_company/product_name/config/khdf 
  15. ifeq ($(SUPPORT_LEVEL_STD_H), true
  16. SUB_DIR:=khdf/ 
  17. endif 
  18.  
  19. # HDF test的配置會使hcs目錄結構不一樣,我當時沒有設置CONFIG_DRIVERS_HDF_TEST就掉這個坑里了。 
  20. ifeq ($(CONFIG_DRIVERS_HDF), y) 
  21. ifeq ($(CONFIG_DRIVERS_HDF_TEST), y) 
  22. obj-$(CONFIG_DRIVERS_HDF) += ../../../../$(PRODUCT_PATH)/hdf_config/$(SUB_DIR)/hdf_test/ 
  23. obj-$(CONFIG_DRIVERS_HDF) += test/ 
  24. else 
  25. obj-$(CONFIG_DRIVERS_HDF) += ../../../../$(PRODUCT_PATH)/hdf_config/$(SUB_DIR) 
  26. endif 
  27. endif 
  28. # ... 后面按照配置添加一些編譯目錄 ... 

drivers\adapter\khdf\linux\Makefile:會調用 obj-(CONFIG_DRIVERS_HDF) += ../../../../(CONFIGD​RIVERSH​DF)+=../../../../(PRODUCT_PATH)/hdf_config/$(SUB_DIR)/hdf_test/ 這是OHOS3.0默認的HCS文件存放路徑。官方的注釋也說明了,所以將設備對應的*.hcs存放到 vendor\raspberrypi\RPI4B\hdf_config\khdf 文件夾,參考 3516 的 vendor\hisilicon\Hi3516DV300\hdf_config\khdf\hdf.hcs 就可了。

  1. #include "device_info/device_info.hcs" 
  2. #include "platform/i2c_config.hcs" 
  3. #include "platform/hi35xx_watchdog_config.hcs" 
  4. #include "platform/hi35xx_pwm_config.hcs" 
  5. #include "platform/hi35xx_uart_config.hcs" 
  6. #include "platform/sdio_config.hcs" 
  7. #include "platform/emmc_config.hcs" 
  8. #include "platform/hi35xx_spi_config.hcs" 
  9. #include "input/input_config.hcs" 
  10. #include "wifi/wlan_platform.hcs" 
  11. #include "wifi/wlan_chip_hi3881.hcs" 
  12. #include "sensor/sensor_config.hcs" 
  13. #include "audio/audio_config.hcs" 
  14. #include "audio/codec_config.hcs" 
  15. #include "audio/dai_config.hcs" 
  16. #include "audio/dma_config.hcs" 
  17. #include "audio/dsp_config.hcs" 
  18. #include "vibrator/vibrator_config.hcs" 
  19. #include "vibrator/linear_vibrator_config.hcs" 
  20. #include "lcd/lcd_config.hcs" 
  21.  
  22. root { 
  23.     module = "hisilicon,hi35xx_chip"

參考 3516 的 vendor\hisilicon\Hi3516DV300\hdf_config\khdf\Makefile

其中:PRODUCT_PATH環境變量的來源:kernel/linux/build/kernel_module_build.sh:42:export PRODUCT_PATH=$4

  1. ifeq ($(LOCAL_HCS_ROOT),) 
  2.   LOCAL_HCS_ROOT := $(PRODUCT_PATH) 
  3. endif 
  4.  
  5. SOURCE_ROOT:=$(abspath ../../../../../) 
  6.  
  7. HC_GEN_DIR := $(abspath $(SOURCE_ROOT)/drivers/framework/tools/hc-gen) 
  8. HC_GEN := $(HC_GEN_DIR)/build/hc-gen 
  9. LOCAL_HCS_ROOT := $(abspath $(dir $(realpath $(lastword $(MAKEFILE_LIST))))) 
  10.  
  11. HCS_DIR := $(LOCAL_HCS_ROOT) 
  12.  
  13. ifneq ($(TARGET_BOARD_PLATFORM),) 
  14.   HCS_DIR := $(LOCAL_HCS_ROOT)/$(TARGET_BOARD_PLATFORM) 
  15. else 
  16.   ifneq ($(CONFIG_ARCH_HI3516DV300),) 
  17.     HCS_DIR := $(LOCAL_HCS_ROOT) 
  18.   endif 
  19.   ifneq ($(CONFIG_ARCH_HI3518EV300),) 
  20.     HCS_DIR := $(LOCAL_HCS_ROOT) 
  21.   endif 
  22. endif 
  23. $(info HCS_DIR = $(HCS_DIR)) 
  24. HCB_FLAGS := -b -i -a 
  25.  
  26. HCS_OBJ := hdf_hcs_hex.o 
  27. HCS_OBJ_SRC := $(subst .o,.c,$(notdir $(HCS_OBJ))) 
  28.  
  29. CONFIG_GEN_HEX_SRC := $(addprefix $(LOCAL_HCS_ROOT)/, $(HCS_OBJ_SRC)) 
  30. CONFIG_HCS_SRC := $(subst _hcs_hex.o,.hcs,$(addprefix $(HCS_DIR)/, $(HCS_OBJ))) 
  31.  
  32. $(obj)/$(HCS_OBJ): $(CONFIG_GEN_HEX_SRC) 
  33.     $(Q)$(CC) $(c_flags) -c -o $@ $< 
  34.     $(Q)rm -f $< 
  35.  
  36. $(CONFIG_GEN_HEX_SRC):  $(LOCAL_HCS_ROOT)/%_hcs_hex.c: $(HCS_DIR)/%.hcs | $(HC_GEN) 
  37.     $(Q)echo gen hdf built-in config 
  38.     $(Q)if [ ! -d $(dir $@) ]; then mkdir -p $(dir $@); fi 
  39.     $(Q)$(HC_GEN) $(HCB_FLAGS) -o $(subst _hex.c,,$(@)) $< 
  40.  
  41. $(CONFIG_GEN_SRCS): $(CONFIG_OUT_DIR)%.c: $(HCS_DIR)/%.hcs | $(HC_GEN) 
  42.     $(Q)echo gen hdf driver config 
  43.     $(Q)if [ ! -d $(dir $@) ]; then mkdir -p $(dir $@); fi 
  44.     $(Q)$(HC_GEN) -t -o $@ $< 
  45.  
  46. $(HC_GEN): 
  47.     $(HIDE)make -C $(HC_GEN_DIR) 
  48.  
  49. obj-$(CONFIG_DRIVERS_HDF) += $(HCS_OBJ) 

查看結果

編譯完成后,可以上傳內核鏡像到開發板,來查看HDF驅動框架是否啟動成功。

加入HDF前:

  1. # ls dev/ 
  2. __parameters__  hwrng         tty1   tty28  tty46  tty7 
  3. __trigger__     input         tty10  tty29  tty47  tty8 
  4. autofs          kmsg          tty11  tty3   tty48  tty9 
  5. binder          linux,cma     tty12  tty30  tty49  ttyAMA0 
  6. block           loop-control  tty13  tty31  tty5   ttyS0 
  7. bus             mem           tty14  tty32  tty50  ttyprintk 
  8. cachefiles      memcg         tty15  tty33  tty51  unix 
  9. char            null          tty16  tty34  tty52  urandom 
  10. console         port          tty17  tty35  tty53  vchiq 
  11. cpuctl          ptmx          tty18  tty36  tty54  vcs 
  12. cpuset          pts           tty19  tty37  tty55  vcs1 
  13. dri             random        tty2   tty38  tty56  vcsa 
  14. fd              rawctl        tty20  tty39  tty57  vcsa1 
  15. freezer         snd           tty21  tty4   tty58  vcsu 
  16. fscklogs        stderr        tty22  tty40  tty59  vcsu1 
  17. full            stdin         tty23  tty41  tty6   vga_arbiter 
  18. gpiochip0       stdout        tty24  tty42  tty60  vndbinder 
  19. gpiochip1       system        tty25  tty43  tty61  watchdog 
  20. graphics        tty           tty26  tty44  tty62  watchdog0 
  21. hwbinder        tty0          tty27  tty45  tty63  zero 

 加入HDF后:

  1. # ls dev/ 
  2. HDF_PLATFORM_I2C_MANAGER  loop-control    tty24  tty54 
  3. HDF_PLATFORM_UART_1       mem             tty25  tty55 
  4. HDF_TEST                  memcg           tty26  tty56 
  5. I2C_TEST                  null            tty27  tty57 
  6. __parameters__            port            tty28  tty58 
  7. __trigger__               ptmx            tty29  tty59 
  8. autofs                    pts             tty3   tty6 
  9. binder                    random          tty30  tty60 
  10. block                     rawctl          tty31  tty61 
  11. bus                       sample_service  tty32  tty62 
  12. cachefiles                snd             tty33  tty63 
  13. char                      stderr          tty34  tty7 
  14. console                   stdin           tty35  tty8 
  15. cpuctl                    stdout          tty36  tty9 
  16. cpuset                    system          tty37  ttyAMA0 
  17. dev_mgr                   tty             tty38  ttyS0 
  18. dri                       tty0            tty39  ttyprintk 
  19. fd                        tty1            tty4   unix 
  20. freezer                   tty10           tty40  urandom 
  21. fscklogs                  tty11           tty41  vchiq 
  22. full                      tty12           tty42  vcs 
  23. gpiochip0                 tty13           tty43  vcs1 
  24. gpiochip1                 tty14           tty44  vcsa 
  25. graphics                  tty15           tty45  vcsa1 
  26. hdf_bl                    tty16           tty46  vcsu 
  27. hdf_input_host            tty17           tty47  vcsu1 
  28. hdf_misc_vibrator         tty18           tty48  vga_arbiter 
  29. hdf_sensor_manager_ap     tty19           tty49  vndbinder 
  30. hwbinder                  tty2            tty5   watchdog 
  31. hwrng                     tty20           tty50  watchdog0 
  32. input                     tty21           tty51  zero 
  33. kmsg                      tty22           tty52 
  34. linux,cma                 tty23           tty53 

 基本算是啟動成功了,接下來考慮打算用HDF的方式添加一下設備。來驗證HDF驅動框架是否運轉正常。

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com

 

責任編輯:jianghua 來源: 鴻蒙社區
相關推薦

2015-10-19 17:36:19

MOST內核Linux

2016-07-22 10:50:56

Linux內核無線子系統

2021-08-31 11:53:38

Linux inputLinux 系統

2021-08-10 11:30:30

Linux代碼中斷控制器

2021-08-03 15:10:26

Linux代碼驅動

2021-07-07 08:00:00

Linux開發虛擬機

2021-04-06 11:18:47

LinuxWWAN子系統驅動

2011-08-16 16:20:33

Linuxkconfigmakefile

2009-10-12 12:46:55

Linux內核SCSI IO

2022-01-16 07:41:46

Windows 11操作系統微軟

2023-03-20 16:21:26

ADC數字轉換器

2022-08-08 19:35:37

HDF驅動開發鴻蒙

2023-03-21 18:06:49

ADC數字轉換器

2019-07-15 08:30:06

Linux 系統 數據

2015-08-03 10:43:58

Linux內核驅動

2022-10-08 11:57:30

Linux內核架構

2022-10-17 14:29:24

鴻蒙應用開發

2021-08-17 14:39:00

鴻蒙HarmonyOS應用

2021-12-08 08:41:31

Linux 中斷子系統Linux 系統

2021-07-22 08:03:08

Windows 操作系統Linux
點贊
收藏

51CTO技術棧公眾號

国产小视频免费在线网址| 少妇精品一区二区| 国产91在线视频蝌蚪| 国产伦精一区二区三区| 久久久中精品2020中文| 老牛影视av老牛影视av| 欧洲亚洲精品久久久久| 亚洲午夜精品在线| 日本在线成人一区二区| 99久久精品日本一区二区免费 | 丝袜美腿亚洲一区二区图片| 日韩中文字幕精品视频| 亚洲av成人片无码| 九七电影院97理论片久久tvb| 亚洲一区电影777| 午夜久久资源| 污污网站在线免费观看| 日韩av在线播放中文字幕| 久久久久成人精品| 99久久久无码国产精品不卡| 欧美三级午夜理伦三级小说| 欧美精品三级日韩久久| 欧美 日韩 国产一区| 国产午夜精品久久久久免费视| 91丨九色丨尤物| 91视频在线免费观看| 狠狠躁夜夜躁人人爽视频| 亚洲黄色成人| 欧美日韩国产123| 女同久久另类69精品国产| 偷拍一区二区| 亚洲成色999久久网站| 在线观看免费的av| 人人鲁人人莫人人爱精品| 亚洲一区二区精品视频| 久久久国产精华液999999| 黄色毛片在线观看| 91在线观看地址| 国产偷国产偷亚洲高清97cao| 国产精品一区二区av白丝下载| 日本va欧美va欧美va精品| 91精品国产91久久久久久最新 | 999精品色在线播放| 亚洲欧美色图片| 噜噜噜在线视频| aiai久久| 精品国产污污免费网站入口 | 国产欧美日韩在线观看| 蜜桃久久影院| 日夜干在线视频| 337p粉嫩大胆噜噜噜噜噜91av | 欧美午夜影院在线视频| 老太脱裤让老头玩ⅹxxxx| h片在线免费| 亚洲美腿欧美偷拍| 成人午夜视频免费观看| 成人区精品一区二区不卡| 亚洲欧美自拍偷拍| 日本丰满少妇黄大片在线观看| 大片免费在线看视频| 亚洲视频香蕉人妖| 亚洲av综合色区| 男女视频在线| 精品成人av一区| avav在线看| www.国产精品| 欧美一区二区精美| 国产a级黄色片| 日韩有码一区| 在线观看91久久久久久| 天海翼在线视频| 亚洲午夜激情在线| 日本高清不卡在线| 中文字幕乱码视频| 极品尤物av久久免费看| 国产不卡一区二区在线观看| 婷婷在线免费观看| 久久久久久免费| 自拍亚洲欧美老师丝袜| 丁香高清在线观看完整电影视频| 亚洲成人自拍偷拍| 欧美日韩在线不卡视频| 久久99久久久精品欧美| 精品国一区二区三区| 久久久久国产精品区片区无码| 精品国产乱码久久久久久1区2匹| 色老头一区二区三区| 青青草手机在线观看| 亚洲国产第一| 国产精品一二三在线| 精品免费久久久| 久久免费看少妇高潮| 一区二区三区免费看| 俺来俺也去www色在线观看| 日本精品免费观看高清观看| 污免费在线观看| 色婷婷久久久| 久久伊人91精品综合网站| 日本一区二区欧美| 精品伊人久久久久7777人| 国内精品国语自产拍在线观看| 日韩在线免费看| 亚洲男人都懂的| 久草精品在线播放| 中文字幕亚洲在线观看| 一区二区在线视频| 韩国av免费观看| 精品一区二区三区免费播放| 美女被啪啪一区二区| 宅男在线观看免费高清网站| 欧美色图片你懂的| 亚洲欧美日本一区| 亚洲国产日韩欧美在线| 国产91色在线| 香蕉av在线播放| 一区二区三区四区乱视频| 91制片厂毛片| 欧美激情在线精品一区二区三区| 欧美精品在线第一页| 中文区中文字幕免费看| 久久综合久久综合亚洲| 国产av人人夜夜澡人人爽麻豆| 色综合视频一区二区三区日韩| 精品五月天久久| 国产主播在线播放| 国产精品1区二区.| 一区二区免费电影| 成人国产精品一区二区免费麻豆| 亚洲精品成a人在线观看| 免费一级全黄少妇性色生活片| 久久99蜜桃精品| 亚洲电影网站| 日韩欧美精品电影| 亚洲一品av免费观看| 天天综合天天干| av网站免费线看精品| 日本手机在线视频| 国产成人一二| 久久乐国产精品| 性欧美videos另类hd| 亚洲人成精品久久久久| 超碰中文字幕在线观看| 亚洲九九在线| 成人羞羞国产免费| 黄在线免费观看| 欧美一区二区在线免费观看| 日韩精品一区二区亚洲av性色| 麻豆国产91在线播放| 亚洲欧洲日夜超级视频| 久久人体av| 久久精品国产一区| 国产口爆吞精一区二区| 亚洲精品国产第一综合99久久| 久久精品一卡二卡| 欧美精品激情| 国产一区在线免费| 忘忧草在线影院两性视频| 亚洲男人的天堂在线| 在线观看污污网站| 中文字幕一区二区5566日韩| 亚洲高清视频免费| 国产精品成人一区二区网站软件| 国产精品久久久久久久免费大片| 99riav视频在线观看| 国产丝袜视频一区| 中文字幕免费播放| 亚洲美女精品一区| 精品影片一区二区入口| 国产精品久久久久毛片大屁完整版 | 丁香花在线影院观看在线播放| 国产色噜噜噜91在线精品 | 在线观看国产亚洲| 国产午夜精品一区二区三区四区 | 丰满少妇久久久久久久| 日本a视频在线观看| 精品国产123区| 亚洲xxxx在线| 不卡av播放| 久久综合电影一区| 天天插天天干天天操| 欧洲精品一区二区三区在线观看| 一起操在线播放| a在线欧美一区| 亚洲一级免费观看| 1024成人| 中国一区二区三区| 青青草原在线亚洲| 成人免费福利在线| 性国裸体高清亚洲| 美女精品久久久| 男人天堂网在线观看| 91精品国产全国免费观看| 国产超碰人人爽人人做人人爱| 国产精品久久久久久久久久免费看| 国产又粗又猛又爽又黄| 丝袜a∨在线一区二区三区不卡 | 欧美人动性xxxxz0oz| 亚洲欧美国产视频| 成人av手机在线| 欧美在线观看一二区| 精品少妇爆乳无码av无码专区| 日本一区二区三区久久久久久久久不 | 噜噜噜天天躁狠狠躁夜夜精品| 国产精品日韩久久久久| av免费不卡国产观看| 久久精品99国产精品酒店日本| 天天躁日日躁狠狠躁喷水| 91精品国产综合久久精品麻豆| 国产成人免费看| 亚洲国产欧美在线人成| 2025国产精品自拍| 国产欧美精品一区| 短视频在线观看| 成人黄色网址在线观看| 激情图片中文字幕| 男人的j进女人的j一区| 免费在线激情视频| 亚洲一级高清| 欧美大片免费播放| 欧美国产一区二区三区激情无套| 麻豆91蜜桃| 老汉色老汉首页av亚洲| 97人人模人人爽人人少妇| 欧美久久久网站| 国产成人午夜视频网址| 国产中文在线播放| 久久久视频在线| 亚洲91av| 欧美精品在线极品| 超碰在线观看免费| 久久精品国产99国产精品澳门| 国产二区视频在线观看| 亚洲天堂男人的天堂| 人成在线免费视频| 精品爽片免费看久久| 污污视频在线免费看| 亚洲精品电影在线| 色欲久久久天天天综合网| 精品国精品自拍自在线| 亚洲第一色视频| 欧美成人aa大片| 欧美熟妇交换久久久久久分类 | 久久久久久久久久久国产精品| 成人av网站免费观看| 看全色黄大色黄女片18| 97久久超碰国产精品电影| 你懂的在线观看网站| av在线播放一区二区三区| 中文在线永久免费观看| 91麻豆精东视频| 法国空姐电影在线观看| 国产欧美视频一区二区| 福利视频第一页| 亚洲欧洲精品一区二区三区| 亚洲一级二级片| 亚洲一区中文日韩| 99热国产在线观看| 色婷婷综合久久久中文字幕| 国产精品欧美综合| 337p亚洲精品色噜噜| av网站在线免费看| 精品国产一区a| 免费毛片在线| 色狠狠av一区二区三区香蕉蜜桃| 网站一区二区三区| 久久激情久久| 成人免费毛片播放| 蜜臀久久久99精品久久久久久| 精品999在线| 亚洲欧美韩国| 欧美绝品在线观看成人午夜影视| 中文字幕在线播放不卡| 欧美卡1卡2卡| 好吊视频一区二区三区| 99热在线精品观看| 日本不卡一区二区三区四区| 久久久9色精品国产一区二区三区| 在线视频不卡一区二区| www国产精品视频| 最新中文字幕免费| 欧美日韩成人一区| 亚洲AV无码精品自拍| 日韩精品在线播放| 3d成人动漫在线| 欧美高清videos高潮hd| 欧美粗大gay| 1区1区3区4区产品乱码芒果精品| 久久影院资源站| 夜夜爽99久久国产综合精品女不卡| 欧美99久久| 日韩毛片中文字幕| 天堂在线一二区| 中文字幕av日韩| www.久久ai| 国产精品成人久久久久| 午夜啪啪小视频| 久久成人免费网站| 少妇高潮一69aⅹ| 久久久www成人免费毛片麻豆 | 高清一区二区三区| 天天爽天天狠久久久| 国产成人三级在线观看视频| 香蕉乱码成人久久天堂爱免费| 国产精品777777| 欧美日韩国产天堂| 熟妇高潮一区二区高潮| 自拍偷拍免费精品| a毛片不卡免费看片| 国产精品自拍网| 欧美丝袜足交| 777久久精品一区二区三区无码| 日韩黄色中文字幕| 久久亚洲综合| 污免费在线观看| 欧美国产1区2区| 国产成人在线观看网站| 91精品国产91综合久久蜜臀| 青春草在线观看 | 欧美一区二区美女| 日韩a**中文字幕| 91高清免费在线观看| 精品久久免费| 亚洲精蜜桃久在线| 久久不射2019中文字幕| 成熟妇人a片免费看网站| 亚洲男同性恋视频| 91传媒免费视频| 久久99精品久久久久久久久久久久| 国产熟女高潮一区二区三区| 亚洲尤物视频在线| 国内精品久久久久久久久久久 | 日韩伦理一区| 毛片一区二区三区四区| 91麻豆精品在线观看| 中国一级免费毛片| 亚洲精品久久在线| 国产拍在线视频| 国产一区免费在线| 日韩亚洲在线| 99久久国产精| 色婷婷av一区| 成年在线电影| 国产欧美韩国高清| 午夜国产一区二区| 亚洲一二三不卡| 亚洲精品你懂的| 国产又粗又黄又爽的视频| 日韩在线视频中文字幕| 91精品国产自产观看在线| av动漫免费观看| 国产精品一区二区三区99| 黄色一级免费视频| 欧美精品一区二区不卡 | 精品久久在线播放| 日夜干在线视频| 国产精品久久久久久久久| 成人看的羞羞网站| 视频免费1区二区三区| 亚洲视频在线观看三级| 国产91免费看| 国产成人小视频在线观看| 99久久影视| 动漫av在线免费观看| 懂色aⅴ精品一区二区三区蜜月| 色综合成人av| 国产美女高潮久久白浆| 亚洲精品国产成人影院| 日本性生活一级片| 色综合网站在线| 免费a级毛片在线播放| 国产传媒一区| 久久亚洲一区| 538任你躁在线精品视频网站| 精品国产伦一区二区三区观看方式| 精品丝袜在线| 一区不卡字幕| 成人性生交大片免费看中文网站| 黄色一级片免费在线观看| 丝袜美腿亚洲一区二区| 亚洲乱码一区| www.玖玖玖| 中文字幕一区日韩精品欧美| 黄色av中文字幕| 国产精品美女无圣光视频| 国产一区亚洲| 日韩人妻无码精品综合区| 欧美一区二区三区四区久久| 国产免费不卡| 粉嫩av一区二区三区天美传媒 | 国产一区二区三区黄视频 | www.xxxx欧美| 成人资源在线播放| 亚洲欧美国产日韩综合| 午夜精品一区二区三区免费视频| 成人p站proumb入口| 国产精品一区二区不卡视频| 奇米亚洲午夜久久精品| 日本一区二区三区免费视频| 久久久精品美女| 九九视频精品全部免费播放|