diff options
Diffstat (limited to 'arch/arm/mach-msm/board-msm8960.c')
| -rw-r--r-- | arch/arm/mach-msm/board-msm8960.c | 22 | 
1 files changed, 22 insertions, 0 deletions
diff --git a/arch/arm/mach-msm/board-msm8960.c b/arch/arm/mach-msm/board-msm8960.c index 35c7ceeb3f2..b04468e7d00 100644 --- a/arch/arm/mach-msm/board-msm8960.c +++ b/arch/arm/mach-msm/board-msm8960.c @@ -20,16 +20,34 @@  #include <linux/io.h>  #include <linux/irq.h>  #include <linux/clkdev.h> +#include <linux/memblock.h>  #include <asm/mach-types.h>  #include <asm/mach/arch.h>  #include <asm/hardware/gic.h> +#include <asm/setup.h>  #include <mach/board.h>  #include <mach/msm_iomap.h>  #include "devices.h" +static void __init msm8960_fixup(struct machine_desc *desc, struct tag *tag, +			 char **cmdline, struct meminfo *mi) +{ +	for (; tag->hdr.size; tag = tag_next(tag)) +		if (tag->hdr.tag == ATAG_MEM && +				tag->u.mem.start == 0x40200000) { +			tag->u.mem.start = 0x40000000; +			tag->u.mem.size += SZ_2M; +		} +} + +static void __init msm8960_reserve(void) +{ +	memblock_remove(0x40000000, SZ_2M); +} +  static void __init msm8960_map_io(void)  {  	msm_map_msm8960_io(); @@ -76,6 +94,8 @@ static void __init msm8960_rumi3_init(void)  }  MACHINE_START(MSM8960_SIM, "QCT MSM8960 SIMULATOR") +	.fixup = msm8960_fixup, +	.reserve = msm8960_reserve,  	.map_io = msm8960_map_io,  	.init_irq = msm8960_init_irq,  	.timer = &msm_timer, @@ -83,6 +103,8 @@ MACHINE_START(MSM8960_SIM, "QCT MSM8960 SIMULATOR")  MACHINE_END  MACHINE_START(MSM8960_RUMI3, "QCT MSM8960 RUMI3") +	.fixup = msm8960_fixup, +	.reserve = msm8960_reserve,  	.map_io = msm8960_map_io,  	.init_irq = msm8960_init_irq,  	.timer = &msm_timer,  |