summaryrefslogtreecommitdiff
path: root/nand_spl
diff options
context:
space:
mode:
authorBenoît Thébaudeau <benoit.thebaudeau@advansee.com>2012-08-13 22:49:15 +0200
committerScott Wood <scottwood@freescale.com>2012-09-17 19:42:46 -0500
commit0eee20fc1bb16f484771d626e1d7bde7d770a01c (patch)
tree99b46087d962295834dcd88dc9a4bc4fe306fb03 /nand_spl
parent5d818a2821c3c7cf350ee4a2c67a11f8e1039af0 (diff)
downloadu-boot-imx-0eee20fc1bb16f484771d626e1d7bde7d770a01c.zip
u-boot-imx-0eee20fc1bb16f484771d626e1d7bde7d770a01c.tar.gz
u-boot-imx-0eee20fc1bb16f484771d626e1d7bde7d770a01c.tar.bz2
spl mxc nand: Remove duplicated code
The ECC_EN and INT_MSK bits of CONFIG1 are not volatile, so it is sufficient to set them once in nfc_nand_init(). Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com> Cc: Scott Wood <scottwood@freescale.com> Cc: Stefano Babic <sbabic@denx.de> Signed-off-by: Scott Wood <scottwood@freescale.com>
Diffstat (limited to 'nand_spl')
-rw-r--r--nand_spl/nand_boot_fsl_nfc.c10
1 files changed, 2 insertions, 8 deletions
diff --git a/nand_spl/nand_boot_fsl_nfc.c b/nand_spl/nand_boot_fsl_nfc.c
index b98fe41..059969b 100644
--- a/nand_spl/nand_boot_fsl_nfc.c
+++ b/nand_spl/nand_boot_fsl_nfc.c
@@ -57,7 +57,7 @@ static void nfc_nand_init(void)
writew(0x2, &nfc->config);
/* hardware ECC checking and correct */
- config1 = readw(&nfc->config1) | NFC_ECC_EN | NFC_FP_INT;
+ config1 = readw(&nfc->config1) | NFC_ECC_EN | NFC_INT_MSK | NFC_FP_INT;
/*
* if spare size is larger that 16 bytes per 512 byte hunk
* then use 8 symbol correction instead of 4
@@ -72,7 +72,7 @@ static void nfc_nand_init(void)
writew(0x2, &nfc->config);
/* hardware ECC checking and correct */
- writew(NFC_ECC_EN, &nfc->config1);
+ writew(NFC_ECC_EN | NFC_INT_MSK, &nfc->config1);
#endif
}
@@ -116,13 +116,10 @@ static void nfc_nand_page_address(unsigned int page_address)
static void nfc_nand_data_output(void)
{
- int config1 = readw(&nfc->config1);
#ifdef NAND_MXC_2K_MULTI_CYCLE
int i;
#endif
- config1 |= NFC_ECC_EN | NFC_INT_MSK;
- writew(config1, &nfc->config1);
writew(0, &nfc->buf_addr);
writew(NFC_OUTPUT, &nfc->config2);
nfc_wait_ready();
@@ -132,9 +129,6 @@ static void nfc_nand_data_output(void)
* for pages larger than 512 bytes.
*/
for (i = 1; i < CONFIG_SYS_NAND_PAGE_SIZE / 512; i++) {
- config1 = readw(&nfc->config1);
- config1 |= NFC_ECC_EN | NFC_INT_MSK;
- writew(config1, &nfc->config1);
writew(i, &nfc->buf_addr);
writew(NFC_OUTPUT, &nfc->config2);
nfc_wait_ready();