summaryrefslogtreecommitdiff
path: root/arch/powerpc/cpu/mpc85xx/cpu_init_nand.c
diff options
context:
space:
mode:
authorDipen Dudhat <Dipen.Dudhat@freescale.com>2011-03-22 09:27:39 +0530
committerKumar Gala <galak@kernel.crashing.org>2011-09-29 19:01:04 -0500
commit52f90dad60d2252ec34c208cae1100bc75201ec7 (patch)
treeac51b1ccc0fc541ee8ace1dfc6fe51f0dd8778ec /arch/powerpc/cpu/mpc85xx/cpu_init_nand.c
parent49249e137daeec4d51c99aa69a8459d2f11cd94d (diff)
downloadu-boot-imx-52f90dad60d2252ec34c208cae1100bc75201ec7.zip
u-boot-imx-52f90dad60d2252ec34c208cae1100bc75201ec7.tar.gz
u-boot-imx-52f90dad60d2252ec34c208cae1100bc75201ec7.tar.bz2
nand: Freescale Integrated Flash Controller NAND support
Add NAND support (including spl) on IFC, such as is found on the p1010. Note that using hardware ECC on IFC with small-page NAND (which is what comes on the p1010rdb reference board) means there will be insufficient OOB space for JFFS2, since IFC does not support 1-bit ECC. UBI should work, as it does not use OOB for anything but ECC. When hardware ECC is not enabled in CSOR, software ECC is now used. Signed-off-by: Dipen Dudhat <Dipen.Dudhat@freescale.com> [scottwood@freescale.com: ECC rework and misc fixes] Signed-off-by: Scott Wood <scottwood@freescale.com>
Diffstat (limited to 'arch/powerpc/cpu/mpc85xx/cpu_init_nand.c')
-rw-r--r--arch/powerpc/cpu/mpc85xx/cpu_init_nand.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/arch/powerpc/cpu/mpc85xx/cpu_init_nand.c b/arch/powerpc/cpu/mpc85xx/cpu_init_nand.c
index 796d398..6d01479 100644
--- a/arch/powerpc/cpu/mpc85xx/cpu_init_nand.c
+++ b/arch/powerpc/cpu/mpc85xx/cpu_init_nand.c
@@ -21,10 +21,12 @@
*/
#include <common.h>
+#include <asm/fsl_ifc.h>
#include <asm/io.h>
void cpu_init_f(void)
{
+#ifdef CONFIG_FSL_LBC
fsl_lbc_t *lbc = LBC_BASE_ADDR;
/*
@@ -39,6 +41,14 @@ void cpu_init_f(void)
#else
#error CONFIG_SYS_NAND_BR_PRELIM, CONFIG_SYS_NAND_OR_PRELIM must be defined
#endif
+#endif
+#ifdef CONFIG_FSL_IFC
+#if defined(CONFIG_SYS_CSPR0) && defined(CONFIG_SYS_CSOR0)
+ set_ifc_cspr(IFC_CS0, CONFIG_SYS_CSPR0);
+ set_ifc_amask(IFC_CS0, CONFIG_SYS_AMASK0);
+ set_ifc_csor(IFC_CS0, CONFIG_SYS_CSOR0);
+#endif
+#endif
#if defined(CONFIG_SYS_RAMBOOT) && defined(CONFIG_SYS_INIT_L2_ADDR)
ccsr_l2cache_t *l2cache = (void *)CONFIG_SYS_MPC85xx_L2_ADDR;