久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

PCIe配置空間與BAR空間詳解:從枚舉到FPGA實(shí)戰(zhàn)調(diào)試

PCIe配置空間與BAR空間詳解:從枚舉到FPGA實(shí)戰(zhàn)調(diào)試 PCIe 這玩意兒剛接觸的時(shí)候最容易讓人懵圈的不是那些高速信號(hào)、鏈路訓(xùn)練反而是軟件層面那兩個(gè)看起來(lái)平平無(wú)奇的東西配置空間和 BAR 空間。我見(jiàn)過(guò)不少做 FPGA 的兄弟邏輯寫得飛起DMA 也能跑通但一到主機(jī)識(shí)別不到設(shè)備、或者 BAR 地址映射錯(cuò)亂就抓瞎了。問(wèn)題往往就出在對(duì)這兩個(gè)空間的機(jī)制理解得不夠透。這篇就專門把配置空間和 BAR 空間掰開(kāi)揉碎講清楚它們各自裝了什么、為什么這么設(shè)計(jì)、實(shí)際調(diào)試中怎么用以及那些文檔里不會(huì)寫的坑。1. 為什么 PCIe 需要配置空間和 BAR 這兩套地址體系要理解配置空間和 BAR得先回到 PCIe 設(shè)計(jì)的一個(gè)根本矛盾上。主機(jī) CPU 訪問(wèn)內(nèi)存是按物理地址走的而 PCIe 設(shè)備自己內(nèi)部也有一堆寄存器、緩沖區(qū)、控制邏輯這些東西也需要被 CPU 訪問(wèn)。問(wèn)題是設(shè)備插到哪個(gè)槽位、系統(tǒng)里掛了多少設(shè)備這些在開(kāi)機(jī)之前都是未知的。你不可能給每個(gè)設(shè)備預(yù)先分配一段固定的物理地址那樣地址空間早就沖突了。所以 PCIe 采用了一套先枚舉、后分配的機(jī)制。配置空間就是設(shè)備的身份證加簡(jiǎn)歷里面記錄了廠商 ID、設(shè)備 ID、類型、需要多大地址空間等固定信息。主機(jī)在枚舉階段掃描總線讀每個(gè)設(shè)備的配置空間搞清楚你是誰(shuí)、你要多少資源然后統(tǒng)一分配地址。BAR 空間則是設(shè)備向主機(jī)申請(qǐng)的地盤主機(jī)分配好地址后把基地址寫回 BAR 寄存器設(shè)備就知道哦原來(lái)我的寄存器在主機(jī)眼里是這個(gè)地址。這套機(jī)制的核心價(jià)值在于地址無(wú)關(guān)性。設(shè)備不需要知道自己會(huì)被映射到哪個(gè)地址它只需要聲明我需要 4KB 的寄存器空間和我需要 16MB 的顯存空間剩下的交給主機(jī)。這也是為什么同一塊 FPGA 板卡插到不同主板上都能正常工作因?yàn)榈刂肥莿?dòng)態(tài)分配的。從拓?fù)浣Y(jié)構(gòu)上看PCIe 是一棵樹(shù)根復(fù)合體Root Complex是根下面掛交換機(jī)Switch和端點(diǎn)設(shè)備Endpoint。配置空間和 BAR 的分配是沿著這棵樹(shù)逐級(jí)進(jìn)行的。每個(gè)橋設(shè)備包括交換機(jī)端口也有自己的配置空間負(fù)責(zé)管理下游總線的地址窗口。理解這個(gè)層級(jí)關(guān)系對(duì)后面排查 BAR 分配失敗非常關(guān)鍵。很多人把配置空間和 BAR 空間混為一談其實(shí)它們是兩個(gè)完全不同的地址域。配置空間通過(guò) CFG 事務(wù)訪問(wèn)走的是獨(dú)立的配置讀寫通道BAR 空間則是通過(guò) MEM 或 IO 事務(wù)訪問(wèn)走的是正常的內(nèi)存映射通道。這個(gè)區(qū)別在調(diào)試時(shí)非常重要。2. 配置空間里到底裝了哪些東西配置空間是 PCIe 設(shè)備的標(biāo)準(zhǔn)寄存器區(qū)域規(guī)范定義每個(gè)功能Function必須有至少 256 字節(jié)的配置空間PCIe 還擴(kuò)展到了 4KB。這 4KB 不是隨便堆的而是按固定偏移劃分成一個(gè)個(gè)有明確用途的字段。理解這些字段的布局是讀懂枚舉日志和排查識(shí)別問(wèn)題的前提。2.1 前 64 字節(jié)設(shè)備身份與命令控制配置空間的前 64 字節(jié)是所有 PCIe 設(shè)備都必須實(shí)現(xiàn)的這部分叫 Type 0 頭對(duì)于端點(diǎn)設(shè)備或 Type 1 頭對(duì)于橋設(shè)備。里面最關(guān)鍵的幾個(gè)字段Vendor ID 和 Device ID偏移 0x00 和 0x02廠商 ID 由 PCI-SIG 統(tǒng)一分配設(shè)備 ID 由廠商自己定義。主機(jī)枚舉時(shí)第一件事就是讀這兩個(gè)值如果是 0xFFFF說(shuō)明這個(gè)位置沒(méi)有設(shè)備或者設(shè)備沒(méi)準(zhǔn)備好。Command 寄存器偏移 0x04控制設(shè)備是否響應(yīng) MEM 訪問(wèn)、IO 訪問(wèn)、總線主控等。很多新手遇到設(shè)備能識(shí)別但訪問(wèn)不了 BAR的問(wèn)題十有八九是 Command 寄存器里的 Memory Space Enable 位沒(méi)置起來(lái)。Status 寄存器偏移 0x06反映設(shè)備狀態(tài)比如是否支持能力列表、是否有錯(cuò)誤等。Revision ID 和 Class Code偏移 0x08 和 0x09Revision 是版本號(hào)Class Code 標(biāo)識(shí)設(shè)備類型比如 0x020000 是以太網(wǎng)控制器0x010802 是 NVMe 存儲(chǔ)控制器。操作系統(tǒng)就是靠 Class Code 來(lái)加載對(duì)應(yīng)驅(qū)動(dòng)的。Header Type偏移 0x0E標(biāo)識(shí)這是 Type 0 還是 Type 1 頭以及是否是多功能設(shè)備。BAR0 到 BAR5偏移 0x10 到 0x24六個(gè)基地址寄存器這是配置空間和 BAR 空間的交匯點(diǎn)后面單獨(dú)展開(kāi)講。Capabilities Pointer偏移 0x34指向能力列表的偏移PCIe 的各種高級(jí)功能都掛在能力列表里。我實(shí)際調(diào)試中遇到最多的情況是FPGA 加載了錯(cuò)誤的比特流Vendor ID 和 Device ID 讀出來(lái)是默認(rèn)值或者全 F主機(jī)直接判定為無(wú)效設(shè)備。所以每次上電先確認(rèn)這兩個(gè) ID 是否正確是最基本的排查動(dòng)作。2.2 能力列表PCIe 的高級(jí)功能入口從偏移 0x34 開(kāi)始配置空間里掛了一條鏈表叫能力列表Capability List。每個(gè)能力項(xiàng)都有一個(gè) 8 位的 Capability ID 和一個(gè)指向下一項(xiàng)的指針。PCIe 設(shè)備必須實(shí)現(xiàn)的能力包括Power Management CapabilityID 0x01電源管理相關(guān)控制設(shè)備在不同電源狀態(tài)間切換。MSI CapabilityID 0x05消息信號(hào)中斷替代傳統(tǒng)的 INTx 中斷?,F(xiàn)代 PCIe 設(shè)備基本都用 MSI 或 MSI-X。PCI Express CapabilityID 0x10這是 PCIe 特有的包含設(shè)備類型、鏈路狀態(tài)、鏈路能力等信息。調(diào)試鏈路降速、降寬問(wèn)題時(shí)就是讀這里的 Link Status 寄存器。MSI-X CapabilityID 0x11支持更多中斷向量NVMe 和高速網(wǎng)卡常用。能力列表的遍歷方式是從 Capabilities Pointer 開(kāi)始讀第一個(gè)能力的 ID 和 Next Pointer然后順著指針一直走直到 Next Pointer 為 0。這個(gè)遍歷邏輯在寫驅(qū)動(dòng)或者調(diào)試工具時(shí)經(jīng)常用到。2.3 擴(kuò)展配置空間4KB 里的后半部分PCIe 把配置空間從 256 字節(jié)擴(kuò)展到了 4KB前 256 字節(jié)保持和 PCI 兼容后面的 3.75KB 是 PCIe 擴(kuò)展配置空間。這里最重要的是擴(kuò)展能力列表Extended Capability List從偏移 0x100 開(kāi)始每個(gè)擴(kuò)展能力有 16 位的 ID。常見(jiàn)的擴(kuò)展能力包括Advanced Error ReportingAER高級(jí)錯(cuò)誤報(bào)告能精確報(bào)告是哪種錯(cuò)誤、發(fā)生在哪個(gè)層級(jí)。排查掉卡、鏈路錯(cuò)誤時(shí)必看。Secondary PCI Express Extended Capability包含鏈路均衡相關(guān)的寄存器調(diào)試鏈路穩(wěn)定性時(shí)用得到。SR-IOV Capability單根 IO 虛擬化網(wǎng)卡和 FPGA 加速卡常用。TPHTLP Processing Hints提示 TLP 的處理方式對(duì)性能優(yōu)化有幫助。訪問(wèn)擴(kuò)展配置空間需要用 PCIe 的配置事務(wù)傳統(tǒng)的 CF8/CFC 端口只能訪問(wèn)前 256 字節(jié)。在 Linux 下可以用lspci -vvv看到擴(kuò)展能力的詳細(xì)信息或者用setpci直接讀寫。3. BAR 空間設(shè)備向主機(jī)申請(qǐng)的地址地盤BAR 是 Base Address Register 的縮寫直譯就是基地址寄存器。它位于配置空間里但它的作用遠(yuǎn)不止存一個(gè)地址這么簡(jiǎn)單。BAR 是設(shè)備和主機(jī)之間關(guān)于地址空間的一份合同設(shè)備通過(guò) BAR 聲明自己需要多大的空間、是什么類型的空間主機(jī)通過(guò) BAR 告訴設(shè)備你的空間被映射到了這個(gè)地址。3.1 BAR 的探測(cè)機(jī)制寫全 1 再讀回BAR 的探測(cè)機(jī)制是 PCIe 里一個(gè)非常巧妙的設(shè)計(jì)。主機(jī)在枚舉時(shí)并不知道設(shè)備需要多大空間它的做法是向 BAR 寫入全 10xFFFFFFFF。讀回 BAR 的值。讀回的值中低位為 0 的位數(shù)就代表了空間大小的對(duì)齊要求。舉個(gè)例子如果一個(gè) BAR 讀回來(lái)是 0xFFFFF000說(shuō)明低 12 位是 0設(shè)備需要 4KB 的空間。如果讀回來(lái)是 0xFF000000說(shuō)明低 24 位是 0需要 16MB 空間。這個(gè)機(jī)制的好處是設(shè)備不需要額外的寄存器來(lái)聲明大小BAR 自己就能表達(dá)。這里有個(gè)細(xì)節(jié)容易踩坑BAR 的最低位表示空間類型。bit 0 為 1 表示 IO 空間為 0 表示 MEM 空間。MEM 空間里 bit 1 和 bit 2 表示是否支持 64 位地址和是否可預(yù)取。所以實(shí)際計(jì)算大小時(shí)要把這些控制位排除掉。比如一個(gè) 64 位 MEM BAR低 4 位是控制位從 bit 4 開(kāi)始才是地址對(duì)齊信息。寫全 1 探測(cè) BAR 大小時(shí)一定要先保存原來(lái)的值探測(cè)完再恢復(fù)。有些設(shè)備的 BAR 在探測(cè)過(guò)程中如果被破壞可能導(dǎo)致設(shè)備進(jìn)入異常狀態(tài)。雖然規(guī)范說(shuō)這是安全的但實(shí)際硬件實(shí)現(xiàn)千奇百怪謹(jǐn)慎為上。3.2 MEM BAR 和 IO BAR 的區(qū)別與選擇PCIe 支持兩種 BAR 類型MEM BAR 和 IO BAR。MEM BAR 映射到系統(tǒng)的內(nèi)存地址空間CPU 可以用普通的 load/store 指令訪問(wèn)IO BAR 映射到 IO 地址空間需要專門的 IN/OUT 指令訪問(wèn)?,F(xiàn)代 PCIe 設(shè)備幾乎都用 MEM BAR原因很簡(jiǎn)單IO 空間只有 64KB資源緊張而且訪問(wèn)效率低。MEM 空間可以很大支持 64 位地址訪問(wèn)方式統(tǒng)一。PCIe 規(guī)范雖然保留了 IO 事務(wù)但明確不推薦新設(shè)計(jì)使用。不過(guò)在實(shí)際項(xiàng)目中有些老舊的 FPGA 設(shè)計(jì)或者兼容性要求可能還會(huì)實(shí)現(xiàn) IO BAR。我的建議是除非有明確的兼容性需求否則一律用 MEM BAR而且優(yōu)先用 64 位 BAR。MEM BAR 還有一個(gè)屬性叫可預(yù)取Prefetchable。如果 BAR 聲明為可預(yù)取主機(jī)可以把它映射到帶緩存的內(nèi)存區(qū)域CPU 讀取時(shí)可以利用緩存提高性能。但可預(yù)取的前提是讀操作沒(méi)有副作用讀和寫之間沒(méi)有嚴(yán)格的順序依賴。對(duì)于 FIFO、狀態(tài)寄存器這類有副作用的地址絕對(duì)不能聲明為可預(yù)取否則會(huì)出現(xiàn)讀一次數(shù)據(jù)就丟一次的問(wèn)題。3.3 64 位 BAR 的配對(duì)使用一個(gè) 64 位 BAR 需要占用兩個(gè)連續(xù)的 BAR 位置。比如 BAR0 和 BAR1 組成一個(gè) 64 位 BARBAR0 存低 32 位BAR1 存高 32 位。BAR0 的 bit 2 置 1 表示這是 64 位 BAR此時(shí) BAR1 不再是一個(gè)獨(dú)立的 BAR而是作為高 32 位地址寄存器。這個(gè)配對(duì)關(guān)系在寫驅(qū)動(dòng)和做地址映射時(shí)特別容易搞錯(cuò)。我見(jiàn)過(guò)有同事在設(shè)備樹(shù)里只寫了 BAR0 的地址結(jié)果高 32 位沒(méi)配訪問(wèn)直接飛到錯(cuò)誤的內(nèi)存區(qū)域系統(tǒng)當(dāng)場(chǎng)掛掉。正確的做法是先讀 BAR0 判斷 bit 2 是否為 1如果是說(shuō)明是 64 位 BAR需要同時(shí)處理 BAR0 和 BAR1。對(duì)于 FPGA 開(kāi)發(fā)者來(lái)說(shuō)在 IP 核里配置 BAR 時(shí)也要注意這個(gè)配對(duì)。Xilinx 的 XDMA IP 和 Intel 的 PCIe Hard IP 都有 BAR 配置選項(xiàng)選 64 位 BAR 時(shí)它會(huì)自動(dòng)占用兩個(gè) BAR 編號(hào)。4. 從枚舉到映射配置空間和 BAR 是怎么被主機(jī)處理的理解了配置空間和 BAR 各自的內(nèi)容接下來(lái)要把它們串起來(lái)看看主機(jī)從上電到設(shè)備可用到底經(jīng)歷了什么。這個(gè)過(guò)程叫枚舉Enumeration是 PCIe 系統(tǒng)啟動(dòng)的核心流程。4.1 枚舉的完整流程枚舉是從根復(fù)合體開(kāi)始沿著 PCIe 樹(shù)逐級(jí)掃描的過(guò)程。大致步驟如下掃描總線 0根復(fù)合體首先掃描自己下面的總線 0讀取每個(gè)可能的設(shè)備號(hào)0 到 31和功能號(hào)0 到 7的配置空間。讀 Vendor ID如果讀回來(lái)的 Vendor ID 是 0xFFFF說(shuō)明這個(gè)位置沒(méi)有設(shè)備跳過(guò)。如果是有效值說(shuō)明發(fā)現(xiàn)了一個(gè)設(shè)備。判斷設(shè)備類型讀 Header Type如果是 Type 1說(shuō)明是橋設(shè)備需要繼續(xù)掃描它下面的總線如果是 Type 0說(shuō)明是端點(diǎn)設(shè)備。分配總線號(hào)對(duì)于橋設(shè)備主機(jī)分配一個(gè)總線號(hào)范圍給它下面的子樹(shù)。探測(cè) BAR 大小對(duì)每個(gè)端點(diǎn)設(shè)備寫全 1 探測(cè)每個(gè) BAR 需要多大空間。分配地址主機(jī)根據(jù)所有設(shè)備的需求統(tǒng)一分配 MEM 和 IO 地址空間把基地址寫回 BAR。使能設(shè)備設(shè)置 Command 寄存器使能 MEM 訪問(wèn)、IO 訪問(wèn)和總線主控。配置中斷分配中斷號(hào)配置 MSI/MSI-X。加載驅(qū)動(dòng)操作系統(tǒng)根據(jù) Class Code 和 Vendor/Device ID 匹配驅(qū)動(dòng)。這個(gè)過(guò)程在 Linux 下可以用lspci -vvv看到結(jié)果在 Windows 下可以用設(shè)備管理器查看資源分配情況。調(diào)試時(shí)如果設(shè)備沒(méi)被識(shí)別就要順著這個(gè)流程一步步查是 Vendor ID 沒(méi)讀到還是 BAR 分配失敗還是 Command 寄存器沒(méi)使能。4.2 地址窗口與橋的轉(zhuǎn)發(fā)規(guī)則PCIe 樹(shù)里的每個(gè)橋設(shè)備都有三個(gè)地址窗口寄存器Memory Base/Limit、Prefetchable Memory Base/Limit、IO Base/Limit。這些寄存器定義了橋下面子樹(shù)使用的地址范圍。當(dāng) CPU 發(fā)起一個(gè)內(nèi)存訪問(wèn)時(shí)根復(fù)合體首先判斷這個(gè)地址落在哪個(gè)橋的窗口里然后把事務(wù)轉(zhuǎn)發(fā)給對(duì)應(yīng)的橋。橋再往下判斷直到到達(dá)目標(biāo)設(shè)備。如果地址不在任何窗口里事務(wù)就會(huì)被丟棄或者報(bào)錯(cuò)。這個(gè)機(jī)制解釋了為什么 BAR 分配失敗會(huì)導(dǎo)致設(shè)備完全無(wú)法訪問(wèn)。如果主機(jī)沒(méi)有正確配置橋的地址窗口即使設(shè)備的 BAR 被分配了地址事務(wù)也到不了設(shè)備。我在調(diào)試一塊多級(jí)交換機(jī)的板卡時(shí)就遇到過(guò)交換機(jī)端口的 Memory Limit 設(shè)小了導(dǎo)致下游設(shè)備的 BAR 地址超出了窗口范圍設(shè)備能識(shí)別但訪問(wèn)就報(bào)錯(cuò)。排查這類問(wèn)題時(shí)可以用lspci -vvv查看每個(gè)橋的窗口配置對(duì)比設(shè)備的 BAR 地址是否落在窗口內(nèi)。也可以用setpci手動(dòng)調(diào)整窗口寄存器驗(yàn)證。4.3 Linux 下的資源分配與 sysfs 接口Linux 內(nèi)核在啟動(dòng)時(shí)會(huì)做一次完整的 PCIe 枚舉分配資源。如果 BIOS 已經(jīng)分配好了內(nèi)核一般會(huì)沿用 BIOS 的分配結(jié)果除非有沖突或者用pcirealloc參數(shù)強(qiáng)制重新分配。在 Linux 下每個(gè) PCIe 設(shè)備在/sys/bus/pci/devices/下有一個(gè)目錄目錄名是domain:bus:device.function的格式。這個(gè)目錄里有很多有用的文件config配置空間的二進(jìn)制內(nèi)容可以用hexdump查看。resource0、resource1等BAR 空間的內(nèi)存映射文件可以用mmap映射到用戶空間直接訪問(wèn)。enable寫入 1 使能設(shè)備。driver指向當(dāng)前綁定的驅(qū)動(dòng)。對(duì)于 FPGA 開(kāi)發(fā)者來(lái)說(shuō)resource0特別有用。你可以寫一個(gè)簡(jiǎn)單的用戶態(tài)程序mmap這個(gè)文件就能直接讀寫 FPGA 的寄存器不需要寫內(nèi)核驅(qū)動(dòng)。這在調(diào)試階段非常方便。# 查看設(shè)備的 BAR 分配情況 lspci -vvv -s 01:00.0 | grep -A 10 Region # 用 setpci 讀取配置空間 setpci -s 01:00.0 0x04.w # 查看 sysfs 下的資源文件 ls -l /sys/bus/pci/devices/0000:01:00.0/resource*5. FPGA 開(kāi)發(fā)中配置空間與 BAR 的實(shí)戰(zhàn)要點(diǎn)對(duì)于做 FPGA 的工程師來(lái)說(shuō)配置空間和 BAR 不是抽象概念而是每天都要打交道的實(shí)際配置。無(wú)論是用 Xilinx 的 XDMA、Intel 的 PCIe Hard IP還是自己寫 PCIe 核BAR 的規(guī)劃都直接影響系統(tǒng)的易用性和性能。5.1 BAR 規(guī)劃把什么放進(jìn)哪個(gè) BAR一個(gè) PCIe 設(shè)備最多有 6 個(gè) BAR怎么分配這些 BAR 是有講究的。常見(jiàn)的規(guī)劃方式BAR0控制寄存器和狀態(tài)寄存器通常幾 KB 到幾十 KB。這部分訪問(wèn)頻繁但數(shù)據(jù)量小。BAR1DMA 描述符區(qū)域或者大塊數(shù)據(jù)緩沖區(qū)可能需要 MB 級(jí)別。BAR2/BAR3如果做成 64 位 BAR和 BAR0/BAR1 配對(duì)使用。BAR4/BAR5預(yù)留給擴(kuò)展功能或者第二個(gè)功能。我的一般原則是把訪問(wèn)頻繁的小寄存器放在一個(gè) BAR 里把大塊數(shù)據(jù)緩沖區(qū)單獨(dú)放一個(gè) BAR。這樣做的好處是小 BAR 可以映射成非預(yù)取的保證讀寫順序大 BAR 可以映射成預(yù)取的利用緩存提高吞吐。另外BAR 的大小要按 2 的冪次對(duì)齊。如果你聲明需要 3KB實(shí)際會(huì)占用 4KB。所以規(guī)劃時(shí)要留余量但也不要浪費(fèi)太多地址空間。在資源緊張的系統(tǒng)里BAR 大小直接影響能不能枚舉成功。5.2 配置空間在 IP 核里的實(shí)現(xiàn)用 Xilinx XDMA IP 時(shí)配置空間的大部分字段是 IP 自動(dòng)生成的但有幾個(gè)地方需要手動(dòng)配置Vendor ID 和 Device ID在 IP 配置界面里填寫或者通過(guò)參數(shù)傳遞。Class Code決定操作系統(tǒng)加載哪個(gè)驅(qū)動(dòng)比如 0x020000 是以太網(wǎng)0x010802 是 NVMe。BAR 配置選擇每個(gè) BAR 的大小和類型XDMA 支持配置 BAR 為 MEM 或 IO32 位或 64 位。MSI/MSI-X選擇中斷方式XDMA 支持 MSI-X可以配置中斷向量數(shù)量。Intel 的 PCIe Hard IP 類似但配置方式不同。它的配置空間是通過(guò) Avalon-MM 接口暴露的可以在邏輯里動(dòng)態(tài)修改某些字段。這在需要?jiǎng)討B(tài)改變?cè)O(shè)備 ID 或者 BAR 大小的場(chǎng)景下很有用。自己寫 PCIe 核的話配置空間的實(shí)現(xiàn)就更靈活了但也更容易出錯(cuò)。最常見(jiàn)的問(wèn)題是 BAR 大小聲明和實(shí)際實(shí)現(xiàn)不匹配導(dǎo)致主機(jī)分配了地址但設(shè)備不響應(yīng)。我的經(jīng)驗(yàn)是配置空間里的 BAR 大小一定要和邏輯里地址譯碼的范圍嚴(yán)格一致差一個(gè)字節(jié)都可能出問(wèn)題。5.3 DMA 與 BAR 的配合DMA 是 FPGA 加速卡的核心功能而 DMA 和 BAR 的配合有幾個(gè)關(guān)鍵點(diǎn)DMA 描述符的存放位置描述符可以放在 BAR 空間里由主機(jī)寫入FPGA 讀取也可以放在主機(jī)內(nèi)存里FPGA 通過(guò) DMA 讀取。前者簡(jiǎn)單后者靈活。地址轉(zhuǎn)換FPGA 發(fā)出的 DMA 讀寫請(qǐng)求地址是主機(jī)物理地址。如果 FPGA 邏輯里用的是虛擬地址或者偏移地址需要做轉(zhuǎn)換。XDMA IP 提供了地址轉(zhuǎn)換功能可以配置 AXI 地址到 PCIe 地址的映射。BAR 空間作為 DMA 目標(biāo)主機(jī)可以通過(guò) BAR 空間直接讀寫 FPGA 的緩沖區(qū)這種方式叫 PIOProgrammed IO適合小數(shù)據(jù)量。大數(shù)據(jù)量還是要用 DMA。我做過(guò)一個(gè)高速 ADC 采集的項(xiàng)目ADC 數(shù)據(jù)先寫入 FPGA 的 DDR然后通過(guò) DMA 搬到主機(jī)內(nèi)存。BAR 空間里放的是控制寄存器和 DMA 描述符數(shù)據(jù)緩沖區(qū)不映射到 BAR而是通過(guò) DMA 直接訪問(wèn)主機(jī)內(nèi)存。這樣設(shè)計(jì)的好處是 BAR 空間很小枚舉容易而且 DMA 帶寬不受 BAR 大小限制。5.4 調(diào)試 BAR 訪問(wèn)問(wèn)題的排查鏈路BAR 訪問(wèn)出問(wèn)題是最常見(jiàn)的 PCIe 調(diào)試場(chǎng)景。我總結(jié)了一個(gè)排查鏈路按順序走基本能定位問(wèn)題確認(rèn)設(shè)備被識(shí)別lspci能不能看到設(shè)備Vendor ID 和 Device ID 對(duì)不對(duì)確認(rèn) BAR 被分配lspci -vvv看 Region 字段有沒(méi)有Memory at xxxx的分配結(jié)果如果顯示Region 0: Memory at unassigned說(shuō)明 BAR 沒(méi)分配成功。確認(rèn) Command 寄存器setpci -s xx:xx.x 0x04.w讀出來(lái)Memory Space Enable 位bit 1是不是 1確認(rèn)橋窗口如果設(shè)備掛在橋下面檢查橋的 Memory Base/Limit 是否覆蓋了設(shè)備的 BAR 地址。確認(rèn)地址譯碼用setpci往 BAR 地址寫一個(gè)值再讀回來(lái)看是否一致。如果不一致說(shuō)明地址譯碼有問(wèn)題。確認(rèn) FPGA 邏輯如果前面都正常但讀寫數(shù)據(jù)不對(duì)就要查 FPGA 邏輯里的地址譯碼和寄存器實(shí)現(xiàn)。這個(gè)鏈路我用了很多次大部分 BAR 問(wèn)題都能在前三步定位。第四步和第五步涉及橋和地址譯碼稍微復(fù)雜一些但只要有l(wèi)spci和setpci兩個(gè)工具也能查清楚。有一個(gè)坑特別隱蔽有些主板的 BIOS 會(huì)把 BAR 分配到一個(gè)和系統(tǒng)內(nèi)存重疊的地址導(dǎo)致訪問(wèn) BAR 時(shí)實(shí)際訪問(wèn)到了內(nèi)存。這種情況在lspci -vvv里看不出來(lái)需要用cat /proc/iomem查看系統(tǒng)的內(nèi)存映射確認(rèn) BAR 地址沒(méi)有落在 System RAM 區(qū)域。6. 那些文檔里不會(huì)寫的踩坑經(jīng)驗(yàn)配置空間和 BAR 的規(guī)范寫得很清楚但實(shí)際硬件和軟件實(shí)現(xiàn)里有很多規(guī)范沒(méi)覆蓋的細(xì)節(jié)。這些細(xì)節(jié)往往就是調(diào)試時(shí)卡住的地方。6.1 BAR 大小探測(cè)的邊界情況寫全 1 探測(cè) BAR 大小時(shí)有一個(gè)邊界情況如果設(shè)備實(shí)現(xiàn)的 BAR 大小是 0也就是不需要任何地址空間寫全 1 讀回來(lái)還是全 1。這時(shí)候主機(jī)應(yīng)該跳過(guò)這個(gè) BAR不分配地址。但有些主機(jī)會(huì)誤判給一個(gè)大小為 0 的 BAR 分配地址導(dǎo)致后續(xù) BAR 分配錯(cuò)位。還有一種情況是 BAR 大小不是 2 的冪次。規(guī)范要求 BAR 大小必須是 2 的冪次但有些 FPGA 設(shè)計(jì)為了省地址空間聲明了一個(gè)非 2 冪次的大小。這種行為在枚舉時(shí)可能被主機(jī)糾正也可能導(dǎo)致分配失敗。我的建議是老老實(shí)實(shí)按 2 的冪次來(lái)別耍小聰明。6.2 熱插拔場(chǎng)景下的 BAR 重新分配PCIe 熱插拔是一個(gè)復(fù)雜的功能涉及到 BAR 的重新分配。當(dāng)設(shè)備被熱插入時(shí)主機(jī)需要重新枚舉這條總線給新設(shè)備分配 BAR 地址。如果之前的地址空間不夠可能還需要調(diào)整已有設(shè)備的 BAR 分配。這個(gè)過(guò)程在 Linux 下由pciehp驅(qū)動(dòng)處理。實(shí)際使用中熱插拔失敗最常見(jiàn)的原因是地址空間不足。特別是 32 位 MEM 空間在很多系統(tǒng)上已經(jīng)很緊張了。如果新設(shè)備需要大塊 32 位 BAR很可能分配失敗。解決辦法是盡量用 64 位 BAR把地址需求放到 64 位空間里。另外熱插拔時(shí)橋窗口的配置也需要更新。如果橋的 Memory Limit 沒(méi)有擴(kuò)展到覆蓋新設(shè)備的 BAR 地址設(shè)備雖然被識(shí)別但訪問(wèn)會(huì)失敗。這個(gè)問(wèn)題在調(diào)試熱插拔時(shí)經(jīng)常遇到需要手動(dòng)或者通過(guò)腳本調(diào)整橋窗口。6.3 鏈路降速與 BAR 訪問(wèn)的關(guān)系PCIe 鏈路降速比如從 Gen3 降到 Gen1或者降寬從 x4 降到 x1通常被認(rèn)為是物理層問(wèn)題但實(shí)際上它也會(huì)影響 BAR 訪問(wèn)。鏈路降速后配置空間和 BAR 的訪問(wèn)延遲會(huì)增加如果軟件里有超時(shí)機(jī)制可能會(huì)誤判為設(shè)備無(wú)響應(yīng)。更嚴(yán)重的是鏈路不穩(wěn)定可能導(dǎo)致配置空間讀取錯(cuò)誤比如 Vendor ID 讀出來(lái)是 0xFFFF 或者隨機(jī)值。這種情況下主機(jī)會(huì)認(rèn)為設(shè)備不存在或者設(shè)備故障直接跳過(guò)枚舉。排查這類問(wèn)題時(shí)不能只看 BAR 分配還要檢查鏈路狀態(tài)寄存器確認(rèn)鏈路是否穩(wěn)定在預(yù)期的速度和寬度。AER高級(jí)錯(cuò)誤報(bào)告是排查這類問(wèn)題的利器。使能 AER 后任何鏈路錯(cuò)誤都會(huì)被記錄到 AER 寄存器里包括錯(cuò)誤類型、發(fā)生時(shí)間、涉及的 TLP 等。在 Linux 下可以用dmesg看到 AER 報(bào)告的錯(cuò)誤信息。6.4 不同操作系統(tǒng)對(duì) BAR 分配的差異Windows 和 Linux 在 BAR 分配策略上有一些差異這些差異在跨平臺(tái)開(kāi)發(fā)時(shí)需要注意Windows對(duì) 32 位 BAR 的分配比較保守如果 32 位空間不足可能會(huì)拒絕分配導(dǎo)致設(shè)備無(wú)法啟動(dòng)。Windows 對(duì) 64 位 BAR 的支持較好但需要設(shè)備正確聲明。Linux默認(rèn)沿用 BIOS 分配如果 BIOS 分配不合理可以用pcirealloc強(qiáng)制重新分配。Linux 對(duì)資源不足的處理更靈活但重新分配可能導(dǎo)致設(shè)備編號(hào)變化。我遇到過(guò)一塊 FPGA 卡在 Windows 下 BAR 分配失敗但在 Linux 下正常。原因是 Windows 的 32 位 MEM 空間被其他設(shè)備占滿了而這塊卡的 BAR 只支持 32 位。后來(lái)把 BAR 改成 64 位Windows 下也正常了。這個(gè)案例說(shuō)明BAR 的類型選擇不只是技術(shù)問(wèn)題還要考慮目標(biāo)操作系統(tǒng)的資源管理策略。6.5 配置空間讀寫失敗的常見(jiàn)原因配置空間讀寫失敗通常表現(xiàn)為讀回來(lái)全 F 或者全 0。常見(jiàn)原因包括設(shè)備未完成鏈路訓(xùn)練鏈路還沒(méi)建立配置空間自然讀不到。等鏈路訓(xùn)練完成后再讀。設(shè)備電源未就緒有些設(shè)備需要外部電源電源沒(méi)上或者時(shí)序不對(duì)配置空間不可訪問(wèn)。配置事務(wù)路由錯(cuò)誤總線號(hào)、設(shè)備號(hào)、功能號(hào)不對(duì)事務(wù)被路由到了錯(cuò)誤的位置。設(shè)備處于復(fù)位狀態(tài)復(fù)位沒(méi)釋放設(shè)備不響應(yīng)配置事務(wù)。時(shí)鐘未穩(wěn)定PCIe 參考時(shí)鐘不穩(wěn)定鏈路訓(xùn)練反復(fù)失敗。排查時(shí)可以用示波器看參考時(shí)鐘和復(fù)位信號(hào)用協(xié)議分析儀抓配置事務(wù)確認(rèn)事務(wù)是否到達(dá)設(shè)備。軟件層面可以用lspci -xxxx讀原始配置空間看是否全 F。7. 從理解到落地把配置空間和 BAR 用起來(lái)講了這么多原理和坑最后回到實(shí)際使用上。配置空間和 BAR 不是只用來(lái)理解的它們?cè)谌粘i_(kāi)發(fā)和調(diào)試中有一堆實(shí)際用途。7.1 用 sysfs 和工具快速查看設(shè)備信息Linux 下查看 PCIe 設(shè)備信息最常用的工具是lspci配合不同的參數(shù)可以看到不同層次的信息命令作用lspci列出所有設(shè)備的基本信息lspci -t以樹(shù)形顯示拓?fù)浣Y(jié)構(gòu)lspci -vvv顯示詳細(xì)配置空間信息包括 BAR、能力列表、鏈路狀態(tài)lspci -xxxx以十六進(jìn)制顯示完整配置空間setpci讀寫配置空間寄存器lspci -vvv -s 01:00.0查看指定設(shè)備的詳細(xì)信息除了lspci/sys/bus/pci/devices/下的文件系統(tǒng)接口也很重要。每個(gè)設(shè)備的config文件是配置空間的二進(jìn)制鏡像resource文件是 BAR 空間的映射信息。寫腳本自動(dòng)化調(diào)試時(shí)直接讀這些文件比解析lspci輸出更可靠。7.2 用戶態(tài)直接訪問(wèn) BAR 空間對(duì)于 FPGA 調(diào)試用戶態(tài)直接訪問(wèn) BAR 空間是最方便的方式?;静襟E找到設(shè)備的 sysfs 路徑比如/sys/bus/pci/devices/0000:01:00.0/。打開(kāi)resource0文件用mmap映射到用戶空間。通過(guò)映射后的指針直接讀寫寄存器。#include stdio.h #include stdlib.h #include fcntl.h #include sys/mman.h #include unistd.h int main() { int fd open(/sys/bus/pci/devices/0000:01:00.0/resource0, O_RDWR | O_SYNC); if (fd 0) { perror(open); return -1; } // 假設(shè) BAR0 大小為 64KB size_t bar_size 64 * 1024; volatile unsigned int *bar mmap(NULL, bar_size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); if (bar MAP_FAILED) { perror(mmap); close(fd); return -1; } // 讀偏移 0x00 的寄存器 unsigned int value bar[0]; printf(Register at offset 0x00: 0x%08X\n, value); // 寫偏移 0x04 的寄存器 bar[1] 0x12345678; munmap((void *)bar, bar_size); close(fd); return 0; }這段代碼的關(guān)鍵點(diǎn)是O_SYNC標(biāo)志和volatile指針。O_SYNC保證寫操作立即生效不會(huì)被緩存volatile防止編譯器優(yōu)化掉看似冗余的讀寫。對(duì)于有副作用的寄存器這兩個(gè)都很重要。7.3 在 FPGA 邏輯里實(shí)現(xiàn)配置空間和 BAR如果自己寫 PCIe 邏輯配置空間的實(shí)現(xiàn)需要覆蓋規(guī)范要求的字段。最小實(shí)現(xiàn)包括Vendor ID、Device ID、Revision ID、Class CodeHeader Type、Cache Line Size、Latency TimerBAR0 到 BAR5Command 和 Status 寄存器Capabilities Pointer 和能力列表BAR 的實(shí)現(xiàn)需要做地址譯碼當(dāng) PCIe 事務(wù)的地址落在 BAR 范圍內(nèi)時(shí)把事務(wù)轉(zhuǎn)發(fā)到內(nèi)部邏輯否則返回 URUnsupported Request響應(yīng)。地址譯碼的邏輯不復(fù)雜但要注意幾點(diǎn)BAR 的地址范圍要和配置空間里聲明的大小一致。64 位 BAR 要同時(shí)比較高 32 位和低 32 位地址。預(yù)取 BAR 和非預(yù)取 BAR 的處理方式不同預(yù)取 BAR 可以接受更大的突發(fā)長(zhǎng)度。地址譯碼的時(shí)序要滿足 PCIe 的延遲要求不能引入太多組合邏輯。7.4 配置空間和 BAR 在虛擬化場(chǎng)景下的變化在虛擬化環(huán)境里配置空間和 BAR 的處理會(huì)多一層。虛擬機(jī)監(jiān)控器Hypervisor需要把物理設(shè)備的配置空間和 BAR 空間映射到虛擬機(jī)里讓虛擬機(jī)里的操作系統(tǒng)以為自己在直接訪問(wèn)硬件。這個(gè)映射過(guò)程涉及到地址轉(zhuǎn)換虛擬機(jī)里的 BAR 地址是虛擬地址Hypervisor 需要把它轉(zhuǎn)換成物理地址。如果設(shè)備支持 SR-IOV每個(gè)虛擬功能VF都有自己的配置空間和 BARHypervisor 需要管理這些資源的分配。在虛擬化場(chǎng)景下調(diào)試 PCIe 問(wèn)題要注意區(qū)分是物理設(shè)備的問(wèn)題還是虛擬化層的問(wèn)題??梢韵仍谒拗鳈C(jī)上確認(rèn)設(shè)備正常再在虛擬機(jī)里排查。lspci在虛擬機(jī)里看到的設(shè)備信息可能和宿主機(jī)不同因?yàn)?Hypervisor 可能修改了某些字段。8. 寫在最后配置空間和 BAR 空間是 PCIe 軟件接口的基石理解了它們就理解了 PCIe 設(shè)備是怎么被主機(jī)發(fā)現(xiàn)、配置和訪問(wèn)的。我剛開(kāi)始接觸 PCIe 的時(shí)候也覺(jué)得這些東西瑣碎不如高速信號(hào)和 DMA 來(lái)得刺激。但后來(lái)發(fā)現(xiàn)大部分調(diào)試問(wèn)題都出在這些瑣碎的地方。Vendor ID 讀不對(duì)、BAR 分配失敗、Command 寄存器沒(méi)使能這些問(wèn)題看起來(lái)簡(jiǎn)單但如果沒(méi)有系統(tǒng)的理解排查起來(lái)就是碰運(yùn)氣。實(shí)際項(xiàng)目中我養(yǎng)成了一個(gè)習(xí)慣拿到一塊新的 PCIe 板卡先不急著跑功能而是用lspci -vvv把配置空間完整看一遍確認(rèn) BAR 分配、鏈路狀態(tài)、能力列表都正常。這個(gè)習(xí)慣幫我提前發(fā)現(xiàn)了很多問(wèn)題比如 BAR 大小聲明錯(cuò)誤、鏈路降速、MSI 配置不對(duì)等?;ㄊ昼娮鲞@個(gè)檢查比后面花幾個(gè)小時(shí)排查要?jiǎng)澦愕枚唷?duì)于 FPGA 開(kāi)發(fā)者來(lái)說(shuō)配置空間和 BAR 的規(guī)劃應(yīng)該在設(shè)計(jì)初期就確定好而不是等到調(diào)試時(shí)再改。BAR 的大小、類型、數(shù)量Class Code 的選擇MSI-X 向量的數(shù)量這些都會(huì)影響后續(xù)的驅(qū)動(dòng)開(kāi)發(fā)和系統(tǒng)集成。前期多花點(diǎn)時(shí)間規(guī)劃后期少踩很多坑。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
欧美天堂在线| 亚洲无码国产探花在线观看| 大黄片做爱的大的| 黄色av播放免不| 国产一区二区精品久久99| 午夜精品久久久99| 最新三级网址| 超碰视97中文| 一级免费啪啪片| 91 综合网| 丁香九月激情| 一级婬片120分钟试看| 嫩草伊人久久精品| 亚洲中文一区二区三区视频| 亚洲男人天堂av| 久久天天摸| www久久国产精品| 96国产污污污丝袜| 97电影院超碰| 国产精品香蕉热久久新品| 91精品国产长腿丝袜美女| 日本五十路熟女一区二区| 天天摸夜夜操视频| 亚洲激情AV| 啊啊啊草死我| 亚洲欧美一区二区不卡视频播放| 亚洲久久久久| 啊啊啊啊啊啊啊啊视频| 伊人影院中文字幕| 欧美色97| 深爱激情五月天| 日韩九九九| 欧美少妇一区二区三区| 看日韩操逼| 91美女网站| 欧美曰韩国产精品| 久热婷婷| 性色av网站| 欧美后入| 久热这里| 久啪| 性爱AV天堂| 岛国片在线观看视频亚洲| 欧美线天码中字| 猛交交| 牛牛操视频逼| 欧美成人精品欧美一级乱黄一区二…| 717影院理论午夜伦八戒| 中文不卡视频| 97精品国产精品免费观看| 99综合免费视频| www.伪伪| 二男一女成人A片| 久久婷婷成人综合色怡春院| 久草老司机| 色噜噜国产在线| 亚州AV无码国产精品| 91精品91久久久久77777俄罗斯老妇姓x| 八戒午夜福利理论片| 91超碰丝袜制服| 九九热免费国产视频婷婷伊人| 外站AV在线| 蜜桃视频啊啊啊啊| 中文熟女五十乱码在线| 粉嫩久久久久| 国产乱弄免费在线视频。| 日韩成人免费电影| 国产精品久久久三级无码| 777AV电影| 9久久精品| 超碰到97情色| AV在线播放网址| 久久久九九九九| 亚洲码和欧洲精品激情系列| 亚殴在线| 99黄页网站| 免费看污网址| 亚洲男人的天堂网| 内射黑丝袜| 天美传媒Av在线| 97超级欧美| 97超碰色屌| 国产精品女同| 91l欧美在线| 日韩视频小说在线观看| 人妻熟妇久草在线| 日韩无码人妻中字久久三区四区| 夜夜狠狠躁日日躁色视频| 美女啊啊啊啊啊啊啊| 男人的天堂亚洲| 超碰人妻在线| 香一区二区三区| 欧美九九爱| www老逼91| 亚洲 se图 欧美电影| 女人妻一区| 夜夜操91744565| 亚洲人久久久网| 2019亚洲男人天堂| 深夜国产福利| 制度丝袜99| 少妇滛荡视频| 欧美亚洲激情小说| 亚洲欧美日韩国产丝袜自拍中文| 亚洲免费97免费| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 草久久久| 国产乱子伦一区二区三区在线观看| 亚洲永久AV无码精品秋霞| 在线视频一区二区传媒| 情色五月天就去干| 2024年最新色情网站在线观看| 国产精品97超碰| 97色香蕉| 操逼啊啊啊91| 青青草自拍视频在线播放| 国产精品suv一区| 欧美天堂第二区| www男人天堂| 国产精品午夜AV完会免费| 成人麻豆av电影网站| 国产一区二区视频在线播放| 久久久久久亚洲精品中文字幕人妻| 欧美精品999| 天天肏美女| 国模不卡一本二本三电影| 午夜综合在线| 亚洲福利影院一区久久| ?亚洲伊人伊成久久人综合网| 中国一级特黄大片护士| 中文字幕五区| 91超碰丝袜制服| 国模无码人体一区二区三| 欧亚性爱视频免费看| 亚洲另类久操网| 日韩综合97P| 亚洲日韩av专区无码| 久草福利在线资源站| 色色色色色色色色色色色色色色综合| 97爱免费插| 自拍第一页| 国产成人午夜视频网址| 国产成人精品午夜福利| 久久av成人无码免费| 91狠| 亚洲丝袜在线观看| 久久精品国产96精品亚洲拳交| 国产美女高潮叫床视频| 97色涩| 干我久操| 中 文字幕一区二区三四 五 区日 日 骚| 日本三级中国三级99人妇网站| 欧美熟女少妇| av2014 日韩在线中文字幕| 伊人网免费视频| 久操综合在线| 一级毛片电影免费看| 全球成人中文在线| 91网站在线播放| 亚洲欧美日韩免费电影| 伊人久久大香线综合无码| 人人妻人人爽一区二区三区| 九九综合久久| www欧美91| 高清无码网址| 亚洲福利影院一区久久| 日少妇亚洲版| AV一区观看| 夜夜久久| 日韩一级特黄av毛片| 欧美欲色| 午夜偷拍久久熟女| 少妇久久久免费| 夜夜影视四色| 国产91丝袜 在线播放| 99色在线视频| 懂色av一区二区三区天美传媒| 国精精品无码一二三区水多多| 亚洲日本成人动漫| 日韩一级二级三级免费看完整版| 美女自卫慰黄网站免费| 97久久国产精品女不卡| 久久综合18p| 秋霞一集毛片观看| 9999久久久久| 国产97色在线| 婷婷色综合欧美日韩| 日本精品免费一区二区三区四区| 91丨人妻丨国产丨丝袜| 亚洲天堂色图| 天堂俺去俺来也www久久婷婷| 久久大香蕉手机高清视频| 色在线视频导航| 精品亚洲俞拍视频一区| 色色热| 亚洲 暴爽 AV人人爽日日碰| 亚洲一区二区 麻豆传媒| 性爱视频无打码在线观看| 国产视频小说| 亚洲激情网一二三四区| 人人艹亚洲| 天天摸天天操视频| 北京美女一区二区| 国产成人网| 91福利网在线观看| 少妇淫妇久久久久久久| 东京热精品97综合网| 国产女人成人精品视频| 少妇人妻太紧太深av| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 色婷婷一区二区三区久久午夜成人不| 中文字幕精品一区二区精| 久久精品一区一起草| 熟女丰满人妻一区| 日本精品高清一二区一本到| 偷拍偷窥与盗摄视频专区| 超碰97在线色男人??| 色五月亚洲| 日本日逼高清| 另类图片天天影视| 婷婷人妻激情| 97色涩| 爆乳免费黄网站| 激情综合网五月婷婷五月天| 久久久亚洲Av| 亚洲自拍偷拍视频在线| 色妇综合网| 精品制服美女中文一区二区三区| 91日本在线观看| 亚洲乱色熟女一区| 亚洲欧洲激情卡通另类文学四射小说网站| 亚洲成人福利电影免费| 免费看黄片现成| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 欧美白嫩女HD| 久久天天躁日日躁狠狠躁| 婷婷五月天色| 另类专区在线观看| 色9999日韩国产| 国产家庭乱伦网址| 国产精品成人无码a v毛片| 99久久99久久免费精品蜜臀| 欧美男人的天堂| 午夜福利一区二区三区四区五区色婷婷| 中文字幕日韩专区精品系列 | 日本三级精品| 欧洲精品一二三在线| 久久手机视直播| 资源在线观一 二| 大香蕉520| 强奸a片网| 色婷婷九月天天综合| 国产小黄片在线免费观看| 黄色电影在线播放综合网站| 亚洲人妻中文在线视频| 东北丰满熟女国产一区 | 91黑人无码激情在线| 99激情| 天天综合网合集91| 午夜福利在线合集| 97精选久久| 精品无码一区二区人妻久久蜜桃| 亚洲欧洲偷拍一区| 韩国女主播青草在线| 性色一线| 中文久久一区| 大乔未久88一区| 少妇特黄一区二区三区| 亚洲无码一区成人免费午夜| 精品久久久av无码免费| 2020久久免费视频| 自拍偷拍 日韩欧美| 久久免费99精品久久久久久| 小日子操bb在线看| 欧美性爱免费短视频| 青草精品视频日本久久久久网站在线| 加勒比av网| 国产精品另类一区大香蕉| 欧亚韩国999| JuliaAnnXXX888| 激情一区二区| AAAAAAAAA黄片| 九九色热| 96AV久久久| 伊人久久亚洲中文字幕不卡| 久久透逼视频| 久久久久久亚洲中文| 国产精品岛国片在线观看| 婷色五月| 69久久久久久久久久久久久| 9Ⅰ超碰| 内射夫妻三片| 天天爽人人综合免费7799| 日韩内射视频| 久久是精品| 一区二区中文| 91丨熟女丨丰满熟女| 色色五月天激情| 日本人妻一区二区| 福利操逼| 强奸乱伦AV网站| 国产日本久久免费精品| 熟女一区二区| 乱人乱色一区二区三区免费| 美女尤物人人操| 亚洲激情网| 国产十八禁视频| 中文字幕在线免费观看| 操我无码| 天堂综合| 先锋色眉乱伦资源| 久久久久久久 九九九九九九九| 思思99热| 天天拍天| 午夜爽爽爽在线观看永久入口姬片| 国产成人无码啪| 欧美精品人妻视频| 97综合激情| 久久91视频| 2011国产精品| 免费视频97| 国产乱伦一二三区| 内射老妇BBWX0C0CK| ji熟女.com| 97青青操视频| 91色花堂| 天天摸天天插天天日| 久久爱97| 婷婷精品| 久久精品一区二区| 久久久久久中文字幕中文字幕最新| 东北黄色电影| 国产在线综合网| 激情四射五月天| 99re在线视频| av凤凰久久久| 亚洲资源站| 亚洲免费看片| 丰满人妻一区二区三区四区| 国产超碰| 97伊人| 超碰人人在线| 熟女探花啪啪| 美女97超碰| 成人影院永久免费观看网址| 大香伊人在线一区| 亚洲国产ⅴ高清在线观看| 大香蕉伊人亚洲| 亚洲色婷婷久久91| 亚洲资源网| 草草网站影院白丝内射| 日韩特一级久久| aaa一级黄片| 蜜屁av| 男女打扑克高清网站| 97碰| 97看操| 日韩美女操b| 亚洲成人在线资源| 色鬼在线综合| 黄片aaaaa一区| www.成人无码| 天综合中文| 天天做天天爱夜夜爽毛片试看| 99热国产| 婷婷伊人| www久久国产精品| se,,,亚洲欧美| 91在线精品| 天天操福利视频综合网站| 伊人久久婷婷| 欧美视频一| 国外91| www.色婷婷.com| 偷拍偷窥与盗摄视频专区| 欧美人妻色| 91色婷婷综合久久中文字幕二区| 色欲久久99精品久久| 囯产乱伦一区二区三女| 天天爱天天操| 日韩资源网| 日本一区二区做爱的视频| 91精品在线播放| 午夜激情床戏激情| 日本熟妇人妻中出视频| 78超碰| 精品小视频在线| 国产成人自拍视频在线| 日本性交操一区二区不卡系列| 国产天天骚| 92人人操人人| 人人贴人人摸| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区 | 超碰97极品9| 香蕉一区二区三区在线视频| 五月激情小说| 思思在线免费视频| 69av一区二区三区| 在线视频日韩欧美国产| 麻豆国产精品午夜视频| 黄色工厂这里只有精品| 欧美亚洲成人在线一区二区三区| 久操不卡视频| 久久精品中文字幕无码l| 啊啊啊想要| 99蜜月精品久久| 大香蕉宅男伊人| 熟妇熟女亚洲天堂网| 黄色高清无码无码破解免费暗网| 麻豆视频一区二区| 亚洲性天堂| 精品久久久一本一道| 91久久堂| 超碰98综合网| 福利天堂| 欧美综合狠| s片在线观看| 国产AV人人 夜夜人人澡| 亚洲 日本 一 二 三| 另类小色呦| 亚洲最大成人a毛毛片| 日韩性爱一级片| 人人妻人人爱人人玩| 一区二区三区一亚洲中文字幕、综合区灬 | 亚洲天堂欧美| 色色毛片| 乱伦一二三| 999久久久免费精品国产牛牛| 国产精品午夜福利视频| 嗯~啊~快点 死我视频免费看网站| 五月婷婷激情综合| 天天操狠狠日夜夜干超碰撸com视频在线观看 | 美女淫穴| 亚欧免费观看视频| 超碰午夜| 人妻一二三区| 亚洲一区二区三区四区视频| 免费看久久久性性| 嗯啊不要啊在线| 嗯啊不要啊在线 | 97视频在线免费看| 自拍视频大全亚洲专媒视频/一区二区三区 | 国产日韩在线播放av| a片久久久久久久久久久久| 香伊人在线| 国产成人精品必看| 中文字幕成人理论在线| 激情丁香五月| 久久久性爱视频| 99热大香蕉伊在线| 这里都是精品| 成人小说视频在线精品欧美| 日本午夜福利影院| 欧美 亚洲 大香| 欧美中日韩XXXX| 久久发布国产伦子伦精品| 91neishe| 涩涩久久精品| 亚洲欧美97√| 日韩av免费一级电影| 日本成人A片网站| 蜜乳AV网址| 欧美日韩情色一区二区| 蜜桃丰满熟妇av无码区不卡| 亚洲激情在线| 亚洲一区二区三区不卡国产欧美| AV乱伦专区| 黄色av片三级三级三级免费看| 伊人一区二区在线播放| 日日操天天操| 97er欧美性| 男人精品区| 人人操肉肉| 色丁香五月婷婷| 久久久久9999妇女| 久久香蕉国产线看观看亚洲女人 | 狼人综合婷婷激情四射| 99re在线精品78| 91爱啪| 亚洲中文日韩欧美大香蕉视频| 日逼视频日本| WWW4虎| 91激情国产| 中文字幕日韩专区精品系列| 久久乐| 美女网站黄页| 香蕉国产精品麻豆亚洲欧美日韩 | 99色日| 日韩一级二级三级免费看完整版| 九九九热| 婷婷激情五月综合| 日韩人人精品| 亚州操逼图| 天堂日本亚洲欧美| 日韩在线电影| 国产亚洲禁久一区二区| 97er欧美性| 一二三区操逼国产91| 一类无码操逼视频| 啊啊啊啊啊在线观看网址 | 粉嫩国产精品久久久| 精品丰满熟妇人妻一区| 91成人久久 | 91欧美色| 天天肏夜夜肏| 97国产精品在线观看| 欧美不卡二区| www被窝色com| 欧美性爱三区二区| 久久久专区| 成人无码在线超碰网| 日韩紧密久久| 无码人妻精品一区二区三区99不卡| 久久成人国产| 日本熟妇精品九九| 日本999精品| 亚洲性网| av情色影音| PMv在线观看| 99热精品国产| 国产区91柔拿会所技师| 国产精品3| 亚洲精品日日夜夜52| 大白逼三四级| 亚洲1区| 高清孕妇孕交 交| 丁香六月激情综合| 九九九久久久| 3571色综合一区二区二区| 视频在线观看青青99国产| 午夜一区二区三区国产| 高清肉丝中文无码| 日韩欧美经典在线观看| 超碰九九| 久久天天摸| 91黑人狂躁丰满熟妇| 69精品少妇一区二区三区蜜桃| 婷婷情色五月天| 91午夜无码| 日本丝袜美腿人妻九九| 97人人夜夜精品视频| 久久久久久久久久久久黄色 | 国产午夜精品理论片a大结局| a级成人毛片免费视频高清| Aa东京男人的天堂| 国产做?爰片久久毛片?片美国| 九九九久久久久| 亚洲97久久精品亚洲| 大香蕉2017| 6080yy午夜理论三级一区二区三区无码| 久久五月婷| 夜夜嗨视频| 久久综合精品一区二区三区| 三上悠亚在线毛片91| 国产精品高潮久久AV| 天堂av2019| 国产精品懂色tv影视免费观看| 99久热| 亚洲无码国产探花在线观看| 91日日夜夜| 好湿好紧好爽 视频| 中国一级操逼视频| 丰满人妻-区二区三区免费看 | 天天操夜夜操| 小日子操bb在线看| 青青草一区二区高清无码视频| 日本精品不卡一二三区| 一区二区乱码福利| 99色在线| 男人的天堂在线| www.色婷婷.com| 亚洲欧洲精品视频发布| 欧美在线播放| 久久老熟女| 亚洲诱惑| 日韩精品熟妇| 青青草日本无码| 日韩免费性爱视频在线观看| 先锋色眉乱伦资源| 激情熟女12P| av天堂电影网| 久9久9久9久9久9久9| 久久仑合| 蜜奶av| 好吊色在线观看| av片在线观看免费播放| 男人a天堂手机在线版| 99e久久国产精品| 久久精品国产Aⅴ| 高清视频一区| 国产精品一区二区密臀| 蜜臀网址在线| 9久9久9久9久视频网站| 天操天操夜操夜月月年年操操| 色五月婷婷麻豆在| 日产狠狠干| 99热只有这里有精品| 亚洲人妻中文高清| 国产精品女久久久久av爽| 国产日韩手机视频在线| 女欧美一区二三区| 东北少妇高潮zzzz| 欧美久久九九| 91丨九色丨熟女高潮| 日韩中文字幕视频在线观看| 精品亚洲国产成人av网站| 91精品国产日韩欧美综合| 国产精品视频自拍在线| 欧美性生活免费网| 亚洲系列第一页| 国产极品99热在线播放69| 激情网色| 日韩av不卡在线观看| 熟女色综合久久| 久久久久国产一区二| 国产成人在线观看综合| 丁香六月激情综合| 江都AV在线| 97久久免费| 亚洲国产青青| 九九九不卡| 女人综合网| 久久久性| 欧美日韩激情无码专区| 亚洲精品国产精品乱码不99| 夜夜嗨一区二区| 久久这里精品国产99丫e6| 国产精品视频| 亚洲人精品久久久| 日韩三级av片| 精品九九九| 国产精品久久久久久无码红治院| 国产成人91一区二区三区| 性色av大全| 一区二区三区黄色片a| 欧美东京热精品A∨| av九九| 熟女中出视频| 超碰午夜| 火箭成精品视频884必出精品| 日本国产二线女色| 天天综合~91| 色色色色日本| 日本熟妇一区二区三区| 熟女一区二区三区| 三四中文字幕| 亚洲最大成人a毛毛片| 丁香五月天堂网| 天天日天天舔东京热| 自拍第一页| 日本中文字幕不卡视频| 中文字幕狠狠玩| 有码免费观看| 蜜臀AV一区二区三区| 午夜精品久久久久久久久久蜜桃 | 中文字幕在线日亚洲9| 91欧美长吊| 欧美日韩欧美| 韩日性爱av| 日韩美女久久一区二区三区| 91欧美少妇| 成人AV素股で擦久久| 国产精品97超碰| 嫩草美女久久| 嗯啊啊啊轻点视频 | 色爱国产| 色爽——AV| 国产高清午夜成人在线观看| www.色婷婷| 四虎免费视频| 韩国成人精品久久久免费看| 无码一区二区三区四区五区六区七区八区九区十区视频 | 亚洲欧美校园| 国产精品无码在线| 操B久久| 久久大黄片| 天天躁日日躁AAAXX| 中文字幕伊人| αⅴ天堂| 四季AV一区二区凹凸精品小说| 精品一区二区久久| 岛国免费黄色网址| 五月天伊人| 国产精品久久| 懂色综合久久久| 人人妻人人澡人人爽久久av| 色牛牛AV| 2020中文字幕在线| 丁香六月东京热| 青青三级视频| 国产成人bd在线观看| 日本黄色天堂| 国产精品探花在线| 久久久久深夜无码| 日本中文字幕在线视频| 玖玖综合视频| 色色婷婷五月天| 午夜传煤十二区精品| 99在线精品观看99| 日韩有码中文字幕女同性恋| 久久综合九九| 亚洲天堂2020| 99热97| 爽爽歪在线视频| 96久久久久久久| 麻豆天美国美国产AV| 精品在线蜜臀| 大香蕉十区| 欧美日日操| 另类专区加勒比| 久久精品国产亚洲AV成人直播| 亚州乱码中文字幕综合久久久| 日本 情色 1区2区3区| 婷婷丁香五月激情啪啪| 国产精品成人午夜福利| 麻豆天美国美国产| 乱伦强奸区日韩| 久久精品老司| 免费看A片毛毛片在线播| 欧美在线亚洲| 亚洲精品色| 亚欧成人综合影院| 99在线观看视频在线高清| 欧美亚洲综合色| 色就色综合| 97色操| 开心六月色| 欧美日韩一区二区三区四区蜜桃| 欧美在线啊啊啊| 亚洲综合精品国产一区| 91人妻人人澡人人爽人人精品| 国产精品成人蜜臀AV在线| 成人无码欧美一级A片狼牙直播| 91艹B视频| 搡老女人老91二区| 国产盗摄美女如厕大神作品在线观看| 色综合一本| 自拍第一页| 不卡人妻少妇精品毛片一区23区视频| 欧美美女视频| 香蕉免费一区二区三区不读 | laoshunv91| 99操99| 男人的天堂午夜av| 久久精品28| 亚洲成人色情五月天丁香花| 开心激情婷婷| 福利视频一区二区微拍| 欧美在线播放| 舔人妻中文免费视频| 91在线限制级| 色色亚洲| 色综合尤物| 波多野42部无码喷潮在线观看| 久久一二三四五六七八九区区| 国产中文大片资源中文字幕| 亚洲欧美不卡线| 骚货 中文字幕 av| 91美女色视频亚洲| 18禁超污无遮挡无码免费网| 久久久久国产亚洲一区欧美色图日韩| 久伊人网78| 夜夜综合| 久久水蜜臀亚洲AV无码精品| 久久国产视频性吧 | 亚洲AV无线| 人人操人人爽人人操人人| 97网站在线观看| 狠狠做深爱婷婷久久二区| 日本不卡三级网在线播放| 六月丁香五月婷婷| JULIA一区二区三区在线播放| 欧美91网| 精品一区二区2| 亚洲性综合| 西西美女视频网| 日本天天吊| 久久久久久欧美精品se一二三四| 国产精品com| 欧美一二三| 国产AV中文| 久极品在线观看| 四季AV一区二区凹凸精品小说| 伦伦成年午夜免费视频| 情趣丝袜无码操逼视频| 亚洲无码精品AV久久久| 欧美AB在线| 天天久久| 91精品国产一区三一| 久久日韩肥臀| 国产午夜精品一区二区三区牛牛| 亚洲色香| 校园春色中文字幕AV| 欧美少妇性乱| 91久久国产综合精品| 精品九九九九九九九九九| 试看福利| 蜜桃狠狠色伊人亚洲综合 | 97色冈| 亚洲欧美内射| 91精产一区二区三区| 熟女AV一区| 色偷综合| 97操碰| 超碰超碰超碰超碰的大鸡吧操黑丝袜 | 在线色导航| 女人喷水视频在线观看| 久久美女福利是上海美女| 欧美网站免费| 日韩欧美女优电影| 欧美性色综合网| 大香网伊人久久综合网eew| 美日韩在线不卡人妻| 97超碰色中文字幕| 黄页av| 豆花视频操逼网址| 亚洲啪啪视频一区二区| 亚洲天堂 视频你懂的| 超AV色女| 97精品在线| 99re视频这里只有精品| 午夜福利一区二区影院| 亚洲性爱无码乱伦av| 青青草视频久久| 99色婷婷中文字幕乱色| 国产国产亚洲一二三久久| 天天插网| 国产精品一二三在线看| 欧美久久九九| 免费成人在线熟妇网| 久久精品国产亚洲粉嫩| 国产亚洲精品无码三区| 欧美一级色| 超碰午夜| 亚洲综合九九| 狠狠中文字幕| 久久精品一区二区三区不卡| 91久久国产综合精品| 精品欧美乱码久| 美国人人操人人操| 日韩亚洲美州欧洲综三区一品在线| 大香蕉五月天| 亚洲成人精品久久久| 亚洲交换| 少妇一级无码精品| 毛片电影一区二区三区| 中文在线久久字幕| 欧美乱欲| 国产动漫操逼视频| 精品视频97| 999热这里只有精品| 久草视频在线视频在线视频在线观看| 一区二区三区成人高清视频| 麻豆天美电影一区二区| 51一区二区三区| www.91人妻.com| 亚洲色图激情小说| 天天综合站| 亚洲啪AⅤ永久无码| 欧美激情综合色综合啪啪五月| 台湾佬激情综合| 欧美色交| 久久AV无码网址| 极品久久久久久久久久久久久久| 色综合超碰超| 乱伦一区二区三区‘| 99re6国产精品99re在线| 亚洲无码一区成人免费午夜| 精品成人亚洲午夜电影| 九九亚洲视频| 2017av无码免费无线播| 热热色色综合| 免费人成毛片乱码| 蜜桃午夜视频一区二区 | 少妇三P| 女人香蕉久久毛毛片精品| 日本丝袜人妻内射| 久久久久久9999| 国内精品a| 色女女女导航| 久久春色| 欧洲综合视频| 国产精品人妻无码久久久老鸭窝| 91人妻精华帖| 97青娱乐超碰久久| 涩综合导航| 久久综合日韩亚洲欧美| 欧美性xxxxx狂欢| 久久久99久9| 一本色道无码DVD中文字幕| 97视频网站在线观看| 在线视频97| 精品射1999| 一区二区精品日韩欧美在线观看 | 91精品国久久久久久无码| 肉动漫无遮挡h在线观看| 97超碰色五月| 成人av在线播放| 欧美亚洲厕所精品偷拍91 | 97人人干人人操| 久久久久久人| 五月天婷婷欧美三区| 久久人妻熟女一区二区| 大香蕉碰碰| 久久综合九色综合欧洲98| 毛片视频白嫩| 国产综合在线视频网站| 97欧美色资源| 综合欧美日韩在线观看| 欧美三四五区| 超碰久久性爱| 欧美 日韩 亚洲 春色| 啊啊啊好疼| 日本黄 R色 成 人网站| 91亚洲欧洲| 免费网色网站| 精品国产www久久| 91精品久久久久| 蜜桃精品一区二区三区ww| 激情五月天插| 大香蕉狠狠爱| 久久亚洲熟妇在线视频| 夜间福利片1000无码| 婷婷人妻激情| 久久伊人在线五区| 欧美黄片欧美黄片xxx| 97免费视频在线| 97 亚洲 日韩 欧美 在线| 岛国色情视频在线观看| 日韩BBN| 日本九九久久99播| 艹比视频国产精品| 亚州色综合| 国产中文字幕曰本毛片| 日韩一性一交一A片俄罗斯| 一区超碰一区| 有码免费观看| 国产精品久久久777| 欧美日韩国产高清在线一二三区| 91伊人影视综合| 麻豆啪啪啪视频| 26uuu久久| 人妻熟女一区二区| 欧州色图区| 欧日a| 青娱乐淫乱1314| 91色伦| n1038 一二三区| 啪啪啪大香蕉| 亚洲第2页| 久久欲| 免费国产视频| 亚洲在线综合| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 加勒比久久综合网高清| 欧美男人的天堂| 亚洲日本天堂| 亚州久久9| 欧亚乱色熟一区二区三四区| 破苞ⅩXXX性无码动漫无码| 蜜臀AV秘一区翔田千里| 91日韩| 18+91网站| 91激情国产| 免费超碰97久久| 亚洲精品美女操逼| 久久超碰免费的| 久久久久久久久久久97| 亚州国产精品乱| 婷婷综合网| 欧美日韩第一页| 日本性爱不卡视频| 中文字幕精品一区二区精| 成人26uuu| 久久久久久久免费A片国产成a人亚洲精∨品无码 | 日本女厕偷拍| 亚洲操操操| 亚洲精品视频在线播放| 综合欧美日本三级| 亚洲天堂人妻熟妇视频| 久久无码成人| 日韩欧美成人性爱在线| 18禁精品网站在线看| 人妻干天天| 樱花蜜乳av| 在线岛| 亚洲成人av电影在线| 天天色天天干天天射| 亚洲第一免费视频| 日本三级网页| 日美免费黄片| 亚洲高清无码免费观看视频| 717影院理论午夜伦八戒| 国产一区二区三区影片| 五月丁香狠狠爱| 亚洲欧美精品一区天堂久久| 国产乱码久久| 亚洲精品天天影视综合网 | 久久精品一区二区三区四区五区| 一区二区视频你懂的| 欧美激色| 夜夜爽夜夜摸夜夜操免费视频| 欧美美女在线高潮999| 一本一首道人妻少妇免费久久| 免费看毛片操穴| 欧亚性爱啪啪| 怡红院一区二区熟女人妻| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 97在线视频观看免费| 亚洲综人网| 精品人妻一区二区三区鲁大师| 9精品久久| 欧美综合网站999| 国产精品剧情| 午夜激情成人在线观看| 国产精品蜜乳AV| 99热只有| 人人摸人人干| 1204人成网站色www| 91美女小视频| 日本东京热加勒比久久| 九热视频| 91热情品| 国产综合久| 91被操| 久精品无码av一区二免费国产在线观看 | 福利视频网站| 国产特级毛片AAAAAA高潮流水| 日韩精品中文字幕人妻| 人人摸人人添人人操 | 97热视频在线观看| 青娱乐妇女性生活| 国模不卡| 大稥蕉免费视频这里只有精品| 青青草中文-久久青草精品一区二区三 | 精品九九国产无码| 99热综合| 精品久久九| 欧美日韩1234| 日本人人操人人操| 色九月综合| 91老司机精品| 蜜桃视频成a人v在线| 女同亚洲欧美一二三区久久电影| 天天欧美色| 91模特在线观看| 高潮毛片无遮挡高清免费| 久久五月份| 亚洲女人毛茸茸91| 中文?日韩?免费?精品| 国产高潮AA片免费看| 久久久艹艹艹| 国产尤物在线三区| 强奸国产精品视频| 91亚·色| 午夜操一视频一区| 青椒国产97在线熟女| 男女打扑克高清网站| 九久久精品| 日日日日做夜夜夜夜无码| 国产精品青青草| 欧美宗合色| 久久婷婷综合国际产色怕| 中文字幕少妇色| 人妻丝袜美腿中文字幕| 亚洲精品久久久久久久蜜桃臀| 伊人天堂在线| 亚洲中文丝袜美腿诱惑字幕| 国产毛片在线| 中文字幕97色| 国产婷婷综合在线观看| 精品少妇后入一区二区三区四区人妻巨乳| www狠狠| 久久精品欧美一区蜜桃| 在线日韩精品一区二区三区| 男女性感激情网站| 丰满人妻一区二区三区在线| 久久粉色| 麻豆国产96在线| 超碰综合色| 老熟女搡BBBB搡BBBB视频| 蜜臀精品1区2区| 五月天人妻综合| 日本人人操人人操| 精品一区99999| 亚洲人妻中文高清| 天天大干大香蕉| 熟女精品va中文字幕| 亚洲91色在线| 夜夜草我| 97久久精品国产| 翔田千里AⅤHD无码| 97色视频在线| 国产一级137片内射麻豆| 美日韩在线不卡人妻| 欧美夜夜| 97精品一二区| 精品无码秘 人妻一区二区| 国产日本熟女顶级一区二区三区视频| 欧亚揄拍偷拍精品视频| 日韩黄色一区二区三区| 国产Aα| 亚洲第91页| 2020中文在线一区二区三区| 精品中文日韩字幕视频| 日韩成人精品视频自拍| 热热色国产一二区AV| 色九区| 国产免费一区2区3区| 有码人妻系列| 色色网91| 偷拍综合亚洲| 性爱av在线免费观看| 人人操人人摸超碰| 欧美少妇熟女| 人人妻碰人人免费| 蜜臀一二三| 中文字幕成人| 91丨国产丨白浆秘 洗澡动漫| 日韩啪啪啪啪啪| 亚洲国产精品无码AV久久| 91精品综合久久久久久五月丁香| 午夜操逼不卡| 久久久久久少妇| 99视频只有精品| 国产黄色剧情影片麻豆免费播放| 午夜福利成人免费视频| 色97干| 美女淫穴| 国产精品成人蜜臀AV在线| 亚洲av资源| 欧美久久婷婷| 99精品久久久久久久婷婷蜜桃| 欧美人妻久久精品二区三区| 熟女精品一区二区在线观看| 国产精品一级片在线看| 久久超碰天天| 久久女人视频| 8050午夜少妇无码| 男女一进一出视频久久| 热久久九九热| www色色com| 黄色视频60分钟| 亚洲色婷婷综合久久久久中文| 欧美成va视频网站| 日韩激情电影中文字幕| 久久禁| 91色黑人少妇| 91精品无码人妻系列| 成人五月天丁香激情综合| 女上位精品在线| 操B久久| 艹我哪美一区无码| 中日韩熟女| 97超碰磁| 国产精品久久久久婷婷二区次| 女同在线视频一区| 国产偷拍自拍在线视频| 精品少妇999| 色路综合|