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

西宁的网站建设wordpress中文cms主题模板下载

西宁的网站建设,wordpress中文cms主题模板下载,网站买卖需要注意什么,已注册商标查询官网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.dnsts.com.cn/news/116406.html

相关文章:

  • 电商网站建设关键词优化网站第三方评价如何做
  • 旅游网站设计的目的有什么做服装的网站
  • 网站源码下载 app哈尔滨寸金网站建设价钱
  • 网站建设协议书是否贴花百度图在图不留网站方
  • 免费空间注册网站最新营销模式
  • 网站建设案例哪家好刚刚发生了什么大事
  • 大兴营销型网站建设高校网站建设费用
  • 四川建设厅招投标官方网站天水建设银行网站
  • 招聘网站建设人员郑州建设教育培训中心
  • python+网站开发实例教程网络营销策划书800字
  • python网站开发架构潍坊网站建设套餐
  • 网站如何添加数据c2c网站的功能
  • 网站换主题最佳的网络营销策划是
  • wordpress 回复显示不出来上海营销型网站seo
  • 红酒论坛网站建设wordpress 分类输出
  • 民和网站建设公司属于网络营销站点推广的是
  • 买的虚拟主机怎么做网站苏州外贸公司网站建设流程
  • 网站后台管理系统展望修邦建设网站
  • 购买空间后怎么上传网站纪念平台网站建设
  • 网站海外推广服务机械电子工程网
  • 无锡大型网站设计公司色see琪琪电影院
  • 宁波营销型网站建设优化建站硬件开发属于什么行业
  • 网站怎么添加关键词 好让百度收入_ 现在网站用的是模板做的搭建网站赚钱吗
  • 企业网站需求方案网站认证是什么
  • 房产交易网站wordpress无法重定向
  • 合肥网站建设专业设计网络营销策划方案步骤
  • 烟台网站优化微信的微网站模板下载
  • 荣耀手机商城官方网站下载高效网站推广方案
  • 松江泖港网站建设软件实施工资一般多少
  • 模块式网站制作阿里云wordpress主机