diff options
Diffstat (limited to 'driver_library/include/ethosu.hpp')
-rw-r--r-- | driver_library/include/ethosu.hpp | 27 |
1 files changed, 24 insertions, 3 deletions
diff --git a/driver_library/include/ethosu.hpp b/driver_library/include/ethosu.hpp index 27f6828..d0e391c 100644 --- a/driver_library/include/ethosu.hpp +++ b/driver_library/include/ethosu.hpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: Copyright 2020-2023 Arm Limited and/or its affiliates <open-source-office@arm.com> + * SPDX-FileCopyrightText: Copyright 2020-2024 Arm Limited and/or its affiliates <open-source-office@arm.com> * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the License); you may @@ -106,18 +106,39 @@ public: * Hardware Configuration * @macsPerClockCycle: MACs per clock cycle * @cmdStreamVersion: NPU command stream version + * @type: NPU device type * @customDma: Custom DMA enabled */ struct HardwareConfiguration { public: - HardwareConfiguration(uint32_t _macsPerClockCycle = 0, uint32_t _cmdStreamVersion = 0, bool _customDma = false) : - macsPerClockCycle(_macsPerClockCycle), cmdStreamVersion(_cmdStreamVersion), customDma(_customDma) {} + HardwareConfiguration(uint32_t _macsPerClockCycle = 0, + uint32_t _cmdStreamVersion = 0, + uint32_t _type = static_cast<uint32_t>(DeviceType::UNKNOWN), + bool _customDma = false) : + macsPerClockCycle(_macsPerClockCycle), + cmdStreamVersion(_cmdStreamVersion), customDma(_customDma) { + + if (_type > static_cast<uint32_t>(DeviceType::DIRECT)) { + throw EthosU::Exception(std::string("Invalid device type: ").append(std::to_string(_type)).c_str()); + } + + type = static_cast<DeviceType>(_type); + } + + enum class DeviceType { + UNKNOWN = 0, + SUBSYSTEM, + DIRECT, + }; uint32_t macsPerClockCycle; uint32_t cmdStreamVersion; + DeviceType type; bool customDma; }; +std::ostream &operator<<(std::ostream &out, const HardwareConfiguration::DeviceType &deviceType); + /** * Device capabilities * @hwId: Hardware |