(this time after I subscribed to the ML)

Hi guys,

I've been playing with mapping EFI runtime regions in a topdown manner
in Linux for purposes of using EFI in a kexec'ed kernel. For that I've
been using EFI BIOS built from edk2 sources, svn revision r14165 from
March this year in qemu.

Here's the problem I'm observing: I'm handing down a prepared
virtual map to SetVirtualAddressMap which has, a.o., the following
EFI_RUNTIME_SERVICES_CODE mapping:

[   47.371000] __lookup_address_in_pgd: address: 0xfffffffefdd6d000
[   47.373000] __lookup_address_in_pgd:         pgd: 0x2a0d067 
(0xffff88000009cff8)
[   47.375000] __lookup_address_in_pgd:         pud: 0x7c818063 
(0xffff880002a0dfd8)
[   47.377000] __lookup_address_in_pgd:         pmd: 0x7c823063 
(0xffff88007c818f70)
[   47.379000] __lookup_address_in_pgd:         pte: 0x7fb12063 
(0xffff88007c823b68)

i.e., virtual address 0xfffffffefdd6d000 maps to physical address 0x7fb12063.

After SetVirtualAddressMap finishes, the mapping has changed to

[   47.383000] efi: efi_enter_virtual_mode: phys_efi_set_virtual_address_map 
succeeded
[   47.385000] __lookup_address_in_pgd: address: 0xfffffffefdd6d000
[   47.387000] __lookup_address_in_pgd:         pgd: 0x2a0d067 
(0xffff88000009cff8)
[   47.389000] __lookup_address_in_pgd:         pud: 0x7c818063 
(0xffff880002a0dfd8)
[   47.391000] __lookup_address_in_pgd:         pmd: 0x7c823063 
(0xffff88007c818f70)
[   47.393000] __lookup_address_in_pgd:         pte: 0x800000007fb12163 
(0xffff88007c823b68)

and the PTE has gotten the NX bit set even though it is part of
EFI_RUNTIME_SERVICES_CODE mapping which should be executable.

The same thing doesn't happen on baremetal, on the Dell box I have here.

Is this known? Do I need to rebuild the OVMF.id BIOS?

I appreciate any suggestions,
Thanks.

-- 
Regards/Gruss,
    Boris.

Sent from a fat crate under my desk. Formatting is fine.
--


------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to