天天看點

UEFI PI部分study

//20210714 //轉入BIOS工作兩年多,,

//轉入BIOS已近一年多,跟了2個案子 打雜&自學。沒人帶進步有些慢。一定要把這部分細節了解清晰。。。。。。

//先架構後細節

//ppi結構定義

EFI_PEI_PPI_DESCRIPTOR     mPpiListCodePpi = {

  (EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST),

  &gMyPEIGUID,

  &mPpi

};

PeiServicesInstallPpi    //install ppi   初始化部分

PeiServicesLocatePpi  //找到 mPpi部分 通過指針調用

//20200808,遇到問題 &mPpi是null時候如何調用跳轉的???

PeiServicesNotifyPpi //通知什麼的,spec較抽象,需要深刻了解

copy過來的

PPI notify 相當于 PPI 的callback function.

PPI 和PPI notify 都有相應的GUID來區分

在PEI Services 中有兩個function : InstallPPI 和NotifyPPI

1.調用InstallPPI時,會把PPI interface 插入PPI database 的PPI LIST 數組中,假設其可以容納    128個Items。插入順序是從PPI LIST的頭部向尾部插入,及PPI LIST[0],PPI LIST[1]....

   插入該PPI後࿰