《人月神话》是一本软件工程的著名书籍。其中“人月”的是一种表示劳动时间的计量单位。比如,一个软件需要3个人5个月来完成,这个软件的工作量就可以描述为 3*5=15人月。当然,因为软件设计是复杂的思维劳动,用上面的衡量办法很可能出现下面这样的推理:一头猪五个月下五个仔,换算下来一个猪仔相当于一个猪月,那么如果需要十个猪仔只需要十头猪一个月即可…….

其中的一章名称是“没有银弹”。“银弹”这个词来源于欧洲中世纪的传说。说的是狼人这样的怪物,一般的子弹是打不死它的。必须使用银子做的子弹才能杀死它。(说道这里我忽然发觉这个词听起来充满了贵族气息,比如月光下帅气的男主角从容的掏出手枪,装上散发出银色光芒的子弹然后射死怪物;相比之下国产的盗墓小说提到的对付“大粽子”的墨线糯米还有黑驴蹄子则充满了乡土气息……)后来“银弹”这个词就被用来形容,那些特别有效果、一用就很灵的方法。这章节 “没有银弹”的意思是,软件工程是一个超级复杂系统,没有任何特效的方法,可以一直提高效率。在Debug Modern Standby 的时候同样 “没有银弹” 。需要有足够的心理预期,因为整个过程可能会拉的很长有很多试验需要进行,必须保持足够的耐心。最常见的问题是在Debug 过程中因为灵光一闪而进行跳跃试验,漏掉一些因素最终导致数据和结论相互矛盾。因此,建议在上手的时候保持足够的耐心和勇气,尽量不厌其烦的将试验和条件逐一记录下来。

在动手之前,请保证如下事宜:

  1. 有一台能够进行参考的系统,最好是Intel RVP。在出现进入 MS死机或者重启时,可以非常有效的比对出当前是HW还是FW 问题。如果出现HW工程师开始研究FW设定,然后FW工程师反复研究电路图,通常意味着问题已经进入了死胡同;
  2. 在干净的系统上进行试验。这里的干净系统指的是只包括Windows和BKC驱动的系统。比如,XX电脑管家可能会导致系统无法进入MS,爱奇艺的存在也会影响进入 MS;
  3. 使用已经验证过的,确定支持 MS 的外围设备,特别是硬盘。作为工程师我们只能解决自己设计上的问题,无法解决部件的问题。特别是硬盘这种外观型号能够完全一致但是内部 FW版本不同的部件。另外,用具体试验来作为认定一些部件有问题是非常有说服力同时容易让人接受的。比如,硬盘是进入 MS 的关键部件,Intel SoC 无法兼容UMIS的 NVME 和FORESEE的SSD会让系统Block在 PC2;
  4. 进行测试时请拔掉USB设备,包括键盘鼠标和 Hub,理论上这些都不会影响MS,唯一的问题是你不知道你手上的是不是不影响MS的;
  5. 显示器可能会影响进入 MS。我听说过这样的事情,但是并没有亲见,如果有条件建议多用几个显示器试验;
  6. 检查所有的 GPIO 设定。最好让 HW 提供GPIO 设定的表格,虽然他们通常并不情愿,但是这个确实应该他们做,只有他们才能深刻的理解每一根GPIO的功能。设定之后在 Windows下用 GPIO 工具导出最终结果然后检查是否和HW设定匹配。我不认为有“高级错误” 和“低级错误”的差别。但是你可以想象当你和老板解释为什么某个问题花费了3周才能解决时,“GPIO设定错误”和“Intel 给出来的 PMC 有Bug,结果他们用了二十多天在我们不停的催促下才给出了更新的版本”哪种解释更容易让他接受;
  7. 如果设计有 ThunderBolt/TCSS ,务必请 HW保证设计同 RVP 相同,理论上用任何GPIO都是可行的,但是因为涉及到诸多的 FW 你无法保证其中能够配合你的设计。之前我碰到过一个 Camera 模块一直无法点亮,HW 测量表明对应的 MIPI Clock 频率不正确,在我研究三天无果焦头烂额甚至找不到能够配置频率的寄存器后,驱动工程师承认他在驱动中Hard Code成固定的频率;
  8. 尽量关闭BIOS中的安全相关的设定,比如:Secure Boot。因为这些项目可能会影响测试软件以及测试结果。当然如果试验发现确实会这样,后面找 Intel 来解决就好了(这也意味着其他家会有同样的问题,不用担心);
  9. 不要连接互联网。这句话的意思是:从安装系统开始,可以连接局域网,但是必须保证没有连接到互联网上。 Windows 后台有升级操作,但是你不知道的动作和进度。我碰到过多次工作正常的系统在连接一次互联网之后就变得不稳定,明确的结果能够给我们明确的方向,不稳定的结果非常有可能误导我们。
  10. 建议在开始之前关闭 RTD3 功能,这个功能对省电有帮助,但是 MS 没有帮助。在项目开始的时候,Codebase 中的 RTD3 设定的 GPIO 和你项目硬件设定不符有可能导致奇怪的问题;
  11. 可以多用用全盘镜像的工具,比如:Macrium Reflect 【参考1】,这样可以及时发现因为驱动更新导致的问题;

