diff options
Diffstat (limited to 'cpu/arm926ejs/davinci/nand.c')
| -rw-r--r-- | cpu/arm926ejs/davinci/nand.c | 19 | 
1 files changed, 14 insertions, 5 deletions
| diff --git a/cpu/arm926ejs/davinci/nand.c b/cpu/arm926ejs/davinci/nand.c index 6afd4d252..8fd784e79 100644 --- a/cpu/arm926ejs/davinci/nand.c +++ b/cpu/arm926ejs/davinci/nand.c @@ -89,18 +89,27 @@ static void nand_davinci_select_chip(struct mtd_info *mtd, int chip)  #ifdef CFG_NAND_HW_ECC  #ifdef CFG_NAND_LARGEPAGE -static struct nand_oobinfo davinci_nand_oobinfo = { +static struct nand_ecclayout davinci_nand_ecclayout = {  	.useecc = MTD_NANDECC_AUTOPLACE,  	.eccbytes = 12,  	.eccpos = {8, 9, 10, 24, 25, 26, 40, 41, 42, 56, 57, 58}, -	.oobfree = { {2, 6}, {12, 12}, {28, 12}, {44, 12}, {60, 4} } +	.oobfree = { +		{.offset = 2, .length = 6}, +		{.offset = 12, .length = 12}, +		{.offset = 28, .length = 12}, +		{.offset = 44, .length = 12}, +		{.offset = 60, .length = 4} +	}  };  #elif defined(CFG_NAND_SMALLPAGE) -static struct nand_oobinfo davinci_nand_oobinfo = { +static struct nand_ecclayout davinci_nand_ecclayout = {  	.useecc = MTD_NANDECC_AUTOPLACE,  	.eccbytes = 3,  	.eccpos = {0, 1, 2}, -	.oobfree = { {6, 2}, {8, 8} } +	.oobfree = { +		{.offset = 6, .length = 2}, +		{.offset = 8, .length = 8} +	}  };  #else  #error "Either CFG_NAND_LARGEPAGE or CFG_NAND_SMALLPAGE must be defined!" @@ -373,7 +382,7 @@ int board_nand_init(struct nand_chip *nand)  #else  #error "Either CFG_NAND_LARGEPAGE or CFG_NAND_SMALLPAGE must be defined!"  #endif -/*	nand->autooob	  = &davinci_nand_oobinfo; */ +	nand->ecc.layout  = &davinci_nand_ecclayout;  	nand->ecc.calculate = nand_davinci_calculate_ecc;  	nand->ecc.correct  = nand_davinci_correct_data;  	nand->ecc.hwctl  = nand_davinci_enable_hwecc; |