提交 c4832dff 编写于 作者: M Magnus Lilja 提交者: Scott Wood

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: NMagnus Lilja <lilja.magnus@gmail.com>
上级 f6a9748e
...@@ -149,6 +149,13 @@ static struct nand_ecclayout nand_soft_eccoob = { ...@@ -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) ...@@ -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;
} }
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册