Hi, I'm using u-boot 1.1.6 and have been using a single 256k flash sector for the environment. I want to use the redundant env. feature so I changed my config to:
#define CFG_ENV_IS_IN_FLASH 1 /* Environment variables stored in Flash memory */ #define CFG_ENV_ADDR (PC20X_BOOTABLE_FLASH_BASE+FLASH_SECTOR_SIZE) #define CFG_ENV_SECT_SIZE FLASH_SECTOR_SIZE /* One flash sector for environment info */ #define CFG_ENV_SIZE 0x10000 /* But 64K is sufficient */ //#define CFG_ENV_SIZE CFG_ENV_SECT_SIZE /* the whole sector */ /* Redundant environment */ #define CFG_ENV_ADDR_REDUND (CFG_ENV_ADDR + CFG_ENV_SECT_SIZE) #define CFG_ENV_SIZE_REDUND (CFG_ENV_SIZE) #define CONFIG_ENV_OVERWRITE /* Turn off wite protection for vendor parameters */ When I use u-boot built with a CFG_ENV_SIZE of 0x10000 (what was working before I started) and enable CFG_ENV_ADDR_REDUND .... I get the following when trying to saveenv: => saveenv Saving Environment to Flash... Un-Protected 1 sectors Un-Protected 1 sectors Unable to save the rest of sector (196608) Protected 1 sectors Protected 1 sectors My physical NOR flash is setup as: 0x20000000 = u-boot 0x20040000 = u-boot env. (the original env that works if I don't have redund turned on) 0x20080000 = u-boot redund env. (what I added) I'm not certain what the problem is. I'm getting to the code in common/env_flash.c that has: #if CFG_ENV_SECT_SIZE > CFG_ENV_SIZE up_data = (end_addr_new + 1 - ((long)flash_addr_new + CFG_ENV_SIZE)); debug ("Data to save 0x%x\n", up_data); if (up_data) { if ((saved_data = malloc(up_data)) == NULL) { printf("Unable to save the rest of sector (%ld)\n", up_data); goto Done; } memcpy(saved_data, (void *)((long)flash_addr_new + CFG_ENV_SIZE), up_data); debug ("Data (start 0x%x, len 0x%x) saved at 0x%x\n", (long)flash_addr_new + CFG_ENV_SIZE, up_data, saved_data); } #endif ... which to my understanding is intended to allow you to save RAM by using a env. smaller than your sector size which is my case. I've also tried to set CFG_ENV_SIZE to be the flash sector size which gets me over the above "Unable to save the rest of sector" problem but I suspect that I'm having RAM issues as I only have 128M RAM and am trying to use two environments of 256k each and the problem I'm having then becomes when I try to nfs boot my board .... it just hangs. Any ideas on what I should check? The "Unable to save the rest of sector (196608)" is kind of strange as 196608 in hex is 0x30000 which is the sector u-boot lives in! Regards, Brian _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot