feat(lib/s2tt): add device memory tests
- Add device memory related unit tests.
- Modify s2tte_get_ripas_tc2() and create
new s2tte_get_ripas_tc3() test to consider
RMI_ASSIGNED_DEV HIPAS value.
Signed-off-by: AlexeiFedorov <Alexei.Fedorov@arm.com>
Change-Id: I670458bb4425f3b130e4b7c056ce3d5ec856f4b2
diff --git a/lib/s2tt/tests/s2tt_test_helpers.c b/lib/s2tt/tests/s2tt_test_helpers.c
index b2f742f..1036d8b 100644
--- a/lib/s2tt/tests/s2tt_test_helpers.c
+++ b/lib/s2tt/tests/s2tt_test_helpers.c
@@ -222,6 +222,11 @@
return S2TT_MIN_BLOCK_LEVEL;
}
+long s2tt_test_helpers_min_dev_block_lvl(void)
+{
+ return S2TT_MIN_DEV_BLOCK_LEVEL;
+}
+
unsigned long s2tt_test_helpers_get_entry_va_space_size(long level)
{
assert(level >= s2tt_test_helpers_min_table_lvl());
@@ -265,6 +270,48 @@
return s2tte_create_assigned_ns(s2tt_ctx, pa, level);
}
+unsigned long s2tt_test_create_assigned_dev_dev(const struct s2tt_context *s2tt_ctx,
+ unsigned long pa, long level)
+{
+ unsigned long attr = S2TTE_TEST_DEV_ATTRS;
+
+ /* Add Shareability bits if FEAT_LPA2 is not enabled */
+ if (!s2tt_ctx->enable_lpa2) {
+ attr |= S2TTE_TEST_DEV_SH;
+ }
+ return s2tte_create_assigned_dev_dev(s2tt_ctx, (pa | attr), level);
+}
+
+unsigned long s2tt_test_create_assigned_dev(const struct s2tt_context *s2tt_ctx,
+ unsigned long pa, long level,
+ unsigned long ripas)
+{
+ if (ripas == S2TTE_INVALID_RIPAS_EMPTY) {
+ return s2tte_create_assigned_dev_empty(s2tt_ctx, pa, level);
+ } else if (ripas == S2TTE_INVALID_RIPAS_DESTROYED) {
+ return s2tte_create_assigned_dev_destroyed(s2tt_ctx, pa, level);
+ } else if (ripas == S2TTE_INVALID_RIPAS_DEV) {
+ return s2tt_test_create_assigned_dev_dev(s2tt_ctx, pa, level);
+ }
+
+ assert(false);
+ return 0UL;
+}
+
+void s2tt_test_init_assigned_dev_dev(const struct s2tt_context *s2tt_ctx,
+ unsigned long *s2tt, unsigned long pa,
+ long level)
+{
+ unsigned long attr = S2TTE_TEST_DEV_ATTRS;
+
+ /* Add Shareability bits if FEAT_LPA2 is not enabled */
+ if (!s2tt_ctx->enable_lpa2) {
+ attr |= S2TTE_TEST_DEV_SH;
+ }
+
+ s2tt_init_assigned_dev_dev(s2tt_ctx, s2tt, (attr | pa), pa, level);
+}
+
unsigned long s2tt_test_create_unassigned(const struct s2tt_context *s2tt_ctx,
unsigned long ripas)
{