[U-Boot-Users] Question about CFG_ENV_ADDR during RAMBOOT
    Jerry Van Baren 
    gerald.vanbaren at smiths-aerospace.com
       
    Tue May 22 22:53:57 CEST 2007
    
    
  
Timur Tabi wrote:
> Doesn't anyone have an answer to this question?
> 
> Timur Tabi wrote:
>> On a lot of boards, if CFG_RAMBOOT is defined, the following code is compiled:
>>
>>    #define CFG_ENV_ADDR		(CFG_MONITOR_BASE - 0x1000)
>>    #define CFG_ENV_SIZE		0x2000
>>
>> This means that the environment is stored 0x1000 bytes before the start of u-boot.bin. 
>> Doesn't that mean that if the environment is larger than 0x1000 bytes, that it will 
>> overwrite the beginning of u-boot.bin whenever someone does a saveenv?
Looks like it to me. Looks like somebody increased the size without 
fixing the address offset to match.
Looks to me like it would be better defined:
#define CFG_ENV_SIZE		0x2000
#define CFG_ENV_ADDR		(CFG_MONITOR_BASE - CFG_ENV_SIZE)
The saving grace here is probably:
* For a RAMBOOT image, there isn't any incentive to save lots of stuff 
in the env since it (generally) disappears on a reboot and definitely 
disappears on a power cycle.
* On the PowerPC, at least, the first 12K of u-boot.bin is the HRCW and 
vectors which aren't used by a RAMBOOT image so overwriting them is a 
non-fatal error.
* 4K is fairly large for an env, so people probably don't run into the 
problem.
Best regards,
gvb
    
    
More information about the U-Boot
mailing list