On Tue, Jan 12, 2010 at 09:43:55PM -0700, John Rigby wrote:
>  struct fsl_nfc_regs {
> -     u32 main_area0[128]; /* @0x000 */
> -     u32 main_area1[128];
> -     u32 main_area2[128];
> -     u32 main_area3[128];
> -     u32 spare_area0[4];
> -     u32 spare_area1[4];
> -     u32 spare_area2[4];
> -     u32 spare_area3[4];
> -     u32 reserved1[64 - 16 + 64 * 5];
> -     u16 bufsiz; /* @ 0xe00 */
> +     u8 main_area[NAND_MXC_NR_BUFS][512];
> +     u8 spare_area[NAND_MXC_NR_BUFS][NAND_MXC_SPARE_BUF_SIZE];

You could do u32 ...[NAND_MXC_SPARE_BUF_SIZE / 4] to avoid the casts later
on...

> diff --git a/nand_spl/nand_boot_fsl_nfc.c b/nand_spl/nand_boot_fsl_nfc.c
> index a9df2a8..02d8330 100644
> --- a/nand_spl/nand_boot_fsl_nfc.c
> +++ b/nand_spl/nand_boot_fsl_nfc.c
> @@ -26,13 +26,17 @@
>  
>  #include <common.h>
>  #include <nand.h>
> +#ifdef CONFIG_MX31
>  #include <asm-arm/arch/mx31-regs.h>
> +#else
> +#include <asm-arm/arch/imx-regs.h>
> +#endif

Hmm, can't this be pushed into an arch header?

>  #include <asm/io.h>
>  #include <fsl_nfc.h>
>  
> -static struct fsl_nfc_regs *nfc;
> +struct fsl_nfc_regs *nfc;
>  
> -static void nfc_wait_ready(void)
> +void nfc_wait_ready(void)

Why non-static?

> @@ -65,12 +91,12 @@ static void nfc_nand_page_address(unsigned int 
> page_address)
>  {
>       unsigned int page_count;
>  
> -     writew(0x00, &nfc->flash_cmd);
> +     writew(0x00, &nfc->flash_add);
>       writew(NFC_ADDR, &nfc->nand_flash_config2);
>       nfc_wait_ready();
>  
> -     /* code only for 2kb flash */
> -     if (CONFIG_SYS_NAND_PAGE_SIZE == 0x800) {
> +     /* code only for large page flash */
> +     if (CONFIG_SYS_NAND_PAGE_SIZE > 512) {
>               writew(0x00, &nfc->flash_add);
>               writew(NFC_ADDR, &nfc->nand_flash_config2);
>               nfc_wait_ready();
> @@ -88,22 +114,38 @@ static void nfc_nand_page_address(unsigned int 
> page_address)
>                       page_count = page_count >> 8;
>               } while (page_count);
>       }
> +
> +     writew(0x00, &nfc->flash_add);
> +     writew(NFC_ADDR, &nfc->nand_flash_config2);
> +     nfc_wait_ready();

This (along with later bits) looks like it changes the behavior for existing
chips.  Have you tested it on a previously-supported chip?  Maybe elaborate
on the changes in the commit message.

-Scott
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to