Commit Graph

71 Commits

Author SHA1 Message Date
morris
c96d9d0380 fix(driver): allocate driver objects containing atomic variables from internal SRAM
Objects with atomic members must not be allocated to PSRAM, otherwise
the ordering guarantee of atomic accesses is weakened due to a hardware
behavior on ESP32 chips. Explicitly request MALLOC_CAP_INTERNAL |
MALLOC_CAP_8BIT for:

- i2c master bus object (atomic status/trans_idx)
- i3c master bus object (atomic fsm)
- ISP processor and AE/AF/AWB/HIST controllers (atomic fsm)
- JPEG decoder/encoder dma2d transaction descriptors (atomic started)
- PPA transaction storage embedding dma2d_trans_t
- dma2d m2m test transaction embedding dma2d_trans_t
2026-08-31 13:48:44 +08:00
Steven (Yang Minghui)
6dd110f2d1 test(jpeg): add ESP32-P4 rev1 coverage 2026-08-28 21:35:50 +08:00
C.S.M
a7ac00b812 fix(jpeg): validate encoder buffer sizes before header/DMA access
Bound JPEG header emission by outbuf capacity and reject undersized
input buffers before programming TX DMA to avoid heap corruption and
out-of-bounds DMA reads.
2026-08-25 16:29:16 +08:00
Chen Jichang
2b8029c775 feat(mspi): split dma and mspi alignment 2026-08-17 16:49:27 +08:00
morris
e86fcc8b48 fix(jpeg): release platform mutex on semaphore/pm-lock allocation failure
jpeg_acquire_codec_handle acquires s_jpeg_platform.mutex at entry
but two ESP_RETURN_ON_* macros (semaphore-create and PM-lock-create
failure) return without releasing it. Replace with ESP_GOTO_ON_*
that jumps to a cleanup label which frees partial resources, NULLs
the codec pointer, and releases the mutex.
2026-07-09 10:27:01 +08:00
morris
d5c193167a Merge branch 'refactor/move_regdma_entry_config_to_driver_layer_jpeg' into 'master'
refactor(jpeg): move sleep retention config into driver layer

See merge request espressif/esp-idf!50465
2026-07-08 17:28:06 +08:00
Marius Vikhammer
ff88ad88a9 Merge branch 'test/linux-full-component-build' into 'master'
test: add Linux full component build app

See merge request espressif/esp-idf!50377
2026-07-08 10:13:12 +08:00
morris
47f4e5d412 refactor(jpeg): move sleep retention config into driver layer
Move per-target JPEG regdma retention descriptors out of esp_hal_jpeg
and into
esp_driver_jpeg so the codec driver owns its backup scope and restore
flow.
2026-07-07 19:03:05 +08:00
C.S.M
fbdf6d7427 fix(jpeg): JPEG can encode and decode in encryption situation 2026-07-07 10:42:45 +08:00
Marius Vikhammer
e2c86567ac fix: preserve Linux component header registration
Keep Linux components include-only when their runtime dependencies are unavailable.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-06 13:36:34 +08:00
morris
651d6a283f refactor(esp_common): centralize ALIGN_UP/ALIGN_DOWN into esp_macros.h
Remove ~50 duplicate local definitions of ALIGN_UP/ALIGN_DOWN/ALIGN_UP_BY/
ALIGN_DOWN_BY across the codebase and replace them with canonical
ESP_ALIGN_UP/ESP_ALIGN_DOWN from esp_macros.h.
2026-07-06 13:36:06 +08:00
Marius Vikhammer
bd25b59620 test: add Linux full component build app
Exercise unrestricted Linux-target builds so unsupported hardware-only components are caught by CI.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-06 13:26:17 +08:00
Song Ruo Jing
92024d98b6 fix(dma2d): add a dequeue mechanism for dma2d driver
JPEG driver should be able to either dequeue a pending transaction from
a 2D-DMA pool or force end a processing transaction.
2026-07-02 20:25:09 +08:00
morris
6c79fabe36 feat(jpeg): simplify decoder example and add pytest coverage 2026-06-29 22:44:49 +08:00
C.S.M
ad58073b75 fix(jpeg): Fix the jpeg size might exceed the buffer size 2026-06-22 16:20:51 +08:00
morris
ccc29524fb feat(jpeg): simplify encode example and add pytest coverage
Embed a 720p BGR raw asset and stream the encoded JPEG over UART so
this example no longer depends on SD card setup.

Add pytest coverage that reconstructs the JPEG from base64 output and
compares it against a checked-in golden image.
2026-06-15 18:52:23 +08:00
C.S.M
6ffafe8e93 fix(jpeg_decoder): Add some strict check to avoid bad picture attack 2026-06-01 11:27:14 +08:00
cjin
03686080ac fix(btbb): add sleep retention attach/detach at btbb enable/disable 2026-05-21 11:46:16 +08:00
wuzhenghui
d3c5129050 fix(driver): fix retention unsupported mouldes TOP pd test 2026-05-07 12:02:05 +08:00
C.S.M
0f0edc051a ci(esp32s31): Add ci target test for esp32s31 2026-04-14 19:40:51 +08:00
C.S.M
93566e1f8c feat(jpeg): Fix some potential encoder issues
esp_driver_jpeg allocates inadequate DMA memory size for descriptor in jpeg_encode.c

Closes https://github.com/espressif/esp-idf/issues/18296

Potential integer underflow and uninitialized pointer dereference in jpeg_encode.c

Closes https://github.com/espressif/esp-idf/issues/18297

