mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2025-11-25 10:45:02 +00:00
call depthcharge hooks for auxiliary FW update.
this adds calls to depthcharge (using callbacks) to do auxiliary firmware updates. in particular, this is intended to trigger TCPC updates, but other programmables could also be updated. no firmware updates take place until a board file has actually registered a firmware update "driver". board file updates to follow. TEST="COV=1 make" passes. depthcharge boots on snappy. with additional follow-on CLs, we can update the ps8751. the companion depthcharge changes are here: https://chromium-review.googlesource.com/c/498150/ the working design doc is here: https://docs.google.com/a/google.com/document/d/1uzS0b3O3Us1QI2Sx7LDkjEfHmuhYB2BolrAoNwCVoc0/edit?usp=sharing these features depend on vboot API updates: CQ-DEPEND=CL:498150 BUG=b:35586896 BRANCH=none Change-Id: If0d634eab08b429a8e7e80f5fe11eab3705bba0f Signed-off-by: Caveh Jalali <caveh@google.com> Reviewed-on: https://chromium-review.googlesource.com/505260 Reviewed-by: Stefan Reinauer <reinauer@chromium.org>
This commit is contained in:
@@ -21,10 +21,17 @@ VbError_t ec_sync_all(struct vb2_context *ctx, struct VbCommonParams *cparams)
|
||||
{
|
||||
VbSharedDataHeader *shared =
|
||||
(VbSharedDataHeader *)cparams->shared_data_blob;
|
||||
VbAuxFwUpdateSeverity_t fw_update;
|
||||
VbError_t rv;
|
||||
|
||||
rv = ec_sync_check_aux_fw(ctx, cparams, &fw_update);
|
||||
if (rv)
|
||||
return rv;
|
||||
|
||||
/* Do EC sync phase 1; this determines if we need an update */
|
||||
VbError_t phase1_rv = ec_sync_phase1(ctx, cparams);
|
||||
int need_wait_screen = ec_will_update_slowly(ctx, cparams);
|
||||
int need_wait_screen = ec_will_update_slowly(ctx, cparams) ||
|
||||
(fw_update == VB_AUX_FW_SLOW_UPDATE);
|
||||
|
||||
/*
|
||||
* Check if we need to reboot to load the VGA Option ROM before we can
|
||||
@@ -57,10 +64,19 @@ VbError_t ec_sync_all(struct vb2_context *ctx, struct VbCommonParams *cparams)
|
||||
* Do EC sync phase 2; this applies the update and/or jumps to the
|
||||
* correct EC image.
|
||||
*/
|
||||
VbError_t rv = ec_sync_phase2(ctx, cparams);
|
||||
rv = ec_sync_phase2(ctx, cparams);
|
||||
if (rv)
|
||||
return rv;
|
||||
|
||||
/*
|
||||
* Do software sync for devices tunneled throught the EC.
|
||||
*/
|
||||
if (fw_update != VB_AUX_FW_NO_UPDATE) {
|
||||
rv = VbExUpdateAuxFw();
|
||||
if (rv)
|
||||
return rv;
|
||||
}
|
||||
|
||||
/*
|
||||
* Reboot to unload VGA Option ROM if:
|
||||
* - we displayed the wait screen
|
||||
@@ -77,7 +93,7 @@ VbError_t ec_sync_all(struct vb2_context *ctx, struct VbCommonParams *cparams)
|
||||
return VBERROR_VGA_OPROM_MISMATCH;
|
||||
}
|
||||
|
||||
/* Do EC sync phase 3; this completes synd and handles battery cutoff */
|
||||
/* Do EC sync phase 3; this completes sync and handles battery cutoff */
|
||||
rv = ec_sync_phase3(ctx, cparams);
|
||||
if (rv)
|
||||
return rv;
|
||||
|
||||
Reference in New Issue
Block a user