summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/fwu_updates/fwu.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/lib/fwu_updates/fwu.c b/lib/fwu_updates/fwu.c
index 7f085a0211f..0f5ef2ba515 100644
--- a/lib/fwu_updates/fwu.c
+++ b/lib/fwu_updates/fwu.c
@@ -656,6 +656,16 @@ __weak void fwu_plat_get_bootidx(uint *boot_idx)
}
/**
+ * fwu_platform_hook() - Platform specific processing with FWU metadata
+ *
+ * Return: 0 if OK, -ve on error
+ */
+__weak int fwu_platform_hook(struct udevice *dev, struct fwu_data *data)
+{
+ return 0;
+}
+
+/**
* fwu_update_checks_pass() - Check if FWU update can be done
*
* Check if the FWU update can be executed. The updates are
@@ -712,6 +722,7 @@ static int fwu_boottime_checks(void)
{
int ret;
u32 boot_idx, active_idx;
+ struct fwu_data *data;
ret = uclass_first_device_err(UCLASS_FWU_MDATA, &g_dev);
if (ret) {
@@ -770,6 +781,13 @@ static int fwu_boottime_checks(void)
if (!ret)
boottime_check = 1;
+ data = fwu_get_data();
+ ret = fwu_platform_hook(g_dev, data);
+ if (ret) {
+ log_err("fwu_platform_hook() failed\n");
+ return ret;
+ }
+
return 0;
}
EVENT_SPY_SIMPLE(EVT_MAIN_LOOP, fwu_boottime_checks);