This commit was manufactured by cvs2svn to create tag
[linux-2.6.git] / drivers / mtd / maps / physmap.c
index 5822ba9..279d601 100644 (file)
@@ -1,12 +1,7 @@
 /*
- * $Id: physmap.c,v 1.34 2004/07/21 00:16:14 jwboyer Exp $
+ * $Id: physmap.c,v 1.29 2003/05/29 09:24:10 dwmw2 Exp $
  *
  * Normal mappings of chips in physical memory
- *
- * Copyright (C) 2003 MontaVista Software Inc.
- * Author: Jun Sun, jsun@mvista.com or jsun@junsun.net
- *
- * 031022 - [jsun] add run-time configure and partition setup
  */
 
 #include <linux/module.h>
 #include <linux/config.h>
 #include <linux/mtd/partitions.h>
 
+#define WINDOW_ADDR CONFIG_MTD_PHYSMAP_START
+#define WINDOW_SIZE CONFIG_MTD_PHYSMAP_LEN
+#define BUSWIDTH CONFIG_MTD_PHYSMAP_BUSWIDTH
+
 static struct mtd_info *mymtd;
 
+
 struct map_info physmap_map = {
-       .name = "phys_mapped_flash",
-       .phys = CONFIG_MTD_PHYSMAP_START,
-       .size = CONFIG_MTD_PHYSMAP_LEN,
-       .bankwidth = CONFIG_MTD_PHYSMAP_BANKWIDTH,
+       .name = "Physically mapped flash",
+       .size = WINDOW_SIZE,
+       .buswidth = BUSWIDTH,
+       .phys = WINDOW_ADDR,
 };
 
 #ifdef CONFIG_MTD_PARTITIONS
 static struct mtd_partition *mtd_parts;
 static int                   mtd_parts_nb;
 
-static int num_physmap_partitions;
-static struct mtd_partition *physmap_partitions;
+static struct mtd_partition physmap_partitions[] = {
+#if 0
+/* Put your own partition definitions here */
+       {
+               .name =         "bootROM",
+               .size =         0x80000,
+               .offset =       0,
+               .mask_flags =   MTD_WRITEABLE,  /* force read-only */
+       }, {
+               .name =         "zImage",
+               .size =         0x100000,
+               .offset =       MTDPART_OFS_APPEND,
+               .mask_flags =   MTD_WRITEABLE,  /* force read-only */
+       }, {
+               .name =         "ramdisk.gz",
+               .size =         0x300000,
+               .offset =       MTDPART_OFS_APPEND,
+               .mask_flags =   MTD_WRITEABLE,  /* force read-only */
+       }, {
+               .name =         "User FS",
+               .size =         MTDPART_SIZ_FULL,
+               .offset =       MTDPART_OFS_APPEND,
+       }
+#endif
+};
 
-static const char *part_probes[] __initdata = {"cmdlinepart", "RedBoot", NULL};
+#define NUM_PARTITIONS (sizeof(physmap_partitions)/sizeof(struct mtd_partition))
+const char *part_probes[] = {"cmdlinepart", "RedBoot", NULL};
 
-void physmap_set_partitions(struct mtd_partition *parts, int num_parts)
-{
-       physmap_partitions=parts;
-       num_physmap_partitions=num_parts;
-}
 #endif /* CONFIG_MTD_PARTITIONS */
 
-static int __init init_physmap(void)
+int __init init_physmap(void)
 {
        static const char *rom_probe_types[] = { "cfi_probe", "jedec_probe", "map_rom", NULL };
        const char **type;
 
-               printk(KERN_NOTICE "physmap flash device: %lx at %lx\n", physmap_map.size, physmap_map.phys);
-       physmap_map.virt = (unsigned long)ioremap(physmap_map.phys, physmap_map.size);
+               printk(KERN_NOTICE "physmap flash device: %x at %x\n", WINDOW_SIZE, WINDOW_ADDR);
+       physmap_map.virt = (unsigned long)ioremap(WINDOW_ADDR, WINDOW_SIZE);
 
        if (!physmap_map.virt) {
                printk("Failed to ioremap\n");
@@ -78,11 +97,11 @@ static int __init init_physmap(void)
                        return 0;
                }
 
-               if (num_physmap_partitions != 0) 
+               if (NUM_PARTITIONS != 0) 
                {
                        printk(KERN_NOTICE 
                               "Using physmap partition definition\n");
-                       add_mtd_partitions (mymtd, physmap_partitions, num_physmap_partitions);
+                       add_mtd_partitions (mymtd, physmap_partitions, NUM_PARTITIONS);
                        return 0;
                }
 
@@ -102,7 +121,7 @@ static void __exit cleanup_physmap(void)
        if (mtd_parts_nb) {
                del_mtd_partitions(mymtd);
                kfree(mtd_parts);
-       } else if (num_physmap_partitions) {
+       } else if (NUM_PARTITIONS) {
                del_mtd_partitions(mymtd);
        } else {
                del_mtd_device(mymtd);