Skip to content
Merged
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
2 changes: 1 addition & 1 deletion .github/workflows/cron.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,4 +43,4 @@ jobs:
# targets: "esp32,esp32s2,esp32s3,esp32c3,esp32c6,esp32h2,esp32p4"
- idf_branch: "release/v5.5"
lib_builder_branch: "master"
targets: "esp32,esp32s2,esp32s3,esp32c3,esp32c6,esp32h2,esp32p4,esp32c5"
targets: "esp32,esp32s2,esp32s3,esp32c3,esp32c6,esp32h2,esp32p4,esp32p4_es,esp32c5"
2 changes: 1 addition & 1 deletion .github/workflows/push.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
target: [esp32, esp32s2, esp32s3, esp32c2, esp32c3, esp32c6, esp32h2, esp32p4, esp32c5]
target: [esp32, esp32s2, esp32s3, esp32c2, esp32c3, esp32c6, esp32h2, esp32p4, esp32p4_es, esp32c5]
fail-fast: false
steps:
- name: Checkout repository
Expand Down
6 changes: 3 additions & 3 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ idf_build_get_property(elf EXECUTABLE GENERATOR_EXPRESSION)

add_custom_command(
OUTPUT "idf_libs"
COMMAND ${CMAKE_SOURCE_DIR}/tools/copy-libs.sh ${IDF_TARGET} "${CONFIG_LIB_BUILDER_FLASHMODE}" "${CONFIG_SPIRAM_MODE_OCT}" "${CONFIG_IDF_TARGET_ARCH_XTENSA}"
COMMAND ${CMAKE_SOURCE_DIR}/tools/copy-libs.sh ${IDF_TARGET} "$ENV{CHIP_VARIANT}" "${CONFIG_LIB_BUILDER_FLASHMODE}" "${CONFIG_SPIRAM_MODE_OCT}" "${CONFIG_IDF_TARGET_ARCH_XTENSA}"
DEPENDS ${elf}
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
VERBATIM
Expand All @@ -18,7 +18,7 @@ add_custom_target(idf-libs DEPENDS "idf_libs")

add_custom_command(
OUTPUT "copy_bootloader"
COMMAND ${CMAKE_SOURCE_DIR}/tools/copy-bootloader.sh ${IDF_TARGET} "${CONFIG_LIB_BUILDER_FLASHMODE}" "${CONFIG_LIB_BUILDER_FLASHFREQ}"
COMMAND ${CMAKE_SOURCE_DIR}/tools/copy-bootloader.sh ${IDF_TARGET} "$ENV{CHIP_VARIANT}" "${CONFIG_LIB_BUILDER_FLASHMODE}" "${CONFIG_LIB_BUILDER_FLASHFREQ}"
DEPENDS bootloader
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
VERBATIM
Expand All @@ -27,7 +27,7 @@ add_custom_target(copy-bootloader DEPENDS "copy_bootloader")

add_custom_command(
OUTPUT "mem_variant"
COMMAND ${CMAKE_SOURCE_DIR}/tools/copy-mem-variant.sh ${IDF_TARGET} "${CONFIG_LIB_BUILDER_FLASHMODE}" "${CONFIG_SPIRAM_MODE_OCT}"
COMMAND ${CMAKE_SOURCE_DIR}/tools/copy-mem-variant.sh ${IDF_TARGET} "$ENV{CHIP_VARIANT}" "${CONFIG_LIB_BUILDER_FLASHMODE}" "${CONFIG_SPIRAM_MODE_OCT}"
DEPENDS ${elf}
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
VERBATIM
Expand Down
28 changes: 15 additions & 13 deletions build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -146,11 +146,12 @@ if [ "$BUILD_TYPE" != "all" ]; then
# Target Features Configs
for target_json in `jq -c '.targets[]' configs/builds.json`; do
target=$(echo "$target_json" | jq -c '.target' | tr -d '"')
export CHIP_VARIANT=$(echo "$target_json" | jq -c '.chip_variant // "'$target'"' | tr -d '"')

# Check if $target is in the $TARGET array
# Check if $CHIP_VARIANT is in the $TARGET array
target_in_array=false
for item in "${TARGET[@]}"; do
if [ "$item" = "$target" ]; then
if [ "$item" = "$CHIP_VARIANT" ]; then
target_in_array=true
break
fi
Expand All @@ -161,12 +162,12 @@ if [ "$BUILD_TYPE" != "all" ]; then
continue
fi

configs="configs/defconfig.common;configs/defconfig.$target;configs/defconfig.debug_$BUILD_DEBUG"
configs="configs/defconfig.common;configs/defconfig.$CHIP_VARIANT;configs/defconfig.debug_$BUILD_DEBUG"
for defconf in `echo "$target_json" | jq -c '.features[]' | tr -d '"'`; do
configs="$configs;configs/defconfig.$defconf"
done

echo "* Building for $target"
echo "* Building for target: '$target', variant: '$CHIP_VARIANT'"

# Configs From Arguments
for conf in $CONFIGS; do
Expand All @@ -187,36 +188,37 @@ mkdir -p "$AR_TOOLS/esp32-arduino-libs"
#targets_count=`jq -c '.targets[] | length' configs/builds.json`
for target_json in `jq -c '.targets[]' configs/builds.json`; do
target=$(echo "$target_json" | jq -c '.target' | tr -d '"')
export CHIP_VARIANT=$(echo "$target_json" | jq -c '.chip_variant // "'$target'"' | tr -d '"')
target_skip=$(echo "$target_json" | jq -c '.skip // 0')

# Check if $target is in the $TARGET array if not "all"
# Check if $CHIP_VARIANT is in the $TARGET array if not "all"
if [ "$TARGET" != "all" ]; then
target_in_array=false
for item in "${TARGET[@]}"; do
if [ "$item" = "$target" ]; then
if [ "$item" = "$CHIP_VARIANT" ]; then
target_in_array=true
break
fi
done

# If $target is not in the $TARGET array, skip processing
# If $CHIP_VARIANT is not in the $TARGET array, skip processing
if [ "$target_in_array" = false ]; then
echo "* Skipping Target: $target"
echo "* Skipping Target: $CHIP_VARIANT"
continue
fi
fi

# Skip chips that should not be a part of the final libs
# WARNING!!! this logic needs to be updated when cron builds are split into jobs
if [ "$TARGET" = "all" ] && [ $target_skip -eq 1 ]; then
echo "* Skipping Target: $target"
echo "* Skipping Target: $CHIP_VARIANT"
continue
fi

echo "* Target: $target"
echo "* Target: '$target', Variant: '$CHIP_VARIANT'"

# Build Main Configs List
main_configs="configs/defconfig.common;configs/defconfig.$target;configs/defconfig.debug_$BUILD_DEBUG"
main_configs="configs/defconfig.common;configs/defconfig.$CHIP_VARIANT;configs/defconfig.debug_$BUILD_DEBUG"
for defconf in `echo "$target_json" | jq -c '.features[]' | tr -d '"'`; do
main_configs="$main_configs;configs/defconfig.$defconf"
done
Expand All @@ -233,15 +235,15 @@ for target_json in `jq -c '.targets[]' configs/builds.json`; do
if [ $? -ne 0 ]; then exit 1; fi

# Build ESP-Hosted slave firmwares
if [ "$target" == "esp32p4" ]; then
if [ "$CHIP_VARIANT" == "esp32p4" ]; then
./tools/build-hosted.sh
fi

# Build ESP-SR Models
if [ "$target" == "esp32s3" ] || [ "$target" == "esp32p4" ]; then
idf.py -DIDF_TARGET="$target" -DSDKCONFIG_DEFAULTS="$idf_libs_configs" srmodels_bin
if [ $? -ne 0 ]; then exit 1; fi
AR_SDK="$AR_TOOLS/esp32-arduino-libs/$target"
AR_SDK="$AR_TOOLS/esp32-arduino-libs/$CHIP_VARIANT"
# sr model.bin
if [ -f "build/srmodels/srmodels.bin" ]; then
echo "$AR_SDK/esp_sr"
Expand Down
15 changes: 15 additions & 0 deletions configs/builds.json
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,21 @@
["dio","80m"]
]
},
{
"chip_variant": "esp32p4_es",
"target": "esp32p4",
"features":["qio_ram","esp_sr"],
"idf_libs":["qio","80m_200m"],
"bootloaders":[
["qio","80m_200m"],
["dio","80m_200m"],
["qio","40m_200m"],
["dio","40m_200m"]
],
"mem_variants":[
["dio","80m_200m"]
]
},
{
"target": "esp32p4",
"features":["qio_ram","esp_sr"],
Expand Down
1 change: 1 addition & 0 deletions configs/defconfig.esp32p4
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# CONFIG_ESP32P4_SELECTS_REV_LESS_V3 is not set
CONFIG_IDF_EXPERIMENTAL_FEATURES=y
CONFIG_SPIRAM=y
# CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU1 is not set
Expand Down
48 changes: 48 additions & 0 deletions configs/defconfig.esp32p4_es
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
CONFIG_ESP32P4_SELECTS_REV_LESS_V3=y
CONFIG_IDF_EXPERIMENTAL_FEATURES=y
CONFIG_SPIRAM=y
# CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU1 is not set
CONFIG_LWIP_TCP_SACK_OUT=y

# ESP-Hosted-MCU
CONFIG_SLAVE_IDF_TARGET_ESP32C6=y
CONFIG_ESP_SDIO_BUS_WIDTH=4
CONFIG_ESP_SDIO_CLOCK_FREQ_KHZ=40000
CONFIG_ESP_SDIO_PIN_CMD=19
CONFIG_ESP_SDIO_PIN_CLK=18
CONFIG_ESP_SDIO_PIN_D0=14
CONFIG_ESP_SDIO_PIN_D1=15
CONFIG_ESP_SDIO_PIN_D2=16
CONFIG_ESP_SDIO_PIN_D3=17

CONFIG_WIFI_RMT_STATIC_RX_BUFFER_NUM=10
CONFIG_WIFI_RMT_DYNAMIC_RX_BUFFER_NUM=32
CONFIG_WIFI_RMT_DYNAMIC_TX_BUFFER_NUM=32
CONFIG_WIFI_RMT_AMPDU_TX_ENABLED=y
CONFIG_WIFI_RMT_TX_BA_WIN=32
CONFIG_WIFI_RMT_AMPDU_RX_ENABLED=y
CONFIG_WIFI_RMT_RX_BA_WIN=16

CONFIG_LWIP_TCP_SND_BUF_DEFAULT=65534
CONFIG_LWIP_TCP_WND_DEFAULT=65534
CONFIG_LWIP_TCP_RECVMBOX_SIZE=64
CONFIG_LWIP_UDP_RECVMBOX_SIZE=64
CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=64

# Bluetooth through ESP-Hosted-MCU
CONFIG_BT_ENABLED=y
CONFIG_BT_CONTROLLER_DISABLED=y
CONFIG_BT_BLUEDROID_ENABLED=n
CONFIG_BT_NIMBLE_ENABLED=y
CONFIG_BT_NIMBLE_NVS_PERSIST=y
CONFIG_BT_NIMBLE_TRANSPORT_UART=n
CONFIG_ESP_HOSTED_ENABLE_BT_NIMBLE=y
CONFIG_ESP_HOSTED_NIMBLE_HCI_VHCI=y

# RGB Display Optimizations
CONFIG_LCD_RGB_ISR_IRAM_SAFE=y
CONFIG_LCD_RGB_RESTART_IN_VSYNC=y

CONFIG_USB_HOST_HUBS_SUPPORTED=y
CONFIG_USB_HOST_HUB_MULTI_LEVEL=y
CONFIG_USB_HOST_HW_BUFFER_BIAS_BALANCED=y
8 changes: 6 additions & 2 deletions tools/config.sh
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,10 @@ if [ -z "$IDF_TARGET" ]; then
fi
fi

if [ -z "$CHIP_VARIANT" ]; then
CHIP_VARIANT="$IDF_TARGET"
fi

# Owner of the target ESP32 Arduino repository
AR_USER="${GITHUB_REPOSITORY_OWNER:-espressif}"

Expand All @@ -50,8 +54,8 @@ AR_TOOLS="$AR_OUT/tools"
AR_PATCHES="$AR_ROOT/patches"
AR_PLATFORM_TXT="$AR_OUT/platform.txt"
AR_GEN_PART_PY="$AR_TOOLS/gen_esp32part.py"
AR_SDK="$AR_TOOLS/esp32-arduino-libs/$IDF_TARGET"
PIOARDUINO_SDK="FRAMEWORK_SDK_DIR, \"$IDF_TARGET\""
AR_SDK="$AR_TOOLS/esp32-arduino-libs/$CHIP_VARIANT"
PIOARDUINO_SDK="FRAMEWORK_SDK_DIR, \"$CHIP_VARIANT\""
TOOLS_JSON_OUT="$AR_TOOLS/esp32-arduino-libs"

if [ -d "$IDF_PATH" ]; then
Expand Down
5 changes: 3 additions & 2 deletions tools/copy-bootloader.sh
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
#!/bin/bash

IDF_TARGET=$1
FLASH_MODE="$2"
FLASH_FREQ="$3"
CHIP_VARIANT=$2
FLASH_MODE="$3"
FLASH_FREQ="$4"
BOOTCONF=$FLASH_MODE"_$FLASH_FREQ"

source ./tools/config.sh
Expand Down
9 changes: 5 additions & 4 deletions tools/copy-libs.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,12 @@
# config

IDF_TARGET=$1
IS_XTENSA=$4
OCT_FLASH="$2"
CHIP_VARIANT=$2
IS_XTENSA=$5
OCT_FLASH="$3"
OCT_PSRAM=

if [ "$3" = "y" ]; then
if [ "$4" = "y" ]; then
OCT_PSRAM="opi"
else
OCT_PSRAM="qspi"
Expand All @@ -15,7 +16,7 @@ MEMCONF=$OCT_FLASH"_$OCT_PSRAM"

source ./tools/config.sh

echo "IDF_TARGET: $IDF_TARGET, MEMCONF: $MEMCONF, PWD: $PWD, OUT: $AR_SDK"
echo "IDF_TARGET: $IDF_TARGET, CHIP_VARIANT: $CHIP_VARIANT, MEMCONF: $MEMCONF, PWD: $PWD, OUT: $AR_SDK"

# clean previous
if [ -e "$AR_SDK/sdkconfig" ]; then
Expand Down
7 changes: 4 additions & 3 deletions tools/copy-mem-variant.sh
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
#!/bin/bash
IDF_TARGET=$1
OCT_FLASH="$2"
CHIP_VARIANT=$2
OCT_FLASH="$3"
OCT_PSRAM=

if [ "$3" = "y" ]; then
if [ "$4" = "y" ]; then
OCT_PSRAM="opi"
else
OCT_PSRAM="qspi"
Expand All @@ -13,7 +14,7 @@ MEMCONF=$OCT_FLASH"_$OCT_PSRAM"

source ./tools/config.sh

echo "IDF_TARGET: $IDF_TARGET, MEMCONF: $MEMCONF"
echo "IDF_TARGET: $IDF_TARGET, CHIP_VARIANT: $CHIP_VARIANT, MEMCONF: $MEMCONF"

# Add IDF versions to sdkconfig
echo "#define CONFIG_ARDUINO_IDF_COMMIT \"$IDF_COMMIT\"" >> "build/config/sdkconfig.h"
Expand Down