diff options
Diffstat (limited to 'target/linux/gemini/patches')
| -rw-r--r-- | target/linux/gemini/patches/003-wbd111-static-flash-map.patch | 62 | ||||
| -rw-r--r-- | target/linux/gemini/patches/100-mtd-physmap-try-static-partitions-first.patch | 30 | 
2 files changed, 92 insertions, 0 deletions
diff --git a/target/linux/gemini/patches/003-wbd111-static-flash-map.patch b/target/linux/gemini/patches/003-wbd111-static-flash-map.patch new file mode 100644 index 000000000..9a2b2bd29 --- /dev/null +++ b/target/linux/gemini/patches/003-wbd111-static-flash-map.patch @@ -0,0 +1,62 @@ +--- a/arch/arm/mach-gemini/board-wbd111.c ++++ b/arch/arm/mach-gemini/board-wbd111.c +@@ -15,6 +15,7 @@ + #include <linux/input.h> + #include <linux/gpio_keys.h> + #include <linux/mdio-gpio.h> ++#include <linux/mtd/partitions.h> + #include <asm/mach-types.h> + #include <asm/mach/arch.h> + #include <asm/mach/time.h> +@@ -101,11 +102,50 @@ static struct sys_timer wbd111_timer = { + 	.init	= gemini_timer_init, + }; +  ++#ifdef CONFIG_MTD_PARTITIONS ++static struct mtd_partition wbd111_partitions[] = { ++	{ ++		.name		= "RedBoot", ++		.offset		= 0, ++		.size		= 0x020000, ++		.mask_flags	= MTD_WRITEABLE, ++	} , { ++		.name		= "kernel", ++		.offset		= 0x020000, ++		.size		= 0x100000, ++	} , { ++		.name		= "rootfs", ++		.offset		= 0x120000, ++		.size		= 0x6a0000, ++	} , { ++		.name		= "VCTL", ++		.offset		= 0x7c0000, ++		.size		= 0x010000, ++		.mask_flags	= MTD_WRITEABLE, ++	} , { ++		.name		= "cfg", ++		.offset		= 0x7d0000, ++		.size		= 0x010000, ++		.mask_flags	= MTD_WRITEABLE, ++	} , { ++		.name		= "FIS", ++		.offset		= 0x7e0000, ++		.size		= 0x010000, ++		.mask_flags	= MTD_WRITEABLE, ++	} ++}; ++#define wbd111_num_partitions	ARRAY_SIZE(wbd111_partitions) ++#else ++#define wbd111_partitions	NULL ++#define wbd111_num_partitions	0 ++#endif /* CONFIG_MTD_PARTITIONS */ ++ + static void __init wbd111_init(void) + { + 	gemini_gpio_init(); + 	platform_register_uart(); +-	platform_register_pflash(SZ_8M, NULL, 0); ++	platform_register_pflash(SZ_8M, wbd111_partitions, ++				 wbd111_num_partitions); + 	platform_device_register(&wbd111_leds_device); + 	platform_device_register(&wbd111_keys_device); + 	platform_device_register(&wbd111_phy_device); diff --git a/target/linux/gemini/patches/100-mtd-physmap-try-static-partitions-first.patch b/target/linux/gemini/patches/100-mtd-physmap-try-static-partitions-first.patch new file mode 100644 index 000000000..887dab0b7 --- /dev/null +++ b/target/linux/gemini/patches/100-mtd-physmap-try-static-partitions-first.patch @@ -0,0 +1,30 @@ +--- a/drivers/mtd/maps/physmap.c ++++ b/drivers/mtd/maps/physmap.c +@@ -170,6 +170,13 @@ static int physmap_flash_probe(struct pl + 		goto err_out; +  + #ifdef CONFIG_MTD_PARTITIONS ++	if (physmap_data->nr_parts) { ++		printk(KERN_NOTICE "Using physmap partition information\n"); ++		add_mtd_partitions(info->cmtd, physmap_data->parts, ++				   physmap_data->nr_parts); ++		return 0; ++	} ++ + 	err = parse_mtd_partitions(info->cmtd, part_probe_types, + 				&info->parts, 0); + 	if (err > 0) { +@@ -177,13 +184,6 @@ static int physmap_flash_probe(struct pl + 		info->nr_parts = err; + 		return 0; + 	} +- +-	if (physmap_data->nr_parts) { +-		printk(KERN_NOTICE "Using physmap partition information\n"); +-		add_mtd_partitions(info->cmtd, physmap_data->parts, +-				   physmap_data->nr_parts); +-		return 0; +-	} + #endif +  + 	add_mtd_device(info->cmtd);  | 
