diff options
author | Wolfram Sang <w.sang@pengutronix.de> | 2009-06-04 10:31:14 +0200 |
---|---|---|
committer | Wolfram Sang <w.sang@pengutronix.de> | 2009-06-04 10:31:14 +0200 |
commit | bc4492252e86b376aaf05a31713b3a3717aecb63 (patch) | |
tree | 22ae1e935ab289350d5d83e75ff15e39ba62d8e4 /board | |
parent | c83325ff725b73220f83078d169a54bc8cb75632 (diff) | |
download | barebox-bc4492252e86b376aaf05a31713b3a3717aecb63.tar.gz barebox-bc4492252e86b376aaf05a31713b3a3717aecb63.tar.xz |
Refactor imx-NAND-init
Put board specific stuff to board-specific files.
Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
Diffstat (limited to 'board')
-rw-r--r-- | board/pcm037/pcm037.c | 9 | ||||
-rw-r--r-- | board/pcm038/pcm038.c | 11 |
2 files changed, 19 insertions, 1 deletions
diff --git a/board/pcm037/pcm037.c b/board/pcm037/pcm037.c index a303e506e9..2934a7712b 100644 --- a/board/pcm037/pcm037.c +++ b/board/pcm037/pcm037.c @@ -293,3 +293,12 @@ static int imx31_console_init(void) } console_initcall(imx31_console_init); + +#ifdef CONFIG_NAND_IMX_BOOT +void __bare_init nand_boot(void) +{ + int pagesize = (readl(IMX_CCM_BASE + CCM_RCSR) & RCSR_NFMS) ? 2048 : 512; + + imx_nand_load_image((void *)TEXT_BASE, 256 * 1024, pagesize, 16384); +} +#endif diff --git a/board/pcm038/pcm038.c b/board/pcm038/pcm038.c index e3db5d1311..2270be7b62 100644 --- a/board/pcm038/pcm038.c +++ b/board/pcm038/pcm038.c @@ -320,7 +320,16 @@ late_initcall(pcm038_power_init); #ifdef CONFIG_NAND_IMX_BOOT void __bare_init nand_boot(void) { - imx_nand_load_image((void *)TEXT_BASE, 256 * 1024, 512, 16384); + int pagesize = 512; + PCCR1 |= PCCR1_NFC_BAUDEN; /* FIXME: Really needed? Probably not */ + + switch ((GPCR & GPCR_BOOT_MASK) >> GPCR_BOOT_SHIFT) { + case GPCR_BOOT_8BIT_NAND_2k: + case GPCR_BOOT_16BIT_NAND_2k: + pagesize = 2048; + } + + imx_nand_load_image((void *)TEXT_BASE, 256 * 1024, pagesize, 16384); } #endif |