r947 - trunk/src/target/kernel/patches

laforge at sita.openmoko.org laforge at sita.openmoko.org
Sun Feb 11 04:05:28 CET 2007


Author: laforge
Date: 2007-02-11 04:05:27 +0100 (Sun, 11 Feb 2007)
New Revision: 947

Added:
   trunk/src/target/kernel/patches/gta01-no_nand_partitions.patch
Modified:
   trunk/src/target/kernel/patches/series
Log:
add support for dynamic partition table parsing (cmdline mtdparts) for S3C2410
NAND.  We need this for u-boot to tell the kernel how this device-individual
partition table looks like.


Added: trunk/src/target/kernel/patches/gta01-no_nand_partitions.patch
===================================================================
--- trunk/src/target/kernel/patches/gta01-no_nand_partitions.patch	2007-02-11 03:04:28 UTC (rev 946)
+++ trunk/src/target/kernel/patches/gta01-no_nand_partitions.patch	2007-02-11 03:05:27 UTC (rev 947)
@@ -0,0 +1,86 @@
+Index: linux-2.6.17.14-fic4.test/arch/arm/mach-s3c2410/mach-gta01.c
+===================================================================
+--- linux-2.6.17.14-fic4.test.orig/arch/arm/mach-s3c2410/mach-gta01.c	2007-02-10 23:31:12.000000000 +0100
++++ linux-2.6.17.14-fic4.test/arch/arm/mach-s3c2410/mach-gta01.c	2007-02-11 01:39:24.000000000 +0100
+@@ -188,40 +188,10 @@
+ 	.devices_count = ARRAY_SIZE(gta01_devices)
+ };
+ 
+-static struct mtd_partition gta01_nand_part[] = {
+-	[0] = {
+-		.name	= "U-Boot",
+-		.size	= 0x30000,
+-		.offset	= 0,
+-	},
+-	[1] = {
+-		.name	= "U-Boot environment",
+-		.offset = 0x30000,
+-		.size	= 0x4000,
+-	},
+-	[2] = {
+-		.name	= "kernel",
+-		.offset = 0x34000,
+-		.size	= SZ_2M,
+-	},
+-	[3] = {
+-		.name	= "initrd",
+-		.offset	= 0x234000,
+-		.size	= SZ_4M,
+-	},
+-	[4] = {
+-		.name	= "jffs2",
+-		.offset = 0x634000,
+-		.size	= 0x39cc000,
+-	},
+-};
+-
+ static struct s3c2410_nand_set gta01_nand_sets[] = {
+ 	[0] = {
+-		.name		= "NAND",
++		.name		= "neo1973-nand",
+ 		.nr_chips	= 1,
+-		.nr_partitions	= ARRAY_SIZE(gta01_nand_part),
+-		.partitions	= gta01_nand_part,
+ 	},
+ };
+ 
+Index: linux-2.6.17.14-fic4.test/drivers/mtd/nand/s3c2410.c
+===================================================================
+--- linux-2.6.17.14-fic4.test.orig/drivers/mtd/nand/s3c2410.c	2007-02-11 00:22:02.000000000 +0100
++++ linux-2.6.17.14-fic4.test/drivers/mtd/nand/s3c2410.c	2007-02-11 03:45:28.000000000 +0100
+@@ -480,19 +480,31 @@
+ }
+ 
+ #ifdef CONFIG_MTD_PARTITIONS
++const char *part_probes[] = { "cmdlinepart", NULL };
+ static int s3c2410_nand_add_partition(struct s3c2410_nand_info *info,
+ 				      struct s3c2410_nand_mtd *mtd,
+ 				      struct s3c2410_nand_set *set)
+ {
++	struct mtd_partition *part_info;
++	int nr_part = 0;
++
+ 	if (set == NULL)
+ 		return add_mtd_device(&mtd->mtd);
+ 
+-	if (set->nr_partitions > 0 && set->partitions != NULL) {
+-		return add_mtd_partitions(&mtd->mtd,
+-					  set->partitions,
+-					  set->nr_partitions);
++	if (set->nr_partitions == 0) {
++		mtd->mtd.name = set->name;
++		nr_part = parse_mtd_partitions(&mtd->mtd, part_probes,
++						&part_info, 0);
++	} else {
++		if (set->nr_partitions > 0 && set->partitions != NULL) {
++			nr_part = set->nr_partitions;
++			part_info = set->partitions;
++		}
+ 	}
+ 
++	if (nr_part > 0 && part_info)
++		return add_mtd_partitions(&mtd->mtd, part_info, nr_part);
++
+ 	return add_mtd_device(&mtd->mtd);
+ }
+ #else

Modified: trunk/src/target/kernel/patches/series
===================================================================
--- trunk/src/target/kernel/patches/series	2007-02-11 03:04:28 UTC (rev 946)
+++ trunk/src/target/kernel/patches/series	2007-02-11 03:05:27 UTC (rev 947)
@@ -29,3 +29,4 @@
 gta01-vbus_draw.patch
 ts0710.patch
 input-nots-mousedev.patch
+gta01-no_nand_partitions.patch





More information about the commitlog mailing list