BIOS重启寄存器探讨(soft reset,hard reset,full reset)

BIOS 重启的相关操作

  • Bit1: 设置0 ---当RST_CPU 从0变为1,通过触发INIT#16个PCI clocks产生soft reset                                                                                      设置1 ---当RST_CPU 从0变为1,通过触发PLTRST#和SUS_STAT#至少1毫秒产生hard reset
  • Bit2: 见Bit1中描述。
  • Bit3: Full Reset,重启时将此位置1,SLP_S3#,SLP_S4#和SLP_S5#就会被拉低3-5秒钟。会有下电再上电的过程。
  • Soft Reset和Hard Reset的区别在于Hard Reset除了CPU复位外,还会复位PCI设备。

VOID
EFIAPI
ResetCold (
  VOID
  )
{
  IoWrite8 (R_PCH_RST_CNT, V_PCH_RST_CNT_HARDSTARTSTATE);//0x02
  IoWrite8 (R_PCH_RST_CNT, V_PCH_RST_CNT_HARDRESET);//0x0E
}

VOID
EFIAPI
ResetWarm (
  VOID
  )
{
  IoWrite8 (R_PCH_RST_CNT, V_PCH_RST_CNT_SOFTSTARTSTATE);//0x00
  IoWrite8 (R_PCH_RST_CNT, V_PCH_RST_CNT_SOFTRESET);//0x06
}
//Grangeville平台对Cold Reset和Warm Reset的定义
VOID
EFIAPI
ResetCold (
  VOID
  )
{
  IoWrite8 (R_PCH_RST_CNT, 0x2);
  IoWrite8 (R_PCH_RST_CNT, 0x6);
}

VOID
EFIAPI
ResetWarm (
  VOID
  )
{
  IoWrite8 (R_PCH_RST_CNT, 0x0);
  IoWrite8 (R_PCH_RST_CNT, 0x4);
}

//Barkerville平台对Cold Reset和Warm Reset的定义

 

  • 按照寄存器中的说明,先写0再写4肯定是Soft Reset;先写2再写6肯定是hard reset。在Barkerville平台也是这样子操作。
  • 而在Grangeville平台出现先写0再写6的,先将Bit2 清0定义为Soft state,然后Bit1和Bit2又写入1,这样究竟是Soft 还是Hard Reset ?效果和先0后4是否一样?还是和先2后6一样 ?先记录下,后面使用Debug mode跑着看看效果。

 

参考:

https://blog.csdn.net/zhao_longwei/article/details/51234832?spm=1001.2014.3001.5501

https://blog.csdn.net/robinsongsog/article/details/50993333?spm=1001.2014.3001.5502

 

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值