[置顶] 【我所认知的BIOS】系列blog整理 1.23.2016.zip

这几年来,蛮多小伙伴都给我发邮件拿PDF版本。几年前写的文章格式什么的实在是太粗糙。最近我把所有的文章都整理了一下。其实该想法已经早就有了,只是最近才开始空闲。现在我把所有的文章整理好了以后上传到了CSDN和百度云盘分享给大家。把附件里面的再贴一遍。...
阅读(4052) 评论(4)

[置顶] .o0博客导读0o. 1/23/2016最后更新

寫在前面          一直以來其實沒有開博的打算,但是今天我發自內心寫這份blog。我是一個工作在工控機廠商的BIOS工程師,在這裡我談談我的寫的原因和目的。 原因:主要還是各個前輩影響了我。本身我剛剛從事工作崗位才一年不到的時間,工作于BIOS行業。然而這個行業的資料卻是罕見的少,幾乎在市面上找不到像樣的書籍或者是學習資料。除了從師父那裡獲取信息之外基本上都是看網路上各位前輩的留...
阅读(12686) 评论(122)

【我所认知的BIOS】—> uEFI AHCI Driver(8) — Pci.Read()

社会一直在变,不晓得是不是社会变的太苦开,而我没变所以我反而显得单纯了。办一个居住证,几年前办的以为终于可以一劳永逸的,后来续办的是发现确实不难了。尼玛,上个月去续办还说好,你这快要到期了,下个月来开证明吧。结果我昨天去开证明,一堆的文件甩给我说,不好意思现在流程变了。一切都是按照新办的流程来。好吧,我单纯了。其实在软件和硬件的这个行当里,相对而言还是硬件比较单纯点。软件把硬件封装的比较花里胡哨。那么今天讲的这片文章就是。大家可以好好感受一下。当然在这里的花里胡哨是一种很好的软件架构表现,不才并不是像前面的...
阅读(5850) 评论(9)

【我所认知的BIOS】—> uEFI AHCI Driver(7) — AtaAtapiPassThruSupported

由于宝宝刚刚出生,最近时间比较紧张,原本这篇文章也写好了有一段时间了,但是每天晚上连开机的时间都没今天才更新上来。我已经邀请到几位我的好朋友加入到我的行列中来写uEFI的东西,他们分别会负责其他module的撰写。以后会专门说明各个部分的作者。没想到呀,局部变量就那么5个,居然里面牵扯的定义和概念有那么多,足足扯了一篇文章。下面的这篇文章。我预计也不简单,函数一进去会调用到uEFI的常用boot service里面的一些库函数。...
阅读(3575) 评论(2)

【我所认知的BIOS】—> uEFI AHCI Driver(6) AtaAtapiPassThruSupported的局部变量们

前面5个篇文章把EFI_DRIVER_BINDING_PROTOCOL这个protocol的一个实例(instance)AHCI driver的安装做了一个比较详细的介绍。其实这个driver到目前为止只干了一件事情,那就是把这个protocol安装到对应的ImageHandle上去。对于这个driver在BDS的怎么运行,原理上讲就是先调用supported()然后再调用start(),最后运行stop()来卸载driver。最近听了不少同事说去泰国旅游多么多么爽,后来了解了一下确实是不错的选择。恰好还欠...
阅读(3738) 评论(1)

【我所认知的BIOS】—> uEFI AHCI Driver(5) — 第一个protocol终于要开始安装了

文章对EFI_DRIVER_BINDING_PROTOCOL的每个 成员的讲解是重点。它是我们遇到的第一个uEFI里面的protocol所以我都尽量把它讲的够细。这一篇文章开始就真正进入到install protocol的函数里面去了。拭目以待吧~...
阅读(4434) 评论(0)

【我所认知的BIOS】—> uEFI AHCI Driver(4) — 第一个Protocol真难搞

文章对EFI_DRIVER_BINDING_PROTOCOL的每个 成员的讲解是重点。它是我们遇到的第一个uEFI里面的protocol所以我都尽量把它讲的够细。下一篇文章开始就真正进入到install protocol的函数里面去了。...
阅读(4893) 评论(0)

【我所认知的BIOS】—> uEFI AHCI Driver(3) — 无处不在的protocol

