2018年1月3日 星期三

UEFI NVRAM 小研究

NVRAM is non-volatile RAM that is used in EFI to store variables that need to persist between boots. 

BIOS 選項理論上應該是儲存在 NVRAM 裡,UEFI Shell 有一個 command "dmpstore",我們可以利用它來看目前有那些變數。

另外,也許可以利用下面服務及 function 來動態存取變數。

    //
    // Variable Services
    //
    Status = RowPointer ( SocketFD,
                          pPort,
                          "GetVariable",
                          (VOID *)gRT->GetVariable,
                          NULL );
    if ( EFI_ERROR ( Status )) {
      break;
    }
    Status = RowPointer ( SocketFD,
                          pPort,
                          "GetNextVariableName",
                          (VOID *)gRT->GetNextVariableName,
                          NULL );
    if ( EFI_ERROR ( Status )) {
      break;
    }
    Status = RowPointer ( SocketFD,
                          pPort,
                          "SetVariable",
                          (VOID *)gRT->SetVariable,
                          NULL );
    if ( EFI_ERROR ( Status )) {
      break;
    }

這篇文章是 kurtqiao 介紹如何調整 BootOrder 的文章,可以參考。

2019/06/19 更新
可以參考我的最新實驗

沒有留言:

張貼留言