定制IntelFramework优化平台启动性能李玉福研发经理课程编号:EFIS0022•Framework启动流程简介•Framework启动性能优化技术•Framework在嵌入式领域的应用•演示•总结议程3主题介绍yFramework启动过程中的若干要素-Firmware启动过程中的阶段切换(如SEC/PEI/DXE)-模块调度方法-基于变量的启动策略(如Boot####,BootOrder等)yFramework启动性能优化技术-有选择的硬件初始化-有针对的优化技术-通用的最佳策略:可用于提高PC/嵌入式/MID启动速度FrameworkFramework启动流程简介启动流程简介4FrameworkFramework启动流程简介启动流程简介Framework启动流程Poweron[..Platforminitialization..][....OSboot....]ShutdownRunTime(RT)OS-PresentAppFinalOSEnvironmentFinalOSBootLoaderDriverExecutionEnvironment(DXE)BootDevSelect(BDS)TransientSystemLoad(TSL)OS-AbsentAppTransientOSEnvironmentTransientOSBootLoaderBootManagerDevice,Bus,orServiceDriverUEFIInterfacesEFIDriverDispatcherArchitecturalProtocolsPreEFIInitialization(PEI)CPUInitChipsetInitBoardInitverifySecurity(SEC)PEICorePreVerifier5PEI到DXE切换PEIPost-MemoryPEIPre-MemoryPEIDXEMemoryInitializedDXEDispatcherEFISystemTableEFIBootServicesTableMemoryOnlyBootServicesDXEMAINHOBListDXECoreFirmwareVolumePhysicalMemoryPHITTerminationGUIDHOBsDXEStack/BSPHOBListTerminationFirmwareVolumePhysicalMemoryPHITDXEIPLLastPEIM•PHIT–PEIHandoffInformationTableFrameworkFramework启动流程简介启动流程简介6y在DXEDispatcher完成后调用y根据需要连接EFI驱动程序-创建控制台(键盘,显示器等)-处理EFI的启动选项(启动操作系统)启动设备选择(BDS)DXECoreDXEDispatcherBDS.EntryListofGuidsCompletedDispatchingDriversBootTargetFrameworkFramework启动流程简介启动流程简介7yUEFI规范为一系列待加载的驱动程序定义了相关变量。这类变量会在启动选项之前被处理。-Driver####-DriverOrderUEFI驱动选项UEFI描述了驱动选项的使用细节Driver0001Acpi(PNP0A03,0)/Pci(1F|1)/Ata(Primary,Master)/HD(Part3,Sig00110011)/”\EFI\Boot”/”Driver.efi”Driver0002Acpi(PNP0A03,0)/Pci(1F|1)/Ata(Primary,Master)/HD(Part2,Sig00110011)/”\EFI\Boot”/”Driver.efi”Driver0003Acpi(PNP0A03,0)/Pci(1F|1)/Ata(Primary,Master)/HD(Part1,Sig00110011)/”\EFI\Boot”/”Driver.efi”Driver0004Acpi(PNP0A03,0)/Pci(1F|1)/Ata(Primary,Master)/HD(Part3,Sig00110011)/”\EFI\Boot”/”Driver2.efi”Driver0003Driver0004Driver0002Driver0001FrameworkFramework启动流程简介启动流程简介8yUEFI规范通过定义一系列全局变量来确定最终的启动对象。-Boot####-BootOrder-BootNextUEFI启动选项UEFI描述了启动选项的使用细节Boot0001Acpi(PNP0A03,0)/Pci(1F|1)/Ata(Primary,Master)/HD(Part3,Sig00110011)/”\EFI\Boot”/”OSLoader.efi”Boot0002Acpi(PNP0A03,0)/Pci(1F|1)/Ata(Primary,Master)/HD(Part2,Sig00110011)/”\EFI\Boot”/”OSLoader.efi”Boot0003Acpi(PNP0A03,0)/Pci(1F|1)/Ata(Primary,Master)/HD(Part1,Sig00110011)/”\EFI\Boot”/”OSLoader.efi”Boot0004Acpi(PNP0A03,0)/Pci(1F|1)/Ata(Primary,Master)/HD(Part3,Sig00110011)/”\EFI\Boot”/”OSLoader2.efi”Boot0003Boot0004Boot0002Boot0001Boot0002FrameworkFramework启动流程简介启动流程简介9启动对象加载y启动对象通过设备路径来定义,它描述了其具体的物理位置。-Acpi(PNP0A03,0)/Pci(1F|1)/Ata(Primary,Master)/HD(Part3,Sig00110011)/”\EFI\Boot”/”OSLoader.efi”y多数情况下,启动过程将初始化所有的设备。常规的启动过程仍有优化空间FrameworkFramework启动流程简介启动流程简介10正常启动FrameworkFramework启动流程简介启动流程简介11•Framework启动流程简介•Framework启动性能优化技术•Framework在嵌入式领域的应用•演示•总结议程12启动性能的优化y通用优化方法:-充分利用Cache-减少对慢速介质的访问例如减少访问存储在闪存上的Firmware。-提高启动过程中耗时较长的驱动的性能。-优化访问耗时硬件的时序。13不必进行全面初始化!FrameworkFramework启动性能优化技术启动性能优化技术启动对象加载y启动对象通过设备路径来定义,它描述了其具体的物理位置。-Acpi(PNP0A03,0)/Pci(1F|1)/Ata(Primary,Master)/HD(Part3,Sig00110011)/”\EFI\Boot”/”OSLoader.efi”y多数情况下,启动过程将初始化所有的设备。14正常启动过程y正常启动过程中的基本步骤,如右图。通用,但非最佳。FrameworkFramework启动性能优化技术启动性能优化技术15快速启动过程y既保留基本功能又提高启动性能的步骤简化图,如右图。BootDiagnosticsConnectConsolesConnectPCIrootbridgeandInstallOpRom仅初始化启动中的必要部分FrameworkFramework启动性能优化技术启动性能优化技术16优化前后对比FrameworkFramework启动性能优化技术启动性能优化技术17yAcpi(PNP0A03,0)/Pci(1F|1)/Ata(Primary,Master)/HD(Part3,Sig00110011)/”\EFI\Boot”/”OSLoader.efi”加载启动对象InitializethePCIRootBridgeInitializethePCIDeviceInitializetheATADeviceInitializethePartitionDriverInitializetheFileSystemDriverLaunchO/SLoaderBootDiagnosticsConnectConsolesConnectPCIrootbridgeandInstallOpRomFrameworkFramework启动性能优化技术启动性能优化技术18启动流程的调整BDS主导着系统启动流程y基于一个平台的不同使用环境,可通过调整启动策略来加速启动过程。这类例子多见于BDS阶段。-仅初始化与启动对象相关的硬件。-使用已保存的有效启动选项,不必再次检测。-硬件无变化时,无需重新枚举。-不进入设置界面,甚至不需要初始化控制台。-尽量简化BDS中检测键盘或者用户交互的操作。FrameworkFramework启动性能优化技术启动性能优化技术19•Framework启动流程简介•Framework启动性能优化技术•Framework在嵌入式领域的应用•演示•总结议程20FrameworkFramework在嵌入式领域的应用在嵌入式领域的应用什么是符合UEFI规范的嵌入式系统?y符合UEFI规范的嵌入式系统不一定是标准PC设备,并不要求通用的PC功能,如支持USB或者PCI。y操作符合UEFI规范的嵌入式系统硬件,应使用UEFI已定义的接口.如系统支持PCI,就需要使用UEFI定义的PCI接口.UEFI规范不受平台限制21嵌入式设备的特点和使用模式y嵌入式设备的特点-MID(MobileInternetDevice)/UMPC(Ultra-MobilePC)通常被认为是一个闭盒系统。-除了一些特定的热拔插总线(USB/SDIO)外,其它部分多为固定不变的。y嵌入式设备的使用模式-用户希望嵌入式设备能像PC一样强大,但无需与BIOS交互即可快速启动操作系统。-可以通过特殊的机制进入BIOS配置界面,以允许诸如调整硬件配置,修复启动失败等。对于PC和嵌入式设备,Framework的行为是一致的FrameworkFramework在嵌入式领域的应用在嵌入式领域的应用22嵌入式应用有何不同?y多数情况下,UEFI在嵌入式中的应用仍将使用下列常见流程,同时也可借鉴前面提到的优化方法.-SEC-PEI-DXEIPL-DXE-LaunchOS-可能的区别:基于硬件需要,启动的驱动可能更少。初始化较小容量的NVstorage,加载较少的驱动程序,将可能加快启动速度。嵌入式Firmware开发与PC类似FrameworkFramework在嵌入式领域的应用在嵌入式领域的应用23•Framework启动流程简介•Framework启动性能优化技术•Framework在嵌入式领域的应用•演示•总结议程24演示25启动至操作系统的时间比较演示演示EFIEFI正常启动正常启动共约共约9秒(有5秒frontpage等待时间)EFIEFI快速启动快速启动共约共约2.2秒传统传统BIOSBIOS启动启动共约共约9秒利用常规技术可以达到显著的性能提升26•Framework启动流程简介•Framework启动性能优化技术•Framework在嵌入式领域的应用•演示•总结议程27总结y优化与不优化之间的启动性能存在巨大差异。y符合UEFI规范在很多平台上都可以实现。y在BDS中可以做大量的优化工作。y多数情况下嵌入式系统相对简单,因此易于达到较快的启动速度。y本报告总结了一些通用的优化技术。而基于不同的平台设计,还存在着其它特定的优化方法。28更多的EFI课程在会议室5D和5E:更多网上资源: