转:BIOS的恢复技术之Top Swap的原理应用
原文地址:https://baijiahao.baidu.com/s?id=1628248717252216590&wfr=spider&for=pc
一版又一版的BIOS推送,目的无外乎就是为了用户更好的体验。领略到BIOS更新重要性的(或者领情的或者有更新强迫症的)用户,会动手去更新BIOS。很多用户担心BIOS更新后的安全问题,尤其是不敢面对更新过程中被打断后带来的“灾难后果”。
华硕BIOS更新界面其实,你可以完全的将心放在肚子里,我们将全程为您的BIOS更新保驾护航,这就是今天科普的BIOS恢复技术。
BIOS恢复技术
BIOS恢复技术,就是当用户在更新BIOS的时候,出现了意外情况(比如断电)而导致的BIOS更新失败,下次开机的时候,BIOS还能正常启动的过程。
Dual常见的BIOS恢复技术以Top Swap /Dual BIOS为主。在这里,针对Top Swap做一详细介绍。
Top Swap
首先,Top Swap(TS)是桥(PCH)里面的一个Bit位,默认值为0。需要注意的是:这个bit值,是由主板上battery(纽扣电池)保存的。
纽扣电池其次,既然要说BIOS的恢复技术,就必须要提到Bios的内容存储结构。BIOS ROM就是若干个FV(Fireware Volume)组成的,每个FV都有自己的使命,而且对于一些特殊的FV,占有的空间大小甚至是固定的。
比如业内经常提到的NVRAM(NVRAM_BACKUP),在Rom Layout中就是一个FV,大小一般是128K;FV_BB,inel目前规定大小为1M。(如下具有Top Swap功能的Rom Layout部分组成FV,FV_BB_BACKUP为FV_BB的备份)

大家都知道,CPU开始拿的第一条指令,是位于0xFFFFFFF0的地方。FV_BB存放的是SEC和PEI阶段的Code,在0xFFFFFFF0的位置,拿的第一条指令永远都是SEC的Code。(下图:Rom Layout结构图)

从UEFI启动顺序就知道,SEC和PEI是UEFI开始的地方。所以FV_BB这块代码在开始的时候就决定着BIOS能不能运行下去。
Top Swap的目的,就是为了保证SEC和PEI阶段的数据完整性。简单的说就是,当电源上电的一刻起,CPU要能正确执行到BIOS里面的代码。
Top Swap原理以及应用
BIOS更新FV_BB过程
1. BIOS在更新之前,FV_BB和FV_BB_BACKUP区域的数据都是一样的。
2. BIOS在更新BIOS的时候,也是一块一块刷的,我们这里假设先刷的是FV_BB区域。
3. 当在开始刷FV_BB区域的时候,Top Swap bit位就会被写为1,等刷完FV_BB,Top Swap再被写为0。
那么,如果在刷的过程中,出现了异常情况(比如断电)导致FV_BB阶段未完成,下一次开机再从FV_BB启动,就会出现启动失败。这个时候,Top Swap作用就来了。因为更新FV_BB阶段未完成,所以Top Swap bit位的就是1。
下一次开机的时候,Cpu下地址0xFFFFFFF0给PCH,PCH会去检查Top Swap的值,如果是1,就不会从FV_BB开始启动,会将FV_BB的地址+1M(FV_BB的大小),从FV_BB_BACKUP位置启动,而FV_BB_BACKUP这块数据并未被破坏,启动自然没问题。(下附流程图)

