diff options
Diffstat (limited to 'packages/linux/linux-ezx-2.6.24/patches/ezx-mtd-map.patch')
-rw-r--r-- | packages/linux/linux-ezx-2.6.24/patches/ezx-mtd-map.patch | 309 |
1 files changed, 0 insertions, 309 deletions
diff --git a/packages/linux/linux-ezx-2.6.24/patches/ezx-mtd-map.patch b/packages/linux/linux-ezx-2.6.24/patches/ezx-mtd-map.patch deleted file mode 100644 index 9ed4906d78..0000000000 --- a/packages/linux/linux-ezx-2.6.24/patches/ezx-mtd-map.patch +++ /dev/null @@ -1,309 +0,0 @@ -Index: linux-2.6.24/drivers/mtd/maps/Kconfig -=================================================================== ---- linux-2.6.24.orig/drivers/mtd/maps/Kconfig -+++ linux-2.6.24/drivers/mtd/maps/Kconfig -@@ -588,6 +588,34 @@ - Map driver for a NOR flash bank located on the Expansion Bus of the - Intel Vermilion Range chipset. - -+config MTD_EZX -+ tristate "Map driver for Motorola EZX Platform" -+ depends on MTD && PXA_EZX -+ -+if MTD_EZX -+ -+choice -+ prompt "Select partition mapping for EZX platform" -+ -+config MTD_EZX_A780 -+ bool "A780/E680 Original Mapping" -+ -+config MTD_EZX_A780_ALTERNATE -+ bool "A780/E680 Alternate Mapping for BLOB2" -+ -+config MTD_EZX_A1200 -+ bool "A1200 Original Mapping" -+ -+config MTD_EZX_E2 -+ bool "E2 Original Mapping" -+ -+config MTD_EZX_E6 -+ bool "E6 Original Mapping" -+ -+endchoice -+ -+endif -+ - config MTD_PLATRAM - tristate "Map driver for platform device RAM (mtd-ram)" - select MTD_RAM -Index: linux-2.6.24/drivers/mtd/maps/Makefile -=================================================================== ---- linux-2.6.24.orig/drivers/mtd/maps/Makefile -+++ linux-2.6.24/drivers/mtd/maps/Makefile -@@ -69,3 +69,4 @@ - obj-$(CONFIG_MTD_OMAP_NOR) += omap_nor.o - obj-$(CONFIG_MTD_MTX1) += mtx-1_flash.o - obj-$(CONFIG_MTD_INTEL_VR_NOR) += intel_vr_nor.o -+obj-$(CONFIG_MTD_EZX) += ezx-flash.o -Index: linux-2.6.24/drivers/mtd/maps/ezx-flash.c -=================================================================== ---- /dev/null -+++ linux-2.6.24/drivers/mtd/maps/ezx-flash.c -@@ -0,0 +1,256 @@ -+/* -+ * Map driver for the PXA27x -+ * -+ * Author: Harald Welte -+ * Copyright: (C) 2001 MontaVista Software Inc. -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 2 as -+ * published by the Free Software Foundation. -+ * -+ */ -+ -+#include <linux/module.h> -+#include <linux/types.h> -+#include <linux/kernel.h> -+#include <linux/init.h> -+#include <linux/dma-mapping.h> -+#include <linux/slab.h> -+ -+#include <linux/mtd/mtd.h> -+#include <linux/mtd/map.h> -+#include <linux/mtd/partitions.h> -+ -+#include <asm/io.h> -+#include <asm/hardware.h> -+#include <asm/cacheflush.h> -+#include <asm/arch/pxa-regs.h> -+#include <asm/arch/mainstone.h> -+ -+#define WINDOW_ADDR 0x0 -+#define WINDOW_SIZE (32*1024*1024) -+#define WINDOW_CACHE_ADDR 0x0 -+#define WINDOW_CACHE_SIZE 0x1a00000 -+ -+static void pxa27x_map_inval_cache(struct map_info *map, unsigned long from, -+ ssize_t len) -+{ -+ flush_ioremap_region(map->phys, map->cached, from, len); -+} -+ -+ -+struct map_info pxa27x_map = { -+ .name = "PXA27x flash", -+ .size = WINDOW_SIZE, -+ .phys = WINDOW_ADDR, -+ .inval_cache = &pxa27x_map_inval_cache, -+}; -+ -+#if defined CONFIG_MTD_EZX_A780_ALTERNATE -+static struct mtd_partition pxa27x_partitions[] = { -+ { -+ .name = "Bootloader (RO)", -+ .size = 0x00020000, -+ .offset = 0, -+ .mask_flags = MTD_WRITEABLE, -+ }, { -+ .name = "Bootloader 2", -+ .size = 0x00020000, -+ .offset = 0x00020000, -+ } , { -+ .name = "Moto Kernel", -+ .size = 0x000e0000, // 896KB -+ .offset = 0x00040000, -+ } , { -+ .name = "rootfs", -+ .size = 0x01760000, -+ .offset = 0x00120000, -+ } , { -+ .name = "OpenEZX Kernel", -+ .size = 0x00180000, // 1.5MB -+ .offset = 0x01880000, -+ } , { -+ .name = "ezxlocal", -+ .size = 0x005a0000, -+ .offset = 0x01a00000, -+ } , { -+ .name = "setup", -+ .size = 0x00020000, -+ .offset = 0x01fa0000, -+ } , { -+ .name = "Logo", -+ .size = 0x00020000, -+ .offset = 0x01fc0000, -+ }, -+}; -+#elif defined CONFIG_MTD_EZX_A780 -+static struct mtd_partition pxa27x_partitions[] = { -+ { -+ .name = "Bootloader", -+ .size = 0x00020000, -+ .offset = 0, -+ .mask_flags = MTD_WRITEABLE, -+ }, { -+ .name = "Kernel", -+ .size = 0x000e0000, -+ .offset = 0x00020000, -+ } , { -+ .name = "rootfs", -+ .size = 0x018e0000, -+ .offset = 0x00120000, -+ } , { -+ .name = "VFM_Filesystem", -+ .size = 0x00580000, -+ .offset = 0x01a00000, -+ } , { -+ .name = "setup", -+ .size = 0x00020000, -+ .offset = 0x01fa0000, -+ } , { -+ .name = "Logo", -+ .size = 0x00020000, -+ .offset = 0x01fc0000, -+ }, -+}; -+#elif defined CONFIG_MTD_EZX_A1200 -+static struct mtd_partition pxa27x_partitions[] = { -+ { -+ .name = "Caddo 2", -+ .size = 0x00008000, -+ .offset = 0, -+ }, { -+ .name = "Itunes", -+ .size = 0x00008000, -+ .offset = 0x00008000, -+ }, { -+ .name = "Caddo 1", -+ .size = 0x00008000, -+ .offset = 0x00010000, -+ }, { -+ .name = "Fota rev", -+ .size = 0x00008000, -+ .offset = 0x00018000, -+ }, { -+ .name = "MBM", -+ .size = 0x00040000, -+ .offset = 0x00020000, -+ .mask_flags = MTD_WRITEABLE, -+ }, { -+ .name = "Blob", -+ .size = 0x00020000, -+ .offset = 0x00080000, -+ .mask_flags = MTD_WRITEABLE, -+ }, { -+ .name = "Kernel", -+ .size = 0x00100000, -+ .offset = 0x000A0000, -+ } , { -+ .name = "UserFS DB", -+ .size = 0x00600000, -+ .offset = 0x00AA0000, -+ }, { -+ .name = "UserFS", -+ .size = 0x007E0000, -+ .offset = 0x010A0000, -+ }, { -+ .name = "Test cmd", -+ .size = 0x00020000, -+ .offset = 0x018C0000, -+ } , { -+ .name = "Logo", -+ .size = 0x00020000, -+ .offset = 0x018E0000, -+ } , { -+ .name = "Fota", -+ .size = 0x000c0000, -+ .offset = 0x01900000, -+ }, { -+ .name = "Reserve", -+ .size = 0x00020000, -+ .offset = 0x019c0000, -+ } -+}; -+#else -+#error "please define partition for this PXA27x implementation" -+#endif -+ -+ -+static struct mtd_info *mymtd; -+static struct mtd_partition *parsed_parts; -+ -+static const char *probes[] = { "RedBoot", "cmdlinepart", NULL }; -+ -+static int __init init_pxa27x(void) -+{ -+ struct mtd_partition *parts; -+ int nb_parts = 0; -+ int parsed_nr_parts = 0; -+ char *part_type = "static"; -+ -+ pxa27x_map.bankwidth = (BOOT_DEF & 1) ? 2 : 4; -+ -+ printk("Probing PXA27x flash at physical address 0x%08x (%d-bit bankwidth)\n", -+ WINDOW_ADDR, pxa27x_map.bankwidth * 8); -+ pxa27x_map.virt = ioremap(pxa27x_map.phys, pxa27x_map.size); -+ -+ if (!pxa27x_map.virt) { -+ printk("Failed to ioremap\n"); -+ return -EIO; -+ } -+ -+ mymtd = do_map_probe("cfi_probe", &pxa27x_map); -+ if (!mymtd) { -+ iounmap((void *)pxa27x_map.virt); -+ return -ENXIO; -+ } -+ mymtd->owner = THIS_MODULE; -+ -+ simple_map_init(&pxa27x_map); -+ -+ if (parsed_nr_parts == 0) { -+ int ret = parse_mtd_partitions(mymtd, probes, &parsed_parts, 0); -+ -+ if (ret > 0) { -+ part_type = "RedBoot"; -+ parsed_nr_parts = ret; -+ } -+ } -+ -+ if (parsed_nr_parts > 0) { -+ parts = parsed_parts; -+ nb_parts = parsed_nr_parts; -+ } else { -+ parts = pxa27x_partitions; -+ nb_parts = ARRAY_SIZE(pxa27x_partitions); -+ } -+ -+ if (nb_parts) { -+ printk(KERN_NOTICE "Using %s partition definition\n", part_type); -+ add_mtd_partitions(mymtd, parts, nb_parts); -+ } else { -+ add_mtd_device(mymtd); -+ } -+ return 0; -+} -+ -+static void __exit cleanup_pxa27x(void) -+{ -+ if (mymtd) { -+ del_mtd_partitions(mymtd); -+ map_destroy(mymtd); -+ if (parsed_parts) -+ kfree(parsed_parts); -+ } -+ if (pxa27x_map.virt) -+ iounmap((void *)pxa27x_map.virt); -+ if (pxa27x_map.cached) -+ iounmap((void *)pxa27x_map.cached); -+ return; -+} -+ -+module_init(init_pxa27x); -+module_exit(cleanup_pxa27x); -+ -+MODULE_LICENSE("GPL"); -+MODULE_AUTHOR("Harald Welte <laforge@gnumonks.org>"); -+MODULE_DESCRIPTION("MTD map driver for Motorola EZX platform"); |