ARM: Convert platform reservations to use LMB rather than bootmem

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
Russell King 2010-05-22 19:47:18 +01:00
parent 2778f62056
commit 8d717a52d1
14 changed files with 32 additions and 31 deletions

View File

@ -9,7 +9,8 @@ extern phys_addr_t lowmem_end_addr;
#endif #endif
struct meminfo; struct meminfo;
struct machine_desc;
extern void arm_memblock_init(struct meminfo *); extern void arm_memblock_init(struct meminfo *, struct machine_desc *);
#endif #endif

View File

@ -716,7 +716,7 @@ void __init setup_arch(char **cmdline_p)
parse_early_param(); parse_early_param();
arm_memblock_init(&meminfo); arm_memblock_init(&meminfo, mdesc);
paging_init(mdesc); paging_init(mdesc);
request_standard_resources(&meminfo, mdesc); request_standard_resources(&meminfo, mdesc);

View File

@ -18,7 +18,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/ */
#include <linux/init.h> #include <linux/init.h>
#include <linux/bootmem.h> #include <linux/memblock.h>
#include <linux/types.h> #include <linux/types.h>
#include <linux/string.h> #include <linux/string.h>
@ -33,7 +33,7 @@ extern void edb7211_map_io(void);
/* Reserve screen memory region at the start of main system memory. */ /* Reserve screen memory region at the start of main system memory. */
static void __init edb7211_reserve(void) static void __init edb7211_reserve(void)
{ {
reserve_bootmem(PHYS_OFFSET, 0x00020000, BOOTMEM_DEFAULT); memblock_reserve(PHYS_OFFSET, 0x00020000);
} }
static void __init static void __init

View File

@ -14,7 +14,7 @@
#include <linux/spinlock.h> #include <linux/spinlock.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/irq.h> #include <linux/irq.h>
#include <linux/bootmem.h> #include <linux/memblock.h>
#include <linux/sched.h> #include <linux/sched.h>
#include <linux/smp.h> #include <linux/smp.h>
#include <linux/termios.h> #include <linux/termios.h>
@ -225,5 +225,5 @@ EXPORT_SYMBOL(cm_control);
*/ */
void __init integrator_reserve(void) void __init integrator_reserve(void)
{ {
reserve_bootmem(PHYS_OFFSET, __pa(swapper_pg_dir) - PHYS_OFFSET, BOOTMEM_DEFAULT); memblock_reserve(PHYS_OFFSET, __pa(swapper_pg_dir) - PHYS_OFFSET);
} }

View File

@ -21,7 +21,7 @@
#include <linux/irq.h> #include <linux/irq.h>
#include <linux/gpio_keys.h> #include <linux/gpio_keys.h>
#include <linux/input.h> #include <linux/input.h>
#include <linux/bootmem.h> #include <linux/memblock.h>
#include <linux/pda_power.h> #include <linux/pda_power.h>
#include <linux/pwm_backlight.h> #include <linux/pwm_backlight.h>
#include <linux/gpio.h> #include <linux/gpio.h>
@ -399,7 +399,7 @@ static void __init palmt5_udc_init(void)
static void __init palmt5_reserve(void) static void __init palmt5_reserve(void)
{ {
reserve_bootmem(0xa0200000, 0x1000, BOOTMEM_EXCLUSIVE); memblock_reserve(0xa0200000, 0x1000);
} }
static void __init palmt5_init(void) static void __init palmt5_init(void)

View File

@ -20,7 +20,7 @@
#include <linux/irq.h> #include <linux/irq.h>
#include <linux/gpio_keys.h> #include <linux/gpio_keys.h>
#include <linux/input.h> #include <linux/input.h>
#include <linux/bootmem.h> #include <linux/memblock.h>
#include <linux/pda_power.h> #include <linux/pda_power.h>
#include <linux/pwm_backlight.h> #include <linux/pwm_backlight.h>
#include <linux/gpio.h> #include <linux/gpio.h>
@ -636,8 +636,8 @@ static void __init treo_lcd_power_init(void)
static void __init treo_reserve(void) static void __init treo_reserve(void)
{ {
reserve_bootmem(0xa0000000, 0x1000, BOOTMEM_EXCLUSIVE); memblock_reserve(0xa0000000, 0x1000);
reserve_bootmem(0xa2000000, 0x1000, BOOTMEM_EXCLUSIVE); memblock_reserve(0xa2000000, 0x1000);
} }
static void __init treo_init(void) static void __init treo_init(void)

View File

@ -15,7 +15,7 @@
#include <linux/types.h> #include <linux/types.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/list.h> #include <linux/list.h>
#include <linux/bootmem.h> #include <linux/memblock.h>
#include <linux/timer.h> #include <linux/timer.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/sysdev.h> #include <linux/sysdev.h>
@ -308,8 +308,8 @@ static void __init h1940_map_io(void)
/* H1940 and RX3715 need to reserve this for suspend */ /* H1940 and RX3715 need to reserve this for suspend */
static void __init h1940_reserve(void) static void __init h1940_reserve(void)
{ {
reserve_bootmem(0x30003000, 0x1000, BOOTMEM_DEFAULT); memblock_reserve(0x30003000, 0x1000);
reserve_bootmem(0x30081000, 0x1000, BOOTMEM_DEFAULT); memblock_reserve(0x30081000, 0x1000);
} }
static void __init h1940_init_irq(void) static void __init h1940_init_irq(void)

View File

