[U-Boot] [PATCH] configs: ti: armv7: Fixes bug in fit_loadaddr for ramfs boot

Andrew F. Davis afd at ti.com
Tue Jul 18 15:10:15 UTC 2017


On 07/18/2017 07:59 AM, Tom Rini wrote:
> On Mon, Jul 17, 2017 at 01:01:36PM -0500, Andrew F. Davis wrote:
>> From: Madan Srinivas <madans at ti.com>
>>
>> The load address of ramdisk, rdaddr is 0x88080000 and fit_loadaddr
>> is defined as 0x88000000. This leaves only 512Kbytes for the
>> fit image. When the FIT images are larger than this, it will
>> overwite the ramdisk and cause the boot to fail.
>>
>> For eg, The K2 HS fit images are a few MB and end up overwriting
>> the ramdsk. This patch moves the fit_loadaddr to 0x87000000,
>> leaving a 16MB window for the fit image. This memory can be
>> reclaimed once the kernel starts running.
>>
>> Signed-off-by: Madan Srinivas <madans at ti.com>
>> ---
>>  include/configs/ti_armv7_common.h | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/include/configs/ti_armv7_common.h b/include/configs/ti_armv7_common.h
>> index a4676d3a7f..16ea22857f 100644
>> --- a/include/configs/ti_armv7_common.h
>> +++ b/include/configs/ti_armv7_common.h
>> @@ -53,7 +53,7 @@
>>  
>>  #define DEFAULT_FIT_TI_ARGS \
>>  	"boot_fit=0\0" \
>> -	"fit_loadaddr=0x88000000\0" \
>> +	"fit_loadaddr=0x87000000\0" \
>>  	"fit_bootfile=fitImage\0" \
>>  	"update_to_fit=setenv loadaddr ${fit_loadaddr}; setenv bootfile ${fit_bootfile}\0" \
>>  	"loadfit=run args_mmc; bootm ${loadaddr}#${fdtfile};\0" \
> 
> OK, why is fit_loadaddr different from loadaddr?
> 

Are you asking why they are different addresses? They need to be or the
kernel will be unpacked from the FIT onto the FIT image (I think).

If you are asking why not use the variable 'fit_loadaddr' for all FIT
loading activities it is because we use the same commands as loading
other images, after 'update_to_fit' is run, any command that loads
'bootfile' to 'loadaddr' will load our FIT image correctly for us.

Andrew


More information about the U-Boot mailing list