* [PATCH] xen/arm: Dummy implementation of multi-bank support
@ 2013-07-15 14:40 Julien Grall
2013-07-17 10:34 ` Ian Campbell
0 siblings, 1 reply; 2+ messages in thread
From: Julien Grall @ 2013-07-15 14:40 UTC (permalink / raw)
To: xen-devel; +Cc: patches, ian.campbell, Julien Grall, Stefano.Stabellini
U-boot for the arndale board splits the memory in 8 contiguous banks and
rewrites the memory node. So most of the memory is lost.
As the frametable is only able to handle contiguous memory, use the first
contiguous banks and warn if some of the memory banks are not used.
Signed-off-by: Julien Grall <julien.grall@linaro.org>
---
xen/arch/arm/setup.c | 23 +++++++++++++++++------
1 file changed, 17 insertions(+), 6 deletions(-)
diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
index b192d15..ead51b8 100644
--- a/xen/arch/arm/setup.c
+++ b/xen/arch/arm/setup.c
@@ -288,16 +288,27 @@ static void __init setup_mm(unsigned long dtb_paddr, size_t dtb_size)
unsigned long heap_pages, xenheap_pages, domheap_pages;
unsigned long dtb_pages;
unsigned long boot_mfn_start, boot_mfn_end;
+ int i = 0;
- /*
- * TODO: only using the first RAM bank for now. The heaps and the
- * frame table assume RAM is physically contiguous.
- */
- if ( early_info.mem.nr_banks > 1 )
- early_printk("WARNING: Only using first bank of memory\n");
+ /* TODO: Handle non-contiguous memory bank */
+ if ( !early_info.mem.nr_banks )
+ early_panic("No memory bank\n");
ram_start = early_info.mem.bank[0].start;
ram_size = early_info.mem.bank[0].size;
ram_end = ram_start + ram_size;
+
+ for ( i = 1; i < early_info.mem.nr_banks; i++ )
+ {
+ if ( ram_end != early_info.mem.bank[i].start )
+ break;
+
+ ram_size += early_info.mem.bank[i].size;
+ ram_end += early_info.mem.bank[i].size;
+ }
+
+ if ( i != early_info.mem.nr_banks )
+ early_printk("WARNING: some banks are not used\n");
+
total_pages = ram_pages = ram_size >> PAGE_SHIFT;
/*
--
1.7.10.4
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] xen/arm: Dummy implementation of multi-bank support
2013-07-15 14:40 [PATCH] xen/arm: Dummy implementation of multi-bank support Julien Grall
@ 2013-07-17 10:34 ` Ian Campbell
0 siblings, 0 replies; 2+ messages in thread
From: Ian Campbell @ 2013-07-17 10:34 UTC (permalink / raw)
To: Julien Grall; +Cc: Stefano.Stabellini, patches, xen-devel
On Mon, 2013-07-15 at 15:40 +0100, Julien Grall wrote:
> U-boot for the arndale board splits the memory in 8 contiguous banks and
> rewrites the memory node. So most of the memory is lost.
>
> As the frametable is only able to handle contiguous memory, use the first
> contiguous banks and warn if some of the memory banks are not used.
>
> Signed-off-by: Julien Grall <julien.grall@linaro.org>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
> + if ( i != early_info.mem.nr_banks )
> + early_printk("WARNING: some banks are not used\n");
I made this "some memory banks...."
> +
> total_pages = ram_pages = ram_size >> PAGE_SHIFT;
>
> /*
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2013-07-17 10:34 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-07-15 14:40 [PATCH] xen/arm: Dummy implementation of multi-bank support Julien Grall
2013-07-17 10:34 ` Ian Campbell
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).