当上述工作完成后,就可以开始进行 Debug 了, 具体的方法就是运行 Power House Mountain 然后查看结果,使用 Power Button 让系统进入MS,推荐十五分钟以上,然后使用  wpr -stop MSA.etl 生成记录文件“msa.etl”。具体有如下操作:

  1. 如果Sleep MS 的时候有异常重启,可以通过BIOS设定 CPU C-Status Limitation的方式来判断是否和MS相关。比如,Limit 到 C8 之后不会发生重启,就能确定问题是SLPS0 信号发出时导致的问题;通常这种问题是和硬件设计相关还需要请 HW 帮忙测试找到原因;
  2. 如果PHM提示某个设备有问题没有 Power Gated, 最简单的方法是关闭之然后继续试验。特别注意的是:Audio设备不要轻易关闭,一些能够正常工作的系统关闭 Audio 之后反倒变得无法进入CS,据说这个问题是同 GFX Driver 有关;
  3. 如果发现某个外部 PCIE 设备有问题,需要确认对应的 Clock Request Pin 是否正确。在 PHM 的 Log中有这个的读取结果,结合电路图进行确认。当然,这里我非常建议用示波器之类的确认这个Pin是否工作正常。
  4. 如果PHM 提示 CSME 工作异常,首先需要确认 BIOS中的ME 版本和系统驱动是否匹配,其次还要检查没有使用的SMB Pin之类是否正确关闭;

从上面的描述也可以看到,几乎所有的方面都会对 MS 产生影响,这也是为什么“在Debug Modern Standby 的时候同样 ‘没有银弹’ 。” 的原因。如果考试之前老师表示这本书全部都是重点,那么也就相当于没有重点........

Good Luck, BIOS Engineer!

