9
0
Fork 0

Refactor imx-NAND-init

Put board specific stuff to board-specific files.

Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
This commit is contained in:
Wolfram Sang 2009-06-04 10:31:14 +02:00
parent c83325ff72
commit bc4492252e
4 changed files with 27 additions and 9 deletions

View File

@ -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

View File

@ -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

View File

@ -1108,15 +1108,8 @@ void __nand_boot_init imx_nand_load_image(void *dest, int size, int pagesize,
struct imx_nand_host host;
u32 tmp, page, block;
PCCR1 |= PCCR1_NFC_BAUDEN;
switch ((GPCR & GPCR_BOOT_MASK) >> GPCR_BOOT_SHIFT) {
case GPCR_BOOT_8BIT_NAND_2k:
case GPCR_BOOT_16BIT_NAND_2k:
host.pagesize_2k = 1;
}
host.regs = (void __iomem *)IMX_NFC_BASE;
host.pagesize_2k = (pagesize == 2048);
send_cmd(&host, NAND_CMD_RESET);

View File

@ -152,6 +152,8 @@
#define CCMR_FPM (1 << 1)
#define CCMR_CKIH (2 << 1)
#define RCSR_NFMS (1 << 30)
/*
* ?????????????
*/
@ -166,6 +168,11 @@
#define IMX_ESD_BASE 0xb8001000
#include "esdctl.h"
/*
* NFC Registers
*/
#define IMX_NFC_BASE (0xb8000000)
/*
* Chip Select Registers
*/