UEFI开发探索02 – 环境搭建1

开发初期的目的就是做出可以在pci rom上跑的Oprom,当然是在uefi bios下。我的计划大致如下:

1 搭建完整的编译环境,了解使用哪些库进行编译;

2 我的设备最常用的几种总线通讯方式:PCI总线、smbus总线和usb总线,如何通过这些总线访问设备,必须要解决;

3 图形显示,我最感兴趣的,首要解决的是如何画点。PC的架构还是一样的,硬件原理差不多,还是有页、显示模式等概念,不过uefi api把很多细节屏蔽了;

4 键盘输入,必不可少。鼠标的功能,试试看吧;

5 uefi下可以使用网络的功能,这很吸引人。以前为了加快产品测试,在dos下开发网络通信功能,最头疼的是要去找各种网卡的dos驱动,新的网卡基本都不怎么提供了。写这篇博客的时候,我还没去实现过,后面尝试一下;

6 硬盘访问;

7 编译一个可以放在pci rom上的oprom。以前的还原卡、硬盘加密等,都可以用这种方式来实现了。

计划大概就是如此,主线是做Oprom,支线是如何访问各种设备,以应用为目的,对uefi进行探索。

先看下我常用的两款设备,用来运行实际代码的。

图1 带有smbus与usb hid通讯功能的切换卡
图2 带PCI-E扩展ROM的切换卡

图1的卡带有smbus通讯和usb hid通讯功能,是在与联想、方正合作项目中,开发双网安全隔离计算机所用的卡。图2 是公司目前在销售的产品,带有PCI-E扩展ROM,是一种用来隔离硬盘和网络的产品。

第一款设备没有扩展ROM,我是以uefi driver的方式提供oprom,bios工程师将oprom编译在bios一起,访问设备的。第二款是将oprom代码直接写入rom中,不需要bios工程师的配合,做起实验来比较方便。

两个设备上有大量与我们实验无关的元器件,大部分是用来切换网络、硬盘、USB的,以及供电电路。最近正在考虑把这两种设备合在一起,做一个实验板,不知道有没有人有需求。

啰啰嗦嗦交待了一大堆的前言,回到搭建软件的编译环境。

使用intel提供的UDK来搭建即可。以前是在sourceforge.net上下载UDK,地址:https://sourceforge.net/projects/edk2/files/。我当时用的是UDK2010,刚才查看了一下,sourceforge上已经有了UDK2015,而在github上已经有了UDK2017了。

嗯,周末我再研究一下,看看选择哪个环境比较合适。

发表评论

电子邮件地址不会被公开。 必填项已用*标注