BIOS Recovery 简介

执行Recovery过程

 Recovery mode被开启,系统将尝试找到BIOS update file,找到后系统将会load image到memory中,然后将boot Recovery image。

 Boot process将会将开始执行Recovery。

 当REFLASH_INTERACTIVE被设置成non-interactive mode时,BIOS将会直接恢复flash。

 当设置成interactive mode时,setup将会提醒用户是否清除NVRAM。该项的default值为interactive mode。

 

 怎样开始执行Recovery?

 AMI中规定了两种方式,on-board jumpers or keystrokes。

 标准的方法是在boot process之前跳jumper或者按下Ctrl+HOME。

 A4的code中通过OEMPort.c中的IsRecovery()和IsRecoveryJumper()来实现

 

 AMI支持的Recovery device。

 •PATA HDD

 •SATA HDD

 •PATA CD/DVD Drives

 •SATA CD/DVD Drives

 •USB Flash Drives

 •USB CD/DVD Drives

 •Floppy Drives (non-USB)

 •Serial Transport (via serial console redirection using XMODEM protocol)

 目前我们的通常通过USB来支持。

 

※如何判断是否需要Recovery?

在正常的流程中,PEI Dispatcher进行dispatch PEIMs。在这个过程中,有一个PEIM用来决定Recovery是否被授权。用来识别是否授权可能依据:

(1)       平台的特殊模式;

(2)       可能是用户外部的强制操作,例如跳jumper来使一个GPIO输入一个讯号。

(3)       一些结构原因也会导致系统进入Recovery,例如环境因素。

(4)       当系统出现一些非常规状态时,会引起crisis recovery。

  • ·当flash update时,非Recovery部分正在update,还没完,断电了……这时会触发crisis recovery
  • ·模组没有通过完整的检测
  • ·初始化硬件时出现一些错误

※CODE中如何执行Recovery?

PEI dispatch过程中,会调用UpdateBootMode(),当BOOT_IN_RECOVERY_MODE被置起时,PEI dispatch认定进入Recovery mode,并install相关PPI。随后IPL被传入DXE,DXE识别到进程已开启Recovery mode,会调用一个特殊的PPI EFI_PEI_RECOVERY_MODULE_PPI。通过该PPI可以找到Recovery image,之后执行image。

 

posted on 2018-03-10 22:27  米兰达莫西  阅读(2352)  评论(0编辑  收藏  举报