aboutsummaryrefslogtreecommitdiff
path: root/drivers/mailbox
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/mailbox')
-rw-r--r--drivers/mailbox/CMakeLists.txt21
-rw-r--r--drivers/mailbox/include/mailbox.hpp100
-rw-r--r--drivers/mailbox/src/mailbox.cpp65
3 files changed, 0 insertions, 186 deletions
diff --git a/drivers/mailbox/CMakeLists.txt b/drivers/mailbox/CMakeLists.txt
deleted file mode 100644
index bf8889a..0000000
--- a/drivers/mailbox/CMakeLists.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-#
-# Copyright (c) 2020-2021 Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: Apache-2.0
-#
-# Licensed under the Apache License, Version 2.0 (the License); you may
-# not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an AS IS BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-add_library(ethosu_mailbox STATIC)
-target_include_directories(ethosu_mailbox PUBLIC include)
-target_sources(ethosu_mailbox PRIVATE src/mailbox.cpp)
diff --git a/drivers/mailbox/include/mailbox.hpp b/drivers/mailbox/include/mailbox.hpp
deleted file mode 100644
index f3a2dc4..0000000
--- a/drivers/mailbox/include/mailbox.hpp
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * Copyright (c) 2020 Arm Limited. All rights reserved.
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed under the Apache License, Version 2.0 (the License); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef MAILBOX_HPP
-#define MAILBOX_HPP
-
-#include <cstddef>
-#include <cstdint>
-#include <list>
-
-namespace Mailbox {
-
-/**
- * The Mailbox parent class
- *
- * Intended to be implemented by a driver subclass, see MHU_v2 driver as example.
- */
-class Mailbox {
-public:
- /**
- * Constructor/Destructor
- */
- Mailbox();
- virtual ~Mailbox();
-
- /**
- * Intended to trigger an interrupt to an external block
- * MUST be implemented by subclass.
- */
- virtual bool sendMessage() = 0;
-
- /**
- * Intended to be called when Cortex M has received an
- * interrupt/event from mailbox/mhu. If an interrupt needs to be cleared,
- * this is a good place to do that. MUST call notify().
- * MUST be implemented by subclass.
- */
- virtual void handleMessage() = 0;
-
- /**
- * Can be used to verify that hardware versions match expected versions
- * CAN be implemented by subclass, optional. Default impl returns true.
- */
- virtual bool verifyHardware();
-
- /**
- * Function signature for callbacks
- */
- typedef void (*CallbackFptr)(void *userArg);
-
- /**
- * Register a callback to be called when a message is received.
- */
- void registerCallback(CallbackFptr callback, void *userArg);
-
- /**
- * Remove a specific callback from the callback list.
- */
- void deregisterCallback(CallbackFptr callback, void *userArg);
-
-protected:
- /**
- * Calls every registered callback when a message has been received.
- */
- void notify();
-
- /**
- * Helper functions
- */
- uint32_t read32(volatile uint32_t *baseAddr, const uint32_t offset);
- void write32(volatile uint32_t *baseAddr, const uint32_t offset, const uint32_t value);
-
-private:
- struct Callback {
- bool operator==(const Callback &b) const;
- CallbackFptr callback;
- void *userArg;
- };
-
- std::list<Callback> callbacks;
-};
-
-} // namespace Mailbox
-
-#endif
diff --git a/drivers/mailbox/src/mailbox.cpp b/drivers/mailbox/src/mailbox.cpp
deleted file mode 100644
index e5950f0..0000000
--- a/drivers/mailbox/src/mailbox.cpp
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright (c) 2020-2021 Arm Limited. All rights reserved.
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed under the Apache License, Version 2.0 (the License); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <mailbox.hpp>
-
-#include <cassert>
-#include <cstddef>
-
-namespace Mailbox {
-
-Mailbox::Mailbox() {}
-Mailbox::~Mailbox() {}
-
-bool Mailbox::verifyHardware() {
- return true;
-}
-
-void Mailbox::registerCallback(CallbackFptr callback, void *userArg) {
- callbacks.push_back({callback, userArg});
-}
-
-void Mailbox::deregisterCallback(CallbackFptr callback, void *userArg) {
- callbacks.remove({callback, userArg});
-}
-
-void Mailbox::notify() {
- for (auto &it : callbacks) {
- it.callback(it.userArg);
- }
-}
-
-uint32_t Mailbox::read32(volatile uint32_t *baseAddr, const uint32_t offset) {
- assert(offset % 4 == 0);
- volatile uint32_t *addr = baseAddr + (offset / 4);
-
- return *addr;
-}
-
-void Mailbox::write32(volatile uint32_t *baseAddr, const uint32_t offset, const uint32_t value) {
- assert(offset % 4 == 0);
- volatile uint32_t *addr = baseAddr + (offset / 4);
-
- *addr = value;
-}
-
-bool Mailbox::Callback::operator==(const Callback &b) const {
- return (callback == b.callback && userArg == b.userArg);
-}
-
-} // namespace Mailbox