生活随笔
收集整理的這篇文章主要介紹了
Modern Standby 调试的准备
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
《人月神話》是一本軟件工程的著名書籍。其中“人月”的是一種表示勞動時(shí)間的計(jì)量單位。比如,一個(gè)軟件需要3個(gè)人5個(gè)月來完成,這個(gè)軟件的工作量就可以描述為 3*5=15人月。當(dāng)然,因?yàn)檐浖O(shè)計(jì)是復(fù)雜的思維勞動,用上面的衡量辦法很可能出現(xiàn)下面這樣的推理:一頭豬五個(gè)月下五個(gè)仔,換算下來一個(gè)豬仔相當(dāng)于一個(gè)豬月,那么如果需要十個(gè)豬仔只需要十頭豬一個(gè)月即可…….
其中的一章名稱是“沒有銀彈”。“銀彈”這個(gè)詞來源于歐洲中世紀(jì)的傳說。說的是狼人這樣的怪物,一般的子彈是打不死它的。必須使用銀子做的子彈才能殺死它。(說道這里我忽然發(fā)覺這個(gè)詞聽起來充滿了貴族氣息,比如月光下帥氣的男主角從容的掏出手槍,裝上散發(fā)出銀色光芒的子彈然后射死怪物;相比之下國產(chǎn)的盜墓小說提到的對付“大粽子”的墨線糯米還有黑驢蹄子則充滿了鄉(xiāng)土氣息……)后來“銀彈”這個(gè)詞就被用來形容,那些特別有效果、一用就很靈的方法。這章節(jié) “沒有銀彈”的意思是,軟件工程是一個(gè)超級復(fù)雜系統(tǒng),沒有任何特效的方法,可以一直提高效率。在Debug Modern Standby 的時(shí)候同樣 “沒有銀彈” 。需要有足夠的心理預(yù)期,因?yàn)檎麄€(gè)過程可能會拉的很長有很多試驗(yàn)需要進(jìn)行,必須保持足夠的耐心。最常見的問題是在Debug 過程中因?yàn)殪`光一閃而進(jìn)行跳躍試驗(yàn),漏掉一些因素最終導(dǎo)致數(shù)據(jù)和結(jié)論相互矛盾。因此,建議在上手的時(shí)候保持足夠的耐心和勇氣,盡量不厭其煩的將試驗(yàn)和條件逐一記錄下來。
在動手之前,請保證如下事宜:
有一臺能夠進(jìn)行參考的系統(tǒng),最好是Intel RVP。在出現(xiàn)進(jìn)入 MS死機(jī)或者重啟時(shí),可以非常有效的比對出當(dāng)前是HW還是FW 問題。如果出現(xiàn)HW工程師開始研究FW設(shè)定,然后FW工程師反復(fù)研究電路圖,通常意味著問題已經(jīng)進(jìn)入了死胡同; 在干凈的系統(tǒng)上進(jìn)行試驗(yàn)。這里的干凈系統(tǒng)指的是只包括Windows和BKC驅(qū)動的系統(tǒng)。比如,XX電腦管家可能會導(dǎo)致系統(tǒng)無法進(jìn)入MS,愛奇藝的存在也會影響進(jìn)入 MS; 使用已經(jīng)驗(yàn)證過的,確定支持 MS 的外圍設(shè)備,特別是硬盤。作為工程師我們只能解決自己設(shè)計(jì)上的問題,無法解決部件的問題。特別是硬盤這種外觀型號能夠完全一致但是內(nèi)部 FW版本不同的部件。另外,用具體試驗(yàn)來作為認(rèn)定一些部件有問題是非常有說服力同時(shí)容易讓人接受的。比如,硬盤是進(jìn)入 MS 的關(guān)鍵部件,Intel SoC 無法兼容UMIS的 NVME 和FORESEE的SSD會讓系統(tǒng)Block在 PC2; 進(jìn)行測試時(shí)請拔掉USB設(shè)備,包括鍵盤鼠標(biāo)和 Hub,理論上這些都不會影響MS,唯一的問題是你不知道你手上的是不是不影響MS的; 顯示器可能會影響進(jìn)入 MS。我聽說過這樣的事情,但是并沒有親見,如果有條件建議多用幾個(gè)顯示器試驗(yàn); 檢查所有的 GPIO 設(shè)定。最好讓 HW 提供GPIO 設(shè)定的表格,雖然他們通常并不情愿,但是這個(gè)確實(shí)應(yīng)該他們做,只有他們才能深刻的理解每一根GPIO的功能。設(shè)定之后在 Windows下用 GPIO 工具導(dǎo)出最終結(jié)果然后檢查是否和HW設(shè)定匹配。我不認(rèn)為有“高級錯(cuò)誤” 和“低級錯(cuò)誤”的差別。但是你可以想象當(dāng)你和老板解釋為什么某個(gè)問題花費(fèi)了3周才能解決時(shí),“GPIO設(shè)定錯(cuò)誤”和“Intel 給出來的 PMC 有Bug,結(jié)果他們用了二十多天在我們不停的催促下才給出了更新的版本”哪種解釋更容易讓他接受; 如果設(shè)計(jì)有 ThunderBolt/TCSS ,務(wù)必請 HW保證設(shè)計(jì)同 RVP 相同,理論上用任何GPIO都是可行的,但是因?yàn)樯婕暗街T多的 FW 你無法保證其中能夠配合你的設(shè)計(jì)。之前我碰到過一個(gè) Camera 模塊一直無法點(diǎn)亮,HW 測量表明對應(yīng)的 MIPI Clock 頻率不正確,在我研究三天無果焦頭爛額甚至找不到能夠配置頻率的寄存器后,驅(qū)動工程師承認(rèn)他在驅(qū)動中Hard Code成固定的頻率; 盡量關(guān)閉BIOS中的安全相關(guān)的設(shè)定,比如:Secure Boot。因?yàn)檫@些項(xiàng)目可能會影響測試軟件以及測試結(jié)果。當(dāng)然如果試驗(yàn)發(fā)現(xiàn)確實(shí)會這樣,后面找 Intel 來解決就好了(這也意味著其他家會有同樣的問題,不用擔(dān)心); 不要連接互聯(lián)網(wǎng)。這句話的意思是:從安裝系統(tǒng)開始,可以連接局域網(wǎng),但是必須保證沒有連接到互聯(lián)網(wǎng)上。 Windows 后臺有升級操作,但是你不知道的動作和進(jìn)度。我碰到過多次工作正常的系統(tǒng)在連接一次互聯(lián)網(wǎng)之后就變得不穩(wěn)定,明確的結(jié)果能夠給我們明確的方向,不穩(wěn)定的結(jié)果非常有可能誤導(dǎo)我們。 建議在開始之前關(guān)閉 RTD3 功能,這個(gè)功能對省電有幫助,但是 MS 沒有幫助。在項(xiàng)目開始的時(shí)候,Codebase 中的 RTD3 設(shè)定的 GPIO 和你項(xiàng)目硬件設(shè)定不符有可能導(dǎo)致奇怪的問題; 可以多用用全盤鏡像的工具,比如:Macrium Reflect 【參考1】,這樣可以及時(shí)發(fā)現(xiàn)因?yàn)轵?qū)動更新導(dǎo)致的問題;
當(dāng)上述工作完成后,就可以開始進(jìn)行 Debug 了, 具體的方法就是運(yùn)行 Power House Mountain 然后查看結(jié)果,使用 Power Button 讓系統(tǒng)進(jìn)入MS,推薦十五分鐘以上,然后使用 ?wpr -stop MSA.etl 生成記錄文件“msa.etl” 。具體有如下操作:
如果Sleep MS 的時(shí)候有異常重啟,可以通過BIOS設(shè)定 CPU C-Status Limitation的方式來判斷是否和MS相關(guān)。比如,Limit 到 C8 之后不會發(fā)生重啟,就能確定問題是SLPS0 信號發(fā)出時(shí)導(dǎo)致的問題;通常這種問題是和硬件設(shè)計(jì)相關(guān)還需要請 HW 幫忙測試找到原因; 如果PHM提示某個(gè)設(shè)備有問題沒有 Power Gated, 最簡單的方法是關(guān)閉之然后繼續(xù)試驗(yàn)。特別注意的是:Audio設(shè)備不要輕易關(guān)閉,一些能夠正常工作的系統(tǒng)關(guān)閉 Audio 之后反倒變得無法進(jìn)入CS,據(jù)說這個(gè)問題是同 GFX Driver 有關(guān); 如果發(fā)現(xiàn)某個(gè)外部 PCIE 設(shè)備有問題,需要確認(rèn)對應(yīng)的 Clock Request Pin 是否正確。在 PHM 的 Log中有這個(gè)的讀取結(jié)果,結(jié)合電路圖進(jìn)行確認(rèn)。當(dāng)然,這里我非常建議用示波器之類的確認(rèn)這個(gè)Pin是否工作正常。 如果PHM 提示 CSME 工作異常,首先需要確認(rèn) BIOS中的ME 版本和系統(tǒng)驅(qū)動是否匹配,其次還要檢查沒有使用的SMB Pin之類是否正確關(guān)閉;
從上面的描述也可以看到,幾乎所有的方面都會對 MS 產(chǎn)生影響,這也是為什么“在Debug Modern Standby 的時(shí)候同樣 ‘沒有銀彈’ 。” 的原因。如果考試之前老師表示這本書全部都是重點(diǎn),那么也就相當(dāng)于沒有重點(diǎn)........
Good Luck, BIOS Engineer!
總結(jié)
以上是生活随笔 為你收集整理的Modern Standby 调试的准备 的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔 網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔 推薦給好友。