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控制,屏幕背光