mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2024-11-28 00:04:05 +02:00
[gemini] add static mtd map for the WBD-111
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@15874 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
parent
82afa919d5
commit
91207ae101
@ -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);
|
@ -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);
|
Loading…
Reference in New Issue
Block a user