[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [REBASE] xen: patches (against Linux kernel) for supporting efi

On Thu, May 23, 2013 at 6:19 AM, Jan Beulich <JBeulich@xxxxxxxx> wrote:
>>>> On 23.05.13 at 12:04, Eric Shelton <eshelton@xxxxxxxxx> wrote:
>> 1) The attached code only works on 64-bit systems, due to setting the
>> EFI_64BIT in xen_efi_probe().  It looks like a new hypercall is needed
>> or an existing hypercall needs to be added to check whether the EFI
>> BIOS is 32- or 64-bit (see comment in code).
> This is bogus: For one, Xen only works on 64-bit UEFI. And then,
> with the actual runtime calls being done by Xen (after translating
> arguments as necessary), a 32-bit kernel can call them as much as
> a 64-bit one. An obvious benefit of the intermediate hypercall layer.
> Jan

This does not appear to be entirely correct, although it appears you
are describing the intended design.  For one, if you look at
efi_config_init() in efi.c, a hypercall is used to obtain the address
of the config table.  However, the table entries have different sizes
(see efi_config_table_64_t and efi_config_table_32_t).  This affects
(1) how much memory is mapped for the config table, and (2) accessing
the table entries at the correct addresses.  Thus, dom0 has to know
whether EFI is 32 or 64 bit for at least this aspect, at least under
how XEN_FW_EFI_CONFIG_TABLE is presently implemented.  However, as
currently implemented, it appears there is a "bogus" hypervisor
interface that overlooks this "obvious" issue.  This might be
corrected by having the hypervisor mediate access to the config table
rather than depending on dom0 to directly map and access the config


Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.