提交 8d717a52 编写于 作者: R Russell King

ARM: Convert platform reservations to use LMB rather than bootmem

Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
上级 2778f620
...@@ -9,7 +9,8 @@ extern phys_addr_t lowmem_end_addr; ...@@ -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
...@@ -716,7 +716,7 @@ void __init setup_arch(char **cmdline_p) ...@@ -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);
......
...@@ -18,7 +18,7 @@ ...@@ -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); ...@@ -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
......
...@@ -14,7 +14,7 @@ ...@@ -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); ...@@ -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);
} }
...@@ -21,7 +21,7 @@ ...@@ -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) ...@@ -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)
......
...@@ -20,7 +20,7 @@ ...@@ -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) ...@@ -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)
......
...@@ -15,7 +15,7 @@ ...@@ -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) ...@@ -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)
......
...@@ -15,7 +15,7 @@ ...@@ -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) ...@@ -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")
......
...@@ -15,7 +15,7 @@ ...@@ -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) ...@@ -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)
......
...@@ -14,7 +14,7 @@ ...@@ -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) ...@@ -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
} }
......
...@@ -271,7 +271,7 @@ static void arm_memory_present(struct meminfo *mi) ...@@ -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) ...@@ -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) ...@@ -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
......
...@@ -28,6 +28,5 @@ extern void __flush_dcache_page(struct address_space *mapping, struct page *page ...@@ -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);
...@@ -1006,7 +1006,7 @@ void __init paging_init(struct machine_desc *mdesc) ...@@ -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);
......
...@@ -33,7 +33,7 @@ void __init arm_mm_memblock_reserve(void) ...@@ -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();
} }
/* /*
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册