diff options
Diffstat (limited to 'drivers/mtd/nand/mxc_nand.c')
| -rw-r--r-- | drivers/mtd/nand/mxc_nand.c | 12 | 
1 files changed, 12 insertions, 0 deletions
| diff --git a/drivers/mtd/nand/mxc_nand.c b/drivers/mtd/nand/mxc_nand.c index fc111b5bb..b2b612e3a 100644 --- a/drivers/mtd/nand/mxc_nand.c +++ b/drivers/mtd/nand/mxc_nand.c @@ -149,6 +149,13 @@ static struct nand_ecclayout nand_soft_eccoob = {  };  #endif +static struct nand_ecclayout nand_hw_eccoob_largepage = { +	.eccbytes = 20, +	.eccpos = {6, 7, 8, 9, 10, 22, 23, 24, 25, 26, +		   38, 39, 40, 41, 42, 54, 55, 56, 57, 58}, +	.oobfree = {{2, 4}, {11, 10}, {27, 10}, {43, 10}, {59, 5}, } +}; +  #ifdef CONFIG_MX27  static int is_16bit_nand(void)  { @@ -902,7 +909,12 @@ int board_nand_init(struct nand_chip *this)  	if (is_16bit_nand())  		this->options |= NAND_BUSWIDTH_16; +#ifdef CONFIG_SYS_NAND_LARGEPAGE +	host->pagesize_2k = 1; +	this->ecc.layout = &nand_hw_eccoob_largepage; +#else  	host->pagesize_2k = 0; +#endif  	return err;  } |