fix(ff-a): use messaging info from the manifest
Adds a messaging method to the VM structure. Refactor messaging info
field in the manifest to comply with information in specification. In
particular - distinguish between the direct message send/receive.
Use messaging method from the manifest to populate partition info for
FFA_PARTITION_INFO_GET ABI. Populates partition info based on the
caller id (SP can send direct messages to other SPs).
Refactors managed exit check to use messaging method value.
Signed-off-by: Maksims Svecovs <maksims.svecovs@arm.com>
Change-Id: Id0734c18d14879b89ba3517b8ff4b3b41b53b56f
diff --git a/src/manifest_test.cc b/src/manifest_test.cc
index 5f85fca..c73f843 100644
--- a/src/manifest_test.cc
+++ b/src/manifest_test.cc
@@ -235,7 +235,7 @@
Property("entrypoint-offset", "<0x00001000>");
Property("xlat-granule", "<0>");
Property("boot-order", "<0>");
- Property("messaging-method", "<1>");
+ Property("messaging-method", "<4>");
return *this;
}
@@ -818,7 +818,7 @@
.Property("entrypoint-offset", "<0x00001000>")
.Property("xlat-granule", "<0>")
.Property("boot-order", "<0>")
- .Property("messaging-method", "<5>")
+ .Property("messaging-method", "<16>")
.Build();
/* clang-format on */
ASSERT_EQ(ffa_manifest_from_vec(&m, dtb),
@@ -1056,7 +1056,7 @@
ASSERT_EQ(m.vm[0].sp.ep_offset, 0x00001000);
ASSERT_EQ(m.vm[0].sp.xlat_granule, PAGE_4KB);
ASSERT_EQ(m.vm[0].sp.boot_order, 0);
- ASSERT_EQ(m.vm[0].sp.messaging_method, INDIRECT_MESSAGING);
+ ASSERT_EQ(m.vm[0].sp.messaging_method, FFA_PARTITION_INDIRECT_MSG);
ASSERT_EQ(m.vm[0].sp.mem_regions[0].base_address, 0x7100000);
ASSERT_EQ(m.vm[0].sp.mem_regions[0].page_count, 4);
ASSERT_EQ(m.vm[0].sp.mem_regions[0].attributes, 7);