BIOS
文章平均质量分 71
miachen-空中飞鸟
BIOS研发
展开
-
【UEFI】数字签名的使用
1) 数字签名是指附加在数据单元上的一些数据,或是对数据单元所作的密码变换。这种数据或变换能使数据单元的接收者确认数据单元的来源和数据完整性,并保护数据,防止被人伪造。签名机制的本质特征是该签名只通过签名者的私有信息才能产生,也就是说,一个签名者的签名只能唯一地由他自己产生。当收发双方发生争执时,第三方(仲裁机构)就能够根据消息上的数字签名来裁定这条消息确实由发送方发出,从而实现安全性服务。2)普通纯软件实现的数字签名方案是完全在操作系统进程中进行的,包括密钥的生成,存储和应用。原创 2024-02-23 19:47:23 · 898 阅读 · 0 评论 -
[UEFI]ROM镜像的备份与还原
该功能实现两个方面,备份到U盘、从U盘还原。原创 2024-01-22 17:39:37 · 748 阅读 · 0 评论 -
UEFI 启动项
启动问题一般从以上几个步骤debug,1、启动项缺失根据3.1 对盘的路径进行判断,得到的启动项可能被过滤掉2、BMC设置优先级不起作用从BMC接收数据进行deug,3、找到启动设备,一直加载不进去\EFI\BOOT\boot{machinename} 路径没有包含到数组中,导致BIOS找不到启动文件。原创 2023-09-08 16:32:20 · 421 阅读 · 0 评论 -
【UEFI】BIOS 阶段全局变量类型
本规范描述了应该如何在非易失性存储器中存储和访问文件。固件实现必须支持标准的PI固件卷和固件文件系统格式(下文所述),但可能支持其他存储格式。Register: 注册有关状态代码消息的通知的回调。Unregister: 取消注册回调。描述:一旦注册,状态代码消息将被转发到回调。该回调在被释放之前必须未注册。typedefEFI_STATUS描述:提供一个软件模块可以调用来报告状态代码的接口。参数:Type:指示正在报告的状态代码的类型。原创 2023-06-06 11:36:05 · 967 阅读 · 0 评论 -
PCIE Hot Plug BIOS
2.)当透过slot control register使能PCIe hot plug产生 interrupt,PCIe root port 检测到有hot plug事件,产生hot plug interrupt。3.) Hot plug中断服务检测slot satus,处理相应的hot plug interrupt.当中断服务完成清除相应的hot plug状态。Native 需要BIOS干预的很少,复杂部分是留给操作系统和驱动做的,和ACPI一样,早期的ACPI是BIOS完成,后来留给操作系统做的。原创 2023-02-10 18:00:28 · 1939 阅读 · 0 评论 -
EventLog支持异常/报错/安全事件信息记录
定义一个链表的全局变量,该变量的数据代表当前记录,forwardLink表示指针指向前一个链表,backLink表示指针指向后一个链表。追加记录使用插入头链表的方法,由图可以看出,追加记录的初始地址 = 当前记录初始地址+一条记录的大小。事件日志的驱动包括四个部分:追加一条记录,删除记录,覆盖记录,得到下一条记录。2)一直查询直到匹配输入的一条记录,匹配成功返回下一条记录地址。每一条记录的结构体包括,链表指针和内容(事件,日期,事件)2)调用 读取下一条记录的 遍历事件链表。四个部分都涉及到链表的操作。原创 2023-02-09 18:10:02 · 1151 阅读 · 0 评论 -
UEFI 内存检测失败,蜂鸣器报警
先注册BeepStatusCodeReportWorker 回调函数,当内存检测失败,提交错误状态码,BeepStatusCodeReportWorker 回调函数对获得的状态类型及状态码进行处理,匹配Map Table里的内存错误类型,匹配成功触发蜂鸣器报警功能。3. 当BeepStatusCodeReportWorker进来的时候确保map table有对应的entry。1.当内存失败的时候REPORT_STATUS XX—这个确保代码有跑到。蜂鸣器的条件是, 0x61寄存器中倒数第二位置1。原创 2023-02-06 16:30:22 · 479 阅读 · 0 评论 -
BIOS 硬件监控模块:监控内存、CPU、硬盘变化
问题描述:当机器(服务器、台式机、笔记本)的内存、CPU、硬盘(HDD、SSD、NVME)发生变化时,BIOS怎么监控到,并给出提示信息。原创 2023-02-03 17:59:22 · 682 阅读 · 0 评论 -
PCIE Switch设备的Did,Vid,SubDid,SubVid信息获取
分析:由图可以看出,W6800是个Switch设备,该设备挂载在rootbridge 01 下面,该Switch下还挂了PCIE设备,提交给BMC的应该为设备Did,Vid,Subdid,subvid。找到插在Switch卡上的PCIE设备的配置空间。最终可以正确识别PCIE的设备信息。原创 2022-10-08 17:57:53 · 1383 阅读 · 0 评论 -
PCIE设备如何降速降带宽
PCI Express在PCI 3.0兼容的配置空间(前256字节)中定义了一个能力结构。该结构允许识别PCI Express设备功能,并表示支持新的PCI Express功能。PCI Express设备的功能需要PCI快速能力结构。功能结构是一种启用需要支持遗留操作系统的PCI软件透明特性的机制。除了识别PCI Express设备功能,PCI快速功能结构用于提供访问PCI Express特定的控制/状态寄存器和相关的电源管理增强。......原创 2022-08-31 17:54:02 · 6189 阅读 · 3 评论 -
RootBridge与PCIE联系
此图说明了一个称为层次结构的单一结构实例—由根复杂(RC)、多个端点(I/O设备)、交换机和PCIExpress到PCI/PCI-X桥组成,所有这些都通过PCIExpress链接相互连接。根复合体(RC)表示连接CPU/内存子系统到I/O的I/O层次结构的根结构。Cpu分为Socket0,Socket1,共两组,RC的顺序为RCA0、RCA1、RCA2、RCA3、RCB0A、RCB0B、RCB1A、RCB1B、RCB2A、RCB2B、RCB3A、RCB3B。12个一组,共24组数据。RC从0-15共原创 2022-07-08 17:53:41 · 1739 阅读 · 0 评论 -
C语言双指针的用法
C语言双指针的用法原创 2022-07-06 17:10:28 · 2855 阅读 · 0 评论 -
简述BIOS与BMC通信常用的几种方案及优劣势
BIOS与BMC通信方式原创 2022-07-06 15:24:03 · 9499 阅读 · 1 评论 -
UEFI查找PCI设备
问题:在做项目中,BIOS如何获得PCI外插卡设备信息?1、进入OS查看PCI设备huawei@huawei:~$ lspci -tv±[0004:00]-±00.0 Ampere Computing, LLC Device e110| ±01.0-[01]–| ±05.0-[02]–| ±06.0-[03]–| ±07.0-[04]–| -08.0-[05]–±[0003:00]-±00原创 2022-05-23 17:11:40 · 3260 阅读 · 0 评论 -
一文了解BIOS相关名词
在BIOS研发中,出现了很多专业名词,弄懂可帮助深入了解BIOS。1、PC名词CPU 实模式、保护模式、虚386模式实模式在概念上类似于一个8088处理器。所有的资源,包括I/O端口,都可以被软件用户所访问。访问I/O地址不受限制。其它两种处理器模式,保护模式和虚86模式,会限制对I/O的访问。这意味着像windows或OS/2那样高级的操作系统可以控制谁被允许读写I/O端口。在DOS环境下,内存管理器运行在保护模式下,以便在运行于虚8086模式下的DOS的顶部提供一系列的内存服务。在某些情况下,原创 2022-03-29 10:57:49 · 4573 阅读 · 0 评论 -
EFI Driver Model(中)-PCI 驱动设计
PCI 驱动设计 参考、翻译、总结 Driver Writer Guide for UEFI 2.3.1 有几个类别的PCI驱动程序合作为平台中的PCI控制器提供支持,下表列出这些PCI驱动驱动类别描述PCI root bridge driver产生一个或多个 PCI Root Bridge I/O 的实例PCI bus driver使用PCI Root Bridge I/O协议,为每个PCI控制器生成一个子句柄,并将设备路径协议和PCII/O协议安装到每个子句柄上原创 2022-03-04 16:53:10 · 1320 阅读 · 0 评论 -
EFI Driver Model(上)
EFI Driver Model(上)主要参考UEFI_SPEC,再加上自己的理解总结1、Driver 与Application 的区别 Application :可以被Boot Manager和其它UEFI应用加载,要加载UEFI应用程序,固件分配足够的内存来保存映像,将UEFI应用程序映像中的部分复制到分配的内存。一旦完成,所分配的内存将被设置为针对图像的代码和数据的适当类型。然后,控件被转移到UEFI应用程序的入口点。当应用程序从其入口点返回时,或当它调用引导服务EFI_BOOT_SERV原创 2022-03-01 14:14:55 · 2845 阅读 · 0 评论 -
基于UEFI的BIOS怎么识别不同设备(SataHdd、SataCdrom、USB、BMC)
基于UEFI的BIOS怎么识别SataHdd、SataCdrom、Nvme、Raid参考:UEFI_SPECATAPI接口是SCSI和IDE总线的结合产物。该接口使用IDE接口和协议机型ATA和SCSI总线命令传输,允许使用ATAPI控制所连接的SCSI设备。1、EFI_ATA_PASS_THRU_PROTOCOL提供允许将ATA命令发送到附加到ATA控制器上的ATA设备的服务。基于包的命令只能通过扩展SCSI协议发送到ATAPI设备。当ATA_PASS_THRU向ATA公开一个接口,EXT_SCS原创 2022-02-28 17:01:54 · 2674 阅读 · 0 评论 -
基于IPMI的FRU
1、fru介绍Field Replace Unit 现场可更换单元FRU的技术最早使用在服务器等大型设备上,以IBM的水平最高,后来FRU技术被dell移植在PC上,接着联想等厂商也开始了FRU的步伐。现在连太和攒电脑的都使用FRU技术了.IPMI规范包括支持为系统中的不同模块存储和访问多组非易失性现场可更换单元(FRU)信息。一个企业级的系统通常将拥有每个主要的系统板的FRU信息(例如。处理器板、内存板、输入输出板等)。FRU数据包括序列号、零件号、型号、资产标签等信息。IPMIFRU信息可以通过原创 2021-09-14 14:52:36 · 13306 阅读 · 3 评论 -
SMBIOS驱动代码分析
1、概述在主板上电后,UEFI会将HW信息包括, CPU、Memory、FW、PM等信息以SMBIOS table形式上存储到一段内存区域中,进入OS后,OS通过解析该段内存即可获取相关配置。2、创建表结构SmbiosCreateTable ( OUT VOID **TableEntryPointStructure ) { ..... EntryPointStructureData.MajorVersion = mPrivateData.Smbios.MajorVersio原创 2021-09-07 10:07:55 · 1323 阅读 · 1 评论 -
BIOS的BDS阶段解析
1、概述BDS全称:Boot Dev Select(启动设备选择)主要功能是加载并连接驱动程序,管理并启动引导项。在引导操作系统之前会初始化设备(USB键盘鼠标,VGA设备等),然后通过Variable功能来控制启动顺序,根据启动策略加载对应的引导项,启动操作系统或应用程序。BDS主要功能:• 加载设备驱动程序• 初始化控制台设备• 创建引导启动项• 启动操作系统或应用程序2、如何进入BDS阶段通过方法BdsEntry();• 构造函数 安装 gEfiBdsArchProtoco原创 2021-09-06 16:06:33 · 5633 阅读 · 0 评论 -
BIOS setup界面IP地址动态切换成静态
遇到的问题:BIOS setup界面IP地址动态切换静态地址失败,与BMC沟通后,明确了切换步骤把通道1从动态获取切换成静态地址使用ipmitool 切换分开切换:ipmitool lan set 1 ipsrc staticipmitool lan set 1 ipaddr 192.168.2.12或者一步到位ipmitool -I lanplus -H 192.168.3.206 -U root -P 0penBmc raw 0x0c 0x01 0x01 0x04 0x01参数原创 2021-07-05 11:11:45 · 1085 阅读 · 0 评论 -
根据VendorId 和DeviceId 查看PCI设备的名称
根据VendorId 和DeviceId 查看PCI的名称我搜索的是VendorId 0X15B3,DeviceId 0x1017 ,得到的网卡名称为 MT27800 Family [ConnectX-5]原创 2021-07-02 18:16:12 · 3439 阅读 · 0 评论