mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-19 05:31:32 +00:00
MXC: Add large page oob layout for i.MX31 NAND controller.
Import the large page oob layout from Linux mxc_nand.c driver. The CONFIG_SYS_NAND_LARGEPAGE option is used to activate the large page oob layout. Run time detection is not supported as this moment. This has been tested on the i.MX31 PDK board with a large page NAND device. Signed-off-by: Magnus Lilja <lilja.magnus@gmail.com>
This commit is contained in:
parent
f6a9748e32
commit
c4832dffff
1 changed files with 12 additions and 0 deletions
|
@ -149,6 +149,13 @@ static struct nand_ecclayout nand_soft_eccoob = {
|
||||||
};
|
};
|
||||||
#endif
|
#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
|
#ifdef CONFIG_MX27
|
||||||
static int is_16bit_nand(void)
|
static int is_16bit_nand(void)
|
||||||
{
|
{
|
||||||
|
@ -902,7 +909,12 @@ int board_nand_init(struct nand_chip *this)
|
||||||
if (is_16bit_nand())
|
if (is_16bit_nand())
|
||||||
this->options |= NAND_BUSWIDTH_16;
|
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;
|
host->pagesize_2k = 0;
|
||||||
|
#endif
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue