patch-2.4.21 linux-2.4.21/drivers/mtd/devices/slram.c
Next file: linux-2.4.21/drivers/mtd/ftl.c
Previous file: linux-2.4.21/drivers/mtd/devices/pmc551.c
Back to the patch index
Back to the overall index
- Lines: 70
- Date:
2003-06-13 07:51:34.000000000 -0700
- Orig file:
linux-2.4.20/drivers/mtd/devices/slram.c
- Orig date:
2001-10-04 15:14:59.000000000 -0700
diff -urN linux-2.4.20/drivers/mtd/devices/slram.c linux-2.4.21/drivers/mtd/devices/slram.c
@@ -1,6 +1,32 @@
/*======================================================================
- $Id: slram.c,v 1.25 2001/10/02 15:05:13 dwmw2 Exp $
+ $Id: slram.c,v 1.28 2003/01/24 13:35:34 dwmw2 Exp $
+
+ This driver provides a method to access memory not used by the kernel
+ itself (i.e. if the kernel commandline mem=xxx is used). To actually
+ use slram at least mtdblock or mtdchar is required (for block or
+ character device access).
+
+ Usage:
+
+ if compiled as loadable module:
+ modprobe slram map=<name>,<start>,<end/offset>
+ if statically linked into the kernel use the following kernel cmd.line
+ slram=<name>,<start>,<end/offset>
+
+ <name>: name of the device that will be listed in /proc/mtd
+ <start>: start of the memory region, decimal or hex (0xabcdef)
+ <end/offset>: end of the memory region. It's possible to use +0x1234
+ to specify the offset instead of the absolute address
+
+ NOTE:
+ With slram it's only possible to map a contigous memory region. Therfore
+ if there's a device mapped somewhere in the region specified slram will
+ fail to load (see kernel log if modprobe fails).
+
+ -
+
+ Jochen Schaeuble <psionic@psionic.de>
======================================================================*/
@@ -20,8 +46,6 @@
#include <linux/init.h>
#include <asm/io.h>
#include <asm/system.h>
-#include <asm/segment.h>
-#include <stdarg.h>
#include <linux/mtd/mtd.h>
@@ -53,7 +77,7 @@
int slram_erase(struct mtd_info *, struct erase_info *);
int slram_point(struct mtd_info *, loff_t, size_t, size_t *, u_char **);
-void slram_unpoint(struct mtd_info *, u_char *);
+void slram_unpoint(struct mtd_info *, u_char *, loff_t, size_t);
int slram_read(struct mtd_info *, loff_t, size_t, size_t *, u_char *);
int slram_write(struct mtd_info *, loff_t, size_t, size_t *, const u_char *);
@@ -94,7 +118,7 @@
return(0);
}
-void slram_unpoint(struct mtd_info *mtd, u_char *addr)
+void slram_unpoint(struct mtd_info *mtd, u_char *addr, loff_t from, size_t len)
{
}
@@ -177,7 +201,7 @@
(*curmtd)->mtdinfo->write = slram_write;
(*curmtd)->mtdinfo->module = THIS_MODULE;
(*curmtd)->mtdinfo->type = MTD_RAM;
- (*curmtd)->mtdinfo->erasesize = 0x10000;
+ (*curmtd)->mtdinfo->erasesize = 0x0;
if (add_mtd_device((*curmtd)->mtdinfo)) {
E("slram: Failed to register new device\n");
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)