12

UEFI开发探索65- YIE001开发板(01开篇)

 3 years ago
source link: http://yiiyee.cn/blog/2021/01/05/uefi%e5%bc%80%e5%8f%91%e6%8e%a2%e7%b4%a265-yie001%e5%bc%80%e5%8f%91%e6%9d%bf%ef%bc%8801%e5%bc%80%e7%af%87%ef%bc%89/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

UEFI开发探索65- YIE001开发板(01开篇)

请保留-> 【原文:  https://blog.csdn.net/luobing4365 和 http://yiiyee.cn/blog/author/luobing/】

有段时间没有更新博客了,最近大部分时间都用在公司项目上、以及整理书稿了。在整理书稿的过程中,到了讲述PCIe协议这章的时候,总觉得只是介绍协议和UEFI代码,未免有点太枯燥了。

因此,我把之前写好的章节全部推翻,介绍PCI协议的内容,改为做一个PCIE的开发板,并动手实现板卡的UEFI Option ROM。

也就是说,我按照想象开发了带Flash ROM的PCIE开发板,把UEFI Oprom代码灌入,设备插在计算机上,就可以显示编写好的界面,并能控制开发板上器件,实现一些有趣的功能。

开发板我取名为YIE001,来源于我们博客网站的缩写。目前的计划如下:

  1. 实现基本的Oprom代码;
  2. 实现界面和键盘控制功能;
  3. 实现跑马灯程序;
  4. 实现开发板的按键控制功能;
  5. 实现开发板上的屏幕显示功能;
  6. 移植基础的GUI到开发板上;
  7. 读取插在主机上U盘的内容;
  8. 做个贪吃蛇的游戏。
  9. More……

其中第5个,是指开发板上的I2C接口的OLED屏幕,而不是主机的屏幕。目前不确定这个功能是否能实现,我所用的PCIE芯片Ch366,它的I2C时序很奇怪,我还没有调试,不知道结果如何。当然,时间原因,以上的计划很有可能改变,我尽量按照这些目标开展计划。

另一个计划是关于UEFI与USB的,我准备稍微拓展一下,把如何用单片机实现HID通讯,Windows下如何访问HID设备、UEFI下如何访问HID设备,作为一个大专题,全面讲一下。时间足够的话,Linux系统下访问HID设备的方法也试着实现一下。这就把USB HID从上到下,我觉得应该掌握的知识,全部都探索了一遍。

本篇博客,主要介绍下刚打样回来的YIE001的硬件结构。

开发板YIE001主要就是为开发UEFI Option ROM而制作的,其目的为了演示Option ROM代码如何调用Protocol、如何控制硬件。它是一块PCIe的板卡,提供了拨动开关控制、LED灯的控制以及I2C的接口,其产品结构示如图1所示。

图1 YIE001开发板结构

实际的板卡,如图2所示。

图2 YIE001开发板

YIE001的主芯片为CH366,在7.1.1节介绍UEFI环境下与PCI/PCIe设备通信时,曾经介绍过其部分内部寄存器的功能。CH366是PCI-Express 总线的扩展 ROM 控制卡的专用芯片,它支持容量为 64KB~1MB的可电擦写只读存储器Flash ROM。开发板中所用的Flash ROM为SST公司的SST25VF010A,容量为1Mb,也即128KB。

在YIE001上,提供的硬件资源有2个拨动开关、4个LED灯,以及I2C接口。开发板上的CH366,采用的是LQFP-44无铅封装。其中,拨动开关分别连接了CH366的引脚GPI1和GPI2;LED灯通过低电平触发,LED1、LED2、LED3、LED4分别连接到CH366的引脚SW0、SW1、GPO和RSTO;I2C接口则是直接将CH366中兼容I2C的4个引脚引出,以方便连接其他I2C设备。

查看CH366的芯片手册,可知这LED1和LED2对应CH366的控制寄存器的位0和位1。将控制寄存器的位0的值设置为0,即可点亮LED1,设置为1,即可关闭LED1。LED2的亮灭,可同样通过设置控制寄存器位1的值来实现。其余硬件资源的对应,如图3所示。

图3 YIE001硬件资源对应(摘自CH366芯片手册)

YIE001的硬件结构介绍,就到此完成了。下一篇开始,我将使用这个开发板,按计划实现各种功能,做一些有意思的实验。

81 total views, 5 views today

210c9a4d410d265665667a36fbe0f529?s=49&d=identicon&r=g作者 罗冰(Robin)发布于 2021年1月5日2021年1月5日分类 BIOS/UEFI


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK