diff options
author | Jonny Svärd <jonny.svaerd@arm.com> | 2021-06-07 16:57:00 +0200 |
---|---|---|
committer | Jonny Svärd <jonny.svaerd@arm.com> | 2021-06-08 15:44:29 +0200 |
commit | a830f17656ee3a8bcb72483886da562d69245c39 (patch) | |
tree | b5860b6f1381ad965b0adc5ad0908343c0187eb8 /src/ethosu_common.h | |
parent | d1ea036bd870663d737db9bfbb25e2aa04a389e0 (diff) | |
download | ethos-u-core-driver-a830f17656ee3a8bcb72483886da562d69245c39.tar.gz |
Spring clean/refactor of NPU driver
These changes mostly focus on creating a better structure
for the driver. Creating a better separation between driver
and device(s).
A short summary of what this commit contains:
- Move driver specific defines from device to driver
- Prefix device functions with ethosu_dev
- Remove device specific register access' from driver
- Remove device specific debug/dump functions
- Add function prototypes for weak functions
- Remove legacy ARM_NPU_STUB support
- Rename ethosu_device.c to ethosu_device_u55.c
- Remove redundant irq handler prototype
- Remove (deprecated) hardcoded instance ethosu_drv
- Simplify versioning API
Split driver version and hardware version/information so
that driver version can be queried without a driver instance.
- Improve and simplify logging
Make warning the new default severity level to print and
reduce severity levels to:
err
warning
info
debug
- Add severity prefix to log lines. Error messages print file
and line number, debug messages print function by default.
- Clarify some log messages
- Small optimizations and bugfixes
Change-Id: I2dfbfc3a40d7eca133c82f187f422325e1e6d314
Diffstat (limited to 'src/ethosu_common.h')
-rw-r--r-- | src/ethosu_common.h | 90 |
1 files changed, 19 insertions, 71 deletions
diff --git a/src/ethosu_common.h b/src/ethosu_common.h index bf3aff0..6342df2 100644 --- a/src/ethosu_common.h +++ b/src/ethosu_common.h @@ -23,104 +23,52 @@ * Includes ******************************************************************************/ -#include "ethosu55_interface.h" - #include <stdio.h> +#include <string.h> /****************************************************************************** * Defines ******************************************************************************/ +#define UNUSED(x) ((void)x) + +#define MASK_0_31_BITS (0xFFFFFFFF) +#define MASK_32_47_BITS (0xFFFF00000000) + // Log severity levels -#define ETHOSU_LOG_EMERG 0 -#define ETHOSU_LOG_ALERT 1 -#define ETHOSU_LOG_CRIT 2 -#define ETHOSU_LOG_ERR 3 -#define ETHOSU_LOG_WARN 4 -#define ETHOSU_LOG_NOTICE 5 -#define ETHOSU_LOG_INFO 6 -#define ETHOSU_LOG_DEBUG 7 +#define ETHOSU_LOG_ERR 0 +#define ETHOSU_LOG_WARN 1 +#define ETHOSU_LOG_INFO 2 +#define ETHOSU_LOG_DEBUG 3 // Define default log severity #ifndef ETHOSU_LOG_SEVERITY #define ETHOSU_LOG_SEVERITY ETHOSU_LOG_WARN #endif -#if ETHOSU_LOG_SEVERITY >= ETHOSU_LOG_EMERG -#define LOG_EMERG(format, ...) \ - fprintf(stderr, format, ##__VA_ARGS__); \ - fflush(stderr); \ - exit(-1) -#else -#define LOG_EMERG(format, ...) -#endif - -#if ETHOSU_LOG_SEVERITY >= ETHOSU_LOG_ALERT -#define LOG_ALERT(format, ...) \ - fprintf(stderr, format, ##__VA_ARGS__); \ - fflush(stderr); \ - exit(-1) -#else -#define LOG_ALERT(format, ...) -#endif - -#if ETHOSU_LOG_SEVERITY >= ETHOSU_LOG_CRIT -#define LOG_CRIT(format, ...) \ - fprintf(stderr, format, ##__VA_ARGS__); \ - fflush(stderr); \ - exit(-1) -#else -#define LOG_CRIT(format, ...) -#endif - +// Log formatting #if ETHOSU_LOG_SEVERITY >= ETHOSU_LOG_ERR -#define LOG_ERR(format, ...) \ - fprintf(stderr, format, ##__VA_ARGS__); \ - fflush(stderr) +#define LOG_ERR(f, ...) fprintf(stderr, "E: " f " (%s:%d)\n", ##__VA_ARGS__, strrchr("/" __FILE__, '/') + 1, __LINE__) #else -#define LOG_ERR(format, ...) +#define LOG_ERR(f, ...) #endif #if ETHOSU_LOG_SEVERITY >= ETHOSU_LOG_WARN -#define LOG_WARN(format, ...) fprintf(stdout, format, ##__VA_ARGS__) +#define LOG_WARN(f, ...) fprintf(stdout, "W: " f "\n", ##__VA_ARGS__) #else -#define LOG_WARN(format, ...) -#endif - -#if ETHOSU_LOG_SEVERITY >= ETHOSU_LOG_NOTICE -#define LOG_NOTICE(format, ...) fprintf(stdout, format, ##__VA_ARGS__) -#else -#define LOG_NOTICE(format, ...) +#define LOG_WARN(f, ...) #endif #if ETHOSU_LOG_SEVERITY >= ETHOSU_LOG_INFO -#define LOG_INFO(format, ...) fprintf(stdout, format, ##__VA_ARGS__) +#define LOG_INFO(f, ...) fprintf(stdout, "I: " f "\n", ##__VA_ARGS__) #else -#define LOG_INFO(format, ...) +#define LOG_INFO(f, ...) #endif #if ETHOSU_LOG_SEVERITY >= ETHOSU_LOG_DEBUG -#define LOG_DEBUG(format, ...) fprintf(stdout, format, ##__VA_ARGS__) +#define LOG_DEBUG(f, ...) fprintf(stdout, "D: %s(): " f "\n", __FUNCTION__, ##__VA_ARGS__) #else -#define LOG_DEBUG(format, ...) +#define LOG_DEBUG(f, ...) #endif -#define UNUSED(x) ((void)x) - -#define VER_STR(X) VNUM_STR(X) -#define VNUM_STR(X) #X - -#define MASK_0_31_BITS (0xFFFFFFFF) -#define MASK_32_47_BITS (0xFFFF00000000) - -/****************************************************************************** - * Inline functions - ******************************************************************************/ - -static const __attribute__((section("npu_driver_version"))) char driver_version_str[] = VER_STR( - ETHOSU_DRIVER_VERSION_MAJOR) "." VER_STR(ETHOSU_DRIVER_VERSION_MINOR) "." VER_STR(ETHOSU_DRIVER_VERSION_PATCH); - -static const __attribute__((section("npu_driver_arch_version"))) char driver_arch_version_str[] = - VER_STR(NNX_ARCH_VERSION_MAJOR) "." VER_STR(NNX_ARCH_VERSION_MINOR) "." VER_STR(NNX_ARCH_VERSION_PATCH); - #endif // ETHOSU_COMMON_H |