kernel: create firmware partition from MyLoader partition parser
authorjuhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Wed, 25 Sep 2013 20:13:12 +0000 (20:13 +0000)
committerjuhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Wed, 25 Sep 2013 20:13:12 +0000 (20:13 +0000)
This is in preparation for sysupgrade support for Compex devices.

Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@38197 3c298f89-4303-0410-b956-a3cf2f4a3e73

target/linux/generic/files/drivers/mtd/myloader.c

index 72956cd..93b4a9b 100644 (file)
@@ -89,8 +89,12 @@ static int myloader_parse_partitions(struct mtd_info *master,
                goto out_free_buf;
        }
 
                goto out_free_buf;
        }
 
-       /* The MyLoader and the Partition Table is always present */
-       num_parts = 2;
+       /*
+        * The MyLoader and the Partition Table is always present.
+        * Additionally, an extra partition is generated to cover
+        * everything after the bootloader.
+        */
+       num_parts = 3;
 
        /* Detect number of used partitions */
        for (i = 0; i < MYLO_MAX_PARTITIONS; i++) {
 
        /* Detect number of used partitions */
        for (i = 0; i < MYLO_MAX_PARTITIONS; i++) {
@@ -121,6 +125,13 @@ static int myloader_parse_partitions(struct mtd_info *master,
        mtd_part++;
        names += PART_NAME_LEN;
 
        mtd_part++;
        names += PART_NAME_LEN;
 
+       strncpy(names, "firmware", PART_NAME_LEN);
+       mtd_part->name = names;
+       mtd_part->offset = offset;
+       mtd_part->size = master->size - offset;
+       mtd_part++;
+       names += PART_NAME_LEN;
+
        strncpy(names, "partition_table", PART_NAME_LEN);
        mtd_part->name = names;
        mtd_part->offset = offset;
        strncpy(names, "partition_table", PART_NAME_LEN);
        mtd_part->name = names;
        mtd_part->offset = offset;