Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
64 changes: 62 additions & 2 deletions locale/circuitpython.pot
Original file line number Diff line number Diff line change
Expand Up @@ -974,7 +974,6 @@ msgstr ""
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
#: ports/cxd56/common-hal/pulseio/PulseIn.c
#: ports/espressif/common-hal/mii/RMII.c
#: ports/raspberrypi/common-hal/picodvi/Framebuffer_RP2350.c
#: ports/zephyr-cp/common-hal/busio/I2C.c
#: ports/zephyr-cp/common-hal/busio/SPI.c
Expand Down Expand Up @@ -1182,6 +1181,7 @@ msgid "Another send is already active"
msgstr ""

#: ports/atmel-samd/common-hal/sdioio/SDCard.c
#: ports/espressif/common-hal/mii/Ethernet.c
#: ports/espressif/common-hal/qspibus/QSPIBus.c shared-bindings/emmcio/EMMC.c
#: shared-bindings/socketpool/SocketPool.c
msgid "%q failure: %d"
Expand Down Expand Up @@ -1219,6 +1219,7 @@ msgstr ""
#: shared-bindings/busdisplay/BusDisplay.c
#: shared-bindings/framebufferio/FramebufferDisplay.c
#: shared-bindings/struct/__init__.c shared-module/struct/__init__.c
#: shared-module/videocore/VideoBuffer.c
msgid "Buffer too small"
msgstr ""

Expand Down Expand Up @@ -1517,7 +1518,8 @@ msgid "%q must be 8, 16, 24, or 32"
msgstr ""

#: ports/espressif/common-hal/audiobusio/__init__.c
#: ports/espressif/common-hal/audioi2sin/I2SIn.c shared-bindings/emmcio/EMMC.c
#: ports/espressif/common-hal/audioi2sin/I2SIn.c
#: ports/espressif/common-hal/mii/Ethernet.c shared-bindings/emmcio/EMMC.c
msgid "Peripheral in use"
msgstr ""

Expand Down Expand Up @@ -1563,6 +1565,8 @@ msgid "Can't construct AudioOut because continuous channel already open"
msgstr ""

#: ports/espressif/common-hal/audioio/AudioOut.c
#: ports/espressif/common-hal/mipicsi/Camera.c
#: shared-module/videocore/VideoBuffer.c
msgid "already playing"
msgstr ""

Expand Down Expand Up @@ -1751,6 +1755,18 @@ msgstr ""
msgid "Address range not allowed"
msgstr ""

#: ports/espressif/common-hal/mipicsi/Camera.c
msgid "pixel_format must be RAW8, RAW10 or RAW12 when output_format differs"
msgstr ""

#: ports/espressif/common-hal/mipicsi/Camera.c
msgid "output_format must be RGB565 or RGB888"
msgstr ""

#: ports/espressif/common-hal/mipicsi/Camera.c
msgid "ISP conversion not supported on this chip"
msgstr ""

#: ports/espressif/common-hal/nvm/ByteArray.c
msgid "NVS Error"
msgstr ""
Expand Down Expand Up @@ -4771,6 +4787,50 @@ msgstr ""
msgid "Polygon needs at least 3 points"
msgstr ""

#: shared-module/videocore/VideoBuffer.c
msgid "framebuffer went away"
msgstr ""

#: shared-module/videocore/VideoBuffer.c
msgid "video doesn't fit in framebuffer"
msgstr ""

#: shared-module/videocore/VideoBuffer.c
msgid "framebuffer missing required functions"
msgstr ""

#: shared-module/videocore/VideoBuffer.c
msgid "expected FrameBuffer or %q"
msgstr ""

#: shared-module/videocore/VideoBuffer.c
msgid "video format must be byte aligned"
msgstr ""

#: shared-module/videocore/VideoBuffer.c
msgid "video format doesn't match framebuffer"
msgstr ""

#: shared-module/videocore/VideoBuffer.c
msgid "video source rejected the destination"
msgstr ""

#: shared-module/videocore/VideoBuffer.c
msgid "video in a framebuffer must be at x == 0"
msgstr ""

#: shared-module/videocore/VideoBuffer.c
msgid "video size changed since play; stop and play again"
msgstr ""

#: shared-module/videocore/VideoBuffer.c
msgid "VideoBuffer does not support transforms"
msgstr ""

