自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 资源 (1)
  • 收藏
  • 关注

原创 【BIOS】如何找到SPI的读模式

1、spec中找到SPI 寄存器,spireadmode[2:0] 连同下面的SpiReadMode[0]组合去确认SPI读模式。可以看出,bit18:1 bit29:1 bit30:1 结果为111b,最终读模式为FastRead。3、18是bit0位,29,30 是SpiReadMode 的bit 1:2位。4、使用工具读内存0xFEC10000为0x6FCC1005。2、SPI的基地址为SPI=FEC1_0000h。

2024-09-03 10:29:08 397

原创 EFI Driver Model(下)-SCSI 驱动设计

SCSI是Small Computer System Interface(小型计算机系统接口)的缩写,使用50针接口,外观和普通硬盘接口有些相似。SCSI硬盘和普通IDE硬盘相比有很多优点:接口速度快,并且由于主要用于服务器,因此硬盘本身的性能也比较高,硬盘转速快,缓存容量大,CPU占用率低,扩展性远优于IDE硬盘,并且支持热插拔。

2024-03-27 18:03:58 934 1

原创 【C语言】[EDK2]字符串基本操作

注意:字符串以‘\0’结束C语言中字符串的基本操作主要依赖于字符数组和指针。

2024-03-27 17:01:31 668

原创 【UEFI】数字签名的使用

1) 数字签名是指附加在数据单元上的一些数据,或是对数据单元所作的密码变换。这种数据或变换能使数据单元的接收者确认数据单元的来源和数据完整性,并保护数据,防止被人伪造。签名机制的本质特征是该签名只通过签名者的私有信息才能产生,也就是说,一个签名者的签名只能唯一地由他自己产生。当收发双方发生争执时,第三方(仲裁机构)就能够根据消息上的数字签名来裁定这条消息确实由发送方发出,从而实现安全性服务。2)普通纯软件实现的数字签名方案是完全在操作系统进程中进行的,包括密钥的生成,存储和应用。

2024-02-23 19:47:23 1057

原创 [UEFI]ROM镜像的备份与还原

该功能实现两个方面,备份到U盘、从U盘还原。

2024-01-22 17:39:37 993

原创 修改PCIE 设备控制寄存器DevCtl2参数

2、取CapabilityPtrEntry的两个字节进行判断, 如果PCI ExpressCapID 为0x10,为找到能力项的入口地址,如果PCI ExpressCapID 不为0x10,取Next CapabilitiesPointer 的指针地址,查看指针地址的值是否为 0x10,如果是0x10,找到能力项入口地址,如果为00,结束循环,不为0,又不为0x10,继续寻找下一个能力项地址。3、当找到能力项入口地址,可以看出偏移0x28的两个字节为DeviceCtl2参数入口。

2023-12-25 17:53:16 1261

原创 (DXE_DRIVER)PciHostBridge

PciHostBridge: 提供PCI配置空间,IO,MEM空间访问接口以及统一维护平台相关的PCI资源,提供gEfiPciHostBridgeResourceAllocationProtocolGuid,创建RootBridge等为PciBusDxe提供服务;

2023-09-08 16:40:42 582

原创 UEFI 启动项

启动问题一般从以上几个步骤debug,1、启动项缺失根据3.1 对盘的路径进行判断,得到的启动项可能被过滤掉2、BMC设置优先级不起作用从BMC接收数据进行deug,3、找到启动设备,一直加载不进去\EFI\BOOT\boot{machinename} 路径没有包含到数组中,导致BIOS找不到启动文件。

2023-09-08 16:32:20 502

原创 【UEFI】BIOS 阶段全局变量类型

本规范描述了应该如何在非易失性存储器中存储和访问文件。固件实现必须支持标准的PI固件卷和固件文件系统格式(下文所述),但可能支持其他存储格式。Register: 注册有关状态代码消息的通知的回调。Unregister: 取消注册回调。描述:一旦注册,状态代码消息将被转发到回调。该回调在被释放之前必须未注册。typedefEFI_STATUS描述:提供一个软件模块可以调用来报告状态代码的接口。参数:Type:指示正在报告的状态代码的类型。

2023-06-06 11:36:05 1100

原创 EFI Driver Model(下)-USB 驱动设计

