blob: 30f07beddfd51b96a161248b413f385e85d93bb1 [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"
27
Bhavik Patelf5057812020-07-16 22:36:02 +020028#include <stdio.h>
29
Kristofer Jonsson3c439172020-08-05 09:38:40 +020030/******************************************************************************
31 * Defines
32 ******************************************************************************/
33
Kristofer Jonssonc05c9882020-08-05 11:46:52 +020034// Log severity levels
35#define ETHOSU_LOG_EMERG 0
36#define ETHOSU_LOG_ALERT 1
37#define ETHOSU_LOG_CRIT 2
38#define ETHOSU_LOG_ERR 3
39#define ETHOSU_LOG_WARN 4
40#define ETHOSU_LOG_NOTICE 5
41#define ETHOSU_LOG_INFO 6
42#define ETHOSU_LOG_DEBUG 7
43
44// Define default log severity
45#ifndef ETHOSU_LOG_SEVERITY
46#define ETHOSU_LOG_SEVERITY ETHOSU_LOG_WARN
47#endif
48
49#if ETHOSU_LOG_SEVERITY >= ETHOSU_LOG_EMERG
Bhavik Patelf5057812020-07-16 22:36:02 +020050#define LOG_EMERG(format, ...) \
51 fprintf(stderr, format, ##__VA_ARGS__); \
52 fflush(stderr); \
53 exit(-1)
Kristofer Jonsson49bdee82020-04-06 13:21:21 +020054#else
Bhavik Patelf5057812020-07-16 22:36:02 +020055#define LOG_EMERG(format, ...)
56#endif
57
Kristofer Jonssonc05c9882020-08-05 11:46:52 +020058#if ETHOSU_LOG_SEVERITY >= ETHOSU_LOG_ALERT
Bhavik Patelf5057812020-07-16 22:36:02 +020059#define LOG_ALERT(format, ...) \
60 fprintf(stderr, format, ##__VA_ARGS__); \
61 fflush(stderr); \
62 exit(-1)
63#else
64#define LOG_ALERT(format, ...)
65#endif
66
Kristofer Jonssonc05c9882020-08-05 11:46:52 +020067#if ETHOSU_LOG_SEVERITY >= ETHOSU_LOG_CRIT
Bhavik Patelf5057812020-07-16 22:36:02 +020068#define LOG_CRIT(format, ...) \
69 fprintf(stderr, format, ##__VA_ARGS__); \
70 fflush(stderr); \
71 exit(-1)
72#else
73#define LOG_CRIT(format, ...)
74#endif
75
Kristofer Jonssonc05c9882020-08-05 11:46:52 +020076#if ETHOSU_LOG_SEVERITY >= ETHOSU_LOG_ERR
Kristofer Jonsson49bdee82020-04-06 13:21:21 +020077#define LOG_ERR(format, ...) \
78 fprintf(stderr, format, ##__VA_ARGS__); \
79 fflush(stderr)
Bhavik Patelf5057812020-07-16 22:36:02 +020080#else
81#define LOG_ERR(format, ...)
82#endif
Kristofer Jonsson49bdee82020-04-06 13:21:21 +020083
Kristofer Jonssonc05c9882020-08-05 11:46:52 +020084#if ETHOSU_LOG_SEVERITY >= ETHOSU_LOG_WARN
Bhavik Patelf5057812020-07-16 22:36:02 +020085#define LOG_WARN(format, ...) fprintf(stdout, format, ##__VA_ARGS__)
86#else
87#define LOG_WARN(format, ...)
88#endif
89
Kristofer Jonssonc05c9882020-08-05 11:46:52 +020090#if ETHOSU_LOG_SEVERITY >= ETHOSU_LOG_NOTICE
Bhavik Patelf5057812020-07-16 22:36:02 +020091#define LOG_NOTICE(format, ...) fprintf(stdout, format, ##__VA_ARGS__)
92#else
93#define LOG_NOTICE(format, ...)
94#endif
95
Kristofer Jonssonc05c9882020-08-05 11:46:52 +020096#if ETHOSU_LOG_SEVERITY >= ETHOSU_LOG_INFO
Bhavik Patelf5057812020-07-16 22:36:02 +020097#define LOG_INFO(format, ...) fprintf(stdout, format, ##__VA_ARGS__)
98#else
99#define LOG_INFO(format, ...)
100#endif
101
Kristofer Jonssonc05c9882020-08-05 11:46:52 +0200102#if ETHOSU_LOG_SEVERITY >= ETHOSU_LOG_DEBUG
Bhavik Patelf5057812020-07-16 22:36:02 +0200103#define LOG_DEBUG(format, ...) fprintf(stdout, format, ##__VA_ARGS__)
104#else
105#define LOG_DEBUG(format, ...)
Kristofer Jonsson49bdee82020-04-06 13:21:21 +0200106#endif
107
108#if defined(ASSERT_DISABLE)
109#define ASSERT(args)
110#else
111#define ASSERT(args) assert(args)
112#endif
113
Kristofer Jonsson49bdee82020-04-06 13:21:21 +0200114#define UNUSED(x) ((void)x)
115
116#define VER_STR(X) VNUM_STR(X)
117#define VNUM_STR(X) #X
118
Bhavik Patel8e32b0b2020-06-23 13:48:25 +0200119#define MASK_0_31_BITS (0xFFFFFFFF)
120#define MASK_32_47_BITS (0xFFFF00000000)
121
Kristofer Jonsson3c439172020-08-05 09:38:40 +0200122/******************************************************************************
123 * Inline functions
124 ******************************************************************************/
125
Kristofer Jonsson49bdee82020-04-06 13:21:21 +0200126static const __attribute__((section("npu_driver_version"))) char driver_version_str[] = VER_STR(
127 ETHOSU_DRIVER_VERSION_MAJOR) "." VER_STR(ETHOSU_DRIVER_VERSION_MINOR) "." VER_STR(ETHOSU_DRIVER_VERSION_PATCH);
128
129static const __attribute__((section("npu_driver_arch_version"))) char driver_arch_version_str[] =
130 VER_STR(NNX_ARCH_VERSION_MAJOR) "." VER_STR(NNX_ARCH_VERSION_MINOR) "." VER_STR(NNX_ARCH_VERSION_PATCH);
131
Kristofer Jonsson49bdee82020-04-06 13:21:21 +0200132#endif // ETHOSU_COMMON_H