SVN-Revision: 7336master
parent
b62d62a3c4
commit
8f83153369
@ -1,113 +0,0 @@ |
||||
/*
|
||||
* magicmap.c: Copyleft 2005 Karol Lewandowski |
||||
* |
||||
* Mapping for MagicBox flash. |
||||
* Based on walnut.c. |
||||
* |
||||
* Heikki Lindholm <holindho@infradead.org> |
||||
* |
||||
* |
||||
* This program is free software; you can redistribute it and/or modify it |
||||
* under the terms of the GNU General Public License as published by the |
||||
* Free Software Foundation; either version 2 of the License, or (at your |
||||
* option) any later version. |
||||
*/ |
||||
|
||||
#include <linux/module.h> |
||||
#include <linux/types.h> |
||||
#include <linux/kernel.h> |
||||
#include <linux/init.h> |
||||
#include <linux/mtd/mtd.h> |
||||
#include <linux/mtd/map.h> |
||||
#include <linux/mtd/partitions.h> |
||||
#include <linux/autoconf.h> |
||||
#include <asm/io.h> |
||||
|
||||
static struct mtd_info *flash; |
||||
|
||||
static struct map_info magic_map = { |
||||
.name = "Magically mapped flash", |
||||
.phys = 0xffc00000, |
||||
.size = 0x400000, |
||||
.bankwidth = 2, |
||||
}; |
||||
|
||||
static struct mtd_partition magic_partitions[] = { |
||||
{ |
||||
.name = "linux", |
||||
.offset = 0x0, |
||||
.size = 0x3c0000, |
||||
}, |
||||
{ |
||||
.name = "rootfs", |
||||
.offset = 0x100000, |
||||
.size = 0x2c0000, |
||||
}, |
||||
{ |
||||
.name = "bootloader", |
||||
.offset = 0x3c0000, |
||||
.size = 0x040000, |
||||
.mask_flags = MTD_WRITEABLE, |
||||
}, |
||||
}; |
||||
|
||||
int __init init_magic(void) |
||||
{ |
||||
u32 size, len; |
||||
|
||||
magic_map.virt = |
||||
(void __iomem *)ioremap(magic_map.phys, magic_map.size); |
||||
|
||||
if (!magic_map.virt) { |
||||
printk("Failed to ioremap flash.\n"); |
||||
return -EIO; |
||||
} |
||||
|
||||
simple_map_init(&magic_map); |
||||
|
||||
flash = do_map_probe("cfi_probe", &magic_map); |
||||
if (flash) { |
||||
flash->owner = THIS_MODULE; |
||||
if (flash->read(flash, 12, sizeof(u32), &len, (char *) &size) || |
||||
len != 4) |
||||
return -ENXIO; |
||||
size += 0x40; /* header size of the uImage */ |
||||
if (size < 0x400000) { |
||||
/* skip to next erase block */ |
||||
if (size & (flash->erasesize - 1)) { |
||||
size |= (flash->erasesize - 1); |
||||
size += 1; |
||||
} |
||||
magic_partitions[1].offset = size; |
||||
magic_partitions[1].size = magic_partitions[2].offset - size; |
||||
} |
||||
|
||||
add_mtd_partitions(flash, magic_partitions, |
||||
ARRAY_SIZE(magic_partitions)); |
||||
} else { |
||||
printk("map probe failed for flash\n"); |
||||
return -ENXIO; |
||||
} |
||||
|
||||
return 0; |
||||
} |
||||
|
||||
static void __exit cleanup_magic(void) |
||||
{ |
||||
if (flash) { |
||||
del_mtd_partitions(flash); |
||||
map_destroy(flash); |
||||
} |
||||
|
||||
if (magic_map.virt) { |
||||
iounmap((void *)magic_map.virt); |
||||
magic_map.virt = NULL; |
||||
} |
||||
} |
||||
|
||||
module_init(init_magic); |
||||
module_exit(cleanup_magic); |
||||
|
||||
MODULE_LICENSE("GPL"); |
||||
MODULE_AUTHOR("Karol Lewandowski"); |
||||
MODULE_DESCRIPTION("MTD map and partitions for IBM 405EP MagicBox boards"); |
@ -1,30 +0,0 @@ |
||||
diff -urN linux.old/drivers/mtd/maps/Kconfig linux.dev/drivers/mtd/maps/Kconfig
|
||||
--- linux.old/drivers/mtd/maps/Kconfig 2006-08-30 06:30:59.000000000 +0200
|
||||
+++ linux.dev/drivers/mtd/maps/Kconfig 2006-08-30 06:11:51.000000000 +0200
|
||||
@@ -323,6 +323,15 @@
|
||||
Walnut board. If you have one of these boards and would like to
|
||||
use the flash chips on it, say 'Y'.
|
||||
|
||||
+config MTD_MAGICMAP
|
||||
+ tristate "Flash device mapped on IBM 405EP MagicBox"
|
||||
+ depends on MTD_CFI && MTD_PARTITIONS && 40x && MAGICBOX
|
||||
+ help
|
||||
+ This enables access routines for the flash chips on the IBM 405EP
|
||||
+ MagicBox board. If you have one of these boards and would like to
|
||||
+ use the flash chips on it, say 'Y'.
|
||||
+
|
||||
+
|
||||
config MTD_EBONY
|
||||
tristate "Flash devices mapped on IBM 440GP Ebony"
|
||||
depends on MTD_JEDECPROBE && EBONY
|
||||
diff -urN linux.old/drivers/mtd/maps/Makefile linux.dev/drivers/mtd/maps/Makefile
|
||||
--- linux.old/drivers/mtd/maps/Makefile 2006-08-30 06:30:59.000000000 +0200
|
||||
+++ linux.dev/drivers/mtd/maps/Makefile 2006-08-30 06:11:51.000000000 +0200
|
||||
@@ -58,6 +58,7 @@
|
||||
obj-$(CONFIG_MTD_BEECH) += beech-mtd.o
|
||||
obj-$(CONFIG_MTD_ARCTIC) += arctic-mtd.o
|
||||
obj-$(CONFIG_MTD_WALNUT) += walnut.o
|
||||
+obj-$(CONFIG_MTD_MAGICMAP) += magicmap.o
|
||||
obj-$(CONFIG_MTD_H720X) += h720x-flash.o
|
||||
obj-$(CONFIG_MTD_SBC8240) += sbc8240.o
|
||||
obj-$(CONFIG_MTD_NOR_TOTO) += omap-toto-flash.o
|
Loading…
Reference in new issue