【UEFI实践】BIOS升级(1) --shell下升级BIOS


前言

BIOS升级会分为Shell,Setup,OS下三种情况说明。
本文将会以shell下升级为主,具体操作为在shell下获取需要升级的BIOS文件信息,再把数据传给SMM模式下刷写Flash。
与capsule的实现方法类似,但仅以最简单能够更新BIOS的方法。

部分代码借鉴EDKII源码,如有侵权,请联系删除


一、Shell下读取数据

1.创建shell tool 具体请看此文章: 【UEFI实战】EDKII下创建带参数的shell工具
2.使用EDKII中的EFI_SHELL_PROTOCOL读取BIOS数据

UINTN               BIOSFileSize;
VOID                *BIOSFileData;
//1.LocateProtocol 
gBS->LocateProtocol (&gEfiShellProtocolGuid,NULL,(VOID **)&mShellProtocol);
//2.根据FileName打开文件,注意此文件目录在shelltool运行的目录
ShellProtocol->OpenFileByName (FileName,&Handle,EFI_FILE_MODE_READ);
//3.读文件数据,需要的话可以通过GetFileSize读文件大小
ShellProtocol->ReadFile (Handle,&BIOSFileSize,BIOSFileData
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值