- 博客(24)
- 收藏
- 关注
原创 【Spec笔记 13】Media Access (1)
总结后续有更深理解,会继续补充。学艺不精,错误请指正;如有侵权,请联系删除。参考文档: 《UEFI_Spec_2_9_2021_03_18》
2024-05-09 17:13:19
162
原创 【UEFI Spec笔记 12】Console Support (2)
EFI_EDID_OVERRIDE_PROTOCOL : 返回策略信息,并可能为指定的视频输出设备返回一个替换EDID。如鼠标的设备路径:ACPI(PNP0A03,0)/PCI(7,0)/ACPI(PNP0F03,0)参考文档: 《UEFI_Spec_2_9_2021_03_18》安装在Handle上,这个Handle必须也有安装。指定一个访问指针设备的简单方法,包括鼠标等设备。后续有更深理解,会继续补充。学艺不精,错误请指正;如有侵权,请联系删除。
2024-03-07 17:28:27
418
原创 【UEFI Spec笔记 12】Console Support (1)
本节探讨控制台支持协议,包括简单文本输入、简单文本输出、简单指针、串行IO和图形输出协议。后续有更深理解,会继续补充。学艺不精,错误请指正;如有侵权,请联系删除。参考文档: 《UEFI_Spec_2_9_2021_03_18》
2024-03-06 17:38:34
1055
原创 【UEFI Spec笔记 11】UEFI Driver Model
在BIOS启动过程中,驱动控制器会用Supported去查看是否支持此,如果支持,则调用Start来绑定驱动控制器。例如在网络设备轮询过程中,返回SUCCESS,则调用,Start函数中可以对这个驱动进行一些操作,并安装且实现其中的功能和赋值。在后来的代码中就能使用对此网络设备进行操作。后续有更深理解,会继续补充。学艺不精,错误请指正;如有侵权,请联系删除。参考文档: 《UEFI_Spec_2_9_2021_03_18》
2023-12-05 21:21:48
894
原创 【UEFI Spec笔记 10】Device Path Protocol
1.设备路径的主要目的是允许应用程序(如操作系统加载程序)确定接口正在抽象的物理设备。2.ACPI中定义了设备路径的集合叫做命名空间(name space),EFI定义了自己的命名空间叫设备路径。后续有更深理解,会继续补充。学艺不精,错误请指正;如有侵权,请联系删除。参考文档: 《UEFI_Spec_2_9_2021_03_18》
2023-11-21 14:17:19
302
原创 【UEFI Spec笔记】EFI Loaded Image
后续有更深理解,会继续补充。学艺不精,错误请指正;如有侵权,请联系删除。参考文档: 《UEFI_Spec_2_9_2021_03_18》
2023-11-14 17:37:11
210
原创 【UEFI Spec笔记】Boot Services & Runtime Services
参考文档: 《UEFI_Spec_2_9_2021_03_18》,《UEFI原理与编程》通过handle和GUID等等等找到handle中的Protocol实例。通过handle和GUID找到实例,比OpenProtocol少参数。由操作系统加载程序用于从物理寻址到虚拟寻址的转换。8.5.3 - 8.5.6 Capsule相关。所有运行时服务都可以在启用中断的情况下调用。返回平台单调计数器的下一个高32位。读取计算机硬件时间(RTC时钟)获取下一个变量名,可用作遍历变量。通过GUID找到实例,最简单的。
2023-10-22 22:20:10
556
1
原创 【UEFI实践】BIOS升级(1) --shell下升级BIOS
BIOS升级会分为Shell,Setup,OS下三种情况说明。本文将会以shell下升级为主,具体操作为在shell下获取需要升级的BIOS文件信息,再把数据传给SMM模式下刷写Flash。与capsule的实现方法类似,但仅以最简单能够更新BIOS的方法。部分代码借鉴EDKII源码,如有侵权,请联系删除后续有更深理解,会继续补充。学艺不精,错误请指正;如有侵权,请联系删除。
2023-10-12 23:32:02
1255
原创 【UEFI实战】EDKII下创建带参数的shell工具
这篇不带参数的,当时做的并不是EDKII代码,用的是IBV代码【UEFI实践】Shell下tool模板后续有更深理解,会继续补充。学艺不精,错误请指正;如有侵权,请联系删除。
2023-09-15 22:39:04
425
1
原创 【UEFI实践】UEFI下Event创建和触发的一种方式
事件基础知识请看>>本文记录了在一个模块中创建事件,并注册到protocol上,在另一模块中通过安装protocol的方法来触发此事件的方法。后续有遇到事件的更多用法,会继续补充。1.在dec文件中定义protocol[Guids] //或者[Protocols]下gEfiEventProtocolGuid = {0x00000000, 0x0000, 0x0000, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} //创建新的GUID。
2023-08-31 22:05:01
166
1
原创 【UEFI Spec笔记】EFI System Table
UEFI应用程序(UEFI Applications),UEFI引导服务驱动程序(UEFI Drivers)和UEFI运行时驱动程序(UEFI Drivers),UEFI应用程序包括UEFI操作系统加载程序(UEFI OS Loaders),这三种image类型的入口参数如下。typedefEFI_STATUS后续有更深理解,会继续补充。学艺不精,错误请指正;如有侵权,请联系删除。参考文档: 《UEFI_Spec_2_9_2021_03_18》
2023-08-20 18:39:33
450
1
原创 【ACPI规范】ASL基础
记录一些常见的ASL语言关键字,更详细知识在acpi spec第19章BIOS开发者可以通过ASL(ACPI Source Language)对一些设备总线等进行操作,然后被AML编译器编译成AML语言,AML语言可以被硬件所识别。后续有更深理解,会继续补充。学艺不精,错误请指正;如有侵权,请联系删除。参考文档: 《ACPI_Spec_6_4_Jan22》
2023-08-05 16:20:11
466
1
原创 【EDKII笔记】orderedlist&lebal
后续有更深理解,会继续补充。学艺不精,错误请指正;如有侵权,请联系删除。参考文档: 《VFR_1_9.pdf》
2023-07-19 21:01:06
274
原创 【UEFI工具】Firmware Test Suite (fwts)
FWTS是一个自动化固件检查的Linux工具。它的目标是检测错误并修复固件。使用手册后续有更深理解,会继续补充。学艺不精,错误请指正;如有侵权,请联系删除。
2023-07-19 10:06:10
567
原创 【UEFI Spec笔记】Boot Manager
后续有更深理解,会继续补充。学艺不精,错误请指正;如有侵权,请联系删除。参考文档: 《UEFI_Spec_2_9_2021_03_18》
2023-07-12 21:56:13
876
1
原创 【ACPI电源管理】C-State和P-State基础
Advanced Configuration and Power Interface,高级配置与电源接口。顾名思义,除了那些table,电源接口是ACPI很重要的一个部分。这就必须得了解c-state和p-state相关知识了。因为暂时没做过这方面的项目,所以以下皆为acpi spec的总结,后续如有相关项目接触,会另开文章附上链接后续有更深理解,会继续补充。学艺不精,错误请指正;如有侵权,请联系删除。参考文档: 《ACPI_Spec_6_4_Jan22》
2023-07-09 16:26:30
1498
1
原创 【EDKII笔记】VFR&SD
uni文件声明了字符,vfr文件即是对setup的框架的搭建。EDKII创建了BNF风格的VFR文件供开发者使用,编译器会把VFR文件编译成IFR(Internal Forms Representation)信息供Hii调用。1.formset。
2023-06-18 21:50:25
1105
1
原创 C++学习笔记--02函数高级
文章目录1.默认参数2.占位参数3.函数重载1.默认参数注意:1.若某个位置有默认参数,这个位置往后都要有默认参数 int func(int a,int b=10,int c=10)2.函数声明和实现只能一个有默认参数2.占位参数int func(int a,int)占位参数可以有默认参数 int func(int a,int=10)3.函数重载...
2020-04-26 22:58:09
124
原创 C++学习笔记--01内存四区
.exe执行前:代码区:存储二进制代码代码 共享和只读 操作系统管理全局区:全局变量,静态变量,常量执行后:栈区:函数参数值,局部变量(包括局部常量) 编译器自动分配释放堆区:在C++中主要利用new在堆区开辟内存 程序员分配释放,若程序员不释放,程序结束时操作系统回收#include<iostream>using nam...
2020-04-26 16:44:15
103
原创 linux编程--01socket通信基础笔记
1.服务器服务器:socket->bind->listen->accept->recv/send->close1.socket:创建服务端的socket。2.bind: 把服务端用于通信的地址和端口绑定到socket上。3.listen: 把socket设置为监听模式。4.accept: 接受客户端的连接。5.recv:接收客户端的请求报文。6.sen...
2020-04-14 18:45:46
112
转载 linux编程--01socket通信基础
文章目录一、socket通信的概念二、套接字(socket)三、socket通信的过程在这里插入图片描述四、客户/服务端模式服务端的工作流程2、客户端的工作流程在这里插入图片描述五、注意事项1、别去纠缠细节2、服务端程序绑定地址3、服务端程序绑定的通信端口4、客户端程序指定服务端的ip地址5、客户端程序指定服务端的通信端口6、send函数7、recv函数8、服务端有两个socket9、程序退出...
2020-04-14 18:04:33
427
原创 计算机网络--01基础
这里写目录标题一. 计算机网络的分类1.从网络的使用者进行分类2.按网络的覆盖范围分类二. 因特网的组成1.边缘部分2.核心部分2.1电路交换2.2分组交换2.2.1路由器2.2.2分组交换—具体过程三.两种国际标准—TCP/IP1.五层网络模型2. TCP/IP的体系结构一. 计算机网络的分类1.从网络的使用者进行分类 公用网 (public network) 专用...
2020-04-14 17:54:45
164
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人