[U-Boot] [PATCH 1/3][v2] Pointers in ESBC header made 32 bit
Aneesh Bansal
aneesh.bansal at freescale.com
Mon Aug 24 11:14:47 CEST 2015
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 at freescale.com>
---
Changes in v2:
Compile time warning removed when printing Header Address.
board/freescale/common/fsl_validate.c | 20 ++++++++++----------
include/fsl_validate.h | 14 +++++++-------
2 files changed, 17 insertions(+), 17 deletions(-)
diff --git a/board/freescale/common/fsl_validate.c b/board/freescale/common/fsl_validate.c
index 5283648..465676f 100644
--- a/board/freescale/common/fsl_validate.c
+++ b/board/freescale/common/fsl_validate.c
@@ -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)
diff --git a/include/fsl_validate.h b/include/fsl_validate.h
index c460534..92dd98b 100644
--- a/include/fsl_validate.h
+++ b/include/fsl_validate.h
@@ -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;
--
1.8.1.4
More information about the U-Boot
mailing list