2014-04-17 46 views
0

我想知道是否有可能在efi應用程序中分配「物理地址」超過4GB的內存緩衝區?在efi應用程序中分配物理地址> 4GB的內存?

Ex。在PC上安裝6GB DRAM,efi應用程序分配4KB緩衝區,其物理內存地址爲0x100000000(= 4GB)

可以嗎?

+0

你試過了嗎?發生了什麼? –

+0

我還沒有嘗試過,只想知道這是否可行... – liaoo

回答

0

在32位平臺上,這是不可能的,即使地址擴展技術允許安裝超過4GB。這是因爲要求所有RAM都映射爲1:1物理:虛擬地址。

在64位平臺上,只要沒有愚蠢的平臺特定的固件錯誤阻止它,這應該可以工作得很好。

某些早期的x64 UEFI「bioses」忘記了實際映射RAM> 4GB - 導致訪問違規錯誤,但對於任何實際上在BIOS兼容模式(CSM)以外的任何其他任何事情已經過正確驗證的情況,這都可以正常工作。

+0

我可以說「64位平臺」是指(64位CPU)+(> 4GB DRAM安裝)+(64位efi外殼/應用程序)? (我只是想知道需求... Thx) – liaoo

+0

那麼,我會考慮任何在64位模式下執行UEFI的平臺都是64位平臺。當然,如果它沒有超過4GB的內存,將難以分配高於4GB的內存:) – unixsmurf

+0

是否有任何函數調用用於此目的(分配內存並返回高於4GB的物理地址)?我會很感激你可以提供的任何幫助... – liaoo