[PATCH|RFC] beagle: make nand ecc command based

Michael Grzeschik m.grzeschik at pengutronix.de
Tue Aug 17 04:55:37 EDT 2010


Signed-off-by: Michael Grzeschik <m.grzeschik at pengutronix.de>
---
This will only work once and bring the nand chip into a undefined state
after a second call. Any ideas for doing this save?

 arch/arm/boards/omap/board-beagle.c |   28 +++++++++++++++++++++++++++-
 1 files changed, 27 insertions(+), 1 deletions(-)

diff --git a/arch/arm/boards/omap/board-beagle.c b/arch/arm/boards/omap/board-beagle.c
index c0b6b43..99766af 100644
--- a/arch/arm/boards/omap/board-beagle.c
+++ b/arch/arm/boards/omap/board-beagle.c
@@ -53,6 +53,7 @@
  */
 
 #include <common.h>
+#include <command.h>
 #include <console.h>
 #include <init.h>
 #include <driver.h>
@@ -324,7 +325,6 @@ static int beagle_devices_init(void)
 	/* WP is made high and WAIT1 active Low */
 	gpmc_generic_init(0x10);
 #endif
-	gpmc_generic_nand_devices_init(0, 16, 1);
 
 	armlinux_add_dram(&sdram_dev);
 	armlinux_set_bootparams((void *)0x80000100);
@@ -333,3 +333,29 @@ failed:
 	return ret;
 }
 device_initcall(beagle_devices_init);
+
+static int do_ecc(struct command *cmdtp, int argc, char *argv[])
+{
+	if (*argv[0] == 's') {
+		gpmc_generic_nand_devices_init(0, 16, 0);
+	} else {
+		gpmc_generic_nand_devices_init(0, 16, 1);
+	}
+	return 0;
+}
+
+static const __maybe_unused char cmd_ecc_help[] =
+"Usage: (s|h)whwcc <device>\n"
+"set software or hardware ecc for nand controller \n";
+
+BAREBOX_CMD_START(hwecc)
+        .cmd            = do_ecc,
+        .usage          = "enable HWECC support in NAND",
+        BAREBOX_CMD_HELP(cmd_ecc_help)
+BAREBOX_CMD_END
+
+BAREBOX_CMD_START(swecc)
+        .cmd            = do_ecc,
+        .usage          = "enable SWECC support in NAND",
+        BAREBOX_CMD_HELP(cmd_ecc_help)
+BAREBOX_CMD_END
-- 
1.7.1




More information about the barebox mailing list