|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v4 3/8] hvmloader: Set up highmem resouce appropriately if there is no RAM above 4G
On Fri, 21 Jun 2013, George Dunlap wrote:
> hvmloader will read hvm_info->high_mem_pgend to calculate where to
> start the highmem PCI region. However, if the guest does not have any
> memory in the high region, this is set to zero, which will cause
> hvmloader to use the "0" for the base of the highmem region, rather
> than 1 << 32.
>
> Check to see whether hvm_info->high_mem_pgend is set; if so, do the
> normal calculation; otherwise, use 1<<32.
>
> v4:
>
> - Handle case where hfm_info->high_mem_pgend is non-zero but doesn't
> point into high memory, throwing a warning.
>
>
> Signed-off-by: Geore Dunlap <george.dunlap@xxxxxxxxxxxxx>
^ ?
> CC: Ian Campbell <ian.campbell@xxxxxxxxxx>
> CC: Ian Jackson <ian.jackson@xxxxxxxxxx>
> CC: Stefano Stabellini <stefano.stabellini@xxxxxxxxxx>
> CC: Hanweidong <hanweidong@xxxxxxxxxx>
> CC: Keir Fraser <keir@xxxxxxx>
Acked-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
> tools/firmware/hvmloader/pci.c | 13 ++++++++++++-
> 1 file changed, 12 insertions(+), 1 deletion(-)
>
> diff --git a/tools/firmware/hvmloader/pci.c b/tools/firmware/hvmloader/pci.c
> index 44168e2..a3d03ed 100644
> --- a/tools/firmware/hvmloader/pci.c
> +++ b/tools/firmware/hvmloader/pci.c
> @@ -246,7 +246,18 @@ void pci_setup(void)
> hvm_info->high_mem_pgend += nr_pages;
> }
>
> - high_mem_resource.base = ((uint64_t)hvm_info->high_mem_pgend) <<
> PAGE_SHIFT;
> + high_mem_resource.base = ((uint64_t)hvm_info->high_mem_pgend) <<
> PAGE_SHIFT;
> + if ( high_mem_resource.base < 1ull << 32 )
> + {
> + if ( hvm_info->high_mem_pgend != 0 )
> + printf("WARNING: hvm_info->high_mem_pgend %x"
> + " does not point into high memory!",
> + hvm_info->high_mem_pgend);
> + high_mem_resource.base = 1ull << 32;
> + }
> + printf("%sRAM in high memory; setting high_mem resource base to
> "PRIllx"\n",
> + hvm_info->high_mem_pgend?"":"No ",
> + PRIllx_arg(high_mem_resource.base));
> high_mem_resource.max = 1ull << cpu_phys_addr();
> mem_resource.base = pci_mem_start;
> mem_resource.max = pci_mem_end;
> --
> 1.7.9.5
>
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |