Cstyle的UEFI導讀之Embedded Controller Share ROM

Cstyle_0x007發表於2020-11-23

  此處僅以一個具體的例子分析share rom及整個flash的layout,僅BIOS區域(不包括ME)總大小是10MByte。如下圖,FV_RECOVERY0(地址0x00A00000)對映到4G頂端(0xffffffff),使用FIT構建flash image的時候還會重定位最終FV_RECOVERY0的地址(用edit直接開啟二進位制檔案的話,會在檔案的末端,如圖二所示),加入SPI flash descriptor,一般是在fffffff0h處放一條跳轉指令,跳轉到FV_RECOVERY0處。FVMAIN(地址0)對映到4G-0x00A00000(10M)地址,OEM還可以把EC ROM放在FVMAIN後面。此處FVMAIN的起始地是0會被對映到4G-10M(BIOS ROM大小),如果加入OEM EC之後,起始地0處會是EC,FVMAIN的地址=0+ EC size。

 

用edit開啟最終的bin檔案之後,可以看到address =00000000h處對應著上圖的FVMAIN,address=9ffffff0對應這上圖的FV_RECOVERY0,boot vector在檔案最底部也就是0x009ffff0的位置,作為開機跳轉指令。

下圖是整個Flash device儲存空間的layout,其中BIOS區域大小為10M,其4G處對映到resetvector,其0G處對映到SPI flash descriptor。SPI flash descriptor的最開始的16Byte一般用來作為EC的跳轉

指標(EC firmware pointer),當我們把BIOS和EC放在一顆SPI flash rom的時候可以使用FIT把ME,BIOS,EC包在一起。

 

 

講完了整個flash rom的layout現在來看看EC是如何和BIOS share和工作的時候互不干擾的。

轉載請註明出處,或可關注微信公眾號:韌體C字營

Cstyle.z.zhou@outlook.com   //  http://blog.csdn.net/CStyle_0x007

相關文章