summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorYu Chien Peter Lin <peterlin@andestech.com>2022-10-14 03:32:42 +0300
committerAnup Patel <anup@brainfault.org>2022-10-23 07:51:21 +0300
commitdcdaf3027489cadd513767eda6dcaa0c1ecd2d29 (patch)
treebe58d2b9242725c70f1ebd1377f20c40c36947a7 /include
parent60b78fee9225155ac6e9d4733bf3dc0f7a8a9933 (diff)
downloadopensbi-dcdaf3027489cadd513767eda6dcaa0c1ecd2d29.tar.xz
lib: sbi: Add sbi_domain_root_add_memrange() API
This patch generalizes the logic to add a memory range with desired alignment and flags of consecutive regions to the root domain. Signed-off-by: Yu Chien Peter Lin <peterlin@andestech.com> Reviewed-by: Anup Patel <anup@brainfault.org>
Diffstat (limited to 'include')
-rw-r--r--include/sbi/sbi_domain.h14
-rw-r--r--include/sbi_utils/timer/aclint_mtimer.h2
2 files changed, 16 insertions, 0 deletions
diff --git a/include/sbi/sbi_domain.h b/include/sbi/sbi_domain.h
index 00662a1..5553d21 100644
--- a/include/sbi/sbi_domain.h
+++ b/include/sbi/sbi_domain.h
@@ -180,6 +180,20 @@ int sbi_domain_register(struct sbi_domain *dom,
*/
int sbi_domain_root_add_memregion(const struct sbi_domain_memregion *reg);
+/**
+ * Add a memory range with its flags to the root domain
+ * @param addr start physical address of memory range
+ * @param size physical size of memory range
+ * @param align alignment of memory region
+ * @param region_flags memory range flags
+ *
+ * @return 0 on success
+ * @return SBI_EALREADY if memory region conflicts with the existing one
+ * @return SBI_EINVAL otherwise
+ */
+int sbi_domain_root_add_memrange(unsigned long addr, unsigned long size,
+ unsigned long align, unsigned long region_flags);
+
/** Finalize domain tables and startup non-root domains */
int sbi_domain_finalize(struct sbi_scratch *scratch, u32 cold_hartid);
diff --git a/include/sbi_utils/timer/aclint_mtimer.h b/include/sbi_utils/timer/aclint_mtimer.h
index f02cc62..6ab8799 100644
--- a/include/sbi_utils/timer/aclint_mtimer.h
+++ b/include/sbi_utils/timer/aclint_mtimer.h
@@ -22,6 +22,8 @@
#define CLINT_MTIMER_OFFSET 0x4000
+#define MTIMER_REGION_ALIGN 0x1000
+
struct aclint_mtimer_data {
/* Public details */
unsigned long mtime_freq;