mirror of https://github.com/hak5/openwrt.git
56 lines
1.6 KiB
Diff
56 lines
1.6 KiB
Diff
|
--- a/drivers/mtd/ar7part.c
|
||
|
+++ b/drivers/mtd/ar7part.c
|
||
|
@@ -27,12 +27,14 @@
|
||
|
#include <linux/mtd/partitions.h>
|
||
|
#include <linux/bootmem.h>
|
||
|
#include <linux/magic.h>
|
||
|
+#include <asm/mach-ar7/prom.h>
|
||
|
|
||
|
#define AR7_PARTS 4
|
||
|
#define ROOT_OFFSET 0xe0000
|
||
|
|
||
|
#define LOADER_MAGIC1 le32_to_cpu(0xfeedfa42)
|
||
|
#define LOADER_MAGIC2 le32_to_cpu(0xfeed1281)
|
||
|
+#define LOADER_MAGIC3 le32_to_cpu(0x434d4d4c)
|
||
|
|
||
|
#ifndef SQUASHFS_MAGIC
|
||
|
#define SQUASHFS_MAGIC 0x73717368
|
||
|
@@ -44,6 +46,10 @@ struct ar7_bin_rec {
|
||
|
unsigned int address;
|
||
|
};
|
||
|
|
||
|
+int create_titan_partitions(struct mtd_info *master,
|
||
|
+ struct mtd_partition **pparts,
|
||
|
+ unsigned long origin);
|
||
|
+
|
||
|
static int create_mtd_partitions(struct mtd_info *master,
|
||
|
struct mtd_partition **pparts,
|
||
|
unsigned long origin)
|
||
|
@@ -57,6 +63,16 @@ static int create_mtd_partitions(struct
|
||
|
int retries = 10;
|
||
|
struct mtd_partition *ar7_parts;
|
||
|
|
||
|
+ const char *prod_id ;
|
||
|
+ prod_id = prom_getenv("ProductID");
|
||
|
+ if(prod_id &&
|
||
|
+ (strcmp(prod_id, "CYWL")==0 ||
|
||
|
+ strcmp(prod_id, "CYWM")==0 ||
|
||
|
+ strcmp(prod_id, "CYLM")==0 ||
|
||
|
+ strcmp(prod_id, "CYLL")==0)){
|
||
|
+ return create_titan_partitions(master, pparts, origin);
|
||
|
+ }
|
||
|
+
|
||
|
ar7_parts = kzalloc(sizeof(*ar7_parts) * AR7_PARTS, GFP_KERNEL);
|
||
|
if (!ar7_parts)
|
||
|
return -ENOMEM;
|
||
|
--- a/drivers/mtd/Makefile
|
||
|
+++ b/drivers/mtd/Makefile
|
||
|
@@ -12,6 +12,7 @@ obj-$(CONFIG_MTD_REDBOOT_PARTS) += redbo
|
||
|
obj-$(CONFIG_MTD_CMDLINE_PARTS) += cmdlinepart.o
|
||
|
obj-$(CONFIG_MTD_AFS_PARTS) += afs.o
|
||
|
obj-$(CONFIG_MTD_AR7_PARTS) += ar7part.o
|
||
|
+obj-$(CONFIG_MTD_AR7_PARTS) += titanpart.o
|
||
|
obj-$(CONFIG_MTD_OF_PARTS) += ofpart.o
|
||
|
obj-$(CONFIG_MTD_MYLOADER_PARTS) += myloader.o
|
||
|
|