Выделить память, физический адрес которой>4 ГБ в приложении EFI?
Мне интересно, можно ли выделить буфер памяти, чей "физический адрес" превышает 4 ГБ в приложении efi?
Ex. На ПК установлено 6 ГБ оперативной памяти, и приложение efi выделяет буфер 4 КБ, а адрес физической памяти - 0x100000000(=4 ГБ).
Это нормально?
1 ответ
На 32-битной платформе это было бы невозможно, даже если технология расширения адресов позволяет устанавливать более 4 ГБ. Это связано с требованием, чтобы вся оперативная память отображалась 1:1 физический: виртуальный адрес.
На 64-битной платформе это должно работать просто отлично, до тех пор, пока никакие глупые ошибки, связанные с прошивкой, не могут это предотвратить.
Некоторые ранние "биозы" x64 UEFI забывали отображать ОЗУ>4 ГБ, что приводило к ошибкам нарушения прав доступа, но для всего, что когда-либо было проверено должным образом в любом другом режиме, кроме режима совместимости с BIOS (CSM), это будет работать нормально.