blob: 04acea2c18378c299a8cf886b1e4d910d84f1a30 [file] [log] [blame]
Kristofer Jonsson49bdee82020-04-06 13:21:21 +02001/*
2 * Copyright (c) 2019-2020 Arm Limited. All rights reserved.
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 *
6 * Licensed under the Apache License, Version 2.0 (the License); you may
7 * not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
9 *
10 * www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an AS IS BASIS, WITHOUT
14 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
17 */
18
Kristofer Jonsson3c439172020-08-05 09:38:40 +020019#ifndef ETHOSU_COMMON_H
Kristofer Jonsson49bdee82020-04-06 13:21:21 +020020#define ETHOSU_COMMON_H
21
Kristofer Jonsson3c439172020-08-05 09:38:40 +020022/******************************************************************************
23 * Includes
24 ******************************************************************************/
25
Kristofer Jonsson49bdee82020-04-06 13:21:21 +020026#include "ethosu55_interface.h"
Bhavik Pateldae5be02020-06-18 15:25:15 +020027#include "ethosu_device.h"
Kristofer Jonsson49bdee82020-04-06 13:21:21 +020028
Bhavik Patelf5057812020-07-16 22:36:02 +020029#include <stdio.h>
30
Kristofer Jonsson3c439172020-08-05 09:38:40 +020031/******************************************************************************
32 * Defines
33 ******************************************************************************/
34
Kristofer Jonssonc05c9882020-08-05 11:46:52 +020035// Log severity levels
36#define ETHOSU_LOG_EMERG 0
37#define ETHOSU_LOG_ALERT 1
38#define ETHOSU_LOG_CRIT 2
39#define ETHOSU_LOG_ERR 3
40#define ETHOSU_LOG_WARN 4
41#define ETHOSU_LOG_NOTICE 5
42#define ETHOSU_LOG_INFO 6
43#define ETHOSU_LOG_DEBUG 7
44
45// Define default log severity
46#ifndef ETHOSU_LOG_SEVERITY
47#define ETHOSU_LOG_SEVERITY ETHOSU_LOG_WARN
48#endif
49
50#if ETHOSU_LOG_SEVERITY >= ETHOSU_LOG_EMERG
Bhavik Patelf5057812020-07-16 22:36:02 +020051#define LOG_EMERG(format, ...) \
52 fprintf(stderr, format, ##__VA_ARGS__); \
53 fflush(stderr); \
54 exit(-1)
Kristofer Jonsson49bdee82020-04-06 13:21:21 +020055#else
Bhavik Patelf5057812020-07-16 22:36:02 +020056#define LOG_EMERG(format, ...)
57#endif
58
Kristofer Jonssonc05c9882020-08-05 11:46:52 +020059#if ETHOSU_LOG_SEVERITY >= ETHOSU_LOG_ALERT
Bhavik Patelf5057812020-07-16 22:36:02 +020060#define LOG_ALERT(format, ...) \
61 fprintf(stderr, format, ##__VA_ARGS__); \
62 fflush(stderr); \
63 exit(-1)
64#else
65#define LOG_ALERT(format, ...)
66#endif
67
Kristofer Jonssonc05c9882020-08-05 11:46:52 +020068#if ETHOSU_LOG_SEVERITY >= ETHOSU_LOG_CRIT
Bhavik Patelf5057812020-07-16 22:36:02 +020069#define LOG_CRIT(format, ...) \
70 fprintf(stderr, format, ##__VA_ARGS__); \
71 fflush(stderr); \
72 exit(-1)
73#else
74#define LOG_CRIT(format, ...)
75#endif
76
Kristofer Jonssonc05c9882020-08-05 11:46:52 +020077#if ETHOSU_LOG_SEVERITY >= ETHOSU_LOG_ERR
Kristofer Jonsson49bdee82020-04-06 13:21:21 +020078#define LOG_ERR(format, ...) \
79 fprintf(stderr, format, ##__VA_ARGS__); \
80 fflush(stderr)
Bhavik Patelf5057812020-07-16 22:36:02 +020081#else
82#define LOG_ERR(format, ...)
83#endif
Kristofer Jonsson49bdee82020-04-06 13:21:21 +020084
Kristofer Jonssonc05c9882020-08-05 11:46:52 +020085#if ETHOSU_LOG_SEVERITY >= ETHOSU_LOG_WARN
Bhavik Patelf5057812020-07-16 22:36:02 +020086#define LOG_WARN(format, ...) fprintf(stdout, format, ##__VA_ARGS__)
87#else
88#define LOG_WARN(format, ...)
89#endif
90
Kristofer Jonssonc05c9882020-08-05 11:46:52 +020091#if ETHOSU_LOG_SEVERITY >= ETHOSU_LOG_NOTICE
Bhavik Patelf5057812020-07-16 22:36:02 +020092#define LOG_NOTICE(format, ...) fprintf(stdout, format, ##__VA_ARGS__)
93#else
94#define LOG_NOTICE(format, ...)
95#endif
96
Kristofer Jonssonc05c9882020-08-05 11:46:52 +020097#if ETHOSU_LOG_SEVERITY >= ETHOSU_LOG_INFO
Bhavik Patelf5057812020-07-16 22:36:02 +020098#define LOG_INFO(format, ...) fprintf(stdout, format, ##__VA_ARGS__)
99#else
100#define LOG_INFO(format, ...)
101#endif
102
Kristofer Jonssonc05c9882020-08-05 11:46:52 +0200103#if ETHOSU_LOG_SEVERITY >= ETHOSU_LOG_DEBUG
Bhavik Patelf5057812020-07-16 22:36:02 +0200104#define LOG_DEBUG(format, ...) fprintf(stdout, format, ##__VA_ARGS__)
105#else
106#define LOG_DEBUG(format, ...)
Kristofer Jonsson49bdee82020-04-06 13:21:21 +0200107#endif
108
109#if defined(ASSERT_DISABLE)
110#define ASSERT(args)
111#else
112#define ASSERT(args) assert(args)
113#endif
114
Kristofer Jonsson49bdee82020-04-06 13:21:21 +0200115#define UNUSED(x) ((void)x)
116
117#define VER_STR(X) VNUM_STR(X)
118#define VNUM_STR(X) #X
119
Bhavik Patel8e32b0b2020-06-23 13:48:25 +0200120#define MASK_0_31_BITS (0xFFFFFFFF)
121#define MASK_32_47_BITS (0xFFFF00000000)
122
Kristofer Jonsson3c439172020-08-05 09:38:40 +0200123/******************************************************************************
124 * Inline functions
125 ******************************************************************************/
126
Kristofer Jonsson49bdee82020-04-06 13:21:21 +0200127static const __attribute__((section("npu_driver_version"))) char driver_version_str[] = VER_STR(
128 ETHOSU_DRIVER_VERSION_MAJOR) "." VER_STR(ETHOSU_DRIVER_VERSION_MINOR) "." VER_STR(ETHOSU_DRIVER_VERSION_PATCH);
129
130static const __attribute__((section("npu_driver_arch_version"))) char driver_arch_version_str[] =
131 VER_STR(NNX_ARCH_VERSION_MAJOR) "." VER_STR(NNX_ARCH_VERSION_MINOR) "." VER_STR(NNX_ARCH_VERSION_PATCH);
132
Kristofer Jonsson49bdee82020-04-06 13:21:21 +0200133#endif // ETHOSU_COMMON_H