diff options
Diffstat (limited to 'include/plat/common/platform.h')
-rw-r--r-- | include/plat/common/platform.h | 45 |
1 files changed, 44 insertions, 1 deletions
diff --git a/include/plat/common/platform.h b/include/plat/common/platform.h index 1d2a3739..5b4d11df 100644 --- a/include/plat/common/platform.h +++ b/include/plat/common/platform.h @@ -44,6 +44,8 @@ struct image_info; struct entry_point_info; struct bl31_params; struct image_desc; +struct bl_load_info; +struct bl_params; /******************************************************************************* * plat_get_rotpk_info() flags @@ -84,7 +86,7 @@ uint32_t plat_interrupt_type_to_line(uint32_t type, * Optional common functions (may be overridden) ******************************************************************************/ uintptr_t plat_get_my_stack(void); -void plat_report_exception(unsigned long); +void plat_report_exception(unsigned int exception_type); int plat_crash_console_init(void); int plat_crash_console_putc(int c); void plat_error_handler(int err) __dead2; @@ -138,6 +140,15 @@ void bl2_plat_arch_setup(void); void bl2_platform_setup(void); struct meminfo *bl2_plat_sec_mem_layout(void); +#if LOAD_IMAGE_V2 +/* + * This function can be used by the platforms to update/use image + * information for given `image_id`. + */ +int bl2_plat_handle_post_image_load(unsigned int image_id); + +#else /* LOAD_IMAGE_V2 */ + /* * This function returns a pointer to the shared memory that the platform has * kept aside to pass trusted firmware related information that BL31 @@ -194,6 +205,8 @@ void bl2_plat_set_bl32_ep_info(struct image_info *image, /* Gets the memory layout for BL32 */ void bl2_plat_get_bl32_meminfo(struct meminfo *mem_info); +#endif /* LOAD_IMAGE_V2 */ + /******************************************************************************* * Optional BL2 functions (may be overridden) ******************************************************************************/ @@ -218,8 +231,13 @@ int bl2u_plat_handle_scp_bl2u(void); /******************************************************************************* * Mandatory BL31 functions ******************************************************************************/ +#if LOAD_IMAGE_V2 +void bl31_early_platform_setup(void *from_bl2, + void *plat_params_from_bl2); +#else void bl31_early_platform_setup(struct bl31_params *from_bl2, void *plat_params_from_bl2); +#endif void bl31_plat_arch_setup(void); void bl31_platform_setup(void); void bl31_plat_runtime_setup(void); @@ -257,6 +275,31 @@ int plat_get_rotpk_info(void *cookie, void **key_ptr, unsigned int *key_len, int plat_get_nv_ctr(void *cookie, unsigned int *nv_ctr); int plat_set_nv_ctr(void *cookie, unsigned int nv_ctr); +#if LOAD_IMAGE_V2 +/******************************************************************************* + * Mandatory BL image load functions(may be overridden). + ******************************************************************************/ +/* + * This function returns pointer to the list of images that the + * platform has populated to load. + */ +struct bl_load_info *plat_get_bl_image_load_info(void); + +/* + * This function returns a pointer to the shared memory that the + * platform has kept aside to pass trusted firmware related + * information that next BL image could need. + */ +struct bl_params *plat_get_next_bl_params(void); + +/* + * This function flushes to main memory all the params that are + * passed to next image. + */ +void plat_flush_next_bl_params(void); + +#endif /* LOAD_IMAGE_V2 */ + #if ENABLE_PLAT_COMPAT /* * The below declarations are to enable compatibility for the platform ports |