aboutsummaryrefslogtreecommitdiff
path: root/applications/message_handler_openamp/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'applications/message_handler_openamp/main.cpp')
-rw-r--r--applications/message_handler_openamp/main.cpp70
1 files changed, 69 insertions, 1 deletions
diff --git a/applications/message_handler_openamp/main.cpp b/applications/message_handler_openamp/main.cpp
index 9d3c074..e281f6e 100644
--- a/applications/message_handler_openamp/main.cpp
+++ b/applications/message_handler_openamp/main.cpp
@@ -61,8 +61,76 @@ constexpr size_t arenaSize = TENSOR_ARENA_SIZE;
* Resource table
*****************************************************************************/
+#if defined(REMOTEPROC_TRACE_BUFFER)
+#if defined(__ARMCC_VERSION)
+extern uint32_t Image$$trace_buffer$$Base;
+extern uint32_t Image$$trace_buffer$$Length;
+#define __ethosu_core_trace_buffer_start__ Image$$trace_buffer$$Base
+#define __ethosu_core_trace_buffer_size__ Image$$trace_buffer$$Length
+#else
+extern uint32_t __ethosu_core_trace_buffer_start__;
+extern uint32_t __ethosu_core_trace_buffer_size__;
+#endif
+#endif
+
extern "C" {
-__attribute__((section(".resource_table"))) ResourceTable resourceTable(8, arenaSize *NUM_PARALLEL_TASKS);
+// clang-format off
+__attribute__((section(".resource_table"))) ResourceTable resourceTable = {
+ // Table
+ {
+ ResourceTable::VERSION,
+ ResourceTable::NUM_RESOURCES,
+ {ResourceTable::RESERVED, ResourceTable::RESERVED},
+ {}
+ },
+ // Offset
+ {
+#if defined(REMOTEPROC_TRACE_BUFFER)
+ offsetof(ResourceTable, trace),
+#endif
+ offsetof(ResourceTable, vdev),
+ offsetof(ResourceTable, carveout),
+ },
+ // Trace buffer
+#if defined(REMOTEPROC_TRACE_BUFFER)
+ {
+ RSC_TRACE,
+ reinterpret_cast<uint32_t>(&__ethosu_core_trace_buffer_start__),
+ reinterpret_cast<uint32_t>(&__ethosu_core_trace_buffer_size__),
+ ResourceTable::RESERVED,
+ "Trace resource"
+ },
+#endif
+ // VDEV
+ {
+ RSC_VDEV,
+ VIRTIO_ID_RPMSG,
+ 2, // Notify ID
+ 1 << VIRTIO_RPMSG_F_NS,
+ 0,
+ 0,
+ 0,
+ ResourceTable::NUM_VRINGS,
+ {ResourceTable::RESERVED, ResourceTable::RESERVED},
+ {}
+ },
+ // Vrings
+ {
+ {FW_RSC_U32_ADDR_ANY, ResourceTable::VRING_ALIGN, ResourceTable::VRING_SIZE, 1, ResourceTable::RESERVED},
+ {FW_RSC_U32_ADDR_ANY, ResourceTable::VRING_ALIGN, ResourceTable::VRING_SIZE, 2, ResourceTable::RESERVED}
+ },
+ // Carveout
+ {
+ RSC_CARVEOUT,
+ FW_RSC_U32_ADDR_ANY,
+ FW_RSC_U32_ADDR_ANY,
+ arenaSize * NUM_PARALLEL_TASKS,
+ 0,
+ ResourceTable::RESERVED,
+ "TFLM arena"
+ }
+};
+// clang-format on
}
/*****************************************************************************