[U-Boot] [PATCH][RESEND]: Fix for U-Boot build failure with CONFIG_SYS_NO_FLASH defined for qemu-mips.

Shinya Kuribayashi skuribay at pobox.com
Sun Dec 20 04:53:23 CET 2009


Hi,

On 12/19/09 3:57 PM, Himanshu Chauhan wrote:
> U-Boot hangs with qemu-system-mips with ##unknown flash error.

Do you have any idea what's the root cause of that unknown flash
error?  Is this U-Boot CFI driver issue, or Qemu-side problem?

Using CONFIG_SYS_NO_FLASH is a quick, enough workaround for your
trial, but does not fix anything.  Could you sort out the issue?
I don't think I can help regarding debugging Qemu (sorry!), but
u-boot/doc/README.qemu_mips and U-Boot/Qemu community will help.

> Disabling flash using CONFIG_SYS_NO_FLASH breaks the build.
> This patch fixes the issue. Don't know if its okay.
>
> Signed-off-by: Himanshu Chauhan<himanshu at symmetricore.com>

Heh, let's use git-format-patch when preparing patches.

$ git format-patch HEAD^..
$ git format-patch --no-thread HEAD^^..
$ mkdir foo && git format-patch -o foo/ HEAD~3..
and so on.

> diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c
> index efd6aec..5bd3af0 100644
> --- a/common/cmd_bootm.c
> +++ b/common/cmd_bootm.c
> @@ -76,7 +76,7 @@ extern void bz_internal_error(int);
>   static int image_info (unsigned long addr);
>   #endif
>
> -#if defined(CONFIG_CMD_IMLS)
> +#if !defined(CONFIG_SYS_NO_FLASH)&&  defined(CONFIG_CMD_IMLS)
>   #include<flash.h>
>   extern flash_info_t flash_info[]; /* info for FLASH chips */
>   static int do_imls (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
> @@ -1153,7 +1153,7 @@ U_BOOT_CMD(
>   /*******************************************************************/
>   /* imls - list all images found in flash */
>   /*******************************************************************/
> -#if defined(CONFIG_CMD_IMLS)
> +#if !defined(CONFIG_SYS_NO_FLASH)&&  defined(CONFIG_CMD_IMLS)
>   int do_imls (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
>   {
>   	flash_info_t *info;

Disabling IMLS command in configs/qemu_mips.h?

> diff --git a/drivers/mtd/cfi_flash.c b/drivers/mtd/cfi_flash.c
> index 24eb33f..06c7271 100644
> --- a/drivers/mtd/cfi_flash.c
> +++ b/drivers/mtd/cfi_flash.c
> @@ -41,6 +41,7 @@
>   #include<environment.h>
>   #include<mtd/cfi_flash.h>
>
> +#ifndef CONFIG_SYS_NO_FLASH
>   /*
>    * This file implements a Common Flash Interface (CFI) driver for
>    * U-Boot.
> @@ -2020,3 +2021,5 @@ unsigned long flash_init (void)
>
>   	return (size);
>   }
> +
> +#endif

Removing CONFIG_CFI_DRIVER from configs/qemu_mips.h?

> diff --git a/include/configs/qemu-mips.h b/include/configs/qemu-mips.h
> index cbacdf9..49a1a1c 100644
> --- a/include/configs/qemu-mips.h
> +++ b/include/configs/qemu-mips.h
> :q
> @@ -142,6 +142,7 @@
>   #define CONFIG_SYS_INIT_SP_OFFSET	0x400000
>
>   /* We boot from this flash, selected with dip switch */
> +#define CONFIG_SYS_NO_FLASH
>   #define CONFIG_SYS_FLASH_BASE		0xbfc00000
>   #define CONFIG_SYS_MAX_FLASH_BANKS	1
>   #define CONFIG_SYS_MAX_FLASH_SECT	128
> @@ -149,7 +150,8 @@
>   #define CONFIG_FLASH_CFI_DRIVER	1
>   #define CONFIG_SYS_FLASH_USE_BUFFER_WRITE	1
>
> -#define CONFIG_ENV_IS_IN_FLASH	1
> +#define CONFIG_ENV_IS_IN_FLASH	0
> +#define CONFIG_ENV_IS_NOWHERE
>   #define CONFIG_ENV_ADDR		(CONFIG_SYS_FLASH_BASE + CONFIG_SYS_MONITOR_LEN)
>
>   /* Address and size of Primary Environment Sector */

[...]

> diff --git a/include/mtd/cfi_flash.h b/include/mtd/cfi_flash.h
> index 2aa6911..2229ddf 100644
> --- a/include/mtd/cfi_flash.h
> +++ b/include/mtd/cfi_flash.h
> @@ -151,7 +151,8 @@ struct cfi_pri_hdr {
>   	u8	minor_version;
>   } __attribute__((packed));
>
> -void flash_write_cmd(flash_info_t * info, flash_sect_t sect,
> -		     uint offset, u32 cmd);
> +#ifndef CONFIG_SYS_NO_FLASH
> +void flash_write_cmd(flash_info_t * info, flash_sect_t sect, uint offset, u32 cmd);
> +#endif
>
>   #endif /* __CFI_FLASH_H__ */

Removing CONFIG_CFI_DRIVER from configs/qemu_mips.h?

Anyway, I'd like to leave this issue as-is for now, and look
forward to the read bug fix.

   Shinya


More information about the U-Boot mailing list