BIOS相关
文章平均质量分 92
huangkangying
这个作者很懒,什么都没留下…
展开
-
我所认识的ACPI(1)
什么是ACPI?ACPI的全称是Advanced Configuration and PowerInterface。它是由早期的APM发展和改进起来的,其主要作用是为操作系统提供一套标准的电源管理接口。ACPI关键概念:经常听起别人谈到什么Gx State, Cx State, Sx State的, 听得我不知所云,后来看了ACPI的spec后,才有所了解, 先把图搞下来:原创 2012-08-10 22:21:02 · 6619 阅读 · 0 评论 -
EDK-II常用库函数及API
Table of Contents1 EDK-II module Type2 PCD Access Functions3 Commonly Use Library Classes4 The APIs which are frequently used in the commonly used Library4.1 BaseLib4.1.1 Linked List rel原创 2014-04-20 18:41:17 · 5351 阅读 · 0 评论 -
Notes of Inline Assembly
Notes of Inline AssemblyTable of Contents1 The syntax comparation of Intel ASM and AT&T ASM2 Basic inline assembly2.1 'asm'2.2 '__asm__'2.3 '__asm__ __volatile__'3 Extended inline asse原创 2014-04-05 16:41:31 · 678 阅读 · 0 评论 -
浅谈80368之保护模式
浅谈80368之保护模式Table of Contents1 保护模式的历史2 保护模式的定义和特点2.1 什么是保护模式?2.2 特点3 实模式与保护模式寻址方式对比3.1 常用的段寄存器介绍3.2 实模式下的寻址3.3 保护模式下的寻址1 保护模式的历史Intel早期的8086处理器是16位处理器,数据总线16位,地址总线原创 2014-07-05 14:04:16 · 1780 阅读 · 0 评论 -
Windows批处理笔记
Windows批处理所谓批处理,就是按照规定的顺序自动执行若干个指定的DOS命令或程序。也就是说,把原来一个一个执行的命令汇总起来,成批的执行。批处理文件可以移植到其它电脑中运行,因此可以大大节省命令反复输入的繁琐。批处理,英文译为BATCH,批处理文件后缀BAT就取的前三个字母。它的构成没有固定格式,只需要遵守以下这条规则:每一行可视为一个命令,每个命令里可以含多条子命令,从第一转载 2014-11-25 19:53:24 · 1188 阅读 · 0 评论 -
EBDA, BIOS Data Area (For reference)
Address Size Description00:00 256dwords Interrupt vector table30:00 256bytes Stack area used during post and bootstrap40:00 word COM1 port address40:02 word COM2 port address40:04 word CO转载 2014-11-27 21:14:00 · 2926 阅读 · 0 评论 -
浅析 Legacy INT 13h中断函数
浅析 Legacy INT 13h中断函数在BIOS进入UEFI时代之后,似乎Legacy BIOS的东西正在走向死亡。但传统的legacy产物退出历史舞台还需要一个过程, legacy中断就是其中之一。本文要讲的INT 13h中断函数就是legacy中断中的一种。它主要是为磁盘操作服务。Table of Contents1 文档 (Enhanced Disk Drive原创 2014-12-23 21:46:05 · 2130 阅读 · 0 评论 -
Terms from BIOS boot spec
IPL: Initial Program LoadATA: Advanced Technology AttachmentBAID: BIOS Aware IPL DeviceBCV: Boot Connection VectorBDA: BIOS Data AreaBEV: Bootstrap Entry VectorDDIM: Device Driver Initia原创 2014-12-10 20:39:31 · 1080 阅读 · 0 评论 -
VFR file format
Visual Forms Representation File Format(Redirected from Visual Forms Representation Syntax)The file is formatted as UTF-8 encoded text. Comments are C++ ('//') style and all text to the end of t转载 2014-12-12 19:41:30 · 4537 阅读 · 0 评论 -
BIOS到Linux Boot的原理
Table of Contents1. BIOS启动的原理2. BIOS对boot操作系统最至关重要的工作:3. Linux Boot的过程:1 BIOS启动的原理BIOS启动的原理:所有x86的CPU都设计成为加电进入16位实模式状态, CS=0xFFFF,IP=0x0000。这样启动时的第一条指针所在的地址就是 0XFFFF0.2 BIO原创 2015-03-16 20:52:13 · 2645 阅读 · 0 评论 -
PCI/PCIe 的那些事(1)- 总线基本知识
PCI 总线 PCI: 周边组件互联局部总线 (Peripheral Component Interconnect Local Bus)1992年,Intel发布了PCI 1.0规范, 用于替代老的ISA总线。PCI总线的产生主要解决了ISA总线的以下几个缺点:总线容量不够地址宽度不够不支持即插即用PCI采用的是树型拓扑结构,每一个PCI device相当于树的一个结点或者叶子,对整个原创 2016-01-05 21:46:29 · 12731 阅读 · 0 评论 -
汇编语言指令大全最新发布完整版
汇编语言指令大全最新发布完整版一、数据传输指令───────────────────────────────────────它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据. 1. 通用数据传送指令. MOV 传送字或字节. MOVSX 先符号扩展,再传送. MOVZX 先零扩展,再传送. PUSH 把字压入堆栈. POP 把字弹出堆栈. PUSHA转载 2016-01-27 22:05:30 · 8228 阅读 · 0 评论 -
内存分页之32位分页
分页模式Intel的64位处理器一共支持3种内存页模式:32 Bit Paging, 32位分页模式PAE Paging, PAE分页模式IA-32e Paging, IA-32e分页模式这本文中主要还是介绍第一种: 32位分页模式地址类型在搞清楚分页的概念之前,需要了解清楚以下几个地址的概念:物理地址线性地址虚拟地址关于以上三种地址的具体区别和联系,可参见这里控制寄存器(Contr原创 2016-02-23 21:14:14 · 1810 阅读 · 0 评论 -
BDA -- BIOS Data Area
BDA - BIOS Data Area - PC Memory Map Address Size Description 00:00 256dwords Interrupt vector table 30:00 256bytes Stack area used during post and bootstrap 40:00 word COM1 port address 40:转载 2016-02-26 14:32:42 · 1776 阅读 · 0 评论 -
PCI/PCIe 的那些事(2)- 配置空间(Configuration Space)
PCI/PCIe配置空间(Configuration Space)PCI/PCIe的配置空间Configuration Space是一个与Memory空间和IO空间并列的独立的空间。对Legacy PCI来讲,Configuration Space有256 Bytes对于PCIe, Configuration Space有4096 Bytes 访问方式对于x86架构的CPU而言,有定义Memor原创 2016-01-23 17:38:46 · 34274 阅读 · 4 评论 -
使用VS2008编译EDK2源码并调试
visual studio具有良好的用户体验,堪称调试代码的神器。使用visual studio来编译和调试EDK2的代码对我们学习UEFI的框架有很大的好处。下面将详细介绍具体的配置部骤,希望能对大家有所帮助。1. 下载UDK2010代码:http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=EDK22原创 2013-03-25 21:12:09 · 6151 阅读 · 0 评论 -
我所知道的ACPI(4) -- ASL深入了解
前面的章节已经对ACPI Table和ASL语言的基本语法有过初步的介绍。这里在复习一下。ASL是ACPI Source Language的简称,它经过编译器编译过后变成AML,然后交给操作系统来执行。1. 根作用域下面的5个域(\_GPE, \_PR, \_SB, \_SI, \_TZ)\_GPE, 主要负责ACPI的事件处理\_PR, 处理器相关\_SB, 所有的设备和总线原创 2013-09-11 23:11:20 · 17254 阅读 · 1 评论 -
我所知道的ASL(5)
ASL常用的数据类型有:Integer(整数), String(字符串), Event(事件), Buffer(数组), Package(对象集合)定义一个Integer:Name(TEST, 0)定义一个String:Name(TEST, "ABCD")定义一个Buffer:Buffer (BufferSize) {String or ByteList}Buf原创 2013-09-12 22:09:29 · 5837 阅读 · 0 评论 -
SMI vs SCI (转)
SCI与SMI的区别与联系SMI: System Management Interrupt,系统管理中断,进入SMM的方法,包含(但不限于)电源管理功能,对OS透明的; SMI pin触发后,CPU进入SMM Mode,转去执行BIOS中的SMI Handler。 SMI pin--> CPU SMM Mode转载 2012-08-28 23:54:39 · 2674 阅读 · 0 评论 -
我所认识的ACPI(2)
ACPI常用的寄存器,及寄存器位的含义ACPI_ENABLE, 当向SMI_CMD写入这个值的时候,系统将触发事件进入ACPI模式GPE0_BLK, GPE1_BLKGeneral Purpose Event 0 and General Purpose Event 1 BlockP_BLKProce原创 2012-08-10 22:31:23 · 7456 阅读 · 0 评论 -
我所知道的ACPI(3) -- ASL 入门简介
1. ASL基本准则a) 变量名必须由4个字符组成,第1个字符不能是数字b) 变量名和函数名不区分大小写c) Scope和Device都会形成自己的作用域,类似于C++中的namespace和classd) 所有以”_”开头的函数都是Reserved的,给系统使用,不能给自己的函数起这样的名字e) ASL中的路径有相对路径和绝对路径之分。其结构有点像文件目录。原创 2012-09-22 16:23:57 · 23154 阅读 · 3 评论 -
PC下串口IO空间及其寄存器详解
串口(Serial UART), 全称是通用异步收发口universal asynchronous receiver/transmitter.主要用于计算机之间的串行通信任务。UART主要完成时序和奇偶校验等功能。而在通信时需要附加的设备是TTL电平与RS232电平的转换设备。对于TTL电平,规定+5V为逻辑“1”, 0V为逻辑“0”对于RS232电平,规定+3V到+12V为逻辑“原创 2012-10-14 23:12:34 · 17867 阅读 · 0 评论 -
P-state
1. Overview CPU在C0状态时会执行指令,但是即使在C0状态下OSPM仍然可以通过调整CPU的工作电压和频率的方式,以此降低整个平台的功耗。P-state 在Intel平台上通常指的是EIST(Enhanced Intel SpeedStep Technology),EIST允许多个核动态的切换电压和频率,动态的调整系统的功耗。OSPM通过WRMSR指令写IA32_PERF转载 2012-10-29 20:02:41 · 3015 阅读 · 0 评论 -
T-state
1. Overview CPU在C0状态下有两种手段降低功耗的方法,其一是之前介绍过的P-state,另一个就是T-state。T-sate全称就是Processor Throttling States,它为OSPM提供了一种通过降低Processor Performance进而降低系统负载和温度的能力,听上去可能和P-state很像,其实是有区别的,P-state通过调整CPU VID电压进转载 2012-10-23 21:10:00 · 1812 阅读 · 0 评论 -
C-state
1. Overview C-state是ACPI spec定义的CPU工作在G0时的power states,这些状态包括C0,C1,C2,C3…Cn.其中C0被称为Active状态,也只有C0的时候CPU才会执行指令;其余的状态则被称为sleeping,这时CPU是不执行指令的,也因而会节省更多的功耗。系统在运行时会根据loading状况在各个C-state之间切换 降低功耗,转载 2012-10-23 20:42:56 · 9202 阅读 · 0 评论 -
SMM系列(2)-- SMI中断运行环境
保存现场在上一节“SMM的基本概念”中已经讲到,在进入SMI中断处理程序之时,会将处理器的状态信息保存到SMRAM中,然后再退出中断处理函数时恢复现场。运行环境的初始化在保存完现场后,紧接着就会对寄存器的信息做一些相应的修改,这就是初始化SMI handler的运行环境。其实主要是设置一些寄存器的初值:通用寄存器对程序没有什么影响,所以不用做初始化。EFLAGS初始化为原创 2012-11-04 15:05:04 · 5447 阅读 · 0 评论 -
SMM系列(3)-- SMM的中断处理以及SMBASE重定向
SMM的中断处理当处理器进入SMM时,所有的硬件中断都将被禁止。IF标识被清零,禁用可屏蔽中断。TF标识被清零,禁用单步中断。DR7被清零,禁用断点中断。另外NMI, SMI, A20M也会被block.应该记住的一点是,SMM是不可重入的。但是,SMM会锁存进入后的第一个SMI或NMI, 并且在退出SMM后的第一条指令前执行。软中断在SMM中是没有被屏蔽的,如果要原创 2012-11-13 22:19:01 · 4505 阅读 · 0 评论 -
SMM系列(1)-- SMM基本概念
SMM的定义: SMM, System Management Mode, 即系统管理模式。在intel 386SL, intel486SL引入的一种特殊的操作模式,在这种模式下,可以执行高级电源管理,硬件控制和运行OEM代码。它对于操作系统而言是完全透明的,也就是说操作系统并不知道CPU什么时候会进入和退出SMM。基本术语:SMM: System Management Mode原创 2012-11-03 16:12:03 · 8632 阅读 · 0 评论 -
python import模块方法
python import模块方法python包含子目录中的模块方法比较简单,关键是能够在sys.path里面找到通向模块文件的路径。下面将具体介绍几种常用情况:(1)主程序与模块程序在同一目录下:如下面程序结构:`-- src |-- mod1.py `-- test1.py 若在程序test1.py中导入模块mod1, 则直接使用impor转载 2013-01-24 18:08:40 · 781 阅读 · 0 评论 -
MBR & GPT
http://blog.csdn.net/wzsy/article/details/7372210#commentsMBR 和 GPT 的问题已经走到了非常现实的阶段-3T硬盘开始普及。MBR 由于对 3T 硬盘寻址无法支持,终于要开始被弃用了。但仅仅只是“开始”,我感觉至少10年之内 MBR 还不会消失。恐怕当GPT适应不了需求的时候,MBR才会消失。一、MBR 的失误说转载 2013-01-11 22:33:29 · 988 阅读 · 0 评论 -
X86 内存布局分析(Memory map)
This article describes the contents of the computer's physical memory at the moment that the BIOS jumps to your bootloader code.本文主要描述从BIOS代码工作到OS bootloader之前的计算机物理内存分析。Contents[h翻译 2013-01-11 22:16:04 · 7551 阅读 · 0 评论 -
VC命令行编译
@echo offrem 假设你的MSDEV.exe文件路径为D:\program files\VC6\Common\MSDev98\Bin(即你的vc6安装在D:\program files目录下)rem 用法:保存该代码为vcc.bat, 放在你系统的windows目录下,然后打开cmd, 键入vcc D:\test.c (含空格的路径,给路径加上双引号)即可编译D:\test.c 源代码转载 2013-04-01 22:01:01 · 1245 阅读 · 0 评论 -
MSI (Message Signaled Interrupts)
MSI (Message Signaled Interrupts)1. Introduction 之前有提到因功能需求的增加,越来越多的PCI/PCIE设备被加入进来,导致中断资源的缺失。后来就出现了IRQ Routing 以及MSI等技术手段用于解决这些问题。看上去MSI较通常使用Interrupt Pin的方式比较起来似乎有优势,MSI是通过向Host发MSG的方式产生I转载 2013-09-05 22:06:20 · 3998 阅读 · 0 评论 -
PCI/PCIe那些事(3)-- Configuration Space Type 0/1
Common Type header for both Type 0 and Type 1Type 0 configuration space headerType 1 configuration space header原创 2016-08-31 16:47:42 · 7239 阅读 · 1 评论