Modern Standby 调试的准备相关推荐

  1. Windows11——Modern Standby(现代待机) S0改Suspend to RAM(待机到内存)S3睡眠解决方案

    截图只代表现象,上下文截图不出自同一处,例如:不同机子,参考文章,其他网络资源 问题描述 睡眠合上盖子后两三分钟内可以正常唤醒,但稍微时间长一点,打开盖子就无法正常唤醒,只有电源键的灯在一直闪烁,按键 ...

  2. Windows——Modern Standby(现代待机) S0改Suspend to RAM(待机到内存)S3睡眠解决方案(以机械革命F1 i5-11300H为例)

    截图只代表现象,上下文截图不出自同一处,例如:不同机子,参考文章,其他网络资源 问题描述 睡眠合上盖子后两三分钟内可以正常唤醒,但稍微时间长一点,打开盖子就无法正常唤醒,只有电源键的灯在一直闪烁,按键 ...

  3. 删除影响Modern Standby的几个服务

    自从微软导入Modern standby的功能以来,公司内部的产品测试经常因为微软的服务导致不让SW drips进入,从而导致HW drips不成功 我们尝试删除如下的服务,临时解决了微软服务干扰 s ...

  4. WDM在不同Windows版本上的音频支持

    "Windows音频驱动"翻译系列总目录: https://blog.csdn.net/danteLiujie/article/details/102530417 目录 1. 实现 ...

  5. 笔记本触控板、Fn键、电源管理的简单介绍

    笔记本触控板.Fn键.电源管理的简单介绍 Fn 按键 Fn 锁:Fn+Esc F1-F12 常见功能 F1:帮助 F2:重命名 F3:调试界面(MC厨) F4:搜索 F5:刷新 F6:搜索.地址栏 F ...

  6. 黑苹果睡眠无法唤醒_电脑睡眠后无法唤醒怎么办?

    有过电脑睡眠后不能开机情况的小可爱,请在评论区打卡,S姐好想知道,有多少人跟我一样啊! 作为一个懒癌晚期且不想抢救的人,每天下班电脑是绝对不会选择关机的!我浏览器里那么多资料窗口,文章刚写了一半,表格 ...

  7. 大型企业网络配置系列课程详解(四) --HSRP和VRRP配置与相关概念的理解(一)...

    大型企业网络配置系列课程详解(四)<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office&qu ...

  8. win7关闭休眠_【科普】笔记本电脑,待机/睡眠/休眠有啥区别?(ACPI SPM S0-S5)...

    本文聊聊笔记本电脑话题下,经常有人问到的内容-- 关机 睡眠 休眠 这三个选项有什么区别? 电脑可以不关机只合上盖子吗? 花了俩小时,求个赞,希望有专栏能收这篇内容~ 先说答案: 快速唤醒:开盖/操作 ...

  9. 微型计算机天逸510s光驱,主机届的小钢炮,性能最强NAS——天逸510S Mini

    [PConline 导购]你是否因为手机储存空间不足,除了用软件清理手机,也会卸载一些软件或者删掉一些视频和图片?你是否还随身携带U盘到处插拔导出文件?你是否找不到合适的云端存储?上述这些问题是大家日 ...

  10. 小米 11 不送充电器;苹果已修复 iCloud 登录激活问题;Ruby 3.0.0 发布|极客头条...

    整理 | 郑丽媛 头图 | CSDN 下载自东方 IC 快来收听极客头条音频版吧,智能播报由出门问问「魔音工坊」提供技术支持. 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「 ...

最新文章

  1. Oracle下绝对文件号和相对文件号区别
  2. 15-数据结构探险系列-图篇
  3. linux重启was控制台报错,Linux非WAS部署,启动报错Cannot run program \lsb_release\
  4. cydia收费插件源_Cydia消失了怎么办 Cydia错误汇总介绍【图文】
  5. Oracle起步——Oracle 11g安装配置
  6. 简单公司主页HTML5模板
  7. Simulink_Debug的使用
  8. 解析软件系统稳定性的三大秘密
  9. PS2251-07 海力士(金士顿U盘量产,成功!)
  10. 你第一次去丈母娘家时发生了哪些趣事?
  11. OpenStack版本发布周期或将延长为1年
  12. 切图html 在线,网页制作/前端开发/网页切图/网站切图/PSD转html
  13. 海康录像机识别不到硬盘_海康威视找不到硬盘
  14. APP支付(微信、支付宝)
  15. 安卓自定义悬浮按钮实现
  16. 合唱队——最少出列人数
  17. php 关注微信触发事件,微信api 关注事件
  18. CAD绘图布局中有部分模型显示不出来怎么办?
  19. Jmeter全方面讲解——Jmeter的安装
  20. 华三交换机配置vrrp_H3C交换机 典型配置举例-6W100

热门文章

  1. 最短路径算法之Dijkstra算法(java实现)
  2. linux智能英文输入法,Linux_Ubuntu下安装智能拼音输入法,一、安装scim中的智能拼音 更 - phpStudy...
  3. 2023年天津天狮学院专升本专业课考试延期的通知
  4. You should consider upgrading via the
  5. Cluster 集群
  6. linux程序执行收到信号17,Linux信号
  7. 利用IPSec/L2TP代理上网
  8. 小学计算机课教师教学笔记,小学信息技术课老师教育教学随笔
  9. 详细描述Tomcat体系结构(图文并茂)
  10. 【网络流24题】火星探险问题