自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 SR-IOV Architectural Overview

以下内容为学习《UEFI原理与编程》(戴正华)第四章和第六章的摘要UEFI是用C语言来实现的,但UEFI中Protocol是作为一种对象来设计和使用。例如:// 通过这个protocol可以控制块设备struct _EFI_BLOCK_IO_PROTOCOL{UINT64 Revision;EFI_BLOCK_IO_MEDIA*Media;EFI_BLOCK_

2021-04-29 11:32:04 574

原创 PciHostBridgeDxe

edk2中MdeModulePkg\Bus\Pci路径下PciHostBridgeDxe和PciBusDxe的源码阅读,记录一下学习过程。PciBusDxe部分PciBusDriverBindingStartPciEnumeratorPciHostBridgeEnumeratorPciRootBridgeEnumeratorPciScanBusGatherDeviceInfoCreatePciIoDevice...

2021-04-25 11:46:37 555

原创 PCIE Configuration Space

项目空档期看看PCIE 5.0 spec, 照本宣科简单记录一下。先上框架图,部件互连是点对点链接(point-to-point link),由Root Complex(RC), Endpoints(I/O devices), Switch, PCI Express to PCI/PCI-X Bridge组成。PCI Express Link由两个差分信号对组成,发送对和接受对(a Transmit pair and a Receive pair).PCI Express配置模型支持两.

2021-04-16 09:33:55 3018

转载 PEI 阶段的PPI 和 PPI notify

PPI notify 相当于 PPI 的callback function.PPI 和PPI notify 都有相应的GUID来区分在PEI Services 中有两个function : InstallPPI 和NotifyPPI1.调用InstallPPI时,会把PPI interface 插入PPI database 的PPI LIST 数组中,假设其可以容纳    12

2017-08-22 15:06:24 3276

转载 UEFI BIOS ROM 文件格式

1. FD (Firmware Device)整个BIOS ROM 就是一个FD,即Firmware Device。2. FV (Firmware Volume)整个BIOS ROM 又被分成多个小的逻辑区块,这就是FV,即Firmware Volume。每个Firmware Volume Image包括 Header 和 FFS Image, 还有Free Space。3.

2017-03-18 14:10:41 4812

转载 (转)UEFI小结-Handle的来龙去脉

本文说明:本人刚学习UEFI不久,写该文一是为了将学到的东西做一个规范化的总结,二是为了给初学UEFI的兄弟起到借鉴作用。同样地,错误的地方肯定很多,还望能得到各位弟兄指正。要理解本文,您至少应该是读过UEFI Spec,不然请先阅读UEFI Spec。一、一些概念的理解UEFI中会有很多抽象概念,像service、protocol、handle等等,如果将这些抽象的概念放到实际的代码

2017-03-01 08:56:54 897 1

转载 UEFI中的Protocol

以下内容为学习《UEFI原理与编程》(戴正华)第四章和第六章的摘要UEFI是用C语言来实现的,但UEFI中Protocol是作为一种对象来设计和使用。例如:// 通过这个protocol可以控制块设备struct  _EFI_BLOCK_IO_PROTOCOL{UINT64 Revision;EFI_BLOCK_IO_MEDIA*Media;EFI_BLOCK_

2016-10-26 21:16:32 1131

原创 typedef

在学习《UEFI原理与编程》时遇到一段不理解的:每个DXE驱动是一个独立的模块,模块入口函数类型定义为:typedef  EFI_STATUS (EFIAPI *EFI_IMAGE_ENTRY_POINT) (       IN    EFI_HANDLE  ImageHandle,       IN    EFI_SYSTEM_TABLE   *SystemTable

2016-09-16 11:51:22 705 1

原创 Could not get lock

在安装好Ubuntu16.04后,执行sudo apt-get install vim, 遇到提示:Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)                                                                 

2016-09-15 11:30:37 953

转载 提问的智慧

引言在黑客的世界里,你所提技术问题的解答很大程度上取决于你提问的方式与解决此问题的难度,本文将教你如何提问才更有可能得到满意的答复。开源程序的应用已经很广,你通常可以从其他更有经验的用户而不是黑客那里得到解答。这是好事,他们一般对新手常有的毛病更容忍一点。然而,使用我们推荐的方法,象对待黑客那样对待这些有经验的用户,通常能最有效地得到问题的解答。第一件需要明白的事是黑客喜欢难题

2016-06-22 16:58:55 431

转载 自己动手写DSDT系列教程1-ASL(ACPI Source Language)基础篇

写在前面的话,鄙人不是一个主板BIOS开发工作者,以下对ASL的理解仅仅来源于http://www.acpi.info/上的ACPI Specification文档。因此难免会出现不少错误的理解,以及错误的观点,希望大家谅解以及纠正。    首先,不得不说一下DSDT(Differentiated System Description Table)。什么是DSDT呢?其实它属于ACPI其中的一

2016-06-21 08:27:04 17699

转载 Memory Map

