Browse Source

Merge pull request #470 from danh-arm/dh/fwu-done-fix

FWU: Pass client cookie to FWU_SMC_UPDATE_DONE
pull/472/head v1.2-rc0
danh-arm 9 years ago
parent
commit
9831154f55
  1. 8
      bl1/bl1_fwu.c
  2. 2
      include/plat/common/platform.h
  3. 2
      plat/arm/board/juno/juno_bl1_setup.c
  4. 2
      plat/common/plat_bl1_common.c

8
bl1/bl1_fwu.c

@ -63,7 +63,7 @@ static register_t bl1_fwu_image_resume(register_t image_param,
unsigned int flags);
static int bl1_fwu_sec_image_done(void **handle,
unsigned int flags);
__dead2 static void bl1_fwu_done(void *cookie, void *reserved);
__dead2 static void bl1_fwu_done(void *client_cookie, void *reserved);
/*
* This keeps track of last executed secure image id.
@ -100,7 +100,7 @@ register_t bl1_fwu_smc_handler(unsigned int smc_fid,
SMC_RET1(handle, bl1_fwu_sec_image_done(&handle, flags));
case FWU_SMC_UPDATE_DONE:
bl1_fwu_done(cookie, NULL);
bl1_fwu_done((void *)x1, NULL);
/* We should never return from bl1_fwu_done() */
default:
@ -495,13 +495,13 @@ static int bl1_fwu_sec_image_done(void **handle, unsigned int flags)
* This function provides the opportunity for users to perform any
* platform specific handling after the Firmware update is done.
******************************************************************************/
__dead2 static void bl1_fwu_done(void *cookie, void *reserved)
__dead2 static void bl1_fwu_done(void *client_cookie, void *reserved)
{
NOTICE("BL1-FWU: *******FWU Process Completed*******\n");
/*
* Call platform done function.
*/
bl1_plat_fwu_done(cookie, reserved);
bl1_plat_fwu_done(client_cookie, reserved);
assert(0);
}

2
include/plat/common/platform.h

@ -121,7 +121,7 @@ struct image_desc *bl1_plat_get_image_desc(unsigned int image_id);
* The following functions are used by firmware update
* feature and may optionally be overridden.
*/
__dead2 void bl1_plat_fwu_done(void *cookie, void *reserved);
__dead2 void bl1_plat_fwu_done(void *client_cookie, void *reserved);
/*******************************************************************************

2
plat/arm/board/juno/juno_bl1_setup.c

@ -72,7 +72,7 @@ void bl1_plat_set_ep_info(unsigned int image_id,
/*******************************************************************************
* On Juno clear SYS_NVFLAGS and wait for watchdog reset.
******************************************************************************/
__dead2 void bl1_plat_fwu_done(void *cookie, void *rsvd_ptr)
__dead2 void bl1_plat_fwu_done(void *client_cookie, void *reserved)
{
unsigned int *nv_flags_clr = (unsigned int *)
(V2M_SYSREGS_BASE + V2M_SYS_NVFLAGSCLR);

2
plat/common/plat_bl1_common.c

@ -69,7 +69,7 @@ image_desc_t *bl1_plat_get_image_desc(unsigned int image_id)
return &bl2_img_desc;
}
__dead2 void bl1_plat_fwu_done(void *cookie, void *rsvd_ptr)
__dead2 void bl1_plat_fwu_done(void *client_cookie, void *reserved)
{
while (1)
wfi();

Loading…
Cancel
Save