@ -408,26 +408,29 @@ int gen_image_get_format (void *img_addr)
*/
ulong gen_get_image ( ulong img_addr )
{
ulong ram_addr , h_size , d_size ;
ulong ram_addr = img_addr ;
# ifdef CONFIG_HAS_DATAFLASH
ulong h_size , d_size ;
if ( addr_dataflash ( img_addr ) ) {
/* ger RAM address */
ram_addr = CFG_LOAD_ADDR ;
/* get header size */
h_size = image_get_header_size ( ) ;
# if defined(CONFIG_FIT)
if ( sizeof ( struct fdt_header ) > h_size )
h_size = sizeof ( struct fdt_header ) ;
# endif
# ifdef CONFIG_HAS_DATAFLASH
if ( addr_dataflash ( img_addr ) ) {
ram_addr = CFG_LOAD_ADDR ;
/* read in header */
debug ( " Reading image header from dataflash address "
" %08lx to RAM address %08lx \n " , img_addr , ram_addr ) ;
read_dataflash ( img_addr , h_size , ( char * ) ram_addr ) ;
} else
# endif
return img_addr ;
ram_addr = img_addr ;
read_dataflash ( img_addr , h_size , ( char * ) ram_addr ) ;
/* get data size */
switch ( gen_image_get_format ( ( void * ) ram_addr ) ) {
case IMAGE_FORMAT_LEGACY :
d_size = image_get_data_size ( ( image_header_t * ) ram_addr ) ;
@ -439,7 +442,6 @@ ulong gen_get_image (ulong img_addr)
d_size = fdt_totalsize ( ( void * ) ram_addr ) - h_size ;
debug ( " FIT/FDT format image found at 0x%08lx, size 0x%08lx \n " ,
ram_addr , d_size ) ;
break ;
# endif
default :
@ -447,16 +449,16 @@ ulong gen_get_image (ulong img_addr)
return ram_addr ;
}
# ifdef CONFIG_HAS_DATAFLASH
if ( addr_dataflash ( img_addr ) ) {
/* read in image data */
debug ( " Reading image remaining data from dataflash address "
" %08lx to RAM address %08lx \n " , img_addr + h_size ,
ram_addr + h_size ) ;
read_dataflash ( img_addr + h_size , d_size ,
( char * ) ( ram_addr + h_size ) ) ;
}
# endif
# endif /* CONFIG_HAS_DATAFLASH */
return ram_addr ;
}