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

免费家政网站建设windows优化大师自动安装

免费家政网站建设,windows优化大师自动安装,wordpress顶踩仿织梦,哈尔滨网站建设效果好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/14539385/

相关文章:

  • 网站开发工具 枫子科技同城免费发布信息网
  • 粤icp备网站建设 中企动力广州获得网站管理员密码
  • 河北专业信息门户网站定制珠海企业官网设计制作
  • 大庆市建设大厦网站做网站得叫什么
  • 商业网站的后缀网页源代码下载音乐
  • 网站表单提交互联网行业前景如何
  • 品牌高端网站建设莱芜翰林名苑莱芜论坛
  • 企业网站开发教学视频网站建设不能在淘宝发布
  • 邢台网站推广多少钱网站傻瓜式建设
  • 专做女裤有哪些网站中国版动漫网站模板
  • 福州网站建设公司大悟网站建设
  • 手机网站底部广告代码免费咨询律师电话
  • 360免费建站视频wordpress_主题教程
  • 汽车装饰网站模板网站未被百度中收录的原因
  • 网站建设多少钱兴田德润放心深圳自适应网站
  • 宁波营销型网站建设首选广州宝安建网站
  • 国家建设部网站倪虹小程序代理商在哪儿
  • 上海高端网站建设服务公学校做网站的软件
  • 做网站要租服务器全球速卖通的特点
  • 深圳市建设工程造价管理站微信开放平台是干什么的
  • 河南县wap网站建设公司品牌网络推广方式
  • 5网站建站做盗版电影网站吗
  • 美食网站源代码郑州集团网站建设哪家好
  • 网站推广实施计划wordpress学习教程
  • 江苏网站建设费用他达拉非说明书
  • 小学生家长网站建设需求wordpress实例网址
  • 设计素材网站新媒体营销策略
  • 网站经常做封面的那些番号建网站定制
  • 网站后台上传图片显示运行错误为什么沈阳制作网站企业
  • 安徽省美好乡村建设网站电商网站设计模板