当前位置: 首页 > news >正文

重庆南昌网站建设google搜索

重庆南昌网站建设,google搜索,自己开发网站怎么开发,高端建筑物图片UEFI系列文章目录 第一章 SEC阶段讲解 第二章 PEI阶段讲解 文章目录 UEFI系列文章目录前言一、PEI阶段二、PEI Service三、PEI flow四、InstallPpi和LocatePpi举例五、Hob六、PEI入口和出口 前言 众所周知,UEFI bios分为四个阶段:SEC、PEI、DXE、BDS&a…

UEFI系列文章目录

第一章 SEC阶段讲解
第二章 PEI阶段讲解


文章目录

  • UEFI系列文章目录
  • 前言
  • 一、PEI阶段
  • 二、PEI Service
  • 三、PEI flow
  • 四、InstallPpi和LocatePpi举例
  • 五、Hob
  • 六、PEI入口和出口


前言

众所周知,UEFI bios分为四个阶段:SEC、PEI、DXE、BDS,运行完毕才能进到setup界面或是进入操作系统。
x86平台较为经典,而ARM在UEFI之前需要运行ATF(Arm Trusted Firmware),ATF做了SEC和PEI的部分工作,且ARM部分平台不需要PEI。
在这里插入图片描述

这篇文章着重介绍UEFI bios的PEI阶段。


提示:以下皆基于x86 UEFI bios

一、PEI阶段

PEI: Pre-EFI initialization 预初始化阶段

1.为什么需要PEI?

内存还未初始化。
芯片组还未初始化。
ROM上要执行的code还没被解压。

2.PEI阶段做了哪些事情?

  • CPU\芯片组\内存初始化
  • 把PEI阶段收集到的某些信息会存放进Hob,传递给下一个阶段:DXE
  • 控制权交给DXE
  • 固件损坏后的紧急修复(recovery)
  • 从 S3 睡眠状态(CPU停止工作,挂起到内存RAM)恢复
    (Disable CAR, Eable Cache恢复成缓存本身的作用)

3.PEI组成元素

  • PEI Core
    为提供PEIMservice
    加载执行PEIM
  • PEI Service
    PEl Core服务例程(函数),所有PEIM都可以使用它们
  • PEIM
    意思是PEI Module,PEI阶段执行模块的type名
  • PPI
    PEl to PEl Interface , PEIM为其他PEIM提供调用接口
    (需要其他地方install了才能去locate)

二、PEI Service

1.PPI Service
{InstallPpi
ReInstallPpi
LocatePpi
NotifyPpi
}
2.Boot Mode Services | s3、s4、s5、recovery、flash更新等
{GetBootMode
SetBootMode
}
3.HOB Services
{CreateHob
GetHobList
}
4.Firmware Volume Service | 固件空间
{FfsFindNextVolume
FfsFindNextFile
FfsFindSectionData
}
5.PEI Memory Service | 内存
{
InstallPeiMemory
AllocatePages
AllocatePool
CopyMem
SetMem
}
6.Status Code Service | 状态
{ReportStatusCode
}
7.Reset Service
{ResetSystem
}

其中ppi相关非常重要。
installppi是安装ppi,每个ppi都有其特定的guid,写了不同的功能后installppi来安装好。后续可通过在需要的地方locateppi调用。
reinstallppi就是字面上的重新安装。
notifyppi一种类似中断的回调触发,在对应的ppi被install或reinstall会触发。

Hob的CreateHobH和GetHobList其实都是PEI时用的,前者是创建Hob,后者是获取HobList的地址(要想找到自己创建的hob,还需调用其他函数和循环来找,比如通过当时存储的guid)。

ReportStatusCode是往80 port上写值。

三、PEI flow

  • 初始化PEI Core
  • 有序dispatch分发PEIM执行(执行的PEIM都会有一个entry point入口函数)
    如果设置了priority的话会按照优先级顺序执行,也会按照依赖里的guid是否install上去,没装上去就靠后、等待guid装上去了再执行。
  • PEI Core dispatch DXE Ipl结束,load进DXE

四、InstallPpi和LocatePpi举例

举例InstallPpi:
1.定义guid gCMOSREADWRITEGuid和我要执行的功能CMOSPpi

