国产成人欧美一区二区三区vr_久久国产精品人人爽人人爽_国产精品永久免费播放_肉欲啪啪a∨无码精品一区二区_国产超短裙jk丝袜在线_亚洲AV片高清资源在线观看_国模无码一区二区三区久久_国产成年人未进视频_中文字幕无码精品夜_一区二区三区在线视频免费看_亚洲成AV人片在线观看网址_日本激情视频高清综合久久_亚洲午夜视频福利_国内大量揄拍人妻精品視_久久国产精品福利二区三区

ARTICLE DETAIL

資訊詳情

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

嵌入式網(wǎng)絡(luò)調(diào)試:Ethernet PHY軟件復(fù)位失效根因與解決實(shí)踐

嵌入式網(wǎng)絡(luò)調(diào)試:Ethernet PHY軟件復(fù)位失效根因與解決實(shí)踐 搞嵌入式網(wǎng)絡(luò)開(kāi)發(fā)的朋友應(yīng)該都撞過(guò)這個(gè)場(chǎng)景板子上電代碼初始化 PHY執(zhí)行了軟件復(fù)位但寄存器讀出來(lái)還是老樣子或者鏈路死活起不來(lái)。Ethernet PHY 的軟件復(fù)位不生效看起來(lái)是個(gè)很小的點(diǎn)但牽扯到 MDIO 時(shí)序、PHY 地址、strap 管腳、甚至驅(qū)動(dòng)初始化順序問(wèn)題藏得深的時(shí)候能折騰好幾天。我調(diào)過(guò)不少帶 PHY 的板卡從 RTL8211、KSZ9031 到 DP83848 都踩過(guò)坑這篇文章就專門(mén)聊聊 Software reset 失效這件事哪些原因會(huì)導(dǎo)致它失效、怎么一步步定位、以及驅(qū)動(dòng)側(cè)怎么把軟復(fù)位寫(xiě)得足夠穩(wěn)。1. 軟復(fù)位的第一課寄存器行為與正常時(shí)序1.1 軟件復(fù)位到底在復(fù)位什么以太網(wǎng) PHY 通過(guò) MDIOManagement Data Input/Output接口與 MAC 或 CPU 通信這個(gè)接口專門(mén)用于讀寫(xiě) PHY 內(nèi)部寄存器。軟件復(fù)位一般指往 BMCRBasic Mode Control Register寄存器地址 0x00的 bit15 寫(xiě) 1 來(lái)觸發(fā) PHY 內(nèi)部復(fù)位。這個(gè)復(fù)位位是自清零的PHY 復(fù)位完成后硬件會(huì)自動(dòng)把 bit15 清 0所以“復(fù)位是否完成”可以通過(guò)輪詢 bit15 判斷。PHY 軟復(fù)位會(huì)做幾件事把大部分 MII 寄存器恢復(fù)成默認(rèn)值、重新初始化 PHY 內(nèi)部狀態(tài)機(jī)、中斷當(dāng)前自協(xié)商并重新啟動(dòng)。這也就意味著如果復(fù)位后你原本配置的自協(xié)商使能、速度、雙工等參數(shù)沒(méi)有重新寫(xiě)一遍PHY 會(huì)回到默認(rèn)配置鏈路可能和你的預(yù)期不一致。很多“軟復(fù)位不工作”的現(xiàn)象表面上是 PHY 沒(méi)有反應(yīng)其實(shí)是復(fù)位之后配置被清掉了但又被誤讀成“沒(méi)復(fù)位成功”。1.2 寫(xiě) 1 不等于執(zhí)行讀 0 才算數(shù)不少人在代碼里寫(xiě)了一個(gè)mdio_write(phy_addr, 0, 0x8000)就以為復(fù)位完成了。這個(gè)想法在多數(shù) PHY 上會(huì)出問(wèn)題。因?yàn)閺?fù)位需要時(shí)間不同 PHY 的復(fù)位時(shí)間差別很大快的幾十微秒慢的能到幾百毫秒甚至更久。如果你寫(xiě)完立刻讀 0x00很有可能會(huì)讀到 0x8000這并不代表復(fù)位失敗而是復(fù)位還沒(méi)執(zhí)行完。正確的做法是寫(xiě) 0x8000 后循環(huán)讀取 BMCR直到 bit15 變?yōu)?0同時(shí)設(shè)置一個(gè)超時(shí)值防止卡死。比如int phy_soft_reset(int phy_addr) { int ret; uint16_t val; int timeout 100; ret mdio_write(phy_addr, 0x00, 0x8000); if (ret 0) return ret; while (timeout--) { ret mdio_read(phy_addr, 0x00, val); if (ret 0) return ret; if ((val 0x8000) 0) return 0; usleep(1000); } return -1; }1.3 怎么證明“軟復(fù)位真的執(zhí)行了”調(diào)試時(shí)不要只盯著 BMCR 的 bit15還要從多個(gè)角度確認(rèn)復(fù)位確實(shí)發(fā)生過(guò)。首先是讀 PHY ID 寄存器地址 0x02 和 0x03正常復(fù)位后 ID 應(yīng)該保持不變。其次是觀察鏈路狀態(tài)復(fù)位期間 PHY 的 link 會(huì)掉線自協(xié)商重新開(kāi)始所以如果你用示波器或 ethtool 持續(xù)觀察會(huì)看到 link down 又 up 的過(guò)程。最后是核對(duì)配置寄存器比如 BMCR 的 bit15 清零后bit12自協(xié)商使能、bit13速度選擇等會(huì)恢復(fù)到默認(rèn)值。如果復(fù)位前后這些值完全沒(méi)變化那基本可以確定軟復(fù)位沒(méi)有真正執(zhí)行。2. 根因分類(lèi)為什么軟復(fù)位會(huì)失效2.1 MDIO 總線層面數(shù)據(jù)根本沒(méi)寫(xiě)進(jìn)去最常見(jiàn)的軟復(fù)位失效原因不是 PHY 本身的問(wèn)題而是 MDIO 上的寫(xiě)操作根本沒(méi)成功。MDIO 的通信時(shí)序有規(guī)范要求MDC 時(shí)鐘頻率在 IEEE 802.3 標(biāo)準(zhǔn)里最大是 2.5 MHz部分 PHY 支持更高的 25 MHz 模式但需要特定寄存器開(kāi)啟而且不是所有 PHY 都保證在高時(shí)鐘下穩(wěn)定工作。排查時(shí)先看 MDC 頻率。有的系統(tǒng)為了趕速度把 MDC 配到了 10 MHz 甚至更高結(jié)果 PHY 對(duì)數(shù)據(jù)采樣出錯(cuò)寄存器寫(xiě)入不生效。我遇到過(guò)一塊板子讀 PHY ID 一直正常但寫(xiě) BMCR 復(fù)位位后讀回還是 0x0000最后用示波器抓波形才發(fā)現(xiàn)寫(xiě)幀的數(shù)據(jù)段完全亂了把 MDC 降到 2.5 MHz 之后立刻恢復(fù)正常。MDIO 幀格式也值得了解。一個(gè)完整的 MDIO 寫(xiě)幀包含 32 位 preamble、起始碼、操作碼01 表示寫(xiě)、5 位 PHY 地址、5 位寄存器地址、2 位 turnaround 和 16 位數(shù)據(jù)。如果你用邏輯分析儀或者示波器抓幀可以按這個(gè)格式手動(dòng)解碼確認(rèn) CPU 發(fā)出的 PHY 地址、寄存器地址和實(shí)際想要訪問(wèn)的是否一致。上拉電阻也是常見(jiàn)問(wèn)題點(diǎn)。MDIO 數(shù)據(jù)線是雙向的讀操作時(shí)由 PHY 驅(qū)動(dòng)如果 MDIO 缺少上拉電阻讀數(shù)據(jù)時(shí)高電平可能不夠?qū)е伦x到全 0 或隨機(jī)值寫(xiě)操作倒是正常。判斷方法很簡(jiǎn)單只讀 PHY ID如果每次讀出來(lái)都不一樣優(yōu)先檢查上拉電阻和 IO 電平。2.2 你操作的不是你想要的 PHYPHY 地址由 PHYAD strap 管腳在上電復(fù)位時(shí)鎖存范圍是 0 到 31。MDIO 寫(xiě)幀里的 PHY 地址必須和 PHY 實(shí)際鎖存的地址一致否則 PHY 根本不應(yīng)答。很多板卡的 PHY 地址在硬件設(shè)計(jì)階段已經(jīng)確定比如通過(guò)上下拉電阻把 PHYAD[4:0] 配成 0x01但如果你在代碼里寫(xiě)死了 0x00軟復(fù)位自然無(wú)效。在多 PHY 場(chǎng)景下更容易踩坑。比如帶交換芯片的板卡CPU 通過(guò) MDIO 總線接 switchswitch 內(nèi)部又管理多個(gè) PHY這種時(shí)候 PHY 地址往往不是簡(jiǎn)單的 0-4可能包含頁(yè)選擇或者內(nèi)部端口映射。最穩(wěn)妥的做法是上電后先遍歷地址 0-31讀取每個(gè)地址的 PHY ID和 datasheet 上的期望值比對(duì)確認(rèn)哪個(gè)地址對(duì)應(yīng)哪顆 PHY再做復(fù)位操作。2.3 寄存器訪問(wèn)路徑或間接訪問(wèn)陷阱有些 PHY 芯片的寄存器訪問(wèn)不是簡(jiǎn)單的直接訪問(wèn)。比如擴(kuò)展寄存器需要先寫(xiě)頁(yè)寄存器再訪問(wèn)目標(biāo)地址或者 PHY 掛在 MDIO mux 后面需要先切換通道。如果驅(qū)動(dòng)把地址配置錯(cuò)軟復(fù)位命令寫(xiě)到了錯(cuò)誤的寄存器PHY 當(dāng)然不會(huì)有反應(yīng)。還有一個(gè)隱蔽的坑有些 PHY 在低功耗或者隔離模式下MDIO 接口仍然能夠響應(yīng)但寄存器寫(xiě)入可能被忽略或者只有特定命令才能喚醒。如果你把一個(gè) PHY 配置成 power down 之后再去寫(xiě)軟復(fù)位會(huì)發(fā)現(xiàn) bit15 寫(xiě)進(jìn)去了但 PHY 狀態(tài)不對(duì)鏈路也起不來(lái)。這種時(shí)候先檢查 BMCR 的 bit11power down和 bit10isolate是否被意外置位。2.4 被后面的代碼覆蓋最常見(jiàn)也最隱蔽這是我見(jiàn)過(guò)最多的“軟復(fù)位失效”原因現(xiàn)象非常具有迷惑性單獨(dú)執(zhí)行軟復(fù)位是好的但接入完整驅(qū)動(dòng)流程后復(fù)位好像沒(méi)發(fā)生過(guò)。問(wèn)題出在初始化順序上。比如驅(qū)動(dòng)流程是寫(xiě)軟復(fù)位、延時(shí)固定時(shí)間、配置自協(xié)商、等待自協(xié)商完成。如果延時(shí)時(shí)間不夠PHY 的復(fù)位還沒(méi)走完后面的自協(xié)商配置寫(xiě)入就可能被復(fù)位過(guò)程覆蓋掉。最終效果就是 BMCR 里的自協(xié)商使能位不正確link 建立不起來(lái)看起來(lái)像是“復(fù)位把配置清了”實(shí)際上是復(fù)位還沒(méi)完成配置寫(xiě)得過(guò)早。排查方法在復(fù)位完成后延時(shí)幾毫秒把 BMCR 寄存器讀出來(lái)再對(duì)比你后面代碼寫(xiě)入的預(yù)期值。不一致就說(shuō)明寫(xiě)入順序有時(shí)序問(wèn)題解決方法是把軟復(fù)位改成輪詢等待自清零完成再繼續(xù)配置。2.5 strap 管腳在復(fù)位釋放時(shí)鎖定嚴(yán)格來(lái)說(shuō)軟件復(fù)位不會(huì)重新采樣 strap 管腳strap 只在硬件復(fù)位釋放或者上電過(guò)程中鎖存。但很多“軟復(fù)位不生效”的板子根因反而在硬件復(fù)位和 strap 上。如果硬件復(fù)位釋放瞬間 strap 管腳電平?jīng)]有穩(wěn)定PHY 會(huì)鎖存到錯(cuò)誤的地址或者模式后續(xù)軟復(fù)位即使執(zhí)行成功PHY 的工作模式也是錯(cuò)的。比如有的電路用 RC 延時(shí)給 strap 管腳做默認(rèn)電平如果 RC 時(shí)間常數(shù)太大復(fù)位釋放時(shí)電平還沒(méi)穩(wěn)定PHY 就把不確定的電平鎖進(jìn)去了。這種問(wèn)題在低功耗設(shè)計(jì)、IO 電壓切換的板子上尤其常見(jiàn)。排查時(shí)需要示波器看復(fù)位釋放時(shí)刻 strap 管腳的電平是否符合設(shè)計(jì)預(yù)期。2.6 時(shí)鐘沒(méi)起來(lái)狀態(tài)機(jī)不轉(zhuǎn)PHY 需要一個(gè)參考時(shí)鐘才能維持內(nèi)部狀態(tài)機(jī)運(yùn)行一般是外接晶振或由 MAC 提供 25 MHz 時(shí)鐘。如果時(shí)鐘沒(méi)起振或者頻率不對(duì)MDIO 接口可能還能讀 ID因?yàn)樽x ID 不需要完整的狀態(tài)機(jī)但軟復(fù)位后的自協(xié)商完全不會(huì)進(jìn)行鏈路也就起不來(lái)。我調(diào)試時(shí)有個(gè)習(xí)慣碰到復(fù)位不生效先測(cè) PHY 時(shí)鐘輸出或者晶振波形。用示波器探一下 XI 或 CLK_OUT 管腳確認(rèn)頻率和幅度符合 datasheet 要求。很多時(shí)候軟復(fù)位本身沒(méi)問(wèn)題問(wèn)題在于 PHY 的數(shù)據(jù)通路根本沒(méi)工作時(shí)鐘就是第一嫌疑。下面是失效現(xiàn)象和優(yōu)先排查方向的速查表方便現(xiàn)場(chǎng)對(duì)照定位失效現(xiàn)象優(yōu)先排查項(xiàng)常見(jiàn)原因?qū)憦?fù)位后 BMCR 仍為 0x8000MDC 頻率、MDIO 波形總線時(shí)序不滿足 PHY 要求讀 PHY ID 全 0 或全 1PHY 地址、上拉電阻地址不匹配或總線無(wú)應(yīng)答軟復(fù)位單測(cè)正常加上配置代碼后失效初始化順序配置寫(xiě)入早于復(fù)位完成復(fù)位后 link 始終起不來(lái)時(shí)鐘、strap、硬件復(fù)位PHY 數(shù)據(jù)通路未工作PHY 地址與實(shí)際硬件不符PHYAD strap 管腳strap 鎖存錯(cuò)誤3. 現(xiàn)場(chǎng)排查把問(wèn)題“逼”出來(lái)3.1 先讀 PHY ID 建立基線排查任何 PHY 問(wèn)題前先把 PHY ID 讀出來(lái)。PHY ID 由寄存器 0x02OUI 高 16 位和 0x03OUI 低 6 位 型號(hào) 6 位 版本 4 位組成。每個(gè) PHY 型號(hào)有固定 ID你可以對(duì)照 datasheet 確認(rèn)讀取結(jié)果是否正確。如果讀到 0x0000 或者 0xffff說(shuō)明 MDIO 總線上根本沒(méi)有 PHY 響應(yīng)或者地址不對(duì)。建議寫(xiě)一個(gè)掃描腳本遍歷 PHY 地址 0-31把所有能讀到合法 ID 的地址打印出來(lái)。以 mdio-tools 為例# 遍歷地址0-31讀寄存器2和3 for i in $(seq 0 31); do id1$(mdio read phy 0 $i 2 2/dev/null | awk {print $NF}) id2$(mdio read phy 0 $i 3 2/dev/null | awk {print $NF}) if [ $id1 ! 0xffff ] [ $id1 ! 0x0000 ]; then echo addr$i id$id1$id2 fi done腳本的目的是找到所有存活的 PHY 地址。正常板卡上結(jié)果里應(yīng)該能看到 datasheet 對(duì)應(yīng)的 ID如果找不到先別糾結(jié)軟復(fù)位把 MDIO 總線基本問(wèn)題解決再說(shuō)。3.2 示波器抓 MDIO/MDC觀察幀波形軟件層面的寄存器讀寫(xiě)最終要通過(guò) IO 波形體現(xiàn)。用示波器同時(shí)測(cè) MDC 和 MDIO觸發(fā)方式選 MDC 上升沿抓一次寫(xiě) BMCR 0x8000 的完整幀。觀察幾個(gè)關(guān)鍵點(diǎn)MDC 頻率是否在 PHY 允許范圍內(nèi)MDIO 數(shù)據(jù)是否在 MDC 下降沿后變化、上升沿前穩(wěn)定幀里的 PHY 地址和寄存器地址是否和代碼一致。如果發(fā)現(xiàn)數(shù)據(jù)線在 MDC 上升沿附近還在跳變說(shuō)明時(shí)序余量不夠。這時(shí)候可以降低 MDC 頻率或者調(diào)整 MDIO 驅(qū)動(dòng)能力優(yōu)先保證通信穩(wěn)定。還有一種情況MDIO 線上有電平競(jìng)爭(zhēng)。比如多個(gè) MDIO 主機(jī)同時(shí)操作同一根總線或者 PHY 的 MDIO 引腳被復(fù)用為其他功能讀寫(xiě)數(shù)據(jù)就會(huì)錯(cuò)亂。用示波器看波形時(shí)如果發(fā)現(xiàn) MDIO 高電平被拉低大概率是總線沖突。3.3 讀回 BMCR確認(rèn)寫(xiě)操作落地寫(xiě)軟復(fù)位后立即讀 BMCR有兩種典型情況需要區(qū)分第一種讀到 0x8000說(shuō)明復(fù)位還在進(jìn)行中繼續(xù)輪詢等待自清零。第二種讀到 0x0000或者其他值但 bit15 已經(jīng)為 0說(shuō)明 PHY 接受了復(fù)位并完成。如果此時(shí)你看到 bit12 自協(xié)商使能、bit13 速度選擇等配置寄存器都恢復(fù)默認(rèn)了證明復(fù)位執(zhí)行過(guò)。如果寫(xiě)完 0x8000 后無(wú)論怎么輪詢 bit15 都一直為 1而且 PHY ID 能正常讀到那問(wèn)題基本在 PHY 內(nèi)部狀態(tài)。建議檢查 PHY 的電源、時(shí)鐘、復(fù)位管腳是否正常。3.4 檢查硬件復(fù)位和 strap 信號(hào)軟件復(fù)位不工作很多人忽略了硬件復(fù)位管腳。PHY 的 RST# 管腳如果在軟件復(fù)位過(guò)程中被外部拉低會(huì)導(dǎo)致 PHY 一直在硬件復(fù)位狀態(tài)任何 MDIO 寫(xiě)操作都不會(huì)被真正執(zhí)行。檢查 RST# 電平是否穩(wěn)定在高電平如果有周期性拉低要追蹤是誰(shuí)在操作這個(gè)管腳。strap 信號(hào)檢查要在復(fù)位釋放瞬間做。示波器觸發(fā)在 RST# 上升沿看 PHYAD、ANEG、MODE 等 strap 管腳的電平是否已經(jīng)穩(wěn)定。如果 strap 管腳在復(fù)位釋放后才慢慢爬升PHY 鎖存的就不是你想要的配置這對(duì)后續(xù)軟復(fù)位的“無(wú)效”判斷會(huì)產(chǎn)生誤導(dǎo)。3.5 最小化復(fù)現(xiàn)腳本把問(wèn)題從完整驅(qū)動(dòng)里剝離出來(lái)用最小化腳本復(fù)現(xiàn)。在嵌入式 Linux 下可以直接在 shell 里讀寫(xiě) MDIO 寄存器在裸機(jī)環(huán)境寫(xiě)一個(gè)簡(jiǎn)單的測(cè)試函數(shù)只做三件事讀 PHY ID、寫(xiě)軟復(fù)位、輪詢 BMCR。下面是一個(gè)最小化的 C 示例#include stdio.h #include unistd.h int main(int argc, char *argv[]) { int addr argc 1 ? atoi(argv[1]) : 1; uint16_t id1, id2, bmcr; mdio_read(addr, 2, id1); mdio_read(addr, 3, id2); printf(PHY ID: 0x%04x%04x\n, id1, id2); mdio_write(addr, 0, 0x8000); for (int i 0; i 100; i) { mdio_read(addr, 0, bmcr); if (!(bmcr 0x8000)) { printf(reset done after %d ms\n, i); break; } usleep(1000); } printf(BMCR after reset: 0x%04x\n, bmcr); return 0; }如果這個(gè)最小化腳本能正常復(fù)位說(shuō)明硬件和 MDIO 總線沒(méi)問(wèn)題問(wèn)題在完整驅(qū)動(dòng)的代碼邏輯。如果腳本都復(fù)現(xiàn)不了軟復(fù)位失效那就回到硬件和總線排查。4. 三個(gè)真實(shí)案例復(fù)盤(pán)4.1 案例 AMDC 頻率太高導(dǎo)致寫(xiě)操作丟失現(xiàn)象板卡上調(diào)試讀取 PHY ID 正常但寫(xiě)軟復(fù)位寄存器后再讀 BMCR 一直是 0x0000bit15 始終沒(méi)有置位PHY 也沒(méi)有任何 link 變化。當(dāng)時(shí)第一反應(yīng)是 PHY 壞了換了芯片還是一樣。排查用示波器抓 MDC 波形發(fā)現(xiàn) MDC 頻率被一個(gè)共用驅(qū)動(dòng)的代碼配置成了 12.5 MHz。再抓 MDIO 寫(xiě)幀發(fā)現(xiàn)數(shù)據(jù)段在 MDC 上升沿采樣時(shí)不穩(wěn)定PHY 把數(shù)據(jù)采樣錯(cuò)了相當(dāng)于寫(xiě)進(jìn)去的數(shù)據(jù)不是 0x8000而是隨機(jī)值。解決把 MDC 頻率降到 2.5 MHz重新測(cè)試軟復(fù)位正常生效。后面我養(yǎng)成了一個(gè)習(xí)慣只要能調(diào)低 MDC 頻率就先用低頻率跑通功能再去考慮性能優(yōu)化。4.2 案例 B多 PHY 板卡地址認(rèn)錯(cuò)對(duì)象現(xiàn)象一塊帶交換芯片的板卡交換芯片內(nèi)部有 5 個(gè) PHY。代碼里固定往 PHY 地址 0 執(zhí)行軟復(fù)位結(jié)果交換機(jī)某個(gè)端口的 link 總是異常另一個(gè)端口倒是正常。排查用掃描腳本遍歷 0-31發(fā)現(xiàn) PHY 地址分布和代碼預(yù)期完全不同。交換芯片把內(nèi)部 PHY 映射到了以 0x04 起始的地址區(qū)間地址 0 上根本沒(méi)有 PHY 響應(yīng)。也就是說(shuō)軟復(fù)位命令一直被發(fā)到了總線上一個(gè)不存在的 PHY那“不工作”就是必然的。解決修改驅(qū)動(dòng)中的 PHY 地址表按掃描到的實(shí)際地址配置軟復(fù)位和后續(xù)鏈路配置都正常。4.3 案例 C復(fù)位成功但配置被覆蓋現(xiàn)象最小化腳本測(cè)試軟復(fù)位是好的但跑完整驅(qū)動(dòng)后PHY 的自協(xié)商配置總是不對(duì)link 起不來(lái)。當(dāng)時(shí)排查了很久一度以為 PHY 有問(wèn)題。排查在軟復(fù)位函數(shù)返回后加延時(shí)讀取 BMCR發(fā)現(xiàn)自協(xié)商使能位為 0而代碼里明明在后面寫(xiě)了配置。再細(xì)看代碼發(fā)現(xiàn)驅(qū)動(dòng)里軟復(fù)位后有一個(gè)usleep(1000)的固定延時(shí)但實(shí)際 PHY 復(fù)位需要 5 ms 左右。后面的自協(xié)商配置寫(xiě)入太早被復(fù)位過(guò)程清掉了。解決把固定延時(shí)改成輪詢 bit15 自清零清零后再寫(xiě)自協(xié)商配置問(wèn)題消失。同時(shí)加了超時(shí)保護(hù)防止 PHY 異常時(shí)卡死初始化。案例復(fù)盤(pán)匯總案例現(xiàn)象定位手段修復(fù)方式MDC 頻率過(guò)高寫(xiě)復(fù)位后 BMCR 不置位示波器抓 MDC/MDIO 波形MDC 降到 2.5 MHzPHY 地址錯(cuò)誤復(fù)位命令發(fā)到不存在的 PHY掃描 0-31 地址讀 PHY ID改用實(shí)際 PHY 地址配置寫(xiě)入過(guò)早復(fù)位單測(cè)正常驅(qū)動(dòng)整體異常復(fù)位后讀回 BMCR 比對(duì)輪詢自清零后再配置5. 驅(qū)動(dòng)側(cè)穩(wěn)妥實(shí)現(xiàn)一份可以直接落地的軟復(fù)位代碼5.1 封裝 MDIO 讀寫(xiě)原語(yǔ)不同平臺(tái)的 MDIO 讀寫(xiě)實(shí)現(xiàn)差別很大但接口可以統(tǒng)一。建議封裝兩個(gè)函數(shù)返回 0 表示成功負(fù)值表示錯(cuò)誤。代碼里不直接操作硬件寄存器方便后續(xù)適配或用 mock 測(cè)試int mdio_read(uint8_t phy_addr, uint8_t reg_addr, uint16_t *val); int mdio_write(uint8_t phy_addr, uint8_t reg_addr, uint16_t val);底層實(shí)現(xiàn)里注意 MDC 頻率必須控制在 PHY 支持范圍內(nèi)MDIO 讀寫(xiě)幀要按照 IEEE 802.3 格式構(gòu)造幀間隔最好留幾個(gè) MDC 時(shí)鐘周期避免連續(xù)操作時(shí) PHY 來(lái)不及處理。5.2 軟復(fù)位實(shí)現(xiàn)的四個(gè)關(guān)鍵點(diǎn)一個(gè)可靠的phy_soft_reset函數(shù)要有四個(gè)關(guān)鍵點(diǎn)寫(xiě) 0x8000 到 BMCR、輪詢 bit15 自清零、超時(shí)保護(hù)、復(fù)位完成后延遲讓內(nèi)部狀態(tài)機(jī)穩(wěn)定。參考實(shí)現(xiàn)#define PHY_REG_BMCR 0x00 #define BMCR_RESET 0x8000 #define BMCR_ANENABLE 0x1000 #define BMCR_SPEED100 0x2000 #define BMCR_DUPLEX_FULL 0x0100 int phy_soft_reset(uint8_t phy_addr) { uint16_t val; int ret; int timeout 200; ret mdio_write(phy_addr, PHY_REG_BMCR, BMCR_RESET); if (ret 0) return ret; while (timeout--) { ret mdio_read(phy_addr, PHY_REG_BMCR, val); if (ret 0) return ret; if ((val BMCR_RESET) 0) break; usleep(1000); } if (timeout 0) return -1; /* 給PHY內(nèi)部狀態(tài)機(jī)一點(diǎn)時(shí)間 */ usleep(1000); return 0; }注意這里的usleep(1000)是給狀態(tài)機(jī)啟動(dòng)用的不同 PHY 可能有差異如果后面緊接著要配置自協(xié)商建議再加一個(gè) 10 ms 級(jí)別的延時(shí)或者輪詢 PHY 狀態(tài)寄存器確認(rèn)自協(xié)商已經(jīng)啟動(dòng)。5.3 復(fù)位 自協(xié)商 鏈路檢測(cè)的編排軟復(fù)位之后不能直接等 link需要重新配置自協(xié)商參數(shù)。推薦的初始化順序是讀取 PHY ID確認(rèn)訪問(wèn)對(duì)象正確。執(zhí)行軟復(fù)位等待自清零。寫(xiě) ANAR寄存器 0x04配置本端支持的速率和工作模式。寫(xiě) BMCR使能自協(xié)商并重啟自協(xié)商bit12 1bit9 1。輪詢基本狀態(tài)寄存器寄存器 0x01的 bit5自協(xié)商完成和 bit2link 狀態(tài)。很多驅(qū)動(dòng)把第 2 步和第 4 步混在一起先寫(xiě) BMCR 使能自協(xié)商再寫(xiě)軟復(fù)位結(jié)果復(fù)位把自協(xié)商使能又清掉了。順序上一定要先復(fù)位復(fù)位完成后再寫(xiě)配置。5.4 多 PHY 場(chǎng)景的復(fù)位策略一塊板子上有多個(gè) PHY 時(shí)盡量逐個(gè)復(fù)位、逐個(gè)確認(rèn)。同時(shí)對(duì)所有 PHY 發(fā)軟復(fù)位雖然省時(shí)間但多個(gè) PHY 同時(shí)重啟自協(xié)商可能帶來(lái)電源沖擊也可能讓 MDIO 總線出現(xiàn)短時(shí)間異常。逐個(gè)復(fù)位的代價(jià)是初始化時(shí)間變長(zhǎng)但如果把每個(gè)復(fù)位之間的等待時(shí)間優(yōu)化好實(shí)際影響很小。另外多 PHY 場(chǎng)景下一定要維護(hù)一張 PHY 地址映射表把“邏輯端口號(hào)”和“MDIO PHY 地址”對(duì)應(yīng)起來(lái)不要把 PHY 地址硬編碼散落在各處。調(diào)試時(shí)打印復(fù)位前后每個(gè) PHY 的狀態(tài)能省非常多時(shí)間。6. 調(diào)試軟復(fù)位的三條硬件經(jīng)驗(yàn)6.1 新板卡先測(cè)時(shí)鐘和復(fù)位釋放拿到新板卡的第一件事不是燒代碼而是用示波器測(cè)三樣?xùn)|西PHY 參考時(shí)鐘是否起振、頻率是否準(zhǔn)確、RST# 復(fù)位釋放時(shí)間是否滿足 datasheet 要求。這三樣如果沒(méi)問(wèn)題軟件層面的排查才有意義。我見(jiàn)過(guò)因?yàn)榫д裉摵笇?dǎo)致 PHY 軟復(fù)位不生效的也見(jiàn)過(guò) RST# 上拉電阻沒(méi)貼導(dǎo)致 PHY 一直處于復(fù)位狀態(tài)的。這些問(wèn)題單純靠軟件是發(fā)現(xiàn)不了的。6.2 寄存器快照改動(dòng)前先留證據(jù)調(diào)試 PHY 問(wèn)題時(shí)建議在每次改動(dòng)寄存器前把當(dāng)前 BMCR、ANAR、狀態(tài)寄存器的值打印出來(lái)。后面如果改了配置發(fā)現(xiàn)鏈路異??梢詫?duì)比快照判斷是哪個(gè)配置被覆蓋了。軟復(fù)位失效場(chǎng)景下快照尤其有用能確認(rèn)復(fù)位前后寄存器變化是否符合預(yù)期。6.3 把軟復(fù)位做成單獨(dú)調(diào)試接口不要把軟復(fù)位邏輯藏在完整初始化函數(shù)深處。把它做成一個(gè)獨(dú)立接口比如調(diào)試串口命令phy_reset addr這樣無(wú)論什么時(shí)候懷疑軟復(fù)位有問(wèn)題都能單獨(dú)觸發(fā)觀察結(jié)果。完整的初始化流程里調(diào)用這個(gè)接口最小化腳本里也調(diào)用這個(gè)接口調(diào)試一致性和復(fù)現(xiàn)路徑都會(huì)清晰很多。在實(shí)際項(xiàng)目里我最后都是靠這種分離式設(shè)計(jì)快速定位問(wèn)題的。一旦懷疑軟復(fù)位不生效先通過(guò)調(diào)試接口單獨(dú)復(fù)位如果單獨(dú)復(fù)位正常再回頭查驅(qū)動(dòng)初始化的上下文邏輯。6.4 軟復(fù)位失效但讀 ID 正常優(yōu)先查邏輯如果軟復(fù)位失敗但 PHY ID 能正常讀到那可以確定 MDIO 總線基本通路是好的問(wèn)題大概率在邏輯層地址配錯(cuò)、時(shí)序不夠、配置覆蓋。如果 PHY ID 都讀不到先別急著查軟復(fù)位總線電氣和硬件復(fù)位才是重點(diǎn)。這是我調(diào)試以來(lái)總結(jié)得最實(shí)用的一條排查順序ID 能讀查邏輯ID 不能讀查硬件。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
午夜免费视频1000| 人妻9117c| 吻戏激情性巴克| 狠狠干91| 天天草AV| 26uuu国产免费观看| 一区二区无码视频| 二对二中文字幕。| 97超碰国产亚洲精品资源| 91被操| 91l欧美在线| 精品少妇一区二区三区在线视频 | 国产亚洲日韩欧| 少妇久久久免费| 男人天堂站| 日本欧美一区二区三区免费| 99re这里只有精品9| 干b在线性社区| 色牛牛AV| 国产精品婬乱一级毛片彝族| 午夜人人操| 九九热精品视频六| 欧美综合自拍亚洲综合图| 天天干美少妇一区| 亚洲综合小说另类图欧美视频激情小说色五月天 | Aa东京男人的天堂| 97视频在线免费看| 色色五月天婷婷| 国产h片在线观看视频| 91天美| 夜夜高潮夜夜爽国产伦精品| 91久精品| 超碰97爽| 夜夜爽妓女| 在线 制服丝袜中出 人妻| av片在线观看免费播放| 中文字幕中文字幕一区二区| 搞中出久久| 日日躁天天躁狠狠躁| 亚洲诱惑天堂 | 97亚洲自在精品在线观看| 超碰天天操你比| 青青草色情网站视频| 亚洲操操| 亚洲中文字母在线播放| 怡红院一区二区熟女人妻| 天天日天天搞天天干| 欧美岛国精品在线观看| 亚洲国产丝袜熟女av| 国产精品97视频| 婷婷五月天色网| 久久精品国产99久久,亚洲日韩久久日本一区一区三区 | 偷拍 亚洲 欧美| 国产又粗又长的视频| 久久久天美| 情侣操 逼视频99| 超碰97最新人妻| 操香逼| 富二代亚洲精品99| 亚洲射综合网| 久久亚洲天天做| 在线亚洲精品久久久| 少妇天堂网络| 亚洲日韩久久精品一区| 日韩BBN| 懂色Av一区二区三区| 天堂成人网| 91久久久亚洲| 一级性爱视频免费观看 | 99久久九九| 亚洲有码 欧美精品| 一区=区三区视频| 一区二区三区四区五区高清无码永久视频 | 亚洲色图亚洲无码强奸乱伦| 亚洲男人bt天堂| 96AV精品| 亚洲影视第一页| 综合色欧美| 中文字幕一区二区视频在线观看| 亚洲一区二区三区不卡国产欧美| 国产丝袜欧美在线视频| 99久久久er直播网址| 五月婷婷丁香| 蜜桃精品一区二区三区ww| 久久超碰97中文字幕| 亚洲老司机123专区| 96精品久久久| 俄罗斯一区二区视频在线观看| 蜜乳av首页| 天天综合精品| 久久春色| 顶级丝袜熟女一区二区三区| 人人摸人人干| 天天色综合影视网| 99久久精品无码一区二区| 国产超碰人人操| 青娱乐大香蕉| 日本不卡五区| 床上啊啊啊一区二区三区| 亚洲av总站| 亚洲第一页综合在线| 又大又大又大又粗爽高潮观看 | 婷婷大香蕉| 青春草A| 无码二级三级| 色色福利| 神马久久久久久久久久久久| 9色国产精品一区粉嫩| 插穴性爱视频在线观看| 亚洲性综合9| 丰满人妻-区二区三区免费| 白 大 人妻 区 在线| 久久久久久99999国产精品| 激情综合五月婷婷| 无码人妻系列少妇| 蜜桃av综合网发布| 香蕉av一区二区三区| 婷婷色综合欧美日韩| 五月婷婷基地| 夜夜嗨免费视频| 亚洲欧洲日韩天堂av| 中文字幕在线高清男人的天堂 | 啊啊啊啊啊好舒服视频| 高潮的A片激情扒开一区| 思思热在线观看| 亚洲天堂少妇| www.色综合| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 日韩内射视频| 午夜九九| 眼镜人妻101.com| 日韩欧美国产高清视频| 一区二区三区 日韩欧美| 成人热久久精品| 最新无码国产| 99只有精品| 日韩性爱毛片操骚逼| 国产精品制服丝袜中文字幕日韩一区二区三区| 91麻豆天美传媒在线| 丰满的三级少妇欧美久久久| 熟女高潮精品一区二区| 亚洲AV无码秘 蜜桃臀国精产品| 99re在线观看| 超碰色综合| 亚洲日韩av一区二区三区百合| 老司机福利青青草| 亚洲成人精品久久久| 日韩av电影成人在线| 国产天天骚| 国产精品女生av| 香蕉久久精品| · —级AA伦aa坐爱午夜极速ⅴA一区天天噪天天噪天天噪 | 欧美一区91大爱| 国产97色在线| 欧美精品91| 国产白嫩漂亮KTV在线| 91色s| 色丁香久久| 精品欧美乱码久| 国产少妇与亚洲av| 久久久夜夜嗨免费视频| 加勒比综合在线| 91AV老熟女视频| 国产高清精品一区二区三区毛片 | 久/久精品99看9| 欧美日韩欧美| 久久av色| 天天干,夜夜爽| 免费视频一二三区| 亚洲诱惑天堂| 欧美精品双插| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 日本激情免费大片| 熟女人妻一区二区三区免费看 | 免费精品AB| 中文久久爆乳| 6080YYY午夜理论片在线观看| 亚洲色棕合| 激情露脸爱| 国产亚州日韩欧美看片| 亚洲春色欧美激情自拍| 9精品久久久久| 青青草色情网站视频| 亚洲欧洲中文日韩女优乱码| 蜜桃久久一区二区| 免费草草草草草视频| 男人天堂2012| 思思热免费视频观看| 精品无码一区二区三区色欲| 天天亚洲| 蜜臀网址在线| 欧洲自拍第一页| 91暧暧| 婷婷久久综合久| 日韩精品碰碰| 超碰色图| 夜夜欧美| juliaann欧美丝袜办公室| 330dv亚洲成年视频网| 人妻少妇蜜桃视频欧美一区| 激情抓乳插进去啪啪啪日韩| 人人操我人人干| 91欧美www| 91在线/欧洲| 丝袜内射| 久久久影院| 五月丁香婷婷综合| wwwxxx日本爽| 84YTCOM性无码| 欧美亚洲激情| 玖玖爱影院| 久九九九九九九九热| 麻豆a'v电影| 国产成人主播| 久久久久元码视频| 啊灬快c我灬啊灬用力灬啊灬-国产精品性做久久久久久-成人AV | 日本东京热大香蕉a片| 欧美日韩国产中文超碰| 99热综合在线| 亚洲精品蜜桃久久久一区二区三区| 婷婷伊人綜合中文字幕| 青青草天天亲夜夜操网| 夂久色| 熟妇熟女视频一区二区三区| 日韩性色b| 五月婷婷激情| 在线观看十八禁| 国产又爽又黄| 婷婷色播婷婷| 青娱乐av在线| 九一亚洲国产免费| 97视频620| 久插综合| 亚洲高清男人天堂| 91天美免费| 亚洲 欧美综合| 在线二区不卡| 欧美18 在线观看| 久久久久久69国产一区二区| 再深点灬舒服灬太大了好硬好爽| 色婷五月| 日本亚洲熟女视频| 香蕉99秘 精品一区丁香| 天美麻豆精品视频99| 欧美黑人与女人91~| 黑丝日韩av丝袜av| 啊啊啊慢点| 亚洲色91| 涩涩这里只有精品视频| 亚洲精品aa久久伊人| 日韩人妻一区二区精品| 口爆综合网| 久久25| 97这里只精品| 久久久999国产| 九九草| 黑人猛交| 成人五月香网在线| 人妻无码视频一区二区三区久久| 丝袜 中出 制服 人妻 美腿 中文字幕| 久久综合97| 日韩熟女精一区二区三区不卡| 免费精品无码一级毛片牛牛影视| 久久久久久电影| 国内三级自拍小视频在线观看| 麻豆蜜桃视频在线观看| 亚洲涩图欧美| 东北少妇高潮zzzz| 色婷婷狠狠| 久久99手机免费视频| 99国产精品自在自在| 亚洲骚逼少妇| 91爱网| 精品无码一区二区三区| 免费中文在线| 五月天久久婷婷亚洲 | 亚洲欧美日韩电影网站一区| 中出人妻中文字幕91在线| 亚州男人天堂| 99操逼| 天操天操夜操夜月操月年年操| 99热8| 女人天堂av在线播放| 超碰在线人妻| 欧美日韩制服| 日本日逼视频网| 欧美视频激情久久久久久| 青草一区二区| 99热99色| 蜜臀99久久精品久久久久久| 亚洲美女自拍偷拍视频| 丁香婷婷激情五月天无毒不卡| 国产精品国产精品国产| 三级三级三级日本99| 人人摸人人舔一区二区| 亚洲第一狼人丝袜美女另类| 热久久国产精品视频大陆精品| 97 国产精品| 久久在线观看免费视频| 97操碰| 91大香蕉伊人| 久久激情五月| 久久黄人人爽视频| 日本天天吊| 啊啊啊爽爽| 激情婷婷| 国产美女高潮| 夜夜爽妓女| 国产精品直播在线观看直播| 顶级少妇BT天堂| 日韩三级伦理中文字幕| 欧美男人一区| 97欧美精品| 人妻啊啊人妻啊| 亚洲色图图片| 久久久久成人蜜桃精品| 我想要 啊 啊 啊| 性爱动态120秒| 黄骗免费网站| 久久欧洲| 亚洲五码一区二区三区| 日韩亚洲中文字幕在线| 91精品久久久久久久久久| 九九精品99| 天天插天天操天天摸天天射天天看| 国产亚洲日韩在线三区黑人| 90后后入| 蜜臀久久一区二区| 激情文学亚洲| 人人手机欧洲亚洲国产人妻| 国产家庭乱伦性爱视频| 亚欧操逼片在线观看 | 99成人| 激情欧美97| 亚洲夜夜欢无码一区二区| 白 大 人妻 区 在线| 免费在线观看国内色片网站网址| 欧美综合色图网| 国产成人+综合亚洲+天堂| 日本大香蕉综合网红本杳社区| 97WW精品| 久久久国产成人一区二区三区在线 | 久久久蜜桃一区二区三区| 国产真实子伦对白| 日本天堂在线播放| 久久免费中文字幕在线观看| av无码av无码专区| 啊啊啊啊啊好多水| 亚洲91综合| 欧美综合加勒比在线| 国产精品麻豆视频网站| 亚洲女人91| 久久 亚洲 日韩 人妻| 精品一二三区久久AAA片| 91丝袜美女视频| 男人的天堂2018.| 亚洲第一狼人丝袜美女另类| 国产久久久久久| 超碰亚洲97| 色黄污美女啪啪啪免费网站| 男人亚洲天堂| 国产超碰欧美| 天天看天天综合成人网| 欧亚在线视频| 欧美国产精品| 国产午夜在线观看| 亚洲成人在线乱码色午夜| 国产传媒一区日韩| 69一区二区三区 | 日日日啊啊啊| 不卡超碰护士AV在线免费播放| 青娱乐国产盛宴视频| 毛片久久| AV麻豆免费一区| 日韩欧美~中文字| 欧美嫩性色| 少妇无码av专区线| 五月天久久人妻| 91久久久老司机| 天美一二三在线观看Av| 夜夜高潮夜夜爽高清视频一 | 精品人妻夜夜草| 乱伦系列一区二区| 色嗨嗨在线| 91精品人妻一区二区三区蜜桃| …中文字幕亚洲乱,97人妻无码费视…| 热天堂一区二区| 大香蕉AV在线| 色婷婷影院| 欧美疯狂做爰xxxx| 国产激情在线观看| 亚洲美女自拍偷拍视频| 在线午夜成人无码视频| 老司机午夜精品视频| 亚洲人天堂| 国产精品欧美在线观看| 久久伊人影院| 久久久精品网站| 国产精品视屏| 尹人免费观看视频在线| 国产一级特黄大片处女| 一区操逼日比视频| 国产成人天堂| 热热色色综合| 久久久久久99999国产精品| 学生妹天天看| 情色大香蕉| 97操碰| 国产精品高清2021在线| 十八禁视频一区二区| 美国日韩黄片| 3D污黄视频在线观看| 亚洲 日韩 丝袜 熟女 变态| 99精品久久久久久久婷婷| 日韩卡一卡二卡三在线| 丁香五月婷婷啪啪| 91在线欧色| 骚逼高潮久久精品| 开心激情站| 亚州成人a∨| 丰满少妇一区二区三区四区观看| 色九九九综合| 啊啊啊男女| 欧美综合另类| 精品高潮| 黄页视频网站野外| 黄色网址在线免费观看| 热久久这里只有精品| 亚洲啪啪性视频| 久久欧美按摩999| 欧美色日本| 欧美女同在线| 人人操 欧美| 国产欧美日韩精品中文| 肥臀熟女福利视频一区二区| 夜夜青青无码影院| 淫荡网址| 青娱乐欧美激情一区二区 | 97色婷婷| 97超色| 久操电影网| 91性高朝久久久久久久久| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 内射夫妻三片| 99热9| 蜜臀AV成人精品蜜臀| 国产日韩美女小穴视频网站不卡| yaouchengrenav| 免費黃色視頻觀看一| 97干色天堂| 亚洲精品97p| 亚洲欧洲日本精品中文a∨| 国产尹人在线视频免费| SUV一区二区在线看| 又粗又长又大国产不卡| 国产高清无码一区二区三区四区皇冠| 亚洲AV资源| 精品美女少妇一区二区| 熟女字幕| 国产AV人人夜夜澡人人爽麻豆| 精品无码欧美三级| 亚洲欧美性生活| 久热精品在线| 乱伦日本色图AⅤ| 大香网伊人久久综合网eew| 91狠狠狠| 国产精品国产拍高清AV| 国产欧洲精品亚洲午夜拍精品| 热99这里有精品综合久久| 丁香婷婷久久| 91天天综合在线观看| 成 人片 黄色大片| 九九九九日本 | 日本色色色| 国产精品午夜精品| 免费av大片| 久久综合av| 三级精品三级在线观看| 精品国产污一区二区三区| 欧美日韩色| 91丨九色丨东北熟女| 人人妻人人色一区二区三区| 日韩精品啪啪啪| 国产精品熟女丝袜一区二区| 操死我了啊啊啊| 中文字幕123| 久久中文字幕女同性恋一区| 性爱1区| 骚鸭AV| 久热婷婷| 亚洲在线a| 91n美女视频| 2019天天干| 麻豆久久久久久久久丝袜| 亚洲交换| 亚洲午夜免费狠狠干| 国产精品播放| 国产午夜福利视频在线| 欧美性爱1080p| 久久精品视频一区三区小泽玛利亚| 黄色片,com| 亚洲欲| 日韩操人| 一级黄色性爱裸体视频| www.婷婷| 欧美A片中文字幕| 香蕉免费一区二区三区不读| 高清在线偷拍自拍视频| 国产路线专区| 亚洲一区二区三区麻豆传媒| 在线观看AV片| 日韩一卡二卡三卡| 超碰在线974| 欧美人妻制服| 亚洲色图20p| 日本激情免费大片| 亚洲欧美黄| 任我爽视频在线观看| 亚洲另类小说卡通动漫| 91精品久久久久久| 91精品久久综合熟女| 999综合网| 淫乱图区 | 久久超碰天天| 亚洲天堂资源| 亚洲五月丁香花狠狠干一区二区三区| 亚洲成人黄色在线观看| 国产乱人妻精品入口| 午夜超爽| 九月伊人中文字幕| 欧亚日韩综合精品国产| 热久久91婷婷| 亚洲精品亚洲人成在线麻豆| 日欧操屄| 九久9精品| 国产精品久久久999| 琪琪精品免费一区二区三区| 欧美碰碰综合色| 欧美性爱一区二区三区四区| 亚洲丝袜二区| 久久成人国产| 欧美1区二区三区公司| 人妻密肉在线观看| 亚洲精品性爱片| 大逼色网站| 北野未奈加勒比av| 中 文字幕一区二区三四 五 区日 日 骚| 色婷婷五月综合激情中文字幕| 日本操逼aaaaa| 午夜亚洲| 97视频一区| 中文字幕亚洲欧美在线不卡| 69人妻精品一区二区绯色| 国产激情在线| 国产人妖视频一区在线观看| 欧美在线永久天堂| 一区二区三区一亚洲中文字幕、综合区灬| 久久精品视频28| 黄页大片在线观看| 99精品在线| 婷婷久久大香蕉| 中文字幕精品日韩中文字幕| 97精品免费视频网站| 东京热精品97综合网| 久久a久久| 加勒比在线视频| 久久人妻办公室视频| 婷婷干黄色| 乱伦熟女论坛| 中日韩免费看男女操逼大全| 国产精品 视频| 麻豆视频一区二区| 欧色网址| 亚洲色图欧洲| 亚洲图片另类| 午夜舔阴达高潮视频免费看| 人妻少妇久久中文字幕一区二区 麻豆| 日韩精品人妻中文字幕不卡乱码| 欧美激情黑人| 99热8| 色香综合天天影视综合 | 色九九九九九九| 97久久精品不卡| 亚洲男人天堂视频| 九九九九九九综合| 亚洲天堂2020| 日韩av性爱在线播放| 岛国黄片网站| 日本高清_区二区三区| a v网站在线播放| 九九色精品| 人妻天天爽夜夜爽爽| 麻豆九九九| 精品人妻视频一区二区三区蜜桃视频| 中文字幕人乱码中文字的预防方法 | 久极品在线观看| 六九九九| 96AV久久久| 97色涩| 久久精品操| 男人的天堂久久久| 青娱乐欧美激情一区二区| 在线可观看的黄色网址| 婷婷月色| 极品内射| 正宗无毛一线天嫩逼| 九热中文字幕| 欧美性爱第一区| 中文字幕 国产区| 日本熟妇一区二区三区| 97天天爽| 亚洲日韩av一区二区三区百合| 九九精品美女高溯喷水| 日本孕妇孕交| 国产精品另类一区大香蕉| 亚洲区限制级| 99热线麻豆 | 亚洲欧美清纯| 男女啪啪网站免费视频| 乱伦系列一区二区| 夜夜夜夜夜夜夜夜夜狠狠狠狠狠狠狠| 婷婷九月国产| 2019亚洲男人天堂| 欧洲在线性爱视频| 亚洲成人久久一区二区| 九九精品美女高溯喷水| 死我十八禁| se吧提供91精品国产91久久久久久| 天天干天天狼在线视频| av亚洲天堂资源网站| 婷婷丁香人妻| 日韩操逼HD| 丁香婷婷久久 | 人妻少妇久久中文| 色波多| 婷婷导航| 无码视频一区二区| 精品91| 综合激情婷婷| 日韩人妻精品| 亚洲第一狼人丝袜美女另类| 亚洲色五月| 超碰97久久国| 一级性爱网| 67914亚洲精品| 欧美亚洲韩国视频十五区| 亚洲精品性爱片| 日韩啪啪啪啪啪| 蜜臀99久久精品| 国产av美女被艹的乱叫| 亚洲91综合| 无色无码| 久久久噜噜噜久久人妻| 免费簧片在线观看| 夜夜操中文字幕| 日韩av不卡在线看| 久草婷婷| 国产又色又粗又黄又爽| 久久97资源 网| 91啦人妻| 青青草精品| 亚洲熟女乱色一区二区三区| 国产精品久久久视频| 美女网站91| 丁香五月天堂| 五月天伊人网| 999在线电影香蕉| 精品一区二区三区麻豆| 曰韩欧美国产传媒麻豆第一区| 天天影视亚洲| yirendaxiangjiashipin| 无码人妻精品酒店| 四虎AV无码| 亚洲春色一区二区三区| 四季AV综合网址| 日日夜夜摸| 少妇被玩视频二三区| 青娱乐老司机视频| 狠狠躁天天躁日日躁| 美女极品一区二区三区| 91挑色欧美| 精品国产www久久| 久久青娱乐| 夜夜操二区| 国产美女在线精品免费看| 极品久久久久久久久久久久久久| 亚洲成人av电影在线| 亚洲日本大香蕉1| 五月综合激情| 亚洲丝袜综合| 操人妻少妇中文 | 偷拍亚洲熟女视频播放| 国产精品午夜精品| 亚洲天堂性爱| 国产aⅴ无码片毛片一级网站| 嗯嗯啊啊啊啊轻点视频| 天天爱天天操| 人人做天天爱| 成人九九| 伊人一区二区三区| 可以在线观看AV的网站| 天天日夜干| 亚洲色图国产另类| 99热这里是精品| 内射老妇BBWX0C0CK| 精彩久久中文| 丝袜熟女2P| 中文字幕一区二区韩| 久久激情视频| 操逼内射干逼白丝91| 91天堂色男人的天堂| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 色综合美国| 中文字幕亚洲热播人妻| 91黑丝在线| 日本黄色XXX| 国产夫妻一区二区| 精品成人av一区二区三区在线| 国产精品人妻免费精品| 久久精品成人| 蜜臀AV成人精品蜜臀| 婷婷六月色| 日韩亚洲中文字幕在线| 婷婷久久五月综合激情| 九九九九精品在线| 青女在线| 亚洲国产综合久久久性感熟妇| 日本一区二区三区免费观看| 97超碰大| 久啪| 熟女自慰久久久| 小少妇| 国模精品一区二区三区苹果色戒| 久久受www免费人成| 欧美资源| 999精品乱码| 91天堂丝袜美腿| 欧美综合 站| 国产白嫩精品久久| 国产18精品亚洲精品| 欧美日产国产在线成人第一区| 精品视频在线观看| 美女诱惑久久| 大香蕉伊人75| 欧美 亚洲| 欧美色蜜桃97| 99视频自拍区| 精品人妻15区| 亚洲情色 自拍| 嗯嗯嗯啊啊啊干死我吧| 久久国99999| 嗯啊不要啊啊在线观看视频| 岛国小电影| 91neishe| 人妻丝袜无 码视频专区| 国产激情视频在线观看| 亚洲高清在线| 九九AV| 综合色图区| 日本一本一区二区三区四区五区欧美日韩中文字幕 | 99亚亚热| 女色视频社区| 人妻夜夜爽天天爽麻豆三区网站| 97视频观看| 肉丝网站91| 91中文精品日韩欧美在线| 欧美日本天堂| 亚洲宗合网| 热热色综合网| 九九九九九九九九九国产精品| 少妇久久久免费| 校园春色 亚洲| 国产精品网址| 精品日韩人妻视频| 久久成人国产| 日本Xx性爱| 熟女乱伦二区| 无码91| 一区二区不卡| 一本大道久| 啊啊啊啊啊啊好多水| 欧美国产精品久久九九| 日韩av免费一级电影| 免费簧片在线观看| 日韩另类| 国产一区二区三区不卡手机在线| 91丝袜激情在线| 九九人妻| 色色九区| 亚洲三区视频| 开心激情婷婷| 免費人妻夜夜爽天天爽爽一区| 有码色中文字幕在线观看| 九九九偷拍| 一区二区三区在线美女| 天天综合网站| 天天综合网~91综合网| 97精品| 久久草在线综合视频| 亚洲欧美九九九| 色爱亚洲| 首页中文字幕中文字幕免费| 顶级少妇BT天堂| 97超碰久久色| 日韩15p| 亚洲国产麻豆一区二区三区| 女优视频第10页| 大香蕉青青9| 加勒比伊人| 人妻精品一区二区在线| 蜜色网色哟哟| 欧美天天在线| 天天懆天天日| 殴美,日韩国产伦精品| 亚洲天堂日本| 亚洲97成人在线观看| 五月丁香色婷婷| 九九九九九九九九九九九九九九九女| 极品色综合| 日本精品无码三级网站| 又黑又大又粗| 99热导航| 国产品精品自在在线午夜免费| 色噜噜人妻丝袜a∨先锋影| 极品粉嫩一区二区| 久久噜噜噜精品国产亚洲综合| 久久精品人人做人人看| 视频二区美腿丝袜制服人妻欧美 | 亚洲熟久久| 日韩性爱啪啪视频| 性久久| 老师充足的奶水小说| 欧美天天干| 日本欧美国内在线| 黄色一区三区| heyZO天然素人无码AⅤ专区| 亚洲天堂色图| 丰满人妻一区二区三区免费 | 清纯唯美激情四射| 久久成年片色大黄全免费网站| 欧美极品女人的天堂| 97超碰日韩| 东京太热久久久| 亚洲综合影院| 日本日日色视频| 岛国片在线播放| 欧美性爱网97| 91成人精品在线播放| 中文字幕二区| 综合激情五月丁香| 91丝袜美女视频| 久久亚洲骚逼综合| 亚洲啪啪视频免费| 欧美亚州综合图片| 国产亚洲精品第一最新| 亚洲欧美综合网| 亚洲男人bt天堂| 日韩精品资源专区二区| 老鸭窝黄色视频网站| 久久人人爽爽人人爽人人片αV| 日韩欧亚中文在线| 成人综合久久精品色婷婷| 欧美九九九| 午夜呻吟欧美| 中国国产精品一区视频| 大香蕉性欧美| www.97在线| 女人被男人桶爽视频网站| 97资源站久久| 亚洲,欧美,春色,另类| 免费自拍三级综合| 亚洲天堂少妇| 久久久啊啊| 操高情无码| 久久岛国| 好舒服视频| 99欧美| 欧美性爱18观看| 亚洲一区中文字幕| 久久熟妇五十路一区| 嗯啊抽插大香蕉网页| 啊啊啊水好多| 性色av一区二区| 丁香五月综合| 亚洲精品人妻在线| 97AV在线观看| 日韩亚洲97| 亚洲欧洲美腿丝袜| 日本欧美亚洲高清在线看| 亚欧成人一级片在线播放| 蜜屁Av| 超碰亚洲97| 精品在线观看视频在线| www国产无码| 午夜视频久久久| 大香蕉色网| 天天日少妇逼AV| 一区二区三区四区免费视频| 毛片久久| 1024精品在线| 成人一级二级| 美女啪欧美一区| 一二三四免费视频| 国产91久久九九免费精品无码| 人人模人人看| 91精品丝袜久久久久久| 丝袜色综合| 丰满搜索结果 -第18页- 久久高清无码 | 国产精品一二三区福利| 日本性爱少妇| 欧美色视频在线| 99久久久无码国产精品性啊聊| 玖玖资源视频一区二区三区| 新97国产超碰| 欧美春色| 我想要啊 啊 啊| 伊人伊人LD| 熟女中出视频| 亚洲 中文 女同| 2010男人的天堂| 欧美日韩999| · —级AA伦aa坐爱午夜极速ⅴA一区天天噪天天噪天天噪 | 日本高清久久| 性爱av在线免费观看| 老司机射| 亚洲欧洲精品视频发布| 午夜操逼不卡| 欧美偷拍区| av一区二区三区不卡| 日韩在线国产字幕| 91精品老女人| 欧美天天综合网| 资源新线在线天堂| 欧美 亚洲| 人妻精品一区二区| 久久尹人大香焦视| 亚洲熟妇A V黑人| 青娱乐妇女性生活| 好吊色综合| 色香综合| 家庭乱伦麻豆| 日韩熟女无码| 日韩操逼性鲍| 亚洲国产婷婷在线播放| 操逼www.| 中国探花熟女| 欧美激情综合| 97久久视频| 一区二区 韩日AV| 亚洲国产欧美日韩精品一区二区三区,国产一区二区三区在线看片,欧美性猛交 XXX | 黄色在线网站| 国产一区二区三区导航| 岛国黄色大片网站| 九九色热| 青青草在线成人视频| 大香蕉欧美伊| 91色色综合| 中文字幕免费在线观看| 国产视频第二页| 久久精品一区二区三区四区五区| 国产精品美女视频诱惑| 人妻偷拍一区二区三区| 久久毛卡| 九九热精品| 按摩中文字幕| A男人的天堂| 91蜜桃传媒精品久久久一区二区| 色吊丝 日日骚 清纯唯美| 91亚洲情色| 强奸乱伦AV网址| 国产日本久久免费精品| 日韩AV片| 欧美国产有色电影| 97色欧洲| 中文字幕AV乱伦| 一起草精品人妻| 91九久| 九热超碰| av影片在线观看不卡| 久久首页| a网站免费观看| 1204av韩国| 97在线观看免费| 午夜小电影在线插入淫高潮| 欧美国产成人在线| 91狠狠狠| 国产精品高清2021在线| 手机看片1024你懂的国产| 色噜噜综合在线| 老女人碰碰在线碰碰视频| 精精品人妻一区二区三区| 日韩欧美午夜一区二区| 97碰在线视频| 高清肉丝中文无码| 久操免费在线| 亚洲国产午夜真人一级片中文字幕精品黄网站 | 国产福利夜| 欧亚 另类 久| 强奸国产在线| 成人AV素股で擦久久| 高清孕妇孕交 交孕妇| 99久久精品欧美国产| 91欧美| 久久华人网| 久久久久久久久久va| av天天在线观看| 91在线国产后入风骚翘臀美女素人| 亚洲无码精品AV久久久| 亚洲操操操| 精品中文一区二区| A片A5445444| 黄页大片在线观看| 老鸭窝成人| 亚洲精品第一| 亚洲综合性网址| 看日韩黄片| 亚洲成人av色网| 欧美情色亚洲| 睡产熟女乱伦| 亚洲综合贴图91| 亚洲国产欧美一区二区潘金莲| 亚洲宅男天堂| 美女黄页网站| 99在线观看| 精品人妻一区二区三区蜜桃视频| 日韩性爱1级片视频| 亚洲综合网图| 久久精品人妻一区| 天天日老熟妇| 国产高清自拍| 欧插网站| 久久精品一区二区三区四区五区| 中出91| 熟女熟妇一区二区三四区| 精品久久人妻成人网| 婷婷精品国产欧美精品亚洲人人爽| 正在播放国产精品一区| 麻豆天美制片厂网站视频| 日韩成人私密一级精品av| av婷婷色网| 亚洲欧美另类图片| 欧美熟爽综合| 91色交| 人妻出轨一区二区三区| 亚洲人妻中文在线视频| 精品人妻一区二区免费蜜桃| 黄片www视频免费| 国产日韩精品一区二区三区| 91欧洲国产成人久久精品网站| 久久久久久久久久久久久久久性生活视频 | 日韩欧洲操屄视频| 91久久18禁| 亚洲欧洲精品视频发布| 1204人成网站色www| 日本污ww视频网站| 亚洲风情在线观看| 宅男91视频在线播放| 一级成人性爱| 国产性爱欧美性爱在线| 天天做日日爱夜夜爽| 久久伊人东京热| 丰满人妻-区二区三区免费| 国产高清自拍视频| 久9久9精品| 人人扣人人操| 日韩欧无码一区二区三区免费不卡| 7月婷婷综合| 欧美老妇曰批的视频| 色97综合中文字幕| 久碰视频| 7777奇米影视久久| 少好三P| 97九色人妻| 手机在线中文字幕国产 | 日本污ww视频网站| 亚洲情色欧美| 欧日韩在线观看| 超碰九色| 性爱网站一区二区| 妇女乱色二区| 九九九久千久久激情蜜桃在线看 | 亚洲精品一二牛牛| 色伊人91| 青青在线视频免费| 97超碰逼| 另类天堂| 国产一在线观看| 黄色工厂这里只有精品| 第45页一区二区| 久操大香蕉| 色就色综合| 久久东京热久久| 蘋果手機免費看成人Av| 午夜人妻精品综合在线| 久久综合亚洲色1080p| 欧美丝袜中文字幕07在线| 欧亚久久偷拍视频| 色播五月婷婷| 日韩免费在线视频观看| 久草免费在线视频| 噜噜噜亚洲精品| 中文字幕国产精品1区| 天天做日日爱夜夜爽| 三级日韩一区二区三区| 亚洲色婷婷综合久久一区二区三区| 夜夜高潮夜夜爽高清视频一| 国产欧美日韩在线不卡第一页| 国产精品原创巨作?v网站| 亚洲欧美碰碰| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 狠狠中文字幕| 久久东京国产精品视频| 亚洲日本激情| 精品九九| 男人天堂新在线| 欧美色图片欧美色图| 精品人妻一区二区乱码一区二区| 口爆综合网| 亚洲色久| 成年人一级黄色毛片大全在线观看| 国产无马在线| 欧美超碰97| 色色九区| 自拍啪啪视频| 国产精品色约约| 91欧美性| 91天美传媒精品| 欧美少妇一区二区三区| 亚州少妇| 欧苏综合色综合| 五月婷婷丁香六月| 欧美日韩国内不卡| 午夜偷拍久久熟女| 天天看天天在线精品| 欧美一级AAAAAAA| 96精品久久久久久久久久| 亚洲熟妇A V黑人| 久久久久成人网| 欧美少妇高潮视频| 亚洲,欧美,综合网| 日本精品一区二区三| 97超色| 蜜桃臀AV在线| 激情内射| 日本二区不卡| 国产在线激情| 天天肏夜夜肏| 91高潮| 曰韩中文人妻视频| 免费岛国一级片| 欧美 精品国产制服第一页 | 欧美亚洲日韩16色| 干B| 五月天亚洲网| 中文三一区| 蜜臀久久99精品久久久久久-DVD| 亚洲毛片久久| 亚洲av噜噜噜噜噜噜| 激情五月天婷婷| 亚洲网污污污污|