I'm working on the Linux kernel implementation of an draft standard that
has a uefi component. The interesting part is that the uefi component
isn't in the uefi runtime table, but instead has a physical address
stored an ACPI table. Other than not being in the runtime table it
behaves exactly like the other runtime services.
After extracting the physical address of the UEFI service we can't
successfully map it or call it. I'm sure this is straightforward to
somebody with experience in this area. Here's a few of the things I've
tried unsuccessfully, any pointers here would be appreciated.
1) Call the physical address
efi_call_phys_prelog();
efi_call_phys5(...);
efi_call_phys_epilog();
This generates some nasty scheduling while atomic errors
2) Various methods to map in the physical address into virtual address
space and then call the virtual address. All of these have failed.
3) I've started looking at adding an entry to the efi struct and a line
to efi_enter_virtual_mode(...) with the new function name but haven't
found the right spot to add an extra entry on to the mmap structure.
Does this seem like a sane approach?
-Joel Schopp
--
To unsubscribe from this list: send the line "unsubscribe linux-efi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html