On Wed, 11 Sep 2019 at 16:05, Richard Henwood Richard.Henwood@arm.com wrote:
Hi All,
A fellow laptop user has been looking into efi=novamap requirement. I was sharing with him that I thought only firmware could solve this problem and he has questioned me on that assertion and pointed me to this commit:
https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git/commit/?id=4e46c...
It appears from my reading that efi=novamap is required because: It is fiddly to make the kernel function SetVirtualAddressMap() work correctly on AArch64. Without documentation for the laptops I care about, it does not appear to be a valuable use of time to make SetVirtualAddressMap() work. For now, efi=novamap is a good-enough work-around.
Is that more a more accurate analysis on my part?
Not quite.
SetVirtualAddressMap() is a service provided by the firmware *to* the OS.
The Qualcomm implementation inadvertently depends on certain behavior of the Windows loader, and when another EFI compliant loader calls it, the system crashes. Fortunately, (and this is what the patch argues), SetVirtualAddressMap() does not actually do anything useful for us, so we can simply omit calling it, and things work fine.