BIOS点滴
pankul
这个作者很懒,什么都没留下…
展开
-
PCI的接口定义
PCI的接口定义PCI协议规定,对于目标设备至少需要47Pin来实现功能,而主设备则需要49Pin来实现。这些功能包括:处理数据、寻址、接口管理、仲裁机制和系统功能。下图列出总线上的所有Pin脚,以直观的视角了解PCI总线。 其中上面包括必须使用的Pin和可选的Pin。这里着重讨论前者。A、系统Pin脚CLK :系统时钟信号,对于所有的PCI设备都是输入信号。一般都是从Cl原创 2013-02-20 16:14:25 · 6780 阅读 · 0 评论 -
如何使用efi toolkit搭建编译efi app的环境
前几天与人聊到efi下的程序编写。突然意识到从刚开始接触efi的时候,写过几个sample 程序之外,已经很久没动过EDK或者 efi_toolkit了。记得那时候和老虎同学一起学习的劲儿,经常一起讨论问题,相互学习。当时对新生事物的那股热情真让你记忆犹新。记得是用EDK模拟了EFI shell的环境,然后可以在该环境中熟悉efi shell和efi编程。具体的模拟环境的搭建现在还没好到当时的转载 2013-06-03 15:27:14 · 5288 阅读 · 0 评论 -
关于BBS的一些资料
翻一翻以前的资料重新看看,将一些东西贴出来整理整理。来自于网络,但找不到出处!----------------------------------------------------------------以下为转载-----------------------------------------------------------BBS (BIOS Boot Sp转载 2013-06-24 14:44:28 · 2817 阅读 · 0 评论 -
硬盘分区表知识——详解硬盘MBR
这片文章说得很详细,原文:http://hi.baidu.com/waybq/blog/item/3b8db64bef3dc7f583025c66.html--------------------------------------------------------------------------- 硬盘是现在计算机上最常用的存储器之一。我们都知道,计算机之所以神奇,是因为它具转载 2013-07-19 21:33:21 · 1594 阅读 · 1 评论 -
关于APIC的一些概念
关于APIC的一些概念,很早以前某个大神通过studyOS机制,研究出来的APIC的工作模式,特摘录部分概念。事实上,老久的PIC在很早以前就被淘汰了,取而代之的是APIC。由于APIC可以兼容PIC,所以在很多单处理器系统上我们看到的PIC实际是APIC的兼容PIC模式。APIC主要应用于多处理器操作系统,是为了解决IRQ太少和处理器间中断而产生的,当然,单处理器操作系统也可以使转载 2013-08-12 14:15:43 · 4515 阅读 · 0 评论 -
ACPI的介绍和概念
不管是X86还是龙芯的架构,都支持ACPI。看acpi spec已是许久之前的事情了。所以还是要翻翻资料,看看spec。高级配置与电源接口(英文:Advanced Configuration and Power Interface,缩写:ACPI),是1997年由英特尔、微软、东芝公司共同提出、制定提供操作系统应用程序管理所有电源管理接口,是一种工业标准,包括了软件和硬件方面的规范。2转载 2013-08-12 11:03:41 · 11761 阅读 · 0 评论 -
MIPS GCC 嵌入式汇编(龙芯适用)
1. GCC 内嵌汇编的基本格式asm("assembly code");如: asm("syscall"); //触发一个系统调用如果有多条指令,则需在指令尾部添加'/t'和'/n',如: asm("li v0, 4011/t/n" "syscall");括号里的字符串 GCC 前端不转载 2013-08-15 15:06:56 · 1143 阅读 · 0 评论 -
关于EFI toolkit的编译环境的搭建
EFI_tool kitToolKit是又Intel主导的EFI的一套开发工具包,现在已经开源。http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=EFI_Toolkit这套工具包不仅可以用来开发编译EFI,还能开发与EFI相关的工具、驱动和程序。比如EFI-Shell,Shell AP等这套工具符原创 2013-06-03 15:32:39 · 4238 阅读 · 0 评论 -
PMON学习笔记
pmon 学习笔记如果生命有终点我就陪你到终点如果生命没终点我就陪你到永远……本笔记零散写于2009 年2 月~5 月,最初基于2009 年1 月20 日dev.lemote.com 上的pmon 版本。后期使用的是更新版本,部分代码和当前版本有误差,不过应该影响不大。2目录扯3start.S 4配置空间的访问10superio_init 11转载 2013-12-11 23:58:23 · 4084 阅读 · 0 评论 -
ACPI Tables
ACPI SPEC定义了ACPI-compatible OS与BIOS之间的接口,ACPI Tables就是BIOS提供给OS的硬件配置数据,包括系统硬件的电源管理和配置管理。BIOS在POST过程中,将RSDP存在0xE0000--0xFFFFF的内存空间中,然后Move RSDT/XSDT, FADT, DSDT到ACPI Recleam Area, Move FACS到ACPI NVS转载 2014-01-10 01:01:21 · 1389 阅读 · 0 评论 -
对比UEFI中_CR 和Linux中container_of宏定义
最近一段时间都是游走于Firmware和Linux之间,其中Firmware包括uboot、pmon、和UEFI。看到一些code的时候,当然会对两种架构做一些比较,这样可以加深理解和记忆。同时也许在debug的时候相互借鉴一下。其实在UEFI中很多都借鉴了Linux架构的东西。窃以为,搭建和完善UEFI架构的家伙绝对也是Linux kernel的专家。比如UEFI中有个宏定义_CR,其作原创 2014-01-23 14:11:41 · 2228 阅读 · 0 评论 -
讨论DDR3的几种重要参数
讨论DDR3的几种重要参数在自己手上的案子和周围同事的经历中,得到一些关于DDR3配置的经验。权且记录下来,以便后续可以回顾和参考。Memory init的过程一般都比较复杂,属于芯片核心的东西,普通的OEM/ODM开发人员不适宜去修改或者调整其中的配置,除非有必要。我们经历的这些问题基本都是因为使用公版的code并不能解决问题,而且芯片厂商也不能提供很好的support的情况下发生的。原创 2014-01-23 17:02:12 · 14166 阅读 · 0 评论 -
Linux对NUMA技术的支持
并行计算的背景:自计算机诞生之日起,对其提供更强计算能力的追求始终没有间断。早期的计算机通过不断地提高时钟频率来加快处理速度。现在,时钟的问题越来越遇到限制,根据爱因斯坦相对论,电子的速度不会超过光速,频率的不断提高,意味着电子信号从一段到达另一端的距离就要越短,计算机就要不断变小。但是,伴随时钟的加快,处理器的热量也急剧增大,散热部件必不可少,迫使计算机的体积不可能无限制的减小,通过加快转载 2014-02-21 00:59:08 · 1640 阅读 · 0 评论 -
对比MBR和GPT分区概念
在阅读UEFI spec的过程中,有一个章节专门介绍GUID Partition Table form,说道GPT,必然要与传统的MBR做一番比较,以加深概念和理解和对技术更新的认知。 在x86架构中,大家的认知基本上都是从硬盘中启动系统,并对系统做合理的分区。但是硬盘如何启动系统,如何保存数据,如何管理分区,这些概念基本没有太多去了解的需要,除了我们这些做底层软件的家伙。 在传统原创 2014-02-11 16:54:32 · 3104 阅读 · 0 评论 -
从S0状态进入sleep状态的过程
ACPI规范中对wakeing 和sleeping有一个专门的章节讲述,呈现的概念包括ACPI中定义的working state和sleeping state的几种状态,同时描述各种状态之间的转换,工作状态到睡眠状态,或者睡眠状态到工作状态的转换。原创 2014-02-18 17:07:41 · 8156 阅读 · 0 评论 -
Implement EDKII internal command(一)
最近在EDK II的基础上开发一个程序,实际上是把现有的基于EDK的代码移植到EDK II上。稍微写点心得。第一步,当然就是搭环境。EDK II申明的是可以在Windows,Linux下编译,支持的编译工具则非常多,在tools_def.txt 里可以看到分别的名称,例如VS2003, VS2005, GCC, DDK3790等,找到自己喜欢的,改到target.txt里的TOOL_C转载 2014-05-02 11:18:36 · 1120 阅读 · 0 评论 -
C-state , s3, s0i3
转摘:http://blog.csdn.net/hgf1011/article/details/5897729C-state1. Overview插播:s3: disable timer as wake source, app not run, suspend driver, save device status rtc精确到ms( 取决于晶振),靠这个同步时间,同转载 2014-03-26 15:36:59 · 4350 阅读 · 0 评论 -
OTG中的ID脚风波释疑 .
原文:http://my.oschina.net/u/130864/blog/15322 Weike的博客 1. 概要OTG设备使用插头中的ID引脚来区分A/B Device,ID接地被称作为A-Device,充当USB Host,A-Device始终为总线 提供电力,ID悬空被称作为B-Device,充当USB Device,设备的USB Host/USB Device角色转载 2015-01-15 20:47:04 · 747 阅读 · 0 评论 -
两款Linux下底层开发的debug工具
这两款Linux的工具均来自于coreboot项目。解释权和所有权归coreboot项目。可以去这个网站查看相关信息:http://www.coreboot.org 工具下载地址:http://download.csdn.net/detail/pankul/5139585http://download.csdn.net/detail/pankul/5139588原创 2013-03-14 09:57:23 · 3414 阅读 · 0 评论 -
WinXP中NTLDR在系统引导过程中的作用
WinXP中NTLDR在系统引导过程中的作用以下讨论可以对比与Linux的Grub加载Vmlinux的过程,有一些类似。NTLDR一般存放于C盘根目录下,是一个具有隐藏和只读属性的系统文件。它的主要职责是解析Boot.ini文件。下面就以WindowsXP为例介绍NTLDR在系统引导过程中的作用。 Windows XP在引导过程中将经历预引导、引导和加载内核三个阶段,这与Windo转载 2013-03-01 10:38:33 · 886 阅读 · 0 评论 -
PCI协议的导读
PCI总线标准是intel在很早以前推出的一种连接主板和外部设备的总线标准,全称为[Peripheral Component Interconnect]。任何事物的出现总是有其时代性,在PC领域也不例外。PCI的出现也是因为当时PC的性能和设计成本的要求。PCI针对ISA总线,做了不少改进,具有不少的优势。PCI槽在主板上是很容易找到的,一般都是乳白色的插槽,如下图所示。不过现在市场上的主板基原创 2013-02-20 13:37:38 · 1391 阅读 · 0 评论 -
PCI不同的地址域
Pci的地址域PCI总线协议中定义了三个不同的地址空间:1、PCI配置空间;2、PCI memory空间;3、PCI的IO空间。如果对PCI没有形成一点感念的初学者,很难理解这几个空间的区别。简单的说,PCI配置空间是PCI设备的内部属性,设备内部保存了256bytes的空间作为内部register定义该设备的属性。访问配置空间使用IO读写(X86架构中使用CF8h/CFCh端口);而PC原创 2013-02-20 17:49:57 · 3855 阅读 · 0 评论 -
支持subtractive功能的PCI-PCI桥工作原理
主要涉及两个概念:Bridge 和subtractive译码。还未详细修改,几年前的东西了,错误在所难免。 Pci框架概括P2P 桥1的primary接口连接在PCI 总线0上 , P2P 桥1 的secondary接口连接到PCI 总线1 。P2P 桥2的primary接口连接在PCI 总线1 上, P2P 桥2 的secondary接口连接在PCI总线2 。桥后面(secondar原创 2013-02-21 17:24:28 · 4549 阅读 · 0 评论 -
枚举PCI设备的讨论
作者很明显不是做底层的,但是也研究出如何访问PCI设备。可以借鉴和参考原作者的Source code。……………………………………………………以下为转载内容…………………………………………………………………………原帖地址:http://blog.csdn.net/zyl910/article/details/858349File: zEnumP转载 2013-02-21 15:40:52 · 4625 阅读 · 0 评论 -
PCI的class code表
之前有找到过一下class code分类,收集起来以备用。可能在写PCI scan的程序时候,能排的上用场吧。另外提供一个PCI Device Scan程序的头文件pci_c_head.h,以供参考.Class Code TableClass CodesClassDescription0x00Devices built befor原创 2013-02-22 17:46:31 · 14747 阅读 · 2 评论 -
PCI的配置空间
PCI的配置空间主要讨论如何去访问PCI配置空间和描述PCI设备的配置空间的定义和使用规则。理论上如何访问PCI配置空间的问题是属于总线操作的一部分,但是和配置空间有着密切联系,有必要一起讨论。 PCI的配置空间一共256 bytes大小,可以分成两个部分:头部和独立部分。这里主要讨论header部分的register。由于PCI的架构特性,PCI分为普通PCI设备和PCI桥。PCI桥原创 2013-02-21 15:32:51 · 5303 阅读 · 0 评论 -
PCI 初始化过程一 :总线拓扑结构的建立
PCI 初始化过程一 :总线拓扑结构的建立系统对PCI总线的初始化过程比较复杂,要做的事情比较多。其中关键的一个环节就是总线拓扑结构的建立。这里通过文字描述拓扑结构的建立的算法,详细的故事还得看code。算法从总线0开始搜索PCI系统并定位系统中所有的PCI设备与Bridge。它将建立起一个描叙系统拓扑结构的数据结构链表。另外它还为所有的Bridge进行编号。PCI数据原创 2013-02-22 10:32:01 · 3601 阅读 · 0 评论 -
PCI 总线操作一 :总线command
PCI 总线操作一 :总线command PCI协议中定义了一组特殊的总线控制Pin---C/BE[3::0]#。这组pin属于功能复用pin,在数据传输周期,对应的bit指定AD(4 bytes)线上的对应byte;在寻址周期,当master需要申请访问总线上的target的时候,总线command就被译码到C/BE[3::0]#线上。 下面是pci协议定义的pci 总线comm原创 2013-02-22 15:46:39 · 4563 阅读 · 0 评论 -
PCI 总线操作二: bus transaction
PCI总线协议中定义总线传输主要讲述的ReadTransaction 和Write Transaction的总线操作。1、 Read Transaction如下图所示,Read transaction 是从FRAME#宣告之后,马上开始寻址阶段,在clock2的时候发生。在寻址阶段,AD[31:00]包含可用的地址,C/BE[3:0]#包含可用的bus command。 而数原创 2013-02-22 18:26:28 · 2845 阅读 · 0 评论 -
PCIe总线协议概述
正所谓,时势造英雄、英雄造时势。是时,PCI总线在PC界已然一统江湖多年,应用已然广泛,PCI的总线已蔚然成风。然,科技日益发展,需求不断膨胀,经过计算机技术10年的发展,包括摩尔定律的不断验证,PCI总线已渐渐感觉力不从心,成为PC系统发展的瓶颈了,在显卡和图形处理方面尤为明显。更高速度的技术的出现势在必行。这种时候的到来是必然的,早在PCI取代ISA的时候就应该想得到的。对科技生产力的阻碍已经原创 2013-03-06 13:44:34 · 29823 阅读 · 1 评论 -
X86架构中断的处理
中断控制器8259A的原理和使用 讨论这些问题,首先要了解中断的概念,什么是中断,中断是怎么一回事。这是基础,可以查阅相关资料去学习。中断控制器呢?就是在有多个中断源的系统中,接受外部的中断请求,并进行判断、选中优先级最高的中断请求,发从给cpu,cpu响应中断并进入响应的中断处理函数中处理相关事件。结合中断的概念,比如中断控制器接受到一个中断请求,而该中断的优先级高于cpu在处理的问原创 2013-02-26 18:38:24 · 2870 阅读 · 0 评论 -
pcie的hotplug概念
PCIE的hotplug操作讨论hotplug的概念hotplug--热插拔即“带电插拔”,指可以在电脑系统运作时插上或拔除硬件设备。配合适当的软件,便可以在不用关闭电源的情况下插入或拔除支持热插拔的周边设备,不会导致主机或周边设备烧毁并且能够实时侦测及使用新的设备。这个比即插即用(Plug-and-Play)可方便多了。说道hot-plug那么就会想到hot-removal,这个道理原创 2013-03-12 12:27:32 · 19220 阅读 · 0 评论 -
PCI总线操作四: PCI配置周期
PCI总线操作 之 PCI配置周期PCI总线协议中定义了256字节的配置空间,用来驱动和配置PCI设备。配置空间的寄存器在总线第六章有描述,这里主要讨论访问pci配置空间的总线命令的具体操作。 在PCI总线的拓扑结构中,每个PCI设备都有一个固定唯一的地址,我们称之为config address。在物理上,对pci设备的配置都需要通过此config address 译码找到对应的设备。原创 2013-02-28 14:50:21 · 2746 阅读 · 0 评论 -
关于PCI IRQ routing的讨论
关于PCI IRQ routing的讨论 一直以来,本人就认为,一切事物的兴起和发生均会合时代有关系。任何时期出现的事物都会有一点的历史特征,历史局限性。当然,也要承认他的客观性和合理性。毕竟存在即合理。PC界尤其明显。比如从PATA到SATA总线的进化、ISA总线到PCI总线,再到PCIe总线等。 这里说的PCI IRQrouting 显而易见,必须牵扯到原创 2013-02-27 18:57:06 · 9098 阅读 · 0 评论 -
关于PCIe的软件配置方式
关于PCIe的软件配置和初始化PCIe设计出来考虑了和pci兼容问题。所以PCIe的软件配置方式可以沿用PCI的配置方式。当然,由于特殊性,也有自身独特的配置方式。所以PCIe模块的访问方式有如下两种:1、 PCI 兼容的配置方式。2、 PCI Express enhanced 配置机制。 PCI兼容方式是在PCI章节已经提过,PCIe与其完全兼容。这里主要描述PCIE高级原创 2013-03-11 16:45:57 · 3819 阅读 · 0 评论 -
了解pcie总线
最好的学习pcie的教程依然是spec,当然网络上还是有很多的书籍的,比如下面这个网站:http://blog.sina.com.cn/s/articlelist_1685243084_3_1.html在看spec的时候,并不是所有的人都适合看某些章节,或者说,对于每个阅读者来说,不需要每个章节都理解。对于我们软件层面来说,chapter1、6、7还是需要认真阅读的。关于pci原创 2013-03-11 22:23:38 · 2239 阅读 · 0 评论 -
PCI总线操作三: PCI总线协议的基础
PCI总线协议的基础注:看完之后,觉得还要详细研读一下spec。以前的理解可能不深刻。PCI总线上动作最基本的机制是burst。一个burst由一个地址phase和一个或多个数据phase组成。Memory、io空间的访问也支持burst。总线上所有信号都是在clock的上升沿取样的,除了resetpin和中断pin。 一、基本的总线控制PCI总线上所有的数据传输都是通过下面三原创 2013-03-01 09:33:14 · 3605 阅读 · 0 评论 -
DDR内存 时序指南
DDR3 memory timing setting: CPC-tCL-RAS-CAS-tRP-rRCD-rRC-tRFC-tWCL-tREF.转载 2016-03-14 16:44:40 · 3473 阅读 · 0 评论