[U-Boot] [PATCH v3 2/6] MX31: Add NAND SPL for i.MX31.

Wolfgang Denk wd at denx.de
Tue Jun 9 22:26:05 CEST 2009


Dear Magnus Lilja,

In message <15c41c2e93fb138829871cd901fc20cda3b433d8.1244572159.git.lilja.magnus at gmail.com> you wrote:
> This patch adds the NAND SPL framework needed to boot i.MX31 boards
> from NAND.
> 
> It has been tested on a i.MX31 PDK board with large page NAND. Small
> page NANDs should work as well, but this has not been tested.
> 
> Note: The i.MX31 NFC uses a non-standard layout for large page NANDs,
> whether this is compatible with a particular setup depends on how
> the NAND device is programmed by the flash programmer (e.g. JTAG
> debugger).
> 
> The patch is based on the work by Maxim Artamonov.
> 
> Signed-off-by: Maxim Artamonov <scn1874 at yandex.ru>
> Signed-off-by: Magnus Lilja <lilja.magnus at gmail.com>
...
> +static int is_badblock(int pagenumber)
> +{
> +	int page = pagenumber;
> +	int maxpagecheck = CONFIG_SYS_NAND_PAGE_SIZE == 0x800 ? 2 : 1;
> +	u32 badblock;
> +	u32 *src;
> +
> +	// todo shall we check both or only one of them?

Please do not use C++ comments.

> +void nand_boot(void)
> +{
> +	__attribute__((noreturn)) void (*uboot)(void);
> +
> +	nfc = (void *)NFC_BASE_ADDR;
> +
> +	/*
> +	 * CONFIG_SYS_NAND_U_BOOT_OFFS and CONFIG_SYS_NAND_U_BOOT_SIZE must
> +	 * be aligned to full pages
> +	 */
> +	if (!nand_load(CONFIG_SYS_NAND_U_BOOT_OFFS, CONFIG_SYS_NAND_U_BOOT_SIZE,
> +		       (uchar *)CONFIG_SYS_NAND_U_BOOT_DST)) {
> +		/* Copy from NAND successful, start U-boot */
> +		uboot = (void *)CONFIG_SYS_NAND_U_BOOT_START;
> +		uboot();
> +	} else {
> +		/* Unrecoverable error when copying from NAND */
> +		while (1) {
> +			/* Loop forever */
> +		}

No braces needed for single line constructs. And why don't you simply
call hang() here (which might be  doing  additional  things  on  some
boards. like flashing some LED or so)?

> +}
> +
> +/*
> + * Called from start.S in case of an exception.
> + */
> +void hang(void)
> +{
> +	while (1) {
> +		/* Loop forever */
> +	}

No braces needed for single line constructs. And I think some (older)
compilers might complain about a missing ';'.

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Documentation is like sex: when it is good, it is  very,  very  good;
and when it is bad, it is better than nothing.         - Dick Brandon


More information about the U-Boot mailing list