Commit Graph

21 Commits

Author SHA1 Message Date
morris
83c8ce73cf fix(bitscrambler): reject malformed program headers
Validate BitScrambler program headers against the supported format and
hardware limits before using header-derived instruction and LUT sizes.
Also add regression coverage for malformed headers and document that the
program blob must come from a trusted assembler output.
2026-07-28 16:26:49 +08:00
morris
c3a707d996 fix(bitscrambler): validate and safely load LUT data
Reject LUT loads that exceed the hardware address space and assemble
each 32-bit LUT word via memcpy so unaligned and partial inputs do not
read past the caller buffer. Add regression tests for oversized and
partial unaligned LUT loads.
2026-07-28 16:26:49 +08:00
morris
137fa05c7c fix(bitscrambler): clean up loopback create failures
Clear the returned handle on loopback creation failure and route
initialized objects through bitscrambler_free so channel ownership and
extra cleanup state cannot leak after partial setup errors. Add a
regression test for the failed create path.
2026-07-28 16:26:49 +08:00
Marius Vikhammer
cd5dd57336 fix(bitscrambler): fixed extra_clean_up actions done after clock disable
Cannot write to any bitscrambler registers after clock is disabled in
release_channel().

(cherry picked from commit 39a131617d82e3641d8f0b03b4ec5e5ef1051fd6)
2026-05-12 10:28:31 +08:00
morris
11f76780cc feat(bitscrambler): support driver on esp32s31 2026-04-08 09:53:21 +08:00
morris
0469db2f83 refactor(rcc): unify the usage of clock control macros for peripherals
- Removed conditional definitions for various RCC_ATOMIC macros across
multiple files, replacing them with a unified PERIPH_RCC_ATOMIC() macro.
- Updated instances where specific RCC_ATOMIC macros were used to ensure
consistent usage of PERIPH_RCC_ATOMIC().
- Deleted unused uart_share_hw_ctrl.h file as its functionality is now
integrated into the new structure.
2026-01-23 18:28:13 +08:00
morris
512b499e1b refactor: remove gdma_trigger_peripheral_t 2026-01-12 13:47:54 +08:00
morris
fb1b53c7c5 refactor(gdma): channel allocation can return both direction within the same call 2026-01-04 15:39:38 +08:00
morris
bc064a353a refactor(hal_dma): move bitscrambler from hal component
because bitscrambler can't live without DMA, it's highly binded with the
GDMA peripheral.
2025-11-21 16:10:16 +08:00
laokaiyao
49284c3f8d feat(gdma_link): support to select final node link type 2025-10-30 16:06:12 +08:00
Chen Jichang
ddef1d3d52 refactor(gdma): move buffer aligment to buffer mount config 2025-09-26 16:42:33 +08:00
morris
fb4b590941 refactor(dma)!: remove deprecated functions 2025-06-12 12:24:58 +08:00
morris
d46019bf43 refactor(bitscrambler): don't use Reset Clock Control lock of RC version 2025-05-20 16:52:32 +08:00
Dong Heng
afa79e0473 fix(bitscrambler): fix bitscrambler RX mode initialization error 2025-05-15 11:43:39 +08:00
Chen Jichang
39f6aeb536 feat(bitscrambler): add enable and disable function 2025-05-12 10:27:14 +08:00
morris
c3f422348d feat(rmt): support bitscrambler as a RMT encoder 2025-04-07 18:13:03 +08:00
morris
ee668ee658 test(BitScrambler): added more basic test cases
e.g. to test different eof mode, prefetch mode
2025-03-05 14:41:49 +08:00
morris
5558028870 bugfix(cache): cache invalidate operation should respect the cache line size
not only the buffer address but also the buffer size should aligned to
the cache line size
2025-02-10 17:48:46 +08:00
morris
cfca6c606e fix(dma): also consider buffer alignment when calculating the DMA nodes
Closes https://github.com/espressif/esp-idf/issues/15228
2025-02-07 12:34:42 +08:00
morris
21a8c222e1 feat(bitscrambler): add driver support on esp32c5 2025-01-23 17:50:10 +08:00
morris
dc3f31adac refactor(bitscrambler): to use GDMA link API 2025-01-13 22:58:27 +08:00