diff options
author | Kristofer Jonsson <kristofer.jonsson@arm.com> | 2022-01-27 17:30:15 +0100 |
---|---|---|
committer | Kristofer Jonsson <kristofer.jonsson@arm.com> | 2022-01-28 13:20:11 +0100 |
commit | b3cde3c0db2049a27941af520061742f3be92bbc (patch) | |
tree | e62a3fcb602d6884de3862eb24f7cd3b59f1eaa9 /src | |
parent | d1750ecaebd984f961f93a723e7bc3a162b62dfa (diff) | |
download | ethos-u-core-driver-b3cde3c0db2049a27941af520061742f3be92bbc.tar.gz |
Inference begin and end user argument
Adding user argument parameter to invoke() which is passed on to
the inference_begin() and inference_end() callbacks.
Change-Id: I1372767c3a0dbd963aa395911bda7625bc6d6ee4
Diffstat (limited to 'src')
-rw-r--r-- | src/ethosu_device_u55_u65.c | 2 | ||||
-rw-r--r-- | src/ethosu_driver.c | 28 |
2 files changed, 16 insertions, 14 deletions
diff --git a/src/ethosu_device_u55_u65.c b/src/ethosu_device_u55_u65.c index 7fd31eb..9a92f63 100644 --- a/src/ethosu_device_u55_u65.c +++ b/src/ethosu_device_u55_u65.c @@ -185,7 +185,7 @@ bool ethosu_dev_handle_interrupt(struct ethosu_device *dev) if (dev->reg->STATUS.bus_status || dev->reg->STATUS.cmd_parse_error || dev->reg->STATUS.wd_fault || dev->reg->STATUS.ecc_fault || !dev->reg->STATUS.cmd_end_reached) { - LOG_ERR("NPU fault. status=0x%08x, qread=%" PRIu32 ", cmd_end_reached=%" PRIu32, + LOG_ERR("NPU fault. status=0x%08" PRIx32 ", qread=%" PRIu32 ", cmd_end_reached=%d", dev->reg->STATUS.word, dev->reg->QREAD.word, dev->reg->STATUS.cmd_end_reached); diff --git a/src/ethosu_driver.c b/src/ethosu_driver.c index fedb2a1..3383ef3 100644 --- a/src/ethosu_driver.c +++ b/src/ethosu_driver.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019-2021 Arm Limited. All rights reserved. + * Copyright (c) 2019-2022 Arm Limited. All rights reserved. * * SPDX-License-Identifier: Apache-2.0 * @@ -209,15 +209,15 @@ void __attribute__((weak)) ethosu_semaphore_give(void *sem) * Weak functions - Inference begin/end callbacks ******************************************************************************/ -void __attribute__((weak)) ethosu_inference_begin(struct ethosu_driver *drv, const void *inference_data) +void __attribute__((weak)) ethosu_inference_begin(struct ethosu_driver *drv, void *user_arg) { - UNUSED(inference_data); + UNUSED(user_arg); UNUSED(drv); } -void __attribute__((weak)) ethosu_inference_end(struct ethosu_driver *drv, const void *inference_data) +void __attribute__((weak)) ethosu_inference_end(struct ethosu_driver *drv, void *user_arg) { - UNUSED(inference_data); + UNUSED(user_arg); UNUSED(drv); } @@ -476,12 +476,13 @@ void ethosu_get_hw_info(struct ethosu_driver *drv, struct ethosu_hw_info *hw) ethosu_dev_get_hw_info(drv->dev, hw); } -int ethosu_invoke(struct ethosu_driver *drv, - const void *custom_data_ptr, - const int custom_data_size, - const uint64_t *base_addr, - const size_t *base_addr_size, - const int num_base_addr) +int ethosu_invoke_v3(struct ethosu_driver *drv, + const void *custom_data_ptr, + const int custom_data_size, + const uint64_t *base_addr, + const size_t *base_addr_size, + const int num_base_addr, + void *user_arg) { const struct cop_data_s *data_ptr = custom_data_ptr; const struct cop_data_s *data_end = custom_data_ptr + custom_data_size; @@ -532,7 +533,8 @@ int ethosu_invoke(struct ethosu_driver *drv, drv->status_error = false; - ethosu_inference_begin(drv, custom_data_ptr); + ethosu_inference_begin(drv, user_arg); + while (data_ptr < data_end) { int ret = 0; @@ -577,7 +579,7 @@ int ethosu_invoke(struct ethosu_driver *drv, } } - ethosu_inference_end(drv, custom_data_ptr); + ethosu_inference_end(drv, user_arg); if (!drv->status_error && !drv->dev_power_always_on) { |