[PATCH 1/3] arm: mm: allow boards to fiddle with meminfo
So that they can reserve some memory. Signed-off-by: Felipe Contreras felipe.contre...@gmail.com --- arch/arm/include/asm/mach/arch.h |2 +- arch/arm/mm/init.c |7 --- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/arch/arm/include/asm/mach/arch.h b/arch/arm/include/asm/mach/arch.h index 8a0dd18..408e4d5 100644 --- a/arch/arm/include/asm/mach/arch.h +++ b/arch/arm/include/asm/mach/arch.h @@ -38,7 +38,7 @@ struct machine_desc { void(*fixup)(struct machine_desc *, struct tag *, char **, struct meminfo *); - void(*reserve)(void);/* reserve mem blocks */ + void(*reserve)(struct meminfo *);/* reserve mem blocks */ void(*map_io)(void);/* IO mapping function */ void(*init_irq)(void); struct sys_timer*timer; /* system tick timer*/ diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c index 7185b00..4b5c117 100644 --- a/arch/arm/mm/init.c +++ b/arch/arm/mm/init.c @@ -272,8 +272,6 @@ void __init arm_memblock_init(struct meminfo *mi, struct machine_desc *mdesc) int i; memblock_init(); - for (i = 0; i mi-nr_banks; i++) - memblock_add(mi-bank[i].start, mi-bank[i].size); /* Register the kernel text, kernel data and initrd with memblock. */ #ifdef CONFIG_XIP_KERNEL @@ -295,7 +293,10 @@ void __init arm_memblock_init(struct meminfo *mi, struct machine_desc *mdesc) /* reserve any platform specific memblock areas */ if (mdesc-reserve) - mdesc-reserve(); + mdesc-reserve(mi); + + for (i = 0; i mi-nr_banks; i++) + memblock_add(mi-bank[i].start, mi-bank[i].size); memblock_analyze(); memblock_dump_all(); -- 1.7.3.1.2.g7fe2b -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 1/3] arm: mm: allow boards to fiddle with meminfo
On Sun, Oct 10, 2010 at 08:40:38PM +0300, Felipe Contreras wrote: So that they can reserve some memory. Signed-off-by: Felipe Contreras felipe.contre...@gmail.com --- arch/arm/include/asm/mach/arch.h |2 +- arch/arm/mm/init.c |7 --- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/arch/arm/include/asm/mach/arch.h b/arch/arm/include/asm/mach/arch.h index 8a0dd18..408e4d5 100644 --- a/arch/arm/include/asm/mach/arch.h +++ b/arch/arm/include/asm/mach/arch.h @@ -38,7 +38,7 @@ struct machine_desc { void(*fixup)(struct machine_desc *, struct tag *, char **, struct meminfo *); - void(*reserve)(void);/* reserve mem blocks */ + void(*reserve)(struct meminfo *);/* reserve mem blocks */ void(*map_io)(void);/* IO mapping function */ void(*init_irq)(void); struct sys_timer*timer; /* system tick timer*/ diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c index 7185b00..4b5c117 100644 --- a/arch/arm/mm/init.c +++ b/arch/arm/mm/init.c @@ -272,8 +272,6 @@ void __init arm_memblock_init(struct meminfo *mi, struct machine_desc *mdesc) int i; memblock_init(); - for (i = 0; i mi-nr_banks; i++) - memblock_add(mi-bank[i].start, mi-bank[i].size); /* Register the kernel text, kernel data and initrd with memblock. */ #ifdef CONFIG_XIP_KERNEL @@ -295,7 +293,10 @@ void __init arm_memblock_init(struct meminfo *mi, struct machine_desc *mdesc) /* reserve any platform specific memblock areas */ if (mdesc-reserve) - mdesc-reserve(); + mdesc-reserve(mi); + + for (i = 0; i mi-nr_banks; i++) + memblock_add(mi-bank[i].start, mi-bank[i].size); It is not a good idea to change the ordering here, as we'll now be adding the memory blocks _after_ we've started to make reservations into memblock. At least the omapfb code wants there to be memory present in memblock when -reserve is called. -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 1/3] arm: mm: allow boards to fiddle with meminfo
On Sun, Oct 10, 2010 at 10:03 PM, Russell King - ARM Linux li...@arm.linux.org.uk wrote: On Sun, Oct 10, 2010 at 08:40:38PM +0300, Felipe Contreras wrote: So that they can reserve some memory. Signed-off-by: Felipe Contreras felipe.contre...@gmail.com --- arch/arm/include/asm/mach/arch.h | 2 +- arch/arm/mm/init.c | 7 --- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/arch/arm/include/asm/mach/arch.h b/arch/arm/include/asm/mach/arch.h index 8a0dd18..408e4d5 100644 --- a/arch/arm/include/asm/mach/arch.h +++ b/arch/arm/include/asm/mach/arch.h @@ -38,7 +38,7 @@ struct machine_desc { void (*fixup)(struct machine_desc *, struct tag *, char **, struct meminfo *); - void (*reserve)(void);/* reserve mem blocks */ + void (*reserve)(struct meminfo *);/* reserve mem blocks */ void (*map_io)(void);/* IO mapping function */ void (*init_irq)(void); struct sys_timer *timer; /* system tick timer */ diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c index 7185b00..4b5c117 100644 --- a/arch/arm/mm/init.c +++ b/arch/arm/mm/init.c @@ -272,8 +272,6 @@ void __init arm_memblock_init(struct meminfo *mi, struct machine_desc *mdesc) int i; memblock_init(); - for (i = 0; i mi-nr_banks; i++) - memblock_add(mi-bank[i].start, mi-bank[i].size); /* Register the kernel text, kernel data and initrd with memblock. */ #ifdef CONFIG_XIP_KERNEL @@ -295,7 +293,10 @@ void __init arm_memblock_init(struct meminfo *mi, struct machine_desc *mdesc) /* reserve any platform specific memblock areas */ if (mdesc-reserve) - mdesc-reserve(); + mdesc-reserve(mi); + + for (i = 0; i mi-nr_banks; i++) + memblock_add(mi-bank[i].start, mi-bank[i].size); It is not a good idea to change the ordering here, as we'll now be adding the memory blocks _after_ we've started to make reservations into memblock. At least the omapfb code wants there to be memory present in memblock when -reserve is called. True. I initially added a new callback called reserve_mem(), but I thought it would be nicer to avoid adding a new function almost identical to an existing one. Anyway, what is your suggestion? Can you come up with something else? -- Felipe Contreras -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html