From: Joel Schopp <jschopp-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
To: Matthew Garrett <mjg59-1xO5oi07KQx4cg9Nei1l7Q@public.gmane.org>
Cc: linux-efi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Leonidas da Silva Barbosa
<leosilva-xuelUoVDAHHQT0dZR+AlfA@public.gmane.org>
Subject: Re: unusual uefi call/mapping problem
Date: Tue, 30 Apr 2013 10:51:45 -0500 [thread overview]
Message-ID: <517FE891.9070103@linux.vnet.ibm.com> (raw)
In-Reply-To: <20130430125225.GA4197-1xO5oi07KQx4cg9Nei1l7Q@public.gmane.org>
On 04/30/2013 07:52 AM, Matthew Garrett wrote:
> On Tue, Apr 16, 2013 at 04:31:17PM -0500, Joel Schopp wrote:
>> 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.
>
> Sigh. Is the spec final yet? Doing this in ACPI is inconvenient - ACPI
> isn't available at the stage where we do early UEFI setup, so it would
> have been much easier if this had been a UEFI table rather than an ACPI
> one.
The spec appears to currently be in purgatory, finished but not
published. Do you happen to know offhand what spec defines the UEFI
runtime services table?
>
>> 2) Various methods to map in the physical address into virtual
>> address space and then call the virtual address. All of these have
>> failed.
Turns out there was a bug in the UEFI implementation, I'm pretty sure we
have a way to map it in and call it now.
>
> If the function pointer to the ACPI table is to a UEFI runtime region,
> the kernel should already have set up a virtual to physical mapping for
> the code. Does SetVirtualAddressMap() update the pointer in the ACPI
> table? If so, you're good to go - just pass it to the appropriate
> efi_call_virt*() wrapper. If not, and if the spec isn't final, go back
> and fix that.
>
>> 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?
>
> You mean the memmap structure? No, you shouldn't need to do that.
Thanks. I won't then.
next prev parent reply other threads:[~2013-04-30 15:51 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-04-16 21:31 unusual uefi call/mapping problem Joel Schopp
[not found] ` <516DC325.6090604-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2013-04-17 2:40 ` Greg KH
[not found] ` <20130417024056.GA13609-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2013-04-17 5:04 ` Joel Schopp
2013-04-30 12:52 ` Matthew Garrett
[not found] ` <20130430125225.GA4197-1xO5oi07KQx4cg9Nei1l7Q@public.gmane.org>
2013-04-30 15:51 ` Joel Schopp [this message]
[not found] ` <517FE891.9070103-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2013-04-30 16:23 ` Matthew Garrett
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=517FE891.9070103@linux.vnet.ibm.com \
--to=jschopp-23vcf4htsmix0ybbhkvfkdbpr1lh4cv8@public.gmane.org \
--cc=leosilva-xuelUoVDAHHQT0dZR+AlfA@public.gmane.org \
--cc=linux-efi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=mjg59-1xO5oi07KQx4cg9Nei1l7Q@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.