summaryrefslogtreecommitdiffstats
path: root/board
diff options
context:
space:
mode:
authorWolfram Sang <w.sang@pengutronix.de>2009-06-04 10:31:14 +0200
committerWolfram Sang <w.sang@pengutronix.de>2009-06-04 10:31:14 +0200
commitbc4492252e86b376aaf05a31713b3a3717aecb63 (patch)
tree22ae1e935ab289350d5d83e75ff15e39ba62d8e4 /board
parentc83325ff725b73220f83078d169a54bc8cb75632 (diff)
downloadbarebox-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.c9
-rw-r--r--board/pcm038/pcm038.c11
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