1
0
Fork 0

Pointers in ESBC header made 32 bit

For the Chain of Trust, the esbc_validate command supports
32 bit fields for location of the image. In the header structure
definition, these were declared as pointers which made them
64 bit on a 64 bit core.

Signed-off-by: Aneesh Bansal <aneesh.bansal@freescale.com>
Reviewed-by: York Sun <yorksun@freescale.com>
utp
Aneesh Bansal 2015-09-17 16:16:34 +05:30 committed by York Sun
parent 0cbba8e953
commit 7bcb0eb285
2 changed files with 17 additions and 17 deletions

View File

@ -63,12 +63,12 @@ static u32 check_ie(struct fsl_secboot_img_priv *img)
* address
*/
#if defined(CONFIG_MPC85xx)
int get_csf_base_addr(ulong *csf_addr, ulong *flash_base_addr)
int get_csf_base_addr(u32 *csf_addr, u32 *flash_base_addr)
{
struct ccsr_gur __iomem *gur = (void *)(CONFIG_SYS_MPC85xx_GUTS_ADDR);
u32 csf_hdr_addr = in_be32(&gur->scratchrw[0]);
u32 csf_flash_offset = csf_hdr_addr & ~(CONFIG_SYS_PBI_FLASH_BASE);
ulong flash_addr, addr;
u32 flash_addr, addr;
int found = 0;
int i = 0;
@ -76,7 +76,7 @@ int get_csf_base_addr(ulong *csf_addr, ulong *flash_base_addr)
flash_addr = flash_info[i].start[0];
addr = flash_info[i].start[0] + csf_flash_offset;
if (memcmp((u8 *)addr, barker_code, ESBC_BARKER_LEN) == 0) {
debug("Barker found on addr %lx\n", addr);
debug("Barker found on addr %x\n", addr);
found = 1;
break;
}
@ -94,7 +94,7 @@ int get_csf_base_addr(ulong *csf_addr, ulong *flash_base_addr)
/* For platforms like LS1020, correct flash address is present in
* the header. So the function reqturns flash base address as 0
*/
int get_csf_base_addr(ulong *csf_addr, ulong *flash_base_addr)
int get_csf_base_addr(u32 *csf_addr, u32 *flash_base_addr)
{
struct ccsr_gur __iomem *gur = (void *)(CONFIG_SYS_FSL_GUTS_ADDR);
u32 csf_hdr_addr = in_be32(&gur->scratchrw[0]);
@ -108,11 +108,11 @@ int get_csf_base_addr(ulong *csf_addr, ulong *flash_base_addr)
}
#endif
static int get_ie_info_addr(ulong *ie_addr)
static int get_ie_info_addr(u32 *ie_addr)
{
struct fsl_secboot_img_hdr *hdr;
struct fsl_secboot_sg_table *sg_tbl;
ulong flash_base_addr, csf_addr;
u32 flash_base_addr, csf_addr;
if (get_csf_base_addr(&csf_addr, &flash_base_addr))
return -1;
@ -127,11 +127,11 @@ static int get_ie_info_addr(ulong *ie_addr)
*/
#if defined(CONFIG_FSL_TRUST_ARCH_v1) && defined(CONFIG_FSL_CORENET)
sg_tbl = (struct fsl_secboot_sg_table *)
(((ulong)hdr->psgtable & ~(CONFIG_SYS_PBI_FLASH_BASE)) +
(((u32)hdr->psgtable & ~(CONFIG_SYS_PBI_FLASH_BASE)) +
flash_base_addr);
#else
sg_tbl = (struct fsl_secboot_sg_table *)(csf_addr +
(ulong)hdr->psgtable);
(u32)hdr->psgtable);
#endif
/* IE Key Table is the first entry in the SG Table */
@ -142,7 +142,7 @@ static int get_ie_info_addr(ulong *ie_addr)
*ie_addr = sg_tbl->src_addr;
#endif
debug("IE Table address is %lx\n", *ie_addr);
debug("IE Table address is %x\n", *ie_addr);
return 0;
}
@ -549,7 +549,7 @@ static int read_validate_esbc_client_header(struct fsl_secboot_img_priv *img)
if (memcmp(hdr->barker, barker_code, ESBC_BARKER_LEN))
return ERROR_ESBC_CLIENT_HEADER_BARKER;
sprintf(buf, "%p", hdr->pimg);
sprintf(buf, "%x", hdr->pimg);
setenv("img_addr", buf);
if (!hdr->img_size)

View File

@ -82,14 +82,14 @@ struct fsl_secboot_img_hdr {
u32 psign; /* signature offset */
u32 sign_len; /* length of the signature in bytes */
union {
struct fsl_secboot_sg_table *psgtable; /* ptr to SG table */
u8 *pimg; /* ptr to ESBC client image */
u32 psgtable; /* ptr to SG table */
u32 pimg; /* ptr to ESBC client image */
};
union {
u32 sg_entries; /* no of entries in SG table */
u32 img_size; /* ESBC client image size in bytes */
};
ulong img_start; /* ESBC client entry point */
u32 img_start; /* ESBC client entry point */
u32 sg_flag; /* Scatter gather flag */
u32 uid_flag;
u32 fsl_uid_0;
@ -133,7 +133,7 @@ struct srk_table {
*/
struct fsl_secboot_sg_table {
u32 len; /* length of the segment in bytes */
ulong src_addr; /* ptr to the data segment */
u32 src_addr; /* ptr to the data segment */
};
#else
/*
@ -146,8 +146,8 @@ struct fsl_secboot_sg_table {
struct fsl_secboot_sg_table {
u32 len;
u32 trgt_id;
ulong src_addr;
ulong dst_addr;
u32 src_addr;
u32 dst_addr;
};
#endif
@ -162,7 +162,7 @@ struct fsl_secboot_sg_table {
*/
struct fsl_secboot_img_priv {
uint32_t hdr_location;
ulong ie_addr;
u32 ie_addr;
u32 key_len;
struct fsl_secboot_img_hdr hdr;