From 7a2604550020d96765db84c64ceb07a700d49e09 Mon Sep 17 00:00:00 2001 From: Kristofer Jonsson Date: Wed, 8 Feb 2023 14:21:17 +0100 Subject: Removing core interface The Ethos-U kernel driver has been converted into a rpmsg driver and the ethosu_core_interface.h has been replaced by ethsou_core_rpmsg.h. Change-Id: If6db8c20cd88e950545eed561ed95c067157d061 --- kernel/ethosu_core_interface.h | 271 ----------------------------------------- 1 file changed, 271 deletions(-) delete mode 100644 kernel/ethosu_core_interface.h diff --git a/kernel/ethosu_core_interface.h b/kernel/ethosu_core_interface.h deleted file mode 100644 index 193b296..0000000 --- a/kernel/ethosu_core_interface.h +++ /dev/null @@ -1,271 +0,0 @@ -/* - * Copyright (c) 2020-2022 Arm Limited. - * - * This program is free software and is provided to you under the terms of the - * GNU General Public License version 2 as published by the Free Software - * Foundation, and any use by you of this program is subject to the terms - * of such GNU licence. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, you can access it online at - * http://www.gnu.org/licenses/gpl-2.0.html. - * - * SPDX-License-Identifier: GPL-2.0-only - */ - -#ifndef ETHOSU_CORE_INTERFACE_H -#define ETHOSU_CORE_INTERFACE_H - -#ifdef __KERNEL__ -#include -#else -#include -#endif - -#ifdef __cplusplus -namespace EthosU { -#endif - -/** Maximum number of IFM/OFM buffers per inference */ -#define ETHOSU_CORE_BUFFER_MAX 16 - -/** Maximum number of PMU counters to be returned for inference */ -#define ETHOSU_CORE_PMU_MAX 8 - -#define ETHOSU_CORE_MSG_MAGIC 0x41457631 -#define ETHOSU_CORE_MSG_VERSION_MAJOR 0 -#define ETHOSU_CORE_MSG_VERSION_MINOR 2 -#define ETHOSU_CORE_MSG_VERSION_PATCH 0 - -/** - * enum ethosu_core_msg_type - Message types - * - * Types for the messages sent between the host and the core subsystem. - */ -enum ethosu_core_msg_type { - ETHOSU_CORE_MSG_ERR = 1, - ETHOSU_CORE_MSG_PING, - ETHOSU_CORE_MSG_PONG, - ETHOSU_CORE_MSG_INFERENCE_REQ, - ETHOSU_CORE_MSG_INFERENCE_RSP, - ETHOSU_CORE_MSG_VERSION_REQ, - ETHOSU_CORE_MSG_VERSION_RSP, - ETHOSU_CORE_MSG_CAPABILITIES_REQ, - ETHOSU_CORE_MSG_CAPABILITIES_RSP, - ETHOSU_CORE_MSG_NETWORK_INFO_REQ, - ETHOSU_CORE_MSG_NETWORK_INFO_RSP, - ETHOSU_CORE_MSG_CANCEL_INFERENCE_REQ, - ETHOSU_CORE_MSG_CANCEL_INFERENCE_RSP, - ETHOSU_CORE_MSG_MAX -}; - -/** - * struct ethosu_core_msg - Message header - */ -struct ethosu_core_msg { - uint32_t magic; - uint32_t type; - uint32_t length; -}; - -/** - * struct ethosu_core_queue_header - Message queue header - * - * The read and write indices must be separated by at least one cache line, - * else updating the read index would also overwrite the write index when - * the cache line is flushed. Because of this the message queues should be - * placed on cache line aligned addresses. - * - * The cache line length for Cortex-M is typically fixed at 32 bytes. The - * kernel driver is setup to allocated non cached memory. - */ -struct ethosu_core_queue_header { - uint32_t size; - uint32_t read; - uint32_t pad[6]; - uint32_t write; -}; - -/** - * struct ethosu_core_queue - Message queue - * - * Dynamically sized message queue. - */ -struct ethosu_core_queue { - struct ethosu_core_queue_header header; - uint8_t data[]; -}; - -/** - * enum ethosu_core_status - Status - */ -enum ethosu_core_status { - ETHOSU_CORE_STATUS_OK, - ETHOSU_CORE_STATUS_ERROR, - ETHOSU_CORE_STATUS_RUNNING, - ETHOSU_CORE_STATUS_REJECTED, - ETHOSU_CORE_STATUS_ABORTED, - ETHOSU_CORE_STATUS_ABORTING, -}; - -/** - * struct ethosu_core_buffer - Buffer descriptor - * - * Pointer and size to a buffer withing the Ethos-U - * address space. - */ -struct ethosu_core_buffer { - uint32_t ptr; - uint32_t size; -}; - -/** - * enum ethosu_core_network_type - Network buffer type - */ -enum ethosu_core_network_type { - ETHOSU_CORE_NETWORK_BUFFER = 1, - ETHOSU_CORE_NETWORK_INDEX -}; - -/** - * struct ethosu_core_network_buffer - Network buffer - */ -struct ethosu_core_network_buffer { - uint32_t type; - union { - struct ethosu_core_buffer buffer; - uint32_t index; - }; -}; - -/** - * struct ethosu_core_inference_req - Inference request - */ -struct ethosu_core_inference_req { - uint64_t user_arg; - uint32_t ifm_count; - struct ethosu_core_buffer ifm[ETHOSU_CORE_BUFFER_MAX]; - uint32_t ofm_count; - struct ethosu_core_buffer ofm[ETHOSU_CORE_BUFFER_MAX]; - struct ethosu_core_network_buffer network; - uint8_t pmu_event_config[ETHOSU_CORE_PMU_MAX]; - uint32_t pmu_cycle_counter_enable; -}; - -/** - * struct ethosu_core_inference_rsp - Inference response - */ -struct ethosu_core_inference_rsp { - uint64_t user_arg; - uint32_t ofm_count; - uint32_t ofm_size[ETHOSU_CORE_BUFFER_MAX]; - uint32_t status; - uint8_t pmu_event_config[ETHOSU_CORE_PMU_MAX]; - uint32_t pmu_event_count[ETHOSU_CORE_PMU_MAX]; - uint32_t pmu_cycle_counter_enable; - uint64_t pmu_cycle_counter_count; -}; - -/** - * struct ethosu_core_network_info_req - Network information request - */ -struct ethosu_core_network_info_req { - uint64_t user_arg; - struct ethosu_core_network_buffer network; -}; - -/** - * struct ethosu_core_network_info_rsp - Network information response - */ -struct ethosu_core_network_info_rsp { - uint64_t user_arg; - char desc[32]; - uint32_t ifm_count; - uint32_t ifm_size[ETHOSU_CORE_BUFFER_MAX]; - uint32_t ofm_count; - uint32_t ofm_size[ETHOSU_CORE_BUFFER_MAX]; - uint32_t status; -}; - -/** - * struct ethosu_core_msg_version - Message protocol version - */ -struct ethosu_core_msg_version { - uint8_t major; - uint8_t minor; - uint8_t patch; - uint8_t _reserved; -}; - -/** - * struct ethosu_core_capabilities_req - Message capabilities request - */ -struct ethosu_core_capabilities_req { - uint64_t user_arg; -}; - -/** - * struct ethosu_core_capabilities_rsp - Message capabilities response - */ -struct ethosu_core_msg_capabilities_rsp { - uint64_t user_arg; - uint32_t version_status; - uint32_t version_minor; - uint32_t version_major; - uint32_t product_major; - uint32_t arch_patch_rev; - uint32_t arch_minor_rev; - uint32_t arch_major_rev; - uint32_t driver_patch_rev; - uint32_t driver_minor_rev; - uint32_t driver_major_rev; - uint32_t macs_per_cc; - uint32_t cmd_stream_version; - uint32_t custom_dma; -}; - -/** - * struct ethosu_core_cancel_inference_req - Message cancel inference request - */ -struct ethosu_core_cancel_inference_req { - uint64_t user_arg; - uint64_t inference_handle; -}; - -/** - * struct ethosu_core_cancel_inference_rsp - Message cancel inference response - */ -struct ethosu_core_cancel_inference_rsp { - uint64_t user_arg; - uint32_t status; -}; - -/** - * enum ethosu_core_msg_err_type - Error types - */ -enum ethosu_core_msg_err_type { - ETHOSU_CORE_MSG_ERR_GENERIC = 0, - ETHOSU_CORE_MSG_ERR_UNSUPPORTED_TYPE, - ETHOSU_CORE_MSG_ERR_INVALID_PAYLOAD, - ETHOSU_CORE_MSG_ERR_INVALID_SIZE, - ETHOSU_CORE_MSG_ERR_INVALID_MAGIC, - ETHOSU_CORE_MSG_ERR_MAX -}; - -/** - * struct ethosu_core_msg_err - Error message struct - */ -struct ethosu_core_msg_err { - uint32_t type; /* optional use of extra error code */ - char msg[128]; -}; -#ifdef __cplusplus -} /*namespace EthosU */ -#endif - -#endif -- cgit v1.2.1