简单总结一下:
如果FV_BB未完成更新,下一次启动将会从FV_BB_BACKUP启动,并继续完成更新BIOS的大业;如果FV_BB完成更新,直至BIOS更新完成前,不管出什么意外,下一次启动都将从FV_BB启动,并继续后续相关动作。
转:BIOS的恢复技术之Top Swap的原理应用的更多相关文章
- 在Linux操作系统下备份恢复技术的应用 转自https://yq.aliyun.com/articles/50205?spm=5176.100239.blogcont24250.9.CfBYE9
摘要: 安全防护:在Linux操作系统下备份恢复技术的应用 原文参见:http://linux.chinaunix.net/techdoc/system/2005/12/19/925898.shtm ...
- IP视频通信中的"丢包恢复技术”(LPR)
转自:http://blog.csdn.net/blade2001/article/details/9094709 在IP视频通话中,即使是在丢包率很小的情况下也会对使用效果造成较为明显的影响.正是由 ...
- oracle 11g 数据库恢复技术 ---02 控制文件
oracle 11g 数据库恢复技术 ---02 控制文件 SYS@ orcl >show parameter control_file NAME TYPE VALUE ------------ ...
- 2018-2019-2 网络对抗技术 20165210 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165210 Exp3 免杀原理与实践 免杀的概述 免杀,也就是反病毒(AntiVirus)与反间谍(AntiSpyware)的对立面,英文为Anti-Ant ...
- 【技术解密】SequoiaDB分布式存储原理
分布式架构势在必行 在传统的数据库技术中,为了保证数据的安全与高性能,通常会选择高端的外置存储作为数据库的主要存储源,而本地磁盘则被视为不可靠的性能低下的一种设备.这种观念的产生,主要是由于过去本地磁 ...
- MariaDB/MySQL备份和恢复(三):xtrabackup用法和原理详述
本文目录: 1.安装xtrabackup 2.备份锁 3.xtrabackup备份原理说明 3.1 备份过程(backup阶段) 3.2 准备过程(preparing阶段) 3.3 恢复过程(copy ...
- 2018-2019-2 网络对抗技术 20165232 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165232 Exp3 免杀原理与实践 免杀原理及基础问题回答 一.免杀原理 一般是对恶意软件做处理,让它不被杀毒软件所检测.也是渗透测试中需要使用到的技术. ...
- 2018-2019-2 网络对抗技术 20165237 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165237 Exp3 免杀原理与实践 一.实践目标 1.1 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,加壳 ...
- 2018-2019-2 网络对抗技术 20165221 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165221 Exp3 免杀原理与实践 基础问题回答 杀软是如何检测出恶意代码的? 主要依托三种恶意软件检测机制. 基于特征码的检测:一段特征码就是一段或者多 ...
随机推荐
- PostgreSQL 按照日期范围查询
method 1 select * from user_info where create_date >= '2019-05-01' and create_date < '2019-08- ...
- spring boot 开启Druid监控功能
1.配置yml spring: datasource: # 数据源基本配置 username: song password: 123456 driver-class-name: com.mysql.j ...
- 2.flask模板--jinja2
1.jinja2模板介绍和查找路径 import os from flask import Flask, render_template # 之前提到过在渲染模板的时候,默认会从项目根目录下的temp ...
- local_time
time_t time(time_t *tloc); 功能:获取纪元1970-01-01 00:00:00以来所经历的秒数 参数: tloc:用来存储返回时间 返回值:成功:返回秒数, 失败:-1 - ...
- gulp 自动化构建网站(版本号静态资源)
前言 新的一年啦,感觉总是静不下心,用了一天的时间吧,算是对gulp 这个前端打包工具入门了,自己也写了demo,表示对这个稍微理解了吧, 当然还是有差距的啦,下面讲讲怎么用吧: 如何用 当然先去官网 ...
- static成员变量
可以创建一个由同一个类的所有对象共享的成员变量.要创建这样的成员,只需将关键字 static 放在变量声明的前面,如下面的类所示: class StatDemo { private: static i ...
- electron 设置-webkit-app-region: drag 后, 双击放大窗口变形
双击放大后窗口只是在最左上角,并没有放大, 或者放大了页面变形,如图 原因: 是设置了窗口 transparent: true,和背景色导致的, 不要设置就可以,默认为false mainWindow ...
- 对组件、Prop 和 State的研究-----------------引用
组件 第一步是将 UI 分解成多个组件.例如,我们可以这样来拆分房子: 现在来编码! House: <div> <Roof /> // 房顶 <Wa ...
- 用SWPM导入SAP时因用户Culture及系统Locale引发的问题
[问题]SWPM安装SAP时因用户Culture及系统Locale引发的问题 [现象] ①IE浏览器显示空白(SWPM界面不显示) ②SAP安装时出现“Error occurs when execut ...
- docker和Dockerfile
目录: 1.docker为什么会出现? 2.docker的理念 3.容器化技术 4.docker三要素 5.docker安装 6.docker帮助命令 7.Docker阿里云镜像加速器配置. 8.do ...