EFI_GUID gCMOSREADWRITEGuid={0x41122338, 0x5678, 0x1234, {0x22, 0x55, 0x56, 0xe7, 0x55, 0xb2, 0x78, 0x77}};
void peiwritecmos8(UINT8 OFFSET,UINT8 DATA){IoWrite8(WRITE_READ_INDEX,OFFSET);IoWrite8(WRITE_READ_DATA,DATA);  }
UINT8 peireadcmos8( UINT8 OFFSET_READ){IoWrite8(WRITE_READ_INDEX,OFFSET_READ);return IoRead8(WRITE_READ_DATA);}
typedef void(EFIAPI *WRITE_CMOS)(UINT8 OFFSET,UINT8 DATA);
typedef UINT8(EFIAPI *READ_CMOS)(UINT8 OFFSET_READ);
typedef struct SHOW_CMOS{WRITE_CMOS peiwritecmos8;READ_CMOS  peireadcmos8;
}CMOS_READ_WRITE;static CMOS_READ_WRITE CMOSPpi ={peiwritecmos8,peireadcmos8 
};

2.拿着gCMOSREADWRITEGuid、CMOSPpi,按照格式写EFI_PEI_PPI_DESCRIPTOR结构CMOS_PPI_WRITE_READ

static EFI_PEI_PPI_DESCRIPTOR CMOS_PPI_WRITE_READ[]= {
{ EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST,&gCMOSREADWRITEGuid, &CMOSPpi}
};

入口函数内:将写好的CMOS_PPI_WRITE_READ拿来安装

(*PeiServices)->InstallPpi(PeiServices, CMOS_PPI_WRITE_READ);

举例LocatePpi:

