Applied to: git://git.denx.de/u-boot-nios next
Thanks, --Scott Thomas Chou wrote: > 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 <tho...@wytron.com.tw> > --- > v2 use weak func to reset flash, as Wolfgang suggested. > reset the chip where env is located. > > board/altera/nios2-generic/nios2-generic.c | 16 ++++++++++++++++ > 1 files changed, 16 insertions(+), 0 deletions(-) > > diff --git a/board/altera/nios2-generic/nios2-generic.c > b/board/altera/nios2-generic/nios2-generic.c > index 89848cf..220a4c4 100644 > --- a/board/altera/nios2-generic/nios2-generic.c > +++ b/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; > } > _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot