
UEFI
文章平均质量分 51
Wang20122013
喷泉有了压力才优美,滴水有了坚持才有了穿石。顶住压力,享受压力,坚持奋斗。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
UEFI Drivers & UEFI Driver Model
2>. UEFI Driver Model Drivers必须安装一个Driver Binding Protocol到它的Image Handle上,可选择的安装Driver Configuration Protocol, Driver Diagnostics Protocol, Component Name Protocol。随着硬件总线结构的发展,Bus的种类和数量都在增加,在Preboot的环境下,就需要有一种简单的方式来描述和管理平台上的Bus和Device。转载 2022-11-21 17:45:49 · 1336 阅读 · 1 评论 -
UEFI驱动模型
UEFI驱动模型(driver model)是学习编写UEFI驱动的必备内容。我们来一起学习吧!什么是UEFI驱动模型驱动程序包含有硬件设备的信息,有了这些信息计算机就可以和设备进行通信。一个完整的驱动框架至少需要完成以下任务:找到支持的硬件设备安装驱动到此硬件设备从硬件设备卸载驱动Note:UEFI驱动加载后,会枚举设备,然后调用UEFI Driver Binding Protocol的support()函数,用来判断驱动是否支持枚举的这个ControllerHandle,如果转载 2021-11-18 17:08:58 · 2663 阅读 · 0 评论 -
什么是OVMF
什么是OVMFThe Open Virtual Machine Firmware (OVMF) project aims to support firmware for Virtual Machines using the edk2 code base. More information can be found at:http://www.tianocore.org/ovmf/OVMF可以在如下的网站下载:https://github.com/tianocore/edk2下载到的是一个edk2转载 2021-11-17 16:47:20 · 2821 阅读 · 0 评论 -
GUID (全局唯一标识符)
全局唯一标识符(GUID,Globally Unique Identifier)是一种由算法生成的二进制长度为128位的数字标识符。GUID主要用于在拥有多个节点、多台计算机的网络或系统中。在理想情况下,任何计算机和计算机集群都不会生成两个相同的GUID。GUID 的总数达到了2128(3.4×1038)个,所以随机生成两个相同GUID的可能性非常小,但并不为0。所以,用于生成GUID的算法通常都加入了非随机的参数(如时间),以保证这种重复的情况不会发生。GUID一词有时也专指微软对UUID标准的实现。原创 2021-11-17 16:37:35 · 621 阅读 · 0 评论 -
gEfiPciIoProtocolGuid的定义在哪里?代表这什么?
gEfiPciIoProtocolGuid代表着Pci io protocol 的Guid变量,可以通过#include <Protocol/PciIo.h> 来进行引入,然后OpenProtocol进行调用。Status = gBS->OpenProtocol( ControllerHandle, &gEfiPciIoProtocolGuid, ...原创 2021-11-17 16:30:49 · 941 阅读 · 0 评论 -
uefi shell ls:Current directory not specified
要输入fs0:或者切换到其他目录才行原创 2021-11-16 16:07:24 · 3467 阅读 · 0 评论 -
UEFI编译的时候找不到openssl文件
edk2017\edk2-vUDK2017\CryptoPkg\Library\OpensslLib目录下有OpenSSL-HOWTO.txt 来告诉你如何安装openssl往往github不好使,官网上下过来就好了原创 2021-11-15 17:31:32 · 818 阅读 · 0 评论 -
编译UEFI BaseTools的时候出错
1.确保自己的工具链(gcc)和edk2支持的版本是一致的,不能太新,不能太久2.如果出现string.printable找不到printable这个错误可以在自己的终端中,输入python,然后执行import stringa = set(string.printable)a既可输出到printable的内容,然后把string.printable替换为刚才输出的值即可。...原创 2021-11-12 16:38:43 · 1672 阅读 · 0 评论 -
制作UEF 的启动盘
.启动文件可以通过编译ShellPkg/ShellPkg.dsc得到,制作UEFI BIOS启动盘后就可以把自己的app或者驱动放到UEFI 启动盘的U盘上,然后进行load进行运行调试,可以省去把驱动下载到板子上的步骤,方便调试硬件。source edk_setup.shbuild -p ShellPkg/ShellPkg.dsc -t GCC5 -b RELEASE -a X64# -p 要编译的包# -t 选择的工具链# -b 目标类型# -a 架构类型可以得到Shell.efi.原创 2021-11-12 16:31:40 · 2756 阅读 · 0 评论 -
BIOS/UEFI基础——Protocol介绍
简要说明 Protocol是UEFI中的一个重要概念(事实上《UEFI SPEC》中有超过70%的内容都是在讲Protocol),下面简单说明下: 1. 首先,非常重要的一点,Protocol不是什么特殊的东西,它就是一个结构体,比如说下面是一个用于存储设备访问的Protocol: ////// This protocol provides control over block devic...转载 2021-09-30 16:52:34 · 2340 阅读 · 0 评论 -
edk2中子目录介绍
edk2中子目录介绍AppPkgUEFI Application Development Kit是一系列用来进行uefi app开发的套件,标准依赖库,工具以及demo,目标是降低UEFI app的开发门槛。MdePkg全称为“Module Development Environment Package”,这是一个特殊的package,包含了用于开发一个module所需要的最小环境。一个module可能也会依赖于其他的Package,但是所有modules必须依赖于MdePkg。MdeModule转载 2020-10-09 16:10:47 · 841 阅读 · 0 评论 -
UEFI EDK2 编译报找不到library class如何办?
UEFI EDK2 编译报找不到library class如何办?EDK2环境中,.inf用于编译一个模块,而.dsc文件用于编译一个Package,它包含了[Define]、[LibraryClasses]、[Components]重要部分。[LibraryClasses]块中定义了库的名字以及库.inf文件的路径,这些库可以被[Components]块内的模块引用。[Components]块,在该区块内定义的模块都会被build工具编译并生成.efi文件。如果出现了找不到library cla原创 2020-09-24 15:58:09 · 3782 阅读 · 1 评论 -
UEFI下如何取消警告当成错误进行处理
UEFI下如何取消警告当成错误进行处理在开发UEFI的时候build的时候明明是个warning却报错,编译不下去就需要下面的操作。windows使用#pragma warning(disable:警告号)可将其禁用,可在lv_conf.h开头加入,主要有如下几个:#pragma warning(disable:4018) #pragma warning(disable:4090) #pragma warning(disable:4028) #pragma warning(disable:原创 2020-09-24 15:28:54 · 636 阅读 · 0 评论 -
UEFI QEMU虚拟机下运行第一个APP HelloWorld图解
UEFI QEMU虚拟机下运行第一个APP HelloWorld图解1 搭建UEFI QEMU 虚拟机运行环境点击我进行搭建图解2 查看EDK2中的AppPkg的readme3 更改conf目录下的target.txt然后进行build,如果build命令无效,记得source edksetup.sh先4 在build目录下就可以看到AppPkg的编译出来的内容5 创建镜像文件HDD_BOOT.img把img文件放到和OVMF.f目录下6 运行虚拟机qemu-syst原创 2020-09-22 18:12:56 · 1059 阅读 · 1 评论 -
PCI&PCIE ExpansionOption ROM
1、什么是ExpansionOption ROM?Expansion rom是pci/pcie设备可选的一个外接的eprom芯片,其中用来存储相应pci设备的初始化代码或者系统启动代码(比如pxe或者pci boot)。BIOS在POST(Power-on Self Test)阶段,会扫描pci设备是否有expansion rom,有的话将其拷贝到ram中执行。在PCI规范中称为expansion rom,在BIOS术语里面称为option rom。例如,我们系统启动阶段可以看到网卡和LSI SAS芯片转载 2020-09-15 16:27:23 · 1810 阅读 · 0 评论 -
ubuntu1604下搭建UEFI开发环境图解
ubuntu1604下搭建UEFI开发环境图解本机器环境1.EKD2开发环境简介和下载 EDK2全称为“uEFI Development Kit”,是intel开源的一套符合UEFI标准的实现,点击进行下载 ,这个开源项目,版本众多,今天选用vUDK2018这个tag进行演示,主要这个版本有AppPkg和OptionRomPkg文件夹开发方便2. 安装gcc编译环境并且编译BaseTool2.1 安装gcc编译环境sudo apt-get ins原创 2020-09-14 18:20:04 · 1812 阅读 · 3 评论