--- linux-2.6.28/arch/mips/fusiv/fusiv_mips32/fusiv_mtd.c.orig 2012-02-22 21:45:08.361141466 +0100
+++ linux-2.6.28/arch/mips/fusiv/fusiv_mips32/fusiv_mtd.c 2012-02-22 21:46:43.129137241 +0100
@@ -34,6 +34,7 @@
#include <asm/setup.h>
#include <asm/io.h>
+#include <asm/prom.h>
#if defined(CONFIG_MTD_PHYSMAP) || defined(CONFIG_MTD_PHYSMAP_MODULE)
#define DO_MTD
@@ -602,6 +603,7 @@
void fusiv_mtd_add_notifier(struct mtd_info *mtd) {
int i, index;
+ char *cl;
if(!mtd->name) {
DEBUG_MTD("Leeres MTD �bergeben!");
@@ -609,6 +611,11 @@
}
DEBUG_MTD("name %s" , mtd->name);
+ cl = prom_getcmdline();
+ if (strstr(cl, "root=") != NULL) {
+ return;
+ }
+
for (i = 0; i < sizeof(str_rootfs) / sizeof(char*) ; i++) {
if (!strcmp(mtd->name, str_rootfs[i])) {
DEBUG_MTD("found %s", mtd->name);
--- linux-2.6.28/arch/mips/fusiv/fusiv_mips32/prom.c.orig 2011-03-31 10:50:42.000000000 +0200
+++ linux-2.6.28/arch/mips/fusiv/fusiv_mips32/prom.c 2012-02-22 21:36:23.153164882 +0100
@@ -142,6 +142,10 @@
}
EXPORT_SYMBOL(board_memsize);
+char* prom_getcmdline(void) {
+ return &(arcs_cmdline[0]);
+}
+
/*------------------------------------------------------------------------------------------*\
\*------------------------------------------------------------------------------------------*/
/*--- #define DEBUG_WLAN_DECT_CONFIG ---*/