Dear Guennadi Liakhovetski, In message <pine.lnx.4.64.0902021725100.4...@axis700.grange> you wrote: > > -#ifdef ENV_IS_EMBEDDED > +#if defined(ENV_IS_EMBEDDED) > extern uchar environment[]; > env_t *env_ptr = (env_t *)(&environment[0]); > +#elif defined(CFG_ENV_IS_APPENDED)
What makes you think an "appended" environment is so special that it is worth a separate #ifdef here? What about a prepended environment? Or one two sectors apart? > -#if defined(ENV_IS_EMBEDDED) > - size_t total; > +#if defined(ENV_IS_EMBEDDED) || defined(CFG_ENV_IS_APPENDED) > int crc1_ok = 0, crc2_ok = 0; > - env_t *tmp_env1, *tmp_env2; > + env_t *tmp_env1; > Note that there is a fundamental difference between embedded and non-embedded (in whatever which way) environments, but I can see no significant difference between an "appended" or a "prepended" or otherwise separate environment. Maybe you try to explain what you have in mind with this special-casing here? And I don't understand the rest of your implementation either. Please explain... > diff --git a/include/configs/smdk6400.h b/include/configs/smdk6400.h > index 1ee4191..3acf7cd 100644 > --- a/include/configs/smdk6400.h > +++ b/include/configs/smdk6400.h > @@ -223,6 +224,8 @@ > #define CFG_UBOOT_BASE (CFG_MAPPED_RAM_BASE + 0x07e00000) > > #define CFG_ENV_OFFSET 0x0040000 > +/* Leave enough space for bss, currently __bss_end == 0x57e74800 */ > +#define CFG_NAND_ENV_DST (CFG_UBOOT_BASE + 0x80000) ???? What's that? What has BSS to do with the environment storage ??? > #if !defined(CONFIG_ENABLE_MMU) > diff --git a/lib_arm/board.c b/lib_arm/board.c > index a093860..2dadfce 100644 > --- a/lib_arm/board.c > +++ b/lib_arm/board.c > @@ -282,7 +282,7 @@ init_fnc_t *init_sequence[] = { > board_init, /* basic board dependent setup */ > interrupt_init, /* set up exceptions */ > env_init, /* initialize environment */ > - init_baudrate, /* initialze baudrate settings */ > + init_baudrate, /* initialize baudrate settings */ > serial_init, /* serial communications setup */ > console_init_f, /* stage 1 init of console */ > display_banner, /* say that we are here */ Please never, never ever mix unrelated changes into one patch. Always keep patches orthogonal. > diff --git a/nand_spl/nand_boot.c b/nand_spl/nand_boot.c > index 16d128f..1fe10d2 100644 > --- a/nand_spl/nand_boot.c > +++ b/nand_spl/nand_boot.c > @@ -248,6 +248,11 @@ void nand_boot(void) > ret = nand_load(&nand_info, CFG_NAND_U_BOOT_OFFS, CFG_NAND_U_BOOT_SIZE, > (uchar *)CFG_NAND_U_BOOT_DST); > > +#ifdef CFG_ENV_IS_APPENDED > + nand_load(&nand_info, CFG_ENV_OFFSET, CFG_ENV_SIZE, > + (uchar *)CFG_NAND_ENV_DST); > +#endif What is so special here with "appended" compared to any other location of the environment in the NAND? 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: w...@denx.de ...though his invention worked superbly -- his theory was a crock of sewage from beginning to end. - Vernor Vinge, "The Peace War" _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot