nuttx/boards/xtensa/esp32s3/common
Marco Casaroli ce59fb6e71 xtensa/esp32s3: Reach a page pool page through a scratch mapping.
The page pool is carved out of the PSRAM that user processes run from, and
the external memory permissions are indexed by physical address, so a
permanent kernel window onto the pool is a window onto every process, which
no permission setting can close.

Stop mapping the pool.  The kernel reaches a pool page through a small
scratch region instead, mapped for one operation and invalidated afterwards.
esp32s3_pgmap() takes a slot, esp32s3_pgunmap() releases it, and
ARCH_KMAP_VBASE and ARCH_KMAP_NPAGES describe the region.  Two slots are
enough, because the deepest user is up_addrenv_fork(), which holds a source
and a destination page at once.

Assisted-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Marco Casaroli <marco.casaroli@gmail.com>
2026-09-26 11:13:57 -03:00
..
include xtensa/espressif: Update common-source integration for Xtensa devices 2026-03-29 00:33:11 +08:00
kernel protect: move us_heap to userspace_data_s 2026-02-02 11:06:53 +08:00
scripts xtensa/esp32s3: Reach a page pool page through a scratch mapping. 2026-09-26 11:13:57 -03:00
src boards/esp32s3: the LSM6DS3TR-C INT1 is a level, not an edge 2026-09-22 09:21:08 -03:00
.gitignore
Kconfig boards/xtensa: fix optional item on spiflash config 2026-03-19 17:46:28 +08:00
Makefile xtensa/espressif: Update common-source integration for Xtensa devices 2026-03-29 00:33:11 +08:00