Parse how to write flash in uefi shell.
Step:
1. Enable
2. Read
3. Write
4. Disable
FI_GUID gEfiSFlashProtocolGuid = FLASH_PROTOCOL_GUID;
FLASH_PROTOCOL* pFlashProtocol;
EFI_PHYSICAL_ADDRESS Flash4GBMapStart;
EFI_STATUS Status;
UINT8 *StrBuffer; Status = pBootServices->LocateProtocol( &gEfiSFlashProtocolGuid, NULL, &pFlashProtocol); Status = pBootServices->AllocatePool(//start: allocate mem check point hear
EfiBootServicesData,
sizeof(UINT8) * FLASH_BLOCK_SIZE,
(VOID*)&StrBuffer);
if (EFI_ERROR(Status) || StrBuffer == NULL) {
error code here…..
} MemSet(StrBuffer, (sizeof(UINT8) * FLASH_BLOCK_SIZE), );
Flash4GBMapStart = 0xFFFFFFFF - FLASH_SIZE + ; //Enable DeviceWrite to read real Flash address, not memory mapping.
Status = pFlashProtocol->DeviceWriteEnable();//step1. enable
if (EFI_ERROR(Status)) {
error code here…..
}
Status = pFlashProtocol->Read(//step2. Read
(VOID*)Flash4GBMapStart,
FLASH_BLOCK_SIZE,
(VOID*)StrBuffer); *(StrBuffer+PcieLaneSettingAddr) = PcieLaneSetting;
Status = pFlashProtocol->Write(//step3. Update or write
(VOID*)Flash4GBMapStart,
FLASH_BLOCK_SIZE,
(VOID*)StrBuffer); pFlashProtocol->DeviceWriteDisable(); //step4. Disable
pBootServices->FreePool(StrBuffer);//end: free memory
Parse how to write flash in uefi shell.的更多相关文章
- UEFI Shell命令操作总结
什么是UEFI ShellUEFI Shell是一种特殊对待UEFI_APPLICATION.提供用户和UEFI系统之间的一个接口.它有很强大的功能,但是正常启动计算机系统时,不会用到UEFI She ...
- UEFI Shell --常用命令解释
UEFI Shell解释 UEFI Shell 是一个提供用户和UEFI系统之间的接口,进入UEFI Shell可以对计算机系统进行配置 命令解释: 单独的help就可以输出所有指令,不做特殊说明,内 ...
- UEFI+GPT引导实践篇(二):UEFI引导安装64位Win7/Win8
下文是在联想Y480笔记本上以UEFI方式启动安装Windows8的全过程,安装Windows7过程基本相同.注意,如果你的电脑硬盘是MBR分区结构,安装过程中将要删除硬盘上所有数据,请安装前备份硬盘 ...
- UEFI模式下安装Win 7系统
转载自:http://huayi898.blog.163.com/blog/static/2581351620144442319155/ 下载win7_64bit原版官方系统 1.用软碟通制作U盘启动 ...
- UEFI BIOS Rootkit Analysis
catalog . BIOS简介 . UEFI BIOS . EFI编程简介 . UEFI Rootkit 1. BIOS简介 BIOS("Basic Input Output System ...
- uefi下如何启动linux?
1. 有两种方式 1.1 直接从uefi shell启动linux内核 1.2 从uefi shell启动grub,然后再从grub启动linux内核 2. 需要哪些东西? 2.1 linux内核 2 ...
- uefi是如何启动linux内核的?
答:uefi启动linux内核有两条路径: 1. uefi直接进入uefi shell来启动linux内核 2. uefi直接进入uefi shell启动grub启动器,然后进入grub shell启 ...
- 笔记三(UEFI详解)
1.SEC 安全验证 SEC(Security Phase)阶段是平台初始化的第一个阶段,计算机系统加电后进入这个阶段. 1)接收并处理系统启动和重启信号:系统加点信号.系统重启信号.系统运行过程中的 ...
- x86 构架的 Arduino 开发板Intel Galileo
RobotPeak是上海的一家硬件创业团队,团队致力于民用机器人平台系统.机器人操作系统(ROS)以及相关设备的设计研发,并尝试将日新月异的机器人技术融入人们的日常生活与娱乐当中.同时,RobotPe ...
随机推荐
- windows 自动移动maven jar包到jmeter 文件夹下面
jmeter 自动移动maven jar包到jmeter 文件夹下面 bat 文件 rem 本文件放在jmeter 脚本maven项目根目录下面,和pom.xml在同一个文件夹下面 rem 预置条件, ...
- 集群扩容的常规解决:一致性hash算法
写这篇博客是因为之前面试的一个问题:如果memcached集群需要增加机器或者减少机器,那么其他机器上的数据怎么办? 最后了解到使用一致性hash算法可以解决,下面一起来学习下吧. 声明与致谢: 本文 ...
- 电子证据 利用Kali进行wifi钓鱼实战详细教程
电子证据 利用Kali进行wifi钓鱼实战详细教程 一. Kali系统安装和必要软件安装: 1.Kali最新版可以来我这儿拿外置驱动和光盘装,目测用U盘装最新版有些问题,比较麻烦. 2.Kali更新源 ...
- haproxy 关闭ssl3
在使用的过程中,我们发现在用IE浏览器的时候 我们设置成 然后我们的网站会出现部分页面不出来 然后我们也发现在扫面网站链接的时候 所以当务之急是关闭ssl3 我这里的反向代理使用的是haproxy 版 ...
- springBoot bean注入
1.@Component:把普通pojo实例化到spring容器中,相当于配置文件中的<bean id="" class=""/> 2.@Autow ...
- Oozie-coordinator调度
当有一个复杂的工作流job,希望每天定时执行,使用crontab方式调用需要编写大量的脚本,还要通过大量的判断来控制每个工作流job的执行顺序问题.Oozie中的Coordinator可以让每个工作流 ...
- 【Android开发】Android Host详解(翻译自官方文档)
原文:http://android.eoe.cn/topic/summary 文档内容 API概述 Android中manifest文件需求 工作的设备 * 发现设备 * 获得和设备进行“交流”的权限 ...
- [nginx]站点目录及文件访问控制
nginx.conf配置文件 http ->多个server -> 多个location ->可限制目录和文件访问(根据i扩展名限制或者rewrite.) 根据目录或扩展名,禁止用户 ...
- 60.自己定义View练习(五)高仿小米时钟 - 使用Camera和Matrix实现3D效果
*本篇文章已授权微信公众号 guolin_blog (郭霖)独家公布 本文出自:猴菇先生的博客 http://blog.csdn.net/qq_31715429/article/details/546 ...
- Hibernate 建立一对多双向关联关系
下面内容整理自<精通Hibernate>第二版 注:既然是双向关联."一对多双向关联"和"多对一双向关联"是同一回事. 对象位于内存中,在内存中从一 ...