refactor(hal): extract cache && mmu HAL into esp_hal_cache

This commit is contained in:
morris
2026-09-16 21:40:16 +08:00
parent e492079576
commit 193fca5b95
111 changed files with 226 additions and 285 deletions
-8
View File
@@ -62,18 +62,10 @@ if(target STREQUAL "esp32")
list(APPEND srcs "${target_folder}/dport_access.c")
endif()
if(CONFIG_SOC_DEBUG_PROBE_SUPPORTED)
list(APPEND srcs "${target_folder}/debug_probe_periph.c")
endif()
if(CONFIG_SOC_MPI_SUPPORTED)
list(APPEND srcs "${target_folder}/mpi_periph.c")
endif()
if(CONFIG_SOC_BOD_SUPPORTED)
list(APPEND srcs "${target_folder}/power_supply_periph.c")
endif()
set(ldfragments "linker.lf")
idf_component_register(SRCS ${srcs}
-114
View File
@@ -1,114 +0,0 @@
/*
* SPDX-FileCopyrightText: 2020-2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0 OR MIT
*/
#include "hal/pcnt_periph.h"
#include "soc/gpio_sig_map.h"
#include "soc/soc.h"
const soc_pcnt_signal_desc_t soc_pcnt_signals[1] = {
[0] = {
.irq_id = ETS_PCNT_INTR_SOURCE,
.module_name = "pcnt0",
.units = {
[0] = {
.channels = {
[0] = {
.ctl_sig_id_matrix = PCNT_CTRL_CH0_IN0_IDX,
.pulse_sig_id_matrix = PCNT_SIG_CH0_IN0_IDX
},
[1] = {
.ctl_sig_id_matrix = PCNT_CTRL_CH1_IN0_IDX,
.pulse_sig_id_matrix = PCNT_SIG_CH1_IN0_IDX
}
}
},
[1] = {
.channels = {
[0] = {
.ctl_sig_id_matrix = PCNT_CTRL_CH0_IN1_IDX,
.pulse_sig_id_matrix = PCNT_SIG_CH0_IN1_IDX
},
[1] = {
.ctl_sig_id_matrix = PCNT_CTRL_CH1_IN1_IDX,
.pulse_sig_id_matrix = PCNT_SIG_CH1_IN1_IDX
}
}
},
[2] = {
.channels = {
[0] = {
.ctl_sig_id_matrix = PCNT_CTRL_CH0_IN2_IDX,
.pulse_sig_id_matrix = PCNT_SIG_CH0_IN2_IDX
},
[1] = {
.ctl_sig_id_matrix = PCNT_CTRL_CH1_IN2_IDX,
.pulse_sig_id_matrix = PCNT_SIG_CH1_IN2_IDX
}
}
},
[3] = {
.channels = {
[0] = {
.ctl_sig_id_matrix = PCNT_CTRL_CH0_IN3_IDX,
.pulse_sig_id_matrix = PCNT_SIG_CH0_IN3_IDX
},
[1] = {
.ctl_sig_id_matrix = PCNT_CTRL_CH1_IN3_IDX,
.pulse_sig_id_matrix = PCNT_SIG_CH1_IN3_IDX
}
}
},
[4] = {
.channels = {
[0] = {
.ctl_sig_id_matrix = PCNT_CTRL_CH0_IN4_IDX,
.pulse_sig_id_matrix = PCNT_SIG_CH0_IN4_IDX
},
[1] = {
.ctl_sig_id_matrix = PCNT_CTRL_CH1_IN4_IDX,
.pulse_sig_id_matrix = PCNT_SIG_CH1_IN4_IDX
}
}
},
[5] = {
.channels = {
[0] = {
.ctl_sig_id_matrix = PCNT_CTRL_CH0_IN5_IDX,
.pulse_sig_id_matrix = PCNT_SIG_CH0_IN5_IDX
},
[1] = {
.ctl_sig_id_matrix = PCNT_CTRL_CH1_IN5_IDX,
.pulse_sig_id_matrix = PCNT_SIG_CH1_IN5_IDX
}
}
},
[6] = {
.channels = {
[0] = {
.ctl_sig_id_matrix = PCNT_CTRL_CH0_IN6_IDX,
.pulse_sig_id_matrix = PCNT_SIG_CH0_IN6_IDX
},
[1] = {
.ctl_sig_id_matrix = PCNT_CTRL_CH1_IN6_IDX,
.pulse_sig_id_matrix = PCNT_SIG_CH1_IN6_IDX
}
}
},
[7] = {
.channels = {
[0] = {
.ctl_sig_id_matrix = PCNT_CTRL_CH0_IN7_IDX,
.pulse_sig_id_matrix = PCNT_SIG_CH0_IN7_IDX
},
[1] = {
.ctl_sig_id_matrix = PCNT_CTRL_CH1_IN7_IDX,
.pulse_sig_id_matrix = PCNT_SIG_CH1_IN7_IDX
}
}
}
}
}
};
@@ -1,11 +0,0 @@
/*
* SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0 OR MIT
*/
#include "soc/power_supply_periph.h"
const power_supply_signal_conn_t power_supply_periph_signal = {
.irq = ETS_RTC_CORE_INTR_SOURCE,
};
@@ -1,11 +0,0 @@
/*
* SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0 OR MIT
*/
#include "soc/power_supply_periph.h"
const power_supply_signal_conn_t power_supply_periph_signal = {
.irq = ETS_RTC_CORE_INTR_SOURCE,
};
@@ -1,11 +0,0 @@
/*
* SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0 OR MIT
*/
#include "soc/power_supply_periph.h"
const power_supply_signal_conn_t power_supply_periph_signal = {
.irq = ETS_RTC_CORE_INTR_SOURCE,
};
@@ -1,11 +0,0 @@
/*
* SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0 OR MIT
*/
#include "soc/power_supply_periph.h"
const power_supply_signal_conn_t power_supply_periph_signal = {
.irq = ETS_LP_RTC_TIMER_INTR_SOURCE,
};
@@ -1,11 +0,0 @@
/*
* SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0 OR MIT
*/
#include "soc/power_supply_periph.h"
const power_supply_signal_conn_t power_supply_periph_signal = {
.irq = ETS_LP_RTC_TIMER_INTR_SOURCE,
};
@@ -1,11 +0,0 @@
/*
* SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0 OR MIT
*/
#include "soc/power_supply_periph.h"
const power_supply_signal_conn_t power_supply_periph_signal = {
.irq = ETS_LP_RTC_TIMER_INTR_SOURCE,
};
@@ -1,11 +0,0 @@
/*
* SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0 OR MIT
*/
#include "soc/power_supply_periph.h"
const power_supply_signal_conn_t power_supply_periph_signal = {
.irq = ETS_LP_RTC_TIMER_INTR_SOURCE,
};
@@ -1,11 +0,0 @@
/*
* SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0 OR MIT
*/
#include "soc/power_supply_periph.h"
const power_supply_signal_conn_t power_supply_periph_signal = {
.irq = ETS_LP_RTC_TIMER_INTR_SOURCE,
};
@@ -1,11 +0,0 @@
/*
* SPDX-FileCopyrightText: 2026 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0 OR MIT
*/
#include "soc/power_supply_periph.h"
const power_supply_signal_conn_t power_supply_periph_signal = {
.irq = ETS_LP_RTC_TIMER_INTR_SOURCE,
};
@@ -1,54 +0,0 @@
/*
* SPDX-FileCopyrightText: 2023-2026 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0 OR MIT
*/
#include "soc/gpio_sig_map.h"
#include "soc/lp_gpio_sig_map.h"
#include "soc/debug_probe_periph.h"
const debug_probe_signal_conn_t debug_probe_periph_signals = {
.units = {
[0] = {
.out_sig = {
[0] = HP_PROBE_TOP_OUT0_IDX,
[1] = HP_PROBE_TOP_OUT1_IDX,
[2] = HP_PROBE_TOP_OUT2_IDX,
[3] = HP_PROBE_TOP_OUT3_IDX,
[4] = HP_PROBE_TOP_OUT4_IDX,
[5] = HP_PROBE_TOP_OUT5_IDX,
[6] = HP_PROBE_TOP_OUT6_IDX,
[7] = HP_PROBE_TOP_OUT7_IDX,
[8] = HP_PROBE_TOP_OUT8_IDX,
[9] = HP_PROBE_TOP_OUT9_IDX,
[10] = HP_PROBE_TOP_OUT10_IDX,
[11] = HP_PROBE_TOP_OUT11_IDX,
[12] = HP_PROBE_TOP_OUT12_IDX,
[13] = HP_PROBE_TOP_OUT13_IDX,
[14] = HP_PROBE_TOP_OUT14_IDX,
[15] = HP_PROBE_TOP_OUT15_IDX,
}
},
[1] = {
.out_sig = {
[0] = LP_PROBE_TOP_OUT0_IDX,
[1] = LP_PROBE_TOP_OUT1_IDX,
[2] = LP_PROBE_TOP_OUT2_IDX,
[3] = LP_PROBE_TOP_OUT3_IDX,
[4] = LP_PROBE_TOP_OUT4_IDX,
[5] = LP_PROBE_TOP_OUT5_IDX,
[6] = LP_PROBE_TOP_OUT6_IDX,
[7] = LP_PROBE_TOP_OUT7_IDX,
[8] = LP_PROBE_TOP_OUT8_IDX,
[9] = LP_PROBE_TOP_OUT9_IDX,
[10] = LP_PROBE_TOP_OUT10_IDX,
[11] = LP_PROBE_TOP_OUT11_IDX,
[12] = LP_PROBE_TOP_OUT12_IDX,
[13] = LP_PROBE_TOP_OUT13_IDX,
[14] = LP_PROBE_TOP_OUT14_IDX,
[15] = LP_PROBE_TOP_OUT15_IDX,
}
}
}
};
@@ -1,69 +0,0 @@
/*
* SPDX-FileCopyrightText: 2023-2026 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0 OR MIT
*/
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
/**
* @brief Target module that we want to attach the HP probe to
*/
typedef enum {
DEBUG_PROBE_TARGET_HP_MIPI_CSI_HOST = 0, // MIPI CSI Host
DEBUG_PROBE_TARGET_HP_AXI_GDMA = 1, // AXI GDMA
DEBUG_PROBE_TARGET_HP_I3C = 2, // I3C
DEBUG_PROBE_TARGET_HP_TCM = 3, // HP TCM Memory
DEBUG_PROBE_TARGET_HP_USB_OTG_FS = 4, // USB OTG FS (1.1)
DEBUG_PROBE_TARGET_HP_MIPI_CSI_BRG = 5, // MIPI CSI Bridge
DEBUG_PROBE_TARGET_HP_MSPI_PSRAM = 6, // MSPI PSRAM
DEBUG_PROBE_TARGET_HP_MIPI_DSI_BRG = 7, // MIPI DSI Bridge
DEBUG_PROBE_TARGET_HP_DW_GDMA = 8, // DW GDMA
DEBUG_PROBE_TARGET_HP_AXI_ICM = 9, // AXI ICM matrix
DEBUG_PROBE_TARGET_HP_L2_MEM = 10, // L2 Memory
DEBUG_PROBE_TARGET_HP_BIT_SCRAMBLER = 11, // Bit Scrambler
DEBUG_PROBE_TARGET_HP_MSPI_FLASH = 12, // MSPI Flash
DEBUG_PROBE_TARGET_HP_L1_CACHE = 13, // L1 Cache
DEBUG_PROBE_TARGET_HP_CORE = 14, // HP Core
DEBUG_PROBE_TARGET_HP_L2_CACHE = 15, // L2 Cache
DEBUG_PROBE_TARGET_HP_LP_PROBE_IN = 16, // LP System Probe In
DEBUG_PROBE_TARGET_HP_USJ = 17, // USB Serial JTAG
DEBUG_PROBE_TARGET_HP_EMAC = 18, // EMAC
DEBUG_PROBE_TARGET_HP_JPEG = 19, // JPEG
DEBUG_PROBE_TARGET_HP_PPA = 20, // PPA
DEBUG_PROBE_TARGET_HP_DMA2D = 21, // DMA2D
DEBUG_PROBE_TARGET_HP_LEDC0 = 22, // LEDC0
DEBUG_PROBE_TARGET_HP_SDMMC = 23, // SDMMC
DEBUG_PROBE_TARGET_HP_ISP = 24, // ISP
DEBUG_PROBE_TARGET_HP_USB_OTG_HS = 25, // USB OTG HS (2.0)
DEBUG_PROBE_TARGET_HP_H264 = 26, // H264
DEBUG_PROBE_TARGET_HP_MCPWM0 = 27, // MCPWM0
DEBUG_PROBE_TARGET_HP_MCPWM1 = 28, // MCPWM1
DEBUG_PROBE_TARGET_HP_REGDMA = 29, // REGDMA
DEBUG_PROBE_TARGET_HP_PVT = 30, // PVT
} soc_debug_probe_target_hp_t;
/**
* @brief Target module that we want to attach the LP probe to
*/
typedef enum {
DEBUG_PROBE_TARGET_LP_PMU = 0, // LP PMU
DEBUG_PROBE_TARGET_LP_TCM_RAM = 1, // LP TCM RAM
DEBUG_PROBE_TARGET_LP_TCM_ROM = 2, // LP TCM ROM
DEBUG_PROBE_TARGET_LP_CORE = 3, // LP Core
DEBUG_PROBE_TARGET_LP_ADC = 4, // LP ADC
DEBUG_PROBE_TARGET_LP_SPI = 5, // LP SPI
DEBUG_PROBE_TARGET_LP_TOUCH = 6, // LP Touch
DEBUG_PROBE_TARGET_LP_ANA_PERI = 7, // LP Analog Peripherals
DEBUG_PROBE_TARGET_LP_AON_CLKRST = 8, // LP AON Clock/Reset
DEBUG_PROBE_TARGET_LP_MISC = 9, // LP System Misc
DEBUG_PROBE_TARGET_LP_HP_PROBE_IN = 10, // HP System Probe In
} soc_debug_probe_target_lp_t;
#ifdef __cplusplus
}
#endif
@@ -1,11 +0,0 @@
/*
* SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0 OR MIT
*/
#include "soc/power_supply_periph.h"
const power_supply_signal_conn_t power_supply_periph_signal = {
.irq = ETS_LP_ANAPERI_INTR_SOURCE,
};
@@ -1,11 +0,0 @@
/*
* SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0 OR MIT
*/
#include "soc/power_supply_periph.h"
const power_supply_signal_conn_t power_supply_periph_signal = {
.irq = ETS_RTC_CORE_INTR_SOURCE,
};
@@ -1,11 +0,0 @@
/*
* SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0 OR MIT
*/
#include "soc/power_supply_periph.h"
const power_supply_signal_conn_t power_supply_periph_signal = {
.irq = ETS_RTC_CORE_INTR_SOURCE,
};
@@ -1,54 +0,0 @@
/*
* SPDX-FileCopyrightText: 2023-2026 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0 OR MIT
*/
#include "soc/gpio_sig_map.h"
#include "soc/lp_gpio_sig_map.h"
#include "soc/debug_probe_periph.h"
const debug_probe_signal_conn_t debug_probe_periph_signals = {
.units = {
[0] = {
.out_sig = {
[0] = HP_PROBE_TOP_OUT0_IDX,
[1] = HP_PROBE_TOP_OUT1_IDX,
[2] = HP_PROBE_TOP_OUT2_IDX,
[3] = HP_PROBE_TOP_OUT3_IDX,
[4] = HP_PROBE_TOP_OUT4_IDX,
[5] = HP_PROBE_TOP_OUT5_IDX,
[6] = HP_PROBE_TOP_OUT6_IDX,
[7] = HP_PROBE_TOP_OUT7_IDX,
[8] = HP_PROBE_TOP_OUT8_IDX,
[9] = HP_PROBE_TOP_OUT9_IDX,
[10] = HP_PROBE_TOP_OUT10_IDX,
[11] = HP_PROBE_TOP_OUT11_IDX,
[12] = HP_PROBE_TOP_OUT12_IDX,
[13] = HP_PROBE_TOP_OUT13_IDX,
[14] = HP_PROBE_TOP_OUT14_IDX,
[15] = HP_PROBE_TOP_OUT15_IDX,
}
},
[1] = {
.out_sig = {
[0] = LP_PROBE_TOP_OUT0_IDX,
[1] = LP_PROBE_TOP_OUT1_IDX,
[2] = LP_PROBE_TOP_OUT2_IDX,
[3] = LP_PROBE_TOP_OUT3_IDX,
[4] = LP_PROBE_TOP_OUT4_IDX,
[5] = LP_PROBE_TOP_OUT5_IDX,
[6] = LP_PROBE_TOP_OUT6_IDX,
[7] = LP_PROBE_TOP_OUT7_IDX,
[8] = LP_PROBE_TOP_OUT8_IDX,
[9] = LP_PROBE_TOP_OUT9_IDX,
[10] = LP_PROBE_TOP_OUT10_IDX,
[11] = LP_PROBE_TOP_OUT11_IDX,
[12] = LP_PROBE_TOP_OUT12_IDX,
[13] = LP_PROBE_TOP_OUT13_IDX,
[14] = LP_PROBE_TOP_OUT14_IDX,
[15] = LP_PROBE_TOP_OUT15_IDX,
}
}
}
};
@@ -1,62 +0,0 @@
/*
* SPDX-FileCopyrightText: 2023-2026 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0 OR MIT
*/
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
/**
* @brief Target module that we want to attach the HP probe to
*/
typedef enum {
DEBUG_PROBE_TARGET_HP_USB_OTG_HS = 0, // USB OTG HS
DEBUG_PROBE_TARGET_HP_AXI_GDMA = 1, // AXI GDMA
DEBUG_PROBE_TARGET_HP_TCM = 3, // HP TCM RAM
DEBUG_PROBE_TARGET_HP_MSPI_PSRAM = 6, // MSPI PSRAM
DEBUG_PROBE_TARGET_HP_AXI_ICM = 9, // HP ICM matrix
DEBUG_PROBE_TARGET_HP_BIT_SCRAMBLER = 11, // Bit Scrambler
DEBUG_PROBE_TARGET_HP_MSPI_FLASH = 12, // MSPI Flash
DEBUG_PROBE_TARGET_HP_CACHE = 13, // Cache
DEBUG_PROBE_TARGET_HP_CORE = 14, // HP Core
DEBUG_PROBE_TARGET_HP_LP_PROBE_IN = 16, // LP System Probe In
DEBUG_PROBE_TARGET_HP_EMAC = 18, // GMAC
DEBUG_PROBE_TARGET_HP_JPEG = 19, // JPEG
DEBUG_PROBE_TARGET_HP_PPA = 20, // PPA
DEBUG_PROBE_TARGET_HP_DMA2D = 21, // DMA2D
DEBUG_PROBE_TARGET_HP_LEDC0 = 22, // LEDC0
DEBUG_PROBE_TARGET_HP_SDMMC = 23, // SDMMC
DEBUG_PROBE_TARGET_HP_LEDC1 = 24, // LEDC1
DEBUG_PROBE_TARGET_HP_MCPWM2 = 25, // MCPWM2
DEBUG_PROBE_TARGET_HP_MCPWM3 = 26, // MCPWM3
DEBUG_PROBE_TARGET_HP_MCPWM0 = 27, // MCPWM0
DEBUG_PROBE_TARGET_HP_MCPWM1 = 28, // MCPWM1
DEBUG_PROBE_TARGET_HP_REGDMA = 29, // REGDMA
DEBUG_PROBE_TARGET_HP_ZERO_DET = 30, // Zero detection
} soc_debug_probe_target_hp_t;
/**
* @brief Target module that we want to attach the LP probe to
*/
typedef enum {
DEBUG_PROBE_TARGET_LP_PMU = 0, // LP PMU
DEBUG_PROBE_TARGET_LP_TCM = 1, // LP TCM
DEBUG_PROBE_TARGET_LP_TSENS = 2, // LP TSENS
DEBUG_PROBE_TARGET_LP_CORE = 3, // LP Core
DEBUG_PROBE_TARGET_LP_ADC = 4, // LP ADC
DEBUG_PROBE_TARGET_LP_SPI = 5, // LP SPI
DEBUG_PROBE_TARGET_LP_TOUCH = 6, // LP Touch
DEBUG_PROBE_TARGET_LP_ANA_PERI = 7, // LP Analog Peripherals
DEBUG_PROBE_TARGET_LP_AON_CLKRST = 8, // LP AON Clock/Reset
DEBUG_PROBE_TARGET_LP_TRNG = 9, // LP TRNG
DEBUG_PROBE_TARGET_LP_MISC = 10, // LP System Misc
DEBUG_PROBE_TARGET_LP_HP_PROBE_IN = 11, // HP System Probe In
} soc_debug_probe_target_lp_t;
#ifdef __cplusplus
}
#endif
@@ -1,11 +0,0 @@
/*
* SPDX-FileCopyrightText: 2026 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0 OR MIT
*/
#include "soc/power_supply_periph.h"
const power_supply_signal_conn_t power_supply_periph_signal = {
.irq = ETS_LP_ANAPERI_INTR_SOURCE,
};
@@ -1,28 +0,0 @@
/*
* SPDX-FileCopyrightText: 2023-2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0 OR MIT
*/
#pragma once
#include <stdint.h>
#include "soc/soc_caps.h"
#ifdef __cplusplus
extern "C" {
#endif
#if SOC_DEBUG_PROBE_SUPPORTED
typedef struct {
struct {
const int out_sig[SOC_DEBUG_PROBE_MAX_OUTPUT_WIDTH];
} units[SOC_DEBUG_PROBE_NUM_UNIT];
} debug_probe_signal_conn_t;
extern const debug_probe_signal_conn_t debug_probe_periph_signals;
#endif // SOC_DEBUG_PROBE_SUPPORTED
#ifdef __cplusplus
}
#endif
@@ -1,23 +0,0 @@
/*
* SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0 OR MIT
*/
#pragma once
#include "soc/interrupts.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef struct {
const uint8_t irq;
} power_supply_signal_conn_t;
extern const power_supply_signal_conn_t power_supply_periph_signal;
#ifdef __cplusplus
}
#endif