coreboot学习6:ramstage阶段之芯片初始化流程

从本文开始,就根据前文给出的ramstage的主干线索分析每个小阶段执行的过程。依然以qemu-i440fx为主做分析——因为当前条件只有这个“主板”才能在通过打印跟踪其过程。另外,也会列出baytrail的相关函数,但可能会存在部分瑕疵。在分析时,不一定会根据顺序,也不一定会详细到每个函数。如果要详细的信息,请查阅代码。也建议根据前文给出的主干流程图进行参照分析。

阅读全文>>

coreboot学习4:启动流程跟踪之romstage阶段

romstage是coreboot的第二个执行阶段。本文分别介绍基于qemu模拟环境的x86的跟踪,以及基于Intel baytrail平台的跟踪。在romstage阶段,由于内存还未初始化好,所以使用cache作为内存,此项技术称为“cache as ram”,简称为“CAR”。网络上有较多文章涉及此方面,可以查阅以了解更多。

阅读全文>>

BIOS调查笔记

本文简单整理一下BIOS厂商分类,以及BIOS替换者UEFI。还涉及到一些开源的BIOS项目介绍。大部资料均来自互联网。 BIOS是英文”Basic Input Output System”的缩略词,直译过来后中文名称就是”基本输入输出系统”。其实,它是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从CMOS中读写系统设置的具体信息。 其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。

阅读全文>>

onvif学习笔记5:onvif框架代码初步了解

前文讲述了使用gsoap生成onvif代码的框架,这仅是万里长征第一步,因为这些代码是无法运行起来的,需要额外添加工作才能使用与测试工具对接。本文对这些框架代码进行一步初步的认识和学习。由于代码比较庞大,后续可能不间断地探索,慢慢积累点滴。

阅读全文>>

onvif学习笔记4:Windows环境使用gsoap生成onvif框架代码

因工作原因,被安排接手onvif,为了对其有个真正、切实、系统、认真、严谨的了解,就利用周末等业余时间来学习研究。本文主要讲述在windows环境中使用gsoap生成onvif框架的代码,但不涉及框架代码的使用。由于实际真正使用的只有生成的代码文件,所以无论使用Linux还是Windows,都无所谓。

阅读全文>>

GCC弱符号的一个应用示例

GCC对C/C++做了很多扩展,很多基于Linux环境的开源项目都会使用。本文介绍一下弱符号的应用。对于大型项目特别是兼容多种平台的项目来说,同一功能的实现会区别于不同平台,比如linux内核,比如coreboot。有的平台可能没有该功能接口,但顶层调用会使用到这个接口,为了不使链接出错,往往就使用到弱符号来解决。使用弱符号函数时,假如此项目工程没有其它同名的函数(可以认为是“强符号”),则调用该函数;如果其它文件也实现了同一名称函数,则调用其它文件的实现函数。

阅读全文>>

Intel处理器MSR学习

Intel IA32软件开发者手册第3卷第35章中介绍了MSR。但是,该章节并没有十分详细地描述,基本上就给出一个地址并作简单说明。而网络上能搜索到文章,也是点到即止。本文结合IA32开发手册,以及coreboot代码,概要地整理一下这方面的知识,用实例来展示MSR用途。

阅读全文>>