blob: b22bffd0cdd4289d0534a16d772262c2c958945d [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
Bhavik Patelf5057812020-07-16 22:36:02 +020035#if defined(DRIVER_LOG_SEVERITY) && (DRIVER_LOG_SEVERITY >= LOG_SEVERITY_EMERG)
36#define LOG_EMERG(format, ...) \
37 fprintf(stderr, format, ##__VA_ARGS__); \
38 fflush(stderr); \
39 exit(-1)
Kristofer Jonsson49bdee82020-04-06 13:21:21 +020040#else
Bhavik Patelf5057812020-07-16 22:36:02 +020041#define LOG_EMERG(format, ...)
42#endif
43
44#if defined(DRIVER_LOG_SEVERITY) && (DRIVER_LOG_SEVERITY >= LOG_SEVERITY_ALERT)
45#define LOG_ALERT(format, ...) \
46 fprintf(stderr, format, ##__VA_ARGS__); \
47 fflush(stderr); \
48 exit(-1)
49#else
50#define LOG_ALERT(format, ...)
51#endif
52
53#if defined(DRIVER_LOG_SEVERITY) && (DRIVER_LOG_SEVERITY >= LOG_SEVERITY_CRIT)
54#define LOG_CRIT(format, ...) \
55 fprintf(stderr, format, ##__VA_ARGS__); \
56 fflush(stderr); \
57 exit(-1)
58#else
59#define LOG_CRIT(format, ...)
60#endif
61
62#if defined(DRIVER_LOG_SEVERITY) && (DRIVER_LOG_SEVERITY >= LOG_SEVERITY_ERR)
Kristofer Jonsson49bdee82020-04-06 13:21:21 +020063#define LOG_ERR(format, ...) \
64 fprintf(stderr, format, ##__VA_ARGS__); \
65 fflush(stderr)
Bhavik Patelf5057812020-07-16 22:36:02 +020066#else
67#define LOG_ERR(format, ...)
68#endif
Kristofer Jonsson49bdee82020-04-06 13:21:21 +020069
Bhavik Patelf5057812020-07-16 22:36:02 +020070#if defined(DRIVER_LOG_SEVERITY) && (DRIVER_LOG_SEVERITY >= LOG_SEVERITY_WARN)
71#define LOG_WARN(format, ...) fprintf(stdout, format, ##__VA_ARGS__)
72#else
73#define LOG_WARN(format, ...)
74#endif
75
76#if defined(DRIVER_LOG_SEVERITY) && (DRIVER_LOG_SEVERITY >= LOG_SEVERITY_NOTICE)
77#define LOG_NOTICE(format, ...) fprintf(stdout, format, ##__VA_ARGS__)
78#else
79#define LOG_NOTICE(format, ...)
80#endif
81
82#if defined(DRIVER_LOG_SEVERITY) && (DRIVER_LOG_SEVERITY >= LOG_SEVERITY_INFO)
83#define LOG_INFO(format, ...) fprintf(stdout, format, ##__VA_ARGS__)
84#else
85#define LOG_INFO(format, ...)
86#endif
87
88#if defined(DRIVER_LOG_SEVERITY) && (DRIVER_LOG_SEVERITY >= LOG_SEVERITY_DEBUG)
89#define LOG_DEBUG(format, ...) fprintf(stdout, format, ##__VA_ARGS__)
90#else
91#define LOG_DEBUG(format, ...)
Kristofer Jonsson49bdee82020-04-06 13:21:21 +020092#endif
93
94#if defined(ASSERT_DISABLE)
95#define ASSERT(args)
96#else
97#define ASSERT(args) assert(args)
98#endif
99
Kristofer Jonsson49bdee82020-04-06 13:21:21 +0200100#define UNUSED(x) ((void)x)
101
102#define VER_STR(X) VNUM_STR(X)
103#define VNUM_STR(X) #X
104
Bhavik Patel8e32b0b2020-06-23 13:48:25 +0200105#define MASK_0_31_BITS (0xFFFFFFFF)
106#define MASK_32_47_BITS (0xFFFF00000000)
107
Kristofer Jonsson3c439172020-08-05 09:38:40 +0200108/******************************************************************************
109 * Inline functions
110 ******************************************************************************/
111
Kristofer Jonsson49bdee82020-04-06 13:21:21 +0200112static const __attribute__((section("npu_driver_version"))) char driver_version_str[] = VER_STR(
113 ETHOSU_DRIVER_VERSION_MAJOR) "." VER_STR(ETHOSU_DRIVER_VERSION_MINOR) "." VER_STR(ETHOSU_DRIVER_VERSION_PATCH);
114
115static const __attribute__((section("npu_driver_arch_version"))) char driver_arch_version_str[] =
116 VER_STR(NNX_ARCH_VERSION_MAJOR) "." VER_STR(NNX_ARCH_VERSION_MINOR) "." VER_STR(NNX_ARCH_VERSION_PATCH);
117
Kristofer Jonsson49bdee82020-04-06 13:21:21 +0200118#endif // ETHOSU_COMMON_H