From 2fbb86deb77c49b75fbeff57491a088abc9cde8d Mon Sep 17 00:00:00 2001 From: morris Date: Fri, 6 Jun 2025 18:31:47 +0800 Subject: [PATCH] feat(axi): add low level function for adjusting the arbitration priority --- .../hal/esp32c5/include/hal/axi_icm_ll.h | 41 +++++++++++++++++++ .../hal/esp32c61/include/hal/axi_icm_ll.h | 41 +++++++++++++++++++ 2 files changed, 82 insertions(+) create mode 100644 components/hal/esp32c5/include/hal/axi_icm_ll.h create mode 100644 components/hal/esp32c61/include/hal/axi_icm_ll.h diff --git a/components/hal/esp32c5/include/hal/axi_icm_ll.h b/components/hal/esp32c5/include/hal/axi_icm_ll.h new file mode 100644 index 0000000000..903a49490d --- /dev/null +++ b/components/hal/esp32c5/include/hal/axi_icm_ll.h @@ -0,0 +1,41 @@ +/* + * SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ +#pragma once + +#include +#include +#include "hal/assert.h" +#include "soc/hp_system_struct.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @brief Set arbitration priority for GDMA master port + * + * @param priority Arbitration priority for GDMA master port + */ +static inline void axi_icm_ll_set_gdma_arbiter_prio(uint8_t priority) +{ + HAL_ASSERT(priority < 2); // Ensure priority is within valid range (0-1) + HP_SYSTEM.axi_mst_pri.dma_priority = priority; +} + +/** + * @brief Set arbitration priority for Cache master port + * + * @param priority Arbitration priority for Cache master port + */ +static inline void axi_icm_ll_set_cache_arbiter_prio(uint8_t priority) +{ + HAL_ASSERT(priority < 2); // Ensure priority is within valid range (0-1) + HP_SYSTEM.axi_mst_pri.cache_priority = priority; +} + +#ifdef __cplusplus +} +#endif diff --git a/components/hal/esp32c61/include/hal/axi_icm_ll.h b/components/hal/esp32c61/include/hal/axi_icm_ll.h new file mode 100644 index 0000000000..1742a9933c --- /dev/null +++ b/components/hal/esp32c61/include/hal/axi_icm_ll.h @@ -0,0 +1,41 @@ +/* + * SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ +#pragma once + +#include +#include +#include "hal/assert.h" +#include "soc/hp_system_struct.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @brief Set arbitration priority for GDMA master port + * + * @param priority Arbitration priority for GDMA master port + */ +static inline void axi_icm_ll_set_gdma_arbiter_prio(uint8_t priority) +{ + HAL_ASSERT(priority < 2); // Ensure priority is within valid range (0-1) + HP_SYSTEM.system_axi_mst_pri.system_dma_priority = priority; +} + +/** + * @brief Set arbitration priority for Cache master port + * + * @param priority Arbitration priority for Cache master port + */ +static inline void axi_icm_ll_set_cache_arbiter_prio(uint8_t priority) +{ + HAL_ASSERT(priority < 2); // Ensure priority is within valid range (0-1) + HP_SYSTEM.system_axi_mst_pri.system_cache_priority = priority; +} + +#ifdef __cplusplus +} +#endif