Invalid DMA2D block RW mode configuration for 1D direction in jpeg_encode.c

Closes https://github.com/espressif/esp-idf/issues/18298
2026-03-06 11:48:49 +08:00
C.S.M
762252153a Merge branch 'feat/add_jpeg_pixel_reverse_enc' into 'master'
feat(jpeg): Add config for reversing input pixel format in jpeg encoder

Closes IDFGH-17272

See merge request espressif/esp-idf!46075
2026-02-27 18:31:56 +08:00
C.S.M
05fd4d7da3 feat(jpeg): Add config for reversing input pixel format in jpeg encoder
Also add format check on both encoder and decoder

Closes https://github.com/espressif/esp-idf/issues/18262
2026-02-27 15:31:47 +08:00
Song Ruo Jing
9362907287 feat(dma2d,ppa): Support flash encryption for DMA2D and PPA 2026-02-26 16:39:40 +08:00
morris
fe436d881e feat(ci): remove common_components dependencies from peripheral drivers
Replace *common_components with specific driver dependencies across all
peripheral driver test apps and examples to prevent unnecessary CI
triggers
when common_components change.

This follows the same pattern established in TWAI driver commit:
6d21cc6c29

Changes made:
- 26 component test apps updated
(esp_driver_*/test_apps/.build-test-rules.yml)
- 1 driver test app updated
(components/driver/test_apps/.build-test-rules.yml)
- Key examples updated in examples/peripherals/.build-test-rules.yml
- Established standard dependency pattern: esp_hal_xxx, esp_hw_support,
soc
- Added esp_driver_gpio for GPIO-dependent drivers
2026-01-29 16:33:17 +08:00
igor.udot
4c26ab876b ci: update build-test-rules to use common_components 2026-01-23 10:14:09 +08:00
morris
35bdd8c651 feat(dma): graduate the dma driver from esp_hw_support to esp_driver_dma 2026-01-22 14:14:14 +08:00
C.S.M
4e55d49cc8 feat(jpeg): support jpeg sleep retention on esp32p4 2026-01-21 11:00:14 +08:00
C.S.M
6aa3d4900d fix(jpeg): Fix jpeg color space check 2025-12-17 10:45:33 +08:00
C.S.M
b7bbc1b7c5 feat(jpeg_decoder): Add decode to yuv420 since esp32p4 version3 2025-12-15 17:38:52 +08:00
C.S.M
d5273efdf6 fix(jpeg): Fix check in com marker 2025-12-15 15:42:02 +08:00
Song Ruo Jing
fe8ace8bef refactor(ppa): use fourcc for dma2d and ppa color formats 2025-12-01 19:21:49 +08:00
C.S.M
a7115b6b36 refactor(jpeg): Split hal layer for jpeg 2025-11-05 10:32:41 +08:00
C.S.M
8a41bb02b4 refactor(jpeg): Use fourcc for jpeg format 2025-10-20 16:18:09 +08:00
C.S.M
c38a6691b9 fix(jpeg): Add check for jpeg marker parser in order to enhance safety 2025-10-10 18:44:27 +08:00
Marius Vikhammer
484d2c5c2f fix(system): fixed issues with unused variable warnings when compiling with NDEBUG 2025-09-19 15:42:07 +08:00
C.S.M
01a362ccb4 feat(jpeg_encoder): Add yuv444 and yuv420 jpeg encoder format on esp32p4 eco5 2025-09-12 16:45:13 +08:00
Marek Fiala
9d35d63651 feat(cmake): Update minimum cmake version to 3.22 (whole repository) 2025-08-19 14:44:32 +02:00
Marius Vikhammer
bf84ab652a change(test_utils): moved test_utils component to tools/test_apps/components/ 2025-07-21 14:05:50 +08:00
morris
fb4b590941 refactor(dma)!: remove deprecated functions 2025-06-12 12:24:58 +08:00
C.S.M
c490702340 bugfix(jpeg): eliminate random black line on jpeg decoder 2025-06-09 14:14:20 +08:00
Chen Jichang
90050df641 fix(jpeg): only call esp_pm APIs when CONFIG_PM_ENABLE is enabled 2025-05-22 17:38:58 +08:00
C.S.M
bfc69338c8 fix(jpeg): Fix wrong parameter in jpeg encoder msync 2025-05-21 17:54:44 +08:00
C.S.M
f9469f4e81 fix(jpeg): use dma2d empty rx desc event to avoid a stuck 2025-03-13 11:37:44 +08:00
Peter Marcisovsky
430bb9dc2c Merge branch 'fix/jpeg_driver_handle_invalid_marker' into 'master'
fix(jpeg_decoder): Correctly handle invalid 0xffff JPEG marker

Closes IDF-12204

See merge request espressif/esp-idf!36764
2025-03-07 17:21:54 +08:00
peter.marcisovsky
f9d55c1fb2 fix(jpeg_decoder): Correctly handle invalid 0xffff JPEG marker 2025-03-06 19:44:52 +08:00
peter.marcisovsky
146c1d72c0 feat(jpeg_decode): Add support for default Huffman tables
- In case of a missing Huffman table, while decoding a JPEG image
    - Define a default Huff table and add it to JPEG image header
2025-03-05 13:03:05 +01:00
igor.udot
daf2d31008 test: format all test scripts 2025-03-05 12:08:48 +08:00
peter.marcisovsky
b900a50132 feat(jpeg_decoder): Correctly set JPEG restart interval 2025-02-27 14:47:12 +01:00
morris
13d0e83cd6 fix(driver): issues reported by coverity 2024-11-27 09:57:37 +08:00