#: shared-module/videocore/VideoBuffer.c
msgid "VideoBuffer is playing into a different framebuffer"
msgstr ""

#: supervisor/shared/bluetooth/bluetooth.c
msgid "Reconnecting"
msgstr ""
Expand Down
17 changes: 16 additions & 1 deletion ports/espressif/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,22 @@ cmake_minimum_required(VERSION 3.16)
set(ENV{IDF_PATH} ${CMAKE_SOURCE_DIR}/esp-idf)

# The component list here determines what options we get in menuconfig and what the ninja file can build.
set(COMPONENTS bt driver esp_driver_dac esp_driver_gpio esp_driver_gptimer esp_driver_i2c esp_driver_i2s esp_driver_ledc esp_driver_pcnt esp_driver_rmt esp_driver_sdmmc esp_driver_spi esp_driver_touch_sens esp_driver_tsens esp_driver_uart esp_eth esp-tls esp_adc esp_adc_cal esp_event esp_netif esp_psram esp_security esp_wifi esptool_py freertos log lwip main mbedtls mdns pthread soc ulp wpa_supplicant esp-camera esp_lcd vfs esp_vfs_console esp_stdio sdmmc usb)
# Keep this split into separate set()/list() calls so additions merge easily.
# Core components
set(COMPONENTS bt driver esptool_py freertos log main mbedtls pthread soc)
# Peripheral drivers
list(APPEND COMPONENTS esp_driver_dac esp_driver_gpio esp_driver_gptimer esp_driver_i2c esp_driver_i2s esp_driver_ledc esp_driver_pcnt esp_driver_rmt esp_driver_sdmmc esp_driver_spi esp_driver_touch_sens esp_driver_tsens esp_driver_uart)
# Networking
list(APPEND COMPONENTS esp_eth esp-tls esp_adc esp_adc_cal esp_event esp_netif esp_psram esp_security esp_wifi lwip mdns wpa_supplicant)
# Misc
list(APPEND COMPONENTS ulp vfs esp_vfs_console esp_stdio sdmmc usb)
# Display and camera
list(APPEND COMPONENTS esp-camera esp_lcd)

if(CIRCUITPY_MIPICSI)
list(APPEND COMPONENTS esp_driver_cam esp_hal_cam)
endif()

set(EXTRA_COMPONENT_DIRS "esp-protocols/components/mdns" "esp-camera")

include($ENV{IDF_PATH}/tools/cmake/project.cmake)
Expand Down
23 changes: 22 additions & 1 deletion ports/espressif/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -226,6 +226,13 @@ REGISTRATION_FUNCTIONS = \
-u esp_security_init_include_impl \
-u mbedtls_psa_crypto_init_include_impl

# Video DMA destinations come from the Python heap (user bytearrays), and
# the cache line is 64 bytes on the P4, so make GC blocks 64 bytes as well.
# supervisor/port.c aligns the PSRAM heap areas to the same value.
ifeq ($(IDF_TARGET),esp32p4)
CFLAGS += -DMICROPY_BYTES_PER_GC_BLOCK=64
endif

# RISC-V picolibc ships optimized memcpy/memset/etc. that need forcing
# (gated by CONFIG_LIBC_OPTIMIZED_MISALIGNED_ACCESS in IDF's esp_libc CMake).
ifeq ($(IDF_TARGET_ARCH),riscv)
Expand Down Expand Up @@ -504,9 +511,12 @@ endif


CHIP_COMPONENTS = \
esp_driver_cam \
esp_driver_isp \
esp_driver_touch_sens \
esp_driver_tsens \
esp_driver_usb_serial_jtag \
esp_hal_cam \
esp_hal_dma \
esp_hal_emac \
esp_hal_i2s \
Expand Down Expand Up @@ -735,6 +745,14 @@ CFLAGS += \
-isystem esp-idf/components/esp_lcd/dsi/include
endif

ifneq ($(CIRCUITPY_MIPICSI),0)
CFLAGS += \
-isystem esp-idf/components/esp_driver_cam/include \
-isystem esp-idf/components/esp_driver_cam/csi/include \
-isystem esp-idf/components/esp_driver_isp/include \
-isystem esp-idf/components/esp_hal_cam/include
endif

