diff options
author | Sudhakar Rajashekara <x0096290@linux-psp-server.(none)> | 2009-03-26 10:11:28 -0400 |
---|---|---|
committer | Justin Waters <justin.waters@timesys.com> | 2009-09-09 14:03:22 -0400 |
commit | d6292d79e4748444b44c3db12f8f45b29092592d (patch) | |
tree | 634b817aa33c57abc56294c7f2592040d8408fea /cpu/arm926ejs | |
parent | 472656e548484cdc0bb56c368efce43c97d0ef5f (diff) |
Fix for 1 Bit hardware ECC.
Signed-off-by: Sudhakar Rajashekara <x0096290@linux-psp-server.(none)>
Diffstat (limited to 'cpu/arm926ejs')
-rw-r--r-- | cpu/arm926ejs/da8xx/nand.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/cpu/arm926ejs/da8xx/nand.c b/cpu/arm926ejs/da8xx/nand.c index 014e2b0c113..c3a309c1b25 100644 --- a/cpu/arm926ejs/da8xx/nand.c +++ b/cpu/arm926ejs/da8xx/nand.c @@ -121,6 +121,7 @@ static void nand_davinci_enable_hwecc(struct mtd_info *mtd, int mode) { emifregs emif_addr; int dummy; + int region = 2; emif_addr = (emifregs)DAVINCI_ASYNC_EMIF_CNTRL_BASE; @@ -129,7 +130,7 @@ static void nand_davinci_enable_hwecc(struct mtd_info *mtd, int mode) dummy = emif_addr->NANDF3ECC; dummy = emif_addr->NANDF4ECC; - emif_addr->NANDFCR |= (1 << 8); + emif_addr->NANDFCR |= (1 << (8 + region - 1)) | (1 << (region - 1)); } static u_int32_t nand_davinci_readecc(struct mtd_info *mtd, u_int32_t region) @@ -177,7 +178,7 @@ static int nand_davinci_calculate_ecc(struct mtd_info *mtd, const u_char *dat, u region++; } #else - const int region = 1; + const int region = 2; tmp = nand_davinci_readecc(mtd, region); @@ -422,7 +423,7 @@ static void nand_flash_init(void) emif_regs->AB2CR = acfg2; emif_regs->AB3CR = acfg3; emif_regs->AB4CR = acfg4; - emif_regs->NANDFCR = 0x00000101; + emif_regs->NANDFCR = 0x00000202; } int board_nand_init(struct nand_chip *nand) |