通用串行总线(英语:Universal Serial Bus,缩写:USB)是一种串口总线标准,也是一种输入输出接口的技术规范,被广泛地应用于个人电脑和移动设备等信息通讯产品,并扩展至摄影器材、数字电视(机顶盒)、游戏机等其它相关领域。最新一代是USB4,传输速度为40Gbit/s,三段式电压5V/12V/20V,最大供电100W ,新型Type C接口允许正反盲插。USB是一个外部总线标准,规范电脑与外部设备的连接和通讯。USB接口具有热插拔功能。USB接口可连接多种外设,如鼠标和键盘等。

2023-04-20 17:00:03 635

原创 UEFI Driver Services

磁盘I/O驱动程序会打开块I/O协议EFI_OPEN_PROTOCOL_BY_DRIVER,因此FAT驱动程序也不允许打开块I/O协议EFI_OPEN_PROTOCOL_BY_DRIVER。此方法是安全的,因为当磁盘I/O协议响应于删除块I/O协议时,当删除块I/O协议时,就会间接通知FAT驱动程序。如果一个层需要跳过一个层以到达一个较低级别的服务,那么使用EFI_OPEN_PROTOCOL_GET_PROTOCOL是安全的,因为如果删除了较低级别的协议,则将通过这些层通知驱动程序。

2023-04-19 14:50:55 716

原创 UEFI Boot Manager

UEFI Boot Manager 是一个符合UEFI规范的固件中的一个组件。它决定哪些drivers和applications在何时被加载。当平台固件初始化完成,它将控制权转交给Boot Manager。Boot Manager 是一个可以通过修改global NVRAM variable来进行配置的固件策略引擎。Boot Manager将尝试按global NVRAM Variable定义的顺序来加载 UEFI 驱动程序和 UEFI 应用程序(包括 UEFI OS 引导加载程序)。

2023-04-12 14:31:22 2701

原创 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 2229

原创 EventLog支持异常/报错/安全事件信息记录

定义一个链表的全局变量,该变量的数据代表当前记录,forwardLink表示指针指向前一个链表,backLink表示指针指向后一个链表。追加记录使用插入头链表的方法,由图可以看出,追加记录的初始地址 = 当前记录初始地址+一条记录的大小。事件日志的驱动包括四个部分:追加一条记录,删除记录,覆盖记录,得到下一条记录。2)一直查询直到匹配输入的一条记录,匹配成功返回下一条记录地址。每一条记录的结构体包括,链表指针和内容(事件,日期,事件)2)调用 读取下一条记录的 遍历事件链表。四个部分都涉及到链表的操作。

2023-02-09 18:10:02 1284

原创 UEFI 内存检测失败,蜂鸣器报警

先注册BeepStatusCodeReportWorker 回调函数,当内存检测失败,提交错误状态码,BeepStatusCodeReportWorker 回调函数对获得的状态类型及状态码进行处理,匹配Map Table里的内存错误类型,匹配成功触发蜂鸣器报警功能。3. 当BeepStatusCodeReportWorker进来的时候确保map table有对应的entry。1.当内存失败的时候REPORT_STATUS XX—这个确保代码有跑到。蜂鸣器的条件是, 0x61寄存器中倒数第二位置1。

2023-02-06 16:30:22 587

原创 BIOS 硬件监控模块:监控内存、CPU、硬盘变化

问题描述:当机器(服务器、台式机、笔记本)的内存、CPU、硬盘(HDD、SSD、NVME)发生变化时,BIOS怎么监控到,并给出提示信息。

2023-02-03 17:59:22 786

原创 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 1526

原创 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 7184 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 1847

原创 C语言双指针的用法

C语言双指针的用法

2022-07-06 17:10:28 3038

原创 简述BIOS与BMC通信常用的几种方案及优劣势

BIOS与BMC通信方式

2022-07-06 15:24:03 10907 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 3630

原创 一文了解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 4821

原创 Ubuntu的PXE 服务器搭建(已搭可行)

Ubuntu的PXE 服务器搭建(已搭可行)1、简介Client向PXE Server上的DHCP发送IP地址请求消息,DHCP检测Client是否合法(主要是检测Client的网卡MAC地址),如果合法则返回Client的IP地址,同时将启动文件pxelinux.0的位置信息一并传送给Client。Client向PXE Server上的TFTP发送获取pxelinux.0请求消息,TFTP接收到消息之后再向Client发送pxelinux.0大小信息,试探Client是否满意,当TFTP收到Cli

2022-03-22 15:04:21 7949 2

原创 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 1431

原创 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 2982

原创 基于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 2938

原创 基于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 14685 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 1422 1

