|
@@ -91,6 +91,8 @@ struct sbi_platform_operations {
|
|
|
*/
|
|
|
int (*misa_get_xlen)(void);
|
|
|
|
|
|
+ /** Initialize (or populate) domains for the platform */
|
|
|
+ int (*domains_init)(void);
|
|
|
/** Get domain pointer for given HART id */
|
|
|
struct sbi_domain *(*domain_get)(u32 hartid);
|
|
|
|
|
@@ -451,6 +453,20 @@ static inline int sbi_platform_misa_xlen(const struct sbi_platform *plat)
|
|
|
return -1;
|
|
|
}
|
|
|
|
|
|
+/**
|
|
|
+ * Initialize (or populate) domains for the platform
|
|
|
+ *
|
|
|
+ * @param plat pointer to struct sbi_platform
|
|
|
+ *
|
|
|
+ * @return 0 on success and negative error code on failure
|
|
|
+ */
|
|
|
+static inline int sbi_platform_domains_init(const struct sbi_platform *plat)
|
|
|
+{
|
|
|
+ if (plat && sbi_platform_ops(plat)->domains_init)
|
|
|
+ return sbi_platform_ops(plat)->domains_init();
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
/**
|
|
|
* Get domain pointer for given HART
|
|
|
*
|