Commit Graph

51 Commits

Author SHA1 Message Date
Jeroen Domburg
a1ba660b4a change(system): heap_caps_alloc returns aligned memory if caps indicate a need for it
The implicit promise of heap_alloc_caps() and friends is that the memory it
returns is fit for the purpose as requested in the caps field. Before
this commit, that did not happen; e.g. DMA-capable memory wass returned
from a correct region, but not aligned/sized to something the DMA subsystem
can handle.

This commit adds an API to the esp_mm component that is then used by the
heap component to adjust allocation alignment, caps and size dependent on
the hardware requirement of the requested allocation caps.
2024-05-27 12:41:18 +08:00
Armando
10d3912c70 feat(xip_psram): support xip psram feature on esp32p4 2024-05-22 15:56:07 +08:00
Armando
e36a396801 change(test): test changes for esp cache malloc 2024-04-15 15:34:51 +08:00
Armando
0df418facd change(cache): update to use heap cap malloc flags 2024-04-15 15:34:51 +08:00
Armando
b658c712e7 change(cache): change esp_cache_aligned_alloc_log_e_to_w 2024-04-15 09:49:25 +08:00
laokaiyao
65b1fd33d3 ci(esp32c5mp): disable the unsupported tests 2024-04-07 12:13:29 +08:00
Armando
f0518b3c16 feat(dma): advanced dma malloc helper 2024-04-02 14:30:14 +08:00
wanlei
20c18ac52b feat(esp32c61): final introduce helloworld support 2024-04-02 10:50:52 +08:00
Armando
be5af1c737 test(cache): added test for cache_prefer_m/calloc 2024-03-26 18:03:15 +08:00
Armando
de70ed1c84 feat(cache): added cache_prefer_m/calloc 2024-03-26 18:03:15 +08:00
Armando
905b427479 test(cache): added test for M2C with ESP_CACHE_MSYNC_FLAG_UNALIGNED 2024-03-22 15:38:50 +08:00
Armando
9e36994a7b bugfix(cache): don't allow M2C direction ESP_CACHE_MSYNC_FLAG_UNALIGNED 2024-03-22 15:38:50 +08:00
laokaiyao
c9d6a11d1d feat(esp32c5mp): support to run hello world on esp32c5 mp 2024-03-21 16:18:03 +08:00
Konstantin Kondrashov
3f89072af1 feat(all): Use PRIx macro in all logs 2024-03-12 11:15:53 +02:00
wanlei
ee02b71f1c feat(esp32c61): introduce target esp32c61 2024-03-01 21:12:25 +08:00
laokaiyao
11e19f40b9 feat(esp32c5): support to build hello world on esp32c5 beta3 2024-01-09 13:11:11 +08:00
Darian
cc34c4fc08 Merge branch 'contrib/github_pr_12481' into 'master'
Many places in the ESP_SYSTEM are using CONFIG_FREERTOS_UNICORE instead of CONFIG_ESP_SYSTEM_SINGLE_CORE_MODE (GitHub PR)

Closes IDFGH-11333

See merge request espressif/esp-idf!27435
2023-12-01 19:33:19 +08:00
laokaiyao
bb0879b3f8 feat(esp32c5): introduce target esp32c5 2023-11-28 16:14:17 +08:00
fl0wl0w
d149c1b26f Use configuration option instead of in components not related to FreeRTOS
Mergeshttps://github.com/espressif/esp-idf/pull/12481
2023-11-28 07:49:20 +00:00
Jakob Hasse
548022fbe6 refactor(linux): excluded all non-Linux components from build
* All components which won't build (yet) on Linux are excluded.
  This enables switching to Linux in an application without
  explicitly setting COMPONENTS to main in the main
  CMakeLists.txt.
* ESP Timer provides headers for Linux now
* automatically disabling LWIP in Kconfig if it is not available

doc(linux): brought section
  "Component Linux/Mock Support Overview" up to date
2023-10-16 17:06:54 +08:00
Armando
1f8f0a5285 feat(cache): added private API to get cache alignment requirements 2023-10-10 18:09:01 +08:00
Armando
fc4b9d9507 refactor(esp_mm): reformat code with astyle_py 2 2023-10-09 15:29:31 +08:00
Armando
3d4b60afc0 refactor(esp_mm): reformat code with astyle_py 2023-10-08 10:36:04 +08:00
Armando
ec27891af6 change(cache): swap cache hal arg 'type' and 'level' 2023-09-22 14:19:41 +08:00
Armando
0a1503897c feat(cache): support esp_cache_msync for instructions 2023-09-22 14:19:41 +08:00
Armando
e8813ddd1d feat(cache): added an helper API for cache-align-malloc 2023-09-22 14:19:41 +08:00
Armando
ea38a2e9a4 feat(cache): support cache driver on esp32p4 2023-09-22 14:19:41 +08:00
Darian Leung
287bdc5e61 fix(test_apps): Trim builds of component test apps
Some component test apps do not use the "set(COMPONENTS main)" command in their
project level "CMakeLists.txt", thus leading to their builds pulling in all
ESP-IDF components.

