[PATCH 1/5] bloblist: add API to check the register conventions
Raymond Mao
raymond.mao at linaro.org
Tue Dec 19 22:11:08 CET 2023
Add bloblist_check_reg_conv() to check whether the bloblist is compliant
to the register conventions defined in Firmware Handoff specification.
This API can be used for all Arm platforms.
Signed-off-by: Raymond Mao <raymond.mao at linaro.org>
---
common/bloblist.c | 15 +++++++++++++++
include/bloblist.h | 12 ++++++++++++
2 files changed, 27 insertions(+)
diff --git a/common/bloblist.c b/common/bloblist.c
index 625e480f6b..232ca4c6ce 100644
--- a/common/bloblist.c
+++ b/common/bloblist.c
@@ -542,3 +542,18 @@ int bloblist_maybe_init(void)
return 0;
}
+
+int bloblist_check_reg_conv(ulong rfdt, ulong rzero)
+{
+ ulong fdt;
+
+ if (!IS_ENABLED(CONFIG_OF_BOARD))
+ return 0;
+
+ fdt = (ulong)bloblist_find(BLOBLISTT_CONTROL_FDT, 0);
+
+ if (rfdt != fdt || rzero != 0)
+ return -EIO;
+
+ return 0;
+}
diff --git a/include/bloblist.h b/include/bloblist.h
index 84fc943819..b5d0f147f6 100644
--- a/include/bloblist.h
+++ b/include/bloblist.h
@@ -461,4 +461,16 @@ static inline int bloblist_maybe_init(void)
}
#endif /* BLOBLIST */
+/**
+ * bloblist_check_reg_conv() - Check whether the bloblist is compliant to
+ * the register conventions according to the
+ * Firmware Handoff spec.
+ *
+ * @rfdt: Register that holds the FDT base address.
+ * @rzero: Register that must be zero.
+ * Return: 0 if OK, -EIO if the bloblist is not compliant to the register
+ * conventions.
+ */
+int bloblist_check_reg_conv(ulong rfdt, ulong rzero);
+
#endif /* __BLOBLIST_H */
--
2.25.1
More information about the U-Boot
mailing list