nios2: reset cfi flash before reading env

Flash might be in unknown state when u-boot is started with jtag.
And got wrong env data. So reset it in board early init.

We cannot use generic cfi flash routines, because flash_init() is
not run yet.

Signed-off-by: Thomas Chou <thomas@wytron.com.tw>
master
Thomas Chou 14 years ago committed by Scott McNutt
parent 4db2fa7f94
commit 030103d780
  1. 16
      board/altera/nios2-generic/nios2-generic.c

@ -24,12 +24,28 @@
#include <common.h>
#include <netdev.h>
#include <mtd/cfi_flash.h>
#include <asm/io.h>
void text_base_hook(void); /* nop hook for text_base.S */
#if defined(CONFIG_ENV_IS_IN_FLASH) && defined(CONFIG_ENV_ADDR)
static void __early_flash_cmd_reset(void)
{
/* reset flash before we read env */
writeb(AMD_CMD_RESET, CONFIG_ENV_ADDR);
writeb(FLASH_CMD_RESET, CONFIG_ENV_ADDR);
}
void early_flash_cmd_reset(void)
__attribute__((weak,alias("__early_flash_cmd_reset")));
#endif
int board_early_init_f(void)
{
text_base_hook();
#if defined(CONFIG_ENV_IS_IN_FLASH) && defined(CONFIG_ENV_ADDR)
early_flash_cmd_reset();
#endif
return 0;
}

Loading…
Cancel
Save