Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at 77b2555b52a894a2e39a42e43d993df875c46a6a 81 lines 1.8 kB view raw
1/* 2 * Flash on MPC-1211 3 * 4 * $Id: mpc1211.c,v 1.4 2004/09/16 23:27:13 gleixner Exp $ 5 * 6 * (C) 2002 Interface, Saito.K & Jeanne 7 * 8 * GPL'd 9 */ 10 11#include <linux/module.h> 12#include <linux/types.h> 13#include <linux/kernel.h> 14#include <asm/io.h> 15#include <linux/mtd/mtd.h> 16#include <linux/mtd/map.h> 17#include <linux/mtd/partitions.h> 18#include <linux/config.h> 19 20static struct mtd_info *flash_mtd; 21static struct mtd_partition *parsed_parts; 22 23struct map_info mpc1211_flash_map = { 24 .name = "MPC-1211 FLASH", 25 .size = 0x80000, 26 .bankwidth = 1, 27}; 28 29static struct mtd_partition mpc1211_partitions[] = { 30 { 31 .name = "IPL & ETH-BOOT", 32 .offset = 0x00000000, 33 .size = 0x10000, 34 }, 35 { 36 .name = "Flash FS", 37 .offset = 0x00010000, 38 .size = MTDPART_SIZ_FULL, 39 } 40}; 41 42static int __init init_mpc1211_maps(void) 43{ 44 int nr_parts; 45 46 mpc1211_flash_map.phys = 0; 47 mpc1211_flash_map.virt = (void __iomem *)P2SEGADDR(0); 48 49 simple_map_init(&mpc1211_flash_map); 50 51 printk(KERN_NOTICE "Probing for flash chips at 0x00000000:\n"); 52 flash_mtd = do_map_probe("jedec_probe", &mpc1211_flash_map); 53 if (!flash_mtd) { 54 printk(KERN_NOTICE "Flash chips not detected at either possible location.\n"); 55 return -ENXIO; 56 } 57 printk(KERN_NOTICE "MPC-1211: Flash at 0x%08lx\n", mpc1211_flash_map.virt & 0x1fffffff); 58 flash_mtd->module = THIS_MODULE; 59 60 parsed_parts = mpc1211_partitions; 61 nr_parts = ARRAY_SIZE(mpc1211_partitions); 62 63 add_mtd_partitions(flash_mtd, parsed_parts, nr_parts); 64 return 0; 65} 66 67static void __exit cleanup_mpc1211_maps(void) 68{ 69 if (parsed_parts) 70 del_mtd_partitions(flash_mtd); 71 else 72 del_mtd_device(flash_mtd); 73 map_destroy(flash_mtd); 74} 75 76module_init(init_mpc1211_maps); 77module_exit(cleanup_mpc1211_maps); 78 79MODULE_LICENSE("GPL"); 80MODULE_AUTHOR("Saito.K & Jeanne <ksaito@interface.co.jp>"); 81MODULE_DESCRIPTION("MTD map driver for MPC-1211 boards. Interface");