ifneq ($(CIRCUITPY_ESPCAMERA),0)
SRC_CAMERA := \
$(wildcard common-hal/espcamera/*.c) \
Expand Down Expand Up @@ -935,7 +953,7 @@ do-sdkconfig: $(BUILD)/esp-idf/config/sdkconfig.h
QSTR_GLOBAL_REQUIREMENTS += $(BUILD)/esp-idf/config/sdkconfig.h
$(BUILD)/esp-idf/config/sdkconfig.h: boards/$(BOARD)/sdkconfig boards/$(BOARD)/mpconfigboard.mk CMakeLists.txt | $(BUILD)/esp-idf
$(STEPECHO) "Create $@"
$(Q)env IDF_PATH=$(IDF_PATH) IDF_COMPONENT_MANAGER=0 cmake -S . -B $(BUILD)/esp-idf -DSDKCONFIG=$(BUILD)/esp-idf/sdkconfig -DSDKCONFIG_DEFAULTS="$(SDKCONFIGS)" -DCMAKE_TOOLCHAIN_FILE=$(IDF_PATH)/tools/cmake/toolchain-$(IDF_TARGET).cmake -DIDF_TARGET=$(IDF_TARGET) -GNinja
$(Q)env IDF_PATH=$(IDF_PATH) IDF_COMPONENT_MANAGER=0 cmake -S . -B $(BUILD)/esp-idf -DSDKCONFIG=$(BUILD)/esp-idf/sdkconfig -DSDKCONFIG_DEFAULTS="$(SDKCONFIGS)" -DCMAKE_TOOLCHAIN_FILE=$(IDF_PATH)/tools/cmake/toolchain-$(IDF_TARGET).cmake -DIDF_TARGET=$(IDF_TARGET) -DCIRCUITPY_MIPICSI=$(CIRCUITPY_MIPICSI) -GNinja
$(Q)$(PYTHON) tools/check-sdkconfig.py \
CIRCUITPY_DUALBANK=$(CIRCUITPY_DUALBANK) \
CIRCUITPY_STORAGE_EXTEND=$(CIRCUITPY_STORAGE_EXTEND) \
Expand Down Expand Up @@ -1060,6 +1078,9 @@ endif
ifneq ($(CIRCUITPY_MIPIDSI),0)
ESP_IDF_COMPONENTS_LINK += esp_lcd
endif
ifneq ($(CIRCUITPY_MIPICSI),0)
ESP_IDF_COMPONENTS_LINK += esp_driver_cam esp_driver_isp esp_hal_cam
endif
ifneq ($(CIRCUITPY_PARALLELDISPLAYBUS),0)
ESP_IDF_COMPONENTS_LINK += esp_lcd
endif
Expand Down
24 changes: 24 additions & 0 deletions ports/espressif/boards/espressif_esp32p4_function_ev/sdkconfig
Original file line number Diff line number Diff line change
@@ -1,3 +1,27 @@
#
# Espressif IoT Development Framework Configuration
#
# Bootloader
#
CONFIG_BOOTLOADER_LOG_LEVEL_WARN=y
CONFIG_BOOTLOADER_LOG_LEVEL=2
# end of Bootloader

# This board ships with pre-v3 (eco2) silicon: link the 2nd stage bootloader
# into the lower memory layout used by revisions 0.x and 1.x.
CONFIG_ESP32P4_SELECTS_REV_LESS_V3=y
# This board's silicon is rev v1.3; match the working BSP-demo build (REV_MIN
# v1.0) so IDF compiles the same errata/clock handling as the reference stack.
CONFIG_ESP32P4_REV_MIN_100=y
CONFIG_ETH_USE_ESP32_EMAC=y

# ESP-STDIO: send the ESP-IDF console to the USB-Serial-JTAG port so bootloader
# logs are visible on the board's serial connector.
#
CONFIG_ESP_CONSOLE_USB_SERIAL_JTAG=y
CONFIG_ESP_CONSOLE_USB_SERIAL_JTAG_ENABLED=y
CONFIG_ESP_CONSOLE_UART_NUM=-1
CONFIG_ESP_CONSOLE_ROM_SERIAL_PORT_NUM=6
# end of ESP-STDIO

# CONFIG_ESP_SYSTEM_MEMPROT is not set
Loading
Loading