原创 BIOS的BDS阶段解析

1、概述BDS全称:Boot Dev Select(启动设备选择)主要功能是加载并连接驱动程序,管理并启动引导项。在引导操作系统之前会初始化设备(USB键盘鼠标,VGA设备等),然后通过Variable功能来控制启动顺序,根据启动策略加载对应的引导项,启动操作系统或应用程序。BDS主要功能:• 加载设备驱动程序• 初始化控制台设备• 创建引导启动项• 启动操作系统或应用程序2、如何进入BDS阶段通过方法BdsEntry();• 构造函数 安装 gEfiBdsArchProtoco

2021-09-06 16:06:33 6236

原创 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 1181

原创 根据VendorId 和DeviceId 查看PCI设备的名称

根据VendorId 和DeviceId 查看PCI的名称我搜索的是VendorId 0X15B3,DeviceId 0x1017 ,得到的网卡名称为 MT27800 Family [ConnectX-5]

2021-07-02 18:16:12 3692

原创 服务器测试工具列表

1、服务器测试工具介绍**功能性测试:**主要内容集中在被测应用系统的功能是否有缺失、核心功能是否可正常使用、业务流程是否能走通等;**效率测试:**主要考察被测应用系统的响应时间及资源消耗的表现;**易用性测试:**侧重被测应用系统在用户使用上的体验及便利程度;**维护性测试:**主要内容集中在被测应用系统的易分析性、易改变性、易测试性等三个方面;**可靠性测试:**主要考察被测应用系统的容错、易恢复能力以及在连续使用时是否出错等;**兼容性测试:**侧重共存性、易安装、硬件平台兼容性和互联互

2020-05-08 19:42:03 1417

原创 Iperf工具使用详解

1、 工具介绍 Iperf是一个网络性能测试工具,专门用于简化TCP性能优化,且具有多种参数和UDP特性,使用它可以很容易地测量吞吐量和带宽的最大值。当与UDP一起使用时,iPerf还可以测量数据丢失和延迟(抖动)。iPerf可以在任何IP 网络上运行,包括本地以太网,因特网接入连接和Wi-Fi网络。2、参数介绍通用参数-f [kmKM] 分别表示以Kbits, Mbits, KBytes, MBytes显示报告,默认以Mbits为单位,eg:iperf -c 222.35.11.23 -f K

2020-05-08 19:15:25 4234

原创 LTP测试工具解析

1、 工具介绍LTP是由 Linux Test Project 所开发的一套系统测试套件。它基于系统资源的利用率统计开发了一个测试的组合,为系统提供足够的压力。通过压力测试来判断系统的稳定性和可靠性。压力测试是一种破坏性的测试,即系统在非正常的、超负荷的条件下的运行情况 。用来评估在超越最大负载的情况下系统将如何运行,是系统在正常的情况下对某种负载强度的承受能力的考验。2、 参数介绍-a e...

2020-04-29 12:48:39 7070

原创 找不到配置文件使用nmcli 网卡bonding

1,介绍在国产的某一款OS中找不到/etc/sysconfig/network-scripts网卡的配置文件,导致不能只修改配置文件进行网卡绑定操作,可采用nmcli命令创建、删除bond。1.用nmcli来创建bond,mode后为bond模式,这里使用balance-rr 执行命令:sudo nmcli connection add con-name bond0 type bond ...

2020-04-29 11:08:13 1014

原创 Linux下的U盘测速

1、 介绍U盘在我们的生活工作中是必不可少的东西,它可以用来存储文件和传播文件,U盘的种类当然也是各式各样的,而且版本也不尽相同,有的U盘传输文件就特别快,有的就特别慢,所以进行U盘测试很有必要。2、 dd命令简介if=输入文件,of=输出文件,ibs=一次读取字节数,obs=一次写入字节数,bs=设置一次读取写入的字节数,skip=跳过的bs数count=拷贝的块数3、 测试...

2020-04-29 10:51:15 2880

原创 AuthorTopicModel代码出现list index out of range的解决方法

官网上实现>>> from gensim.models import AuthorTopicModel >>> from gensim.corpora import mmcorpus >>> from gensim.test.utils import common_dictionary, datapath, temporary...

2019-08-16 19:27:37 801

cpufrequtils-005.tar.gz

支持离线安装,该工具可以查看调整CPU频率及模式,而在自动调节频率的情况下,也可以设置其上限和下限.

2020-04-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除