uEFI wasn’t built in a day. 它涉及的很多原理其实是设计的相当好的。具体我没去考证,据说设计uEFI架构的这帮人,都是很牛逼的OS架构师。他们对软件架构的理解相当深刻,不乏Linux精英。所以,在uEFI的骨子里面实际上流着的是Linux这类OS级别的血。不仅架构是这样,在coding的实现上面更是看的出来。用C语言来实现了面向对象等这些技巧信手拈来,用所谓的各种protocol来交互更是层出不穷。Code的思路层层递进,高级coding的技巧无处不在,在后面的文章会婉婉道来。...
阅读(4092) 评论(0)

【我所认知的BIOS】—> uEFI AHCI Driver(2) — 原来开始也不那么简单

真是不好意思,上周由于家里有急事,所以离开上海比较匆忙都没来得及更新就回家了。这周补上两篇。 uEFI这个架构,我觉得它确实挺好的。比较起legacy BIOS来说,uEFI有非常完整的文档说明。所有的功能和概念都说的非常明确,当然实际上就是一种对协议的阐明。好吧,原来这就是protocol也就是我们说的最多的协议。比如TCP/IP这两个缩写词的P其实就是protocol的缩写。 这一章节紧接上一节,编译完了以后,首先我们想到的应该是程序的入口在哪里对吧?显然是上一节说了的ENTRY_POINT – Ini...
阅读(5710) 评论(0)

【我所认知的BIOS】—> uEFI AHCI Driver(1) — uEFI开始其实不是很复杂

有人问过没?啥叫driver?不就是司机么?其实这一点都没错,driver的中文意思却是有司机的意思。只是在英文的世界里面,他们也有一词多义,但是他们的根本意思都是一样的。你看司机把一堆冷冰冰的铁块块就这么驾驶起来,让它动起来了。汽车还能够在司机的驾驶操作下面完成多很很让人惊讶的事情,比如前空翻呀,侧空翻呀,或者自燃呀什么的。。。反正就是感觉很厉害。 软件领域的driver完全就是这个意思,软件写成的一堆代码模拟出了一个司机这样的一个虚拟人来,在特定的时候让硬件按照规定好的步骤去做事,所以就叫做驱动,让一堆...
阅读(6813) 评论(0)

【我所认知的BIOS】—> uEFI 开始

