Title: [4166] branches/2008R1: add support for cmdline partitioning to the BF533-STAMP flash map driver and enable it as a module by default
Revision
4166
Author
vapier
Date
2008-01-29 09:25:15 -0600 (Tue, 29 Jan 2008)

Log Message

add support for cmdline partitioning to the BF533-STAMP flash map driver and enable it as a module by default

Diffstat

 arch/blackfin/configs/BF533-STAMP_defconfig |   16 ++++++++++------
 drivers/mtd/maps/bf5xx-flash.c              |   20 ++++++++++++++++++--
 2 files changed, 28 insertions(+), 8 deletions(-)

Modified Paths

Diff

Modified: branches/2008R1/arch/blackfin/configs/BF533-STAMP_defconfig (4165 => 4166)


--- branches/2008R1/arch/blackfin/configs/BF533-STAMP_defconfig	2008-01-29 15:23:28 UTC (rev 4165)
+++ branches/2008R1/arch/blackfin/configs/BF533-STAMP_defconfig	2008-01-29 15:25:15 UTC (rev 4166)
@@ -216,8 +216,6 @@
 CONFIG_MEM_ADD_WIDTH=11
 CONFIG_ENET_FLASH_PIN=0
 CONFIG_BOOT_LOAD=0x1000
-
-
 CONFIG_BFIN_SCRATCH_REG_RETN=y
 # CONFIG_BFIN_SCRATCH_REG_RETE is not set
 # CONFIG_BFIN_SCRATCH_REG_CYCLES is not set
@@ -483,7 +481,7 @@
 # CONFIG_MTD_CONCAT is not set
 CONFIG_MTD_PARTITIONS=y
 # CONFIG_MTD_REDBOOT_PARTS is not set
-# CONFIG_MTD_CMDLINE_PARTS is not set
+CONFIG_MTD_CMDLINE_PARTS=y
 
 #
 # User Modules And Translation Layers
@@ -500,8 +498,8 @@
 #
 # RAM/ROM/Flash chip drivers
 #
-# CONFIG_MTD_CFI is not set
-CONFIG_MTD_JEDECPROBE=m
+CONFIG_MTD_CFI=m
+# CONFIG_MTD_JEDECPROBE is not set
 CONFIG_MTD_GEN_PROBE=m
 # CONFIG_MTD_CFI_ADV_OPTIONS is not set
 CONFIG_MTD_MAP_BANK_WIDTH_1=y
@@ -515,8 +513,9 @@
 # CONFIG_MTD_CFI_I4 is not set
 # CONFIG_MTD_CFI_I8 is not set
 # CONFIG_MTD_CFI_INTELEXT is not set
-# CONFIG_MTD_CFI_AMDSTD is not set
+CONFIG_MTD_CFI_AMDSTD=m
 # CONFIG_MTD_CFI_STAA is not set
+CONFIG_MTD_CFI_UTIL=m
 CONFIG_MTD_RAM=y
 CONFIG_MTD_ROM=m
 # CONFIG_MTD_ABSENT is not set
@@ -526,6 +525,11 @@
 #
 CONFIG_MTD_COMPLEX_MAPPINGS=y
 # CONFIG_MTD_PHYSMAP is not set
+CONFIG_MTD_BF5xx=m
+CONFIG_BFIN_FLASH_BANK_0=0x7BB0
+CONFIG_BFIN_FLASH_BANK_1=0x7BB0
+CONFIG_BFIN_FLASH_BANK_2=0x7BB0
+CONFIG_BFIN_FLASH_BANK_3=0x7BB0
 # CONFIG_MTD_UCLINUX is not set
 # CONFIG_MTD_PLATRAM is not set
 

Modified: branches/2008R1/drivers/mtd/maps/bf5xx-flash.c (4165 => 4166)


--- branches/2008R1/drivers/mtd/maps/bf5xx-flash.c	2008-01-29 15:23:28 UTC (rev 4165)
+++ branches/2008R1/drivers/mtd/maps/bf5xx-flash.c	2008-01-29 15:25:15 UTC (rev 4166)
@@ -145,8 +145,13 @@
 	.copy_to   = bf5xx_copy_to,
 };
 
+#ifdef CONFIG_MTD_PARTITIONS
+static const char *part_probe_types[] = { "cmdlinepart", "RedBoot", NULL };
+#endif
+
 static int __init bf5xx_flash_probe(struct platform_device *dev)
 {
+	int ret;
 	struct physmap_flash_data *pdata = dev->dev.platform_data;
 	struct resource *memory = platform_get_resource(dev, IORESOURCE_MEM, 0);
 
@@ -168,10 +173,19 @@
 	if (!bf5xx_mtd)
 		return -ENXIO;
 
-	if (pdata->nr_parts) {
+#ifdef CONFIG_MTD_PARTITIONS
+	ret = parse_mtd_partitions(bf5xx_mtd, part_probe_types, &pdata->parts, 0);
+	if (ret > 0) {
+		pr_init(KERN_NOTICE DRIVER_NAME ": Using commandline partition definition\n");
+		add_mtd_partitions(bf5xx_mtd, pdata->parts, ret);
+
+	} else if (pdata->nr_parts) {
 		pr_init(KERN_NOTICE DRIVER_NAME ": Using board partition definition\n");
 		add_mtd_partitions(bf5xx_mtd, pdata->parts, pdata->nr_parts);
-	} else {
+
+	} else
+#endif
+	{
 		pr_init(KERN_NOTICE DRIVER_NAME ": no partition info available, registering whole flash at once\n");
 		add_mtd_device(bf5xx_mtd);
 	}
@@ -182,7 +196,9 @@
 static int __devexit bf5xx_flash_remove(struct platform_device *dev)
 {
 	gpio_free(enet_flash_pin);
+#ifdef CONFIG_MTD_PARTITIONS
 	del_mtd_partitions(bf5xx_mtd);
+#endif
 	map_destroy(bf5xx_mtd);
 	return 0;
 }
_______________________________________________
Linux-kernel-commits mailing list
[email protected]
http://blackfin.uclinux.org/mailman/listinfo/linux-kernel-commits

Reply via email to