[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