当年我出道的时候,uEFI还没流行起来。现在uEFI却已经是主流的BIOS了。原本三年前就说要写这个uEFI的部分的,那会儿由于工作和学业等种种原因落下了。从今天起,我就补上了。目前是打算,几乎尽量做到每一行做注释,当然如果是太简单的,连傻瓜都看得懂的话,那我就略过了。 uEFI这个东西现在很流行,如果windows再不给力点,估计这就是最后一个BIOS了。这个架构很大也很全,几年前我还是从legacy BIOS转过来的时候,是蛮艰难的一个过程。所以深知当时初学者时的那种困难感。(随着积累的增多,年龄的增大...
阅读(7103) 评论(1)

【我所认知的BIOS】—> Advanced Configuration and Power Interface 原理(实践部分)

感觉还是要引用一下前面一篇文章的开场白“ACPI是一个内容很丰富的综合性的规范,从外表看上去不得不承认感觉很神秘。究其根本其实还是建立在X86架构和应用的基础之上。大神其实是这样的人,他能够把很复杂的东西然后描述的很简单,很容易理解。这样的我有幸遇到了一些。ACPI的东西,实际上就是控制电脑系统的电源的东西。目的只有一个就是想尽一切办法去省电。由于各家vendor在handle这个事情,所以就事先大家定义好ACPI这个规范。大家都按着定义好的接口去实现,不管哪家siliconvendor,BIOS vend...
阅读(3978) 评论(3)

【我所认知的BIOS】—> Advanced Configuration and Power Interface 原理(软件部分)

感觉还是要引用一下前面一篇文章的开场白“ACPI是一个内容很丰富的综合性的规范,从外表看上去不得不承认感觉很神秘。究其根本其实还是建立在X86架构和应用的基础之上。大神其实是这样的人,他能够把很复杂的东西然后描述的很简单,很容易理解。这样的我有幸遇到了一些。ACPI的东西,实际上就是控制电脑系统的电源的东西。目的只有一个就是想尽一切办法去省电。由于各家vendor在handle这个事情,所以就事先大家定义好ACPI这个规范。大家都按着定义好的接口去实现,不管哪家siliconvendor,BIOS vend...
阅读(4645) 评论(1)

【我所认知的BIOS】—>Advanced Configuration and Power Interface原理(硬件部分)

ACPI是一个内容很丰富的综合性的规范,从外表看上去不得不承认感觉很神秘。究其根本其实还是建立在X86架构和应用的基础之上。ACPI这个东西是有那么点点复杂,我也试图尽量说的简单些。后续打算先用三篇文章来在架构上描述硬件、软件、简单的实践部分。最近intel推了一个叫做Minnow的HW open source的硬件平台,而且BIOS是基于UDK的。于是,我筹划着在这个开源的硬件平台上和大家share一下EDK的升级版本UDK。关于ACPI的详细代码注解和更加详细的注释部分(方方面面很多,暂时还没想好按照什...
阅读(4995) 评论(3)

【我所认知的BIOS】-> Cache原理

以前有对Cache的架构研究,最近由于看了一些ARM上相关的cache的原理,随便把x86和ARM的cachestudy写成文章share出来吧。一晃都今天才上来。也说说吧,这大约三年里面变化蛮多的。前面两年是由于公司的要求的原因没有更新。后来由于一直在忙于研究生的学业,没时间更新。再后来就开始着手准备重操旧业,把以前study的那些尽量用比较简单的语言写出来和大家分享分享。X86实际上是一个夕阳...
阅读(4158) 评论(3)

_=我回来了=_

~目前失业在家中~ 这两年果真是太忙了,忙的实在是没时间更新我的blog。童鞋们,从今天开始我正式回归啦。而且已经不忙了。在未来的时间里面,我会focus在EFI的EDK和UDK的相关讨论中。目前的想法:EDK从SEC-> PEI-> DXE-> BDS-> SHELL几个大块来讨论。中间穿插一些我认为比较好的EFI亮点来和大家讨论。其中有些文章我是有以前就写好,大部分还要重新写。O...
阅读(4063) 评论(14)

【我所认知的BIOS】->深入理解IRQ7

这篇文章的线索是因为偶然间发现自爱DOS下面,IRQ7对应的中断服务程序(ISR)只有一个Iret.那我不经会问,这是为什么呢?因为在BIOS下面IRQ7是有对应的ISR的。...
阅读(6653) 评论(0)

【我所认知的BIOS】->PCI enumerate

这篇文章本是很久以前写的,最近感觉比较懒惰今天才贴出来。近两年开始EFI越来越流行了,可以说逐渐有颠覆legacy bios的趋势。处于对知识的渴望和追求我也最近对EFI有了一些简单的了解,我打算在后续的文章中做一个关于EFI的专题,基于EDK来写blog应该不错。毕竟它是开源的嘛,如果以AMI的EFI来写文章我估计可能会涉及到商业机密的问题。希望能像网上那个《linux的那些事儿》那样做成一个一个的小专题。也希望如果有兴趣的朋友或者BIOSER能够和我联系,咱们一起研究哈。期待您的加入。。。先说说我的打算...
阅读(15514) 评论(9)

如何使用WinDBG跟踪调试ASL/ACPI?

去年在研究ACPI的时候我有用windbg来分析一下ACPI methods,当时配置windbg的时候参考了几位前辈的文章,今天也转其中一篇过来以做备份。原地址是:http://blog.csdn.net/EFIBIOS/archive/2007/03/12/1526763.aspx ...
阅读(7560) 评论(4)

【我所认知的BIOS】->反汇编BIOS之Bootblock(11)

最近一段时间心态不太好,所以blog也没有更新。现在总算是调整过来了,目前我是这么打算,反汇编的文章暂时就写到bootblock这里了。至于如果还有兴趣研究POST部分的爱好者的话,我们可以私聊。后续文章准备写些比较深入点的文章,比较细节点的分析等等。希望大家给点建议,也希望我们BIOS ren共同进步~并且我准备把这个blog搬到BIOS联盟上去。毕竟那面比较专业一点。...
阅读(6003) 评论(6)

【我所认知的BIOS】->反汇编BIOS之Bootblock(10)

当内存检测完毕,一切准备就绪的时候,award bios就会准备把bios从ROM里copy到实际的RAM中来。当然在做这些之前还做了其他的动作,比如说操作timer呀什么的,看上面的代码就好,不赘述了。 从_F000:E439这行开始,bios先去在F000段搜索是否有压缩的字样(当然肯定是有啦。)找到后,把BIOS从ROM里面copy出来,分别放到了10000-2FFFFH(E000和F000分别对应1000和2000)对应的RAM里面,同时也备份了一份到180000H-19FFFFH里面。然后用一个...
阅读(5752) 评论(8)
70条 共4页1 2 3 4 下一页 尾页
    个人资料
    • 访问:656744次
    • 积分:7255
    • 等级:
    • 排名:第3053名
    • 原创:61篇
    • 转载:9篇
    • 译文:0篇
    • 评论:682条
    最新评论