#include "string.h" | |
#include "debug.h" | |
#include "util.h" | |
#include "flash_adaptor.h" | |
#include "load_fixed_images.h" | |
int read_fixed_image_from_bootarea(int part, unsigned int start, unsigned int size, unsigned char * buff) | |
{ | |
long long ret = 0; | |
int part_addr = 0; | |
dbg_printf(PRN_DBG,"flash: Load image header from boot partition %d.\n", part); | |
//switch to boot area | |
part_addr = switch_flash_part(part); | |
if(part_addr < 0) { | |
dbg_printf(PRN_ERR,"flash: error when switch to boot partion %d(err = %d).\n", part, part_addr); | |
return part_addr; | |
} | |
ret = read_flash((part_addr + start), size, buff); | |
if(ret){ | |
return FLASH_OP_ERR; | |
} | |
return switch_flash_part(0); | |
} | |
int read_image_header(int part, unsigned char* buff) | |
{ | |
int ret = 0; | |
ret = read_fixed_image_from_bootarea(part, IMG_HEADER_ADDR, IMG_HEADER_SIZE, buff); | |
if(ret){ | |
dbg_printf(PRN_ERR,"flash: read image header error\n"); | |
return FLASH_OP_ERR; | |
} | |
return ret; | |
} | |
#if defined(CONFIG_BCM) || defined(BCM_EN) || defined(CONFIG_UBOOT) | |
#else | |
int get_custkey(int part, unsigned char *buff) | |
{ | |
int ret = 0; | |
ret = read_fixed_image_from_bootarea(part, CUST_KEY_ADDR, CUST_KEY_SIZE, buff); | |
if(ret){ | |
dbg_printf(PRN_ERR,"flash: read custkey fail.\n"); | |
return FLASH_OP_ERR; | |
} | |
return ret; | |
} | |
int get_figo_fw(int part, unsigned char *buff) | |
{ | |
int ret = 0; | |
ret = read_fixed_image_from_bootarea(part, DRM_FIGO_ADDR, DRM_FIGO_SIZE, buff); | |
if(ret){ | |
dbg_printf(PRN_ERR,"flash: read figo fw fail.\n"); | |
return FLASH_OP_ERR; | |
} | |
return ret; | |
} | |
int get_ddr_scrambler_fw(int part, unsigned char *buff) | |
{ | |
int ret = 0; | |
ret = read_fixed_image_from_bootarea(part, DDR_SCRAMBLER_ADDR, DDR_SCRAMBLER_SIZE, buff); | |
if(ret){ | |
dbg_printf(PRN_ERR,"flash: read ddr scrambler fw fail.\n"); | |
return FLASH_OP_ERR; | |
} | |
return ret; | |
} | |
#endif | |
int get_miniloader(int part, unsigned char *buff) | |
{ | |
int ret = 0; | |
ret = read_fixed_image_from_bootarea(part, MINILOADER_ADDR, MINILOADER_SIZE, buff); | |
if(ret){ | |
dbg_printf(PRN_ERR,"flash: read miniloader fail.\n"); | |
return FLASH_OP_ERR; | |
} | |
return ret; | |
} | |
long long get_uboot_param(unsigned char *env_buff) | |
{ | |
int part_addr = 0; | |
//switch to boot area | |
part_addr = switch_flash_part(0); | |
//FIXME: define MACRO for address and size | |
return read_flash((part_addr + UBOOT_ENV_ADDR), UBOOT_ENV_SIZE , env_buff); | |
} |