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

淮北建设机械网站王占山人物简介

淮北建设机械网站,王占山人物简介,网络营销ppt怎么做,好的手机网站UEFI系列文章目录 第一章 SEC阶段讲解 第二章 PEI阶段讲解 文章目录 UEFI系列文章目录前言一、PEI阶段二、PEI Service三、PEI flow四、InstallPpi和LocatePpi举例五、Hob六、PEI入口和出口 前言 众所周知#xff0c;UEFI bios分为四个阶段#xff1a;SEC、PEI、DXE、BDSUEFI 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 加载执行PEIMPEI Service PEl Core服务例程函数所有PEIM都可以使用它们PEIM 意思是PEI ModulePEI阶段执行模块的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 memoryHobList - 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 pspei service 内存初始化、pei内存分配、hoblist头创建、PPIlist获取、PEIM dispatch先statuscode再nvram再其他 locate DXEIPL的ppi 转到DXEIPL函数一系类操作后BuildModuleHob来加Hob到DXE再带着HobList和DxeCoreEntryPoint跳转HandOffToDxeCore
http://www.hkea.cn/news/14502586/

相关文章:

  • 甘肃网站建设开发娱乐网站模板
  • 做烧烤的网站模板网站有什么不好
  • 网站难做吗青岛公司的网站设计
  • 网站开发中网页上传自己做网站怎么加定位
  • 中介做哪些网站网站建设创业经历
  • 单页产品网站源码带后台华为云云速建站教程
  • 珠海网站设计多少钱做吃穿住行网站
  • 网站推广软文是什么最好的搜索引擎
  • 设计开发建设网站平台汕头制作网站软件
  • dedecms做电商网站信息化系统的应用场景
  • 易企秀网站开发技术做网站能成功吗
  • 网站这么设置微信支付优化官方网站设计
  • 深圳网站开发公司有哪些松松软文平台
  • 免费送网站合肥网站建设 微笑互联
  • 网站模板建站教程视频用python做 网站论坛
  • 海南网站建设费用ui培训班 千锋教育
  • 哪个网站是用vue做的网站建设与管理适合女生吗
  • 网站代理登录域名软件开发者能看到手机信息吗
  • 天门网站建设专业网站制作公司咨询
  • 曲靖网站建设公司页面设计描述
  • uml电子商务网站建设文档网站服务器查询
  • 如何做阿里详情页面链接到外部网站社交网站怎么制作
  • 兰州交通发展建设集团公司网站常州建站软件
  • 中英双文网站怎么做制作公司网站公司
  • 关于单位网站建设的报告wordpress怎么改为中文字体
  • 重庆网站备案宁夏住房和城乡建设厅网站办事窗口
  • 晋中做网站公司凡科登陆
  • iis7.5添加php网站番禺做网站报价
  • 郑州seo网站排名wordpress面包屑导航不要子分类
  • 门户网站模板源码下载门户网站开发是什么