[U-Boot] Getting "Unable to save the rest of sector (196608)" when I turn on Redundant env with CFG_ENV_ADDR_REDUND

Brian Hutchinson b.hutchman at gmail.com
Wed Apr 7 23:07:28 CEST 2010


> #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

I guess I don't understand at all why flash_addr_new + CFG_ENV_SIZE is
getting saved off when I want my redundant environment to start at
flash_addr_new.

So, I went back to the other test case I'm trying where my
CFG_ENV_SIZE is equal to flash sector size (256k in my case) which
makes the redundant environment work but when I try to NFS boot my
board I get:

=> run fixed_nfs
Ethernet PHY auto-negotiation complete
Ethernet link: is up
Ethernet link: Full-duplex mode
Ethernet link: 100 Mbit/s
Using pc20x_emac device
TFTP from server 192.168.0.2; our IP address is 192.168.0.5
Filename 'uImage-cpe20x'.
Load address: 0x200000
Loading: #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         ########
done
Bytes transferred = 1700872 (19f408 hex)
## Booting image at 00200000 ...
   Image Name:   Linux-2.6.28-picochip-3.2.0
   Created:      2010-04-05  19:24:18 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1700808 Bytes =  1.6 MB
   Load Address: 00008000
   Entry Point:  00008000
   Verifying Checksum ... OK

And then everything hangs.  Should I play with moving around TEXT_BASE
(0x05000000), linker files?  I'm kind of stumped at the moment. :(

Regards,

Brian


More information about the U-Boot mailing list