欧美成人午夜精品久久久,国产?V天堂一区二区三区,欧美精品va在线观看,亚洲一区二区三区免费在线观看,av无码精品一区二区久久,欧美性爱视频不卡一区三区,欧美乱人伦视频在线观看,国产一级牲交高潮

ARTICLE DETAIL

資訊詳情

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

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

PCIe配置空間與BAR空間詳解:從枚舉到FPGA實戰(zhàn)調試 PCIe 這玩意兒剛接觸的時候最容易讓人懵圈的不是那些高速信號、鏈路訓練反而是軟件層面那兩個看起來平平無奇的東西配置空間和 BAR 空間。我見過不少做 FPGA 的兄弟邏輯寫得飛起DMA 也能跑通但一到主機識別不到設備、或者 BAR 地址映射錯亂就抓瞎了。問題往往就出在對這兩個空間的機制理解得不夠透。這篇就專門把配置空間和 BAR 空間掰開揉碎講清楚它們各自裝了什么、為什么這么設計、實際調試中怎么用以及那些文檔里不會寫的坑。1. 為什么 PCIe 需要配置空間和 BAR 這兩套地址體系要理解配置空間和 BAR得先回到 PCIe 設計的一個根本矛盾上。主機 CPU 訪問內存是按物理地址走的而 PCIe 設備自己內部也有一堆寄存器、緩沖區(qū)、控制邏輯這些東西也需要被 CPU 訪問。問題是設備插到哪個槽位、系統(tǒng)里掛了多少設備這些在開機之前都是未知的。你不可能給每個設備預先分配一段固定的物理地址那樣地址空間早就沖突了。所以 PCIe 采用了一套先枚舉、后分配的機制。配置空間就是設備的身份證加簡歷里面記錄了廠商 ID、設備 ID、類型、需要多大地址空間等固定信息。主機在枚舉階段掃描總線讀每個設備的配置空間搞清楚你是誰、你要多少資源然后統(tǒng)一分配地址。BAR 空間則是設備向主機申請的地盤主機分配好地址后把基地址寫回 BAR 寄存器設備就知道哦原來我的寄存器在主機眼里是這個地址。這套機制的核心價值在于地址無關性。設備不需要知道自己會被映射到哪個地址它只需要聲明我需要 4KB 的寄存器空間和我需要 16MB 的顯存空間剩下的交給主機。這也是為什么同一塊 FPGA 板卡插到不同主板上都能正常工作因為地址是動態(tài)分配的。從拓撲結構上看PCIe 是一棵樹根復合體Root Complex是根下面掛交換機Switch和端點設備Endpoint。配置空間和 BAR 的分配是沿著這棵樹逐級進行的。每個橋設備包括交換機端口也有自己的配置空間負責管理下游總線的地址窗口。理解這個層級關系對后面排查 BAR 分配失敗非常關鍵。很多人把配置空間和 BAR 空間混為一談其實它們是兩個完全不同的地址域。配置空間通過 CFG 事務訪問走的是獨立的配置讀寫通道BAR 空間則是通過 MEM 或 IO 事務訪問走的是正常的內存映射通道。這個區(qū)別在調試時非常重要。2. 配置空間里到底裝了哪些東西配置空間是 PCIe 設備的標準寄存器區(qū)域規(guī)范定義每個功能Function必須有至少 256 字節(jié)的配置空間PCIe 還擴展到了 4KB。這 4KB 不是隨便堆的而是按固定偏移劃分成一個個有明確用途的字段。理解這些字段的布局是讀懂枚舉日志和排查識別問題的前提。2.1 前 64 字節(jié)設備身份與命令控制配置空間的前 64 字節(jié)是所有 PCIe 設備都必須實現(xiàn)的這部分叫 Type 0 頭對于端點設備或 Type 1 頭對于橋設備。里面最關鍵的幾個字段Vendor ID 和 Device ID偏移 0x00 和 0x02廠商 ID 由 PCI-SIG 統(tǒng)一分配設備 ID 由廠商自己定義。主機枚舉時第一件事就是讀這兩個值如果是 0xFFFF說明這個位置沒有設備或者設備沒準備好。Command 寄存器偏移 0x04控制設備是否響應 MEM 訪問、IO 訪問、總線主控等。很多新手遇到設備能識別但訪問不了 BAR的問題十有八九是 Command 寄存器里的 Memory Space Enable 位沒置起來。Status 寄存器偏移 0x06反映設備狀態(tài)比如是否支持能力列表、是否有錯誤等。Revision ID 和 Class Code偏移 0x08 和 0x09Revision 是版本號Class Code 標識設備類型比如 0x020000 是以太網(wǎng)控制器0x010802 是 NVMe 存儲控制器。操作系統(tǒng)就是靠 Class Code 來加載對應驅動的。Header Type偏移 0x0E標識這是 Type 0 還是 Type 1 頭以及是否是多功能設備。BAR0 到 BAR5偏移 0x10 到 0x24六個基地址寄存器這是配置空間和 BAR 空間的交匯點后面單獨展開講。Capabilities Pointer偏移 0x34指向能力列表的偏移PCIe 的各種高級功能都掛在能力列表里。我實際調試中遇到最多的情況是FPGA 加載了錯誤的比特流Vendor ID 和 Device ID 讀出來是默認值或者全 F主機直接判定為無效設備。所以每次上電先確認這兩個 ID 是否正確是最基本的排查動作。2.2 能力列表PCIe 的高級功能入口從偏移 0x34 開始配置空間里掛了一條鏈表叫能力列表Capability List。每個能力項都有一個 8 位的 Capability ID 和一個指向下一項的指針。PCIe 設備必須實現(xiàn)的能力包括Power Management CapabilityID 0x01電源管理相關控制設備在不同電源狀態(tài)間切換。MSI CapabilityID 0x05消息信號中斷替代傳統(tǒng)的 INTx 中斷?,F(xiàn)代 PCIe 設備基本都用 MSI 或 MSI-X。PCI Express CapabilityID 0x10這是 PCIe 特有的包含設備類型、鏈路狀態(tài)、鏈路能力等信息。調試鏈路降速、降寬問題時就是讀這里的 Link Status 寄存器。MSI-X CapabilityID 0x11支持更多中斷向量NVMe 和高速網(wǎng)卡常用。能力列表的遍歷方式是從 Capabilities Pointer 開始讀第一個能力的 ID 和 Next Pointer然后順著指針一直走直到 Next Pointer 為 0。這個遍歷邏輯在寫驅動或者調試工具時經(jīng)常用到。2.3 擴展配置空間4KB 里的后半部分PCIe 把配置空間從 256 字節(jié)擴展到了 4KB前 256 字節(jié)保持和 PCI 兼容后面的 3.75KB 是 PCIe 擴展配置空間。這里最重要的是擴展能力列表Extended Capability List從偏移 0x100 開始每個擴展能力有 16 位的 ID。常見的擴展能力包括Advanced Error ReportingAER高級錯誤報告能精確報告是哪種錯誤、發(fā)生在哪個層級。排查掉卡、鏈路錯誤時必看。Secondary PCI Express Extended Capability包含鏈路均衡相關的寄存器調試鏈路穩(wěn)定性時用得到。SR-IOV Capability單根 IO 虛擬化網(wǎng)卡和 FPGA 加速卡常用。TPHTLP Processing Hints提示 TLP 的處理方式對性能優(yōu)化有幫助。訪問擴展配置空間需要用 PCIe 的配置事務傳統(tǒng)的 CF8/CFC 端口只能訪問前 256 字節(jié)。在 Linux 下可以用lspci -vvv看到擴展能力的詳細信息或者用setpci直接讀寫。3. BAR 空間設備向主機申請的地址地盤BAR 是 Base Address Register 的縮寫直譯就是基地址寄存器。它位于配置空間里但它的作用遠不止存一個地址這么簡單。BAR 是設備和主機之間關于地址空間的一份合同設備通過 BAR 聲明自己需要多大的空間、是什么類型的空間主機通過 BAR 告訴設備你的空間被映射到了這個地址。3.1 BAR 的探測機制寫全 1 再讀回BAR 的探測機制是 PCIe 里一個非常巧妙的設計。主機在枚舉時并不知道設備需要多大空間它的做法是向 BAR 寫入全 10xFFFFFFFF。讀回 BAR 的值。讀回的值中低位為 0 的位數(shù)就代表了空間大小的對齊要求。舉個例子如果一個 BAR 讀回來是 0xFFFFF000說明低 12 位是 0設備需要 4KB 的空間。如果讀回來是 0xFF000000說明低 24 位是 0需要 16MB 空間。這個機制的好處是設備不需要額外的寄存器來聲明大小BAR 自己就能表達。這里有個細節(jié)容易踩坑BAR 的最低位表示空間類型。bit 0 為 1 表示 IO 空間為 0 表示 MEM 空間。MEM 空間里 bit 1 和 bit 2 表示是否支持 64 位地址和是否可預取。所以實際計算大小時要把這些控制位排除掉。比如一個 64 位 MEM BAR低 4 位是控制位從 bit 4 開始才是地址對齊信息。寫全 1 探測 BAR 大小時一定要先保存原來的值探測完再恢復。有些設備的 BAR 在探測過程中如果被破壞可能導致設備進入異常狀態(tài)。雖然規(guī)范說這是安全的但實際硬件實現(xiàn)千奇百怪謹慎為上。3.2 MEM BAR 和 IO BAR 的區(qū)別與選擇PCIe 支持兩種 BAR 類型MEM BAR 和 IO BAR。MEM BAR 映射到系統(tǒng)的內存地址空間CPU 可以用普通的 load/store 指令訪問IO BAR 映射到 IO 地址空間需要專門的 IN/OUT 指令訪問。現(xiàn)代 PCIe 設備幾乎都用 MEM BAR原因很簡單IO 空間只有 64KB資源緊張而且訪問效率低。MEM 空間可以很大支持 64 位地址訪問方式統(tǒng)一。PCIe 規(guī)范雖然保留了 IO 事務但明確不推薦新設計使用。不過在實際項目中有些老舊的 FPGA 設計或者兼容性要求可能還會實現(xiàn) IO BAR。我的建議是除非有明確的兼容性需求否則一律用 MEM BAR而且優(yōu)先用 64 位 BAR。MEM BAR 還有一個屬性叫可預取Prefetchable。如果 BAR 聲明為可預取主機可以把它映射到帶緩存的內存區(qū)域CPU 讀取時可以利用緩存提高性能。但可預取的前提是讀操作沒有副作用讀和寫之間沒有嚴格的順序依賴。對于 FIFO、狀態(tài)寄存器這類有副作用的地址絕對不能聲明為可預取否則會出現(xiàn)讀一次數(shù)據(jù)就丟一次的問題。3.3 64 位 BAR 的配對使用一個 64 位 BAR 需要占用兩個連續(xù)的 BAR 位置。比如 BAR0 和 BAR1 組成一個 64 位 BARBAR0 存低 32 位BAR1 存高 32 位。BAR0 的 bit 2 置 1 表示這是 64 位 BAR此時 BAR1 不再是一個獨立的 BAR而是作為高 32 位地址寄存器。這個配對關系在寫驅動和做地址映射時特別容易搞錯。我見過有同事在設備樹里只寫了 BAR0 的地址結果高 32 位沒配訪問直接飛到錯誤的內存區(qū)域系統(tǒng)當場掛掉。正確的做法是先讀 BAR0 判斷 bit 2 是否為 1如果是說明是 64 位 BAR需要同時處理 BAR0 和 BAR1。對于 FPGA 開發(fā)者來說在 IP 核里配置 BAR 時也要注意這個配對。Xilinx 的 XDMA IP 和 Intel 的 PCIe Hard IP 都有 BAR 配置選項選 64 位 BAR 時它會自動占用兩個 BAR 編號。4. 從枚舉到映射配置空間和 BAR 是怎么被主機處理的理解了配置空間和 BAR 各自的內容接下來要把它們串起來看看主機從上電到設備可用到底經(jīng)歷了什么。這個過程叫枚舉Enumeration是 PCIe 系統(tǒng)啟動的核心流程。4.1 枚舉的完整流程枚舉是從根復合體開始沿著 PCIe 樹逐級掃描的過程。大致步驟如下掃描總線 0根復合體首先掃描自己下面的總線 0讀取每個可能的設備號0 到 31和功能號0 到 7的配置空間。讀 Vendor ID如果讀回來的 Vendor ID 是 0xFFFF說明這個位置沒有設備跳過。如果是有效值說明發(fā)現(xiàn)了一個設備。判斷設備類型讀 Header Type如果是 Type 1說明是橋設備需要繼續(xù)掃描它下面的總線如果是 Type 0說明是端點設備。分配總線號對于橋設備主機分配一個總線號范圍給它下面的子樹。探測 BAR 大小對每個端點設備寫全 1 探測每個 BAR 需要多大空間。分配地址主機根據(jù)所有設備的需求統(tǒng)一分配 MEM 和 IO 地址空間把基地址寫回 BAR。使能設備設置 Command 寄存器使能 MEM 訪問、IO 訪問和總線主控。配置中斷分配中斷號配置 MSI/MSI-X。加載驅動操作系統(tǒng)根據(jù) Class Code 和 Vendor/Device ID 匹配驅動。這個過程在 Linux 下可以用lspci -vvv看到結果在 Windows 下可以用設備管理器查看資源分配情況。調試時如果設備沒被識別就要順著這個流程一步步查是 Vendor ID 沒讀到還是 BAR 分配失敗還是 Command 寄存器沒使能。4.2 地址窗口與橋的轉發(fā)規(guī)則PCIe 樹里的每個橋設備都有三個地址窗口寄存器Memory Base/Limit、Prefetchable Memory Base/Limit、IO Base/Limit。這些寄存器定義了橋下面子樹使用的地址范圍。當 CPU 發(fā)起一個內存訪問時根復合體首先判斷這個地址落在哪個橋的窗口里然后把事務轉發(fā)給對應的橋。橋再往下判斷直到到達目標設備。如果地址不在任何窗口里事務就會被丟棄或者報錯。這個機制解釋了為什么 BAR 分配失敗會導致設備完全無法訪問。如果主機沒有正確配置橋的地址窗口即使設備的 BAR 被分配了地址事務也到不了設備。我在調試一塊多級交換機的板卡時就遇到過交換機端口的 Memory Limit 設小了導致下游設備的 BAR 地址超出了窗口范圍設備能識別但訪問就報錯。排查這類問題時可以用lspci -vvv查看每個橋的窗口配置對比設備的 BAR 地址是否落在窗口內。也可以用setpci手動調整窗口寄存器驗證。4.3 Linux 下的資源分配與 sysfs 接口Linux 內核在啟動時會做一次完整的 PCIe 枚舉分配資源。如果 BIOS 已經(jīng)分配好了內核一般會沿用 BIOS 的分配結果除非有沖突或者用pcirealloc參數(shù)強制重新分配。在 Linux 下每個 PCIe 設備在/sys/bus/pci/devices/下有一個目錄目錄名是domain:bus:device.function的格式。這個目錄里有很多有用的文件config配置空間的二進制內容可以用hexdump查看。resource0、resource1等BAR 空間的內存映射文件可以用mmap映射到用戶空間直接訪問。enable寫入 1 使能設備。driver指向當前綁定的驅動。對于 FPGA 開發(fā)者來說resource0特別有用。你可以寫一個簡單的用戶態(tài)程序mmap這個文件就能直接讀寫 FPGA 的寄存器不需要寫內核驅動。這在調試階段非常方便。# 查看設備的 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 開發(fā)中配置空間與 BAR 的實戰(zhàn)要點對于做 FPGA 的工程師來說配置空間和 BAR 不是抽象概念而是每天都要打交道的實際配置。無論是用 Xilinx 的 XDMA、Intel 的 PCIe Hard IP還是自己寫 PCIe 核BAR 的規(guī)劃都直接影響系統(tǒng)的易用性和性能。5.1 BAR 規(guī)劃把什么放進哪個 BAR一個 PCIe 設備最多有 6 個 BAR怎么分配這些 BAR 是有講究的。常見的規(guī)劃方式BAR0控制寄存器和狀態(tài)寄存器通常幾 KB 到幾十 KB。這部分訪問頻繁但數(shù)據(jù)量小。BAR1DMA 描述符區(qū)域或者大塊數(shù)據(jù)緩沖區(qū)可能需要 MB 級別。BAR2/BAR3如果做成 64 位 BAR和 BAR0/BAR1 配對使用。BAR4/BAR5預留給擴展功能或者第二個功能。我的一般原則是把訪問頻繁的小寄存器放在一個 BAR 里把大塊數(shù)據(jù)緩沖區(qū)單獨放一個 BAR。這樣做的好處是小 BAR 可以映射成非預取的保證讀寫順序大 BAR 可以映射成預取的利用緩存提高吞吐。另外BAR 的大小要按 2 的冪次對齊。如果你聲明需要 3KB實際會占用 4KB。所以規(guī)劃時要留余量但也不要浪費太多地址空間。在資源緊張的系統(tǒng)里BAR 大小直接影響能不能枚舉成功。5.2 配置空間在 IP 核里的實現(xiàn)用 Xilinx XDMA IP 時配置空間的大部分字段是 IP 自動生成的但有幾個地方需要手動配置Vendor ID 和 Device ID在 IP 配置界面里填寫或者通過參數(shù)傳遞。Class Code決定操作系統(tǒng)加載哪個驅動比如 0x020000 是以太網(wǎng)0x010802 是 NVMe。BAR 配置選擇每個 BAR 的大小和類型XDMA 支持配置 BAR 為 MEM 或 IO32 位或 64 位。MSI/MSI-X選擇中斷方式XDMA 支持 MSI-X可以配置中斷向量數(shù)量。Intel 的 PCIe Hard IP 類似但配置方式不同。它的配置空間是通過 Avalon-MM 接口暴露的可以在邏輯里動態(tài)修改某些字段。這在需要動態(tài)改變設備 ID 或者 BAR 大小的場景下很有用。自己寫 PCIe 核的話配置空間的實現(xiàn)就更靈活了但也更容易出錯。最常見的問題是 BAR 大小聲明和實際實現(xiàn)不匹配導致主機分配了地址但設備不響應。我的經(jīng)驗是配置空間里的 BAR 大小一定要和邏輯里地址譯碼的范圍嚴格一致差一個字節(jié)都可能出問題。5.3 DMA 與 BAR 的配合DMA 是 FPGA 加速卡的核心功能而 DMA 和 BAR 的配合有幾個關鍵點DMA 描述符的存放位置描述符可以放在 BAR 空間里由主機寫入FPGA 讀取也可以放在主機內存里FPGA 通過 DMA 讀取。前者簡單后者靈活。地址轉換FPGA 發(fā)出的 DMA 讀寫請求地址是主機物理地址。如果 FPGA 邏輯里用的是虛擬地址或者偏移地址需要做轉換。XDMA IP 提供了地址轉換功能可以配置 AXI 地址到 PCIe 地址的映射。BAR 空間作為 DMA 目標主機可以通過 BAR 空間直接讀寫 FPGA 的緩沖區(qū)這種方式叫 PIOProgrammed IO適合小數(shù)據(jù)量。大數(shù)據(jù)量還是要用 DMA。我做過一個高速 ADC 采集的項目ADC 數(shù)據(jù)先寫入 FPGA 的 DDR然后通過 DMA 搬到主機內存。BAR 空間里放的是控制寄存器和 DMA 描述符數(shù)據(jù)緩沖區(qū)不映射到 BAR而是通過 DMA 直接訪問主機內存。這樣設計的好處是 BAR 空間很小枚舉容易而且 DMA 帶寬不受 BAR 大小限制。5.4 調試 BAR 訪問問題的排查鏈路BAR 訪問出問題是最常見的 PCIe 調試場景。我總結了一個排查鏈路按順序走基本能定位問題確認設備被識別lspci能不能看到設備Vendor ID 和 Device ID 對不對確認 BAR 被分配lspci -vvv看 Region 字段有沒有Memory at xxxx的分配結果如果顯示Region 0: Memory at unassigned說明 BAR 沒分配成功。確認 Command 寄存器setpci -s xx:xx.x 0x04.w讀出來Memory Space Enable 位bit 1是不是 1確認橋窗口如果設備掛在橋下面檢查橋的 Memory Base/Limit 是否覆蓋了設備的 BAR 地址。確認地址譯碼用setpci往 BAR 地址寫一個值再讀回來看是否一致。如果不一致說明地址譯碼有問題。確認 FPGA 邏輯如果前面都正常但讀寫數(shù)據(jù)不對就要查 FPGA 邏輯里的地址譯碼和寄存器實現(xiàn)。這個鏈路我用了很多次大部分 BAR 問題都能在前三步定位。第四步和第五步涉及橋和地址譯碼稍微復雜一些但只要有l(wèi)spci和setpci兩個工具也能查清楚。有一個坑特別隱蔽有些主板的 BIOS 會把 BAR 分配到一個和系統(tǒng)內存重疊的地址導致訪問 BAR 時實際訪問到了內存。這種情況在lspci -vvv里看不出來需要用cat /proc/iomem查看系統(tǒng)的內存映射確認 BAR 地址沒有落在 System RAM 區(qū)域。6. 那些文檔里不會寫的踩坑經(jīng)驗配置空間和 BAR 的規(guī)范寫得很清楚但實際硬件和軟件實現(xiàn)里有很多規(guī)范沒覆蓋的細節(jié)。這些細節(jié)往往就是調試時卡住的地方。6.1 BAR 大小探測的邊界情況寫全 1 探測 BAR 大小時有一個邊界情況如果設備實現(xiàn)的 BAR 大小是 0也就是不需要任何地址空間寫全 1 讀回來還是全 1。這時候主機應該跳過這個 BAR不分配地址。但有些主機會誤判給一個大小為 0 的 BAR 分配地址導致后續(xù) BAR 分配錯位。還有一種情況是 BAR 大小不是 2 的冪次。規(guī)范要求 BAR 大小必須是 2 的冪次但有些 FPGA 設計為了省地址空間聲明了一個非 2 冪次的大小。這種行為在枚舉時可能被主機糾正也可能導致分配失敗。我的建議是老老實實按 2 的冪次來別耍小聰明。6.2 熱插拔場景下的 BAR 重新分配PCIe 熱插拔是一個復雜的功能涉及到 BAR 的重新分配。當設備被熱插入時主機需要重新枚舉這條總線給新設備分配 BAR 地址。如果之前的地址空間不夠可能還需要調整已有設備的 BAR 分配。這個過程在 Linux 下由pciehp驅動處理。實際使用中熱插拔失敗最常見的原因是地址空間不足。特別是 32 位 MEM 空間在很多系統(tǒng)上已經(jīng)很緊張了。如果新設備需要大塊 32 位 BAR很可能分配失敗。解決辦法是盡量用 64 位 BAR把地址需求放到 64 位空間里。另外熱插拔時橋窗口的配置也需要更新。如果橋的 Memory Limit 沒有擴展到覆蓋新設備的 BAR 地址設備雖然被識別但訪問會失敗。這個問題在調試熱插拔時經(jīng)常遇到需要手動或者通過腳本調整橋窗口。6.3 鏈路降速與 BAR 訪問的關系PCIe 鏈路降速比如從 Gen3 降到 Gen1或者降寬從 x4 降到 x1通常被認為是物理層問題但實際上它也會影響 BAR 訪問。鏈路降速后配置空間和 BAR 的訪問延遲會增加如果軟件里有超時機制可能會誤判為設備無響應。更嚴重的是鏈路不穩(wěn)定可能導致配置空間讀取錯誤比如 Vendor ID 讀出來是 0xFFFF 或者隨機值。這種情況下主機會認為設備不存在或者設備故障直接跳過枚舉。排查這類問題時不能只看 BAR 分配還要檢查鏈路狀態(tài)寄存器確認鏈路是否穩(wěn)定在預期的速度和寬度。AER高級錯誤報告是排查這類問題的利器。使能 AER 后任何鏈路錯誤都會被記錄到 AER 寄存器里包括錯誤類型、發(fā)生時間、涉及的 TLP 等。在 Linux 下可以用dmesg看到 AER 報告的錯誤信息。6.4 不同操作系統(tǒng)對 BAR 分配的差異Windows 和 Linux 在 BAR 分配策略上有一些差異這些差異在跨平臺開發(fā)時需要注意Windows對 32 位 BAR 的分配比較保守如果 32 位空間不足可能會拒絕分配導致設備無法啟動。Windows 對 64 位 BAR 的支持較好但需要設備正確聲明。Linux默認沿用 BIOS 分配如果 BIOS 分配不合理可以用pcirealloc強制重新分配。Linux 對資源不足的處理更靈活但重新分配可能導致設備編號變化。我遇到過一塊 FPGA 卡在 Windows 下 BAR 分配失敗但在 Linux 下正常。原因是 Windows 的 32 位 MEM 空間被其他設備占滿了而這塊卡的 BAR 只支持 32 位。后來把 BAR 改成 64 位Windows 下也正常了。這個案例說明BAR 的類型選擇不只是技術問題還要考慮目標操作系統(tǒng)的資源管理策略。6.5 配置空間讀寫失敗的常見原因配置空間讀寫失敗通常表現(xiàn)為讀回來全 F 或者全 0。常見原因包括設備未完成鏈路訓練鏈路還沒建立配置空間自然讀不到。等鏈路訓練完成后再讀。設備電源未就緒有些設備需要外部電源電源沒上或者時序不對配置空間不可訪問。配置事務路由錯誤總線號、設備號、功能號不對事務被路由到了錯誤的位置。設備處于復位狀態(tài)復位沒釋放設備不響應配置事務。時鐘未穩(wěn)定PCIe 參考時鐘不穩(wěn)定鏈路訓練反復失敗。排查時可以用示波器看參考時鐘和復位信號用協(xié)議分析儀抓配置事務確認事務是否到達設備。軟件層面可以用lspci -xxxx讀原始配置空間看是否全 F。7. 從理解到落地把配置空間和 BAR 用起來講了這么多原理和坑最后回到實際使用上。配置空間和 BAR 不是只用來理解的它們在日常開發(fā)和調試中有一堆實際用途。7.1 用 sysfs 和工具快速查看設備信息Linux 下查看 PCIe 設備信息最常用的工具是lspci配合不同的參數(shù)可以看到不同層次的信息命令作用lspci列出所有設備的基本信息lspci -t以樹形顯示拓撲結構lspci -vvv顯示詳細配置空間信息包括 BAR、能力列表、鏈路狀態(tài)lspci -xxxx以十六進制顯示完整配置空間setpci讀寫配置空間寄存器lspci -vvv -s 01:00.0查看指定設備的詳細信息除了lspci/sys/bus/pci/devices/下的文件系統(tǒng)接口也很重要。每個設備的config文件是配置空間的二進制鏡像resource文件是 BAR 空間的映射信息。寫腳本自動化調試時直接讀這些文件比解析lspci輸出更可靠。7.2 用戶態(tài)直接訪問 BAR 空間對于 FPGA 調試用戶態(tài)直接訪問 BAR 空間是最方便的方式?;静襟E找到設備的 sysfs 路徑比如/sys/bus/pci/devices/0000:01:00.0/。打開resource0文件用mmap映射到用戶空間。通過映射后的指針直接讀寫寄存器。#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; } // 假設 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; }這段代碼的關鍵點是O_SYNC標志和volatile指針。O_SYNC保證寫操作立即生效不會被緩存volatile防止編譯器優(yōu)化掉看似冗余的讀寫。對于有副作用的寄存器這兩個都很重要。7.3 在 FPGA 邏輯里實現(xiàn)配置空間和 BAR如果自己寫 PCIe 邏輯配置空間的實現(xiàn)需要覆蓋規(guī)范要求的字段。最小實現(xiàn)包括Vendor ID、Device ID、Revision ID、Class CodeHeader Type、Cache Line Size、Latency TimerBAR0 到 BAR5Command 和 Status 寄存器Capabilities Pointer 和能力列表BAR 的實現(xiàn)需要做地址譯碼當 PCIe 事務的地址落在 BAR 范圍內時把事務轉發(fā)到內部邏輯否則返回 URUnsupported Request響應。地址譯碼的邏輯不復雜但要注意幾點BAR 的地址范圍要和配置空間里聲明的大小一致。64 位 BAR 要同時比較高 32 位和低 32 位地址。預取 BAR 和非預取 BAR 的處理方式不同預取 BAR 可以接受更大的突發(fā)長度。地址譯碼的時序要滿足 PCIe 的延遲要求不能引入太多組合邏輯。7.4 配置空間和 BAR 在虛擬化場景下的變化在虛擬化環(huán)境里配置空間和 BAR 的處理會多一層。虛擬機監(jiān)控器Hypervisor需要把物理設備的配置空間和 BAR 空間映射到虛擬機里讓虛擬機里的操作系統(tǒng)以為自己在直接訪問硬件。這個映射過程涉及到地址轉換虛擬機里的 BAR 地址是虛擬地址Hypervisor 需要把它轉換成物理地址。如果設備支持 SR-IOV每個虛擬功能VF都有自己的配置空間和 BARHypervisor 需要管理這些資源的分配。在虛擬化場景下調試 PCIe 問題要注意區(qū)分是物理設備的問題還是虛擬化層的問題??梢韵仍谒拗鳈C上確認設備正常再在虛擬機里排查。lspci在虛擬機里看到的設備信息可能和宿主機不同因為 Hypervisor 可能修改了某些字段。8. 寫在最后配置空間和 BAR 空間是 PCIe 軟件接口的基石理解了它們就理解了 PCIe 設備是怎么被主機發(fā)現(xiàn)、配置和訪問的。我剛開始接觸 PCIe 的時候也覺得這些東西瑣碎不如高速信號和 DMA 來得刺激。但后來發(fā)現(xiàn)大部分調試問題都出在這些瑣碎的地方。Vendor ID 讀不對、BAR 分配失敗、Command 寄存器沒使能這些問題看起來簡單但如果沒有系統(tǒng)的理解排查起來就是碰運氣。實際項目中我養(yǎng)成了一個習慣拿到一塊新的 PCIe 板卡先不急著跑功能而是用lspci -vvv把配置空間完整看一遍確認 BAR 分配、鏈路狀態(tài)、能力列表都正常。這個習慣幫我提前發(fā)現(xiàn)了很多問題比如 BAR 大小聲明錯誤、鏈路降速、MSI 配置不對等?;ㄊ昼娮鲞@個檢查比后面花幾個小時排查要劃算得多。對于 FPGA 開發(fā)者來說配置空間和 BAR 的規(guī)劃應該在設計初期就確定好而不是等到調試時再改。BAR 的大小、類型、數(shù)量Class Code 的選擇MSI-X 向量的數(shù)量這些都會影響后續(xù)的驅動開發(fā)和系統(tǒng)集成。前期多花點時間規(guī)劃后期少踩很多坑。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
日本狠狠网| 久久久999精品| 熟女国产在线一区二区三区四区| 国产亚洲色婷婷久久99精品91| 丁香五月六月久久综合| 欧美在线看| 极品少妇XXXX精品少妇偷拍| 丁香婷婷五月天激情四射| 99这里只有免费的小视频在线观看| 亚洲精品九九| 久久综合五月天激情小说网站| 婷婷欧美激情| 久久婷婷五月天丁香| 色9999日韩国产| 骚货艹网站视频| 五月丁香六月激情综合网| 亚洲123区高清入口| 99热这里精品| 伊人久久婷婷| 五月天激情国产综合婷婷| 婷婷色成人| 五月婷婷开心色伊人| 亚洲一区二区无遮挡A片| 九色PORNY9l原创自拍| 激情久久久久久久久久| 99碰网站| 丁香婷婷久久| 婷婷六月激情| 色婷婷狠狠| 影视av久久久噜噜噜噜噜三级| 久久久精品人妻录| 青草激情综合| 亚洲熟妇无码乱子AV电影| 99久久思思| 综合亚洲色色| 五月丁香六月婷婷中文版| 深爱丁香网| 久久久99婷婷久久久久久| 超碰2021| 97色啪| 激情五月婷色| 色五月婷婷91| anquye伊人| 久久欧洲久久| 伊人在线大香蕉网| 婷婷久综合| 欧美三级A做爰在线观看| WWW.婷婷五月天.COM| 99re热免费观看视频精品| 亚洲五月婷婷在线| 五月婷婷我| 狠狠操天天操天天操| 婷婷六月丁香在线| 怡红院精品视频久久久久久久久| 婷婷五月天在线综合| 六月婷婷影院| 九九在线精品| www久| 国产精品电影| 亚洲天堂碰碰婷婷| 五月伊人网| 丁香色五月 97干| 丁香五月久久| www.五月天。com| 色五月婷婷开心| 色99综合视频| 色婷五月天| 婷婷五月激情中文字幕| 久月久在线视频| 桃色成人网| 五月婷深深爱激情网| 色婷綜合网| 婷婷五月亚洲激情| 国产综合网在线| 九九这里有精品| 99精品无码| 久久婷婷啪啪视频| 婷婷99视频在线| 久久99久久99www| 99亚洲精品视频| 九九热av| 丰满熟女人妻一区二区三| 成人免费va| 五月丁香啪啪综合| 中文AⅤ大全| 69人妻人人澡人人爽久久| 九九热99免费视频| 99爱免费视频在线观看| 成人av在线电影| 另类在线| 97在线碰| 五月六月丁香激情| 丰满老熟妇BBBBB搡BBB| 成人亚洲精品| 综合激情视频| 日韩操| 综合网五月| 久久伊人五月天| 伊人热在线大香蕉| 婷色人人狠| 色5月婷婷| 久久丝袜婷婷| 人人97操| 26uuuavcom| 开心五月深爱五月| 婷婷五月成人社区| 天天射射夜| 丁香五月激情综合| Av免费网站在线| 五月网激情| 丁香六月婷婷激情| 久久五月天激情| 六月丁香色色色| 五月天自拍视频| www.99日本| 91色色五月天| 色婷五月天亚洲| 日本久热| av色婷婷| 人人操97| 色婷婷五月在线| 伊人五月成人| 久久婷婷免费| 亚洲久久婷婷| 丁香五月婷婷色综合| 久久九九色| 玖玖综合玖玖| 噜噜色婷婷| 9国产在线视频| 手机旧版看人妻1025| 小视频一区| 97久久久| 欧洲亚洲免费视频9| 久久久激情视频| 五月丁香六月停停停| 色婷婷色五月另类综合| 这里只有精品久久| 天天婷婷综合| 性色做爰片在线观看WW| 五月婷婷丁香五月亚洲色| 999激情视频| 免费播放AV| 狠狠狠狠狠狠狠狠草| 五月天桃色深爱网| 国产精品噜噜在线视频| 99在线精品免费视频| VA婷婷| 亚洲精品影视| 婷五月天在线草| 99色在线视频| 另类图片激情五月天| 丁香五月婷婷基地| 亚洲婷婷丁香五月在线| 婷婷在线视频| 五月丁香激情在线| 五月丁香五月综合欧美| 激情久久网| 日韩视频99| 9999热免费视频视频| 色狠狠六月| 在线观看国产高清视频免费网站 | 日本久久高清| 99热最新网址| 久久激情五月网| 久久婷婷五月综合色区| 99热这里只有精品5| 噜噜五月天综合| 久久久久久性爱视频| 亚洲精品444久久久久久| 五月天激情.com| 天天婬色综合| 91久久久久久久久| 丁香婷婷五月六月天| 青青草大香| 米奇影视资源777狠狠色婷婷五月天激情网 | 久久婷婷色综合| 色色色婷| 亚洲久久婷婷丁香五月天| 日韩乱轮AV| 久久人妻高清中文| 亚洲成人网站在线观看| 色高清无码视频| 青青草青青草五月天| 婷婷色丁香六月| 六月婷婷色色色| 91狠狠综合久久久久久| 人人操人av| 丁香五月婷婷综合91| 99久在线观看| 综合六月激情婷婷| 香蕉久久国产AV一区二区| 大地9中文在线观看免费高清 | 天天操天天干天天日| 丁香五月 综合| 91人人人人人| 综合网色| 思思久久精品| 五月婷人妻| 天啪色| 99热精品在线播放| www.com五月天| 日本一道久久| 天天干,天天操,天天射| 婷婷五月天99综合网站| 亚洲99热| 伊人玖玖网| 欧美一区二区三区不卡影视| 色婷婷综合亚洲| 99色色爰| 91激情五月开心| 亚洲精品久久久久AV无码| 九九视频这里有精品| 婷婷五月综合婷婷| 婷婷丁香九月| 五月丁香婷婷婷激情爱爱| 激情五月天网站| 99热在线精品观看| 国产精品成人av在线观看春天| 亚洲第一黄网| 99久久视频| 人妻激情久久| 国产精品美女久久久久AV超清| 丁香五月婷婷视频| VfJxEwPH| 亚洲色 视频| 丁香五月性| 9999综合99综合人| 九九精品丁香花| 久热免费视频| 九九亚洲| 亚洲激情AV| 九九视屏| 日日夜夜天天| 丁香婷婷九月| 偷拍91九色| 五月天激情日色在线| 夜夜操狠狠操| 欧美激情综合色综合啪啪五月| 另类激情综合| 狠狠穞A片一區二區三區| 伊人国产婷婷五月天| 亚洲视频二区| 婷婷五月天久久久| 五月丁香婷婷色| 婷婷丁香宗合888| 丁香五月熟女| 性爱五月婷婷| 九九色院| 久/久精品99看9| BT综合在线视频观看| 久久九九囯产| 97热这里精品在线视频| 激情五月婷婷| 五月丁香婷婷AV天堂| 五月开心婷婷极品激情| 婷婷久久婷婷色五月| 日韩性视频| 大香蕉天堂| 色七七九九| 99久久玖玖| 久九九热| www,五月天com| 午夜成人AV在线| 亚洲色碰| 色五月婷婷五月天| 国产精品第一国产精品| 五月婷婷综合激情小说| 欧美碰碰| 大香蕉网站,大香蕉综合| 欧洲精品爱爱| 六月欧美综合色情| 激情五月婷婷丁香六月| 嫩草哈哈操| 美女被操一区二区| 久久婷婷综| 久久永久网址| 五月丁香六月合| 亚洲欧美另类在线23p| 26UUU精品一区二区| 激情深爱综合网| 色五月婷婷基地| 五月丁香婷婷深深爱| www.日本91| 婷婷涩五月| 直接看的av| 五月综合色| 国产毛多水多女人A片| 91紱請| 天天操天天干天天射| 91怕怕网| 99热99网| 久久久噜噜噜久久人妻| 五月天婷五月天综合网小说首页-五月天激激婷婷大综合,婷婷亚洲综合五月天小说 | 97人人看一| 色综合久久99色| 天天色天天搡| 四色五月婷婷| 思思99热| 久久久99免费视频| 五月婷婷影视| 五月丁香激情啪啪| 免费观看日韩成人av| 久久久精品AV| 日韩十国产极品久久| 日本久久性| 五月天激情小说网| 日韩精品一区二区亚洲AV观看| 99成人网一区| 另类激情综合| 免費观看aV在线网址| 久久久宗合| 先锋男人99资源| 色停停五月,在线观看| www激情| 色五月激情综合网站| 91操人视频| 色五月综合激情| 热久精品| 婷婷99视频精品| 99秘 在线| 日韩在线视频网站| 婷婷色情五月| 婷婷五月花西瓜| 天天日天天操心| 国产亚洲色婷婷久久99精品9j| 777色婷婷爱五月| jiqingliuyuetian| AV亚洲在线| 丁香婷婷激情综合五月激情| 五月丁香福利| 色五月婷婷综合在线| 深爱激情av| 五月天伊人网| 人人玩人人橾| 丁香五月伊人| 激情网战码亚洲A| 噜噜噜久久| 26uuu成人网| 五月天婷五月天综合网小说首页-五月天激激婷婷大综合,婷婷亚洲综合五月天小说 | 另类五月激情| 亚洲精品第一国产综合亚AV | 丁香五月激情综合| 色五月大| 九九成人| 久久精品系列| 九九99九九99九九99视频网| 九九大香蕉黄色影院| 五月婷婷丁香综合网| 亚洲人妻av伦理| 99久热在线精品| 99热99极品观看| 色婷婷综合丁香五月天| 第五色色色婷婷| 色五月婷婷丁香凹凸| 五月婷在线色视频| 激情色五月天| 五月天综合视频| 91婷婷视频| 99热首页在线30| 疯狂做受XXXX高潮A片动画| 婷婷综合激情五月中文字幕| 九九热精品| 成人婷婷色五月天| 亚洲综合网在线| 精品无码人妻一区| www.91五月| 婷婷丁香激情五月| 人人操91色| 人妻精品一区二区三区| 97色色婷婷五月天| 开心五月深爱五月| 天天拍夜夜爽| 99啪在线视频| 99九九久久| 99热最新| 国产精产国品一二三在观看| 亚洲精品午夜国产va久久成人| 亚洲无码AV片| 色色操| 色五月丁香总合网| 久久日婷婷| 99精品免费视频| 婷婷狠狠操| 色狠狠色| 色六月天| 中文字幕人妻在线| 婷婷五月成人| 激情综合五月婷婷六月丁香| www,久久久| 超碰99在线| 这里只有精品69| 五月婷婷综合影院| 任你爽视频| 五月丁香久久激情网| 伊人丁香五月婷婷潮吹| 夜夜撸日日操| 五月婷婷真爱激情网| 色v综合网| 九九色影院| av人人操| 另类激情五月天。| 91日综合欧美| 99热伊人| 欧美色色色色色色| 丁香欧美| 极品色丁香| 婷婷丁香大香蕉| 啪啪一区| 五月丁香婷婷六月| 婷婷 激情 五月| 久久日九九| 综合色图区| 激情婷婷五月| 婷婷开心综合人妻小说网址| 120分钟婬片免费看| 六月五月天婷婷涩播在线| 狠狠狠狠狠| 激情精品久久| 综合99久久| 婷婷五月丁香图片人人操| 婷婷五月大香蕉| 色婷婷伦理| 996精品热视频| 亚洲精品无人区| 男人天堂99| 在线观看玖玖资源免费观看| 婷婷的激情五月| 99视频91| 伊人大香久久| 天天操天天干天天射| 91久久久久久久久久久| 六月丁香激情| 五月婷婷中文| 超碰熟女拍拍| 色综合久久久久久久久五月| 亚洲色情免费网| 超碰成人在线观看| 五月丁香自拍| www.9797国产| 中文字幕婷婷在线| 激情五月瑟瑟| Av中文在线| 成人做爰高潮A片免费视频| 色吧五月| 91蜜桃婷婷狠狠久久综合9色| 天天色色天天| 婷婷五月天六点丁香五月| 六月婷伊人| 亚洲色色色色色| 1024手机在线观看看片_日韩精品| 男人的天堂av俄罗斯热| 九九热内射| 琪琪色五月婷婷老师| 久久伊人五月天| 玖玖热视频| 婷婷五月综合久久中文字幕| 欧美日韩成人免费在线| 日本久久精品18| 五月天亚洲色| 九九综舍久久| 欧美天天搞| 久久久九九九 99| 91熟妇大香蕉| 91 九色 入口| 狠狠五月激情丁香六月| 五月天久久婷婷| 色噜噜夜夜夜综合网| 五月丁香婷婷啪啪网| 国产操逼网站| www.射伊蕉婷婷| 丁香激情四射| 97色婷婷| 婷婷深爱五月天在线| 欧美色色色色色色色色色色影视| 婷婷五月天AV激情| 开心五月综合| 狠狠五月天| 丁香六月婷婷色播| 五月天婷婷视频| 天天影院色| 农村熟妇高潮精品A片| 蜜臀AV在线观看| 欧美私人家庭影院| 97丁香视频| 色婷久| 日夜操B| 精品一二三区视频立| 思思热精品免费视频| 日日噜狠狠色综合久久| a久久| 91在线日| 色五天综合| 天天综合网色欲香| 婷婷九月丁香| 日日操,夜夜爽| 99亚洲视频| 五月丁香操婷逼| 99热成人| 91久久色| 色天天综合色| 亚洲激情综合| 俺去也婷婷| 五月婷无码| 国产avapp 网| Jh7Uf088VHafNm| 九九综合| 婷婷五月丁香图片人人操| 丁香花操逼| 人妻射精AV| a久久免费视频| 九九热10| 五月婷婷婷色| 激情综合4月| 婷婷五月天狠狠搞干| 久操热| 五月丁香婷婷欧美色图视频五月丁香777电影 | 久久婷婷五月| 免费成人网在线观看| 九九蜜臀精品| 99久在线精品99re5热视频| 九九热最新| 七月激情六月婷婷综合在线播放| 色亚洲中文| 五月精品| 五月婷婷久久爱| 色噜噜狠狠色综| 婷婷五月在线播放| 青草视频在线播放| wwwss在线观看| 婷婷五月丁香六月综合网| 91超级碰碰| 婷婷玖玖五月天| 久久久精久人妻| 久久机热/这里只有精品| 依人大香蕉在钱1| 五月综合视频在线| 67194成I人在线观看线路1| 国产精品成av人在线视午夜片| www狠狠| 五月天桃色深爱网| 色婷丁香91| 青青草a在线| 性视频久久| 五月色亭丁香| 俺去啦综合网| 日本黄色三级片内射| 97自拍视频在线| 涩涩五月天| 亚洲日比视频| 天天操天天爱天天玩| 欧美成人AAA片一区国产精品| 九九久久五月天| 婷婷五月天六月丁香| 狠狠干伊人| 丁香五月色| 五月香婷婷| 精品网站:999WWW| 亚洲蜜乳AV| 天天爽天天摸| 丁香五月婷婷综合激情啪啪啪| 丁香五月婷婷色综合基地| 五月婷婷丁香六月| 色欲Av五月天| 国产成人片| 五月丁香怕怕综合| 中字幕视频在线永久在线观看免费 | 99爱爱| 色色色777| 狠狠插狠狠插| 五月天婷五月天综合网小说首页-五月天激激婷婷大综合,婷婷亚洲综合五月天小说 | 五月丁香在线观看| 亚洲 综合中文| 丁香婷婷基地| 伦乱美欧| 日日激情网| 熟妇人妻中文字幕无码老熟妇| www.激情在线| 色135综合网| 色高清无码视频| 色.五月综合网| 国产精品久久久60086| 五月婷婷 婷婷五月 一区二区 久久久| 天天操天天操| AV中文字幕夜夜操b天天摸bb| 亚洲AV色婷婷人禽五月天| 色吊丝av中文字幕| 六月婷婷av| 五月丁香久久精品在线观看| 欧美三级A做爰在线观看| 六月亚洲| 日韩AV一区二区三区| 色婷婷在线视频| 婷婷人人操| 欧美成人A片AAA片在线播放| 天天狠狠插| 欧美日韩一区二区三区四区| 九月婷婷激情| 久婷婷五月激情| 97久久婷婷色| 999婷婷综合| 青青草性爱视频| 欧美性色A片免费免费观看的 | 99re这里只有精品国产99| 久久人妻熟女一区二区| 五月丁香啪啪综合| 99热欧美在线观看| AV大片在线观看| 五月婷精品| 婷婷一本和五月丁香| 中文字幕成人日韩| 久久婷婷综合五月天| 婷婷五月开心中文字幕在线| 超碰国产AV| 性色人人爽| www天堂99| 97婷婷狠狠| 天天拍夜夜爽日日| XX久久| 免费观看全黄做爰的视频| 五月草视频| 免费国产VA国产免费| 西西4r午夜剧场| 日本精品99| 天天影视色综合网| 色色色色欧洲| 超碰色天堂| 亚洲亚洲人成综合网络| 久久婷婷五月综合激情国产 | 日韩五月婷婷久久| 五月丁香啪啪啪| 五月婷婷香| 亚洲激情高潮| 九九色影院| 亚洲 成人 电影av在线观看| 色爱综合网| 狠狠爱婷婷| 亚洲狠狠操| 五月丁香猫咪久久婷婷综合视频激情四射网入口| 欧美黄色一级| 俺去也五月| 五月丁香六月香香蕉| 99在线精品在线视频| 天天爽天天日人人爱| 91凹凸在线| 操逼五月天| 激情人妻蜜夜系列区| 天天做夜夜爽| 玖玖色综合网| 另类激情五月在线视频欧美| www.深爱激情| 国产熟女日日骚五月丁香爱| 日日干综合| 激情小说五月天社区丁香 | 99热这里只有精品22| 狠狠 婷婷| 亚洲另类在线观看| 久久久久婷婷| 色欲丁香| 91九色首页| 26.uuu丁香五月婷婷| 人碰91| 丁香六月天婷婷| 在线观看日韩12345区| 99热在线观看| 草草色情综合网| 成人在线二区| 五月刺激丁香月综合| 日本黄色一级| 伊人狼人干| 五月丁香综合精品欧美| 操精品9| 色五月天婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷 | 婷婷 激情 五月| 女人天堂av| 色黑鬼导航| 色综合天天网| 欧美综合激情五月| 天天色激情| 国产精品色婷婷AV综合色色| 久机视频这只有精品| 丁香桃色网| 色五婷婷在线视频| 丁香五月香蕉| 激情丁香婷婷| 成人在线观看国产| 韩日AV片| 五月 成人 婷婷| 99综合久久| 99久久99视频只有精品| 五月丁香六月婷精品视频| 《》【无码】想被搞到爽AV应募而来的超M素人 西纯子 10musume-011723-01 | 另类图片五月激情| 91色涩| 激情深爱五月婷婷| 狠狠狠狠狠狠狠狠草| 久久婷婷丁香六月天| 亚洲成人人人操| 婷婷五月天亚洲五码| 色婷婷基地| 国产av天堂| 免費观看aV在线网址| 888久久久| 色综合色综合网| 色狠狠伊人久久五月丁香| 婷婷丁香综合| 操操人人| 久热在线中文字幕色999舞 | 婷婷色五月综合丁香| 欧美性色五月天| 超碰人人99| 色色操| 丁香五月婷婷欧美成人色图| 婷婷五月在线视频| 五月天自拍网| 开心婷婷五月中文字幕组| 五月天伊人网| 成人精品在线观看| 久久综合五月| www.25五月婷婷| 激情婷婷网| 激情久久久| 色八戒操婷婷| 五月天婷婷一起草| 激情綜合W W W,激情五月天| 激情五月婷婷视频一区二区三区| 日本高清不卡免费一区二区三区| 激情五月婷婷综合| Www.激情| 五月天激情国产综合婷婷婷| 色99视| 伊人大香五月天| 色五月天成人| 国产一区二区av免费| 五月天婷婷免费| 丁香五月中文字幕久色| 热99这就是精品视频| 亚洲日比视频| 99热精品网| 国产精品社区| www,色综合| 麻豆123区| 婷婷伊人五月天| 婷婷丁香视频| 五月婷婷丁香色播网| 日日干天天| 色老久久| 五月婷亚洲精品| 国产在线aaa片一区二区99| 日韩 中文 欧美| 亚洲激情.com| 性爱激情五月| 涩涩五| 色丁香五月婷婷| 丁香婷婷六月天| 日日天天干| 丝雨一区二区| 五月天激情美女久久| 色色丁香| 激情五月,色五月| 另类专区在线| 狠狠五月天| 色亭亭九月| 狠狠色狠狠色综合日日91| 婷婷五月天久久久| 六月丁香花婷婷| 五月丁香免费视频| 色色色婷婷五月| 91色在线 | 日韩| 97超碰在线观看免费| 亚洲情a| 丁香五月花影院| 亚洲精品色色色| 亚洲深喉AV| 3p日韩网站视频| 开心五月色婷婷综合开心网| 2050人人操免费工开爱| 五月天激情四射| 五月激情婷婷图片基地| 午夜丁香| 色插综合网| 国产婷伊人| 五月天成人在线| 久9久视频精品| 色噜噜婷婷| 超级久久久| 五月天婷久精视频| 亚洲欧洲午夜成人精品av| 天天综合五月天| 97干在线观看视频| 五月婷婷性爱| 五月激情四射婷婷丁香 | 久久这里只有精品热在99| 99久久免费性爱视频`| 高清无码网址| 婷婷开心综合人妻小说网址| 五月丁香婷婷激情图片| 激情五月婷婷五月丁香五月开心五月| 99人妻碰碰碰久久久久视| 超碰资源在线| 天天色月| 日本不卡高字幕在线2019| 五月深爱激情网| WWW99视频| 亚洲色五月| 精品婷婷五月天| 大香蕉丁香五月| 噜啊噜在线| 337p大胆噜噜噜噜噜91Av| 欧美激情综合色综合啪啪五月| 丁香久色| 一级无码作爱片| 99性视频| 伦99热| 婷婷综合一二三| 操操碰| 久久机只有这里精品| 成人一区在线观看| 99热在线只有精品| 五月天深爱激情网| 91丨九色丨熟女|新版| 99热66| 五月天精品视频| 五月婷婷影院| 五月丁香婷婷五月色| 久久精彩免费视频| 婷婷激情五月天激情在线| 青青久久五月天丁香婷婷| 色九九九九| 婷婷亚洲激情在线观看视频| 国产亚洲色婷婷久久99精品91 www.riverspirits.org www.hnnun.com www.changh | 色情激情五月| 99ri国产在线| 婷婷丁香五月天激情四射| 99热久草| 激情九九这里只有精品| 欧美色色色色色| 久热re视频在线观看网站| 色色色婷婷五月天| 我要看激情五月天| 看婷婷五月天网| 综合久久首页| 色欲一区二区三区精品A片| 色五月婷婷网| 激情综合丁| 97操操| 1024亚洲| 秋霞少妇AV网站| 日日.c| 99久视频| 婷婷六月天激情影院| 婷婷色中文字幕| 久久人视频| 国内一级片| 亚洲婷婷五月天| 婷婷激情六月综合| 玖玖资源站中文| 狠狠干在线视频| 97成人丁香婷婷| 操日视频| 激情骚五月| 大香蕉 婷婷| 99精品网| 日日噜噜夜夜狠狠久久丁香六月| 天天插天天干| 午夜五月天| 久久丁香五月婷婷| 五月激情综合激情五月| 色色日韩网| 97色在线观看视频| 五月丁香六月婷婷的女人| 五月婷婷香蕉| 国产午夜伦鲁鲁| 五月婷婷综合网| www婷婷| www.99色| 久久久激情视频| 玖玖五月丁香| 色婷久久| 久久小视频| 五月天综合色| 99热这里只有精品9| 五月婷婷六月少妇激情| 亚洲狠狠狠| 战争与艾拉电影免费观看| 深爱激情五月天色婷婷| 欧美va国产va| 人人爱天天摸摸天天爱| 色五月xxx| 他改变了拜占庭| 久久婷婷青草五月天| 婷婷五月69| 天天五月丁香五月| 亚洲日韩国产黑丝黑丝AVAV一区二区三区| 色综合中文| 婷婷综合五月天| 欧美婷婷丁香五月社区| 亚州色婷婷| 国产日产成人亚洲欧美国产VA| 99熟女| 激情五月天综合网站网站网站| 只有精品在线观看| 99极品视频| 婷婷免费无视频| ss视频xx91| 五月天婷婷综合免费| 综合五月天| 婷色五月天| 九九热AV| a级毛片一区二区免费视频| 久热在线观看视频9| www.99精品视频| 九九热欧美| 五月丁香婷婷激情在线视频| 精品一区二区三区木瓜| 五月婷婷六月丁香色| 人人操人人爰人人一天天碰夜夜拍夜夜爽-中国A级毛片天天看天天谢… | 日逼影音先锋男人资源站| 久久蜜臀婷婷| 另类精品视频在线观看| 2014天天爽| 欧洲高清免费久久| 欧美性丁香色色五月天干干| 狠狠久久婷五月| 丁香五月天激情综合| 色综色网| 色五月婷婷大香蕉| 久久综合激情五月天| 久久网思思| 五月婷婷日| 激情六月天| 色婷婷狠狠18yy| AV操逼网| 开心五激情网| 51国精产品自偷自偷综合 | 五月丁香久| 日韩激情婷婷五月天| 这里只有久久精99| 大香蕉久操| 色九四色| 五月丁香六月婷综合成人综合 | 91日综合欧美| 婷婷五月激情四月综合 | 五月丁香人妻| 天天日日人| 婷婷丁香五月综合网上| 色色日本| 五月天大香蕉视频| 婷婷五月天激情文学小说| 天天色综合综合| 色综合色| 婷婷五月精品中文| 综合激情网五月激情| 五月丁香性| 99视频| 久99视频在线观看| 狠狠草综合网| 五月天色婷婷综合| 人妖色AV色综合| 五月丁香婷色| 91精品婷婷国产综合久久| 亚州男人天堂婷婷五月| 五月丁香六月色婷婷综合五月天| 激情丁香六月| 五月天激情小说| 大香蕉中文| 国产色99| 色婷婷成人做爰A片免费看网站| 日韩另类在线观看| 五月激情综合深爱| 91chinese在线| 狼人狠狠操| 婷婷六月色播| 亚洲精品无AMM毛片| 99热最新| 久久婷婷五月天激情| 国av网| 五月天第四色开心色播| 超碰99久久| 久久精品天| 人人干AV| 日本五月婷婷久久久六月丁香| 丁香六月综合激情| 1769在线观看欧美国产| 亚洲五月天综合| 丁香五月欧美| 色狠狠色| 91操在线视频| www.com亚洲网站在线免费| 婷婷五月骚厕所| 欧美S码亚洲码精品M码| 久久色五月天| av狠狠操| 九色自拍| 久久综合五月天| 精品亚洲国产成AV人片传媒| 五月激情婷婷开心| 亚洲狠狠色丁香婷婷综合久久| 久久丁香五月婷婷激情综合网| 成人AV免费观看| 五月久久婷婷| 欧洲毛片基地c区| 99九九热在线观看| 综合激情在线视频| 综合色影| 色五月天堂| PORNY九色9l自拍视频成人| 综合网啪| 超碰色婷婷| 久99视频在线观看| 国产综合视频婷婷| 五月婷婷久久久| 激情久久综合| 色综合色色色| 深爱丁香网| 亚州美女| 天天综合亚洲综合| WWW.亚洲无码| 国产午夜一区二区三区| 操操熟女| 超碰在线观看9| 好看的国产精品| 色色色色色色色色网站| 久久婷婷成人视频| 中字幕视频在线永久在线观看免费| 免费色色色| 九九99久久精品| 天天影视色综合网| 五月天婷婷涩涩| 五月丁香色婷婷色| 五月婷婷基地| 香蕉AV福利精品导航| 欧美成人网婷婷综合在线| 免费91久久精品| 色五月婷婷一二| 99在线播放视频| 激情丁香五月| 狠狠干 狠狠操| 毛片蕉地一二| 久久草大香蕉| 丁香六月婷婷高清| 狠狠色婷| 99热新网址| 狠狠色狠狠干| 狠狠色综合图片| 激情五月天啪啪| 丁香五月婷婷亚洲色图| 色五月婷婷在线观看第一页舔| 五月色色激情网| 超碰在线人人| 国产亚洲精品久久久久久久久动漫| 开心五月天激情网站| 99A级片| 国产AV国片偷人妻麻豆| 六月丁香六月婷婷欧美| 99热国产| 果冻传媒A片一二三区| 色99色| 国产精品噜噜在线视频| 97狠狠碰| 五月天色不卡| 女人天堂 AV| 成人AV在线网站| 99re欧美精品| 色九月婷婷综合| 五月丁香综合啪啪対白| 久久婷婷夜| 丁香五月影院| 天天做天天爽| 深爱激情九九五月天 | 狠狠五月丁香色婷| 免费超碰在线| 欧美成人精品三区综合A片| www.婷婷五月天.com| 六月丁香视频网站| 亚洲操B视频| 粉嫩AV久久一区二区三区| 五月天婷婷AV| 欧美婷婷五月天综合| 久久久8| 国产黄色大片| 五月综合视频| 婷婷午夜精品久久久| 能直接看的AV网站| 99热乎| 91艹人| 99热在线极品极品| 婷婷91| 国产精品视频免费看| www久热com| 日操| 婷婷九月激情| 97艹| 五月刺激丁香月综合| 六月丁香网| 色99日韩| 久久久久久久人妻| 中文字幕性爱丰满| 欧美精品久久久久久视频观看| 五月丁香 啪啪| 亚洲区1| 精品欧美性爱超级爽| 五月亭亭直播| 粉嫩av懂色av蜜臀av熟妇| 色婷婷亚洲五月天| 思思热在线免费视频| 激情五月丁香色婷婷| 九九色中文| 欧洲不卡视频| 婷婷激情人妻| 亚洲成人九九九| 久久青草国| 99热免费18| aaaa久久| 97五月婷| 激情网 久久| 99婷婷精品推荐在线视频| 桃色五月天| 99色| 国产AV一区二区三区最新精品 | 激情久久久| 一区二区成人电影| 丁香婷婷五月六月久久| 色五月婷婷综合在线| 色五月天丁香婷婷色| 97在线干| www,超碰| 亚洲成人超碰| 狼人狠狠操| 亚洲区视频| 97人人射| Av狠狠色丁香婷| 免费色色色| 五月天色婷婷小说| 99热这里只有精品2016| 欧美噜一噜| 狠狠五月天激情| 人人爱人人摸人人澡| 99在热线免费视频| 五月天播播中文字幕| 免费视频无码| 91精品婷婷国产综合久久| 亚洲中文字幕网| 六月天婷婷| 久久视频在线视频| 色逼综合网| 91九色PORNY中文啦| 性爱五月丁香| 亚洲久热| 六月五月久久丁香| 成人综合视频在线| 开心五月色婷| 热99AV网站| 激情婷婷五月| 99热碰碰热| av在线资源| 久久婷婷五月天激情新地址| 色综合激情图区| 狠狠色丁香婷婷| 久久久香| 五月丁香拍拍激情综合| 丁香五月激情鲁| 久久综合影院| 99久久6| 亚洲情综合五月天| 伊人久热91网| 色播婷婷大香蕉| 99在线观看这里都是精品| 热99这里只有精品视频| 久久天天| 天天操天天插| 99视频综合网| 99九九热在线观看| 久久五月激情网| AV性爱在线| 人妻少妇色综合| 99欧美精品99日本精品| 99色在线观看视频| 久久久久久草黄色片AV在线观看| 国产高清精品色| 99自拍视频网站| 俺去也五月| 99爱爱网| 婷婷激情综合色五月久久,色婷婷丁香花,丁香婷婷五月情天,久久婷婷五月综合色 | 婷婷色五月天色| 99亚色色色| 另类综合婷婷五月天欧美视频| 久9久9久9久9久9久9| 久久AAAA片一区二区| 丁香五月天婷婷91| 九九视频精品这里只有| 婷婷情爱五月天6| 天天爽天天爽| 六月丁香婷婷色狠狠久久| 亚洲在线激情婷婷五月| 久久久久婷 | 婷婷5月九九| 婷婷久久大香蕉| 99视频在线观看地址| 色五月激情| 人人爽亚洲| 色色婷婷丁香| 九九av在线| 97色五月天| 色人久久| 黄色毛片精品| 天天爱天天做综合| 九九无码| 九九九激情网| 国产欧美婷婷| 婷婷久久精品| 色五月婷婷久久| 操逼国产91| 国语精品探花| 性无码专区无码| 亚洲成人一区| 亚洲色色香蕉| 国产SUV精品一区二区6| 丁香五月电影| 五月天婷婷AV| 五月丁香六月婷| 五月天狠狠色| 美女妹子后射视频网站在线观看| 婷婷五月婷婷| 超碰99久久| 黄色AAAAA| 碰碰碰97国产| 五月丁香六月色情网欧美| 国产无套精品一区二区| 免费做A爰片77777| 婷婷五月天AV网| 欧美六月| 91网站黄| 丁香激情网| 天天综合区| 人人看人人要| 国产精品天天狠天天看| 日韩成人网站精品久久大全| 六月色色| www.99精品视频| 日韩五月丁香| 色婷狠狠| 天天色,天天日,天天做| 国产露脸150部国语对白| 久久在线视频只有这里有精品| 能直接看的av网站| 日本三级韩三级99久久| 五月婷婷激情性爱| 丁香五月婷婷激情完整版| 激情亚洲网| 九一牛视频探花| 五月六月丁香激情| 毛片九九九九九九九九18| 精品一区二区三区四区五区六区介绍| se99视频| 思思视频久久| 日本天天色| 亚洲婷婷五月天综合| 99热伊人| 无码毛片992367| 欧美成人AAA片一区国产精品| 狠狠va| 国产这里只有精品| 天天做天天要天天爽| 无人区码一码二码三码医生系列| 五月天色婷婷图片| 亚洲狠狠丁香婷婷香蕉|