>>> On 10.06.15 at 19:22, <[email protected]> wrote:
> On Wed, Jun 10, 2015 at 2:37 AM, Jan Beulich <[email protected]> wrote:
>>>>> On 10.06.15 at 11:26, <[email protected]> wrote:
>>> On Wed, 2015-06-10 at 10:15 +0100, Jan Beulich wrote:
>>>> >>> On 10.06.15 at 10:56, <[email protected]> wrote:
>>>> > On Tue, 2015-06-09 at 14:53 +0100, Jan Beulich wrote:
>>>> >> From: Konrad Rzeszutek Wilk <[email protected]>
>>>> >>
>>>> >> To help on certain platforms to run.
>>>> >>
>>>> >> Signed-off-by: Konrad Rzeszutek Wilk <[email protected]>
>>>> >> Signed-off-by: Jan Beulich <[email protected]>
>>>> >
>>>> > To be effective (or at least consistent) on ARM, would we also want to
>>>> > change its efi_process_memory_map_bootinfo:
>>>> > if ( desc_ptr->Type == EfiConventionalMemory
>>>> > || desc_ptr->Type == EfiBootServicesCode
>>>> > || desc_ptr->Type == EfiBootServicesData )
>>>> > to include a check on map_bs?
>>>>
>>>> I'm not convinced, but I also don't know the history of why boot
>>>> services areas are being included here in the first place - Roy?
>>>> I.e. if the checks weren't there already, I'd agree that an addition
>>>> similar to the other ones would be needed here, but with the x86
>>>> side getting relaxed I don't see why you would want to tighten the
>>>> ARM side at the same time.
>
> The boot services code/data is "memory available for general use", just
> like EfiConventionalMemory after ExitBootServices() is called. Since the
> memory
> map being created here is going to be used after ExitBootServices() is
> called,
> I think this matches the UEFI specification. This matches x86 behavior
> before
> the patch (modulo some address range checks used to set cfg.addr.)
Ouch - looks like I read this the wrong way round, and Ian was right
in wanting a map_bs check added here:
EFI/ARM: don't treat EfiBootServices{Code,Data} as normal RAM under /mapbs
Signed-off-by: Jan Beulich <[email protected]>
--- a/xen/arch/arm/efi/efi-boot.h
+++ b/xen/arch/arm/efi/efi-boot.h
@@ -131,9 +131,10 @@ static EFI_STATUS __init efi_process_mem
for ( Index = 0; Index < (mmap_size / desc_size); Index++ )
{
- if ( desc_ptr->Type == EfiConventionalMemory
- || desc_ptr->Type == EfiBootServicesCode
- || desc_ptr->Type == EfiBootServicesData )
+ if ( desc_ptr->Type == EfiConventionalMemory ||
+ (!map_bs &&
+ (desc_ptr->Type == EfiBootServicesCode ||
+ desc_ptr->Type == EfiBootServicesData)) )
{
if ( i >= NR_MEM_BANKS )
{
Jan
_______________________________________________
Xen-devel mailing list
[email protected]
http://lists.xen.org/xen-devel