|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 20/23] x86: add multiboot2 protocol support for EFI platforms
> +run_bs:
> + push %rax
> + push %rdi
> +
> + /* Initialize BSS (no nasty surprises!). */
> + lea __bss_start(%rip),%rdi
> + lea __bss_end(%rip),%rcx
> + sub %rdi,%rcx
> + shr $3,%rcx
> + xor %eax,%eax
> + rep stosq
This means we are using the %es segment. The multiboot1 is pretty clear
that it should cover up to 4GB.
Would it be worth adding a comment about that?
> +
> + pop %rdi
> +
> + /*
> + * IN: %rdi - EFI ImageHandle, %rsi - EFI SystemTable.
> + * OUT: %rax - multiboot2.mem_lower. Do not get this value from
> + * MULTIBOOT2_TAG_TYPE_BASIC_MEMINFO tag. It could be bogus on
> + * EFI platforms.
> + */
> + call efi_multiboot2
However the function prototype for efi_multiboot2 is 'void', not 'int' - so
it would not return anything!
> +
> + /* Convert multiboot2.mem_lower to bytes/16. */
Should we check to make sure it is valid? With those weird machines you seem to
have
run into I am not actually sure what a valid value is :-(
.. snip..
> diff --git a/xen/arch/x86/efi/stub.c b/xen/arch/x86/efi/stub.c
> index c5ae369..d30fe89 100644
> --- a/xen/arch/x86/efi/stub.c
> +++ b/xen/arch/x86/efi/stub.c
> @@ -13,6 +13,11 @@ struct efi __read_mostly efi = {
> .smbios3 = EFI_INVALID_TABLE_ADDR
> };
>
> +void __init efi_multiboot2(void)
unsigned int __init ..
> +{
> + /* TODO: Fail if entered! */
And maybe just 'return 0'; ?
> +}
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |