Commit b313d755 authored by Soby Mathew's avatar Soby Mathew
Browse files

Rearrange fields in TF data structures to reduce padding

This patch rearranges fields of the `image_desc_t` & `auth_img_desc_t`
data structures to reduce padding between the fields and thereby
save memory.

NOTE: Platform ports which anonymously initialize these structures
should be aware of the rearrangement and do the required
modification.

Change-Id: I428b5429632797b31d5bd306174599c07e24c060
parent 7b3aabc0
...@@ -202,8 +202,9 @@ typedef struct param_header { ...@@ -202,8 +202,9 @@ typedef struct param_header {
* switching exception levels. The only two mechanisms to do so are * switching exception levels. The only two mechanisms to do so are
* ERET & SMC. Security state is indicated using bit zero of header * ERET & SMC. Security state is indicated using bit zero of header
* attribute * attribute
* NOTE: BL1 expects entrypoint followed by spsr while processing * NOTE: BL1 expects entrypoint followed by spsr at an offset from the start
* SMC to jump to BL31 from the start of entry_point_info * of this structure defined by the macro `ENTRY_POINT_INFO_PC_OFFSET` while
* processing SMC to jump to BL31.
*****************************************************************************/ *****************************************************************************/
typedef struct entry_point_info { typedef struct entry_point_info {
param_header_t h; param_header_t h;
...@@ -232,13 +233,13 @@ typedef struct image_info { ...@@ -232,13 +233,13 @@ typedef struct image_info {
typedef struct image_desc { typedef struct image_desc {
/* Contains unique image id for the image. */ /* Contains unique image id for the image. */
unsigned int image_id; unsigned int image_id;
image_info_t image_info;
entry_point_info_t ep_info;
/* /*
* This member contains Image state information. * This member contains Image state information.
* Refer IMAGE_STATE_XXX defined above. * Refer IMAGE_STATE_XXX defined above.
*/ */
unsigned int state; unsigned int state;
image_info_t image_info;
entry_point_info_t ep_info;
} image_desc_t; } image_desc_t;
/******************************************************************************* /*******************************************************************************
......
...@@ -48,8 +48,8 @@ ...@@ -48,8 +48,8 @@
*/ */
typedef struct auth_img_desc_s { typedef struct auth_img_desc_s {
unsigned int img_id; unsigned int img_id;
const struct auth_img_desc_s *parent;
img_type_t img_type; img_type_t img_type;
const struct auth_img_desc_s *parent;
auth_method_desc_t img_auth_methods[AUTH_METHOD_NUM]; auth_method_desc_t img_auth_methods[AUTH_METHOD_NUM];
auth_param_desc_t authenticated_data[COT_MAX_VERIFIED_PARAMS]; auth_param_desc_t authenticated_data[COT_MAX_VERIFIED_PARAMS];
} auth_img_desc_t; } auth_img_desc_t;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment