From fc79d210e0e70047309806c84aca02a00ae577b8 Mon Sep 17 00:00:00 2001
From: Gabor Juhos <juhosg@openwrt.org>
Date: Wed, 25 Sep 2013 20:13:12 +0000
Subject: kernel: create firmware partition from MyLoader partition parser

This is in preparation for sysupgrade support for Compex devices.

Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

SVN-Revision: 38197
---
 target/linux/generic/files/drivers/mtd/myloader.c | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

(limited to 'target/linux/generic/files/drivers/mtd')

diff --git a/target/linux/generic/files/drivers/mtd/myloader.c b/target/linux/generic/files/drivers/mtd/myloader.c
index 72956cdc1c..93b4a9b286 100644
--- a/target/linux/generic/files/drivers/mtd/myloader.c
+++ b/target/linux/generic/files/drivers/mtd/myloader.c
@@ -89,8 +89,12 @@ static int myloader_parse_partitions(struct mtd_info *master,
 		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++) {
@@ -121,6 +125,13 @@ static int myloader_parse_partitions(struct mtd_info *master,
 	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;
-- 
cgit v1.2.3