UEFI固件设计的初衷就是用来引导操作系统,下面简单介绍UEFI环境下windows是如何启动,以及在pre-OS环境下如何实现对电池充放电的管理。
启动Windows流程基本分为以下几个阶段:
1.硬件自举过程。主要完成了硬件的上电过程和BIOS第一条代码的调用(Device Powered on)。
2.基本的硬件初始化过程。这里主要由不同的SOC芯片厂商来提供,如Intel会提供FSP(Firmware boot loaders)。
3.UEFI运行时环境。包括boot service 、runtime service、UEFI driver、UEFI APP等服务,由行业组织通过UEFI spec来规范和描述,一般会由IBV来提供(OEM UEFI applications、UEFI drivers and services)
4.Windows启动管理器。负责windows的启动、安全、更新、恢复、诊断等功能,有微软提供。
整个windows启动的流程会从#1开始到#4结束进入到正在的windows系统环境。通常提到的BIOS开发就是完成从#1到#4整个流程,底层的为上层提供服务,需要注意的是不是每一个版本的windows都支持所有的功能,下图部分是只有windows mobile(也叫Windows phone)版本才支持。
着重介绍下Battery charging in the boot environment for Windows子系统,它完成开机过程(pre-OS)电池及充放电的子系统的管理,包括电池的基本信息如:容量,电压,充放电状态,温度,电池物理参数特性,charger控制,屏幕背光控制,充电用户UI显示等信息。
子系统包括三个部分,分别是:
1.EFI_BATTERY_CHARGING_PROTOCOL
2.EFI_DISPLAY_POWER_PROTOCOL
3.EFI_USBFN_IO_PROTOCOL
4.UEFI battery charging application
其中#1,#2由OEM&IBV或SOC芯片厂商来提供,#3是EFI标准的Protocol,#4是微软提供的UEFI APP由Windows启动管理器来负责调用和协调。当OEM安装了EFI_BATTERY_CHARGING_PROTOCOL和EFI_DISPLAY_POWER_PROTOCOL之后Windows启动管理器才会调用UEFI battery charging application否则就不会调用。这时用户可以自己实现自定义的UEFI battery charging application来对pre-OS环境下进行电池充放电进行管理。

先附一个充放电的图片,细节后面再介绍。


转载请注明出处,或可关注微信公众号:固件C字营
Cstyle.z.zhou@outlook.com // http://blog.youkuaiyun.com/CStyle_0x007
本文介绍了UEFI环境下的Windows启动流程,重点解析了pre-OS环境中电池充放电管理的子系统,包括EFI_BATTERY_CHARGING_PROTOCOL、EFI_DISPLAY_POWER_PROTOCOL和EFI_USBFN_IO_PROTOCOL。在Windows启动管理器的协调下,这些组件负责电池的基本信息管理和用户界面显示。未安装相应协议时,Windows将不调用UEFI电池充电应用。
7263

被折叠的 条评论
为什么被折叠?



