uefi bds boot flow
来源:互联网 发布:湖人王朝时期科比数据 编辑:程序博客网 时间:2024/06/05 21:49
BdsEntry.c 是BDS的入口函数所在的文件,其入口函数为BdsEntry。
在BdsEntry 中会调用
// Check if we have the boot next option
//
mBootNext = BdsLibGetVariableAndSize (
L"BootNext",
&gEfiGlobalVariableGuid,
&BootNextSize
);
得到当前boot menu中的选项,即决定从哪一项开始启动os,而这一项是由BootNext 来决定的.
之后调用
BdsBootDeviceSelect ()——>BdsLibBootViaBootOption
在BdsLibBootViaBootOption中会调用如下code来装载os Image.
// Report status code for OS Loader LoadImage.
//
REPORT_STATUS_CODE (EFI_PROGRESS_CODE, PcdGet32 (PcdProgressCodeOsLoaderLoad));
Status = gBS->LoadImage (
TRUE,
gImageHandle,
DevicePath,
NULL,
0,
&ImageHandle
);
然后调用gBS->StartImage 来开始进入下下一阶段.
Status = gBS->StartImage (ImageHandle, ExitDataSize, ExitData);
在BdsEntry 中会调用
// Check if we have the boot next option
//
mBootNext = BdsLibGetVariableAndSize (
L"BootNext",
&gEfiGlobalVariableGuid,
&BootNextSize
);
得到当前boot menu中的选项,即决定从哪一项开始启动os,而这一项是由BootNext 来决定的.
之后调用
BdsBootDeviceSelect ()——>BdsLibBootViaBootOption
在BdsLibBootViaBootOption中会调用如下code来装载os Image.
// Report status code for OS Loader LoadImage.
//
REPORT_STATUS_CODE (EFI_PROGRESS_CODE, PcdGet32 (PcdProgressCodeOsLoaderLoad));
Status = gBS->LoadImage (
TRUE,
gImageHandle,
DevicePath,
NULL,
0,
&ImageHandle
);
然后调用gBS->StartImage 来开始进入下下一阶段.
Status = gBS->StartImage (ImageHandle, ExitDataSize, ExitData);
0 0
- uefi bds boot flow
- UEFI Boot Flow 系列之 BDS Phase
- UEFI Boot Flow 系列之BDS
- UEFI Boot Flow
- UEFI Boot Flow系列之 概述
- UEFI Boot Flow 系列之 SEC Phase
- UEFI Boot Flow 系列之 PEI Phase
- UEFI Boot Flow系列之 概述
- UEFI Boot Flow 系列之 SEC Phase
- UEFI Boot Flow 系列之 PEI Phase
- UEFI Boot Flow 系列之 DXE Phase
- UEFI Boot Flow 系列之 SEC Phase
- UEFI Boot Flow 系列之概述
- UEFI Boot Flow 系列之SEC
- UEFI Boot Flow 系列之PEI
- UEFI Boot Flow系列之DXE
- BOOT BIOS UEFI
- legacy boot与uefi boot
- CentOS 7 下Docker安装
- QT5移植到ARM中
- @Resource报错
- Ubuntu 14.04 搜狗输入法
- (4.1.50)简洁优雅地实现夜间模式
- uefi bds boot flow
- 烟花爆炸色彩效果—ExplosionField
- spring中应用模板模式封装ElasticsearchTemplate
- Spring Annotation Transaction
- 函数参数arguments共享问题
- VS2010+ visualgdb无法查看变量值的解决方案
- java_IO,反射机制,jdk动态代理
- 李笑来《把时间当作朋友》1
- Android Mashup