@ -15,7 +15,7 @@
#include <linux/types.h> #include <linux/types.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/list.h> #include <linux/list.h>
#include <linux/bootmem.h> #include <linux/memblock.h>
#include <linux/delay.h> #include <linux/delay.h>
#include <linux/timer.h> #include <linux/timer.h>
#include <linux/init.h> #include <linux/init.h>
@ -574,8 +574,8 @@ static void __init rx1950_init_machine(void)
/* H1940 and RX3715 need to reserve this for suspend */ /* H1940 and RX3715 need to reserve this for suspend */
static void __init rx1950_reserve(void) static void __init rx1950_reserve(void)
{ {
reserve_bootmem(0x30003000, 0x1000, BOOTMEM_DEFAULT); memblock_reserve(0x30003000, 0x1000);
reserve_bootmem(0x30081000, 0x1000, BOOTMEM_DEFAULT); memblock_reserve(0x30081000, 0x1000);
} }
MACHINE_START(RX1950, "HP iPAQ RX1950") MACHINE_START(RX1950, "HP iPAQ RX1950")

View File

@ -15,7 +15,7 @@
#include <linux/types.h> #include <linux/types.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/list.h> #include <linux/list.h>
#include <linux/bootmem.h> #include <linux/memblock.h>
#include <linux/timer.h> #include <linux/timer.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/tty.h> #include <linux/tty.h>
@ -195,8 +195,8 @@ static void __init rx3715_map_io(void)
/* H1940 and RX3715 need to reserve this for suspend */ /* H1940 and RX3715 need to reserve this for suspend */
static void __init rx3715_reserve(void) static void __init rx3715_reserve(void)
{ {
reserve_bootmem(0x30003000, 0x1000, BOOTMEM_DEFAULT); memblock_reserve(0x30003000, 0x1000);
reserve_bootmem(0x30081000, 0x1000, BOOTMEM_DEFAULT); memblock_reserve(0x30081000, 0x1000);
} }
static void __init rx3715_init_irq(void) static void __init rx3715_init_irq(void)

View File

@ -14,7 +14,7 @@
#include <linux/sched.h> #include <linux/sched.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/ioport.h> #include <linux/ioport.h>
#include <linux/bootmem.h> #include <linux/memblock.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/io.h> #include <linux/io.h>
#include <mach/hardware.h> #include <mach/hardware.h>
@ -33,7 +33,7 @@ static void __init u300_reserve(void)
#ifdef CONFIG_MACH_U300_SINGLE_RAM #ifdef CONFIG_MACH_U300_SINGLE_RAM
#if ((CONFIG_MACH_U300_ACCESS_MEM_SIZE & 1) == 1) && \ #if ((CONFIG_MACH_U300_ACCESS_MEM_SIZE & 1) == 1) && \
CONFIG_MACH_U300_2MB_ALIGNMENT_FIX CONFIG_MACH_U300_2MB_ALIGNMENT_FIX
reserve_bootmem(PHYS_OFFSET, 0x00100000, BOOTMEM_DEFAULT); memblock_reserve(PHYS_OFFSET, 0x00100000);
#endif #endif
#endif #endif
} }

View File

@ -271,7 +271,7 @@ static void arm_memory_present(struct meminfo *mi)
} }
#endif #endif
void __init arm_memblock_init(struct meminfo *mi) void __init arm_memblock_init(struct meminfo *mi, struct machine_desc *mdesc)
{ {
int i; int i;
@ -297,11 +297,15 @@ void __init arm_memblock_init(struct meminfo *mi)
arm_mm_memblock_reserve(); arm_mm_memblock_reserve();
/* reserve any platform specific memblock areas */
if (mdesc->reserve)
mdesc->reserve();
memblock_analyze(); memblock_analyze();
memblock_dump_all(); memblock_dump_all();
} }
void __init bootmem_init(struct machine_desc *mdesc) void __init bootmem_init(void)
{ {
struct meminfo *mi = &meminfo; struct meminfo *mi = &meminfo;
unsigned long min, max_low, max_high; unsigned long min, max_low, max_high;
@ -312,9 +316,6 @@ void __init bootmem_init(struct machine_desc *mdesc)
arm_bootmem_init(mi, min, max_low); arm_bootmem_init(mi, min, max_low);
if (mdesc->reserve)
mdesc->reserve();
/* /*
* Sparsemem tries to allocate bootmem in memory_present(), * Sparsemem tries to allocate bootmem in memory_present(),
* so must be done after the fixed reservations * so must be done after the fixed reservations

View File

@ -28,6 +28,5 @@ extern void __flush_dcache_page(struct address_space *mapping, struct page *page
#endif #endif
struct machine_desc; void __init bootmem_init(void);
void __init bootmem_init(struct machine_desc *);
void arm_mm_memblock_reserve(void); void arm_mm_memblock_reserve(void);

View File

@ -1006,7 +1006,7 @@ void __init paging_init(struct machine_desc *mdesc)
/* allocate the zero page. */ /* allocate the zero page. */
zero_page = early_alloc(PAGE_SIZE); zero_page = early_alloc(PAGE_SIZE);
bootmem_init(mdesc); bootmem_init();
empty_zero_page = virt_to_page(zero_page); empty_zero_page = virt_to_page(zero_page);
__flush_dcache_page(NULL, empty_zero_page); __flush_dcache_page(NULL, empty_zero_page);

View File

@ -33,7 +33,7 @@ void __init arm_mm_memblock_reserve(void)
*/ */
void __init paging_init(struct machine_desc *mdesc) void __init paging_init(struct machine_desc *mdesc)
{ {
bootmem_init(mdesc); bootmem_init();
} }
/* /*