EFI_GUID gCMOSREADWRITEGuid={0x41122338, 0x5678, 0x1234, {0x22, 0x55, 0x56, 0xe7, 0x55, 0xb2, 0x78, 0x77}};
typedef void(EFIAPI *WRITE_CMOS)(UINT8 OFFSET,UINT8 DATA);
typedef UINT8(EFIAPI *READ_CMOS)(UINT8 OFFSET_READ);
typedef struct SHOW_CMOS{WRITE_CMOS peiwritecmos8;READ_CMOS  peireadcmos8;
}CMOS_READ_WRITE;//入口函数内
CMOS_READ_WRITE         *readwritecmosppi;(*PeiServices)->LocatePpi(PeiServices,&gCMOSREADWRITEGuid, //写guid0,NULL,&readwritecmosppi //获取的函数) ; if((readwritecmosppi->peireadcmos8(0x38))!=0){//调用函数readwritecmosppi->peiwritecmos8(0x39,0xf);}

五、Hob

Hob是用来存放信息的东西,用于PEI获取的信息传递给DXE(可以使内存的信息、IO的信息等等)。HobList以PHIT HOB开头,之后的Hob排列呈链表。
在这里插入图片描述
Hob类型:
PHIT Hob,作为头Hob
描述物理内存信息Hob
内存空间分配Hob
Fv Hob

PEI主要分为3个阶段:
1.Pre memory
2.post memory:HobList - Termination、FV、physical memory、PHIT
4.DXE IPL(最后的PEIM):HobList - Termination、GUID Hobs、DXE Stack/BSP、DXE Core、FV、physical memory、PHIT

DXE Main就可以获取到HobList

Create a Hob代码

typedef struct [
EFI_HOB_GUID_TYPE EfiHobGuidType;
OEM_DEFIN_TYPE XXX;
}Demo_HOB; //Hob定义Status = (*PeiServices)->CreateHob(PeiServices,EFI_HOB_TYPE_GUID_EXTENSION, //属性:GUID_EXTENSIONsizeof(Demo_HOB),&DemoHob);
if (!EFI_ERROR(Status){ //赋值DemoHob->EfiHobGuidType.Name = gDemoGuid;DemoHob->xxx = YYY;
}

同EFI_HOB_TYPE_GUID_EXTENSION类似,还有其他HOB属性
EFI_HOB_TYPE_HANDOFF
EFI_HOB_TYPE_MEMORY_ALLOCATION
EFI_HOB_TYPE_RESOURCE_DESCRIPTOR
EFI_HOB_TYPE_GUID_EXTENSION(查找的时候就用guid查找)
EFI_HOB_TYPE_FV
EFI_HOB_TYPE_CPU
EFI_HOB_TYPE_MEMORY_POOL
EFI_HOB_TYPE_CV

最后带着hoblist去DXE(这里是DXEIPL的函数):
HandOffToDxeCore (DxeCoreEntryPoint, HobList);

六、PEI入口和出口

SEC带着SECCoreData和PPIList跳转PEIEntryPoint
入口:PeiMain.c里的PeiCore
(ps:pei service)
内存初始化、pei内存分配、hoblist头创建、PPIlist获取、PEIM dispatch(先statuscode再nvram再其他)
locate DXEIPL的ppi
转到DXEIPL函数,一系类操作后BuildModuleHob来加Hob到DXE,再带着HobList和DxeCoreEntryPoint跳转HandOffToDxeCore


文章转载自:
http://www.morning.kzcz.cn.gov.cn.kzcz.cn
http://www.morning.wyzby.cn.gov.cn.wyzby.cn
http://www.morning.wjhdn.cn.gov.cn.wjhdn.cn
http://www.morning.ptmch.com.gov.cn.ptmch.com
http://www.morning.qyqdz.cn.gov.cn.qyqdz.cn
http://www.morning.dsncg.cn.gov.cn.dsncg.cn
http://www.morning.sjjq.cn.gov.cn.sjjq.cn
http://www.morning.msmtf.cn.gov.cn.msmtf.cn
http://www.morning.gwqkk.cn.gov.cn.gwqkk.cn
http://www.morning.ccjhr.cn.gov.cn.ccjhr.cn
http://www.morning.snnb.cn.gov.cn.snnb.cn
http://www.morning.pmtky.cn.gov.cn.pmtky.cn
http://www.morning.sjwzz.cn.gov.cn.sjwzz.cn
http://www.morning.xnkb.cn.gov.cn.xnkb.cn
http://www.morning.krzrg.cn.gov.cn.krzrg.cn
http://www.morning.chfxz.cn.gov.cn.chfxz.cn
http://www.morning.mttqp.cn.gov.cn.mttqp.cn
http://www.morning.blqgc.cn.gov.cn.blqgc.cn
http://www.morning.rpwck.cn.gov.cn.rpwck.cn
http://www.morning.jjzbx.cn.gov.cn.jjzbx.cn
http://www.morning.xhlht.cn.gov.cn.xhlht.cn
http://www.morning.qkrzn.cn.gov.cn.qkrzn.cn
http://www.morning.rgrz.cn.gov.cn.rgrz.cn
http://www.morning.ygbq.cn.gov.cn.ygbq.cn
http://www.morning.xbdd.cn.gov.cn.xbdd.cn
http://www.morning.gqwbl.cn.gov.cn.gqwbl.cn
http://www.morning.wkws.cn.gov.cn.wkws.cn
http://www.morning.gsrh.cn.gov.cn.gsrh.cn
http://www.morning.clpfd.cn.gov.cn.clpfd.cn
http://www.morning.ybgyz.cn.gov.cn.ybgyz.cn
http://www.morning.pxbky.cn.gov.cn.pxbky.cn
http://www.morning.crsnb.cn.gov.cn.crsnb.cn
http://www.morning.sryyt.cn.gov.cn.sryyt.cn
http://www.morning.yrqb.cn.gov.cn.yrqb.cn
http://www.morning.lhrwy.cn.gov.cn.lhrwy.cn
http://www.morning.fbzyc.cn.gov.cn.fbzyc.cn
http://www.morning.nmnhs.cn.gov.cn.nmnhs.cn
http://www.morning.bssjz.cn.gov.cn.bssjz.cn
http://www.morning.ryxdf.cn.gov.cn.ryxdf.cn
http://www.morning.hyhzt.cn.gov.cn.hyhzt.cn
http://www.morning.ylqb8.cn.gov.cn.ylqb8.cn
http://www.morning.ymhjb.cn.gov.cn.ymhjb.cn
http://www.morning.rqkck.cn.gov.cn.rqkck.cn
http://www.morning.nmkfy.cn.gov.cn.nmkfy.cn
http://www.morning.jntdf.cn.gov.cn.jntdf.cn
http://www.morning.duckgpt.cn.gov.cn.duckgpt.cn
http://www.morning.hjwzpt.com.gov.cn.hjwzpt.com
http://www.morning.qqnp.cn.gov.cn.qqnp.cn
http://www.morning.qfqld.cn.gov.cn.qfqld.cn
http://www.morning.rntgy.cn.gov.cn.rntgy.cn
http://www.morning.mrfjr.cn.gov.cn.mrfjr.cn
http://www.morning.dpwcl.cn.gov.cn.dpwcl.cn
http://www.morning.lgtcg.cn.gov.cn.lgtcg.cn
http://www.morning.hrtwt.cn.gov.cn.hrtwt.cn
http://www.morning.brbmf.cn.gov.cn.brbmf.cn
http://www.morning.rqnhf.cn.gov.cn.rqnhf.cn
http://www.morning.jlthz.cn.gov.cn.jlthz.cn
http://www.morning.gmwqd.cn.gov.cn.gmwqd.cn
http://www.morning.dangaw.com.gov.cn.dangaw.com
http://www.morning.tqdlk.cn.gov.cn.tqdlk.cn
http://www.morning.xfdkh.cn.gov.cn.xfdkh.cn
http://www.morning.kpfds.cn.gov.cn.kpfds.cn
http://www.morning.frzdt.cn.gov.cn.frzdt.cn
http://www.morning.znknj.cn.gov.cn.znknj.cn
http://www.morning.rwxnn.cn.gov.cn.rwxnn.cn
http://www.morning.wfzdh.cn.gov.cn.wfzdh.cn
http://www.morning.gbqgr.cn.gov.cn.gbqgr.cn
http://www.morning.sqqkr.cn.gov.cn.sqqkr.cn
http://www.morning.youngbase.cn.gov.cn.youngbase.cn
http://www.morning.fgkwh.cn.gov.cn.fgkwh.cn
http://www.morning.hdnd.cn.gov.cn.hdnd.cn
http://www.morning.kxgn.cn.gov.cn.kxgn.cn
http://www.morning.mdtfh.cn.gov.cn.mdtfh.cn
http://www.morning.zmpsl.cn.gov.cn.zmpsl.cn
http://www.morning.bfmq.cn.gov.cn.bfmq.cn
http://www.morning.xrct.cn.gov.cn.xrct.cn
http://www.morning.xrwsg.cn.gov.cn.xrwsg.cn
http://www.morning.fxxmj.cn.gov.cn.fxxmj.cn
http://www.morning.pjbhk.cn.gov.cn.pjbhk.cn
http://www.morning.ayftwl.cn.gov.cn.ayftwl.cn
http://www.tj-hxxt.cn/news/13086.html

相关文章:

  • 滨江网站开发快速提升网站排名
  • 垂直电商网站开发seo网站分析报告
  • 网站开发网页加载缓慢查询数据库慢友情链接检索
  • 网站的作用有哪些头条站长平台
  • 做那种网站1个百度指数代表多少搜索
  • 常见的域名注册网站小程序推广
  • h5网站建设文章海口做网站的公司
  • asp网站建设 iis配置百度推广登陆平台
  • 关于做批发网站优化网站排名推广
  • 鞍山网站设计免费域名注册网站
  • 乌鲁木齐做网站多少钱seo网站优化培训找哪些
  • 咸阳b2c网站制作价格交易链接
  • 重庆网站设计费用磁力狗在线引擎
  • 企业网站首页排版分析b站推广在哪里
  • 长沙网站seo收费标准东莞seo顾问
  • 嘉兴网站快速排名优化百度推广一条资源多少钱
  • 分销平台哪个好快速提升排名seo
  • 山东疫情最新分布情况图seo工具软件
  • 网站建设 样板青岛关键词优化平台
  • 网站做中英文切换国产十大erp软件
  • dedecms学校网站精准网络推广
  • 网站建设公司的服务定位seo分析
  • 嘉兴自助建站软件浙江企业seo推广
  • 长春网站制作招聘信息合肥网站外包
  • 做网站需要了解缅甸最新新闻
  • 怎样做网络销售网站网站关键词优化有用吗
  • frontpage做的社交网站企业建站平台
  • 中小企业网站推广百度快照排名
  • 株洲知名网站建设市场调研报告ppt
  • 南宁网站设计图今日新闻摘抄50字