Memory Map --- 存储器映射      引言随着半导体工艺技术与处理器设计技术的不断提高,嵌入式处理器的速度愈来愈快;而非易失性存储器的读取速度却远远跟不上CPU的发展。传统的单片机运行模式——机器代码存储在非易失性存储器(如ROM,FLASH),在运行时由CPU直接从其中取出指令执行——逐渐显得力不从心。如果继续沿用传统的程序运行模式,那么在绝大多

2016-06-20 11:24:38 5725

转载 Intel CPU 地址空间总结

一、地址空间映射       这里要说的是Intel构架下的CPU地址空间布局,注意这里没有说是内存地址空间布局。       我们说的内存通常是指DRAM,DRAM相对于CPU也可以算是外部设备,CPU地址空间是CPU访问外部设备过程中的一个概念,CPU除了访问DRAM外还会访问许多其他的设备。可以粗略的认为CPU地址空间包含DRAM地址空间,但两者却是不同的概念。而且DRAM地址空间是

2016-06-19 17:01:49 1214

原创 有关指针初始化的误区

今天在看code时发现自己的一个盲点,赶紧写下来大意是这样的:要获取一段buffer的长度,假设BufferStart是指向Buffer的指针,a是buffer里边的第一个元素现在定义另一个指针BufferEnd, 并把BufferStart的值赋给它      UINT8  *BufferEnd = BufferStart;这等价于*BufferEnd = *BufferSt

2016-04-18 21:34:09 522

原创 SMBIOS

最近花时间把之前学过的SMBIOS复习了一遍,做点笔记,以后若是记不清了还可以找回来看看。首先,SMBIOS的基本概念MBIOS (System Management BIOS)是主板或系统制造者以标准格式显示产品管理信息所需遵循的统一规范。目的在于提供足够的信息给BIOS开发人员去实现必要的扩充,让他们产品的硬件和其他系统相关的信息能够正确地被用户定义的接口所判定

2016-04-17 12:58:42 2445

转载 git的基本用法

git功能强大,要熟练掌握不是那么容易的,以下是个人学习的简单总结。git对版本的分布式控制主要体现在其repository在本地,大部分的操作都直接在本地完成。把repository放在本地也是一种备份。(本地备份git clone )在git之前linux下就有diff/patch这样的tool,有兴趣可以细究,git 里有相似的用法。git init / git add / g

2016-03-28 17:13:23 410

转载 svn的基本命令

svnadmin create                版本库初始化svn checkout            版本库检出(工作拷贝)svn update                                     工作区更新 做出修改:svn add                               添加文件svn drm

2016-03-28 11:13:17 446

原创 git 中遇到CRLF/LF warning

在Windows下使用git时遇到如下的提示: warning: LF will be replaced by CRLF in a.txt.The file will have its original line endings in your working directory. 引起warning的原因是:git本是Linux下的tool, 在Linux下文本中的换行符

2016-03-24 14:32:01 689

原创 ld: i386 architecture of input file `eatsyscall.o' is incompatible with i386:x86-64 output

在Ubuntu下用学习汇编语言编程,在使用ld链接时有碰到标题所示的问题。很明显,root cause 是我编译好的文件(eatsyscall.o)是遵循i386 architecture, 而我使用的计算机却是i386:x86-64架构,即在64位机器上编译32位代码我安装的ubuntu version是14.04,此版本下预安装的ld(链接工具)显示:Supported emula

2015-11-21 11:37:47 4606 1

转载 SEC phase

下面是摘自PI Specification . Vol 1_PEI中的描述SEC Phase的话。http://www.uefi.org/The Security (SEC) phase is the first phase in the PI Architecture architecture and is responsible for the following:• Handling a

2015-11-10 14:32:35 2637

转载 原码.补码.反码

以下内容摘自《计算机组成原理》(第二版)唐朔飞(P220) 原码表示法:原码是机器数中最简单的一种表现形式,符号位为0表示正数,符号位为1表示负数,数值为真值的绝对值,故原码表示又称为带符号的绝对值表示。整数原码的定义为             0, x  2n > x >= 0[x]原=                    

2015-09-05 21:51:56 537

原创 cpuid function

先贴上自己糊弄的代码(32位系统下编译):用来在32位系统中读取CPUID指令的各种信息**************************************************************************************************************************

2015-08-10 16:11:30 773

原创 _CR(Record, TYPE, Field)

在看EDKII的code时遇到一个宏,琢磨了好一阵,写下来和大家分享。如有错误欢迎指出。宏如下:#define_CR(Record, TYPE, Field) ((TYPE *) ((CHAR8 *) (Record) - (CHAR8 *) &(((TYPE *)0)->Field)))底层code中会有各种结构体,这个宏的作用就是在已知某结构体变量成员的地址时逆向求

2015-07-21 11:42:14 820

原创 打开vim教程

在Ubuntu环境下,用Ctrl + Alt + t 打开终端,输入vimtutor zh即可打开vim中文版的自带教程。

2015-07-14 14:15:41 2256

空空如也

空空如也

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

TA关注的人

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