@ -85,8 +85,15 @@ static int fit_calc_size(struct image_tool_params *params)
size = imagetool_get_filesize ( params , params - > datafile ) ;
size = imagetool_get_filesize ( params , params - > datafile ) ;
if ( size < 0 )
if ( size < 0 )
return - 1 ;
return - 1 ;
total_size = size ;
total_size = size ;
if ( params - > fit_ramdisk ) {
size = imagetool_get_filesize ( params , params - > fit_ramdisk ) ;
if ( size < 0 )
return - 1 ;
total_size + = size ;
}
for ( cont = params - > content_head ; cont ; cont = cont - > next ) {
for ( cont = params - > content_head ; cont ; cont = cont - > next ) {
size = imagetool_get_filesize ( params , cont - > fname ) ;
size = imagetool_get_filesize ( params , cont - > fname ) ;
if ( size < 0 )
if ( size < 0 )
@ -233,6 +240,20 @@ static int fit_write_images(struct image_tool_params *params, char *fdt)
fdt_end_node ( fdt ) ;
fdt_end_node ( fdt ) ;
}
}
/* And a ramdisk file if available */
if ( params - > fit_ramdisk ) {
fdt_begin_node ( fdt , FIT_RAMDISK_PROP " @1 " ) ;
fdt_property_string ( fdt , " type " , FIT_RAMDISK_PROP ) ;
fdt_property_string ( fdt , " os " , genimg_get_os_short_name ( params - > os ) ) ;
ret = fdt_property_file ( params , fdt , " data " , params - > fit_ramdisk ) ;
if ( ret )
return ret ;
fdt_end_node ( fdt ) ;
}
fdt_end_node ( fdt ) ;
fdt_end_node ( fdt ) ;
return 0 ;
return 0 ;
@ -272,15 +293,25 @@ static void fit_write_configs(struct image_tool_params *params, char *fdt)
snprintf ( str , sizeof ( str ) , " %s@1 " , typename ) ;
snprintf ( str , sizeof ( str ) , " %s@1 " , typename ) ;
fdt_property_string ( fdt , typename , str ) ;
fdt_property_string ( fdt , typename , str ) ;
if ( params - > fit_ramdisk )
fdt_property_string ( fdt , FIT_RAMDISK_PROP ,
FIT_RAMDISK_PROP " @1 " ) ;
snprintf ( str , sizeof ( str ) , FIT_FDT_PROP " @%d " , upto ) ;
snprintf ( str , sizeof ( str ) , FIT_FDT_PROP " @%d " , upto ) ;
fdt_property_string ( fdt , FIT_FDT_PROP , str ) ;
fdt_property_string ( fdt , FIT_FDT_PROP , str ) ;
fdt_end_node ( fdt ) ;
fdt_end_node ( fdt ) ;
}
}
if ( ! upto ) {
if ( ! upto ) {
fdt_begin_node ( fdt , " conf@1 " ) ;
fdt_begin_node ( fdt , " conf@1 " ) ;
typename = genimg_get_type_short_name ( params - > fit_image_type ) ;
typename = genimg_get_type_short_name ( params - > fit_image_type ) ;
snprintf ( str , sizeof ( str ) , " %s@1 " , typename ) ;
snprintf ( str , sizeof ( str ) , " %s@1 " , typename ) ;
fdt_property_string ( fdt , typename , str ) ;
fdt_property_string ( fdt , typename , str ) ;
if ( params - > fit_ramdisk )
fdt_property_string ( fdt , FIT_RAMDISK_PROP ,
FIT_RAMDISK_PROP " @1 " ) ;
fdt_end_node ( fdt ) ;
fdt_end_node ( fdt ) ;
}
}