mirror of
https://github.com/espressif/esp-idf
synced 2025-03-09 09:09:10 -04:00
feat(l2mem): enable buffer mode for ahb burst access
This commit is contained in:
parent
099c5a8a69
commit
2cd87223a8
@ -58,6 +58,7 @@
|
||||
#include "esp32c2/rom/secure_boot.h"
|
||||
#elif CONFIG_IDF_TARGET_ESP32P4
|
||||
#include "soc/hp_sys_clkrst_reg.h"
|
||||
#include "hal/l2mem_ll.h"
|
||||
#elif CONFIG_IDF_TARGET_ESP32H21
|
||||
#include "esp_memprot.h"
|
||||
#endif
|
||||
@ -403,6 +404,11 @@ void IRAM_ATTR call_start_cpu0(void)
|
||||
);
|
||||
#endif
|
||||
|
||||
#if CONFIG_IDF_TARGET_ESP32P4
|
||||
// enable the buffer mode before any AHB burst happens, that's why we do it here
|
||||
l2mem_ll_enable_ahb_burst_buffer(true, true);
|
||||
#endif
|
||||
|
||||
#if SOC_BRANCH_PREDICTOR_SUPPORTED
|
||||
esp_cpu_branch_prediction_enable();
|
||||
#endif
|
||||
|
31
components/hal/esp32p4/include/hal/l2mem_ll.h
Normal file
31
components/hal/esp32p4/include/hal/l2mem_ll.h
Normal file
@ -0,0 +1,31 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2024-2025 Espressif Systems (Shanghai) CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include <stdbool.h>
|
||||
#include "soc/hp_system_struct.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief Enable the burst buffer for L2 memory
|
||||
*
|
||||
* @note During AHB burst access to the L2MEM, in order to reduce the AHB request to the L2MEM arbiter,
|
||||
* enabling the buffer mode can improve the performance.
|
||||
* @note This function must be called before any AHB burst access to the L2MEM.
|
||||
*/
|
||||
static inline void l2mem_ll_enable_ahb_burst_buffer(bool en_read, bool en_write)
|
||||
{
|
||||
HP_SYSTEM.l2_mem_ahb_buffer_ctrl.l2_mem_ahb_rdbuffer_en = en_read;
|
||||
HP_SYSTEM.l2_mem_ahb_buffer_ctrl.l2_mem_ahb_wrbuffer_en = en_write;
|
||||
}
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
Loading…
x
Reference in New Issue
Block a user