This commit trims the build of multiple component test apps:

- Add "set(COMPONENTS main ...)" to project level "CMakeLists.txt"
- Add missing "PRIV_REQUIRES" in some "main" component "CMakeLists.txt"

Also removed repeated configuraiton options in legacy_i2c_driver/sdkconfig.ci.defaults
as they are already specified in legacy_i2c_driver/sdkconfig.defaults
2023-09-18 17:16:37 +08:00
Armando
de77ab3061 change(soc): added SOC_ prefix to mmu defs 2023-09-05 15:47:26 +08:00
Armando
7dbd3f6909 feat(ci): Enable p4 example, test_apps and unit tests CI build 2023-08-24 12:51:19 +08:00
Armando
8c8affc812 feat(mmu): support mmu and flash mmap driver on p4 2023-08-15 10:17:03 +08:00
Armando
706d684418 feat(esp32p4): introduced new target esp32p4, supported hello_world 2023-08-09 19:33:25 +08:00
Armando
8382b75cac refactor(cache): improved cache test with set cache dirty first 2023-08-01 11:00:49 +00:00
Armando
88c64f609b change(cache): remove similar aim test 2023-08-01 11:00:49 +00:00
Armando
75cec2d58a feat(cache): added psram stack test 2023-08-01 11:00:49 +00:00
Armando
ae6d9e2b93 fix(cache): added alignment check for M2C direction 2023-07-20 12:20:42 +08:00
Armando
eb1831f8d7 fix(cache): no longer use freeze in esp_cache_msync
Writeback and invalidation don't need cache to be frozen first
2023-07-20 10:45:57 +08:00
Armando
da8afe7c78 feat(cache): added direction selection to esp_cache_msync API
ESP_CACHE_MSYNC_FLAG_DIR_C2M: From cache to memory
ESP_CACHE_MSYNC_FLAG_DIR_M2C: From memory to cache

By default, if no direction flag is set, it will fallback C2M direction.

For M2C direction, now this API will do an invalidation.
2023-07-11 11:19:10 +08:00
morris
f0c07f82b5 fix(test): check call graph for hal component 2023-07-05 09:09:01 +08:00
Armando
101e6a18eb esp32p4: introduce the target
Add esp32p4 target to tools and Kconfig
Create directories and files that are essential for `idf.py --preview set-target esp32p4`
2023-06-13 15:16:11 +08:00
Marius Vikhammer
bca026455c ci: remove redundent ci configs for chip support and network components
CI would build psram config test apps even for target with no psram.
2023-04-26 09:54:29 +08:00
laokaiyao
b7053b46ef esp32h4: remove esp32h4 target from peripherals 2023-04-20 15:19:45 +08:00
Armando
2a8617b307 esp_mm: removed empty kconfig files
- MMU configuration related kconfig options will be in soc, or
esp_hw_support
- Cache configuration related kconfig options will be in soc, or
esp_hw_support
- mmap driver and msync driver kconfig options will be still in esp_mm.
As there's no kconfig options for them yet, removed kconfig files
2023-04-10 12:42:52 +08:00
Cao Sen Miao
5bac46b3e8 MMU: Fix stale data being read on memory mapped instruction page 2023-03-24 18:59:57 +08:00
Armando
abb03b8dc4 doc: added memory management programming guides 2023-03-22 16:33:52 +08:00
Armando
1ecd1e3bf0 esp_mm: fix dependency to esp_psram 2023-02-28 10:42:22 +08:00
Armando
fda9746bb8 esp_mm: cache_msync API 2023-02-28 10:42:22 +08:00
Armando
4144746fc3 esp_mm: shared and non-shared mapping 2023-02-17 13:04:55 +08:00
Armando
98892a3288 esp_mm: correct mmap reserved irom and drom size
Prior to this commit, we don't consider the offset of the irom vaddr
start.

If the offset + size is bigger than the MMU page size, for example:
MMU page size: 0x10000
irom vaddr: 0x4200_0800, so offset = 0x800
irom size: 0xF900
offset + size = 0x10100

Under this condition, the 0x4200_0000 ~ 0x4202_0000, two MMU pages are
used.

With this commit, when reserving the irom and drom, we take the offset
into consideration as well.
2023-02-07 20:23:53 +08:00
Armando
06e7c02da7 esp_mm: h2 support 2023-02-07 20:23:53 +08:00